1"use strict";(self.webpackChunkBabySparks=self.webpackChunkBabySparks||[]).push([[546],{310:(__unused_webpack_module,__unused_webpack___webpack_exports__,__webpack_require__)=>{eval('{/* harmony import */ var lit_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4420);\n/* harmony import */ var pwa_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4753);\n/* harmony import */ var _redux_store_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5548);\n/* harmony import */ var _card_card_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6190);\n/* harmony import */ var _controllers_classesController_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(6130);\n/* harmony import */ var _headings_headings_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(758);\n/* harmony import */ var _swiper_swiper_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(8981);\n/* harmony import */ var _utils_common_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(8369);\n/* harmony import */ var _utils_analytics__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(5908);\n/* harmony import */ var _redux_actions_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(3534);\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n//import "../localization/localization.js";\r\n\r\n\r\n\r\n\r\n\r\nclass RecentlyAddedClass extends (0,pwa_helpers__WEBPACK_IMPORTED_MODULE_1__/* .connect */ .N)(_redux_store_js__WEBPACK_IMPORTED_MODULE_2__/* .store */ .M)(lit_element__WEBPACK_IMPORTED_MODULE_0__/* .LitElement */ .WF) {\r\n createRenderRoot() {\r\n return this;\r\n }\r\n\r\n constructor() {\r\n super();\r\n this.sliderType = "recentlyAdded";\r\n this.isMobileView = false;\r\n \r\n }\r\n\r\n static get properties() {\r\n return {\r\n recentlyAddedContent: { type: String },\r\n recentlyContent: { type: String },\r\n sliderType: { type: String },\r\n slider_content_type: { type: String },\r\n recentlyTotalCount: { type: Number },\r\n offset: { type: Number },\r\n limit: { type: Number },\r\n searchKeywords: { type: String },\r\n activePageCount: { type: Number },\r\n isUTMURL: { type: Boolean },\r\n recentlyCurrentContent: { type: String },\r\n isMobileView : { type: Boolean }\r\n };\r\n }\r\n\r\n stateChanged(state) {\r\n this.recentlyAddedContent = state.recentlyAdded.data;\r\n this.recentlyCurrentContent = state.recentlyAdded.currentData;\r\n this.recentlyTotalCount = state.recentlyAdded.total_count;\r\n this.activePageCount = state.recentlyAdded.active_page_count;\r\n this.sliderType = state.recentlyAdded.page_type;\r\n this.searchKeywords = state.search.keywords;\r\n this.isUTMURL = state.isUTMURL;\r\n this.isMobileView = state.ismobile;\r\n }\r\n\r\n\r\n // firstUpdated(){\r\n // recentlyAddedClass();\r\n // console.log("===================First updated recently added",this.active_page_count)\r\n // }\r\n\r\n update(changedProperties) {\r\n if (changedProperties.has("recentlyAddedContent")) {\r\n const oldValue = changedProperties.get("recentlyAddedContent");\r\n this.recentlyContent = this.recentlyAddedContent;\r\n }\r\n super.update(changedProperties);\r\n }\r\n\r\n requestUpdate(propName, oldValue) {\r\n if (this.isUTMURL == false) {\r\n if (\r\n // (propName &&\r\n // propName == "searchKeywords" &&\r\n // _.eq(this.searchKeywords, oldValue) == false) ||\r\n (propName &&\r\n propName == "activePageCount" &&\r\n _.eq(this.activePageCount, oldValue) == false)\r\n ) {\r\n Promise.resolve((0,_controllers_classesController_js__WEBPACK_IMPORTED_MODULE_4__/* .recentlyAddedClass */ .TC)()).then(function(value) {\r\n _redux_store_js__WEBPACK_IMPORTED_MODULE_2__/* .store */ .M.dispatch((0,_redux_actions_js__WEBPACK_IMPORTED_MODULE_9__/* .initLoader */ .Aj)(false));\r\n })\r\n //eventRecentlyAddedClassesCarousel();\r\n }\r\n }\r\n return super.requestUpdate(propName, oldValue);\r\n }\r\n\r\n // _indexChanged(e) {\r\n // console.log("event idex changed", e);
1\r\n // const currentPage = Math.ceil(e.target.parentNode.slick.currentSlide / 6);\r\n // console.log("ecurrentPage changed---------------------------", currentPage);\r\n // const limit = 6;\r\n // const totalCount = this.recentlyTotalCount;\r\n // console.log(totalCount,"totalcount slider")\r\n // const offset = Math.ceil(currentPage * limit);\r\n // const totalPages = Math.ceil(totalCount / limit);\r\n // this.offset = offset;\r\n // this.limit = limit;\r\n // const reqParam = {\r\n // offset: (offset)?offset:0,\r\n // limit: limit,\r\n // };\r\n // if (currentPage <= totalPages) recentlyAddedClass(reqParam);\r\n // }\r\n\r\n _sliderPaginate(e) {\r\n\r\n //console.log("============Yes noor it did come heree")\r\n if(this.isMobileView === false){\r\n _redux_store_js__WEBPACK_IMPORTED_MODULE_2__/* .store */ .M.dispatch((0,_redux_actions_js__WEBPACK_IMPORTED_MODULE_9__/* .initLoader */ .Aj)(true));\r\n }\r\n _redux_store_js__WEBPACK_IMPORTED_MODULE_2__/* .store */ .M.dispatch((0,_redux_actions_js__WEBPACK_IMPORTED_MODULE_9__/* .setRecentlyAddedClassData */ .J6)([], "increment"));\r\n //if (e.detail.type === this.sliderType)\r\n \r\n //eventRecentlyAddedClassesPagination();\r\n }\r\n\r\n render() {\r\n //console.log("In recently added render method")\r\n let card_template = "";\r\n let add_cards_template = "";\r\n let recentlyAdded_data = "";\r\n let addCardData = "";\r\n card_template = this.recentlyContent\r\n .map((record) => {\r\n try {\r\n recentlyAdded_data = JSON.stringify(record);\r\n } catch (error) {\r\n recentlyAdded_data = "";\r\n }\r\n return `<div class="swiper-slide medium">\r\n <card-element cardClass="medium" class-collection=\'${(0,_utils_common_js__WEBPACK_IMPORTED_MODULE_7__/* .escapeSpecialChars */ .y5)(recentlyAdded_data)}\' cardType="medium" sliderType="${this.sliderType}" card-config=\'{"showSubscribeTile": true, "showAddToCard" : true}\'></card-element>\r\n </div>`;\r\n })\r\n\r\n add_cards_template = this.recentlyCurrentContent\r\n .map((addCardrecord) => {\r\n try {\r\n addCardData = JSON.stringify(addCardrecord);\r\n } catch (error) {\r\n addCardData = "";\r\n }\r\n return `<div class="swiper-slide medium">\r\n <card-element cardClass="medium" class-collection=\'${(0,_utils_common_js__WEBPACK_IMPORTED_MODULE_7__/* .escapeSpecialChars */ .y5)(addCardData)}\' cardType="medium" sliderType="${this.sliderType}" card-config=\'{"showSubscribeTile": true, "showAddToCard" : true}\'></card-element>\r\n </div>`;\r\n })\r\n\r\n const data_length = (this.recentlyCurrentContent)?true:false\r\n const data_count = (this.recentlyTotalCount == 9999999)?false: true\r\n //console.log(":::::::::::::::::TRUE this.recentlyCurrentContent:::::::::::::::::::::",this.recentlyCurrentContent, this.recentlyTotalCount)\r\n return (0,lit_element__WEBPACK_IMPORTED_MODULE_0__/* .html */ .qy)`\r\n ${(data_count==true)?(0,lit_element__WEBPACK_IMPORTED_MODULE_0__/* .html */ .qy)`\r\n <fluid-container fluidClass="container-pages bg-greyShadow-browse">\r\n <heading-element headingType="h2" convertHTML="true" headingText=\'<local-elem localKey="Recently Added Classes"></local-elem>\' headingClass="title title-blue"></heading-element>\r\n <bs-swiper \r\n .sliderCardElem=${card_template}\r\n .sliderAddCardElem=${add_cards_template}\r\n sliderClass="recently-added-slider"\r\n sliderType="${this.sliderType}"\r\n activePageCount = ${this.activePageCount}\r\n dataCount=${this.recentlyAddedContent.length}\r\n totalCount=${this.recentlyTotalCount}\r\n @slider-paginate=${this._sliderPaginate}\r\n cardType="medium">\r\n </bs-swiper>\r\n </fluid-container> \r\n `:(0,lit_element__WEBPACK_IMPORTED_MODULE_0__/* .html */ .qy)``}`;\r\n\r\n // return html` ${this.recentlyAddedContent &&\r\n // this.recentlyAddedContent.length > 0\r\n // ? html`<fluid-container fluidClass="container-pages bg-greyShadow-browse">\r\n // <heading-element headingType="h2" convertHTML=true headingText=\'<local-elem localKey="Recently Added Classes"></local-elem>\' headingClass="title title-blue"></heading-element>\r\n // <div slider_content_type="">\r\n // <slider-element\r\n // sliderCardElem=${card_template}\r\n // sliderAddCardElem=${add_cards_template}\r\n // sliderClass="recently-added-slider"\r\n // sliderType="${this.sliderType}"\r\n // activePageCount = ${this.activePageCount}\r\n // dataCount = ${this.recentlyAddedContent.length}\r\n // totalCount = ${this.recentlyTotalCount}\r\n // @slider-paginate=${this._sliderPaginate}\r\n // cardType = "medium">\r\n // </slider-element>\r\n // </div>\r\n // </fluid-container>`\r\n // : ``}`;\r\n }\r\n}\r\n\r\ncustomElements.define("recently-added", RecentlyAddedClass);\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzEwLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQmFieVNwYXJrcy8uL3NyYy9jb21wb25lbnRzL3JlY2VudGx5LWFkZGVkL3JlY2VudGx5LWFkZGVkLmpzPzAzMDciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGl0RWxlbWVudCwgaHRtbCwgY3NzIH0gZnJvbSBcImxpdC1lbGVtZW50XCI7XHJcbmltcG9ydCB7
1IGNvbm5lY3QgfSBmcm9tIFwicHdhLWhlbHBlcnNcIjtcclxuaW1wb3J0IHsgc3RvcmUgfSBmcm9tIFwiLi4vLi4vcmVkdXgvc3RvcmUuanNcIjtcclxuaW1wb3J0IFwiLi4vY2FyZC9jYXJkLmpzXCI7XHJcbmltcG9ydCB7XHJcbiAgcmVjZW50bHlBZGRlZENsYXNzZXMsXHJcbiAgcmVjZW50bHlBZGRlZENsYXNzLFxyXG59IGZyb20gXCIuLi8uLi9jb250cm9sbGVycy9jbGFzc2VzQ29udHJvbGxlci5qc1wiO1xyXG5pbXBvcnQgXCIuLi9oZWFkaW5ncy9oZWFkaW5ncy5qc1wiO1xyXG5pbXBvcnQgXCIuLi9zd2lwZXIvc3dpcGVyLmpzXCI7XHJcbmltcG9ydCB7IGVzY2FwZVNwZWNpYWxDaGFycyB9IGZyb20gJy4uLy4uL3V0aWxzL2NvbW1vbi5qcydcclxuLy9pbXBvcnQgXCIuLi9sb2NhbGl6YXRpb24vbG9jYWxpemF0aW9uLmpzXCI7XHJcblxyXG5pbXBvcnQgeyBldmVudFJlY2VudGx5QWRkZWRDbGFzc2VzQ2Fyb3VzZWwsZXZlbnRSZWNlbnRseUFkZGVkQ2xhc3Nlc1BhZ2luYXRpb24gfSBmcm9tICcuLi8uLi91dGlscy9hbmFseXRpY3MnXHJcblxyXG5pbXBvcnQgeyBzZXRSZWNlbnRseUFkZGVkQ2xhc3NEYXRhLGluaXRMb2FkZXIgfSBmcm9tIFwiLi4vLi4vcmVkdXgvYWN0aW9ucy5qc1wiO1xyXG5cclxuY2xhc3MgUmVjZW50bHlBZGRlZENsYXNzIGV4dGVuZHMgY29ubmVjdChzdG9yZSkoTGl0RWxlbWVudCkge1xyXG4gIGNyZWF0ZVJlbmRlclJvb3QoKSB7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKTtcclxuICAgIHRoaXMuc2xpZGVyVHlwZSA9IFwicmVjZW50bHlBZGRlZFwiO1xyXG4gICAgdGhpcy5pc01vYmlsZVZpZXcgPSBmYWxzZTtcclxuICAgIFxyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldCBwcm9wZXJ0aWVzKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgcmVjZW50bHlBZGRlZENvbnRlbnQ6IHsgdHlwZTogU3RyaW5nIH0sXHJcbiAgICAgIHJlY2VudGx5Q29udGVudDogeyB0eXBlOiBTdHJpbmcgfSxcclxuICAgICAgc2xpZGVyVHlwZTogeyB0eXBlOiBTdHJpbmcgfSxcclxuICAgICAgc2xpZGVyX2NvbnRlbnRfdHlwZTogeyB0eXBlOiBTdHJpbmcgfSxcclxuICAgICAgcmVjZW50bHlUb3RhbENvdW50OiB7IHR5cGU6IE51bWJlciB9LFxyXG4gICAgICBvZmZzZXQ6IHsgdHlwZTogTnVtYmVyIH0sXHJcbiAgICAgIGxpbWl0OiB7IHR5cGU6IE51bWJlciB9LFxyXG4gICAgICBzZWFyY2hLZXl3b3JkczogeyB0eXBlOiBTdHJpbmcgfSxcclxuICAgICAgYWN0aXZlUGFnZUNvdW50OiB7IHR5cGU6IE51bWJlciB9LFxyXG4gICAgICBpc1VUTVVSTDogeyB0eXBlOiBCb29sZWFuIH0sXHJcbiAgICAgIHJlY2VudGx5Q3VycmVudENvbnRlbnQ6IHsgdHlwZTogU3RyaW5nIH0sXHJcbiAgICAgIGlzTW9iaWxlVmlldyA6IHsgdHlwZTogQm9vbGVhbiB9XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgc3RhdGVDaGFuZ2VkKHN0YXRlKSB7XHJcbiAgICB0aGlzLnJlY2VudGx5QWRkZWRDb250ZW50ID0gc3RhdGUucmVjZW50bHlBZGRlZC5kYXRhO1xyXG4gICAgdGhpcy5yZWNlbnRseUN1cnJlbnRDb250ZW50ID0gc3RhdGUucmVjZW50bHlBZGRlZC5jdXJyZW50RGF0YTtcclxuICAgIHRoaXMucmVjZW50bHlUb3RhbENvdW50ID0gc3RhdGUucmVjZW50bHlBZGRlZC50b3RhbF9jb3VudDtcclxuICAgIHRoaXMuYWN0aXZlUGFnZUNvdW50ID0gc3RhdGUucmVjZW50bHlBZGRlZC5hY3RpdmVfcGFnZV9jb3VudDtcclxuICAgIHRoaXMuc2xpZGVyVHlwZSA9IHN0YXRlLnJlY2VudGx5QWRkZWQucGFnZV90eXBlO1xyXG4gICAgdGhpcy5zZWFyY2hLZXl3b3JkcyA9IHN0YXRlLnNlYXJjaC5rZXl3b3JkcztcclxuICAgIHRoaXMuaXNVVE1VUkwgPSBzdGF0ZS5pc1VUTVVSTDtcclxuICAgIHRoaXMuaXNNb2JpbGVWaWV3ICA9ICBzdGF0ZS5pc21vYmlsZTtcclxuICB9XHJcblxyXG5cclxuICAvLyBmaXJzdFVwZGF0ZWQoKXtcclxuICAvLyAgIHJlY2VudGx5QWRkZWRDbGFzcygpO1xyXG4gIC8vICAgY29uc29sZS5sb2coXCI9PT09PT09PT09PT09PT09PT09Rmlyc3QgdXBkYXRlZCByZWNlbnRseSBhZGRlZFwiLHRoaXMuYWN0aXZlX3BhZ2VfY291bnQpXHJcbiAgLy8gfVxyXG5cclxuICB1cGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpIHtcclxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoXCJyZWNlbnRseUFkZGVkQ29udGVudFwiKSkge1xyXG4gICAgICBjb25zdCBvbGRWYWx1ZSA9IGNoYW5nZWRQcm9wZXJ0aWVzLmdldChcInJlY2VudGx5QWRkZWRDb250ZW50XCIpO1xyXG4gICAgICB0aGlzLnJlY2VudGx5Q29udGVudCA9IHRoaXMucmVjZW50bHlBZGRlZENvbnRlbnQ7XHJcbiAgICB9XHJcbiAgICBzdXBlci51cGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xyXG4gIH1cclxuXHJcbiAgcmVxdWVzdFVwZGF0ZShwcm9wTmFtZSwgb2xkVmFsdWUpIHtcclxuICAgIGlmICh0aGlzLmlzVVRNVVJMID09IGZhbHNlKSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICAvLyAocHJvcE5hbWUgJiZcclxuICAgICAgICAvLyAgIHByb3BOYW1lID09IFwic2VhcmNoS2V5d29yZHNcIiAmJlxyXG4gICAgICAgIC8vICAgXy5lcSh0aGlzLnNlYXJjaEtleXdvcmRzLCBvbGRWYWx1ZSkgPT0gZmFsc2UpIHx8XHJcbiAgICAgICAgKHByb3BOYW1lICYmXHJcbiAgICAgICAgICBwcm9wTmFtZSA9PSBcImFjdGl2ZVBhZ2VDb3VudFwiICYmXHJcbiAgICAgICAgICBfLmVxKHRoaXMuYWN0aXZlUGFnZUNvdW50LCBvbGRWYWx1ZSkgPT0gZmFsc2UpXHJcbiAgICAgICkge1xyXG4gICAgICAgIFByb21pc2UucmVzb2x2ZShyZWNlbnRseUFkZGVkQ2xhc3MoKSkudGhlbihmdW5jdGlvbih2YWx1ZSkge1xyXG4gICAgICAgICAgc3RvcmUuZGlzcGF0Y2goaW5pdExvYWRlcihmYWxzZSkpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLy9ldmVudFJlY2VudGx5QWRkZWRDbGFzc2VzQ2Fyb3VzZWwoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN1cGVyLnJlcXVlc3RVcGRhdGUocHJvcE5hbWUsIG9sZFZhbHVlKTtcclxuICB9XHJcblxyXG4gIC8vIF9pbmRleENoYW5nZWQoZSkge1xyXG4gIC8vICAgY29uc29sZS5sb2coXCJldmVudCBpZGV4IGNoYW5nZWRcIiwgZSk7XHJcbiAgLy8gICBjb25zdCBjdXJyZW50UGFnZSA9IE1hdGguY2VpbChlLnRhcmdldC5wYXJlbnROb2RlLnNsaWNrLmN1cnJlbnRTbGlkZSAvIDYpO1xyXG4gIC8vICAgY29uc29sZS5sb2coXCJlY3VycmVudFBhZ2UgY2hhbmdlZC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVwiLCBjdXJyZW50UGFnZSk7XHJcbiAgLy8gICBjb25zdCBsaW1pdCA9IDY7XHJcbiAgLy8gICBjb25zdCB0b3RhbENvdW50ID0gdGhpcy5yZWNlbnRseVRvdGFsQ291bnQ7XHJcbiAgLy8gICBjb25zb2xlLmxvZyh0b3RhbENvdW50LFwidG90YWxjb3VudCBzbGlkZXJcIilcclxuICAvLyAgIGNvbnN0IG9mZnNldCA9IE1hdGguY2VpbChjdXJyZW50UGFnZSAqIGxpbWl0KTtcclxuICAvLyAgIGNvbnN0IHRvdGFsUGFnZXMgPSBNYXRoLmNlaWwodG90YWxDb3VudCAvIGxpbWl0KTtcclxuICAvLyAgIHRoaXMub2Zmc2V0ID0gb2Zmc2V0O1xyXG4gIC8vICAgdGhpcy5saW1pdCA9IGxpbWl0O1xyXG4gIC8vICAgY29uc3QgcmVxUGFyYW0gPSB7XHJcbiAgLy8gICAgIG9mZnNldDogKG9mZnNldCk/b2Zmc2V0OjAsXHJcbiAgLy8gICAgIGxpbWl0OiBsaW1pdCxcclxuICAvLyAgIH07XHJcbiAgLy8gICBpZiAoY3VycmVudFBhZ2UgPD0gdG90YWxQYWdlcykgcmVjZW50bHlBZGRlZENsYXNzKHJlcVBhcmFtKTtcclxuICAvLyB9XHJcblxyXG4gIF9zbGlkZXJQYWdpbmF0ZShlKSB7XHJcblxyXG4gICAgLy9jb25zb2xlLmxvZyhcIj09PT09PT09PT09PVllcyBub29yIGl0IGRpZCBjb21lIGhlcmVlXCIpXHJcbiAgICBpZih0aGlzLmlzTW9iaWxlVmlldyA9PT0gZmFsc2Upe1xyXG4gICAgICBzdG9yZS5kaXNwYXRjaChpbml0TG9hZGVyKHRydWUpKTtcclxuICAgIH1cclxuICAgIHN0b3JlLmRpc3BhdGNoKHNldFJlY2VudGx5QWRkZWRDbGFzc0RhdGEoW10sIFwiaW5jcmVtZW50XCIpKTtcclxuICAgIC8vaWYgKGUuZGV0YWlsLnR5cGUgPT09IHRoaXMuc2xpZGVyVHlwZSlcclxuICAgICAgXHJcbiAgICAgIC8vZXZlbnRSZWNlbnRseUFkZGVkQ2xhc3Nlc1BhZ2luYXRpb24oKTtcclxuICB9XHJcblxyXG4gIHJlbmRlcigpIHtcclxuICAgIC8vY29uc29sZS5sb2coXCJJbiByZWNlbnRseSBhZGRlZCByZW5kZXIgbWV0aG9kXCIpXHJcbiAgICBsZXQgY2FyZF90ZW1wbGF0ZSA9IFwiXCI7XHJcbiAgICBsZXQgYWRkX2NhcmRzX3RlbXBsYXRlID0gXCJcIjtcclxuICAgIGxldCByZWNlbnRseUFkZGVkX2RhdGEgPSBcIlwiO
11xyXG4gICAgbGV0IGFkZENhcmREYXRhID0gXCJcIjtcclxuICAgIGNhcmRfdGVtcGxhdGUgPSB0aGlzLnJlY2VudGx5Q29udGVudFxyXG4gICAgICAubWFwKChyZWNvcmQpID0+IHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgcmVjZW50bHlBZGRlZF9kYXRhID0gSlNPTi5zdHJpbmdpZnkocmVjb3JkKTtcclxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgcmVjZW50bHlBZGRlZF9kYXRhID0gXCJcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGA8ZGl2IGNsYXNzPVwic3dpcGVyLXNsaWRlIG1lZGl1bVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGNhcmQtZWxlbWVudCBjYXJkQ2xhc3M9XCJtZWRpdW1cIiBjbGFzcy1jb2xsZWN0aW9uPScke2VzY2FwZVNwZWNpYWxDaGFycyhyZWNlbnRseUFkZGVkX2RhdGEpfScgY2FyZFR5cGU9XCJtZWRpdW1cIiAgc2xpZGVyVHlwZT1cIiR7dGhpcy5zbGlkZXJUeXBlfVwiIGNhcmQtY29uZmlnPSd7XCJzaG93U3Vic2NyaWJlVGlsZVwiOiB0cnVlLCBcInNob3dBZGRUb0NhcmRcIiA6IHRydWV9Jz48L2NhcmQtZWxlbWVudD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PmA7XHJcbiAgICAgIH0pXHJcblxyXG4gICAgYWRkX2NhcmRzX3RlbXBsYXRlID0gdGhpcy5yZWNlbnRseUN1cnJlbnRDb250ZW50XHJcbiAgICAgIC5tYXAoKGFkZENhcmRyZWNvcmQpID0+IHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgYWRkQ2FyZERhdGEgPSBKU09OLnN0cmluZ2lmeShhZGRDYXJkcmVjb3JkKTtcclxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgYWRkQ2FyZERhdGEgPSBcIlwiO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYDxkaXYgY2xhc3M9XCJzd2lwZXItc2xpZGUgbWVkaXVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNhcmQtZWxlbWVudCBjYXJkQ2xhc3M9XCJtZWRpdW1cIiBjbGFzcy1jb2xsZWN0aW9uPScke2VzY2FwZVNwZWNpYWxDaGFycyhhZGRDYXJkRGF0YSl9JyBjYXJkVHlwZT1cIm1lZGl1bVwiICBzbGlkZXJUeXBlPVwiJHt0aGlzLnNsaWRlclR5cGV9XCIgY2FyZC1jb25maWc9J3tcInNob3dTdWJzY3JpYmVUaWxlXCI6IHRydWUsIFwic2hvd0FkZFRvQ2FyZFwiIDogdHJ1ZX0nPjwvY2FyZC1lbGVtZW50PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+YDtcclxuICAgICAgfSlcclxuXHJcbiAgICBjb25zdCBkYXRhX2xlbmd0aCA9ICh0aGlzLnJlY2VudGx5Q3VycmVudENvbnRlbnQpP3RydWU6ZmFsc2VcclxuICAgIGNvbnN0IGRhdGFfY291bnQgPSAodGhpcy5yZWNlbnRseVRvdGFsQ291bnQgPT0gOTk5OTk5OSk/ZmFsc2U6IHRydWVcclxuICAgIC8vY29uc29sZS5sb2coXCI6Ojo6Ojo6Ojo6Ojo6Ojo6OlRSVUUgdGhpcy5yZWNlbnRseUN1cnJlbnRDb250ZW50Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6XCIsdGhpcy5yZWNlbnRseUN1cnJlbnRDb250ZW50LCB0aGlzLnJlY2VudGx5VG90YWxDb3VudClcclxuICAgIHJldHVybiBodG1sYFxyXG4gICAgJHsoZGF0YV9jb3VudD09dHJ1ZSk/aHRtbGBcclxuICAgIDxmbHVpZC1jb250YWluZXIgZmx1aWRDbGFzcz1cImNvbnRhaW5lci1wYWdlcyBiZy1ncmV5U2hhZG93LWJyb3dzZVwiPlxyXG4gICAgPGhlYWRpbmctZWxlbWVudCBoZWFkaW5nVHlwZT1cImgyXCIgY29udmVydEhUTUw9XCJ0cnVlXCIgaGVhZGluZ1RleHQ9Jzxsb2NhbC1lbGVtIGxvY2FsS2V5PVwiUmVjZW50bHkgQWRkZWQgQ2xhc3Nlc1wiPjwvbG9jYWwtZWxlbT4nIGhlYWRpbmdDbGFzcz1cInRpdGxlIHRpdGxlLWJsdWVcIj48L2hlYWRpbmctZWxlbWVudD5cclxuICAgIDxicy1zd2lwZXIgXHJcbiAgICAgICAgICAuc2xpZGVyQ2FyZEVsZW09JHtjYXJkX3RlbXBsYXRlfVxyXG4gICAgICAgICAgLnNsaWRlckFkZENhcmRFbGVtPSR7YWRkX2NhcmRzX3RlbXBsYXRlfVxyXG4gICAgICAgICAgc2xpZGVyQ2xhc3M9XCJyZWNlbnRseS1hZGRlZC1zbGlkZXJcIlxyXG4gICAgICAgICAgc2xpZGVyVHlwZT1cIiR7dGhpcy5zbGlkZXJUeXBlfVwiXHJcbiAgICAgICAgICBhY3RpdmVQYWdlQ291bnQgPSAke3RoaXMuYWN0aXZlUGFnZUNvdW50fVxyXG4gICAgICAgICAgZGF0YUNvdW50PSR7dGhpcy5yZWNlbnRseUFkZGVkQ29udGVudC5sZW5ndGh9XHJcbiAgICAgICAgICB0b3RhbENvdW50PSR7dGhpcy5yZWNlbnRseVRvdGFsQ291bnR9XHJcbiAgICAgICAgICBAc2xpZGVyLXBhZ2luYXRlPSR7dGhpcy5fc2xpZGVyUGFnaW5hdGV9XHJcbiAgICAgICAgICBjYXJkVHlwZT1cIm1lZGl1bVwiPlxyXG4gICAgPC9icy1zd2lwZXI+XHJcbiAgICA8L2ZsdWlkLWNvbnRhaW5lcj4gXHJcbiAgICBgOmh0bWxgYH1gO1xyXG5cclxuICAgIC8vIHJldHVybiBodG1sYCAke3RoaXMucmVjZW50bHlBZGRlZENvbnRlbnQgJiZcclxuICAgIC8vIHRoaXMucmVjZW50bHlBZGRlZENvbnRlbnQubGVuZ3RoID4gMFxyXG4gICAgLy8gICA/IGh0bWxgPGZsdWlkLWNvbnRhaW5lciBmbHVpZENsYXNzPVwiY29udGFpbmVyLXBhZ2VzIGJnLWdyZXlTaGFkb3ctYnJvd3NlXCI+XHJcbiAgICAvLyAgIDxoZWFkaW5nLWVsZW1lbnQgaGVhZGluZ1R5cGU9XCJoMlwiIGNvbnZlcnRIVE1MPXRydWUgaGVhZGluZ1RleHQ9Jzxsb2NhbC1lbGVtIGxvY2FsS2V5PVwiUmVjZW50bHkgQWRkZWQgQ2xhc3Nlc1wiPjwvbG9jYWwtZWxlbT4nIGhlYWRpbmdDbGFzcz1cInRpdGxlIHRpdGxlLWJsdWVcIj48L2hlYWRpbmctZWxlbWVudD5cclxuICAgIC8vICAgICA8ZGl2IHNsaWRlcl9jb250ZW50X3R5cGU9XCJcIj5cclxuICAgIC8vICAgICAgIDxzbGlkZXItZWxlbWVudFxyXG4gICAgLy8gICAgICAgICBzbGlkZXJDYXJkRWxlbT0ke2NhcmRfdGVtcGxhdGV9XHJcbiAgICAvLyAgICAgICAgIHNsaWRlckFkZENhcmRFbGVtPSR7YWRkX2NhcmRzX3RlbXBsYXRlfVxyXG4gICAgLy8gICAgICAgICBzbGlkZXJDbGFzcz1cInJlY2VudGx5LWFkZGVkLXNsaWRlclwiXHJcbiAgICAvLyAgICAgICAgIHNsaWRlclR5cGU9XCIke3RoaXMuc2xpZGVyVHlwZX1cIlxyXG4gICAgLy8gICAgICAgICBhY3RpdmVQYWdlQ291bnQgPSAke3RoaXMuYWN0aXZlUGFnZUNvdW50fVxyXG4gICAgLy8gICAgICAgICBkYXRhQ291bnQgPSAke3RoaXMucmVjZW50bHlBZGRlZENvbnRlbnQubGVuZ3RofVxyXG4gICAgLy8gICAgICAgICB0b3RhbENvdW50ID0gJHt0aGlzLnJlY2VudGx5VG90YWxDb3VudH1cclxuICAgIC8vICAgICAgICAgQHNsaWRlci1wYWdpbmF0ZT0ke3RoaXMuX3NsaWRlclBhZ2luYX
1RlfVxyXG4gICAgLy8gICAgICAgICBjYXJkVHlwZSA9IFwibWVkaXVtXCI+XHJcbiAgICAvLyAgICAgICA8L3NsaWRlci1lbGVtZW50PlxyXG4gICAgLy8gICAgIDwvZGl2PlxyXG4gICAgLy8gICA8L2ZsdWlkLWNvbnRhaW5lcj5gXHJcbiAgICAvLyAgIDogYGB9YDtcclxuICB9XHJcbn1cclxuXHJcbmN1c3RvbUVsZW1lbnRzLmRlZmluZShcInJlY2VudGx5LWFkZGVkXCIsIFJlY2VudGx5QWRkZWRDbGFzcyk7XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///310\n\n}')},2547:(__unused_webpack_module,__unused_webpack___webpack_exports__,__webpack_require__)=>{eval('{\n// EXTERNAL MODULE: ./node_modules/lit-element/index.js\nvar lit_element = __webpack_require__(4420);\n// EXTERNAL MODULE: ./node_modules/pwa-helpers/connect-mixin.js\nvar connect_mixin = __webpack_require__(4753);\n// EXTERNAL MODULE: ./src/redux/store.js + 1 modules\nvar store = __webpack_require__(5548);\n// EXTERNAL MODULE: ./src/redux/actions.js\nvar actions = __webpack_require__(3534);\n// EXTERNAL MODULE: ./src/constants.js\nvar constants = __webpack_require__(5521);\n// EXTERNAL MODULE: ./node_modules/lit/index.js\nvar lit = __webpack_require__(6161);\n;// ./src/components/suggest-class/suggest-class.scss\n /* harmony default export */ const suggest_class = ((0,lit/* css */.AH)`@import url(https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;500;600;700&display=swap);a{color:#0493cc;cursor:pointer;text-decoration:none;font-size:16px}a:hover{color:#97c940}.center{text-align:center!important}.left{text-align:left!important}.right{text-align:right!important}img,svg{vertical-align:middle}*,::after,::before{box-sizing:border-box}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}.flex-center{display:flex!important;justify-content:center!important}textarea::placeholder{color:#848fa5!important}@media(max-width:768px){.tab-content{position:relative;padding:0 0 0 34px}}.suggest-class{color:#fff}.suggest-class h2{font-weight:700;margin-bottom:0;font-size:24px;display:block}.suggest-class span{font-size:18px}.classSuggestionTxt{width:100%;resize:none;padding:10px;margin:auto;display:block;border:1px solid #bec7d7;border-radius:8px;font-family:"Open Sans",sans-serif;font-size:12px}.classSuggestionTxt.border-red{border:1px solid #fe5a72}.classSuggestionTxt:focus{outline:0}.model-header-slot{padding:5px 14px}.model-close{background-color:rgba(0,0,0,0);background-repeat:no-repeat;padding:0;border:0;z-index:9999;font-size:24px;cursor:pointer}.model-close span{color:#bec7d7;font-size:28px;font-weight:lighter;margin-top:-17px}.sugestClass-paragraph{width:85%;text-align:center;font-size:16px;margin:2px auto 24px auto;color:#67748c;line-height:20px;font-weight:400}@media(max-width:610px){.sugestClass-paragraph{font-size:14px;width:91%}}.error-message{color:#fe5a72;font-size:13px;width:84%;margin:4px auto}.hide{display:none}.modal-content{max-width:375px}.modal-message{margin:30px 0}`);\n \n// EXTERNAL MODULE: ./src/assets/images/suggest-success.png\nvar suggest_success = __webpack_require__(3653);\n// EXTERNAL MODULE: ./src/assets/images/icons/suggest_class.png\nvar icons_suggest_class = __webpack_require__(3917);\n// EXTERNAL MODULE: ./src/assets/images/icons/Icon_Check.svg\nvar Icon_Check = __webpack_require__(1877);\n// EXTERNAL MODULE: ./src/controllers/suggestClassController.js\nvar suggestClassController = __webpack_require__(3002);\n// EXTERNAL MODULE: ./src/utils/common.js\nvar common = __webpack_require__(8369);\n// EXTERNAL MODULE: ./node_modules/sleep-promise/build/esm.mjs\nvar esm = __webpack_require__(4394);\n// EXTERNAL MODULE: ./src/utils/analytics.js + 1 modules\nvar analytics = __webpack_require__(5908);\n// EXTERNAL MODULE: ./src/components/button/button.js\nvar button_button = __webpack_require__(2104);\n// EXTERNAL MODULE: ./src/components/blue-section/blue-section.js + 1 modules\nvar blue_section = __webpack_require__(1595);\n// EXTERNAL MODULE: ./src/components/span/span.js\nvar span = __webpack_require__(8820);\n// EXTERNAL MODULE: ./src/components/headings/headings.js\nvar headings = __webpack_require__(758);\n// EXTERNAL MODULE: ./src/components/image/image.js\nvar image_image = __webpack_require__(7826);\n// EXTERNAL MODULE: ./src/components/dialog/dialog.js + 1 modules\nvar dialog = __webpack_require__(4633);\n// EXTERNAL MODULE: ./src/components/logout-dialog/logout-dialog.js + 1 modules\nvar logout_dialog = __webpack_require__(9793);\n// EXTERNAL MODULE: ./src/components/localization/localization.js\nvar localization = __webpack_require__(8550);\n;// ./src/components/suggest-class/suggest-class.js\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n \r\n class SuggestClassSection extends (0,connect_mixin/* connect */.N)(store/* store */.M)(lit_element/* LitElement */.WF) {\r\n\r\n static get properties() {\r\n return {\r\n suggestedMessage : { type : String},\r\n suggestHeading : { type : String},\r\n suggestDesc : { type : String},\r\n errorMessage : {type : String},\r\n suggestClassImg : { type : String},\r\n dialogShow: { type: String },\r\n dialogType: { type: String }\r\n };\r\n }\r\n\r\n static get styles() {\r\n return [suggest_class];\r\n }\r\n\r\n stateChanged(state) {\r\n this.modelOpen = state.modelOpen;\r\n this.dailogModelOpen = state.dailogModelOpen;\r\n this.dialogType = state.dialogType;\r\n }\r\n\r\n constructor(){\r\n super();\r\n this.suggestedMessage = "";\r\n this.dialogShow = \'hide\';\r\n this.dialogType = \'\';\r\n }\r\n\r\n _closeLogoutModal(){\r\n store/* store */.M.dispatch((0,actions/* openLogoutDialog */.Rj)("hide"));\r\n }\r\n\r\n\r\n shouldUpdate(changedProperties) {\r\n return changedProperties.has(\'dialogShow\');\r\n }\r\n\r\n render() {\r\n return (0,lit_element/* html */.qy)`<blue-section-element>\r\n <div class="suggest-class center">\r\n <heading-element headingType="h2" headingText=\'<local-elem localKey="Don't See"></local-elem>\' headingClass="title title-white" convertHTML=true></heading-element>
1\r\n <span-element spanText=\'<local-elem localKey="what you're looking for?"></local-elem>\' convertHTML=true spanClass="default center"></span-element>\r\n <button-element buttonType="white" buttonText="<local-elem localKey=\'Suggest a class\'></local-elem>" convertHTML=true buttonClick=${true} @click="${this._renderModal}"></button-element>\r\n </div>\r\n </blue-section-element>\r\n ${store/* store */.M.getState().dialogType==\'\'?(0,lit_element/* html */.qy)`<div dialogShow=\'hide\'>${this._get_dialog()}</div>`:(0,lit_element/* html */.qy)``}\r\n <logout-dialog>\r\n <div slot="model-header-slot">\r\n <button\r\n type="button"\r\n class="model-close"\r\n data-dismiss="modal"\r\n aria-label="Close"\r\n @click="${this._closeLogoutModal}"\r\n >\r\n <span aria-hidden="true">×</span>\r\n </button>\r\n </div>\r\n <div slot="model-header-body">\r\n <image-element\r\n imageSrc="${Icon_Check/* default */.A}"\r\n imageClass="modal-img"\r\n ></image-element>\r\n <div class="modal-message">\r\n <span-element\r\n spanText="You have been successfully logged out"\r\n spanClass="logout-message"\r\n ></span-element>\r\n </div>\r\n </div>\r\n </logout-dialog>\r\n `;\r\n }\r\n\r\n _updateShownValue (e) {\r\n this.suggestedMessage = e.srcElement.value\r\n }\r\n\r\n _validatechange(e) {\r\n let enteredMessage = e.srcElement.value;\r\n if(enteredMessage != "" && (enteredMessage).length > 5) {\r\n this.shadowRoot.getElementById(\'suggestMessage\').classList.remove("border-red");\r\n this.errorMessage = "";\r\n }\r\n }\r\n\r\n // requestUpdate() {\r\n // return super.requestUpdate();\r\n // }\r\n\r\n _get_dialog(){\r\n // console.log(\'modalOpen\',store.getState().modelOpen)\r\n if(store/* store */.M.getState().modelOpen==\'show\'){\r\n return (0,lit_element/* html */.qy)`<dialog-element>\r\n <div slot="model-header-slot">\r\n <button type="button" class="model-close" data-dismiss="modal" aria-label="Close" @click="${this._closeModal}">\r\n <span aria-hidden="true">×</span>\r\n </button>\r\n </div>\r\n <div slot="model-header-body">\r\n <image-element imageSrc="${this.suggestClassImg}" imageClass="${this.suggestImgClass}"></image-element>\r\n <heading-element headingType="h6" headingCLass="sugestClass-header center" headingText="${this.suggestHeading}" headingClass="title title-black center"></heading-element>\r\n <p class="sugestClass-paragraph">${(0,common/* convert_string_to_fragment */.LX)(this.suggestDesc)}</p>\r\n <textarea rows="4" class="classSuggestionTxt" id="suggestMessage" placeholder="Some common questions might be... \\n How to get my child to sleep through the night." @change=${this._updateShownValue} @keyup=${this._validatechange}></textarea>\r\n <p class="error-message"><i class="fat fa-circle-info fa-lg fa-fw"></i>${this.errorMessage}</p>\r\n </div>\r\n <div slot="model-header-footer" id="suggestModalFooter">\r\n <button-element buttonType="primary" buttonClass="sugestClass-button" buttonText="Suggest Class" buttonClick=${true} @click="${this._submitClassSuggestion}"></button-element>\r\n </div>\r\n </dialog-element>`;\r\n }else{\r\n return (0,lit_element/* html */.qy) ``;\r\n }\r\n }\r\n \r\n _renderModal(){\r\n if(store/* store */.M.dispatch((0,actions/* openDialog */.Dh)("show"))){\r\n if(this._get_dialog()){\r\n this.dialogShow = \'show\';\r\n this.suggestedMessage = "";\r\n this.suggestHeading = "What topic do you need help with?";\r\n this.suggestDesc = "Please provide a brief description of what you\'re interested in learning.";\r\n this.errorMessage = "";
1\r\n this.suggestImgClass = "modal-img";\r\n this.suggestClassImg = icons_suggest_class/* default */.A;\r\n this.shadowRoot.getElementById(\'suggestMessage\').value = "";\r\n this.shadowRoot.getElementById(\'suggestMessage\').classList.remove("hide");\r\n this.shadowRoot.getElementById(\'suggestModalFooter\').classList.remove("hide");\r\n this.shadowRoot.getElementById(\'suggestMessage\').classList.remove("border-red");\r\n }\r\n }\r\n\r\n \r\n\r\n //FB-Google Event\r\n (0,analytics/* eventSuggestAClass */.Y0)();\r\n }\r\n\r\n _closeModal(){\r\n this.suggestedMessage = "";\r\n if(store/* store */.M.dispatch((0,actions/* openDialog */.Dh)("hide"))){\r\n this.dialogShow = \'hide\';\r\n store/* store */.M.dispatch((0,actions/* openDialogType */.Ne)(""));\r\n }\r\n \r\n }\r\n\r\n async _submitClassSuggestion(){ \r\n this.dialogShow = \'hide\';\r\n if(this.suggestedMessage != "" && (this.suggestedMessage).length > 5) {\r\n\r\n const submitObj = {\r\n \'user_message\' : this.suggestedMessage\r\n }\r\n\r\n let suggestClassAPIRes = await (0,suggestClassController/* submitSuggestion */.l)(submitObj);\r\n if(suggestClassAPIRes == false){\r\n this.dialogShow = \'show\';\r\n this.suggestClassImg = suggest_success/* default */.A;\r\n this.suggestHeading = "Sorry,We couldn\'t send an email.";\r\n this.suggestDesc = `Please do send us email to <a href="mailto:[email protected]">[email protected]</a>`;\r\n this.suggestImgClass ="modal-suggest-success"\r\n this.shadowRoot.getElementById(\'suggestMessage\').classList.add("hide");\r\n this.shadowRoot.getElementById(\'suggestModalFooter\').classList.add("hide");\r\n }else {\r\n this.dialogShow = \'show\';\r\n this.suggestClassImg = suggest_success/* default */.A;\r\n this.suggestHeading = "Thank you for your feedback!";\r\n this.suggestDesc = "We will share it with our instructors.";\r\n this.suggestImgClass ="modal-suggest-success"\r\n this.shadowRoot.getElementById(\'suggestMessage\').classList.add("hide");\r\n this.shadowRoot.getElementById(\'suggestModalFooter\').classList.add("hide");\r\n var that = this;\r\n (0,esm/* default */.A)(constants/* WAIT_TIMOUT */.NV).then(function() {\r\n that._closeModal();\r\n });\r\n }\r\n }else {\r\n this.dialogShow = \'show\';\r\n this.shadowRoot.getElementById(\'suggestMessage\').classList.add("border-red");\r\n this.errorMessage = "Please enter the details";\r\n }\r\n\r\n }\r\n }\r\n \r\n customElements.define("suggest-class-section", SuggestClassSection);\r\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjU0Ny5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL0JhYnlTcGFya3MvLi9zcmMvY29tcG9uZW50cy9zdWdnZXN0LWNsYXNzL3N1Z2dlc3QtY2xhc3Muc2Nzcz80MjcyIiwid2VicGFjazovL0JhYnlTcGFya3MvLi9zcmMvY29tcG9uZW50cy9zdWdnZXN0LWNsYXNzL3N1Z2dlc3QtY2xhc3MuanM/MzRkMCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2Nzc30gZnJvbSAnbGl0JzsgZXhwb3J0IGRlZmF1bHQgY3NzYEBpbXBvcnQgdXJsKGh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9T3BlbitTYW5zOndnaHRAMzAwOzQwMDs1MDA7NjAwOzcwMCZkaXNwbGF5PXN3YXApO2F7Y29sb3I6IzA0OTNjYztjdXJzb3I6cG9pbnRlcjt0ZXh0LWRlY29yYXRpb246bm9uZTtmb250LXNpemU6MTZweH1hOmhvdmVye2NvbG9yOiM5N2M5NDB9LmNlbnRlcnt0ZXh0LWFsaWduOmNlbnRlciFpbXBvcnRhbnR9LmxlZnR7dGV4dC1hbGlnbjpsZWZ0IWltcG9ydGFudH0ucmlnaHR7dGV4dC1hbGlnbjpyaWdodCFpbXBvcnRhbnR9aW1nLHN2Z3t2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Kiw6OmFmdGVyLDo6YmVmb3Jle2JveC1zaXppbmc6Ym9yZGVyLWJveH0uaDEsLmgyLC5oMywuaDQsLmg1LC5oNixoMSxoMixoMyxoNCxoNSxoNnttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTouNXJlbTtmb250LXdlaWdodDo1MDA7bGluZS1oZWlnaHQ6MS4yfS5mbGV4LWNlbnRlcntkaXNwbGF5OmZsZXghaW1wb3J0YW50O2p1c3RpZnktY29udGVudDpjZW50ZXIhaW1wb3J0YW50fXRleHRhcmVhOjpwbGFjZWhvbGRlcntjb2xvcjojODQ4ZmE1IWltcG9ydGFudH1AbWVkaWEobWF4LXdpZHRoOjc2OHB4KXsudGFiLWNvbnRlbn
1R7cG9zaXRpb246cmVsYXRpdmU7cGFkZGluZzowIDAgMCAzNHB4fX0uc3VnZ2VzdC1jbGFzc3tjb2xvcjojZmZmfS5zdWdnZXN0LWNsYXNzIGgye2ZvbnQtd2VpZ2h0OjcwMDttYXJnaW4tYm90dG9tOjA7Zm9udC1zaXplOjI0cHg7ZGlzcGxheTpibG9ja30uc3VnZ2VzdC1jbGFzcyBzcGFue2ZvbnQtc2l6ZToxOHB4fS5jbGFzc1N1Z2dlc3Rpb25UeHR7d2lkdGg6MTAwJTtyZXNpemU6bm9uZTtwYWRkaW5nOjEwcHg7bWFyZ2luOmF1dG87ZGlzcGxheTpibG9jaztib3JkZXI6MXB4IHNvbGlkICNiZWM3ZDc7Ym9yZGVyLXJhZGl1czo4cHg7Zm9udC1mYW1pbHk6XCJPcGVuIFNhbnNcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4fS5jbGFzc1N1Z2dlc3Rpb25UeHQuYm9yZGVyLXJlZHtib3JkZXI6MXB4IHNvbGlkICNmZTVhNzJ9LmNsYXNzU3VnZ2VzdGlvblR4dDpmb2N1c3tvdXRsaW5lOjB9Lm1vZGVsLWhlYWRlci1zbG90e3BhZGRpbmc6NXB4IDE0cHh9Lm1vZGVsLWNsb3Nle2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7cGFkZGluZzowO2JvcmRlcjowO3otaW5kZXg6OTk5OTtmb250LXNpemU6MjRweDtjdXJzb3I6cG9pbnRlcn0ubW9kZWwtY2xvc2Ugc3Bhbntjb2xvcjojYmVjN2Q3O2ZvbnQtc2l6ZToyOHB4O2ZvbnQtd2VpZ2h0OmxpZ2h0ZXI7bWFyZ2luLXRvcDotMTdweH0uc3VnZXN0Q2xhc3MtcGFyYWdyYXBoe3dpZHRoOjg1JTt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6MTZweDttYXJnaW46MnB4IGF1dG8gMjRweCBhdXRvO2NvbG9yOiM2Nzc0OGM7bGluZS1oZWlnaHQ6MjBweDtmb250LXdlaWdodDo0MDB9QG1lZGlhKG1heC13aWR0aDo2MTBweCl7LnN1Z2VzdENsYXNzLXBhcmFncmFwaHtmb250LXNpemU6MTRweDt3aWR0aDo5MSV9fS5lcnJvci1tZXNzYWdle2NvbG9yOiNmZTVhNzI7Zm9udC1zaXplOjEzcHg7d2lkdGg6ODQlO21hcmdpbjo0cHggYXV0b30uaGlkZXtkaXNwbGF5Om5vbmV9Lm1vZGFsLWNvbnRlbnR7bWF4LXdpZHRoOjM3NXB4fS5tb2RhbC1tZXNzYWdle21hcmdpbjozMHB4IDB9YDtcbiAgICAiLCJpbXBvcnQge1xyXG4gICAgTGl0RWxlbWVudCxcclxuICAgIGh0bWxcclxuICB9IGZyb20gXCJsaXQtZWxlbWVudFwiO1xyXG5cclxuICBpbXBvcnQgeyBjb25uZWN0IH0gZnJvbSAncHdhLWhlbHBlcnMnO1xyXG4gIGltcG9ydCB7IHN0b3JlIH0gZnJvbSAnLi4vLi4vcmVkdXgvc3RvcmUuanMnO1xyXG4gIGltcG9ydCB7IG9wZW5EaWFsb2csIG9wZW5Mb2dvdXREaWFsb2csIG9wZW5EaWFsb2dUeXBlIH0gZnJvbSAnLi4vLi4vcmVkdXgvYWN0aW9ucy5qcyc7XHJcbiAgaW1wb3J0IHsgV0FJVF9USU1PVVQsIEhPTUVfUEFHRV9VUkwgfSBmcm9tICcuLi8uLi9jb25zdGFudHMuanMnO1xyXG4gIGltcG9ydCBTdWdnZXN0Q2xhc3NTdHlsZSBmcm9tICcuL3N1Z2dlc3QtY2xhc3Muc2Nzcyc7XHJcbiAgaW1wb3J0IHN1Z2dlc3RDbGFzc1N1Y2Nlc3NJbWcgZnJvbSAnLi4vLi4vYXNzZXRzL2ltYWdlcy9zdWdnZXN0LXN1Y2Nlc3MucG5nJ1xyXG4gIGltcG9ydCBzdWdnZXN0Q2xhc3NJbnB1dEltZyBmcm9tICcuLi8uLi9hc3NldHMvaW1hZ2VzL2ljb25zL3N1Z2dlc3RfY2xhc3MucG5nJ1xyXG4gIGltcG9ydCBjaGVja0ljb24gZnJvbSAnLi4vLi4vYXNzZXRzL2ltYWdlcy9pY29ucy9JY29uX0NoZWNrLnN2ZydcclxuICBpbXBvcnQgeyBzdWJtaXRTdWdnZXN0aW9uIH0gZnJvbSAnLi4vLi4vY29udHJvbGxlcnMvc3VnZ2VzdENsYXNzQ29udHJvbGxlci5qcyc7XHJcbiAgaW1wb3J0IHtjb252ZXJ0X3N0cmluZ190b19mcmFnbWVudH0gZnJvbSAnLi4vLi4vdXRpbHMvY29tbW9uLmpzJ1xyXG4gIGltcG9ydCBzbGVlcCBmcm9tICdzbGVlcC1wcm9taXNlJztcclxuICBpbXBvcnQgeyBldmVudFN1Z2dlc3RBQ2xhc3MgfSBmcm9tICcuLi8uLi91dGlscy9hbmFseXRpY3MnXHJcbiBcclxuICBpbXBvcnQgJy4uL2J1dHRvbi9idXR0b24uanMnO1xyXG4gIGltcG9ydCAnLi4vYmx1ZS1zZWN0aW9uL2JsdWUtc2VjdGlvbi5qcyc7XHJcbiAgaW1wb3J0ICcuLi9zcGFuL3NwYW4uanMnO1xyXG4gIGltcG9ydCAnLi4vaGVhZGluZ3MvaGVhZGluZ3MuanMnO1xyXG4gIGltcG9ydCAnLi4vaW1hZ2UvaW1hZ2UuanMnXHJcbiAgaW1wb3J0ICcuLi9kaWFsb2cvZGlhbG9nLmpzJztcclxuICBpbXBvcnQgJy4uL2xvZ291dC1kaWFsb2cvbG9nb3V0LWRpYWxvZy5qcyc7XHJcbiAgaW1wb3J0IFwiLi4vbG9jYWxpemF0aW9uL2xvY2FsaXphdGlvbi5qc1wiO1xyXG5cclxuXHJcblxyXG4gIFxyXG4gIGNsYXNzIFN1Z2dlc3RDbGFzc1NlY3Rpb24gZXh0ZW5kcyBjb25uZWN0KHN0b3JlKShMaXRFbGVtZW50KSB7XHJcblxyXG4gICAgc3RhdGljIGdldCBwcm9wZXJ0aWVzKCkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBzdWdnZXN0ZWRNZXNzYWdlIDogeyB0eXBlIDogU3RyaW5nfSxcclxuICAgICAgICAgIHN1Z2dlc3RIZWFkaW5nIDogeyB0eXBlIDogU3RyaW5nfSxcclxuICAgICAgICAgIHN1Z2dlc3REZXNjIDogeyB0eXBlIDogU3RyaW5nfSxcclxuICAgICAgICAgIGVycm9yTWVzc2FnZSA6IHt0eXBlIDogU3RyaW5nfSxcclxuICAgICAgICAgIHN1Z2dlc3RDbGFzc0ltZyA6IHsgdHlwZSA6IFN0cmluZ30sXHJcbiAgICAgICAgICBkaWFsb2dTaG93OiB7IHR5cGU6IFN0cmluZyB9LFxyXG4gICAgICAgICAgZGlhbG9nVHlwZTogeyB0eXBlOiBTdHJpbmcgfVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGdldCBzdHlsZXMoKSB7XHJcbiAgICAgIHJldHVybiBbU3VnZ2VzdENsYXNzU3R5bGVdO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRlQ2hhbmdlZChzdGF0ZSkge1xyXG4gICAgICB0aGlzLm1vZGVsT3BlbiA9IHN0YXRlLm1vZGVsT3BlbjtcclxuICAgICAgdGhpcy5kYWlsb2dNb2RlbE9wZW4gPSBzdGF0ZS5kYWlsb2dNb2RlbE9wZW47XHJcbiAgICAgIHRoaXMuZGlhbG9nVHlwZSA9IHN0YXRlLmRpYWxvZ1R5cGU7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IoKXtcclxuICAgICAgc3VwZXIoKTtcclxuICAgICAgdGhpcy5zdWdnZXN0ZWRNZXNzYWdlICA9IFwiXCI7XHJcbiAgICAgIHRoaXMuZGlhbG9nU2hvdyA9ICdoaWRlJztcclxuICAgICAgdGhpcy5kaWFsb2dUeXBlID0gJyc7XHJcbiAgICB9XHJcblxyXG4gICAgX2Nsb3NlTG9nb3V0TW9kYWwoKXtcclxuICAgICAgc3RvcmUuZGlzcGF0Y2gob3BlbkxvZ291dERpYWxvZyhcImhpZGVcIikpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBzaG91bGRVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpIHtcclxuICAgICAgcmV0dXJuIGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnZGlhbG9nU2hvdycpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgcmV0dXJuIGh0bWxgPGJsdWUtc2VjdGlvbi1lbGVtZW50PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Z2dlc3QtY2xhc3MgY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoZWFkaW5nLWVsZW1lbnQgaGVhZGluZ1R5cGU9XCJoMlwiIGhlYWRpbmdUZXh0PSc8bG9jYWwtZWxlbSBsb2NhbEtleT1cIkRvbiYjMDM5O3QgU2VlXCI+PC9sb2NhbC1lbGVtPicgaGVhZGluZ0NsYXNzPVwidGl0bGUgdGl0bGUtd2h
1pdGVcIiBjb252ZXJ0SFRNTD10cnVlPjwvaGVhZGluZy1lbGVtZW50PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbi1lbGVtZW50IHNwYW5UZXh0PSc8bG9jYWwtZWxlbSBsb2NhbEtleT1cIndoYXQgeW91JiMwMzk7cmUgbG9va2luZyBmb3I/XCI+PC9sb2NhbC1lbGVtPicgY29udmVydEhUTUw9dHJ1ZSBzcGFuQ2xhc3M9XCJkZWZhdWx0IGNlbnRlclwiPjwvc3Bhbi1lbGVtZW50PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uLWVsZW1lbnQgYnV0dG9uVHlwZT1cIndoaXRlXCIgYnV0dG9uVGV4dD1cIjxsb2NhbC1lbGVtIGxvY2FsS2V5PSdTdWdnZXN0IGEgY2xhc3MnPjwvbG9jYWwtZWxlbT5cIiBjb252ZXJ0SFRNTD10cnVlIGJ1dHRvbkNsaWNrPSR7dHJ1ZX0gQGNsaWNrPVwiJHt0aGlzLl9yZW5kZXJNb2RhbH1cIj48L2J1dHRvbi1lbGVtZW50PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgPC9ibHVlLXNlY3Rpb24tZWxlbWVudD5cclxuICAgICAgICAgICAgICAgICAgJHtzdG9yZS5nZXRTdGF0ZSgpLmRpYWxvZ1R5cGU9PScnP2h0bWxgPGRpdiBkaWFsb2dTaG93PSdoaWRlJz4ke3RoaXMuX2dldF9kaWFsb2coKX08L2Rpdj5gOmh0bWxgYH1cclxuICAgICAgICAgICAgICAgICA8bG9nb3V0LWRpYWxvZz5cclxuICAgICAgICAgICAgICAgICA8ZGl2IHNsb3Q9XCJtb2RlbC1oZWFkZXItc2xvdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtb2RlbC1jbG9zZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCJcclxuICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkNsb3NlXCJcclxuICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPVwiJHt0aGlzLl9jbG9zZUxvZ291dE1vZGFsfVwiXHJcbiAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiZ0aW1lczs8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICA8ZGl2IHNsb3Q9XCJtb2RlbC1oZWFkZXItYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgICAgPGltYWdlLWVsZW1lbnRcclxuICAgICAgICAgICAgICAgICAgICAgaW1hZ2VTcmM9XCIke2NoZWNrSWNvbn1cIlxyXG4gICAgICAgICAgICAgICAgICAgICBpbWFnZUNsYXNzPVwibW9kYWwtaW1nXCJcclxuICAgICAgICAgICAgICAgICAgID48L2ltYWdlLWVsZW1lbnQ+XHJcbiAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtbWVzc2FnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICA8c3Bhbi1lbGVtZW50XHJcbiAgICAgICAgICAgICAgICAgICAgICAgc3BhblRleHQ9XCJZb3UgaGF2ZSBiZWVuIHN1Y2Nlc3NmdWxseSBsb2dnZWQgb3V0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBzcGFuQ2xhc3M9XCJsb2dvdXQtbWVzc2FnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgID48L3NwYW4tZWxlbWVudD5cclxuICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICA8L2xvZ291dC1kaWFsb2c+XHJcbiAgICAgICAgICAgICAgIGA7XHJcbiAgICB9XHJcblxyXG4gICAgX3VwZGF0ZVNob3duVmFsdWUgKGUpIHtcclxuICAgICAgdGhpcy5zdWdnZXN0ZWRNZXNzYWdlID0gZS5zcmNFbGVtZW50LnZhbHVlXHJcbiAgICB9XHJcblxyXG4gICAgX3ZhbGlkYXRlY2hhbmdlKGUpIHtcclxuICAgICAgbGV0IGVudGVyZWRNZXNzYWdlID0gZS5zcmNFbGVtZW50LnZhbHVlO1xyXG4gICAgICBpZihlbnRlcmVkTWVzc2FnZSAhPSBcIlwiICYmIChlbnRlcmVkTWVzc2FnZSkubGVuZ3RoID4gNSkge1xyXG4gICAgICAgIHRoaXMuc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgnc3VnZ2VzdE1lc3NhZ2UnKS5jbGFzc0xpc3QucmVtb3ZlKFwiYm9yZGVyLXJlZFwiKTtcclxuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IFwiXCI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyByZXF1ZXN0VXBkYXRlKCkge1xyXG4gICAgLy8gICByZXR1cm4gc3VwZXIucmVxdWVzdFVwZGF0ZSgpO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIF9nZXRfZGlhbG9nKCl7XHJcbiAgLy8gICAgY29uc29sZS5sb2coJ21vZGFsT3Blbicsc3RvcmUuZ2V0U3RhdGUoKS5tb2RlbE9wZW4pXHJcbiAgICAgIGlmKHN0b3JlLmdldFN0YXRlKCkubW9kZWxPcGVuPT0nc2hvdycpe1xyXG4gICAgICByZXR1cm4gaHRtbGA8ZGlhbG9nLWVsZW1lbnQ+XHJcbiAgICAgIDxkaXYgc2xvdD1cIm1vZGVsLWhlYWRlci1zbG90XCI+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cIm1vZGVsLWNsb3NlXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiBAY2xpY2s9XCIke3RoaXMuX2Nsb3NlTW9kYWx9XCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiZ0aW1lczs8L3NwYW4+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgc2xvdD1cIm1vZGVsLWhlYWRlci1ib2R5XCI+XHJcbiAgICAgICAgPGltYWdlLWVsZW1lbnQgaW1hZ2VTcmM9XCIke3RoaXMuc3VnZ2VzdENsYXNzSW1nfVwiIGltYWdlQ2xhc3M9XCIke3RoaXMuc3VnZ2VzdEltZ0NsYXNzfVwiPjwvaW1hZ2UtZWxlbWVudD5cclxuICAgICAgICA8aGVhZGluZy1lbGVtZW50IGhlYWRpbmdUeXBlPVwiaDZcIiBoZWFkaW5nQ0xhc3M9XCJzdWdlc3RDbGFzcy1oZWFkZXIgY2VudGVyXCIgaGVhZGluZ1RleHQ9XCIke3RoaXMuc3VnZ2VzdEhlYWRpbmd9XCIgaGVhZGluZ0NsYXNzPVwidGl0bGUgdGl0bGUtYmxhY2sgY2VudGVyXCI+PC9oZWFkaW5nLWVsZW1lbnQ+XHJcbiAgICAgICAgPHAgY2xhc3M9XCJzdWdlc3RDbGFzcy1wYXJhZ3JhcGhcIj4ke2NvbnZlcnRfc3RyaW5nX3RvX2ZyYWdtZW50KHRoaXMuc3VnZ2VzdERlc2MpfTwvcD5cclxuICAgICAgICA8dGV4dGFyZWEg
1cm93cz1cIjRcIiBjbGFzcz1cImNsYXNzU3VnZ2VzdGlvblR4dFwiIGlkPVwic3VnZ2VzdE1lc3NhZ2VcIiBwbGFjZWhvbGRlcj1cIlNvbWUgY29tbW9uIHF1ZXN0aW9ucyBtaWdodCBiZS4uLiBcXG4gSG93IHRvIGdldCBteSBjaGlsZCB0byBzbGVlcCB0aHJvdWdoIHRoZSBuaWdodC5cIiBAY2hhbmdlPSR7dGhpcy5fdXBkYXRlU2hvd25WYWx1ZX0gQGtleXVwPSR7dGhpcy5fdmFsaWRhdGVjaGFuZ2V9PjwvdGV4dGFyZWE+XHJcbiAgICAgICAgPHAgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+PGkgY2xhc3M9XCJmYXQgZmEtY2lyY2xlLWluZm8gZmEtbGcgZmEtZndcIj48L2k+JHt0aGlzLmVycm9yTWVzc2FnZX08L3A+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IHNsb3Q9XCJtb2RlbC1oZWFkZXItZm9vdGVyXCIgaWQ9XCJzdWdnZXN0TW9kYWxGb290ZXJcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbi1lbGVtZW50IGJ1dHRvblR5cGU9XCJwcmltYXJ5XCIgYnV0dG9uQ2xhc3M9XCJzdWdlc3RDbGFzcy1idXR0b25cIiBidXR0b25UZXh0PVwiU3VnZ2VzdCBDbGFzc1wiIGJ1dHRvbkNsaWNrPSR7dHJ1ZX0gQGNsaWNrPVwiJHt0aGlzLl9zdWJtaXRDbGFzc1N1Z2dlc3Rpb259XCI+PC9idXR0b24tZWxlbWVudD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgPC9kaWFsb2ctZWxlbWVudD5gO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICByZXR1cm4gaHRtbCBgYDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICBfcmVuZGVyTW9kYWwoKXtcclxuICAgICAgaWYoc3RvcmUuZGlzcGF0Y2gob3BlbkRpYWxvZyhcInNob3dcIikpKXtcclxuICAgICAgICBpZih0aGlzLl9nZXRfZGlhbG9nKCkpe1xyXG4gICAgICAgICAgdGhpcy5kaWFsb2dTaG93ID0gJ3Nob3cnO1xyXG4gICAgICAgICAgdGhpcy5zdWdnZXN0ZWRNZXNzYWdlID0gXCJcIjtcclxuICAgICAgICAgIHRoaXMuc3VnZ2VzdEhlYWRpbmcgPSBcIldoYXQgdG9waWMgZG8geW91IG5lZWQgaGVscCB3aXRoP1wiO1xyXG4gICAgICAgICAgdGhpcy5zdWdnZXN0RGVzYyA9IFwiUGxlYXNlIHByb3ZpZGUgYSBicmllZiBkZXNjcmlwdGlvbiBvZiB3aGF0IHlvdSdyZSBpbnRlcmVzdGVkIGluIGxlYXJuaW5nLlwiO1xyXG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBcIlwiO1xyXG4gICAgICAgICAgdGhpcy5zdWdnZXN0SW1nQ2xhc3MgPSBcIm1vZGFsLWltZ1wiO1xyXG4gICAgICAgICAgdGhpcy5zdWdnZXN0Q2xhc3NJbWcgPSBzdWdnZXN0Q2xhc3NJbnB1dEltZztcclxuICAgICAgICAgIHRoaXMuc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgnc3VnZ2VzdE1lc3NhZ2UnKS52YWx1ZSA9IFwiXCI7XHJcbiAgICAgICAgICB0aGlzLnNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoJ3N1Z2dlc3RNZXNzYWdlJykuY2xhc3NMaXN0LnJlbW92ZShcImhpZGVcIik7XHJcbiAgICAgICAgICB0aGlzLnNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoJ3N1Z2dlc3RNb2RhbEZvb3RlcicpLmNsYXNzTGlzdC5yZW1vdmUoXCJoaWRlXCIpO1xyXG4gICAgICAgICAgdGhpcy5zaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCdzdWdnZXN0TWVzc2FnZScpLmNsYXNzTGlzdC5yZW1vdmUoXCJib3JkZXItcmVkXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgIFxyXG5cclxuICAgICAgLy9GQi1Hb29nbGUgRXZlbnRcclxuICAgICAgZXZlbnRTdWdnZXN0QUNsYXNzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgX2Nsb3NlTW9kYWwoKXtcclxuICAgICAgdGhpcy5zdWdnZXN0ZWRNZXNzYWdlID0gXCJcIjtcclxuICAgICAgaWYoc3RvcmUuZGlzcGF0Y2gob3BlbkRpYWxvZyhcImhpZGVcIikpKXtcclxuICAgICAgICB0aGlzLmRpYWxvZ1Nob3cgPSAnaGlkZSc7XHJcbiAgICAgICAgc3RvcmUuZGlzcGF0Y2gob3BlbkRpYWxvZ1R5cGUoXCJcIikpO1xyXG4gICAgICB9XHJcbiAgICAgIFxyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIF9zdWJtaXRDbGFzc1N1Z2dlc3Rpb24oKXsgICAgIFxyXG4gICAgICB0aGlzLmRpYWxvZ1Nob3cgPSAnaGlkZSc7XHJcbiAgICAgIGlmKHRoaXMuc3VnZ2VzdGVkTWVzc2FnZSAhPSBcIlwiICYmICh0aGlzLnN1Z2dlc3RlZE1lc3NhZ2UpLmxlbmd0aCA+IDUpIHtcclxuXHJcbiAgICAgICAgY29uc3Qgc3VibWl0T2JqID0ge1xyXG4gICAgICAgICAgJ3VzZXJfbWVzc2FnZScgOiB0aGlzLnN1Z2dlc3RlZE1lc3NhZ2VcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBzdWdnZXN0Q2xhc3NBUElSZXMgPSBhd2FpdCBzdWJtaXRTdWdnZXN0aW9uKHN1Ym1pdE9iaik7XHJcbiAgICAgICAgaWYoc3VnZ2VzdENsYXNzQVBJUmVzID09IGZhbHNlKXtcclxuICAgICAgICAgIHRoaXMuZGlhbG9nU2hvdyA9ICdzaG93JztcclxuICAgICAgICAgIHRoaXMuc3VnZ2VzdENsYXNzSW1nID0gc3VnZ2VzdENsYXNzU3VjY2Vzc0ltZztcclxuICAgICAgICAgIHRoaXMuc3VnZ2VzdEhlYWRpbmcgPSBcIlNvcnJ5LFdlIGNvdWxkbid0IHNlbmQgYW4gZW1haWwuXCI7XHJcbiAgICAgICAgICB0aGlzLnN1Z2dlc3REZXNjID0gYFBsZWFzZSBkbyBzZW5kIHVzIGVtYWlsIHRvIDxhIGhyZWY9XCJtYWlsdG86c3VwcG9ydEBiYWJ5c3BhcmtzLmNvbVwiPnN1cHBvcnRAYmFieXNwYXJrcy5jb208L2E+YDtcclxuICAgICAgICAgIHRoaXMuc3VnZ2VzdEltZ0NsYXNzID1cIm1vZGFsLXN1Z2dlc3Qtc3VjY2Vzc1wiXHJcbiAgICAgICAgICB0aGlzLnNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoJ3N1Z2dlc3RNZXNzYWdlJykuY2xhc3NMaXN0LmFkZChcImhpZGVcIik7XHJcbiAgICAgICAgICB0aGlzLnNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoJ3N1Z2dlc3RNb2RhbEZvb3RlcicpLmNsYXNzTGlzdC5hZGQoXCJoaWRlXCIpO1xyXG4gICAgICAgIH1lbHNlIHtcclxuICAgICAgICAgIHRoaXMuZGlhbG9nU2hvdyA9ICdzaG93JztcclxuICAgICAgICAgIHRoaXMuc3VnZ2VzdENsYXNzSW1nID0gc3VnZ2VzdENsYXNzU3VjY2Vzc0ltZztcclxuICAgICAgICAgIHRoaXMuc3VnZ2VzdEhlYWRpbmcgPSBcIlRoYW5rIHlvdSBmb3IgeW91ciBmZWVkYmFjayFcIjtcclxuICAgICAgICAgI
1HRoaXMuc3VnZ2VzdERlc2MgPSBcIldlIHdpbGwgc2hhcmUgaXQgd2l0aCBvdXIgaW5zdHJ1Y3RvcnMuXCI7XHJcbiAgICAgICAgICB0aGlzLnN1Z2dlc3RJbWdDbGFzcyA9XCJtb2RhbC1zdWdnZXN0LXN1Y2Nlc3NcIlxyXG4gICAgICAgICAgdGhpcy5zaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCdzdWdnZXN0TWVzc2FnZScpLmNsYXNzTGlzdC5hZGQoXCJoaWRlXCIpO1xyXG4gICAgICAgICAgdGhpcy5zaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCdzdWdnZXN0TW9kYWxGb290ZXInKS5jbGFzc0xpc3QuYWRkKFwiaGlkZVwiKTtcclxuICAgICAgICAgIHZhciB0aGF0ID0gdGhpcztcclxuICAgICAgICAgIHNsZWVwKFdBSVRfVElNT1VUKS50aGVuKGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgICAgIHRoYXQuX2Nsb3NlTW9kYWwoKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfWVsc2Uge1xyXG4gICAgICAgIHRoaXMuZGlhbG9nU2hvdyA9ICdzaG93JztcclxuICAgICAgICB0aGlzLnNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoJ3N1Z2dlc3RNZXNzYWdlJykuY2xhc3NMaXN0LmFkZChcImJvcmRlci1yZWRcIik7XHJcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBcIlBsZWFzZSBlbnRlciB0aGUgZGV0YWlsc1wiO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICBjdXN0b21FbGVtZW50cy5kZWZpbmUoXCJzdWdnZXN0LWNsYXNzLXNlY3Rpb25cIiwgU3VnZ2VzdENsYXNzU2VjdGlvbik7XHJcbiAgIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///2547\n\n}')},4164:(__unused_webpack_module,__unused_webpack___webpack_exports__,__webpack_require__)=>{eval('{\n// EXTERNAL MODULE: ./node_modules/lit-element/index.js\nvar lit_element = __webpack_require__(4420);\n// EXTERNAL MODULE: ./node_modules/lit/index.js\nvar lit = __webpack_require__(6161);\n;// ./src/components/reward-program/reward-program.scss\n /* harmony default export */ const reward_program = ((0,lit/* css */.AH)`@import url(https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;500;600;700&display=swap);a{color:#0493cc;cursor:pointer;text-decoration:none;font-size:16px}a:hover{color:#97c940}.center{text-align:center!important}.left{text-align:left!important}.right{text-align:right!important}img,svg{vertical-align:middle}*,::after,::before{box-sizing:border-box}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}.flex-center{display:flex!important;justify-content:center!important}textarea::placeholder{color:#848fa5!important}@media(max-width:768px){.tab-content{position:relative;padding:0 0 0 34px}}.banner-section{background-color:#f5f8fb;width:100%;padding:19px 0 24px 0;margin:0}.banner-purple{background-repeat:no-repeat;margin:auto;width:343px;height:82px;color:#fff;padding:12px 14px;font-family:SFProText-Regular}.banner-purple h3{font-weight:600;font-size:14px;font-family:SFProText-Regular;margin:0}.medium-fsize-banner{font-size:12px}.fbold{font-weight:600}.orange-color{color:#ffc22b}.number-class-banner{font-size:26px}.banner-purple-left{display:inline-block;float:left;position:relative}.triangle-bg:after{width:164px;content:"";height:88px;background-repeat:no-repeat;display:block;position:absolute;top:4px;left:46px}.banner-purple-right{display:inline-block;margin-left:9px;padding-left:11px;margin-top:4px;position:relative;background-repeat:no-repeat;background-position:left}.pblock{display:block}.receive-text-banner{opacity:.7}.offer-text-december{font-size:10px;color:#0376a3;position:absolute;right:-53px;bottom:-29px;width:149px}.banner-purple-green{background-repeat:no-repeat;background-size:347px 92px}`);\n \n// EXTERNAL MODULE: ./src/assets/images/bg_icons.png\nvar bg_icons = __webpack_require__(1451);\n// EXTERNAL MODULE: ./src/assets/images/bg_purple.png\nvar bg_purple = __webpack_require__(7199);\n// EXTERNAL MODULE: ./src/assets/images/bg_triangle_color.png\nvar bg_triangle_color = __webpack_require__(1917);\n// EXTERNAL MODULE: ./src/assets/images/Line.png\nvar Line = __webpack_require__(7403);\n// EXTERNAL MODULE: ./src/assets/images/banner_purple_green.png\nvar banner_purple_green = __webpack_require__(4562);\n// EXTERNAL MODULE: ./src/assets/images/1live.png\nvar _1live = __webpack_require__(4946);\n// EXTERNAL MODULE: ./src/assets/images/2live.png\nvar _2live = __webpack_require__(3581);\n// EXTERNAL MODULE: ./src/assets/images/3live.png\nvar _3live = __webpack_require__(2080);\n// EXTERNAL MODULE: ./src/assets/images/4live.png\nvar _4live = __webpack_require__(1280);\n// EXTERNAL MODULE: ./src/assets/images/5live.png\nvar _5live = __webpack_require__(9614);\n// EXTERNAL MODULE: ./src/assets/fonts/SFProText-Regular.woff\nvar SFProText_Regular = __webpack_require__(6074);\n// EXTERNAL MODULE: ./node_modules/pwa-helpers/connect-mixin.js\nvar connect_mixin = __webpack_require__(4753);\n// EXTERNAL MODULE: ./node_modules/lit/directives/until.js + 3 modules\nvar until = __webpack_require__(3379);\n// EXTERNAL MODULE: ./src/redux/store.js + 1 modules\nvar store = __webpack_require__(5548);\n// EXTERNAL MODULE: ./src/controllers/rewardProgramController.js\nvar rewardProgramController = __webpack_require__(2443);\n// EXTERNAL MODULE: ./src/redux/actions.js\nvar actions = __webpack_require__(3534);\n;// ./src/components/rewardinfo-dialog/rewardinfo-dialog.scss\n /* harmony default export */ const rewardinfo_dialog = ((0,lit/* css */.AH)`@import url(https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;500;600;700&display=swap);a{color:#0493cc;cursor:pointer;text-decoration:none;font-size:16px}a:hover{color:#97c940}.center{text-align:center!important}.left{text-align:left!important}.right{text-align:right!important}img,svg{vertical-align:middle}*,::after,::before{box-sizing:border-box}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}.flex-center{display:flex!important;justify-content:center!important}textarea::placeholder{color:#848fa5!important}@media(max-width:768px){.tab-content{position:relative;padding:0 0 0 34px}}.modal{display:none;position:fixed;z-index:100000;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:#000;background-color:rgba(0,0,0,.4)}.modal-dialog{display:contents}.modal-content{background-color:#fefefe;margin:auto;padding:60px 20px}.modal-footerbutton{width:100%}.close{color:#aaa;float:right;font-size:28px;font-weight:700}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer}.show{display:flex}.model-header-slot{text-align:end}.modal-content{padding:7px 12px 16px 10px;max-width:999px;border-radius:16px;font-size:12px}@media(max-width:580px){.modal-content{max-width:300px;z-index:9999;padding:7px 12px 16px 10px;margin:auto}.modal-body{padding:0!important}}`);\n \n// EXTERNAL MODULE: ./src/assets/images/icons/suggest_class.png\nvar suggest_class = __webpack_require__(3917);\n;// ./src/components/rewardinfo-dialog/rewardinfo-dialog.js\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass RewardInfoDialog extends (0,connect_mixin/* connect */.N)(store/* store */.M)(lit_element/* LitElement */.WF) {\r\n static get properties() {\r\n return {\r\n openRewardInfoDialog: { type: String },\r\n };\r\n }\r\n\r\n static get styles() {\r\n return [rewardinfo_dialog];\r\n }\r\n\r\n stateChanged(state) {\r\n this.openRewardInfoDialog = state.rewardDailogModelOpen;\r\n }\r\n\r\n render() {\r\n return (0,lit_element/* html */.qy)` <div\r\n class="modal ${this.openRewardInfoDialog}" id="reward_banner_modal"\r\n tabindex="-1"\r\n role="dialog"\r\n >\r\n <div class="modal-dialog modal-dialog-centered">\r\n <div class="modal-content">\r\n <div class="modal-content">\r\n <div class="modal-header">\r\n <slot name="model-header-slot" class="model-header-slot"></slot>\r\n </div>\r\n <div class="modal-body">\r\n <slot name="model-header-body" class="model-header-body"></slot>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>`;\r\n }\r\n}\r\n\r\ncustomElements.define("rewardinfo-dialog", RewardInfoDialog);\r\n\n// EXTERNAL MODULE: ./src/components/localization/localization.js\nvar localization = __webpack_require__(8550);\n;// ./src/components/reward-program/reward-program.js\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass RewardProgram extends (0,connect_mixin/* connect */.N)(store/* store */.M)(lit_element/* LitElement */.WF) {\r\n \r\n constructor() {\r\n super();\r\n this.updatedLanguageFilter = [];\r\n this.publicToken = \'\';\r\n }\r\n\r\n static get properties() {\r\n return {\r\n publicToken : {type: String},\r\n updatedLanguageFilter : {type: Array}\r\n };\r\n }\r\n\r\n static get styles() {\r\n return (0,lit_element/* css */.AH)`\r\n .banner-section{\r\n background-color:#F5F8FB;\r\n background-image:url(${(0,lit_element/* unsafeCSS */.iz)(bg_icons/* default */.A)});\r\n width:100%;\r\n padding: 19px 0 24px 0;\r\n margin:0;\r\n }\r\n .model-close{\r\n color: rgb(4, 147, 204);\r\n border: 0;\r\n background: transparent;\r\n font-size: 31px;\r\n }\r\n .banner-purple{\r\n background-image:url(${(0,lit_element/* unsafeCSS */.iz)(bg_purple/* default */.A)});\r\n background-repeat: no-repeat;\r\n margin: auto;\r\n width: 343px;\r\n height:82px;\r\n color:#fff;\r\n padding:12px 14px;\r\n font-family: ${(0,lit_element/* unsafeCSS */.iz)(SFProText_Regular/* default */.A)};\r\n }\r\n .banner-purple h3{\r\n font-weight: 600;\r\n font-size:14px;\r\n font-family: ${(0,lit_element/* unsafeCSS */.iz)(SFProText_Regular/* default */.A)};\r\n margin: 0;\r\n line-height:16px;\r\n }\r\n .medium-fsize-banner{\r\n font-size:12px;\r\n }\r\n .fbold{\r\n font-weight: 600;\r\n }\r\n .orange-color{\r\n color:#FFC22B;\r\n }\r\n .number-class-banner{\r\n font-size: 26px;\r\n }\r\n .banner-purple-left{\r\n display: inline-block;\r\n float:left;\r\n position: relative;\r\n width:52%;\r\n }\r\n .triangle-bg::after{\r\n width: 164px;\r\n content: "";\r\n height: 88px;\r\n background-repeat: no-repeat;\r\n background-image: url(${(0,lit_element/* unsafeCSS */.iz)(bg_triangle_color/* default */.A)});\r\n display: block;\r\n position: absolute;\r\n top: 7px;\r\n left: 30px;\r\n }\r\n .banner-purple-right{\r\n display: inline-block;\r\n margin-left: 9px;\r\n padding-left: 11px;\r\n margin-top: 4px;\r\n position: relative;\r\n background-image: url(${(0,lit_element/* unsafeCSS */.iz)(Line/* default */.A)});\r\n background-repeat: no-repeat;\r\n background-position: left center;\r\n line-height: 13px;\r\n padding-bottom: 8px;\r\n \r\n }\r\n .pblock {\r\n display: block;\r\n margin-top: 2px;\r\n line-height: 14px;\r\n }\r\n .receive-text-banner {\r\n opacity: 0.7;\r\n }\r\n .offer-text-december {\r\n font-size: 10px;\r\n color: rgb(3, 118, 163);\r\n position: absolute;\r\n left: 10px;\r\n width: 147px;\r\n top: 65px;\r\n }\r\n .offer-text-december-last{\r\n font-size: 10px;\r\n color: rgb(3, 118, 163);\r\n position: absolute;\r\n left: 10px;\r\n top: 58px;\r\n width: 147px;\r\n }\r\n .banner-purple-green{\r\n background-image:url(${(0,lit_element/* unsafeCSS */.iz)(banner_purple_green/* default */.A)});\r\n background-repeat: no-repeat;\r\n background-size: 347px 92px;\r\n padding: 6px 16px;\r\n }
1\r\n .modal-dialog-rewardlink p{\r\n text-align:center;\r\n }\r\n .modal-dialog-enroll h2{\r\n color: #0493cc;\r\n font-weight: 600;\r\n line-height: 1.33;\r\n font-size: 20px;\r\n text-align: center;\r\n }\r\n .modal-dialog-enroll #databases{\r\n width: 85%;\r\n font-size: 15px;\r\n margin: 4px auto 24px;\r\n color: rgb(103, 116, 140);\r\n line-height: 25px;\r\n font-weight: 400;\r\n font-family: \'Open Sans\', sans-serif;\r\n }\r\n .modal-dialog-enroll span{\r\n width: 85%;\r\n color: rgb(103, 116, 140);\r\n font-size: 14px;\r\n line-height: 21px;\r\n text-align: center;\r\n display: block;\r\n margin: auto;\r\n }\r\n .modal-dialog-rewardlink span{\r\n display:inline;\r\n color: rgba(0, 0, 0, 0.6);\r\n }\r\n .modal-dialog-rewardlink h2{\r\n font-weight: 400;\r\n line-height: 1.33;\r\n font-size: 24px;\r\n text-align: center;\r\n \r\n }\r\n\r\n .fa:before{\r\n font-family: \'FontAwesome\';\r\n font-size: 32px;\r\n margin-right: 7px;\r\n }\r\n .fa-apple:before {\r\n content: "\\\\f179";\r\n }\r\n .fa-android:before {\r\n content: "\\\\f17b";\r\n }\r\n\r\n .btn {\r\n display: inline-block;\r\n font-weight: 400;\r\n line-height: 1.5;\r\n color: #212529;\r\n text-align: center;\r\n text-decoration: none;\r\n vertical-align: middle;\r\n cursor: pointer;\r\n -webkit-user-select: none;\r\n -moz-user-select: none;\r\n user-select: none;\r\n background-color: transparent;\r\n border: 1px solid transparent;\r\n padding: .375rem .75rem;\r\n font-size: 1rem;\r\n border-radius: .25rem;\r\n transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;\r\n }\r\n \r\n .group-info-banner{\r\n height: 32px;\r\n margin-top: -10px;\r\n }\r\n `;\r\n }\r\n\r\n stateChanged(state) {\r\n this.updatedLanguageFilter = state.languageFilter;\r\n this.rewardDailogModelOpen = state.rewardDailogModelOpen;\r\n }\r\n\r\n _closeRewardInfoModal(){\r\n store/* store */.M.dispatch((0,actions/* openRewardInfoDialog */.Sb)("hide"));\r\n }\r\n \r\n _reward_info(){\r\n store/* store */.M.dispatch((0,actions/* openRewardInfoDialog */.Sb)("show"));\r\n }\r\n\r\n _reward_rule_modal(){\r\n return (0,lit_element/* html */.qy)` <rewardinfo-dialog>\r\n <div slot="model-header-slot">\r\n <button\r\n type="button"\r\n class="model-close"\r\n data-dismiss="modal"\r\n aria-label="Close"\r\n @click="${this._closeRewardInfoModal}"\r\n >\r\n <span aria-hidden="true">×</span>\r\n </button>\r\n </div>\r\n <div slot="model-header-body" class="modal-dialog-enroll">\r\n <h2> â <local-elem localKey="reward_info_popup_header"></local-elem> </h2>\r\n <ul id="databases"> \r\n <li><local-elem localKey="reward_info_popup_line_1"></local-elem></li>\r\n <li><local-elem localKey="reward_info_popup_line_2"></local-elem></li>\r\n <li><local-elem localKey="reward_info_popup_line_3"></local-elem></li>\r\n <li><local-elem localKey="reward_info_popup_line_4"></local-elem></li>\r\n </ul>\r\n <span><local-elem localKey="reward_info_footer_line_1"></local-elem></span><br>\r\n <span><local-elem localKey="reward_info_footer_line_2"></local-elem> <a href="mailto:[email protected]">[email protected]</a></span>\r\n </div>\r\n </rewardinfo-dialog>`\r\n }\r\n \r\n_reward_claim_modal(){\r\n return (0,lit_element/* html */.qy) ` <rewardinfo-dialog>\r\n <div slot="model-header-slot">\r\n <button\r\n type="button"\r\n class="model-close"\r\n data-dismiss="modal"\r\n aria-label="Close"\r\n @click="${this._closeRewardInfoModal}"\r\n >\r\n <span aria-hidden="true">×</span>\r\n </button>\r\n </div>\r\n <div slot="model-header-body" class="modal-dialog-rewardlink"><div class="container">\r\n <div class="row text-center">\r\n <h2><local-elem localKey="reward_link_header"></local-elem></h2>\r\n <p>\r\n <a id="ios-app-logo" href="https://apps.apple.com/us/app/babysparks-development-app/id794574199" class="btn btn-store ">
1\r\n <span class="fa fa-apple fa-3x pull-left" style="margin-top : -10px"></span> \r\n <span class="btn-label"><local-elem localKey="reward_link_download_text"></local-elem></span>\r\n <span class="btn-caption">App Store</span>\r\n </a>\r\n <a id="google-app-logo" href="https://play.google.com/store/apps/details?id=com.babysparks.babysparks" class="btn btn-store ">\r\n <span class="fa fa-android fa-3x pull-left" style="margin-top : -10px"></span> \r\n <span class="btn-label"><local-elem localKey="reward_link_download_text"></local-elem></span>\r\n <span class="btn-caption">Google Play</span>\r\n </a>\r\n </p>\r\n </div>\r\n </div></div>\r\n </rewardinfo-dialog>`\r\n}\r\n\r\nasync _fetchRewardData(){\r\n const reward_info = await (0,rewardProgramController/* rewardProgram */.Q)();\r\n let class_attended = 0;\r\n let class_to_attend = 0;\r\n if(reward_info.length>0){\r\n class_attended = await reward_info[0].classes_attended;\r\n class_attended = class_attended>=5?5:class_attended;\r\n class_to_attend = 5-class_attended;\r\n }\r\n let progressImg;\r\n switch(class_attended) {\r\n case 1: {\r\n progressImg = _1live/* default */.A;\r\n break;\r\n }\r\n case 2: {\r\n progressImg = _2live/* default */.A;\r\n break;\r\n }\r\n case 3: {\r\n progressImg = _3live/* default */.A;\r\n break;\r\n }\r\n case 4: {\r\n progressImg = _4live/* default */.A;\r\n break;\r\n }\r\n case 5: {\r\n progressImg = _5live/* default */.A;\r\n break;\r\n }\r\n }\r\n\r\n\r\n \r\n return (0,lit_element/* html */.qy)`\r\n ${class_attended<5?(0,lit_element/* html */.qy)`${this._reward_rule_modal()}`:(0,lit_element/* html */.qy)`${this._reward_claim_modal()}`}\r\n <div class="banner-section" @click="${this._reward_info}">\r\n <div class="banner-purple ${((class_attended>=5)?`banner-purple-green`:``)}" >\r\n ${class_attended==0?(0,lit_element/* html */.qy)`\r\n <div class="banner-purple-left triangle-bg">\r\n <h3><local-elem localKey="Join our rewards program"></local-elem>!</h3>\r\n <div class="group-info-banner">\r\n <span class="medium-fsize-banner fbold"><local-elem localKey="Attend"></local-elem></span>\r\n <span class="number-class-banner orange-color fbold">5</span>\r\n <span class="orange-color medium-fsize-banner fbold"><local-elem localKey="Live Classes"></local-elem></span>\r\n </div>\r\n <span class="receive-text-banner medium-fsize-banner"><local-elem localKey="and receive a"></local-elem>... </span>\r\n </div>`:(0,lit_element/* html */.qy) `${(class_attended<5)?(0,lit_element/* html */.qy)`\r\n <div class="banner-purple-left">\r\n <h3><local-elem localKey="Youve attended"></local-elem></h3>\r\n <div class="group-info-banner">\r\n <img src="${progressImg}" style="width:60px;">\r\n <span class="number-class-banner orange-color fbold">${class_attended}</span>\r\n <span class="orange-color medium-fsize-banner fbold"><local-elem localKey="Live Classes"></local-elem></span>\r\n </div>\r\n <span class="orange-color medium-fsize-banner">${class_to_attend} <local-elem localKey="more"></local-elem> </span>\r\n <span class="medium-fsize-banner"><local-elem localKey="and you can claim your"></local-elem>... </span>\r\n </div>`:(0,lit_element/* html */.qy)`<div class="banner-purple-left">\r\n <h3><local-elem localKey="Congratulations"></local-elem>!</h3>\r\n <div class="group-info-banner">\r\n <img src="${progressImg}" style="width:60px;">\r\n <span class="number-class-banner orange-color fbold">${class_attended}</span>\r\n <span class="orange-color medium-fsize-banner fbold"><local-elem localKey="Live Classes"></local-elem></span>\r\n </div>\r\n <span class="medium-fsize-banner"><local-elem localKey="Claim your 30-minute consultation"></local-elem></span>\r\n</div>`}`}\r\n${class_attended<5?(0,lit_element/* html */.qy)`\r\n <div class="banner-purple-right">
1\r\n <span class="orange-color medium-fsize-banner fbold pblock"><local-elem localKey="FREE 30-minute"></local-elem> <br> <local-elem localKey="consultation"></local-elem></span>\r\n <span class="medium-fsize-banner pblock"><local-elem localKey="with an expert"><br><local-elem localKey="of your choice"></local-elem></span>\r\n <p class="offer-text-december"><local-elem localKey="Offer valid since December 15 2021"></local-elem>.</p>\r\n </div>\r\n `:(0,lit_element/* html */.qy)`<div class="banner-purple-right">\r\n <span class="medium-fsize-banner pblock"><local-elem localKey="through our app"></local-elem><br><local-elem localKey="download it"></local-elem> <br><local-elem localKey="for free here"></local-elem> </span>\r\n <p class="offer-text-december-last"><local-elem localKey="Offer valid since December 15 2021"></local-elem>.</p>\r\n </div>`\r\n }\r\n </div>\r\n</div>`\r\n\r\n};\r\n\r\n\r\n\r\n\r\n\r\n render() {\r\n return (0,lit_element/* html */.qy)`${(0,until/* until */.T)(this._fetchRewardData(), (0,lit_element/* html */.qy)``)}`;\r\n }\r\n\r\n}\r\n\r\ncustomElements.define("reward-program", RewardProgram);\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDE2NC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDREE7QUFDQTs7OztBQ0RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7QUN2Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL0JhYnlTcGFya3MvLi9zcmMvY29tcG9uZW50cy9yZXdhcmQtcHJvZ3JhbS9yZXdhcmQtcHJvZ3JhbS5zY3NzP2M1ZDQiLCJ3ZWJwYWNrOi8vQmFieVNwYXJrcy8uL3NyYy9jb21wb25lbnRzL3Jld2FyZGluZm8tZGlhbG9nL3Jld2FyZGluZm8tZGlhbG9nLnNjc3M/NDI2MyIsIndlYnBhY2s6Ly9CYWJ5U3BhcmtzLy4vc3JjL2NvbXBvbmVudHMvcmV3YXJkaW5mby1kaWFsb2cvcmV3YXJkaW5mby1kaWFsb2cuanM/OTU4OSIsIndlYnBhY2s6Ly9CYWJ5U3BhcmtzLy4vc3JjL2NvbXBvbmVudHMvcmV3YXJkLXByb2dyYW0vcmV3YXJkLXByb2dyYW0uanM/MzE5NSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2Nzc30gZnJvbSAnbGl0JzsgZXhwb3J0IGRlZmF1bHQgY3NzYEBpbXBvcnQgdXJsKGh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9T3BlbitTYW5zOndnaHRAMzAwOzQwMDs1MDA7NjAwOzcwMCZkaXNwbGF5PXN3YXApO2F7Y29sb3I6IzA0OTNjYztjdXJzb3I6cG9pbnRlcjt0ZXh0LWRlY29yYXRpb246bm9uZTtmb250LXNpemU6MTZweH1hOmhvdmVye2NvbG9yOiM5N2M5NDB9LmNlbnRlcnt0ZXh0LWFsaWduOmNlbnRlciFpbXBvcnRhbnR9LmxlZnR7dGV4dC1hbGlnbjpsZWZ0IWltcG9ydGFudH0ucmlnaHR7dGV4dC1hbGlnbjpyaWdodCFpbXBvcnRhbnR9aW1nLHN2Z3t2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Kiw6OmFmdGVyLDo6YmVmb3Jle2JveC1zaXppbmc6Ym9yZGVyLWJveH0uaDEsLmgyLC5oMywuaDQsLmg1LC5oNixoMSxoMixoMyxoNCxoNSxoNnttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTouNXJlbTtmb250LXdlaWdodDo1MDA7bGluZS1oZWlnaHQ6MS4yfS5mbGV4LWNlbnRlcntkaXNwbGF5OmZsZXghaW1wb3J0YW50O2p1c3RpZnktY29udGVudDpjZW50ZXIhaW1wb3J0YW50fXRleHRhcmVhOjpwbGFjZWhvbGRlcntjb2xvcjojODQ4ZmE1IWltcG9ydGFudH1AbWVkaWEobWF4LXdpZHRoOjc2OHB4KXsudGFiLWNvbnRlbn
1R7cG9zaXRpb246cmVsYXRpdmU7cGFkZGluZzowIDAgMCAzNHB4fX0uYmFubmVyLXNlY3Rpb257YmFja2dyb3VuZC1jb2xvcjojZjVmOGZiO3dpZHRoOjEwMCU7cGFkZGluZzoxOXB4IDAgMjRweCAwO21hcmdpbjowfS5iYW5uZXItcHVycGxle2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDttYXJnaW46YXV0bzt3aWR0aDozNDNweDtoZWlnaHQ6ODJweDtjb2xvcjojZmZmO3BhZGRpbmc6MTJweCAxNHB4O2ZvbnQtZmFtaWx5OlNGUHJvVGV4dC1SZWd1bGFyfS5iYW5uZXItcHVycGxlIGgze2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTRweDtmb250LWZhbWlseTpTRlByb1RleHQtUmVndWxhcjttYXJnaW46MH0ubWVkaXVtLWZzaXplLWJhbm5lcntmb250LXNpemU6MTJweH0uZmJvbGR7Zm9udC13ZWlnaHQ6NjAwfS5vcmFuZ2UtY29sb3J7Y29sb3I6I2ZmYzIyYn0ubnVtYmVyLWNsYXNzLWJhbm5lcntmb250LXNpemU6MjZweH0uYmFubmVyLXB1cnBsZS1sZWZ0e2Rpc3BsYXk6aW5saW5lLWJsb2NrO2Zsb2F0OmxlZnQ7cG9zaXRpb246cmVsYXRpdmV9LnRyaWFuZ2xlLWJnOmFmdGVye3dpZHRoOjE2NHB4O2NvbnRlbnQ6XCJcIjtoZWlnaHQ6ODhweDtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NHB4O2xlZnQ6NDZweH0uYmFubmVyLXB1cnBsZS1yaWdodHtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tbGVmdDo5cHg7cGFkZGluZy1sZWZ0OjExcHg7bWFyZ2luLXRvcDo0cHg7cG9zaXRpb246cmVsYXRpdmU7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtcG9zaXRpb246bGVmdH0ucGJsb2Nre2Rpc3BsYXk6YmxvY2t9LnJlY2VpdmUtdGV4dC1iYW5uZXJ7b3BhY2l0eTouN30ub2ZmZXItdGV4dC1kZWNlbWJlcntmb250LXNpemU6MTBweDtjb2xvcjojMDM3NmEzO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0Oi01M3B4O2JvdHRvbTotMjlweDt3aWR0aDoxNDlweH0uYmFubmVyLXB1cnBsZS1ncmVlbntiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOjM0N3B4IDkycHh9YDtcbiAgICAiLCJpbXBvcnQge2Nzc30gZnJvbSAnbGl0JzsgZXhwb3J0IGRlZmF1bHQgY3NzYEBpbXBvcnQgdXJsKGh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9T3BlbitTYW5zOndnaHRAMzAwOzQwMDs1MDA7NjAwOzcwMCZkaXNwbGF5PXN3YXApO2F7Y29sb3I6IzA0OTNjYztjdXJzb3I6cG9pbnRlcjt0ZXh0LWRlY29yYXRpb246bm9uZTtmb250LXNpemU6MTZweH1hOmhvdmVye2NvbG9yOiM5N2M5NDB9LmNlbnRlcnt0ZXh0LWFsaWduOmNlbnRlciFpbXBvcnRhbnR9LmxlZnR7dGV4dC1hbGlnbjpsZWZ0IWltcG9ydGFudH0ucmlnaHR7dGV4dC1hbGlnbjpyaWdodCFpbXBvcnRhbnR9aW1nLHN2Z3t2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Kiw6OmFmdGVyLDo6YmVmb3Jle2JveC1zaXppbmc6Ym9yZGVyLWJveH0uaDEsLmgyLC5oMywuaDQsLmg1LC5oNixoMSxoMixoMyxoNCxoNSxoNnttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTouNXJlbTtmb250LXdlaWdodDo1MDA7bGluZS1oZWlnaHQ6MS4yfS5mbGV4LWNlbnRlcntkaXNwbGF5OmZsZXghaW1wb3J0YW50O2p1c3RpZnktY29udGVudDpjZW50ZXIhaW1wb3J0YW50fXRleHRhcmVhOjpwbGFjZWhvbGRlcntjb2xvcjojODQ4ZmE1IWltcG9ydGFudH1AbWVkaWEobWF4LXdpZHRoOjc2OHB4KXsudGFiLWNvbnRlbnR7cG9zaXRpb246cmVsYXRpdmU7cGFkZGluZzowIDAgMCAzNHB4fX0ubW9kYWx7ZGlzcGxheTpub25lO3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMDAwO2xlZnQ6MDt0b3A6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO292ZXJmbG93OmF1dG87YmFja2dyb3VuZC1jb2xvcjojMDAwO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuNCl9Lm1vZGFsLWRpYWxvZ3tkaXNwbGF5OmNvbnRlbnRzfS5tb2RhbC1jb250ZW50e2JhY2tncm91bmQtY29sb3I6I2ZlZmVmZTttYXJnaW46YXV0bztwYWRkaW5nOjYwcHggMjBweH0ubW9kYWwtZm9vdGVyYnV0dG9ue3dpZHRoOjEwMCV9LmNsb3Nle2NvbG9yOiNhYWE7ZmxvYXQ6cmlnaHQ7Zm9udC1zaXplOjI4cHg7Zm9udC13ZWlnaHQ6NzAwfS5jbG9zZTpmb2N1cywuY2xvc2U6aG92ZXJ7Y29sb3I6IzAwMDt0ZXh0LWRlY29yYXRpb246bm9uZTtjdXJzb3I6cG9pbnRlcn0uc2hvd3tkaXNwbGF5OmZsZXh9Lm1vZGVsLWhlYWRlci1zbG90e3RleHQtYWxpZ246ZW5kfS5tb2RhbC1jb250ZW50e3BhZGRpbmc6N3B4IDEycHggMTZweCAxMHB4O21heC13aWR0aDo5OTlweDtib3JkZXItcmFkaXVzOjE2cHg7Zm9udC1zaXplOjEycHh9QG1lZGlhKG1heC13aWR0aDo1ODBweCl7Lm1vZGFsLWNvbnRlbnR7bWF4LXdpZHRoOjMwMHB4O3otaW5kZXg6OTk5OTtwYWRkaW5nOjdweCAxMnB4IDE2cHggMTBweDttYXJnaW46YXV0b30ubW9kYWwtYm9keXtwYWRkaW5nOjAhaW1wb3J0YW50fX1gO1xuICAgICIsImltcG9ydCB7IExpdEVsZW1lbnQsIGh0bWwgfSBmcm9tIFwibGl0LWVsZW1lbnRcIjtcclxuXHJcbmltcG9ydCB7IGNvbm5lY3QgfSBmcm9tIFwicHdhLWhlbHBlcnNcIjtcclxuaW1wb3J0IHsgc3RvcmUgfSBmcm9tIFwiLi4vLi4vcmVkdXgvc3RvcmUuanNcIjtcclxuaW1wb3J0IGRpYWxvZ3VlU3R5bGUgZnJvbSBcIi4vcmV3YXJkaW5mby1kaWFsb2cuc2Nzc1wiO1xyXG5pbXBvcnQgc3VnZ2VzdENsYXNzSW5wdXRJbWcgZnJvbSBcIi4uLy4uL2Fzc2V0cy9pbWFnZXMvaWNvbnMvc3VnZ2VzdF9jbGFzcy5wbmdcIjtcclxuXHJcbmNsYXNzIFJld2FyZEluZm9EaWFsb2cgZXh0ZW5kcyBjb25uZWN0KHN0b3JlKShMaXRFbGVtZW50KSB7XHJcbiAgc3RhdGljIGdldCBwcm9wZXJ0aWVzKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgb3BlblJld2FyZEluZm9EaWFsb2c6IHsgdHlwZTogU3RyaW5nIH0sXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldCBzdHlsZXMoKSB7XHJcbiAgICByZXR1cm4gW2RpYWxvZ3VlU3R5bGVdO1xyXG4gIH1cclxuXHJcbiAgc3RhdGVDaGFuZ2VkKHN0YXRlKSB7XHJcbiAgICB0aGlzLm9wZW5SZXdhcmRJbmZvRGlhbG9nID0gc3RhdGUucmV3YXJkRGFpbG9nTW9kZWxPcGVuO1xyXG4gIH1cclxuXHJcbiAgcmVuZGVyKCkge1xyXG4gICAgcmV0dXJuIGh0bWxgIDxkaXZcclxuICAgICAgY2xhc3M9XCJtb2RhbCAke3RoaXMub3BlblJld2FyZEluZm9EaWFsb2d9XCIgaWQ9XCJyZXdhcmRfYmFubmVyX21vZGFsXCJcclxuICAgICAgdGFiaW5kZXg9XCItMVwiXHJcbiAgICAgIHJvbGU9XCJkaWFsb2dcIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtZGlhbG9nIG1vZGFsLWRpYWxvZy1jZW50ZXJlZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgPHNsb3QgbmFtZT1cIm1vZGVsLWhlYWRlci1zbG90XCIgY2xhc3M9XCJtb2RlbC1oZWFkZXItc2xvdFwiPjwvc2xvdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XHJcbiAgICAgICAgICAgICAgPHNsb3QgbmFtZT1cIm1vZGVsLWhlYWRlci1ib2R5XCIgY2xhc3M9XCJtb2RlbC1oZWFkZXItYm9keVwiPjwvc2xvdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5gO1xyXG4gIH1cclxufVxyXG5cclxuY3VzdG9tRWxlbWVudHMuZGVmaW5lKFwicmV3YXJkaW5mby1kaWFsb2dcIiwgUmV3YXJkSW5mb0RpYWxvZyk7XHJcbiIsImltcG9ydCB7XHJcbiAgTGl0RWxlbWVudCxcclxuICBjc3MsXHJcbiAgdW5zYWZlQ1NTLFxyXG4gIGh0bWxcclxufSBmcm9tIFwibGl0LWVsZW1lbnRcIjtcclxuaW1wb3J0IHJld2FyZFN0eWxlIGZyb20gXCIuL3Jld2FyZC1wcm9ncmFtLnNjc3NcIjtcclxuaW1wb3J0IGJnX2ljb25zIGZyb20gJy4uLy4uL2Fzc2V0cy9pbWFnZXMvYmdfaWNvbnMucG5nJztcclxuaW1wb3J0IGJnX3B1cnBsZSBmcm9tICcuLi8uLi9hc3NldHMvaW1hZ2VzL2JnX3B1cnBsZS5wbmcnO1xyXG5pbXBvcnQgYmdfdHJpYW5nbGVfY29sb3IgZnJvbSAnLi4vLi4vYXNzZXRzL2ltYWdlcy9iZ190cmlhbmdsZV9jb2xvci5wbmcnO1xyXG5pbXBvcnQgTGluZSBmcm9tICcuLi8uLi9hc3NldHMvaW1hZ2VzL0xpbmUucG5nJztcclxuaW1wb3J0IGJhbm5lcl9wdXJwbGVfZ3JlZW4gZnJvbSAnLi4vLi4vYXNzZXRzL2ltYWdlcy9iYW5uZXJfcHVycGxlX2dyZWVuLnBuZyc7XHJcbmltcG9ydCBjb21lcGxldGVkXzEgZnJvbSAnLi4vLi4vYXNzZXRzL2ltYWdlcy8xbGl2ZS5wbmcnO1xyXG5pbXBvcnQgY29tZXBsZXRlZF8yIGZyb20gJy4uLy4uL2Fzc2V0cy9pbWFnZXMvMmxpdmUucG5nJztcclxuaW1wb3J0IGNvbWVwbGV0ZWRfMyBmcm9tICcuLi8uLi9hc3NldHMvaW1hZ2VzLzNsaXZlLnBuZyc7XHJcbmltcG9ydCBjb21lcGxldGVkXzQgZnJvbSAnLi4vLi4vYXNzZXRzL2ltYWdlcy80bGl2ZS5wbmcnO1xyXG5pbXBvcnQgY29tZXBsZXRlZF81IGZyb20gJy4uLy4uL2Fzc2V0cy9pbWFnZXMvNWxpdmUucG5nJztcclxuaW1wb3J0IFNGUHJvVGV4dCBmcm9tICcuLi8uLi9hc3NldHMvZm9udHMvU0ZQcm9UZXh0LVJlZ3VsYXIud29mZic7XHJcbmltcG9ydCB7
1IGNvbm5lY3QgfSBmcm9tICdwd2EtaGVscGVycyc7XHJcbmltcG9ydCB7IHVudGlsIH0gZnJvbSBcImxpdC9kaXJlY3RpdmVzL3VudGlsLmpzXCI7XHJcbmltcG9ydCB7IHN0b3JlIH0gZnJvbSAnLi4vLi4vcmVkdXgvc3RvcmUuanMnO1xyXG5pbXBvcnQge3Jld2FyZFByb2dyYW19IGZyb20gXCIuLi8uLi9jb250cm9sbGVycy9yZXdhcmRQcm9ncmFtQ29udHJvbGxlci5qc1wiO1xyXG5pbXBvcnQge29wZW5SZXdhcmRJbmZvRGlhbG9nfSBmcm9tICcuLi8uLi9yZWR1eC9hY3Rpb25zJztcclxuaW1wb3J0ICcuLi9yZXdhcmRpbmZvLWRpYWxvZy9yZXdhcmRpbmZvLWRpYWxvZy5qcyc7XHJcbmltcG9ydCBcIi4uL2xvY2FsaXphdGlvbi9sb2NhbGl6YXRpb24uanNcIjtcclxuXHJcbmNsYXNzIFJld2FyZFByb2dyYW0gZXh0ZW5kcyBjb25uZWN0KHN0b3JlKShMaXRFbGVtZW50KSB7XHJcbiBcclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICB0aGlzLnVwZGF0ZWRMYW5ndWFnZUZpbHRlciA9IFtdO1xyXG4gICAgdGhpcy5wdWJsaWNUb2tlbiA9ICcnO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldCBwcm9wZXJ0aWVzKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgcHVibGljVG9rZW4gOiB7dHlwZTogU3RyaW5nfSxcclxuICAgICAgdXBkYXRlZExhbmd1YWdlRmlsdGVyIDoge3R5cGU6IEFycmF5fVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBnZXQgc3R5bGVzKCkge1xyXG4gICAgcmV0dXJuIGNzc2BcclxuICAgIC5iYW5uZXItc2VjdGlvbntcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiNGNUY4RkI7XHJcbiAgICAgICBiYWNrZ3JvdW5kLWltYWdlOnVybCgke3Vuc2FmZUNTUyhiZ19pY29ucyl9KTtcclxuICAgICAgICB3aWR0aDoxMDAlO1xyXG4gICAgICAgIHBhZGRpbmc6IDE5cHggMCAyNHB4IDA7XHJcbiAgICAgICAgbWFyZ2luOjA7XHJcbiAgICB9XHJcbiAgICAubW9kZWwtY2xvc2V7XHJcbiAgICAgIGNvbG9yOiByZ2IoNCwgMTQ3LCAyMDQpO1xyXG4gICAgICBib3JkZXI6IDA7XHJcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgICBmb250LXNpemU6IDMxcHg7XHJcbiAgICB9XHJcbiAgICAuYmFubmVyLXB1cnBsZXtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOnVybCgke3Vuc2FmZUNTUyhiZ19wdXJwbGUpfSk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgICAgICBtYXJnaW46IGF1dG87XHJcbiAgICAgICAgd2lkdGg6IDM0M3B4O1xyXG4gICAgICAgIGhlaWdodDo4MnB4O1xyXG4gICAgICAgIGNvbG9yOiNmZmY7XHJcbiAgICAgICAgcGFkZGluZzoxMnB4IDE0cHg7XHJcbiAgICAgICAgZm9udC1mYW1pbHk6ICR7dW5zYWZlQ1NTKFNGUHJvVGV4dCl9O1xyXG4gICAgfVxyXG4gICAgLmJhbm5lci1wdXJwbGUgaDN7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgICBmb250LXNpemU6MTRweDtcclxuICAgICAgICBmb250LWZhbWlseTogJHt1bnNhZmVDU1MoU0ZQcm9UZXh0KX07XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OjE2cHg7XHJcbiAgICB9XHJcbiAgICAubWVkaXVtLWZzaXplLWJhbm5lcntcclxuICAgICAgICBmb250LXNpemU6MTJweDtcclxuICAgIH1cclxuICAgIC5mYm9sZHtcclxuICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgfVxyXG4gICAgLm9yYW5nZS1jb2xvcntcclxuICAgICAgICBjb2xvcjojRkZDMjJCO1xyXG4gICAgfVxyXG4gICAgLm51bWJlci1jbGFzcy1iYW5uZXJ7XHJcbiAgICAgICAgZm9udC1zaXplOiAyNnB4O1xyXG4gICAgfVxyXG4gICAgLmJhbm5lci1wdXJwbGUtbGVmdHtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgZmxvYXQ6bGVmdDtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgd2lkdGg6NTIlO1xyXG4gICAgfVxyXG4gICAgLnRyaWFuZ2xlLWJnOjphZnRlcntcclxuICAgICAgICB3aWR0aDogMTY0cHg7XHJcbiAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICBoZWlnaHQ6IDg4cHg7XHJcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJHt1bnNhZmVDU1MoYmdfdHJpYW5nbGVfY29sb3IpfSk7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHRvcDogN3B4O1xyXG4gICAgICAgIGxlZnQ6IDMwcHg7XHJcbiAgICB9XHJcbiAgICAuYmFubmVyLXB1cnBsZS1yaWdodHtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDlweDtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDExcHg7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogNHB4O1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJHt1bnNhZmVDU1MoTGluZSl9KTtcclxuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgY2VudGVyO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxM3B4O1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA4cHg7XHJcbiAgICAgIFxyXG4gICAgfVxyXG4gICAgLnBibG9jayB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMnB4O1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxNHB4O1xyXG4gICAgfVxyXG4gICAgLnJlY2VpdmUtdGV4dC1iYW5uZXIge1xyXG4gICAgICAgIG9wYWNpdHk6IDAuNztcclxuICAgIH1cclxuICAgIC5vZmZlci10ZXh0LWRlY2VtYmVyIHtcclxuICAgICAgICBmb250LXNpemU6IDEwcHg7XHJcbiAgICAgICAgY29sb3I6IHJnYigzLCAxMTgsIDE2Myk7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIGxlZnQ6IDEwcHg7XHJcbiAgICAgICAgd2lkdGg6IDE0N3B4O1xyXG4gICAgICAgI
1HRvcDogNjVweDtcclxuICAgIH1cclxuICAgIC5vZmZlci10ZXh0LWRlY2VtYmVyLWxhc3R7XHJcbiAgICAgIGZvbnQtc2l6ZTogMTBweDtcclxuICAgICAgY29sb3I6IHJnYigzLCAxMTgsIDE2Myk7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgbGVmdDogMTBweDtcclxuICAgICAgdG9wOiA1OHB4O1xyXG4gICAgICB3aWR0aDogMTQ3cHg7XHJcbiAgICB9XHJcbiAgICAuYmFubmVyLXB1cnBsZS1ncmVlbntcclxuICAgICAgIGJhY2tncm91bmQtaW1hZ2U6dXJsKCR7dW5zYWZlQ1NTKGJhbm5lcl9wdXJwbGVfZ3JlZW4pfSk7XHJcbiAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgICAgYmFja2dyb3VuZC1zaXplOiAzNDdweCA5MnB4O1xyXG4gICAgICAgcGFkZGluZzogNnB4IDE2cHg7XHJcbiAgICB9XHJcbiAgICAubW9kYWwtZGlhbG9nLXJld2FyZGxpbmsgcHtcclxuICAgICAgdGV4dC1hbGlnbjpjZW50ZXI7XHJcbiAgICB9XHJcbiAgICAubW9kYWwtZGlhbG9nLWVucm9sbCBoMntcclxuICAgICAgICBjb2xvcjogIzA0OTNjYztcclxuICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjMzO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB9XHJcbiAgICAubW9kYWwtZGlhbG9nLWVucm9sbCAjZGF0YWJhc2Vze1xyXG4gICAgICAgIHdpZHRoOiA4NSU7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNXB4O1xyXG4gICAgICAgIG1hcmdpbjogNHB4IGF1dG8gMjRweDtcclxuICAgICAgICBjb2xvcjogcmdiKDEwMywgMTE2LCAxNDApO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyNXB4O1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICAgICAgZm9udC1mYW1pbHk6ICdPcGVuIFNhbnMnLCBzYW5zLXNlcmlmO1xyXG4gICAgfVxyXG4gICAgLm1vZGFsLWRpYWxvZy1lbnJvbGwgc3BhbntcclxuICAgICAgICB3aWR0aDogODUlO1xyXG4gICAgICAgIGNvbG9yOiByZ2IoMTAzLCAxMTYsIDE0MCk7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyMXB4O1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBtYXJnaW46IGF1dG87XHJcbiAgICB9XHJcbiAgICAubW9kYWwtZGlhbG9nLXJld2FyZGxpbmsgc3BhbntcclxuICAgICAgZGlzcGxheTppbmxpbmU7XHJcbiAgICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XHJcbiAgICB9XHJcbiAgICAubW9kYWwtZGlhbG9nLXJld2FyZGxpbmsgaDJ7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjMzO1xyXG4gICAgICBmb250LXNpemU6IDI0cHg7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgXHJcbiAgICB9XHJcblxyXG4gICAgLmZhOmJlZm9yZXtcclxuICAgICAgZm9udC1mYW1pbHk6ICdGb250QXdlc29tZSc7XHJcbiAgICAgIGZvbnQtc2l6ZTogMzJweDtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiA3cHg7XHJcbiAgICB9XHJcbiAgICAuZmEtYXBwbGU6YmVmb3JlIHtcclxuICAgICAgY29udGVudDogXCJcXFxcZjE3OVwiO1xyXG4gICAgfVxyXG4gICAgLmZhLWFuZHJvaWQ6YmVmb3JlIHtcclxuICAgICAgY29udGVudDogXCJcXFxcZjE3YlwiO1xyXG4gICAgfVxyXG5cclxuICAgIC5idG4ge1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XHJcbiAgICAgIGNvbG9yOiAjMjEyNTI5O1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xyXG4gICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xyXG4gICAgICB1c2VyLXNlbGVjdDogbm9uZTtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gICAgICBwYWRkaW5nOiAuMzc1cmVtIC43NXJlbTtcclxuICAgICAgZm9udC1zaXplOiAxcmVtO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAuMjVyZW07XHJcbiAgICAgIHRyYW5zaXRpb246IGNvbG9yIC4xNXMgZWFzZS1pbi1vdXQsYmFja2dyb3VuZC1jb2xvciAuMTVzIGVhc2UtaW4tb3V0LGJvcmRlci1jb2xvciAuMTVzIGVhc2UtaW4tb3V0LGJveC1zaGFkb3cgLjE1cyBlYXNlLWluLW91dDtcclxuICB9XHJcbiAgXHJcbiAgLmdyb3VwLWluZm8tYmFubmVye1xyXG4gICAgaGVpZ2h0OiAzMnB4O1xyXG4gICAgbWFyZ2luLXRvcDogLTEwcHg7XHJcbiAgfVxyXG4gIGA7XHJcbiAgfVxyXG5cclxuICBzdGF0ZUNoYW5nZWQoc3RhdGUpIHtcclxuICAgIHRoaXMudXBkYXRlZExhbmd1YWdlRmlsdGVyID0gc3RhdGUubGFuZ3VhZ2VGaWx0ZXI7XHJcbiAgICB0aGlzLnJld2FyZERhaWxvZ01vZGVsT3BlbiA9IHN0YXRlLnJld2FyZERhaWxvZ01vZGVsT3BlbjtcclxuICB9XHJcblxyXG4gIF9jbG9zZVJld2FyZEluZm9Nb2RhbCgpe1xyXG4gICAgc3RvcmUuZGlzcGF0Y2gob3BlblJld2FyZEluZm9EaWFsb2coXCJoaWRlXCIpKTtcclxuICB9XHJcbiAgXHJcbiAgX3Jld2FyZF9pbmZvKCl7XHJcbiAgICBzdG9yZS5kaXNwYXRjaChvcGVuUmV3YXJkSW5mb0RpYWxvZyhcInNob3dcIikpO1xyXG4gIH1cclxuXHJcbiAgX3Jld2FyZF9ydWxlX21vZGFsKCl7XHJcbiAgIHJldHVybiBodG1sYCAgPHJld2FyZGluZm8tZGlhbG9nPlxyXG4gICA8ZGl2IHNsb3Q9XCJtb2RlbC1oZWFkZXItc2xvdFwiPlxyXG4gICAgICAgPGJ1dHRvblxyXG4gICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgY2xhc3M9XCJtb2RlbC1jbG9zZVwiXHJcbiAgICAgICAgIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCJcclxuICAgICAgICAgYXJpYS1sYWJlbD1cIkNsb3NlXCJcclxuICAgICAgICAgQGNsaWNrPVwiJHt0aGlzLl9jbG9zZVJld2FyZEluZm9Nb2RhbH1cIlxyXG4gICAgICAgPlxyXG4gICAgICAgICA8c3BhbiBhcmlhLWh
1pZGRlbj1cInRydWVcIj4mdGltZXM7PC9zcGFuPlxyXG4gICAgICAgPC9idXR0b24+XHJcbiAgICAgPC9kaXY+XHJcbiAgICAgPGRpdiBzbG90PVwibW9kZWwtaGVhZGVyLWJvZHlcIiBjbGFzcz1cIm1vZGFsLWRpYWxvZy1lbnJvbGxcIj5cclxuICAgICA8aDI+IOKTmCA8bG9jYWwtZWxlbSBsb2NhbEtleT1cInJld2FyZF9pbmZvX3BvcHVwX2hlYWRlclwiPjwvbG9jYWwtZWxlbT4gPC9oMj5cclxuICAgICAgPHVsIGlkPVwiZGF0YWJhc2VzXCI+ICAgICAgICBcclxuICAgICAgICAgPGxpPjxsb2NhbC1lbGVtIGxvY2FsS2V5PVwicmV3YXJkX2luZm9fcG9wdXBfbGluZV8xXCI+PC9sb2NhbC1lbGVtPjwvbGk+XHJcbiAgICAgICAgIDxsaT48bG9jYWwtZWxlbSBsb2NhbEtleT1cInJld2FyZF9pbmZvX3BvcHVwX2xpbmVfMlwiPjwvbG9jYWwtZWxlbT48L2xpPlxyXG4gICAgICAgICA8bGk+PGxvY2FsLWVsZW0gbG9jYWxLZXk9XCJyZXdhcmRfaW5mb19wb3B1cF9saW5lXzNcIj48L2xvY2FsLWVsZW0+PC9saT5cclxuICAgICAgICAgPGxpPjxsb2NhbC1lbGVtIGxvY2FsS2V5PVwicmV3YXJkX2luZm9fcG9wdXBfbGluZV80XCI+PC9sb2NhbC1lbGVtPjwvbGk+XHJcbiAgICAgIDwvdWw+XHJcbiAgICA8c3Bhbj48bG9jYWwtZWxlbSBsb2NhbEtleT1cInJld2FyZF9pbmZvX2Zvb3Rlcl9saW5lXzFcIj48L2xvY2FsLWVsZW0+PC9zcGFuPjxicj5cclxuICAgIDxzcGFuPjxsb2NhbC1lbGVtIGxvY2FsS2V5PVwicmV3YXJkX2luZm9fZm9vdGVyX2xpbmVfMlwiPjwvbG9jYWwtZWxlbT4gPGEgaHJlZj1cIm1haWx0bzpjbGFzc2VzQGJhYnlzcGFya3MuY29tXCI+Y2xhc3Nlc0BiYWJ5c3BhcmtzLmNvbTwvYT48L3NwYW4+XHJcbiAgICAgPC9kaXY+XHJcbiAgIDwvcmV3YXJkaW5mby1kaWFsb2c+YFxyXG4gIH1cclxuICBcclxuX3Jld2FyZF9jbGFpbV9tb2RhbCgpe1xyXG4gIHJldHVybiBodG1sIGAgPHJld2FyZGluZm8tZGlhbG9nPlxyXG4gIDxkaXYgc2xvdD1cIm1vZGVsLWhlYWRlci1zbG90XCI+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICBjbGFzcz1cIm1vZGVsLWNsb3NlXCJcclxuICAgICAgICBkYXRhLWRpc21pc3M9XCJtb2RhbFwiXHJcbiAgICAgICAgYXJpYS1sYWJlbD1cIkNsb3NlXCJcclxuICAgICAgICBAY2xpY2s9XCIke3RoaXMuX2Nsb3NlUmV3YXJkSW5mb01vZGFsfVwiXHJcbiAgICAgID5cclxuICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4mdGltZXM7PC9zcGFuPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBzbG90PVwibW9kZWwtaGVhZGVyLWJvZHlcIiBjbGFzcz1cIm1vZGFsLWRpYWxvZy1yZXdhcmRsaW5rXCI+PGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG4gIDxkaXYgY2xhc3M9XCJyb3cgdGV4dC1jZW50ZXJcIj5cclxuICAgIDxoMj48bG9jYWwtZWxlbSBsb2NhbEtleT1cInJld2FyZF9saW5rX2hlYWRlclwiPjwvbG9jYWwtZWxlbT48L2gyPlxyXG4gICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgPGEgaWQ9XCJpb3MtYXBwLWxvZ29cIiBocmVmPVwiaHR0cHM6Ly9hcHBzLmFwcGxlLmNvbS91cy9hcHAvYmFieXNwYXJrcy1kZXZlbG9wbWVudC1hcHAvaWQ3OTQ1NzQxOTlcIiBjbGFzcz1cImJ0biBidG4tc3RvcmUgXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmEgZmEtYXBwbGUgZmEtM3ggcHVsbC1sZWZ0XCIgc3R5bGU9XCJtYXJnaW4tdG9wIDogLTEwcHhcIj48L3NwYW4+IFxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJ0bi1sYWJlbFwiPjxsb2NhbC1lbGVtIGxvY2FsS2V5PVwicmV3YXJkX2xpbmtfZG93bmxvYWRfdGV4dFwiPjwvbG9jYWwtZWxlbT48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYnRuLWNhcHRpb25cIj5BcHAgU3RvcmU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgIDxhIGlkPVwiZ29vZ2xlLWFwcC1sb2dvXCIgaHJlZj1cImh0dHBzOi8vcGxheS5nb29nbGUuY29tL3N0b3JlL2FwcHMvZGV0YWlscz9pZD1jb20uYmFieXNwYXJrcy5iYWJ5c3BhcmtzXCIgY2xhc3M9XCJidG4gYnRuLXN0b3JlIFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZhIGZhLWFuZHJvaWQgZmEtM3ggcHVsbC1sZWZ0XCIgIHN0eWxlPVwibWFyZ2luLXRvcCA6IC0xMHB4XCI+PC9zcGFuPiBcclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJidG4tbGFiZWxcIj48bG9jYWwtZWxlbSBsb2NhbEtleT1cInJld2FyZF9saW5rX2Rvd25sb2FkX3RleHRcIj48L2xvY2FsLWVsZW0+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJ0bi1jYXB0aW9uXCI+R29vZ2xlIFBsYXk8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgPC9wPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+PC9kaXY+XHJcbiAgPC9yZXdhcmRpbmZvLWRpYWxvZz5gXHJcbn1cclxuXHJcbmFzeW5jIF9mZXRjaFJld2FyZERhdGEoKXtcclxuICBjb25zdCByZXdhcmRfaW5mbyA9IGF3YWl0IHJld2FyZFByb2dyYW0oKTtcclxuICBsZXQgY2xhc3NfYXR0ZW5kZWQgPSAwO1xyXG4gIGxldCBjbGFzc190b19hdHRlbmQgPSAwO1xyXG4gIGlmKHJld2FyZF9pbmZvLmxlbmd0aD4wKXtcclxuICAgIGNsYXNzX2F0dGVuZGVkID0gYXdhaXQgcmV3YXJkX2luZm9bMF0uY2xhc3Nlc19hdHRlbmRlZDtcclxuICAgIGNsYXNzX2F0dGVuZGVkID0gY2xhc3NfYXR0ZW5kZWQ+PTU/NTpjbGFzc19hdHRlbmRlZDtcclxuICAgIGNsYXNzX3RvX2F0dGVuZCA9IDUtY2xhc3NfYXR0ZW5kZWQ7XHJcbiAgfVxyXG4gIGxldCBwcm9ncmVzc0ltZztcclxuICBzd2l0Y2goY2xhc3NfYXR0ZW5kZWQpIHtcclxuICAgIGNhc2UgMToge1xyXG4gICAgICBwcm9ncmVzc0ltZyA9IGNvbWVwbGV0ZWRfMTtcclxuICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgY2FzZSAyOiB7XHJcbiAgICAgIHByb2dyZXNzSW1nID0gY29tZXBsZXRlZF8yO1xyXG4gICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICBjYXNlIDM6IHtcclxuICAgICAgcHJvZ3Jlc3NJbWcgPSBjb21lcGxldGVkXzM7XHJcbiAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIGNhc2UgNDoge1xyXG4gICAgICBwcm9ncmVzc0ltZyA9IGNvbWVwbGV0ZWRfNDtcclxuICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgY2FzZSA1OiB7XHJcbiAgICAgIHByb2dyZXNzSW1nID0gY29tZXBsZXRlZF81O1xyXG4gICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiB9XHJcblxyXG5cclxuIFxyXG4gIHJldHVybi
1BodG1sYFxyXG4gICR7Y2xhc3NfYXR0ZW5kZWQ8NT9odG1sYCR7dGhpcy5fcmV3YXJkX3J1bGVfbW9kYWwoKX1gOmh0bWxgJHt0aGlzLl9yZXdhcmRfY2xhaW1fbW9kYWwoKX1gfVxyXG4gIDxkaXYgY2xhc3M9XCJiYW5uZXItc2VjdGlvblwiIEBjbGljaz1cIiR7dGhpcy5fcmV3YXJkX2luZm99XCI+XHJcbiAgPGRpdiBjbGFzcz1cImJhbm5lci1wdXJwbGUgJHsoKGNsYXNzX2F0dGVuZGVkPj01KT9gYmFubmVyLXB1cnBsZS1ncmVlbmA6YGApfVwiID5cclxuICAke2NsYXNzX2F0dGVuZGVkPT0wP2h0bWxgXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJiYW5uZXItcHVycGxlLWxlZnQgdHJpYW5nbGUtYmdcIj5cclxuICAgICAgICAgIDxoMz48bG9jYWwtZWxlbSBsb2NhbEtleT1cIkpvaW4gb3VyIHJld2FyZHMgcHJvZ3JhbVwiPjwvbG9jYWwtZWxlbT4hPC9oMz5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJncm91cC1pbmZvLWJhbm5lclwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVkaXVtLWZzaXplLWJhbm5lciBmYm9sZFwiPjxsb2NhbC1lbGVtIGxvY2FsS2V5PVwiQXR0ZW5kXCI+PC9sb2NhbC1lbGVtPjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm51bWJlci1jbGFzcy1iYW5uZXIgb3JhbmdlLWNvbG9yIGZib2xkXCI+NTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm9yYW5nZS1jb2xvciBtZWRpdW0tZnNpemUtYmFubmVyIGZib2xkXCI+PGxvY2FsLWVsZW0gbG9jYWxLZXk9XCJMaXZlIENsYXNzZXNcIj48L2xvY2FsLWVsZW0+PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInJlY2VpdmUtdGV4dC1iYW5uZXIgbWVkaXVtLWZzaXplLWJhbm5lclwiPjxsb2NhbC1lbGVtIGxvY2FsS2V5PVwiYW5kIHJlY2VpdmUgYVwiPjwvbG9jYWwtZWxlbT4uLi4gPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5gOmh0bWwgYCR7KGNsYXNzX2F0dGVuZGVkPDUpP2h0bWxgXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJiYW5uZXItcHVycGxlLWxlZnRcIj5cclxuICAgICAgPGgzPjxsb2NhbC1lbGVtIGxvY2FsS2V5PVwiWW91dmUgYXR0ZW5kZWRcIj48L2xvY2FsLWVsZW0+PC9oMz5cclxuICAgICAgPGRpdiBjbGFzcz1cImdyb3VwLWluZm8tYmFubmVyXCI+XHJcbiAgICAgICAgICA8aW1nIHNyYz1cIiR7cHJvZ3Jlc3NJbWd9XCIgc3R5bGU9XCJ3aWR0aDo2MHB4O1wiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJudW1iZXItY2xhc3MtYmFubmVyIG9yYW5nZS1jb2xvciBmYm9sZFwiPiR7Y2xhc3NfYXR0ZW5kZWR9PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJvcmFuZ2UtY29sb3IgbWVkaXVtLWZzaXplLWJhbm5lciBmYm9sZFwiPjxsb2NhbC1lbGVtIGxvY2FsS2V5PVwiTGl2ZSBDbGFzc2VzXCI+PC9sb2NhbC1lbGVtPjwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwib3JhbmdlLWNvbG9yIG1lZGl1bS1mc2l6ZS1iYW5uZXJcIj4ke2NsYXNzX3RvX2F0dGVuZH0gPGxvY2FsLWVsZW0gbG9jYWxLZXk9XCJtb3JlXCI+PC9sb2NhbC1lbGVtPiA8L3NwYW4+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwibWVkaXVtLWZzaXplLWJhbm5lclwiPjxsb2NhbC1lbGVtIGxvY2FsS2V5PVwiYW5kIHlvdSBjYW4gY2xhaW0geW91clwiPjwvbG9jYWwtZWxlbT4uLi4gPC9zcGFuPlxyXG4gIDwvZGl2PmA6aHRtbGA8ZGl2IGNsYXNzPVwiYmFubmVyLXB1cnBsZS1sZWZ0XCI+XHJcbiAgPGgzPjxsb2NhbC1lbGVtIGxvY2FsS2V5PVwiQ29uZ3JhdHVsYXRpb25zXCI+PC9sb2NhbC1lbGVtPiE8L2gzPlxyXG4gIDxkaXYgY2xhc3M9XCJncm91cC1pbmZvLWJhbm5lclwiPlxyXG4gICAgICA8aW1nIHNyYz1cIiR7cHJvZ3Jlc3NJbWd9XCIgc3R5bGU9XCJ3aWR0aDo2MHB4O1wiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cIm51bWJlci1jbGFzcy1iYW5uZXIgb3JhbmdlLWNvbG9yIGZib2xkXCI+JHtjbGFzc19hdHRlbmRlZH08L3NwYW4+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwib3JhbmdlLWNvbG9yIG1lZGl1bS1mc2l6ZS1iYW5uZXIgZmJvbGRcIj48bG9jYWwtZWxlbSBsb2NhbEtleT1cIkxpdmUgQ2xhc3Nlc1wiPjwvbG9jYWwtZWxlbT48L3NwYW4+XHJcbiAgPC9kaXY+XHJcbiAgPHNwYW4gY2xhc3M9XCJtZWRpdW0tZnNpemUtYmFubmVyXCI+PGxvY2FsLWVsZW0gbG9jYWxLZXk9XCJDbGFpbSB5b3VyIDMwLW1pbnV0ZSBjb25zdWx0YXRpb25cIj48L2xvY2FsLWVsZW0+PC9zcGFuPlxyXG48L2Rpdj5gfWB9XHJcbiR7Y2xhc3NfYXR0ZW5kZWQ8NT9odG1sYFxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYmFubmVyLXB1cnBsZS1yaWdodFwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJvcmFuZ2UtY29sb3IgbWVkaXVtLWZzaXplLWJhbm5lciBmYm9sZCBwYmxvY2tcIj48bG9jYWwtZWxlbSBsb2NhbEtleT1cIkZSRUUgMzAtbWludXRlXCI+PC9sb2NhbC1lbGVtPiA8YnI+IDxsb2NhbC1lbGVtIGxvY2FsS2V5PVwiY29uc3VsdGF0aW9uXCI+PC9sb2NhbC1lbGVtPjwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVkaXVtLWZzaXplLWJhbm5lciBwYmxvY2tcIj48bG9jYWwtZWxlbSBsb2NhbEtleT1cIndpdGggYW4gZXhwZXJ0XCI+PGJyPjxsb2NhbC1lbGVtIGxvY2FsS2V5PVwib2YgeW91ciBjaG9pY2VcIj48L2xvY2FsLWVsZW0+PC9zcGFuPlxyXG4gICAgICAgICAgPHAgY2xhc3M9XCJvZmZlci10ZXh0LWRlY2VtYmVyXCI+PGxvY2FsLWVsZW0gbG9jYWxLZXk9XCJPZmZlciB2YWxpZCBzaW5jZSBEZWNlbWJlciAxNSAyMDIxXCI+PC9sb2NhbC1lbGVtPi48L3A+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICBgOmh0bWxgPGRpdiBjbGFzcz1cImJhbm5lci1wdXJwbGUtcmlnaHRcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJtZWRpdW0tZnNpemUtYmFubmVyIHBibG9ja1wiPjxsb2NhbC1lbGVtIGxvY2FsS2V5PVwidGhyb3VnaCBvdXIgYXBwXCI+PC9sb2NhbC1lbGVtPjxicj48bG9jYWwtZWxlbSBsb2NhbEtleT1cImRvd25sb2FkIGl0XCI+PC9sb2NhbC1lbGVtPiA8YnI+PGxvY2FsLWVsZW0gbG9jYWxLZXk9XCJmb3IgZnJlZSBoZXJlXCI+PC9sb2NhbC1lbGVtPiA8L3NwYW4+XHJcbiAgICAgIDxwIGNsYXNzPVwib2ZmZXItdGV4dC1kZWNlbWJlci1sYXN0XCI+PGxvY2FsLWVsZW0gbG9jYWxLZXk9XCJPZmZlciB2YWxpZCBzaW5jZSBEZWNlbWJlciAxNSAyMDIxXCI+PC9sb2NhbC1lbGVtPi48L3A+XHJcbiAgPC9kaXY+YFxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG48L2Rpdj5gXHJcblxyXG59O1xyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgcmVuZGVyKCkge1xyXG4gICAgcmV0dXJuIGh0bWxgJHt1bnRpbCh0aGlzLl9mZXRjaFJld2FyZERhdGEoKSwgaHRtbGBgKX1gO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbmN1c3RvbUVsZW1lbnRzLmRlZmluZShcInJld2FyZC1wcm9ncmFtXCIsIFJld2FyZFByb2dyYW0pO1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///4164\n\n}')},4579:(__unused_webpack_module,__unused_webpack___webpack_exports__,__webpack_require__)=>{eval('{\n// UNUSED EXPORTS: SubscriptionTable\n\n// EXTERNAL MODULE: ./node_modules/lit/index.js\nvar lit = __webpack_require__(6161);\n;// ./src/components/subscription-table/subscription-table.scss\n /* harmony default export */ const subscription_table = ((0,lit/* css */.AH)`a:hover{color:#97c940}.center{text-align:center!important}.left{text-align:left!important}.right{text-align:right!important}img,svg{vertical-align:middle}*,::after,::before{box-sizing:border-box}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}.flex-center{display:flex!important;justify-content:center!important}textarea::placeholder{color:#848fa5!important}@media(max-width:768px){.tab-content{position:relative;padding:0 0 0 34px}}.subscription-table,.table-subscription,:host{--perk-color-on:#1693d7;--perk-color-off:#cbd6e2;--perk-badge-bg:#eef2f7;--perk-row-border:#e9edf3}.table-subscription{font-family:Arial,sans-serif;color:#333;background:#fff;padding:3rem;box-shadow:0 -3px 11px rgba(0,0,0,.1490196078)}.table-subscription .plans-wrapper{display:flex;width:100%;align-items:stretch}.table-subscription .plans-wrapper{display:grid;grid-template-columns:minmax(240px,1fr) minmax(640px,3fr);align-items:start}.table-subscription .plans-wrapper .plans-row{display:grid;grid-template-columns:repeat(3,minmax(280px,1fr))}.table-subscription .plans-wrapper.two-plans .plans-row{grid-template-columns:repeat(2,minmax(320px,1fr))}.table-subscription .feature-list{width:auto}.table-subscription .feature-list ul{list-style:none;margin:0;padding:0}.table-subscription .feature-list li{height:44px;padding:0 12px;display:flex;align-items:center;justify-content:space-between;font-size:14px;box-sizing:border-box}.table-subscription .feature-list .billing-toggle{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:6px;height:auto;padding:12px}.table-subscription .feature-list .billing-toggle label{display:block;margin:0 0 6px 0;font-size:14px;color:#666}.table-subscription .feature-list .billing-toggle .toggle-buttons{display:inline-flex;background:#f2f4f7;border-radius:999px;padding:2px}.table-subscription .feature-list .billing-toggle .toggle-buttons button{border:0;background:rgba(0,0,0,0);padding:6px 16px;border-radius:999px;font-size:14px;color:#8a8f98;cursor:pointer}.table-subscription .feature-list .billing-toggle .toggle-buttons button.active{background:#0094cc;color:#fff}.table-subscription .feature-list .billing-toggle .offer{margin-top:2px;font-size:13px;color:#0094cc;display:flex;align-items:center;gap:4px}.table-subscription .feature-list .feature-text{display:flex;align-items:center;gap:6px}.table-subscription .feature-list .feature-text .tooltip{position:relative}.table-subscription .feature-list .feature-text .tooltip .tooltip-icon{background:#fff;border-radius:50%;padding:0 6px;font-size:12px;cursor:pointer;line-height:1.2;display:inline-flex;align-items:center;justify-content:center;color:#0094cc;border:1px solid #0094cc!important}.table-subscription .feature-list .feature-text .tooltip .tooltip-text{visibility:hidden;background:#555;color:#fff;padding:8px;border-radius:4px;position:absolute;top:120%;left:0;z-index:10;width:220px;white-space:normal}.table-subscription .feature-list .feature-text .tooltip:hover .tooltip-text{visibility:visible}.table-subscription .plan{width:auto;margin:0 1rem;background:#f5f5f5;border:2px solid #f5f5f5;border-radius:8px;box-sizing:border-box;display:flex;flex-direction:column}.table-subscription .plan.highlight{background:#f7fbfd;border-color:#0094cc;position:relative}.table-subscription .plan.highlight::before{content:"MOST POPULAR";position:absolute;top:-10px;right:8px;background:#0094cc;color:#fff;font-size:10px;padding:2px 6px;border-radius:2px 4px 0 4px}.table-subscription .plan:last-child{background:#fff!important}.table-subscription .plan .plan-header{padding:16px 12px 12px;text-align:center;box-sizing:border-box}.table-subscription .plan .plan-header .plan-button{margin-bottom:10px;margin-top:10px}.table-subscription .plan .plan-header .plan-button .button-plans{padding:8px;font-size:12px;text-align:center;text-decoration:none;background:#97c940;width:130px;display:block;color:#fff;border-radius:23px;font-weight:300;border:none;margin:auto;cursor:pointer;min-width:100px}.table-subscription .plan .plan-header .plan-button .button-disabled{cursor:not-allowed!important;background:rgba(151,201,64,.4392156863)!important;color:#fff;border:none}.table-subscription .plan .plan-header .plan-name{font-weight:700;font-size:16px;margin:2px 0}.table-subscription .plan .plan-header .plan-label{color:#0094cc;font-weight:700;margin:2px 0}.table-subscription .plan .plan-header .plan-price{color:#0094cc;font-size:12px;margin:2px 0}.table-subscription .plan .plan-header .plan-note{font-weight:700;font-size:12px;margin-top:2px;color:#000}.table-subscription .plan .plan-header .plan-sub-note{font-size:12px;text-align:center;display:block;color:#31353e;font-family:SFProDisplay-Bold;font-weight:400}.table-subscription .plan .plan-header .ref-label{font-size:14px;text-align:center;display:block;color:#000;font-family:SFProDisplay-Bold}.table-subscription .plan .plan-header .plan-note,.table-subscription .plan .plan-header .plan-price{min-height:20px}.table-subscription .plan .plan-header .plan-note:empty::before,.table-subscription .plan .plan-header .plan-price:empty::before{content:"Â ";display:inline-block}.table-subscription .plan .plan-features{list-style:none;padding:0;margin:0}.table-subscription .plan .plan-features li{height:44px;display:flex;align-items:center;justify-content:center;font-size:14px}
1.table-subscription .plan .plan-features li .check{color:#3caad6;font-size:18px;line-height:1}.table-subscription .plan .plan-features li .empty{color:#aaa;font-size:18px;line-height:1}.table-subscription .note{margin-top:24px;padding:16px;text-align:center;border:1px solid #e2e2e2}.table-subscription .note strong{color:#666;font-size:13px}.regularGuideDesc{text-align:center;margin:12px 0 24px}.regularGuideDesc h2{font-size:28px;color:#469bcd;margin-bottom:10px;text-align:center;font-family:SFProDisplay-Regular}.regularGuideDesc p{color:#778090;font-size:20px;font-family:"Open Sans",sans-serif;text-align:center}.referralGuideDesc{text-align:center;margin:1rem auto 1rem auto}.referralGuideDesc p{margin:0!important;color:#31353e!important;font-family:"Open Sans",sans-serif;font-size:18px!important;font-weight:700!important;line-height:28px!important}.referralGuideDesc .discountLabel{color:#0493cc}.pagerProgressSection{width:100%;text-align:center;margin:2rem auto}.myclassHeading{color:#0493cc;font-family:SFProDisplay-Bold;font-size:24px;padding:0 0 0 2rem;line-height:0;margin-bottom:2rem}.feature-list{list-style:none;margin:0;padding:0}.feature-list>li{display:flex;align-items:center;justify-content:space-between;min-height:44px;padding:12px 0}.feature-text{display:inline-flex;align-items:center;gap:6px}.feature-list>li.bold .feature-text{font-weight:700}.btn.btn-tooltip{background:rgba(0,0,0,0);border:0;padding:0;line-height:1;color:#8a99a8;cursor:default}.btn.btn-tooltip:hover{color:#58697a}.plan-features{list-style:none;margin:0;padding:0}.plan-features>li{display:flex;align-items:center;justify-content:center;min-height:44px;padding:10px}.perk-check{display:inline-flex;align-items:center;justify-content:center;min-width:16px}.perk-text{display:inline-block;min-width:72px;text-align:center;line-height:1.2;white-space:nowrap}.perk-text.bold{font-weight:700}.perk-text.badge{padding:2px 8px;border-radius:999px;background:var(--perk-badge-bg)}.container-checkbox{position:relative;display:inline-flex;align-items:center;gap:10px;font:inherit}.container-checkbox.readonly{pointer-events:none;user-select:none;margin:0}.container-checkbox>input{position:absolute;opacity:0;width:0;height:0}.container-checkbox .checkmark{position:relative;width:16px;height:16px;flex:0 0 16px;box-sizing:border-box;border-radius:50%;border:2px solid var(--perk-color-off);background:#fff}.container-checkbox input:checked~.checkmark{border-color:var(--perk-color-on);background:var(--perk-color-on)}.container-checkbox input:checked:disabled~.checkmark{border-color:var(--perk-color-on);background:var(--perk-color-on)}.container-checkbox .checkmark::after{content:"";position:absolute;display:none;left:4px;top:1px;width:4px;height:8px;border:2px solid #fff;border-top:0;border-left:0;transform:rotate(45deg)}.container-checkbox input:checked:disabled~.checkmark::after,.container-checkbox input:checked~.checkmark::after{display:block}.mobile-features .value,.perk-text{color:var(--perk-color-on)}@media(max-width:768px){.table-subscription{display:none!important}.regularGuideDesc{width:90%;margin:1rem auto}.regularGuideDesc h2{font-size:24px}.mobile-subscription{font-family:Arial,sans-serif;color:#333;background:#f5f7f9;padding:2rem 0;box-shadow:0 -3px 11px rgba(0,0,0,.1490196078)}.mobile-subscription .mobile-tabs{display:flex;justify-content:space-between}.mobile-subscription .mobile-tabs .tab{flex:1;text-align:center;padding:10px 0;text-transform:uppercase;font-weight:700;font-size:14px;color:#8a99a8;background:rgba(0,0,0,0);border:none;border-bottom:3px solid transparent;cursor:pointer;transition:all .25s ease}.mobile-subscription .mobile-tabs .tab.active{color:#0094cc;border-bottom:3px solid #0094cc}.mobile-subscription .mobile-tabs .tab:focus-visible{outline:0;text-decoration:underline;text-underline-offset:4px}.mobile-subscription .mobile-billing{text-align:center;background:#fff;padding-top:.75rem}.mobile-subscription .mobile-billing .label{font-size:13px;color:#666;margin-bottom:6px}.mobile-subscription .mobile-billing .toggle-buttons{display:inline-flex;background:#f2f4f7;border-radius:999px;padding:2px}.mobile-subscription .mobile-billing .toggle-buttons button{border:0;background:rgba(0,0,0,0);padding:6px 16px;border-radius:999px;font-size:14px;color:#8a8f98;cursor:pointer}.mobile-subscription .mobile-billing .toggle-buttons button.active{background:#0094cc;color:#fff}.mobile-subscription .mobile-billing .offer{margin-top:6px;font-size:13px;color:#0094cc;display:flex;align-items:center;gap:4px;justify-content:center;width:85%}.mobile-subscription .mobile-hero{text-align:center;background:#fff}.mobile-subscription .mobile-hero .hero-title{font-weight:700;font-size:16px}.mobile-subscription .mobile-hero .hero-label{color:#0094cc;font-weight:700;margin:4px 0}.mobile-subscription .mobile-hero .hero-tagline{color:#0094cc;font-weight:700;font-size:13px}.mobile-subscription .mobile-hero .hero-cta{margin:8px auto 6px;display:inline-block;min-width:70%;background:#a6ce39;color:#fff;border:none;border-radius:24px;padding:10px 16px;font-weight:700;cursor:pointer}.mobile-subscription .mobile-hero .hero-cta.button-disabled{cursor:not-allowed;background:rgba(151,201,64,.4392156863);color:#fff;border:none}.mobile-subscription .mobile-hero .hero-approx{color:#0094cc;font-size:12px}.mobile-subscription .mobile-features{list-style:none;padding:0 0 0 .75rem;margin:0;background:#fff}.mobile-subscription .mobile-features li{display:flex;align-items:center;padding:12px 10px;color:#727272}.mobile-features .container-checkbox{display:inline-flex;align-items:center;gap:10px;flex:1;pointer-events:none;user-select:none;margin:0}.mobile-features .container-checkbox>input{position:absolute;opacity:0;width:0;height:0}.mobile-features .checkmark{width:16px;height:16px;flex:0 0 16px}.mobile-features .feature-text.bold{font-weight:700}.mobile-features .btn.btn-tooltip{margin-left:8px;flex:0 0 auto;background:rgba(0,0,0,0);border:0;color:#0094cc}.myclassHeading{color:#0493cc;font-family:SFProDisplay-Bold;font-size:20px;font-weight:600;line-height:0;margin-bottom:2rem;padding:0!important}}`);\n \n// EXTERNAL MODULE: ./src/utils/common.js\nvar common = __webpack_require__(8369);\n// EXTERNAL MODULE: ./node_modules/pwa-helpers/connect-mixin.js\nvar connect_mixin = __webpack_require__(4753);\n// EXTERNAL MODULE: ./src/redux/store.js + 1 modules\nvar store = __webpack_require__(5548);\n// EXTERNAL MODULE: ./src/utils/analytics.js + 1 modules\nvar analytics = __webpack_require__(5908);\n// EXTERNAL MODULE: ./node_modules/js-cookie/dist/js.cookie.mjs\nvar js_cookie = __webpack_require__(8987);\n;// ./src/components/subscription-table/bridge-render-selected.js\n// legacy/bridge-render-selected.js\r\n\r\n\r\n \r\nfunction render
1SelectedSubscription(selectedSubscription,opts = {}) {\r\n const myStorage = window.localStorage;\r\n const _bs_logged_user_id = myStorage.getItem("login_userI") || null;\r\n\r\n const userId =\r\n opts.userId ??\r\n _bs_logged_user_id ??\r\n "";\r\n\r\n const isUserReferred = opts.isUserReferred ?? false;\r\n\r\n // read values from either a DOM element or a plain string\r\n let subscriptionValue = "";\r\n let subscriptionId = "";\r\n let subscriptionType = "";\r\n\r\n if (selectedSubscription && selectedSubscription.nodeType === 1) {\r\n // DOM element (what the Lit component creates)\r\n subscriptionValue = selectedSubscription.value || "";\r\n subscriptionId = selectedSubscription.dataset?.id || "";\r\n subscriptionType = selectedSubscription.dataset?.type || "";\r\n } else if (typeof selectedSubscription === "string") {\r\n // direct string "basic-yearly.<id>"\r\n subscriptionValue = selectedSubscription;\r\n } else if (selectedSubscription && typeof selectedSubscription === "object") {\r\n // any object with these fields\r\n subscriptionValue = selectedSubscription.value || "";\r\n subscriptionId = selectedSubscription.id || "";\r\n subscriptionType = selectedSubscription.type || "";\r\n }\r\n\r\n let pageName = "";\r\n\r\n let server = (window.location.host === "devdashboard.babysparks.com")\r\n ? "//devdashboard.babysparks.com/"\r\n : "//babysparks.com/";\r\n\r\n // Store subscription id for web-* transactions\r\n if ((subscriptionType || "").includes("web-") && subscriptionId) {\r\n myStorage.setItem("subscription_id", subscriptionId);\r\n }\r\n\r\n const subscriptionArr = (subscriptionValue || "").split(".");\r\n const [planKey = "", planId] = (subscriptionValue || "").split(".");\r\n \r\n \r\n\r\n if (subscriptionArr.length > 0) {\r\n\r\n try {\r\n if (isUserReferred) (0,analytics/* eventReferralSubscriptionBuy */.ds)(userId);\r\n if (planKey.includes("basic-yearly")) (0,analytics/* eventYearlyBasic */.Vg)(userId, 0);\r\n else if (planKey.includes("premium-yearly")) (0,analytics/* eventYearlyPremium */.gW)(userId, 0);\r\n else if (planKey.includes("basic-monthly")) (0,analytics/* eventMonthlyBasic */.Yg)(userId, 0);\r\n else if (planKey.includes("premium-monthly"))(0,analytics/* eventMonthlyPremium */.rf)(userId, 0);\r\n } catch (e) { console.warn("analytics error (ignored):", e); }\r\n \r\n if (planId) myStorage.setItem("plan_id", planId);\r\n\r\n if (!userId) {\r\n const expiresDays = 30; // keep cookie 30 days\r\n let cookieName = "";\r\n // Determine which cookie to set based on plan\r\n if (planKey.includes("basic")) {\r\n cookieName = "sub_req"; // for basic\r\n pageName = "register/?subscription=false";\r\n } else if (planKey.includes("premium")) {\r\n cookieName = "prem_sub_req"; // for premium\r\n pageName = "register/?subscription=true";\r\n }\r\n if (cookieName) {\r\n js_cookie/* default */.A.set(cookieName, planKey, { expires: expiresDays, path: "/" });\r\n }\r\n \r\n } else {\r\n // Logged in â go to subscription page\r\n pageName = "subscribe";\r\n if (planKey) pageName += "/" + planKey;\r\n //Append /ref-wp if the current page URL includes "app-overview"\r\n if (window.location.href.includes("app-overview")) {\r\n pageName += "/ref-wp";\r\n }\r\n }\r\n }\r\n\r\n window.location.href = server + pageName;\r\n}\r\n\r\n// expose globally so the Lit component can call it\r\nwindow.renderSelectedSubscription = renderSelectedSubscription;\r\n\n// EXTERNAL MODULE: ./src/components/pager-progress-bar/pager-progress-bar.js + 1 modules\nvar pager_progress_bar = __webpack_require__(175);\n// EXTERNAL MODULE: ./src/components/localization/localization.js\nvar localization = __webpack_require__(8550);\n// EXTERNAL MODULE: ./src/controllers/usersPackagesController.js\nvar usersPackagesController = __webpack_require__(2311);\n;// ./src/components/subscription-table/subscription-table.js\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n/**\r\n * Per-plan TEXT overrides for perk cells.\r\n * Indexe
1s map to the desktopFeatures order:\r\n * 0 On-demand | 1 Live | 2 AI expert | 3 Development program | 4â8 others.\r\n *\r\n * Value options:\r\n * - true/false â show tick/dash (default icon behavior)\r\n * - "Some text" â render that text in the cell\r\n * - { text, badge?, bold? } â text with optional pill style (badge) and weight (bold)\r\n *\r\n * Examples:\r\n * 0: { text: "Unlimited", badge: true }, // pill-styled\r\n * 1: { text: "Unlimited" }, // plain text\r\n * 2: { text: "3 conversations", badge: true, bold: true } // pill + bold\r\n */\r\n\r\nconst TEXT_PERKS = {\r\n FREE: {\r\n 0: false,\r\n 1: false,\r\n 2: { text: "3 conversations" },\r\n 3: { text: "2 Development activities a day" },\r\n 4: true,\r\n 5: true,\r\n 6: true,\r\n 7: true,\r\n 8: true, // <- booleans!\r\n },\r\n BASIC: {\r\n 0: false,\r\n 1: false,\r\n 2: { text: "3 conversations" },\r\n 3: { text: "Unlimited" },\r\n 4: true,\r\n 5: true,\r\n 6: true,\r\n 7: true,\r\n 8: true, // <- booleans!\r\n },\r\n PREMIUM: {\r\n 0: { text: "Unlimited" },\r\n 1: { text: "Unlimited" },\r\n 2: { text: "Unlimited" },\r\n 3: { text: "Unlimited" },\r\n 4: true,\r\n 5: true,\r\n 6: true,\r\n 7: true,\r\n 8: true, // <- booleans!\r\n },\r\n};\r\n\r\nclass SubscriptionTable extends (0,connect_mixin/* connect */.N)(store/* store */.M)(lit/* LitElement */.WF) {\r\n _raf = 0;\r\n _onStoreChange = null;\r\n static get styles() {\r\n return [subscription_table];\r\n }\r\n\r\n static properties = {\r\n plans: { type: Array },\r\n features: { type: Array },\r\n tooltips: { type: Array },\r\n billingMode: { type: String },\r\n isMobile: { type: Boolean, attribute: false },\r\n activePlanIdx: { type: Number, attribute: false },\r\n isUserReferred: { type: Boolean, attribute: false },\r\n latestPackage: { type: Object, attribute: false },\r\n currentLang: { type: String },\r\n desktopFeatures: { type: Array },\r\n mobileFeatures: { type: Array },\r\n boldDesktop: { type: Array },\r\n boldMobile: { type: Array },\r\n isB2bUser: { type: Boolean, attribute: false },\r\n };\r\n\r\n constructor() {\r\n super();\r\n this.billingMode = "yearly";\r\n this.isMobile = false;\r\n this.activePlanIdx = 0;\r\n this.progressSteps = ["Select Plan", "Review", "Confirm"];\r\n this.currentStep = 1;\r\n this.desktopFeatures = [\r\n "On-demand parenting classes",\r\n "AI-powered parenting expert",\r\n "Development program (play activities)",\r\n "Family sharing (Subscription)",\r\n "Family sharing (childâs profile)",\r\n "Daily feed with articles + tips",\r\n "Progress + growth reports",\r\n "Development milestones",\r\n ];\r\n\r\n this.mobileFeatures = [\r\n "Unlimited On-demand parenting classes",\r\n "Unlimited access to an AI-powered parenting expert",\r\n "Unlimited Development program (play activities)",\r\n "Family sharing (Subscription)",\r\n "Daily feed with articles + tips",\r\n "Progress + growth reports",\r\n "Development milestones",\r\n ];\r\n this.tooltips = [\r\n "Access recorded expert-led sessions on various parenting topics",\r\n "Get advice and guidance from our AI assistant",\r\n "Daily curated play activities to support your childâs development",\r\n "Allows sharing subscription benefits with family members",\r\n "Enables sharing child profiles with caregivers",\r\n "Receive articles and tips daily personalized for your child",\r\n "Track your childâs growth and progress over time",\r\n "View and track your childâs developmental milestones",\r\n ];\r\n\r\n this.plans = [];\r\n this.active = null; // snapshot of user\'s active package\r\n this.billingModeLocked = false;\r\n this._plansSig = "";\r\n this.isUserReferred = false;\r\n this.features = this._computeFeatures();\r\n // optional bold defaults (can override from parent)\r\n this.boldDesktop = [0, 1, 2, 3];\r\n this.boldMobile = [0, 1, 2, 3];\r\n this.isB2bUser = false;\r\n }\r\n\r\n _isFeatureBold(i) {\r\n const arr = this.isMobile ? this.boldMobile : this.boldDesktop;\r\n return Array.isArray(arr) && arr.includes(i);\r\n }\r\n\r\n // Make sure plan.perks exists and has at least N slots\r\n _ensurePerksArray(plan, minLen) {\r\n if (!Array.isArray(plan.perks)) plan.perks = [];\r\n if (plan.perks.length < minLen) {\r\n plan.perks = plan.perks.concat(\r\n Array(minLen - plan.perks.length).fill(false)\r\n );\r\n }\r\n return plan.perks;\r\n }\r\n\r\n // Apply TEXT_PERKS overrides by plan.name\r\n _applyTextPerks(plan) {\r\n const name = String(plan?.name || "").toUpperCase();\r\n const map = TEXT_PERKS[name];\r\n // use the max list (desktop) so we never index out of range\r\n const needed = this.desktopFeatures?.length || 9;\r\n this._ensurePerksArray(plan, needed);\r\n\r\n if (!map) return plan; // nothing to do\r\n\r\n for (const [idxStr, value] of Object.entries(map)) {\r\n const idx = Number(idxStr);\r\n // value can be "Unlimited" or { text, badge, bold }\r\n plan.perks[idx] = value;\r\n }\r\n return plan;\r\n }\r\n\r\n _computeFeatures() {\r\n return this.isMobile ? this.mobileFeatures : this.desktopFeatures;\r\n }\r\n\r\n stateChanged(state) {\r\n this.currentLang = state.languageFilter || ["en"];\r\n this.requestUpdate();\r\n }\r\n\r\n equalizeHeaders() {\r\n if (this.isMobile) return; // not needed in mobile mode\r\n const root = this.renderRoot;\r\n if (!root) return;\r\n\r\n const planHeaders = [...root.querySelectorAll(".plan-header")];\r\n const featureHeader = root.querySelector(".feature-list .billing-toggle");\r\n const all = featureHeader ? [featureHeader, ...planHeaders] : planHeaders;\r\n\r\n all.forEach((n) => (n.style.height = "auto"));\r\n\r\n requestAnimationFrame(() => {\r\n let max = 0;\r\n all.forEach((n) => {\r\n const h = n?.getBoundingClientRect().height || 0;\r\n if (h > max) max = h;\r\n });\r\n if (max > 0) all.forEach((n) => (n.style.height = `${Math.ceil(max)}px`));\r\n });\r\n }\r\n\r\n _setIsMobile() {\r\n const mobile = (0,common/* isMobileDevice */.Xb)();\r\n if (mobile !== this.isMobile) {\r\n this.isMobile = mobile;\r\n this.requestUpdate();\r\n this.updateComplete.then(() => {\r\n if (!this.isMobile) this.equalizeHeaders();\r\n });\r\n }\r\n }\r\n\r\n firstUpdated() {\r\n this._setIsMobile();\r\n this._onResize = () => this._setIsMobile();\r\n window.addEventListener("resize", this._onResize, { passive: true });\r\n // initial pull\r\n this._pullPackagesSnapshot();\r\n\r\n // Coalesce store updates into one call per frame\r\n this._onStoreChange = () => {\r\n if (this._raf) cancelAnimationFrame(this._raf);\r\n this._raf = requestAnimationFrame(() => {\r\n this._raf = 0;\r\n this._pullPackagesSnapshot();\r\n });\r\n };\r\n this._unsubStore = store/* store */.M.subscribe(this._onStoreChange);\r\n this.equalizeHeaders();\r\n }\r\n\r\n updated(changed) {\r\n if (\r\n !this.isMobile &&\r\n (changed.has("billingMode") ||\r\n changed.has("plans") ||\r\n changed.has("features"))\r\n ) {\r\n this.updateComplete.then(() => this.equalizeHeaders());\r\n }\r\n\r\n if (changed.has("isMobile")) {\r\n this.features = this._computeFeatures();\r\n }\r\n }\r\n\r\n disconnectedCallback() {\r\n if (this._unsubStore) {\r\n this._unsubStore();\r\n this._unsubStore = null;\r\n }\r\n if (this._raf) {\r\n cancelAnimationFrame(this._raf);\r\n this._raf = 0;\r\n }\r\n super.disconnectedCallback();\r\n if (this._onResize) window.removeEventListener("resize", this._onResize);\r\n }\r\n\r\n\r\n\r\n _pullPackagesSnapshot() {\r\n const s = store/* store */.M.getState();\r\n const slice = s?.packages || {};\r\n this._pkgAll = slice.all || {};\r\n this._pkgCustom = slice.custom || [];\r\n\r\n this.isB2bUser = (0,usersPackagesController/* isB2bUser */.ul)();\r\n\r\n // --- choose the right user packages array ---\r\n const uid = s?.userData?.user_id;\r\n const pkgsFromSingular = Array.isArray(slice.user) ? slice.user : null; // some builds use .user\r\n const pkgsFromMap =\r\n slice.users && uid != null && Array.isArray(slice.users[uid])\r\n ? slice.users[uid]\r\n : null; // others use .users[user_id]\r\n this._pkgUser = pkgsFromSingular || pkgsFromMap || [];\r\n this._loaded = !!slice.loaded;\r\n\r\n // helper: sort by pdate/date desc, fallback id desc\r\n const toTs = (x) => {\r\n const s = x?.pdate || x?.date || "";\r\n const iso = s.includes("T") ? s : s.replace(" ", "T");\r\n const t = Date.parse(iso);\r\n return Number.isNaN(t) ? 0 : t;\r\n };
1\r\n const pickLatest = (arr) =>\r\n Array.isArray(arr) && arr.length\r\n ? [...arr].sort(\r\n (a, b) => toTs(b) - toTs(a) || (b.id || 0) - (a.id || 0)\r\n )[0]\r\n : null;\r\n\r\n // 1) try packages array\r\n let lp = pickLatest(this._pkgUser);\r\n\r\n // 2) fallback to userData.latest_package_data until reducer fills users[]\r\n if (!lp && s?.userData?.latest_package_data) {\r\n lp = s.userData.latest_package_data;\r\n }\r\n\r\n this.latestPackage = lp || null;\r\n\r\n // optional legacy alias to avoid confusion elsewhere\r\n this.userPackages = this._pkgUser;\r\n const rawReferrer = s?.userData?.referrer_name ?? ""; // API shape in screenshot\r\n this.isUserReferred = String(rawReferrer).trim().length > 0;\r\n this._maybeBuildPlansFromRedux();\r\n }\r\n\r\n _maybeBuildPlansFromRedux() {\r\n if (!this._loaded) return;\r\n\r\n const priceFromCatalog = (tier, cycle) => {\r\n const pkg =\r\n tier === "BASIC"\r\n ? cycle === "monthly"\r\n ? pkgs.basicMonthly\r\n : pkgs.basicYearly\r\n : tier === "PREMIUM"\r\n ? cycle === "monthly"\r\n ? pkgs.premiumMonthly\r\n : pkgs.premiumYearly\r\n : null;\r\n return _usdFromPkg(pkg); // "$19.99", "$95.99", etc., or ""\r\n };\r\n\r\n const preferCycleForTier = (tier) => {\r\n // only force a cycle when upgrading/downgrading cross-tier\r\n if (!active?.has) return null;\r\n if (tier === active.tier) return null; // same tier â follow UI toggle\r\n return active.cycle || null; // mirror user\'s current cycle\r\n };\r\n\r\n const _parseMoney = (money) => {\r\n const s = String(money || "").trim();\r\n const m = /^\\s*([^0-9\\-+]*)(-?\\d{1,3}(?:,\\d{3})*(?:\\.\\d{1,2})?)/.exec(s);\r\n if (!m) return null;\r\n const curr = m[1] || "";\r\n const num = parseFloat(m[2].replace(/,/g, ""));\r\n return isFinite(num) ? { curr, num } : null;\r\n };\r\n\r\n const _toPerMonth = (money) => {\r\n const p = _parseMoney(money);\r\n if (!p) return "";\r\n // truncate to 2 decimals (no rounding up)\r\n const per = Math.floor((p.num / 12) * 100) / 100;\r\n return `${p.curr}${per.toFixed(2)}`;\r\n };\r\n\r\n // USD string from a package object returned by allpackages\r\n // Your payload has `price: "$3.99"` etc., so this is simple,\r\n // with a couple of safe fallbacks.\r\n const _usdFromPkg = (pkg) => {\r\n if (!pkg) return "";\r\n if (typeof pkg.price === "string" && /\\d/.test(pkg.price))\r\n return pkg.price.trim();\r\n if (typeof pkg.usd_price === "string" && /\\d/.test(pkg.usd_price))\r\n return pkg.usd_price.trim();\r\n if (typeof pkg.price_usd === "string" && /\\d/.test(pkg.price_usd))\r\n return pkg.price_usd.trim();\r\n if (typeof pkg.price === "number") return `$${pkg.price.toFixed(2)}`;\r\n return "";\r\n };\r\n\r\n // ---------- A) lock a good BASE so perks/notes never vanish ----------\r\n if (!this._basePlans) {\r\n const looksComplete =\r\n Array.isArray(this.plans) &&\r\n this.plans.length >= 3 &&\r\n this.plans.every((p) => Array.isArray(p?.perks)) &&\r\n this.plans.some((p) => p?.monthlyNote || p?.yearlyNote);\r\n\r\n if (looksComplete) {\r\n this._basePlans = JSON.parse(JSON.stringify(this.plans));\r\n } else {\r\n const n = Array.isArray(this.features) ? this.features.length : 10;\r\n const perkFree = new Array(n).fill(false);\r\n const perkBasic = Array.from({ length: n }, (_, i) => i >= 2);\r\n const perkPremium = new Array(n).fill(true);\r\n\r\n this._basePlans = [\r\n {\r\n name: "FREE",\r\n monthlyLabel: "",\r\n yearlyLabel: "",\r\n monthlyPrice: "",\r\n yearlyPrice: "",\r\n monthlyNote: "",\r\n yearlyNote: "",\r\n perks: perkFree,\r\n },\r\n {\r\n name: "BASIC",\r\n monthlyLabel: "Monthly",\r\n yearlyLabel: "Yearly",\r\n monthlyPrice: "",\r\n yearlyPrice: "",\r\n monthlyNote:\r\n this.isUserReferred == true\r\n ? "Get 60% Off when billed Yearly"\r\n : "Get 50% Off when billed Yearly",\r\n yearlyNote:\r\n this.isUserReferred == true\r\n ? "Saving : $36"\r\n : "You saved $30 (Billed Yearly)",\r\n perks: perkBasic,\r\n },\r\n {\r\n name: "PREMIUM",\r\n monthlyLabel: "Monthly",\r\n yearlyLabel: "Yearly",\r\n monthlyPrice: "",\r\n yearlyPrice: "",\r\n monthlyNote:\r\n this.isUserReferred == true\r\n ? "60% Off when billed Yearly"\r\n : "Get 50% Off when billed Yearly",\r\n yearlyNote:\r\n this.isUserReferred == true\r\n ? "Saving : $144"\r\n : "You saved $30 (Billed Yearly)",\r\n perks: perkPremium,\r\n },\r\n ];\r\n }\r\n }\r\n\r\n // ---------- B) catalog ids from your custom bundle ----------\r\n const c0 = this._pkgCustom?.[0] || {};\r\n // package_id can come back as "" (no plan at this tier) or, for\r\n // company/B2B bundles, as [] instead of "" â normalize both to "".\r\n const pkgId = (v) => (typeof v === "string" ? v : "");\r\n const ids = {\r\n basicMonthly: pkgId(c0?.price_1?.[0]?.package_id),\r\n basicYearly: pkgId(c0?.price_2?.[0]?.package_id),\r\n premiumMonthly: pkgId(c0?.price_4?.[0]?.package_id),\r\n premiumYearly: pkgId(c0?.price_5?.[0]?.package_id),\r\n };\r\n\r\n const pkgs = {\r\n basicMonthly: ids.basicMonthly ? this._findPkg(ids.basicMonthly) : null,\r\n basicYearly: ids.basicYearly ? this._findPkg(ids.basicYearly) : null,\r\n premiumMonthly: ids.premiumMonthly\r\n ? this._findPkg(ids.premiumMonthly)\r\n : null,\r\n premiumYearly: ids.premiumYearly\r\n ? this._findPkg(ids.premiumYearly)\r\n : null,\r\n };\r\n\r\n // ---------- C) active subscription snapshot ----------\r\n const lp = this.latestPackage;\r\n const has = this._getHasUserPackage();\r\n const aId = lp?.package_id || "";\r\n const txn = (lp?.transaction_type || "").trim();\r\n\r\n const active = {\r\n has,\r\n id: aId,\r\n tier: aId ? (this._isPlus(aId) ? "PREMIUM" : "BASIC") : "",\r\n cycle: aId\r\n ? this._isYearly(aId)\r\n ? "
1yearly"\r\n : this._isMonthly(aId)\r\n ? "monthly"\r\n : ""\r\n : "",\r\n source: this._isAppStore(txn) ? "appstore" : "web",\r\n };\r\n this.active = active;\r\n\r\n // ---------- D) CTA logic ----------\r\n const ctaFor = (planName, mode) => {\r\n if (planName === "FREE")\r\n return active.has\r\n ? { kind: "empty" }\r\n : { kind: "active", text: "ACTIVE PLAN" };\r\n\r\n if (!active.has)\r\n return this.isUserReferred && mode === "yearly"\r\n ? { kind: "action", text: "REDEEM OFFER" }\r\n : { kind: "action", text: "SELECT" };\r\n\r\n if (planName === active.tier && mode === active.cycle)\r\n return { kind: "active", text: "ACTIVE PLAN" };\r\n\r\n if (active.source === "appstore") {\r\n const txt =\r\n this.isUserReferred && mode === "yearly" ? "REDEEM OFFER" : "SELECT";\r\n return { kind: "action", text: txt };\r\n }\r\n\r\n const tierChange =\r\n planName === active.tier\r\n ? "same"\r\n : planName === "PREMIUM"\r\n ? "upgrade"\r\n : "downgrade";\r\n const cycleChange =\r\n mode === active.cycle\r\n ? "same"\r\n : active.cycle === "monthly" && mode === "yearly"\r\n ? "upgrade"\r\n : "downgrade";\r\n\r\n if (tierChange === "upgrade" || cycleChange === "upgrade")\r\n return { kind: "action", text: "UPGRADE" };\r\n if (tierChange === "downgrade" || cycleChange === "downgrade")\r\n return { kind: "action", text: "DOWNGRADE" };\r\n return this.isUserReferred && mode === "yearly"\r\n ? { kind: "action", text: "REDEEM OFFER" }\r\n : { kind: "action", text: "SELECT" };\r\n };\r\n\r\n const baseByName = (name) =>\r\n this._basePlans.find((p) => p?.name === name) || {};\r\n\r\n // ---------- E) Build a plan from BASE; override only active cycle ----------\r\n const buildPlan = (name, mId, yId) => {\r\n const base = baseByName(name);\r\n\r\n // USD prices: from base if present, else from catalog pkg.price\r\n // const prices = {\r\n // monthly:\r\n // base.monthlyPrice ||\r\n // (name === "BASIC"\r\n // ? _usdFromPkg(pkgs.basicMonthly)\r\n // : name === "PREMIUM"\r\n // ? _usdFromPkg(pkgs.premiumMonthly)\r\n // : ""),\r\n // yearly:\r\n // base.yearlyPrice ||\r\n // (name === "BASIC"\r\n // ? _usdFromPkg(pkgs.basicYearly)\r\n // : name === "PREMIUM"\r\n // ? _usdFromPkg(pkgs.premiumYearly)\r\n // : ""),\r\n // };\r\n\r\n const prices = {\r\n monthly: priceFromCatalog(name, "monthly") || base.monthlyPrice || "",\r\n yearly: priceFromCatalog(name, "yearly") || base.yearlyPrice || "",\r\n };\r\n\r\n if (active.has && active.tier === name && active.cycle) {\r\n const activePkgPrice = _usdFromPkg(this._findPkg(active.id));\r\n if (activePkgPrice) prices[active.cycle] = activePkgPrice;\r\n }\r\n\r\n const isActiveYearly =\r\n active.has && active.tier === name && active.cycle === "yearly";\r\n\r\n const pm = prices?.yearly ? _toPerMonth(prices.yearly) : "";\r\n const switchKey = pm ? `${pm}` : "";\r\n const labels = {\r\n monthly: base.monthlyLabel ?? "Monthly",\r\n yearly: base.yearlyLabel ?? "Yearly",\r\n };\r\n\r\n const notes = {\r\n monthly: base.monthlyNote || "",\r\n yearly: base.yearlyNote || "",\r\n };\r\n\r\n // What we show on the BLUE line:\r\n // - Monthly: monthly USD\r\n // - Yearly: per-month view of the yearly USD total\r\n\r\n // const displayPrices = {\r\n // monthly: prices.monthly\r\n // ? isActiveYearly\r\n // ? _toPerMonth(prices.monthly) // only active-yearly â per-month\r\n // : prices.monthly\r\n // : prices.monthly, // always monthly total\r\n // yearly: prices.yearly ? _toPerMonth(prices.yearly) : prices.yearly,\r\n // };\r\n\r\n const displayPrices = {\r\n monthly: prices.monthly,\r\n yearly: prices.yearly ? _toPerMonth(prices.yearly) : "",\r\n };\r\n\r\n // Active tier is pinned to its real cycle; others follow the UI toggle\r\n const isActiveTier = active.has && name === active.tier;\r\n const displayMode =\r\n isActiveTier && active.cycle ? active.cycle : undefined;\r\n\r\n const preferredSelectCycle = preferCycleForTier(name);\r\n return {\r\n ...base,\r\n name,\r\n ids: { monthly: mId, yearly: yId },\r\n\r\n labels,\r\n prices,\r\n notes,\r\n displayPrices,\r\n displayMode,\r\n isActiveMonthly: isActiveTier && active.cycle === "monthly",\r\n isActiveYearly: isActiveTier && active.cycle === "yearly",\r\n ctas: {\r\n monthly: ctaFor(name, "monthly"),\r\n yearly: ctaFor(name, "yearly"),\r\n },\r\n\r\n // legacy mirrors\r\n monthlyLabel: labels.monthly,\r\n yearlyLabel: labels.yearly,\r\n monthlyPrice: prices.monthly,\r\n yearlyPrice: prices.yearly,\r\n monthlyNote: notes.monthly,\r\n yearlyNote: notes.yearly,\r\n\r\n // perks preserved\r\n perks: Array.isArray(base.perks) ? base.perks.slice() : base.perks,\r\n activePkg: this.active,\r\n preferredSelectCycle,\r\n switchKey,\r\n };\r\n };\r\n\r\n const freeBase = baseByName("FREE") || { name: "FREE" };\r\n const freePlan = {\r\n ...freeBase,\r\n name: "FREE",\r\n labels: {\r\n monthly: freeBase.monthlyLabel ?? "",\r\n yearly: freeBase.yearlyLabel ?? "",\r\n },\r\n prices: {\r\n monthly: freeBase.monthlyPrice ?? "",\r\n yearly: freeBase.yearlyPrice ?? "",\r\n },\r\n notes: {\r\n monthly: freeBase.monthlyNote ?? "",\r\n yearly: freeBase.yearlyNote ?? "",\r\n },\r\n displayPrices: { monthly: freeBase.monthlyPrice ?? "", yearly: "" },\r\n displayMode: undefined,\r\n ctas: {\r\n monthly: ctaFor("FREE", "monthly"),\r\n yearly: ctaFor("FREE", "yearly"),\r\n },\r\n monthlyLabel: freeBase.monthlyLabel ?? "",\r\n yearlyLabel: freeBase.yearlyLabel ?? "",\r\n monthlyPrice: freeBase.monthlyPrice ?? "",\r\n yearlyPrice: freeBase.yearlyPrice ?? "",\r\n monthlyNote: freeBase.monthlyNote ?? "",\r\n yearlyNote: freeBase.yearlyNote ?? "",\r\n perks: Array.isArray(freeBase.perks)\r\n ? freeBase.perks.slice()\r\n : freeBase.perks,\r\n };\r\n\r\n const basic = buildPlan("BASIC", ids.basicMonthly, ids.basicYearly);\r\n const premium = buildPlan("PREMIUM", ids.premiumMonthly, ids.premiumYearly);\r\n\r\n this._applyTextPerks(freePlan);\r\n this._applyTextPerks(basic);\r\n this._applyTextPerks(premium);
1\r\n\r\n const resolvedIds = Object.values(ids).filter(Boolean);\r\n const hasBasicId = resolvedIds.some((id) => !this._isPlus(id));\r\n const hasPremiumId = resolvedIds.some((id) => this._isPlus(id));\r\n\r\n const tierPlans = [hasBasicId ? basic : null, hasPremiumId ? premium : null].filter(\r\n Boolean\r\n );\r\n\r\n this.plans = this.isUserReferred\r\n ? tierPlans\r\n : [freePlan, ...tierPlans];\r\n\r\n // Lock toggle for app-store subs\r\n this.billingModeLocked = active.source === "appstore";\r\n\r\n this.requestUpdate();\r\n }\r\n\r\n // Normalize any perk into a consistent shape\r\n _coercePerkValue(v) {\r\n if (v === true || v === false) return { kind: "icon", on: v };\r\n if (typeof v === "string")\r\n return { kind: "text", text: v, badge: false, bold: false };\r\n if (v && typeof v === "object" && "text" in v) {\r\n return {\r\n kind: "text",\r\n text: String(v.text),\r\n badge: !!v.badge,\r\n bold: !!v.bold,\r\n };\r\n }\r\n return { kind: "icon", on: !!v };\r\n }\r\n\r\n _renderPerkCell(v) {\r\n const p = this._coercePerkValue(v);\r\n\r\n if (p.kind === "text") {\r\n // p.text should be a known localization key if youâre keying,\r\n // or the precomputed localized string if not using keys.\r\n return (0,lit/* html */.qy)`\r\n <span\r\n class="perk-text ${p.badge ? "badge" : ""} ${p.bold ? "bold" : ""}"\r\n >\r\n <local-elem\r\n localKey="${p.text}"\r\n localLang="${this.currentLang}"\r\n ></local-elem>\r\n </span>\r\n `;\r\n }\r\n\r\n return (0,lit/* html */.qy)`\r\n <span class="perk-check">\r\n <label class="container-checkbox readonly">\r\n <input type="checkbox" ?checked=${p.on} disabled />\r\n <span class="checkmark"></span>\r\n </label>\r\n </span>\r\n `;\r\n }\r\n\r\n _parseUSD(s) {\r\n const n = Number(String(s || "").replace(/[^\\d.]/g, ""));\r\n return Number.isFinite(n) ? n : 0;\r\n }\r\n\r\n _tHtml(key, fb) {\r\n const lang =\r\n typeof this.currentLang === "string"\r\n ? this.currentLang\r\n : this.currentLang?.[0] || "en";\r\n return (0,lit/* html */.qy)`<local-elem\r\n localKey="${key}"\r\n fallback="${fb}"\r\n localLang="${lang}"\r\n ></local-elem>`;\r\n }\r\n\r\n _floorToFixed(n, places = 2) {\r\n const p = Math.pow(10, places);\r\n const floored = Math.floor(n * p) / p;\r\n return floored.toFixed(places);\r\n }\r\n\r\n _toMonthlyLabel(priceUSDStr) {\r\n const v = this._parseUSD(priceUSDStr);\r\n if (!v) return "Unavailable";\r\n return `$${v.toFixed(2)}/Monthly`;\r\n }\r\n\r\n _yearlyToPerMonthLabel(yearlyPriceUSDStr) {\r\n const total = this._parseUSD(yearlyPriceUSDStr);\r\n if (!total) return "Unavailable";\r\n const perMonth = total / 12;\r\n return `$${this._floorToFixed(perMonth, 2)}/Monthly`;\r\n }\r\n\r\n _localSuffix(pkg) {\r\n const code = pkg?.local_currency_code;\r\n if (!code || code.toUpperCase() === "USD") return "";\r\n\r\n const raw =\r\n pkg.local_monthly_price ??\r\n pkg.local_price_monthly ??\r\n pkg.local_price ??\r\n "";\r\n\r\n\r\n if (!raw) return "";\r\n\r\n // extract numeric part and round to an integer\r\n // e.g. "219.11 INR" -> "219 INR"\r\n const m = String(raw).match(/(-?\\d[\\d,\\.]*)/);\r\n let shown = String(raw);\r\n if (m) {\r\n const n = parseFloat(m[1].replace(/,/g, ""));\r\n if (isFinite(n)) {\r\n const rounded = Math.round(n); // 125.6 => 126\r\n const formattedInt = rounded.toLocaleString();\r\n shown = shown.replace(m[1], formattedInt);\r\n }\r\n }\r\n\r\n return (0,lit/* html */.qy)`( ${this._tHtml("Approx", "Approx.")} ${shown} ${code} +\r\n ${this._tHtml("taxes", "taxes")} )`;\r\n }\r\n\r\n _findPkg(id) {\r\n return id ? this._pkgAll?.[id] || null : null;\r\n }\r\n\r\n _stripPrefix(id = "") {\r\n return id.replace(/^com\\.(babysparks\\.babysparks|bs\\.bs)\\./, "");\r\n }
1\r\n\r\n _formatPriceLabel(label) {\r\n if (!label || typeof label !== "string") return label;\r\n const trimmed = label.trim();\r\n\r\n if (/^always\\s+free$/i.test(trimmed))\r\n return this._tHtml("Always Free", "Always Free");\r\n if (/^unavailable$/i.test(trimmed))\r\n return this._tHtml("Unavailable", "Unavailable");\r\n\r\n // "$3.99/Monthly" or "â¹119/Yearly"\r\n const m =\r\n /^\\s*([^0-9\\-+]*)(-?\\d{1,3}(?:,\\d{3})*)(?:\\.(\\d{1,2}))?\\/([A-Za-z]+)\\s*$/.exec(\r\n trimmed\r\n );\r\n if (!m) return label;\r\n\r\n const [, curr, major, cents, period] = m;\r\n return (0,lit/* html */.qy)`${curr}${major}${cents\r\n ? (0,lit/* html */.qy)`<sup>${cents}</sup>`\r\n : ""}/${this._tHtml(period, period)}`;\r\n }\r\n\r\n // map plan + billing mode -> the legacy key prefix\r\n _getKeyFor(planName, billingMode) {\r\n if (planName === "FREE") return ""; // free had no value in legacy\r\n if (planName === "BASIC")\r\n return billingMode === "yearly" ? "basic-yearly" : "basic-monthly";\r\n if (planName === "PREMIUM")\r\n return billingMode === "yearly" ? "premium-yearly" : "premium-monthly";\r\n return "";\r\n }\r\n\r\n // pick the plan id for current billing mode ("ids" were set in Step 2)\r\n _getIdFor(plan, billingMode) {\r\n if (!plan?.ids) return "";\r\n return billingMode === "yearly"\r\n ? plan.ids.yearly || ""\r\n : plan.ids.monthly || "";\r\n }\r\n\r\n // legacy value: `${key}.${id}` (e.g., "basic-yearly.com.bs.bs.tier1_12_month")\r\n // _buildLegacyValue(plan, billingMode) {\r\n // const
1key = this._getKeyFor(plan?.name, billingMode);\r\n // const id = this._getIdFor(plan, billingMode);\r\n // const short = this._stripPrefix(id); // <-- note the leading underscore & this.\r\n // return key && short ? `${key}.${short}` : "";\r\n // }\r\n\r\n _buildLegacyValue(plan, billingMode) {\r\n // Prefer explicit ids; never cross-cycle fallback here\r\n const key = this._getKeyFor(plan?.name, billingMode);\r\n let id = "";\r\n if (billingMode === "yearly") id = plan?.ids?.yearly || "";\r\n else id = plan?.ids?.monthly || "";\r\n\r\n return key && id ? `${key}.${this._stripPrefix(id)}` : "";\r\n }\r\n\r\n // include meta from latest transaction (only for web-* per legacy)\r\n _getLatestTxnMeta() {\r\n const t = this.latestPackage?.transaction_type || "";\r\n const isWeb = /web-/.test(t);\r\n return {\r\n type: isWeb ? t : "",\r\n id: isWeb ? this.latestPackage?.transaction_id || "" : "",\r\n };\r\n }\r\n\r\n // central click handler that calls your existing global function\r\n _onSelectPlan(plan) {\r\n const value = this._buildLegacyValue(plan, this.billingMode);\r\n const { type, id } = this._getLatestTxnMeta();\r\n\r\n // Build a temporary element that looks like the old button\r\n const btn = document.createElement("button");\r\n if (value) btn.value = value; // jQuery .val() reads this\r\n if (id) btn.dataset.id = id; // $(el).data("id")\r\n if (type) btn.dataset.type = type; // $(el).data("type")\r\n\r\n if (typeof window.renderSelectedSubscription === "function") {\r\n window.renderSelectedSubscription(btn, {\r\n userId: this.user_id,\r\n isUserReferred: !!(\r\n this.userData?.isUserReferred ?? this.userData?.is_user_referred\r\n ),\r\n });\r\n } else {\r\n console.warn("renderSelectedSubscription() is not defined on window");\r\n }\r\n }\r\n\r\n _emitLegacyClick = (e) => {\r\n const el = e.currentTarget; // this <button> with value/data-*\r\n if (typeof window.renderSelectedSubscription === "function") {\r\n window.renderSelectedSubscription(el);\r\n } else {\r\n console.error("renderSelectedSubscription is not on window");\r\n }\r\n };\r\n\r\n // Old-behavior: any record means "has a package"\r\n _getHasUserPackage() {\r\n if (Array.isArray(this._pkgUser) && this._pkgUser.length > 0) return true;\r\n // legacy fallback: if reducer not ready, just seeing a latest package id counts\r\n return !!(this.latestPackage && this.latestPackage.package_id);\r\n }\r\n\r\n _isAppStoreLock() {\r\n const t = this.latestPackage?.transaction_type || "";\r\n return /android-playstore|ios-appstore/i.test(t.trim());\r\n }\r\n\r\n _shouldShowBillingToggle() {\r\n const hasPkg = this._getHasUserPackage();\r\n return !hasPkg || !this.latestPackage || this._isAppStoreLock();\r\n }\r\n\r\n _isPlus(id) {\r\n return /plus|premium|price_4|price_5/i.test(String(id));\r\n }\r\n _isYearly(id) {\r\n const s = String(id || "");\r\n return (\r\n /(year|yearly|annual|price_2|price_5)/i.test(s) ||\r\n /(?:^|[_.-])12_month(?:[_.-]|$)/i.test(s)\r\n );\r\n }\r\n\r\n _isMonthly(id) {\r\n const s = String(id || "");\r\n if (this._isYearly(s)) return false; // guard\r\n // cover price_1/price_4, âmonthlyâ, and explicit 1_month forms\r\n return /(price_1|price_4|monthly|(?:^|[_.-])1_month(?:[_.-]|$))/i.test(s);\r\n }\r\n\r\n _isAppStore(tx) {\r\n return /apple|itunes|google|play|appstore/i.test(String(tx));\r\n }\r\n _isWeb(tx) {\r\n return !this._isAppStore(tx);\r\n }\r\n\r\n _getTilePkgId(plan, mode) {\r\n const act = plan?.activePkg; // <- this is your snapshot {has,id,tier,cycle,...}\r\n\r\n // use the active id only if it belongs to THIS tier and matches MODE\r\n if (act?.has && act?.tier === plan.name) {\r\n const aId = act.id || "";\r\n if (\r\n (mode === "yearly" && this._isYearly(aId)) ||\r\n (mode === "monthly" && this._isMonthly(aId))\r\n ) {\r\n return aId;\r\n }\r\n }\r\n\r\n // otherwise use the catalog id for the current mode\r\n return mode === "yearly"\r\n ? plan?.ids?.yearly || ""\r\n : plan?.ids?.monthly || "";\r\n }\r\n\r\n // turn stripped id => full catalog key (prefix varies)\r\n _expandToFullCatalogId(id) {\r\n if (!id) return "";\r\n if (this._pkgAll?.[id]) return id;
1\r\n const keys = Object.keys(this._pkgAll || {});\r\n return keys.find((k) => k.endsWith(id)) || id;\r\n }\r\n _hasNonZeroPriceById(id) {\r\n const full = this._expandToFullCatalogId(id);\r\n const raw = this._pkgAll?.[full]?.price || "";\r\n const n = parseFloat(String(raw).replace("$", ""));\r\n return Number.isFinite(n) && n > 0;\r\n }\r\n // which id belongs to this plan in current billing mode\r\n _planId(plan, mode) {\r\n const v = this._buildLegacyValue(plan, mode) || ""; // e.g. "basic-yearly.12_month_29_99"\r\n return v.split(".")[1] || "";\r\n }\r\n\r\n _computeCta(plan, mode) {\r\n const lp = this.latestPackage;\r\n const hasPkg = this._getHasUserPackage(); // simple: any package?\r\n const txn = (lp?.transaction_type || "").trim();\r\n const isWeb = /^web-/i.test(txn);\r\n const isFree = plan.name === "FREE";\r\n\r\n // FREE: no package => Active Plan, otherwise no button\r\n if (isFree) {\r\n return !hasPkg\r\n ? { kind: "active", text: "ACTIVE PLAN" }\r\n : { kind: "empty" };\r\n }\r\n\r\n // Helper: is this plan active for the current mode?\r\n const isActive =\r\n mode === "yearly" ? !!plan.activeYearly : !!plan.activeMonthly;\r\n\r\n // BASIC rules\r\n if (plan.name === "BASIC") {\r\n if (isActive) return { kind: "active", text: "ACTIVE PLAN" };\r\n\r\n if (isWeb) {\r\n if (mode === "yearly") {\r\n return { kind: "action", text: "UPGRADE" };\r\n }\r\n return {\r\n kind: "action",\r\n text: this.isUserReferred ? "REDEEM OFFER" : "SELECT",\r\n };\r\n }\r\n return { kind: "action", text: "SELECT" };\r\n }\r\n\r\n // GENERIC YEARLY rules (for any plan rendered in yearly mode)\r\n if (mode === "yearly") {\r\n if (!!plan.activeYearly) return { kind: "active", text: "ACTIVE PLAN" };\r\n\r\n // if web and BASIC yearly tile should offer downgrade\r\n if (isWeb && plan.name === "BASIC") {\r\n return { kind: "action", text: "DOWNGRADE" };\r\n }\r\n return {\r\n kind: "action",\r\n text: this.isUserReferred ? "REDEEM OFFER" : "SELECT",\r\n };\r\n }\r\n\r\n // Fallback for anything else (e.g., monthly tiles of non-BASIC plans)\r\n if (isActive) return { kind: "active", text: "ACTIVE PLAN" };\r\n return {\r\n kind: "action",\r\n text:\r\n this.isUserReferred && mode === "yearly" ? "REDEEM OFFER" : "SELECT",\r\n };\r\n }\r\n\r\n // Put inside the same component/class\r\n _pagerStepFromPath() {\r\n const p = (window.location.pathname || "").toLowerCase();\r\n if (/\\/mybabysparks\\/subscription-success(?:\\/|$)/.test(p)) return 3;\r\n if (/\\/mybabysparks\\/change-subscription(?:\\/|$)/.test(p)) return 2;\r\n return null; // no override\r\n }\r\n\r\n // The banner text at the top of the table (desktop + mobile)\r\n _renderGuideMessage() {\r\n const hasPkg = this._getHasUserPackage();\r\n const lang =\r\n typeof this.currentLang === "string"\r\n ? this.currentLang\r\n : this.currentLang?.[0] || "en";\r\n\r\n return (0,lit/* html */.qy)`\r\n ${!hasPkg\r\n ? (0,lit/* html */.qy)`\r\n ${this.isUserReferred\r\n ? (0,lit/* html */.qy)`\r\n <div class="referralGuideDesc">\r\n <p class="chooseLabel">\r\n <strong>\r\n <local-elem\r\n localKey="subs.referral.prefix"\r\n fallback="Choose a Yearly Subscription and get a"\r\n localLang="${lang}"\r\n ></local-elem>\r\n <span class="discountLabel">\r\n <span>60%</span>\r\n <local-elem\r\n localKey="subs.referral.discountWord"\r\n fallback="discount"\r\n localLang="${lang}"\r\n >\r\n </local-elem>\r\n </span>\r\n </strong>\r\n </p>\r\n <p class="refLabel">\r\n <local-elem\r\n localKey="subs.referral.line1"\r\n fallback="Unlock personalized parenting tools, expert guidance, and more"\r\n localLang="${lang}"\r\n >\r\n </local-elem>\r\n </p>\r\n <p class="refLabel">\r\n <local-elem\r\n localKey="subs.referral.line2"\r\n fallback="Your exclusive discount is applied at checkout!"\r\n localLang="${lang}"\r\n >\r\n </local-elem>\r\n </p>\r\n </div>\r\n `\r\n : (0,lit/* html */.qy)`\r\n <div class="regularGuideDesc">\r\n <h2>\r\n <local-elem\r\n localKey="subs.guide.title"\r\n fallback="It looks like you haven\'t tried one of our premium subscriptions yet."\r\n localLang="${lang}"\r\n >\r\n </local-elem>\r\n </h2>\r\n <p>\r\n <local-elem\r\n localKey="subs.guide.body"\r\n fallback="Please select from one of the plans below to unlock our ENTIRE catalog of thousands of development activitiesâcreated by experts to help you support your little ones development while spending quality time together."\r\n localLang="${lang}"\r\n >\r\n </local-elem>\r\n </p>\r\n </div>\r\n `}\r\n `\r\n : (0,lit/* html */.qy)`\r\n <div class="regularGuideDesc">\r\n <h2 class="fs-title">\r\n <local-elem\r\n localKey="subs.guide.hasPkg.title"\r\n fallback="Select Your Activity Package"\r\n localLang="${lang}"\r\n >\r\n </local-elem>\r\n </h2>\r\n <p>\r\n <local-elem\r\n localKey="subs.guide.hasPkg.body"\r\n fallback="Unlock unlimited access to our full catalog of thousands of expert-created activities"\r\n localLang="${lang}"\r\n >\r\n </local-elem>\r\n </p>\r\n </div>\r\n `}\r\n `;\r\n }\r\n\r\n _renderTopSection() {\r\n const override = this._pagerStepFromPath();\r\n const stepBase = override ?? this.currentStep ?? 1;\r\n const maxStep = Array.isArray(this.progressSteps)\r\n ? this.progressSteps.length\r\n : 3;\r\n const step = Math.min(Math.max(stepBase, 1), maxStep);\r\n return (0,lit/* html */.qy)`\r\n <div class="pagerProgressSection">\r\n <h4 class="myclassHeading">\r\n <local-elem\r\n localKey="subs.childProgram.title"\r\n fallback="My Child\'s Program Subscriptions"\r\n localLang="${this.currentLang}"\r\n >\r\n </local-elem>\r\n </h4>\r\n <pager-progress-bar .currentStep=${step} .steps=${this.progressSteps}>\r\n </pager-progress-bar>\r\n </div>\r\n ${this._renderGuideMessage()}\r\n `;\r\n }\r\n\r\n render() {\r\n return (0,lit/* html */.qy)`\r\n ${this._renderTopSection()}\r\n ${this.isMobile ? this._renderMobile() : this._renderDesktop()}\r\n `;\r\n }\r\n\r\n _renderDesktop() {\r\n const yearlyOfferText = this.isUserReferred ? "60%" : "50%";\r\n\r\n return (0,lit/* html */.qy)`\r\n <div class="table-subscription">\r\n <div\r\n class="plans-wrapper ${this.isUserReferred\r\n ? "two-plans"\r\n : "three-plans"}"\r\n >\r\n \x3c!-- Feature column --\x3e\r\n <div class="feature-list">\r\n <ul>\r\n ${this._shouldShowBillingToggle()\r\n ? (0,lit/* html */.qy)`\r\n <li class="billing-toggle">\r\n <label>\r\n <local-elem\r\n localKey="Select your billing preference"\r\n localLang="${this.currentLang}"\r\n ></local-elem>\r\n </label>\r\n <div class="toggle-buttons">\r\n <button\r\n class=${this.billingMode === "yearly" ? "active" : ""}\r\n ?disabled=${this.billingModeLocked}\r\n @click=${() =>\r\n !this.billingModeLocked &&\r\n (this.billingMode = "yearly")}\r\n >\r\n <local-elem\r\n localKey="Yearly"\r\n localLang="${this.currentLang}"\r\n ></local-elem>\r\n </button>\r\n <button\r\n class=${this.billingMode === "monthly"\r\n ? "active"\r\n : ""}\r\n ?disabled=${this.billingModeLocked}\r\n @click=${() =>\r\n !this.billingModeLocked &&\r\n (this.billingMode = "monthly")}\r\n >\r\n <local-elem\r\n localKey="Monthly"\r\n localLang="${this.currentLang}"\r\n ></local-elem>\r\n </button>\r\n </div>\r\n ${this.billingMode === "yearly"\r\n ? (0,lit/* html */.qy)`<div class="offer">
1\r\n <span>â</span>${yearlyOfferText}\r\n <local-elem\r\n localKey="OFF"\r\n localLang="${this.currentLang}"\r\n ></local-elem>\r\n </div>`\r\n : ""}\r\n </li>\r\n `\r\n : (0,lit/* html */.qy)`\r\n <li class="billing-toggle empty">\r\n <label></label>\r\n <div class="toggle-buttons"></div>\r\n </li>\r\n `}\r\n ${this.features.map(\r\n (f, i) => (0,lit/* html */.qy)`\r\n <li>\r\n <span class="feature-text ${\r\n this._isFeatureBold(i) ? "bold" : ""\r\n }"">\r\n <local-elem\r\n localKey="${f}"\r\n localLang="${this.currentLang}"\r\n ></local-elem>\r\n <span class="tooltip">\r\n <span class="tooltip-icon">i</span>\r\n <span class="tooltip-text">\r\n <local-elem\r\n localKey="${this.tooltips[i]}"\r\n localLang="${this.currentLang}"\r\n ></local-elem>\r\n </span>\r\n </span>\r\n </span>\r\n </li>\r\n `\r\n )}\r\n </ul>\r\n </div>\r\n\r\n <div class="plans-row">\r\n \x3c!-- Plans --\x3e\r\n ${this.plans.map((plan) => {\r\n // Mode: active tier pinned; others follow the toggle\r\n const mode =\r\n plan.preferredSelectCycle ||\r\n plan.displayMode ||\r\n this.billingMode;\r\n const priceForBlue = (\r\n plan.displayPrices?.[mode] ||\r\n plan.prices?.[mode] ||\r\n ""\r\n ).trim();\r\n \r\n const labelForFormatter = this.isB2bUser\r\n ? ""\r\n : priceForBlue\r\n ? `${priceForBlue}/Monthly`\r\n : "Always Free";\r\n\r\n const pkgId = this._getTilePkgId(plan, mode);\r\n const pkg = pkgId ? this._findPkg(pkgId) : null;\r\n const approx = this._localSuffix(pkg);\r\n\r\n // CTA + click payload (must match tile mode)\r\n const cta = plan.ctas?.[mode] || {\r\n kind: "action",\r\n text: "SELECT",\r\n };\r\n const payloadMode = plan.preferredSelectCycle || mode;\r\n const legacyValue = this._buildLegacyValue(plan, payloadMode);\r\n const { type: txnType, id: txnId } = this._getLatestTxnMeta();\r\n const isDisabled = cta.kind === "active" || !pkgId;\r\n const isHighlight = plan.name === "PREMIUM" && mode === "yearly";\r\n const btnClass = [\r\n "button-plans",\r\n isDisabled ? "button-disabled" : "",\r\n ]\r\n .filter(Boolean)\r\n .join(" ");\r\n\r\n const buttonTpl =\r\n cta.kind === "empty"\r\n ? (0,lit/* html */.qy)`<div class="empty"></div>`\r\n : (0,lit/* html */.qy)`\r\n <button\r\n class="${btnClass}"\r\n ?disabled=${isDisabled}\r\n value=${legacyValue}\r\n data-type=${txnType || ""}\r\n data-id=${txnId || ""}\r\n @click=${this._emitLegacyClick}\r\n >\r\n <local-elem\r\n localKey="${cta.text}"\r\n fallback="${cta.text}"\r\n localLang="${this.currentLang}"\r\n ></local-elem>\r\n </button>\r\n `;\r\n\r\n const perkRows = this.features.map(\r\n (_, i) =>\r\n (0,lit/* html */.qy)` <li>${this._renderPerkCell(plan.perks?.[i])}</li> `\r\n );\r\n const paddingRows = Array(\r\n Math.max(0, this.features.length - perkRows.length)\r\n )\r\n .fill(0)\r\n .map(() => (0,lit/* html */.qy)`<li></li>`);\r\n\r\n return (0,lit/* html */.qy)`\r\n <div class="plan ${isHighlight ? "highlight" : ""}">\r\n <div class="plan-header">\r\n <div class="plan-name">\r\n <local-elem\r\n localKey="${plan.name}"\r\n localLang="${this.currentLang}"\r\n ></local-elem>\r\n </div>\r\n\r\n ${!this.isB2bUser\r\n ? (0,lit/* html */.qy)`\r\n <div class="plan-label">
1\r\n ${this._formatPriceLabel(labelForFormatter)}\r\n </div>\r\n <div class="plan-price">${approx}</div>\r\n <div class="plan-note">\r\n ${this.isUserReferred\r\n ? mode === "yearly"\r\n ? (0,lit/* html */.qy)`\r\n <div class="plan-sub-note">\r\n <local-elem\r\n localKey="60% off when billed yearly"\r\n localLang="${this.currentLang}"\r\n >\r\n </local-elem>\r\n </div>\r\n <div class="ref-label">\r\n <strong>\r\n <local-elem\r\n localKey="${plan.name === "BASIC"\r\n ? "Saving : $36"\r\n : "Saving : $144"}"\r\n localLang="${this.currentLang}"\r\n >\r\n </local-elem\r\n ><sup>*</sup>\r\n </strong>\r\n </div>\r\n `\r\n : (0,lit/* html */.qy)`\r\n <div class="plan-sub-note">\r\n <local-elem\r\n localKey="Switch to yearly for"\r\n localLang="${this.currentLang}"\r\n >\r\n </local-elem>\r\n <local-elem\r\n localKey="${plan?.switchKey || ""}"\r\n localLang="${this.currentLang}"\r\n >\r\n </local-elem\r\n >/\r\n <local-elem\r\n localKey="monthly"\r\n localLang="${this.currentLang}"\r\n >\r\n </local-elem\r\n ><sup>*</sup>\r\n </div>\r\n <div class="ref-label">\r\n <local-elem\r\n localKey="${plan.notes?.[mode] ?? ""}"\r\n localLang="${this.currentLang}"\r\n >\r\n </local-elem\r\n ><sup>*</sup>\r\n </div>\r\n `\r\n : (0,lit/* html */.qy)`\r\n <local-elem\r\n localKey="${plan.notes?.[mode] ?? ""}"\r\n localLang="${this.currentLang}"\r\n >\r\n </local-elem>\r\n `}\r\n </div>` \r\n : lit/* nothing */.s6 }\r\n\r\n <div class="plan-button">${buttonTpl}</div>\r\n </div>\r\n\r\n <ul class="plan-features">\r\n ${perkRows}${paddingRows}\r\n </ul>\r\n </div>\r\n `;\r\n })}\r\n </div>\r\n </div>\r\n\r\n ${!this.isUserReferred\r\n ? (0,lit/* html */.qy)`\r\n <div class="note">\r\n <strong>\r\n <local-elem\r\n localKey="Our proprietary technology learns your childâs specific needs, delivering just the right activities at just the right time"\r\n localLang="${this.currentLang}"\r\n ></local-elem>\r\n </strong>\r\n </div>\r\n `\r\n : lit/* nothing */.s6}\r\n </div>\r\n `;\r\n }\r\n\r\n _renderMobile() {\r\n const yearlyOfferText = this.isUserReferred ? "60%" : "50%";\r\n const p = this.plans[this.activePlanIdx] || {};\r\n if (!p || !p.name) return (0,lit/* html */.qy)``; // guard\r\n\r\n // --- MATCH DESKTOP SELECTION LOGIC ---\r\n const mode = p.preferredSelectCycle || p.displayMode || this.billingMode;\r\n\r\n // Blue label uses per-month figure (displayPrices when yearly)\r\n const priceForBlue = (\r\n p.displayPrices?.[mode] ||\r\n p.prices?.[mode] ||\r\n ""\r\n ).trim();\r\n\r\n const labelForFormatter = priceForBlue\r\n ? `${priceForBlue}/Monthly`\r\n : "Always Free";\r\n\r\n // const labelForFormatter = this.isB2bUser\r\n // ? ""\r\n // : priceForBlue\r\n // ? `${priceForBlue}/Monthly`\r\n // : "Always Free";\r\n\r\n // Use the same pkg resolver as desktop\r\n const pkgId = this._getTilePkgId(p, mode);\r\n const pkg = pkgId ? this._findPkg(pkgId) : null;\r\n const approx = this._localSuffix(pkg);\r\n\r\n // CTA + legacy payload (must match the tile mode)\r\n const cta = p.ctas?.[mode] || { kind: "action", text: "SELECT" };\r\n const payloadMode = p.preferredSelectCycle || mode;\r\n const legacyValue = this._buildLegacyValue(p, payloadMode);\r\n const { type: txnType, id: txnId } = this._getLatestTxnMeta();\r\n const isDisabled = cta.kind === "active" || !pkgId;\r\n\r\n const mobileBtnClass = [\r\n "hero-cta",\r\n isDisabled ? "button-disabled" : "",\r\n ].join(" ");\r\n\r\n // Button content: include per-month price inside the green button when actionable & not FREE\r\n const baseText =\r\n cta.text === "ACTIVE PLAN" && p.name === "FREE"\r\n ? "Active Plan"\r\n : cta.text;\r\n const buttonContent =\r\n cta.kind === "action" && p.name !== "FREE" && priceForBlue\r\n ? (0,lit/* html */.qy)`\r\n <sp
1an class="cta-text">\r\n <local-elem\r\n localKey="${baseText}"\r\n fallback="${baseText}"\r\n localLang="${this.currentLang}"\r\n ></local-elem>\r\n </span>\r\n <span class="cta-sep">â</span>\r\n <span class="price-in-cta">${this._formatPriceLabel(labelForFormatter)}</span\r\n >\r\n `\r\n : (0,lit/* html */.qy)`\r\n <span class="cta-text">\r\n <local-elem\r\n localKey="${baseText}"\r\n fallback="${baseText}"\r\n localLang="${this.currentLang}"\r\n ></local-elem>\r\n </span>\r\n `;\r\n\r\n // Build referral notes (to mirror desktop) without changing existing flows\r\n const savingsKey = p.name === "BASIC" ? "Saving : $36" : "Saving : $144";\r\n const referralNotes = this.isUserReferred\r\n ? mode === "yearly"\r\n ? (0,lit/* html */.qy)`\r\n <div class="plan-sub-note">\r\n <local-elem\r\n localKey="60% off when billed yearly"\r\n fallback="60% off when billed yearly"\r\n localLang="${this.currentLang}"\r\n >\r\n </local-elem>\r\n </div>\r\n <div class="ref-label">\r\n <strong>\r\n <local-elem\r\n localKey="${savingsKey}"\r\n fallback="${p.name === "BASIC"\r\n ? "Saving : $36"\r\n : "Saving : $144"}"\r\n localLang="${this.currentLang}"\r\n >\r\n </local-elem> </strong\r\n ><sup>*</sup>\r\n </div>\r\n `\r\n : (0,lit/* html */.qy)`\r\n <div class="plan-sub-note">\r\n <local-elem\r\n localKey="Switch to yearly for"\r\n fallback="Switch to yearly for"\r\n localLang="${this.currentLang}"\r\n ></local-elem>\r\n <local-elem\r\n localKey="${p?.switchKey || ""}"\r\n fallback="${p?.switchKey || ""}"\r\n localLang="${this.currentLang}"\r\n ></local-elem\r\n >/\r\n <local-elem\r\n localKey="monthly"\r\n fallback="monthly"\r\n localLang="${this.currentLang}"\r\n ></local-elem\r\n ><sup>*</sup>\r\n </div>\r\n ${p.notes?.[mode]\r\n ? (0,lit/* html */.qy)`\r\n <div class="ref-label">\r\n <local-elem\r\n localKey="${p.notes?.[mode]}"\r\n fallback="${p.notes?.[mode]}"\r\n localLang="${this.currentLang}"\r\n >\r\n </local-elem\r\n ><sup>*</sup>\r\n </div>\r\n `\r\n : lit/* nothing */.s6}\r\n `\r\n : p.notes?.[mode]\r\n ? (0,lit/* html */.qy)`\r\n ${!this.isB2bUser\r\n ? (0,lit/* html */.qy)`\r\n <div class="plan-sub-note">\r\n <local-elem\r\n localKey="${p.notes?.[mode]}"\r\n fallback="${p.notes?.[mode]}"\r\n localLang="${this.currentLang}"\r\n >\r\n </local-elem>\r\n </div>`: lit/* nothing */.s6 }\r\n `\r\n : lit/* nothing */.s6;\r\n\r\n \r\n const buttonTpl =\r\n cta.kind === "empty"\r\n ? null\r\n : (0,lit/* html */.qy)`<button\r\n class="${mobileBtnClass}"\r\n ?disabled=${isDisabled}\r\n value=${legacyValue}\r\n data-type=${txnType || ""}\r\n data-id=${txnId || ""}\r\n @click=${this._emitLegacyClick}\r\n >\r\n ${buttonContent}\r\n </button>`;\r\n\r\n return (0,lit/* html */.qy)`\r\n <div class="mobile-subscription">\r\n <div class="mobile-tabs">\r\n ${this.plans.map(\r\n (plan, i) => (0,lit/* html */.qy)`\r\n <button\r\n class="tab ${i === this.activePlanIdx ? "active" : ""}"\r\n @click=${() => (this.activePlanIdx = i)}\r\n >\r\n <local-elem\r\n localKey="${plan.name}"\r\n localLang="${this.currentLang}"\r\n ></local-elem>\r\n </button>\r\n `\r\n )}\r\n </div>\r\n\r\n <div class="mobile-billing">\r\n ${this._shouldShowBillingToggle()\r\n ? (0,lit/* html */.qy)`\r\n <div class="label">\r\n <local-elem\r\n localKey="Select your billing preference"\r\n localLang="${this.currentLang}"\r\n ></local-elem>\r\n </div>\r\n <div class="toggle-buttons">\r\n <button\r\n class=${this.billingMode === "yearly" ? "active" : ""}\r\n ?disabled=${this.billingModeLocked}\r\n @click=${() =>\r\n !this.billingModeLocked && (this.billingMode = "yearly")}\r\n >\r\n <local-elem\r\n localKey="Yearly"\r\n localLang="${this.currentLang}"\r\n ></local-elem>\r\n </button>\r\n <button\r\n class=${this.billingMode === "monthly" ? "active" : ""}\r\n ?disabled=${this.billingModeLocked}\r\n @click=${() =>\r\n !this.billingModeLocked && (this.billingMode = "monthly")}\r\n >\r\n <local-elem\r\n localKey="Monthly"\r\n localLang="${this.currentLang}"\r\n ></local-elem>\r\n </button>\r\n </div>\r\n ${this.billingMode === "yearly"\r\n ? (0,lit/* html */.qy)`<div class="offer">
1\r\n <span>â</span>${yearlyOfferText}\r\n <local-elem\r\n localKey="OFF"\r\n localLang="${this.currentLang}"\r\n ></local-elem>\r\n </div>`\r\n : ""}\r\n `\r\n : null}\r\n </div>\r\n\r\n <div class="mobile-hero">\r\n ${p.name === "FREE"\r\n ? (0,lit/* html */.qy)`<div class="hero-tagline">\r\n <local-elem\r\n localKey="Our ideal free plan to test our classes and activities"\r\n fallback="Our ideal free plan to test our classes and activities"\r\n localLang="${this.currentLang}"\r\n ></local-elem>\r\n </div>`\r\n : (0,lit/* html */.qy)`\r\n ${p.name === "BASIC"\r\n ? (0,lit/* html */.qy)`<div class="hero-tagline">\r\n <local-elem\r\n localKey="All"\r\n fallback="All"\r\n localLang="${this.currentLang}"\r\n ></local-elem>\r\n <local-elem\r\n localKey="our Free content + Unlimited activities"\r\n fallback="our Free content + Unlimited activities"\r\n localLang="${this.currentLang}"\r\n ></local-elem>\r\n </div>`\r\n : (0,lit/* html */.qy)`<div class="hero-tagline">\r\n <local-elem\r\n localKey="Unlimited access to"\r\n fallback="Unlimited access to"\r\n localLang="${this.currentLang}"\r\n ></local-elem>\r\n <local-elem\r\n localKey="all our classes and activities"\r\n fallback="all our classes and activities"\r\n localLang="${this.currentLang}"\r\n ></local-elem>\r\n </div>`}\r\n `}\r\n ${buttonTpl} ${referralNotes}\r\n ${!this.isB2bUser && approx ? (0,lit/* html */.qy)`<div class="hero-approx">${approx}</div>` : ""}\r\n </div>\r\n\r\n <ul class="mobile-features list-checked">\r\n ${this.features.map((f, i) => {\r\n const pv = this._coercePerkValue(p.perks?.[i]);\r\n const tip = this.tooltips[i] || "";\r\n\r\n // In mobile: text cells (e.g., "Unlimited", "3 conversations") are considered included,\r\n // but we DON\'T show the textâonly the tick + label.\r\n const isOn = pv.kind === "icon" ? pv.on : !!pv; // text/object => true\r\n const rowClass = isOn ? "on" : "off";\r\n\r\n return (0,lit/* html */.qy)`\r\n <li class="${rowClass}">\r\n <label class="container-checkbox readonly">\r\n <input type="checkbox" ?checked=${isOn} disabled />\r\n <span class="checkmark"></span>\r\n\r\n <span\r\n class="feature-text ${this._isFeatureBold(i) ? "bold" : ""}"\r\n >\r\n <local-elem\r\n localKey="${f}"\r\n localLang="${this.currentLang}"\r\n ></local-elem>\r\n </span>\r\n </label>\r\n\r\n <button type="button" class="btn btn-tooltip" title="${tip}">\r\n â\r\n </button>\r\n </li>\r\n `;\r\n })}\r\n </ul>\r\n </div>\r\n `;\r\n }\r\n}\r\n\r\ncustomElements.define("subscription-table", SubscriptionTable);\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDU3OS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBOzs7Ozs7Ozs7Ozs7QUNEQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7O0FDakdBO0F
1BQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL0JhYnlTcGFya3MvLi9zcmMvY29tcG9uZW50cy9zdWJzY3JpcHRpb24tdGFibGUvc3Vic2NyaXB0aW9uLXRhYmxlLnNjc3M/ZTRjYyIsIndlYnBhY2s6Ly9CYWJ5U3BhcmtzLy4vc3JjL2NvbXBvbmVudHMvc3Vic2NyaXB0aW9uLXRhYmxlL2JyaWRnZS1yZW5kZXItc2VsZWN0ZWQuanM/MWIzYyIsIndlYnBhY2s6Ly9CYWJ5U3BhcmtzLy4vc3JjL2NvbXBvbmVudHMvc3Vic2NyaXB0aW9uLXRhYmxlL3N1YnNjcmlwdGlvbi10YWJsZS5qcz83YmYwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y3NzfSBmcm9tICdsaXQnOyBleHBvcnQgZGVmYXVsdCBjc3NgYTpob3Zlcntjb2xvcjojOTdjOTQwfS5jZW50ZXJ7dGV4dC1hbGlnbjpjZW50ZXIhaW1wb3J0YW50fS5sZWZ0e3RleHQtYWxpZ246bGVmdC
1FpbXBvcnRhbnR9LnJpZ2h0e3RleHQtYWxpZ246cmlnaHQhaW1wb3J0YW50fWltZyxzdmd7dmVydGljYWwtYWxpZ246bWlkZGxlfSosOjphZnRlciw6OmJlZm9yZXtib3gtc2l6aW5nOmJvcmRlci1ib3h9LmgxLC5oMiwuaDMsLmg0LC5oNSwuaDYsaDEsaDIsaDMsaDQsaDUsaDZ7bWFyZ2luLXRvcDowO21hcmdpbi1ib3R0b206LjVyZW07Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjEuMn0uZmxleC1jZW50ZXJ7ZGlzcGxheTpmbGV4IWltcG9ydGFudDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudH10ZXh0YXJlYTo6cGxhY2Vob2xkZXJ7Y29sb3I6Izg0OGZhNSFpbXBvcnRhbnR9QG1lZGlhKG1heC13aWR0aDo3NjhweCl7LnRhYi1jb250ZW50e3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmc6MCAwIDAgMzRweH19LnN1YnNjcmlwdGlvbi10YWJsZSwudGFibGUtc3Vic2NyaXB0aW9uLDpob3N0ey0tcGVyay1jb2xvci1vbjojMTY5M2Q3Oy0tcGVyay1jb2xvci1vZmY6I2NiZDZlMjstLXBlcmstYmFkZ2UtYmc6I2VlZjJmNzstLXBlcmstcm93LWJvcmRlcjojZTllZGYzfS50YWJsZS1zdWJzY3JpcHRpb257Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMzMzO2JhY2tncm91bmQ6I2ZmZjtwYWRkaW5nOjNyZW07Ym94LXNoYWRvdzowIC0zcHggMTFweCByZ2JhKDAsMCwwLC4xNDkwMTk2MDc4KX0udGFibGUtc3Vic2NyaXB0aW9uIC5wbGFucy13cmFwcGVye2Rpc3BsYXk6ZmxleDt3aWR0aDoxMDAlO2FsaWduLWl0ZW1zOnN0cmV0Y2h9LnRhYmxlLXN1YnNjcmlwdGlvbiAucGxhbnMtd3JhcHBlcntkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOm1pbm1heCgyNDBweCwxZnIpIG1pbm1heCg2NDBweCwzZnIpO2FsaWduLWl0ZW1zOnN0YXJ0fS50YWJsZS1zdWJzY3JpcHRpb24gLnBsYW5zLXdyYXBwZXIgLnBsYW5zLXJvd3tkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgzLG1pbm1heCgyODBweCwxZnIpKX0udGFibGUtc3Vic2NyaXB0aW9uIC5wbGFucy13cmFwcGVyLnR3by1wbGFucyAucGxhbnMtcm93e2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMixtaW5tYXgoMzIwcHgsMWZyKSl9LnRhYmxlLXN1YnNjcmlwdGlvbiAuZmVhdHVyZS1saXN0e3dpZHRoOmF1dG99LnRhYmxlLXN1YnNjcmlwdGlvbiAuZmVhdHVyZS1saXN0IHVse2xpc3Qtc3R5bGU6bm9uZTttYXJnaW46MDtwYWRkaW5nOjB9LnRhYmxlLXN1YnNjcmlwdGlvbiAuZmVhdHVyZS1saXN0IGxpe2hlaWdodDo0NHB4O3BhZGRpbmc6MCAxMnB4O2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Zm9udC1zaXplOjE0cHg7Ym94LXNpemluZzpib3JkZXItYm94fS50YWJsZS1zdWJzY3JpcHRpb24gLmZlYXR1cmUtbGlzdCAuYmlsbGluZy10b2dnbGV7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O2dhcDo2cHg7aGVpZ2h0OmF1dG87cGFkZGluZzoxMnB4fS50YWJsZS1zdWJzY3JpcHRpb24gLmZlYXR1cmUtbGlzdCAuYmlsbGluZy10b2dnbGUgbGFiZWx7ZGlzcGxheTpibG9jazttYXJnaW46MCAwIDZweCAwO2ZvbnQtc2l6ZToxNHB4O2NvbG9yOiM2NjZ9LnRhYmxlLXN1YnNjcmlwdGlvbiAuZmVhdHVyZS1saXN0IC5iaWxsaW5nLXRvZ2dsZSAudG9nZ2xlLWJ1dHRvbnN7ZGlzcGxheTppbmxpbmUtZmxleDtiYWNrZ3JvdW5kOiNmMmY0Zjc7Ym9yZGVyLXJhZGl1czo5OTlweDtwYWRkaW5nOjJweH0udGFibGUtc3Vic2NyaXB0aW9uIC5mZWF0dXJlLWxpc3QgLmJpbGxpbmctdG9nZ2xlIC50b2dnbGUtYnV0dG9ucyBidXR0b257Ym9yZGVyOjA7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDApO3BhZGRpbmc6NnB4IDE2cHg7Ym9yZGVyLXJhZGl1czo5OTlweDtmb250LXNpemU6MTRweDtjb2xvcjojOGE4Zjk4O2N1cnNvcjpwb2ludGVyfS50YWJsZS1zdWJzY3JpcHRpb24gLmZlYXR1cmUtbGlzdCAuYmlsbGluZy10b2dnbGUgLnRvZ2dsZS1idXR0b25zIGJ1dHRvbi5hY3RpdmV7YmFja2dyb3VuZDojMDA5NGNjO2NvbG9yOiNmZmZ9LnRhYmxlLXN1YnNjcmlwdGlvbiAuZmVhdHVyZS1saXN0IC5iaWxsaW5nLXRvZ2dsZSAub2ZmZXJ7bWFyZ2luLXRvcDoycHg7Zm9udC1zaXplOjEzcHg7Y29sb3I6IzAwOTRjYztkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo0cHh9LnRhYmxlLXN1YnNjcmlwdGlvbiAuZmVhdHVyZS1saXN0IC5mZWF0dXJlLXRleHR7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4fS50YWJsZS1zdWJzY3JpcHRpb24gLmZlYXR1cmUtbGlzdCAuZmVhdHVyZS10ZXh0IC50b29sdGlwe3Bvc2l0aW9uOnJlbGF0aXZlfS50YWJsZS1zdWJzY3JpcHRpb24gLmZlYXR1cmUtbGlzdCAuZmVhdHVyZS10ZXh0IC50b29sdGlwIC50b29sdGlwLWljb257YmFja2dyb3VuZDojZmZmO2JvcmRlci1yYWRpdXM6NTAlO3BhZGRpbmc6MCA2cHg7Zm9udC1zaXplOjEycHg7Y3Vyc29yOnBvaW50ZXI7bGluZS1oZWlnaHQ6MS4yO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Y29sb3I6IzAwOTRjYztib3JkZXI6MXB4IHNvbGlkICMwMDk0Y2MhaW1wb3J0YW50fS50YWJsZS1zdWJzY3JpcHRpb24gLmZlYXR1cmUtbGlzdCAuZmVhdHVyZS10ZXh0IC50b29sdGlwIC50b29sdGlwLXRleHR7dmlzaWJpbGl0eTpoaWRkZW47YmFja2dyb3VuZDojNTU1O2NvbG9yOiNmZmY7cGFkZGluZzo4cHg7Ym9yZGVyLXJhZGl1czo0cHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOjEyMCU7bGVmdDowO3otaW5kZXg6MTA7d2lkdGg6MjIwcHg7d2hpdGUtc3BhY2U6bm9ybWFsfS50YWJsZS1zdWJzY3JpcHRpb24gLmZlYXR1cmUtbGlzdCAuZmVhdHVyZS10ZXh0IC50b29sdGlwOmhvdmVyIC50b29sdGlwLXRleHR7dmlzaWJpbGl0eTp2aXNpYmxlfS50YWJsZS1zdWJzY3JpcHRpb24gLnBsYW57d2lkdGg6YXV0bzttYXJnaW46MCAxcmVtO2JhY2tncm91bmQ6I2Y1ZjVmNTtib3JkZXI6MnB4IHNvbGlkICNmNWY1ZjU7Ym9yZGVyLXJhZGl1czo4cHg7Ym94LXNpemluZzpib3JkZXItYm94O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LnRhYmxlLXN1YnNjcmlwdGlvbiAucGxhbi5oaWdobGlnaHR7YmFja2dyb3VuZDojZjdmYmZkO2JvcmRlci1jb2xvcjojMDA5NGNjO3Bvc2l0aW9uOnJlbGF0aXZlfS50YWJsZS1zdWJzY3JpcHRpb24gLnBsYW4uaGlnaGxpZ2h0OjpiZWZvcmV7Y29udGVudDpcIk1PU1QgUE9QVUxBUlwiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDotMTBweDtyaWdodDo4cHg7YmFja2dyb3VuZDojMDA5NGNjO2NvbG9yOiNmZmY7Zm9udC1zaXplOjEwcHg7cGFkZGluZzoycHggNnB4O2JvcmRlci1yYWRpdXM6MnB4IDRweCAwIDRweH0udGFibGUtc3Vic2NyaXB0aW9uIC5wbGFuOmxhc3QtY2hpbGR7YmFja2dyb3VuZDojZmZmIWltcG9ydGFudH0udGFibGUtc3Vic2NyaXB0aW9uIC5wbGFuIC5wbGFuLWhlYWRlcntwYWRkaW5nOjE2cHggMTJweCAxMnB4O3RleHQtYWxpZ246Y2VudGVyO2JveC1zaXppbmc6Ym9yZGVyLWJveH0udGFibGUtc3Vic2NyaXB0aW9uIC5wbGFuIC5wbGFuLWhlYWRlciAucGxhbi1idXR0b257bWFyZ2luLWJvdHRvbToxMHB4O21hcmdpbi10b3A6MTBweH0udGFibGUtc3Vic2NyaXB0aW9uIC5wbGFuIC5wbGFuLWhlYWRlciAucGxhbi1idXR0b24gLmJ1dHRvbi1wbGFuc3twYWRkaW5nOjhweDtmb250LXNpemU6MTJweDt0ZXh0LWFsaWduOmNlbnRlcjt0ZXh0LWRlY29yYXRpb246bm9uZTtiYWNrZ3JvdW5kOiM5N2M5NDA7d2lkdGg6MTMwcHg7ZGlzcGxheTpibG9jaztjb2xvcjojZmZmO2JvcmRlci1yYWRpdXM6MjNweDtmb250LXdlaWdodDozMDA7Ym9yZGVyOm5vbmU7bWFyZ2luOmF1dG87Y3Vyc29yOnBvaW50ZXI7bWluLXdpZHRoOjEwMHB4fS50YWJsZS1zdWJzY3JpcHRpb24gLnBsYW4gLnBsYW4taGVhZGVyIC5wbGFuLWJ1dHRvbiAuYnV0dG9uLWRpc2FibGVke2N1cnNvcjpub3QtYWxsb3dlZCFpbXBvcnRhbnQ7YmFja2dyb3VuZDpyZ2JhKDE1MSwyMDEsNjQsLjQzOTIxNTY4NjMpIWltcG9ydGFudDtjb2xvcjojZmZmO2JvcmRlcjpub25lfS50YWJsZS1zdWJzY3JpcHRpb24gLnBsYW4gLnBsYW4taGVhZGVyIC5wbGFuLW5hbWV7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZToxNnB4O21hcmdpbjoycHggMH0udGFibGUtc3Vic2NyaXB0aW9uIC5wbGFuIC5wbGFuLWhlYWRlciAucGxhbi1sYWJlbHtjb2xvcjojMDA5NGNjO2ZvbnQtd2VpZ2h0OjcwMDttYXJnaW46MnB4IDB9LnRhYmxlLXN1YnNjcmlwdGlvbiAucGxhbiAucGxhbi1oZWFkZXIgLnBsYW4tcHJpY2V7Y29sb3I6IzAwOTRjYztmb250LXNpemU6MTJweDttYXJnaW46MnB4IDB9LnRhYmxlLXN1YnNjcmlwdGlvbiAucGxhbiAucGxhbi1oZWFkZXIgLnBsYW4tbm90ZXtmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOjEycHg7bWFyZ2luLXRvcDoycHg7Y29sb3I6IzAwMH0udGFibGUtc3Vic2NyaXB0aW9uIC5wbGFuIC5wbGFuLWhlYWRlciAucGxhbi1zdWItbm90ZXtmb250LXNpemU6MTJweDt0ZXh0LWFsaWduOmNlbnRlcjtkaXNwbGF5OmJsb2NrO2NvbG9yOiMzMTM1M2U7Zm9udC1mYW1pbHk6U0ZQcm9EaXNwbGF5LUJvbGQ7Zm9udC13ZWlnaHQ6NDAwfS50YWJsZS1zdWJzY3JpcHRpb24gLnBsYW4gLnBsYW4taGVhZGVyIC5yZWYtbGFiZWx7Zm9udC1zaXplOjE0cHg7dGV4dC1hbGlnbjpjZW50ZXI7ZGlzcGxheTpibG9jaztjb2xvcjojMDAwO2ZvbnQtZmFtaWx5OlNGUHJvRGlzcGxheS1Cb2xkfS50YWJsZS1zdWJzY3JpcHRpb24gLnBsYW4gLnBsYW4taGVhZGVyIC5wbGFuLW5vdGUsLnRhYmxlLXN1YnNjcmlwdGlvbiAucGxhbiAucGxhbi1oZWFkZXIgLnBsYW4tcHJpY2V7bWluLWhlaWdodDoyMHB4fS50YWJsZS1zdWJzY3JpcHRpb24gLnBsYW4gLnBsYW4taGVhZGVyIC5wbGFuLW5vdGU6ZW1wdHk6OmJlZm9yZSwudGFibGUtc3Vic2NyaXB0aW9uIC5wbGFuIC5wbGFuLWhlYWRlciAucGxhbi1wcmljZTplbXB0eTo6YmVmb3Jle2Nvbn
1RlbnQ6XCLCoFwiO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS50YWJsZS1zdWJzY3JpcHRpb24gLnBsYW4gLnBsYW4tZmVhdHVyZXN7bGlzdC1zdHlsZTpub25lO3BhZGRpbmc6MDttYXJnaW46MH0udGFibGUtc3Vic2NyaXB0aW9uIC5wbGFuIC5wbGFuLWZlYXR1cmVzIGxpe2hlaWdodDo0NHB4O2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmb250LXNpemU6MTRweH0udGFibGUtc3Vic2NyaXB0aW9uIC5wbGFuIC5wbGFuLWZlYXR1cmVzIGxpIC5jaGVja3tjb2xvcjojM2NhYWQ2O2ZvbnQtc2l6ZToxOHB4O2xpbmUtaGVpZ2h0OjF9LnRhYmxlLXN1YnNjcmlwdGlvbiAucGxhbiAucGxhbi1mZWF0dXJlcyBsaSAuZW1wdHl7Y29sb3I6I2FhYTtmb250LXNpemU6MThweDtsaW5lLWhlaWdodDoxfS50YWJsZS1zdWJzY3JpcHRpb24gLm5vdGV7bWFyZ2luLXRvcDoyNHB4O3BhZGRpbmc6MTZweDt0ZXh0LWFsaWduOmNlbnRlcjtib3JkZXI6MXB4IHNvbGlkICNlMmUyZTJ9LnRhYmxlLXN1YnNjcmlwdGlvbiAubm90ZSBzdHJvbmd7Y29sb3I6IzY2Njtmb250LXNpemU6MTNweH0ucmVndWxhckd1aWRlRGVzY3t0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW46MTJweCAwIDI0cHh9LnJlZ3VsYXJHdWlkZURlc2MgaDJ7Zm9udC1zaXplOjI4cHg7Y29sb3I6IzQ2OWJjZDttYXJnaW4tYm90dG9tOjEwcHg7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1mYW1pbHk6U0ZQcm9EaXNwbGF5LVJlZ3VsYXJ9LnJlZ3VsYXJHdWlkZURlc2MgcHtjb2xvcjojNzc4MDkwO2ZvbnQtc2l6ZToyMHB4O2ZvbnQtZmFtaWx5OlwiT3BlbiBTYW5zXCIsc2Fucy1zZXJpZjt0ZXh0LWFsaWduOmNlbnRlcn0ucmVmZXJyYWxHdWlkZURlc2N7dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luOjFyZW0gYXV0byAxcmVtIGF1dG99LnJlZmVycmFsR3VpZGVEZXNjIHB7bWFyZ2luOjAhaW1wb3J0YW50O2NvbG9yOiMzMTM1M2UhaW1wb3J0YW50O2ZvbnQtZmFtaWx5OlwiT3BlbiBTYW5zXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MThweCFpbXBvcnRhbnQ7Zm9udC13ZWlnaHQ6NzAwIWltcG9ydGFudDtsaW5lLWhlaWdodDoyOHB4IWltcG9ydGFudH0ucmVmZXJyYWxHdWlkZURlc2MgLmRpc2NvdW50TGFiZWx7Y29sb3I6IzA0OTNjY30ucGFnZXJQcm9ncmVzc1NlY3Rpb257d2lkdGg6MTAwJTt0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW46MnJlbSBhdXRvfS5teWNsYXNzSGVhZGluZ3tjb2xvcjojMDQ5M2NjO2ZvbnQtZmFtaWx5OlNGUHJvRGlzcGxheS1Cb2xkO2ZvbnQtc2l6ZToyNHB4O3BhZGRpbmc6MCAwIDAgMnJlbTtsaW5lLWhlaWdodDowO21hcmdpbi1ib3R0b206MnJlbX0uZmVhdHVyZS1saXN0e2xpc3Qtc3R5bGU6bm9uZTttYXJnaW46MDtwYWRkaW5nOjB9LmZlYXR1cmUtbGlzdD5saXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO21pbi1oZWlnaHQ6NDRweDtwYWRkaW5nOjEycHggMH0uZmVhdHVyZS10ZXh0e2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHh9LmZlYXR1cmUtbGlzdD5saS5ib2xkIC5mZWF0dXJlLXRleHR7Zm9udC13ZWlnaHQ6NzAwfS5idG4uYnRuLXRvb2x0aXB7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDApO2JvcmRlcjowO3BhZGRpbmc6MDtsaW5lLWhlaWdodDoxO2NvbG9yOiM4YTk5YTg7Y3Vyc29yOmRlZmF1bHR9LmJ0bi5idG4tdG9vbHRpcDpob3Zlcntjb2xvcjojNTg2OTdhfS5wbGFuLWZlYXR1cmVze2xpc3Qtc3R5bGU6bm9uZTttYXJnaW46MDtwYWRkaW5nOjB9LnBsYW4tZmVhdHVyZXM+bGl7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21pbi1oZWlnaHQ6NDRweDtwYWRkaW5nOjEwcHh9LnBlcmstY2hlY2t7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjttaW4td2lkdGg6MTZweH0ucGVyay10ZXh0e2Rpc3BsYXk6aW5saW5lLWJsb2NrO21pbi13aWR0aDo3MnB4O3RleHQtYWxpZ246Y2VudGVyO2xpbmUtaGVpZ2h0OjEuMjt3aGl0ZS1zcGFjZTpub3dyYXB9LnBlcmstdGV4dC5ib2xke2ZvbnQtd2VpZ2h0OjcwMH0ucGVyay10ZXh0LmJhZGdle3BhZGRpbmc6MnB4IDhweDtib3JkZXItcmFkaXVzOjk5OXB4O2JhY2tncm91bmQ6dmFyKC0tcGVyay1iYWRnZS1iZyl9LmNvbnRhaW5lci1jaGVja2JveHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDtmb250OmluaGVyaXR9LmNvbnRhaW5lci1jaGVja2JveC5yZWFkb25seXtwb2ludGVyLWV2ZW50czpub25lO3VzZXItc2VsZWN0Om5vbmU7bWFyZ2luOjB9LmNvbnRhaW5lci1jaGVja2JveD5pbnB1dHtwb3NpdGlvbjphYnNvbHV0ZTtvcGFjaXR5OjA7d2lkdGg6MDtoZWlnaHQ6MH0uY29udGFpbmVyLWNoZWNrYm94IC5jaGVja21hcmt7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTZweDtoZWlnaHQ6MTZweDtmbGV4OjAgMCAxNnB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtib3JkZXItcmFkaXVzOjUwJTtib3JkZXI6MnB4IHNvbGlkIHZhcigtLXBlcmstY29sb3Itb2ZmKTtiYWNrZ3JvdW5kOiNmZmZ9LmNvbnRhaW5lci1jaGVja2JveCBpbnB1dDpjaGVja2Vkfi5jaGVja21hcmt7Ym9yZGVyLWNvbG9yOnZhcigtLXBlcmstY29sb3Itb24pO2JhY2tncm91bmQ6dmFyKC0tcGVyay1jb2xvci1vbil9LmNvbnRhaW5lci1jaGVja2JveCBpbnB1dDpjaGVja2VkOmRpc2FibGVkfi5jaGVja21hcmt7Ym9yZGVyLWNvbG9yOnZhcigtLXBlcmstY29sb3Itb24pO2JhY2tncm91bmQ6dmFyKC0tcGVyay1jb2xvci1vbil9LmNvbnRhaW5lci1jaGVja2JveCAuY2hlY2ttYXJrOjphZnRlcntjb250ZW50OlwiXCI7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpub25lO2xlZnQ6NHB4O3RvcDoxcHg7d2lkdGg6NHB4O2hlaWdodDo4cHg7Ym9yZGVyOjJweCBzb2xpZCAjZmZmO2JvcmRlci10b3A6MDtib3JkZXItbGVmdDowO3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpfS5jb250YWluZXItY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZDpkaXNhYmxlZH4uY2hlY2ttYXJrOjphZnRlciwuY29udGFpbmVyLWNoZWNrYm94IGlucHV0OmNoZWNrZWR+LmNoZWNrbWFyazo6YWZ0ZXJ7ZGlzcGxheTpibG9ja30ubW9iaWxlLWZlYXR1cmVzIC52YWx1ZSwucGVyay10ZXh0e2NvbG9yOnZhcigtLXBlcmstY29sb3Itb24pfUBtZWRpYShtYXgtd2lkdGg6NzY4cHgpey50YWJsZS1zdWJzY3JpcHRpb257ZGlzcGxheTpub25lIWltcG9ydGFudH0ucmVndWxhckd1aWRlRGVzY3t3aWR0aDo5MCU7bWFyZ2luOjFyZW0gYXV0b30ucmVndWxhckd1aWRlRGVzYyBoMntmb250LXNpemU6MjRweH0ubW9iaWxlLXN1YnNjcmlwdGlvbntmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMzMzM7YmFja2dyb3VuZDojZjVmN2Y5O3BhZGRpbmc6MnJlbSAwO2JveC1zaGFkb3c6MCAtM3B4IDExcHggcmdiYSgwLDAsMCwuMTQ5MDE5NjA3OCl9Lm1vYmlsZS1zdWJzY3JpcHRpb24gLm1vYmlsZS10YWJze2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0ubW9iaWxlLXN1YnNjcmlwdGlvbiAubW9iaWxlLXRhYnMgLnRhYntmbGV4OjE7dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzoxMHB4IDA7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6MTRweDtjb2xvcjojOGE5OWE4O2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwKTtib3JkZXI6bm9uZTtib3JkZXItYm90dG9tOjNweCBzb2xpZCB0cmFuc3B
1hcmVudDtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmFsbCAuMjVzIGVhc2V9Lm1vYmlsZS1zdWJzY3JpcHRpb24gLm1vYmlsZS10YWJzIC50YWIuYWN0aXZle2NvbG9yOiMwMDk0Y2M7Ym9yZGVyLWJvdHRvbTozcHggc29saWQgIzAwOTRjY30ubW9iaWxlLXN1YnNjcmlwdGlvbiAubW9iaWxlLXRhYnMgLnRhYjpmb2N1cy12aXNpYmxle291dGxpbmU6MDt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO3RleHQtdW5kZXJsaW5lLW9mZnNldDo0cHh9Lm1vYmlsZS1zdWJzY3JpcHRpb24gLm1vYmlsZS1iaWxsaW5ne3RleHQtYWxpZ246Y2VudGVyO2JhY2tncm91bmQ6I2ZmZjtwYWRkaW5nLXRvcDouNzVyZW19Lm1vYmlsZS1zdWJzY3JpcHRpb24gLm1vYmlsZS1iaWxsaW5nIC5sYWJlbHtmb250LXNpemU6MTNweDtjb2xvcjojNjY2O21hcmdpbi1ib3R0b206NnB4fS5tb2JpbGUtc3Vic2NyaXB0aW9uIC5tb2JpbGUtYmlsbGluZyAudG9nZ2xlLWJ1dHRvbnN7ZGlzcGxheTppbmxpbmUtZmxleDtiYWNrZ3JvdW5kOiNmMmY0Zjc7Ym9yZGVyLXJhZGl1czo5OTlweDtwYWRkaW5nOjJweH0ubW9iaWxlLXN1YnNjcmlwdGlvbiAubW9iaWxlLWJpbGxpbmcgLnRvZ2dsZS1idXR0b25zIGJ1dHRvbntib3JkZXI6MDtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMCk7cGFkZGluZzo2cHggMTZweDtib3JkZXItcmFkaXVzOjk5OXB4O2ZvbnQtc2l6ZToxNHB4O2NvbG9yOiM4YThmOTg7Y3Vyc29yOnBvaW50ZXJ9Lm1vYmlsZS1zdWJzY3JpcHRpb24gLm1vYmlsZS1iaWxsaW5nIC50b2dnbGUtYnV0dG9ucyBidXR0b24uYWN0aXZle2JhY2tncm91bmQ6IzAwOTRjYztjb2xvcjojZmZmfS5tb2JpbGUtc3Vic2NyaXB0aW9uIC5tb2JpbGUtYmlsbGluZyAub2ZmZXJ7bWFyZ2luLXRvcDo2cHg7Zm9udC1zaXplOjEzcHg7Y29sb3I6IzAwOTRjYztkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo0cHg7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDo4NSV9Lm1vYmlsZS1zdWJzY3JpcHRpb24gLm1vYmlsZS1oZXJve3RleHQtYWxpZ246Y2VudGVyO2JhY2tncm91bmQ6I2ZmZn0ubW9iaWxlLXN1YnNjcmlwdGlvbiAubW9iaWxlLWhlcm8gLmhlcm8tdGl0bGV7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZToxNnB4fS5tb2JpbGUtc3Vic2NyaXB0aW9uIC5tb2JpbGUtaGVybyAuaGVyby1sYWJlbHtjb2xvcjojMDA5NGNjO2ZvbnQtd2VpZ2h0OjcwMDttYXJnaW46NHB4IDB9Lm1vYmlsZS1zdWJzY3JpcHRpb24gLm1vYmlsZS1oZXJvIC5oZXJvLXRhZ2xpbmV7Y29sb3I6IzAwOTRjYztmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOjEzcHh9Lm1vYmlsZS1zdWJzY3JpcHRpb24gLm1vYmlsZS1oZXJvIC5oZXJvLWN0YXttYXJnaW46OHB4IGF1dG8gNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO21pbi13aWR0aDo3MCU7YmFja2dyb3VuZDojYTZjZTM5O2NvbG9yOiNmZmY7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czoyNHB4O3BhZGRpbmc6MTBweCAxNnB4O2ZvbnQtd2VpZ2h0OjcwMDtjdXJzb3I6cG9pbnRlcn0ubW9iaWxlLXN1YnNjcmlwdGlvbiAubW9iaWxlLWhlcm8gLmhlcm8tY3RhLmJ1dHRvbi1kaXNhYmxlZHtjdXJzb3I6bm90LWFsbG93ZWQ7YmFja2dyb3VuZDpyZ2JhKDE1MSwyMDEsNjQsLjQzOTIxNTY4NjMpO2NvbG9yOiNmZmY7Ym9yZGVyOm5vbmV9Lm1vYmlsZS1zdWJzY3JpcHRpb24gLm1vYmlsZS1oZXJvIC5oZXJvLWFwcHJveHtjb2xvcjojMDA5NGNjO2ZvbnQtc2l6ZToxMnB4fS5tb2JpbGUtc3Vic2NyaXB0aW9uIC5tb2JpbGUtZmVhdHVyZXN7bGlzdC1zdHlsZTpub25lO3BhZGRpbmc6MCAwIDAgLjc1cmVtO21hcmdpbjowO2JhY2tncm91bmQ6I2ZmZn0ubW9iaWxlLXN1YnNjcmlwdGlvbiAubW9iaWxlLWZlYXR1cmVzIGxpe2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZzoxMnB4IDEwcHg7Y29sb3I6IzcyNzI3Mn0ubW9iaWxlLWZlYXR1cmVzIC5jb250YWluZXItY2hlY2tib3h7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7ZmxleDoxO3BvaW50ZXItZXZlbnRzOm5vbmU7dXNlci1zZWxlY3Q6bm9uZTttYXJnaW46MH0ubW9iaWxlLWZlYXR1cmVzIC5jb250YWluZXItY2hlY2tib3g+aW5wdXR7cG9zaXRpb246YWJzb2x1dGU7b3BhY2l0eTowO3dpZHRoOjA7aGVpZ2h0OjB9Lm1vYmlsZS1mZWF0dXJlcyAuY2hlY2ttYXJre3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7ZmxleDowIDAgMTZweH0ubW9iaWxlLWZlYXR1cmVzIC5mZWF0dXJlLXRleHQuYm9sZHtmb250LXdlaWdodDo3MDB9Lm1vYmlsZS1mZWF0dXJlcyAuYnRuLmJ0bi10b29sdGlwe21hcmdpbi1sZWZ0OjhweDtmbGV4OjAgMCBhdXRvO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwKTtib3JkZXI6MDtjb2xvcjojMDA5NGNjfS5teWNsYXNzSGVhZGluZ3tjb2xvcjojMDQ5M2NjO2ZvbnQtZmFtaWx5OlNGUHJvRGlzcGxheS1Cb2xkO2ZvbnQtc2l6ZToyMHB4O2ZvbnQtd2VpZ2h0OjYwMDtsaW5lLWhlaWdodDowO21hcmdpbi1ib3R0b206MnJlbTtwYWRkaW5nOjAhaW1wb3J0YW50fX1gO1xuICAgICIsIi8vIGxlZ2FjeS9icmlkZ2UtcmVuZGVyLXNlbGVjdGVkLmpzXHJcbmltcG9ydCB7ICBldmVudFJlZmVycmFsU3Vic2NyaXB0aW9uQnV5LFxyXG4gIGV2ZW50TW9udGhseUJhc2ljLFxyXG4gIGV2ZW50TW9udGhseVByZW1pdW0sXHJcbiAgZXZlbnRZZWFybHlCYXNpYyxcclxuICBldmVudFllYXJseVByZW1pdW0gfSBmcm9tICcuLi8uLi91dGlscy9hbmFseXRpY3MuanMnXHJcbmltcG9ydCBDb29raWVzIGZyb20gXCJqcy1jb29raWVcIjtcclxuICBcclxuZnVuY3Rpb24gcmVuZGVyU2VsZWN0ZWRTdWJzY3JpcHRpb24oc2VsZWN0ZWRTdWJzY3JpcHRpb24sb3B0cyA9IHt9KSB7XHJcbiAgY29uc3QgbXlTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZTtcclxuICBjb25zdCBfYnNfbG9nZ2VkX3VzZXJfaWQgPSBteVN0b3JhZ2UuZ2V0SXRlbShcImxvZ2luX3VzZXJJXCIpIHx8IG51bGw7XHJcblxyXG4gIGNvbnN0IHVzZXJJZCA9XHJcbiAgICBvcHRzLnVzZXJJZCA/P1xyXG4gICBfYnNfbG9nZ2VkX3VzZXJfaWQgPz9cclxuICAgIFwiXCI7XHJcblxyXG4gIGNvbnN0IGlzVXNlclJlZmVycmVkID0gb3B0cy5pc1VzZXJSZWZlcnJlZCA/PyBmYWxzZTtcclxuXHJcbiAgLy8gcmVhZCB2YWx1ZXMgZnJvbSBlaXRoZXIgYSBET00gZWxlbWVudCBvciBhIHBsYWluIHN0cmluZ1xyXG4gIGxldCBzdWJzY3JpcHRpb25WYWx1ZSA9IFwiXCI7XHJcbiAgbGV0IHN1YnNjcmlwdGlvbklkID0gXCJcIjtcclxuICBsZXQgc3Vic2NyaXB0aW9uVHlwZSA9IFwiXCI7XHJcblxyXG4gIGlmIChzZWxlY3RlZFN1YnNjcmlwdGlvbiAmJiBzZWxlY3RlZFN1YnNjcmlwdGlvbi5ub2RlVHlwZSA9PT0gMSkge1xyXG4gICAgLy8gRE9NIGVsZW1lbnQgKHdoYXQgdGhlIExpdCBjb21wb25lbnQgY3JlYXRlcylcclxuICAgIHN1YnNjcmlwdGlvblZhbHVlID0gc2VsZWN0ZWRTdWJzY3JpcHRpb24udmFsdWUgfHwgXCJcIjtcclxuICAgIHN1YnNjcmlwdGlvbklkID0gc2VsZWN0ZWRTdWJzY3JpcHRpb24uZGF0YXNldD8uaWQgfHwgXCJcIjtcclxuICAgIHN1YnNjcmlwdGlvblR5cGUgPSBzZWxlY3RlZFN1YnNjcmlwdGlvbi5kYXRhc2V0Py50eXBlIHx8IFwiXCI7XHJcbiAgfSBlbHNlIGlmICh0eXBlb2Ygc2VsZWN0ZWRTdWJzY3JpcHRpb24gPT09IFwic3RyaW5nXCIpIHtcclxuICAgIC8vIGRpcmVjdCBzdHJpbmcgXCJiYXNpYy15ZWFybHkuPGlkPlwiXHJcbiAgICBzdWJzY3JpcHRpb25WYWx1ZSA9IHNlbGVjdGVkU3Vic2NyaXB0aW9uO1xyXG4gIH0gZWxzZSBpZiAoc2VsZWN0ZWRTdWJzY3JpcHRpb24gJiYgdHlwZW9mIHNlbGVjdGVkU3Vic2NyaXB0aW9uID09PSBcIm9iamVjdFwiKSB7XHJcbiAgICAvLyBhbnkgb2JqZWN0IHdpdGggdGhlc2UgZmllbGRzXHJcbiAgICBzdWJzY3JpcHRpb25WYWx1ZSA9IHNlbGVjdGVkU3Vic2NyaXB0aW9uLnZhbHVlIHx8IFwiXCI7XHJcbiAgICBzdWJzY3JpcHRpb25JZCA9IHNlbGVjdGVkU3Vic2NyaXB0aW9uLmlkIHx8IFwiXCI7XHJcbiAgICBzdWJzY3JpcHRpb25UeXBlID0gc2VsZWN0ZWRTdWJzY3JpcHRpb24udHlwZSB8fCBcIlwiO
11xyXG4gIH1cclxuXHJcbiAgbGV0IHBhZ2VOYW1lID0gXCJcIjtcclxuXHJcbiAgbGV0IHNlcnZlciA9ICh3aW5kb3cubG9jYXRpb24uaG9zdCA9PT0gXCJkZXZkYXNoYm9hcmQuYmFieXNwYXJrcy5jb21cIilcclxuICAgID8gXCIvL2RldmRhc2hib2FyZC5iYWJ5c3BhcmtzLmNvbS9cIlxyXG4gICAgOiBcIi8vYmFieXNwYXJrcy5jb20vXCI7XHJcblxyXG4gIC8vIFN0b3JlIHN1YnNjcmlwdGlvbiBpZCBmb3Igd2ViLSogdHJhbnNhY3Rpb25zXHJcbiAgaWYgKChzdWJzY3JpcHRpb25UeXBlIHx8IFwiXCIpLmluY2x1ZGVzKFwid2ViLVwiKSAmJiBzdWJzY3JpcHRpb25JZCkge1xyXG4gICAgbXlTdG9yYWdlLnNldEl0ZW0oXCJzdWJzY3JpcHRpb25faWRcIiwgc3Vic2NyaXB0aW9uSWQpO1xyXG4gIH1cclxuXHJcbiAgY29uc3Qgc3Vic2NyaXB0aW9uQXJyID0gKHN1YnNjcmlwdGlvblZhbHVlIHx8IFwiXCIpLnNwbGl0KFwiLlwiKTtcclxuICBjb25zdCBbcGxhbktleSA9IFwiXCIsIHBsYW5JZF0gPSAoc3Vic2NyaXB0aW9uVmFsdWUgfHwgXCJcIikuc3BsaXQoXCIuXCIpO1xyXG4gIFxyXG4gIFxyXG5cclxuICBpZiAoc3Vic2NyaXB0aW9uQXJyLmxlbmd0aCA+IDApIHtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICBpZiAoaXNVc2VyUmVmZXJyZWQpIGV2ZW50UmVmZXJyYWxTdWJzY3JpcHRpb25CdXkodXNlcklkKTtcclxuICAgICAgaWYgKHBsYW5LZXkuaW5jbHVkZXMoXCJiYXNpYy15ZWFybHlcIikpICAgICAgZXZlbnRZZWFybHlCYXNpYyh1c2VySWQsIDApO1xyXG4gICAgICBlbHNlIGlmIChwbGFuS2V5LmluY2x1ZGVzKFwicHJlbWl1bS15ZWFybHlcIikpIGV2ZW50WWVhcmx5UHJlbWl1bSh1c2VySWQsIDApO1xyXG4gICAgICBlbHNlIGlmIChwbGFuS2V5LmluY2x1ZGVzKFwiYmFzaWMtbW9udGhseVwiKSkgIGV2ZW50TW9udGhseUJhc2ljKHVzZXJJZCwgMCk7XHJcbiAgICAgIGVsc2UgaWYgKHBsYW5LZXkuaW5jbHVkZXMoXCJwcmVtaXVtLW1vbnRobHlcIikpZXZlbnRNb250aGx5UHJlbWl1bSh1c2VySWQsIDApO1xyXG4gICAgfSBjYXRjaCAoZSkgeyBjb25zb2xlLndhcm4oXCJhbmFseXRpY3MgZXJyb3IgKGlnbm9yZWQpOlwiLCBlKTsgfVxyXG4gICAgXHJcbiAgICBpZiAocGxhbklkKSBteVN0b3JhZ2Uuc2V0SXRlbShcInBsYW5faWRcIiwgcGxhbklkKTtcclxuXHJcbiAgICBpZiAoIXVzZXJJZCkge1xyXG4gICAgICAgIGNvbnN0IGV4cGlyZXNEYXlzID0gMzA7IC8vIGtlZXAgY29va2llIDMwIGRheXNcclxuICAgICAgICBsZXQgY29va2llTmFtZSA9IFwiXCI7XHJcbiAgICAgICAgLy8gRGV0ZXJtaW5lIHdoaWNoIGNvb2tpZSB0byBzZXQgYmFzZWQgb24gcGxhblxyXG4gICAgICAgIGlmIChwbGFuS2V5LmluY2x1ZGVzKFwiYmFzaWNcIikpIHtcclxuICAgICAgICAgICBjb29raWVOYW1lID0gXCJzdWJfcmVxXCI7IC8vIGZvciBiYXNpY1xyXG4gICAgICAgICAgIHBhZ2VOYW1lID0gXCJyZWdpc3Rlci8/c3Vic2NyaXB0aW9uPWZhbHNlXCI7XHJcbiAgICAgICAgfSBlbHNlIGlmIChwbGFuS2V5LmluY2x1ZGVzKFwicHJlbWl1bVwiKSkge1xyXG4gICAgICAgICAgY29va2llTmFtZSA9IFwicHJlbV9zdWJfcmVxXCI7IC8vIGZvciBwcmVtaXVtXHJcbiAgICAgICAgICAgcGFnZU5hbWUgPSBcInJlZ2lzdGVyLz9zdWJzY3JpcHRpb249dHJ1ZVwiO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoY29va2llTmFtZSkge1xyXG4gICAgICAgICAgQ29va2llcy5zZXQoY29va2llTmFtZSwgcGxhbktleSwgeyBleHBpcmVzOiBleHBpcmVzRGF5cywgcGF0aDogXCIvXCIgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgIFxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gTG9nZ2VkIGluIOKGkiBnbyB0byBzdWJzY3JpcHRpb24gcGFnZVxyXG4gICAgICBwYWdlTmFtZSA9IFwic3Vic2NyaWJlXCI7XHJcbiAgICAgIGlmIChwbGFuS2V5KSBwYWdlTmFtZSArPSBcIi9cIiArIHBsYW5LZXk7XHJcbiAgICAgIC8vQXBwZW5kIC9yZWYtd3AgaWYgdGhlIGN1cnJlbnQgcGFnZSBVUkwgaW5jbHVkZXMgXCJhcHAtb3ZlcnZpZXdcIlxyXG4gICAgICBpZiAod2luZG93LmxvY2F0aW9uLmhyZWYuaW5jbHVkZXMoXCJhcHAtb3ZlcnZpZXdcIikpIHtcclxuICAgICAgICBwYWdlTmFtZSArPSBcIi9yZWYtd3BcIjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBzZXJ2ZXIgKyBwYWdlTmFtZTtcclxufVxyXG5cclxuLy8gZXhwb3NlIGdsb2JhbGx5IHNvIHRoZSBMaXQgY29tcG9uZW50IGNhbiBjYWxsIGl0XHJcbndpbmRvdy5yZW5kZXJTZWxlY3RlZFN1YnNjcmlwdGlvbiA9IHJlbmRlclNlbGVjdGVkU3Vic2NyaXB0aW9uO1xyXG4iLCJpbXBvcnQgeyBMaXRFbGVtZW50LCBodG1sLCBub3RoaW5nIH0gZnJvbSBcImxpdFwiO1xyXG5pbXBvcnQgc3Vic2NyaXB0aW9uVGFibGVTdHlsZSBmcm9tIFwiLi9zdWJzY3JpcHRpb24tdGFibGUuc2Nzc1wiO1xyXG5pbXBvcnQgeyBpc01vYmlsZURldmljZSB9IGZyb20gXCIuLi8uLi91dGlscy9jb21tb24uanNcIjtcclxuaW1wb3J0IHsgY29ubmVjdCB9IGZyb20gXCJwd2EtaGVscGVyc1wiO1xyXG5pbXBvcnQgeyBzdG9yZSB9IGZyb20gXCIuLi8uLi9yZWR1eC9zdG9yZS5qc1wiO1xyXG5pbXBvcnQgXCIuL2JyaWRnZS1yZW5kZXItc2VsZWN0ZWQuanNcIjtcclxuaW1wb3J0IFwiLi4vcGFnZXItcHJvZ3Jlc3MtYmFyL3BhZ2VyLXByb2dyZXNzLWJhci5qc1wiO1xyXG5pbXBvcnQgXCIuLi9sb2NhbGl6YXRpb24vbG9jYWxpemF0aW9uLmpzXCI7XHJcbmltcG9ydCB7IGlzQjJiVXNlcn0gZnJvbSBcIi4uLy4uL2NvbnRyb2xsZXJzL3VzZXJzUGFja2FnZXNDb250cm9sbGVyLmpzXCI7XHJcbi8qKlxyXG4gKiBQZXItcGxhbiBURVhUIG92ZXJyaWRlcyBmb3IgcGVyayBjZWxscy5cclxuICogSW5kZXhlcyBtYXAgdG8gdGhlIGRlc2t0b3BGZWF0dXJlcyBvcmRlcjpcclxuICogMCBPbi1kZW1hbmQgfCAxIExpdmUgfCAyIEFJIGV4cGVydCB8IDMgRGV2ZWxvcG1lbnQgcHJvZ3JhbSB8IDTigJM4IG90aGVycy5cclxuICpcclxuICogVmFsdWUgb3B0aW9uczpcclxuICogIC0gdHJ1ZS9mYWxzZSDihpIgc2hvdyB0aWNrL2Rhc2ggKGRlZmF1bHQgaWNvbiBiZWhhdmlvcilcclxuICogIC0gXCJTb21lIHRleHRcIiDihpIgcmVuZGVyIHRoYXQgdGV4dCBpbiB0aGUgY2VsbFxyXG4gKiAgLSB7IHRleHQsIGJhZGdlPywgYm9sZD8gfSDihpIgdGV4dCB3aXRoIG9wdGlvbmFsIHBpbGwgc3R5bGUgKGJhZGdlKSBhbmQgd2VpZ2h0IChib2xkKVxyXG4gKlxyXG4gKiBFeGFtcGxlczpcclxuICogICAwOiB7IHRleHQ6IFwiVW5saW1pdGVkXCIsIGJhZGdlOiB0cnVlIH0sICAgICAgICAgICAgLy8gcGlsbC1zdHlsZWRcclxuICogICAxOiB7IHRleHQ6IFwiVW5saW1pdGVkXCIgfSwgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcGxhaW4gdGV4dFxyXG4gKiAgIDI6IHsgdGV4dDogXCIzIGNvbnZlcnNhdGlvbnNcIiwgYmFkZ2U6IHRydWUsIGJvbGQ6IHRydWUgfSAvLyBwaWxsICsgYm9sZFxyXG4gKi9cclxuXHJcbmNvbnN0IFRFWFRfUEVSS1MgPSB7XHJcbiAgRlJFRToge1xyXG4gICAgMDogZmFsc2UsXHJcbiAgICAxOiBmYWxzZSxcclxuICAgIDI6IHsgdGV4dDogXCIzIGNvbnZlcnNhdGlvbnNcIiB9LFxyXG4gICAgMzogeyB0ZXh0OiBcIjIgRGV2ZWxvcG1lbnQgYWN0aXZpdGllcyBhIGRheVwiIH0sXHJcbiAgICA0OiB0cnVlLFxyXG4gICAgNTogdHJ1ZSxcclxuICAgIDY6IHRydWUsXHJcbiAgICA3OiB0cnVlLFxyXG4gICAgODogdHJ1ZSwgLy8gPC0gYm9vbGVhbnMhXHJcbiAgfSxcclxuICBCQVNJQzoge1xyXG4gICAgMDogZmFsc2UsXHJcbiAgICAxOiBmYWxzZSxcclxuICAgIDI6IHsgdGV4dDogXCIzIGNvbnZlcnNhdGlvbnNcIiB9LFxyXG4gICAgMzogeyB0ZXh0OiBcIlVubGltaXRlZFwiIH0sXHJcbiAgICA0OiB0cnVlLFxyXG4gICAgNTogdHJ1ZSxcclxuICAgIDY6IHRydWUsXHJcbiAgICA3OiB0cnVlLFxyXG4gICAgODogdHJ1ZSwgLy8gPC0gYm9vbGVhbnMhXHJcbiAgfSxcclxuICBQUkVNSVVNOiB7XHJcbiAgICAwOiB7IHRleHQ6IFwiVW5saW1pdGVkXCIgfSxcclxuICAgIDE6IHsgdGV4dDogXCJVbmxpbWl0ZWRcIiB9LFxyXG4gICAgMjogeyB0ZXh0OiBcIlVubGltaXRlZFwiIH0sXHJcbiAgICAzOiB7IHRleHQ6IFwiVW5saW1pdGVkXCIgfSxcclxuICAgIDQ6IHRydWUsXHJcbiAgICA1OiB0cnVlLFxyXG4gICAgNjogdHJ1ZSxcclxuICAgIDc6IHRydWUsXHJcbiAgICA4OiB0cnVlLCAvLyA8LSBib29sZWFucyFcclxuICB9LFxyXG59O1xyXG5cclxuZXhwb3J0IGNsYXNzIFN1YnNjcmlwdGlvblRhYmxlIGV4dGVuZHMgY29ubmVjdChzdG9yZSkoTGl0RWxlbWVudCkge1xyXG4gIF9yYWYgPSAwO1xyXG4gIF9vblN0b3JlQ2hhbmdlID0gbnVsbDtcclxuICBzdGF0aWMgZ2V0IHN0eWxlcygpIHtcclxuICAgIHJldHVybi
1Bbc3Vic2NyaXB0aW9uVGFibGVTdHlsZV07XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgcHJvcGVydGllcyA9IHtcclxuICAgIHBsYW5zOiB7IHR5cGU6IEFycmF5IH0sXHJcbiAgICBmZWF0dXJlczogeyB0eXBlOiBBcnJheSB9LFxyXG4gICAgdG9vbHRpcHM6IHsgdHlwZTogQXJyYXkgfSxcclxuICAgIGJpbGxpbmdNb2RlOiB7IHR5cGU6IFN0cmluZyB9LFxyXG4gICAgaXNNb2JpbGU6IHsgdHlwZTogQm9vbGVhbiwgYXR0cmlidXRlOiBmYWxzZSB9LFxyXG4gICAgYWN0aXZlUGxhbklkeDogeyB0eXBlOiBOdW1iZXIsIGF0dHJpYnV0ZTogZmFsc2UgfSxcclxuICAgIGlzVXNlclJlZmVycmVkOiB7IHR5cGU6IEJvb2xlYW4sIGF0dHJpYnV0ZTogZmFsc2UgfSxcclxuICAgIGxhdGVzdFBhY2thZ2U6IHsgdHlwZTogT2JqZWN0LCBhdHRyaWJ1dGU6IGZhbHNlIH0sXHJcbiAgICBjdXJyZW50TGFuZzogeyB0eXBlOiBTdHJpbmcgfSxcclxuICAgIGRlc2t0b3BGZWF0dXJlczogeyB0eXBlOiBBcnJheSB9LFxyXG4gICAgbW9iaWxlRmVhdHVyZXM6IHsgdHlwZTogQXJyYXkgfSxcclxuICAgIGJvbGREZXNrdG9wOiB7IHR5cGU6IEFycmF5IH0sXHJcbiAgICBib2xkTW9iaWxlOiB7IHR5cGU6IEFycmF5IH0sXHJcbiAgICBpc0IyYlVzZXI6IHsgdHlwZTogQm9vbGVhbiwgYXR0cmlidXRlOiBmYWxzZSB9LFxyXG4gIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKTtcclxuICAgIHRoaXMuYmlsbGluZ01vZGUgPSBcInllYXJseVwiO1xyXG4gICAgdGhpcy5pc01vYmlsZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5hY3RpdmVQbGFuSWR4ID0gMDtcclxuICAgIHRoaXMucHJvZ3Jlc3NTdGVwcyA9IFtcIlNlbGVjdCBQbGFuXCIsIFwiUmV2aWV3XCIsIFwiQ29uZmlybVwiXTtcclxuICAgIHRoaXMuY3VycmVudFN0ZXAgPSAxO1xyXG4gICAgdGhpcy5kZXNrdG9wRmVhdHVyZXMgPSBbXHJcbiAgICAgIFwiT24tZGVtYW5kIHBhcmVudGluZyBjbGFzc2VzXCIsXHJcbiAgICAgIFwiQUktcG93ZXJlZCBwYXJlbnRpbmcgZXhwZXJ0XCIsXHJcbiAgICAgIFwiRGV2ZWxvcG1lbnQgcHJvZ3JhbSAocGxheSBhY3Rpdml0aWVzKVwiLFxyXG4gICAgICBcIkZhbWlseSBzaGFyaW5nIChTdWJzY3JpcHRpb24pXCIsXHJcbiAgICAgIFwiRmFtaWx5IHNoYXJpbmcgKGNoaWxk4oCZcyBwcm9maWxlKVwiLFxyXG4gICAgICBcIkRhaWx5IGZlZWQgd2l0aCBhcnRpY2xlcyArIHRpcHNcIixcclxuICAgICAgXCJQcm9ncmVzcyArIGdyb3d0aCByZXBvcnRzXCIsXHJcbiAgICAgIFwiRGV2ZWxvcG1lbnQgbWlsZXN0b25lc1wiLFxyXG4gICAgXTtcclxuXHJcbiAgICB0aGlzLm1vYmlsZUZlYXR1cmVzID0gW1xyXG4gICAgICBcIlVubGltaXRlZCBPbi1kZW1hbmQgcGFyZW50aW5nIGNsYXNzZXNcIixcclxuICAgICAgXCJVbmxpbWl0ZWQgYWNjZXNzIHRvIGFuIEFJLXBvd2VyZWQgcGFyZW50aW5nIGV4cGVydFwiLFxyXG4gICAgICBcIlVubGltaXRlZCBEZXZlbG9wbWVudCBwcm9ncmFtIChwbGF5IGFjdGl2aXRpZXMpXCIsXHJcbiAgICAgIFwiRmFtaWx5IHNoYXJpbmcgIChTdWJzY3JpcHRpb24pXCIsXHJcbiAgICAgIFwiRGFpbHkgZmVlZCB3aXRoIGFydGljbGVzICsgdGlwc1wiLFxyXG4gICAgICBcIlByb2dyZXNzICsgZ3Jvd3RoIHJlcG9ydHNcIixcclxuICAgICAgXCJEZXZlbG9wbWVudCBtaWxlc3RvbmVzXCIsXHJcbiAgICBdO1xyXG4gICAgdGhpcy50b29sdGlwcyA9IFtcclxuICAgICAgXCJBY2Nlc3MgcmVjb3JkZWQgZXhwZXJ0LWxlZCBzZXNzaW9ucyBvbiB2YXJpb3VzIHBhcmVudGluZyB0b3BpY3NcIixcclxuICAgICAgXCJHZXQgYWR2aWNlIGFuZCBndWlkYW5jZSBmcm9tIG91ciBBSSBhc3Npc3RhbnRcIixcclxuICAgICAgXCJEYWlseSBjdXJhdGVkIHBsYXkgYWN0aXZpdGllcyB0byBzdXBwb3J0IHlvdXIgY2hpbGTigJlzIGRldmVsb3BtZW50XCIsXHJcbiAgICAgIFwiQWxsb3dzIHNoYXJpbmcgc3Vic2NyaXB0aW9uIGJlbmVmaXRzIHdpdGggZmFtaWx5IG1lbWJlcnNcIixcclxuICAgICAgXCJFbmFibGVzIHNoYXJpbmcgY2hpbGQgcHJvZmlsZXMgd2l0aCBjYXJlZ2l2ZXJzXCIsXHJcbiAgICAgIFwiUmVjZWl2ZSBhcnRpY2xlcyBhbmQgdGlwcyBkYWlseSBwZXJzb25hbGl6ZWQgZm9yIHlvdXIgY2hpbGRcIixcclxuICAgICAgXCJUcmFjayB5b3VyIGNoaWxk4oCZcyBncm93dGggYW5kIHByb2dyZXNzIG92ZXIgdGltZVwiLFxyXG4gICAgICBcIlZpZXcgYW5kIHRyYWNrIHlvdXIgY2hpbGTigJlzIGRldmVsb3BtZW50YWwgbWlsZXN0b25lc1wiLFxyXG4gICAgXTtcclxuXHJcbiAgICB0aGlzLnBsYW5zID0gW107XHJcbiAgICB0aGlzLmFjdGl2ZSA9IG51bGw7IC8vIHNuYXBzaG90IG9mIHVzZXIncyBhY3RpdmUgcGFja2FnZVxyXG4gICAgdGhpcy5iaWxsaW5nTW9kZUxvY2tlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5fcGxhbnNTaWcgPSBcIlwiO1xyXG4gICAgdGhpcy5pc1VzZXJSZWZlcnJlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5mZWF0dXJlcyA9IHRoaXMuX2NvbXB1dGVGZWF0dXJlcygpO1xyXG4gICAgLy8gb3B0aW9uYWwgYm9sZCBkZWZhdWx0cyAoY2FuIG92ZXJyaWRlIGZyb20gcGFyZW50KVxyXG4gICAgdGhpcy5ib2xkRGVza3RvcCA9IFswLCAxLCAyLCAzXTtcclxuICAgIHRoaXMuYm9sZE1vYmlsZSA9IFswLCAxLCAyLCAzXTtcclxuICAgIHRoaXMuaXNCMmJVc2VyID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBfaXNGZWF0dXJlQm9sZChpKSB7XHJcbiAgICBjb25zdCBhcnIgPSB0aGlzLmlzTW9iaWxlID8gdGhpcy5ib2xkTW9iaWxlIDogdGhpcy5ib2xkRGVza3RvcDtcclxuICAgIHJldHVybiBBcnJheS5pc0FycmF5KGFycikgJiYgYXJyLmluY2x1ZGVzKGkpO1xyXG4gIH1cclxuXHJcbiAgLy8gTWFrZSBzdXJlIHBsYW4ucGVya3MgZXhpc3RzIGFuZCBoYXMgYXQgbGVhc3QgTiBzbG90c1xyXG4gIF9lbnN1cmVQZXJrc0FycmF5KHBsYW4sIG1pbkxlbikge1xyXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHBsYW4ucGVya3MpKSBwbGFuLnBlcmtzID0gW107XHJcbiAgICBpZiAocGxhbi5wZXJrcy5sZW5ndGggPCBtaW5MZW4pIHtcclxuICAgICAgcGxhbi5wZXJrcyA9IHBsYW4ucGVya3MuY29uY2F0KFxyXG4gICAgICAgIEFycmF5KG1pbkxlbiAtIHBsYW4ucGVya3MubGVuZ3RoKS5maWxsKGZhbHNlKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHBsYW4ucGVya3M7XHJcbiAgfVxyXG5cclxuICAvLyBBcHBseSBURVhUX1BFUktTIG92ZXJyaWRlcyBieSBwbGFuLm5hbWVcclxuICBfYXBwbHlUZXh0UGVya3MocGxhbikge1xyXG4gICAgY29uc3QgbmFtZSA9IFN0cmluZyhwbGFuPy5uYW1lIHx8IFwiXCIpLnRvVXBwZXJDYXNlKCk7XHJcbiAgICBjb25zdCBtYXAgPSBURVhUX1BFUktTW25hbWVdO1xyXG4gICAgLy8gdXNlIHRoZSBtYXggbGlzdCAoZGVza3RvcCkgc28gd2UgbmV2ZXIgaW5kZXggb3V0IG9mIHJhbmdlXHJcbiAgICBjb25zdCBuZWVkZWQgPSB0aGlzLmRlc2t0b3BGZWF0dXJlcz8ubGVuZ3RoIHx8IDk7XHJcbiAgICB0aGlzLl9lbnN1cmVQZXJrc0FycmF5KHBsYW4sIG5lZWRlZCk7XHJcblxyXG4gICAgaWYgKCFtYXApIHJldHVybi
1BwbGFuOyAvLyBub3RoaW5nIHRvIGRvXHJcblxyXG4gICAgZm9yIChjb25zdCBbaWR4U3RyLCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMobWFwKSkge1xyXG4gICAgICBjb25zdCBpZHggPSBOdW1iZXIoaWR4U3RyKTtcclxuICAgICAgLy8gdmFsdWUgY2FuIGJlIFwiVW5saW1pdGVkXCIgb3IgeyB0ZXh0LCBiYWRnZSwgYm9sZCB9XHJcbiAgICAgIHBsYW4ucGVya3NbaWR4XSA9IHZhbHVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHBsYW47XHJcbiAgfVxyXG5cclxuICBfY29tcHV0ZUZlYXR1cmVzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNNb2JpbGUgPyB0aGlzLm1vYmlsZUZlYXR1cmVzIDogdGhpcy5kZXNrdG9wRmVhdHVyZXM7XHJcbiAgfVxyXG5cclxuICBzdGF0ZUNoYW5nZWQoc3RhdGUpIHtcclxuICAgIHRoaXMuY3VycmVudExhbmcgPSBzdGF0ZS5sYW5ndWFnZUZpbHRlciB8fCBbXCJlblwiXTtcclxuICAgIHRoaXMucmVxdWVzdFVwZGF0ZSgpO1xyXG4gIH1cclxuXHJcbiAgZXF1YWxpemVIZWFkZXJzKCkge1xyXG4gICAgaWYgKHRoaXMuaXNNb2JpbGUpIHJldHVybjsgLy8gbm90IG5lZWRlZCBpbiBtb2JpbGUgbW9kZVxyXG4gICAgY29uc3Qgcm9vdCA9IHRoaXMucmVuZGVyUm9vdDtcclxuICAgIGlmICghcm9vdCkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IHBsYW5IZWFkZXJzID0gWy4uLnJvb3QucXVlcnlTZWxlY3RvckFsbChcIi5wbGFuLWhlYWRlclwiKV07XHJcbiAgICBjb25zdCBmZWF0dXJlSGVhZGVyID0gcm9vdC5xdWVyeVNlbGVjdG9yKFwiLmZlYXR1cmUtbGlzdCAuYmlsbGluZy10b2dnbGVcIik7XHJcbiAgICBjb25zdCBhbGwgPSBmZWF0dXJlSGVhZGVyID8gW2ZlYXR1cmVIZWFkZXIsIC4uLnBsYW5IZWFkZXJzXSA6IHBsYW5IZWFkZXJzO1xyXG5cclxuICAgIGFsbC5mb3JFYWNoKChuKSA9PiAobi5zdHlsZS5oZWlnaHQgPSBcImF1dG9cIikpO1xyXG5cclxuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XHJcbiAgICAgIGxldCBtYXggPSAwO1xyXG4gICAgICBhbGwuZm9yRWFjaCgobikgPT4ge1xyXG4gICAgICAgIGNvbnN0IGggPSBuPy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQgfHwgMDtcclxuICAgICAgICBpZiAoaCA+IG1heCkgbWF4ID0gaDtcclxuICAgICAgfSk7XHJcbiAgICAgIGlmIChtYXggPiAwKSBhbGwuZm9yRWFjaCgobikgPT4gKG4uc3R5bGUuaGVpZ2h0ID0gYCR7TWF0aC5jZWlsKG1heCl9cHhgKSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIF9zZXRJc01vYmlsZSgpIHtcclxuICAgIGNvbnN0IG1vYmlsZSA9IGlzTW9iaWxlRGV2aWNlKCk7XHJcbiAgICBpZiAobW9iaWxlICE9PSB0aGlzLmlzTW9iaWxlKSB7XHJcbiAgICAgIHRoaXMuaXNNb2JpbGUgPSBtb2JpbGU7XHJcbiAgICAgIHRoaXMucmVxdWVzdFVwZGF0ZSgpO1xyXG4gICAgICB0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIGlmICghdGhpcy5pc01vYmlsZSkgdGhpcy5lcXVhbGl6ZUhlYWRlcnMoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmaXJzdFVwZGF0ZWQoKSB7XHJcbiAgICB0aGlzLl9zZXRJc01vYmlsZSgpO1xyXG4gICAgdGhpcy5fb25SZXNpemUgPSAoKSA9PiB0aGlzLl9zZXRJc01vYmlsZSgpO1xyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgdGhpcy5fb25SZXNpemUsIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcclxuICAgIC8vIGluaXRpYWwgcHVsbFxyXG4gICAgdGhpcy5fcHVsbFBhY2thZ2VzU25hcHNob3QoKTtcclxuXHJcbiAgICAvLyBDb2FsZXNjZSBzdG9yZSB1cGRhdGVzIGludG8gb25lIGNhbGwgcGVyIGZyYW1lXHJcbiAgICB0aGlzLl9vblN0b3JlQ2hhbmdlID0gKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5fcmFmKSBjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9yYWYpO1xyXG4gICAgICB0aGlzLl9yYWYgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX3JhZiA9IDA7XHJcbiAgICAgICAgdGhpcy5fcHVsbFBhY2thZ2VzU25hcHNob3QoKTtcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5fdW5zdWJTdG9yZSA9IHN0b3JlLnN1YnNjcmliZSh0aGlzLl9vblN0b3JlQ2hhbmdlKTtcclxuICAgIHRoaXMuZXF1YWxpemVIZWFkZXJzKCk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVkKGNoYW5nZWQpIHtcclxuICAgIGlmIChcclxuICAgICAgIXRoaXMuaXNNb2JpbGUgJiZcclxuICAgICAgKGNoYW5nZWQuaGFzKFwiYmlsbGluZ01vZGVcIikgfHxcclxuICAgICAgICBjaGFuZ2VkLmhhcyhcInBsYW5zXCIpIHx8XHJcbiAgICAgICAgY2hhbmdlZC5oYXMoXCJmZWF0dXJlc1wiKSlcclxuICAgICkge1xyXG4gICAgICB0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCkgPT4gdGhpcy5lcXVhbGl6ZUhlYWRlcnMoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNoYW5nZWQuaGFzKFwiaXNNb2JpbGVcIikpIHtcclxuICAgICAgdGhpcy5mZWF0dXJlcyA9IHRoaXMuX2NvbXB1dGVGZWF0dXJlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGlzY29ubmVjdGVkQ2FsbGJhY2soKSB7XHJcbiAgICBpZiAodGhpcy5fdW5zdWJTdG9yZSkge1xyXG4gICAgICB0aGlzLl91bnN1YlN0b3JlKCk7XHJcbiAgICAgIHRoaXMuX3Vuc3ViU3RvcmUgPSBudWxsO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuX3JhZikge1xyXG4gICAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9yYWYpO1xyXG4gICAgICB0aGlzLl9yYWYgPSAwO1xyXG4gICAgfVxyXG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcclxuICAgIGlmICh0aGlzLl9vblJlc2l6ZSkgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgdGhpcy5fb25SZXNpemUpO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICBfcHVsbFBhY2thZ2VzU25hcHNob3QoKSB7XHJcbiAgICBjb25zdCBzID0gc3RvcmUuZ2V0U3RhdGUoKTtcclxuICAgIGNvbnN0IHNsaWNlID0gcz8ucGFja2FnZXMgfHwge307XHJcbiAgICB0aGlzLl9wa2dBbGwgPSBzbGljZS5hbGwgfHwge307XHJcbiAgICB0aGlzLl9wa2dDdXN0b20gPSBzbGljZS5jdXN0b20gfHwgW107XHJcblxyXG4gICAgdGhpcy5pc0IyYlVzZXIgPSBpc0IyYlVzZXIoKTtcclxuXHJcbiAgICAvLyAtLS0gY2hvb3NlIHRoZSByaWdodCB1c2VyIH
1BhY2thZ2VzIGFycmF5IC0tLVxyXG4gICAgY29uc3QgdWlkID0gcz8udXNlckRhdGE/LnVzZXJfaWQ7XHJcbiAgICBjb25zdCBwa2dzRnJvbVNpbmd1bGFyID0gQXJyYXkuaXNBcnJheShzbGljZS51c2VyKSA/IHNsaWNlLnVzZXIgOiBudWxsOyAvLyBzb21lIGJ1aWxkcyB1c2UgLnVzZXJcclxuICAgIGNvbnN0IHBrZ3NGcm9tTWFwID1cclxuICAgICAgc2xpY2UudXNlcnMgJiYgdWlkICE9IG51bGwgJiYgQXJyYXkuaXNBcnJheShzbGljZS51c2Vyc1t1aWRdKVxyXG4gICAgICAgID8gc2xpY2UudXNlcnNbdWlkXVxyXG4gICAgICAgIDogbnVsbDsgLy8gb3RoZXJzIHVzZSAudXNlcnNbdXNlcl9pZF1cclxuICAgIHRoaXMuX3BrZ1VzZXIgPSBwa2dzRnJvbVNpbmd1bGFyIHx8IHBrZ3NGcm9tTWFwIHx8IFtdO1xyXG4gICAgdGhpcy5fbG9hZGVkID0gISFzbGljZS5sb2FkZWQ7XHJcblxyXG4gICAgLy8gaGVscGVyOiBzb3J0IGJ5IHBkYXRlL2RhdGUgZGVzYywgZmFsbGJhY2sgaWQgZGVzY1xyXG4gICAgY29uc3QgdG9UcyA9ICh4KSA9PiB7XHJcbiAgICAgIGNvbnN0IHMgPSB4Py5wZGF0ZSB8fCB4Py5kYXRlIHx8IFwiXCI7XHJcbiAgICAgIGNvbnN0IGlzbyA9IHMuaW5jbHVkZXMoXCJUXCIpID8gcyA6IHMucmVwbGFjZShcIiBcIiwgXCJUXCIpO1xyXG4gICAgICBjb25zdCB0ID0gRGF0ZS5wYXJzZShpc28pO1xyXG4gICAgICByZXR1cm4gTnVtYmVyLmlzTmFOKHQpID8gMCA6IHQ7XHJcbiAgICB9O1xyXG4gICAgY29uc3QgcGlja0xhdGVzdCA9IChhcnIpID0+XHJcbiAgICAgIEFycmF5LmlzQXJyYXkoYXJyKSAmJiBhcnIubGVuZ3RoXHJcbiAgICAgICAgPyBbLi4uYXJyXS5zb3J0KFxyXG4gICAgICAgICAgICAoYSwgYikgPT4gdG9UcyhiKSAtIHRvVHMoYSkgfHwgKGIuaWQgfHwgMCkgLSAoYS5pZCB8fCAwKVxyXG4gICAgICAgICAgKVswXVxyXG4gICAgICAgIDogbnVsbDtcclxuXHJcbiAgICAvLyAxKSB0cnkgcGFja2FnZXMgYXJyYXlcclxuICAgIGxldCBscCA9IHBpY2tMYXRlc3QodGhpcy5fcGtnVXNlcik7XHJcblxyXG4gICAgLy8gMikgZmFsbGJhY2sgdG8gdXNlckRhdGEubGF0ZXN0X3BhY2thZ2VfZGF0YSB1bnRpbCByZWR1Y2VyIGZpbGxzIHVzZXJzW11cclxuICAgIGlmICghbHAgJiYgcz8udXNlckRhdGE/LmxhdGVzdF9wYWNrYWdlX2RhdGEpIHtcclxuICAgICAgbHAgPSBzLnVzZXJEYXRhLmxhdGVzdF9wYWNrYWdlX2RhdGE7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5sYXRlc3RQYWNrYWdlID0gbHAgfHwgbnVsbDtcclxuXHJcbiAgICAvLyBvcHRpb25hbCBsZWdhY3kgYWxpYXMgdG8gYXZvaWQgY29uZnVzaW9uIGVsc2V3aGVyZVxyXG4gICAgdGhpcy51c2VyUGFja2FnZXMgPSB0aGlzLl9wa2dVc2VyO1xyXG4gICAgY29uc3QgcmF3UmVmZXJyZXIgPSBzPy51c2VyRGF0YT8ucmVmZXJyZXJfbmFtZSA/PyBcIlwiOyAvLyBBUEkgc2hhcGUgaW4gc2NyZWVuc2hvdFxyXG4gICAgdGhpcy5pc1VzZXJSZWZlcnJlZCA9IFN0cmluZyhyYXdSZWZlcnJlcikudHJpbSgpLmxlbmd0aCA+IDA7XHJcbiAgICB0aGlzLl9tYXliZUJ1aWxkUGxhbnNGcm9tUmVkdXgoKTtcclxuICB9XHJcblxyXG4gIF9tYXliZUJ1aWxkUGxhbnNGcm9tUmVkdXgoKSB7XHJcbiAgICBpZiAoIXRoaXMuX2xvYWRlZCkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IHByaWNlRnJvbUNhdGFsb2cgPSAodGllciwgY3ljbGUpID0+IHtcclxuICAgICAgY29uc3QgcGtnID1cclxuICAgICAgICB0aWVyID09PSBcIkJBU0lDXCJcclxuICAgICAgICAgID8gY3ljbGUgPT09IFwibW9udGhseVwiXHJcbiAgICAgICAgICAgID8gcGtncy5iYXNpY01vbnRobHlcclxuICAgICAgICAgICAgOiBwa2dzLmJhc2ljWWVhcmx5XHJcbiAgICAgICAgICA6IHRpZXIgPT09IFwiUFJFTUlVTVwiXHJcbiAgICAgICAgICA/IGN5Y2xlID09PSBcIm1vbnRobHlcIlxyXG4gICAgICAgICAgICA/IHBrZ3MucHJlbWl1bU1vbnRobHlcclxuICAgICAgICAgICAgOiBwa2dzLnByZW1pdW1ZZWFybHlcclxuICAgICAgICAgIDogbnVsbDtcclxuICAgICAgcmV0dXJuIF91c2RGcm9tUGtnKHBrZyk7IC8vIFwiJDE5Ljk5XCIsIFwiJDk1Ljk5XCIsIGV0Yy4sIG9yIFwiXCJcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgcHJlZmVyQ3ljbGVGb3JUaWVyID0gKHRpZXIpID0+IHtcclxuICAgICAgLy8gb25seSBmb3JjZSBhIGN5Y2xlIHdoZW4gdXBncmFkaW5nL2Rvd25ncmFkaW5nIGNyb3NzLXRpZXJcclxuICAgICAgaWYgKCFhY3RpdmU/LmhhcykgcmV0dXJuIG51bGw7XHJcbiAgICAgIGlmICh0aWVyID09PSBhY3RpdmUudGllcikgcmV0dXJuIG51bGw7IC8vIHNhbWUgdGllciDihpIgZm9sbG93IFVJIHRvZ2dsZVxyXG4gICAgICByZXR1cm4gYWN0aXZlLmN5Y2xlIHx8IG51bGw7IC8vIG1pcnJvciB1c2VyJ3MgY3VycmVudCBjeWNsZVxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBfcGFyc2VNb25leSA9IChtb25leSkgPT4ge1xyXG4gICAgICBjb25zdCBzID0gU3RyaW5nKG1vbmV5IHx8IFwiXCIpLnRyaW0oKTtcclxuICAgICAgY29uc3QgbSA9IC9eXFxzKihbXjAtOVxcLStdKikoLT9cXGR7MSwzfSg/OixcXGR7M30pKig/OlxcLlxcZHsxLDJ9KT8pLy5leGVjKHMpO1xyXG4gICAgICBpZiAoIW0pIHJldHVybiBudWxsO1xyXG4gICAgICBjb25zdCBjdXJyID0gbVsxXSB8fCBcIlwiO1xyXG4gICAgICBjb25zdCBudW0gPSBwYXJzZUZsb2F0KG1bMl0ucmVwbGFjZSgvLC9nLCBcIlwiKSk7XHJcbiAgICAgIHJldHVybiBpc0Zpbml0ZShudW0pID8geyBjdXJyLCBudW0gfSA6IG51bGw7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IF90b1Blck1vbnRoID0gKG1vbmV5KSA9PiB7XHJcbiAgICAgIGNvbnN0IHAgPSBfcGFyc2VNb25leShtb25leSk7XHJcbiAgICAgIGlmICghcCkgcmV0dXJuIFwiXCI7XHJcbiAgICAgIC8vIHRydW5jYXRlIHRvIDIgZGVjaW1hbHMgKG5vIHJvdW5kaW5nIHVwKVxyXG4gICAgICBjb25zdCBwZXIgPSBNYXRoLmZsb29yKChwLm51bSAvIDEyKSAqIDEwMCkgLyAxMDA7XHJcbiAgICAgIHJldHVybiBgJHtwLmN1cnJ9JHtwZXIudG9GaXhlZCgyKX1gO1xyXG4gICAgfTtcclxuXHJcbiAgICAvLyBVU0Qgc3RyaW5nIGZyb20gYSBwYWNrYWdlIG9iamVjdCByZXR1cm5lZCBieSBhbGxwYWNrYWdlc1xyXG4gICAgLy8gWW91ciBwYXlsb2FkIGhhcyBgcHJpY2U6IFwiJDMuOTlcImAgZXRjLiwgc28gdGhpcyBpcyBzaW1wbGUsXHJcbiAgICAvLyB3aXRoIGEgY291cGxlIG9mIHNhZmUgZmFsbGJhY2tzLlxyXG4gICAgY29uc3QgX3VzZEZyb21Qa2cgPSAocGtnKSA9PiB7XHJcbiAgICAgIGlmICghcGtnKSByZXR1cm4gXCJcIjtcclxuICAgICAgaWYgKHR5cGVvZiBwa2cucHJpY2UgPT09IFwic3RyaW5nXCIgJiYgL1xcZC8udGVzdChwa2cucHJpY2UpKVxyXG4gICAgICAgI
1HJldHVybiBwa2cucHJpY2UudHJpbSgpO1xyXG4gICAgICBpZiAodHlwZW9mIHBrZy51c2RfcHJpY2UgPT09IFwic3RyaW5nXCIgJiYgL1xcZC8udGVzdChwa2cudXNkX3ByaWNlKSlcclxuICAgICAgICByZXR1cm4gcGtnLnVzZF9wcmljZS50cmltKCk7XHJcbiAgICAgIGlmICh0eXBlb2YgcGtnLnByaWNlX3VzZCA9PT0gXCJzdHJpbmdcIiAmJiAvXFxkLy50ZXN0KHBrZy5wcmljZV91c2QpKVxyXG4gICAgICAgIHJldHVybiBwa2cucHJpY2VfdXNkLnRyaW0oKTtcclxuICAgICAgaWYgKHR5cGVvZiBwa2cucHJpY2UgPT09IFwibnVtYmVyXCIpIHJldHVybiBgJCR7cGtnLnByaWNlLnRvRml4ZWQoMil9YDtcclxuICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICB9O1xyXG5cclxuICAgIC8vIC0tLS0tLS0tLS0gQSkgbG9jayBhIGdvb2QgQkFTRSBzbyBwZXJrcy9ub3RlcyBuZXZlciB2YW5pc2ggLS0tLS0tLS0tLVxyXG4gICAgaWYgKCF0aGlzLl9iYXNlUGxhbnMpIHtcclxuICAgICAgY29uc3QgbG9va3NDb21wbGV0ZSA9XHJcbiAgICAgICAgQXJyYXkuaXNBcnJheSh0aGlzLnBsYW5zKSAmJlxyXG4gICAgICAgIHRoaXMucGxhbnMubGVuZ3RoID49IDMgJiZcclxuICAgICAgICB0aGlzLnBsYW5zLmV2ZXJ5KChwKSA9PiBBcnJheS5pc0FycmF5KHA/LnBlcmtzKSkgJiZcclxuICAgICAgICB0aGlzLnBsYW5zLnNvbWUoKHApID0+IHA/Lm1vbnRobHlOb3RlIHx8IHA/LnllYXJseU5vdGUpO1xyXG5cclxuICAgICAgaWYgKGxvb2tzQ29tcGxldGUpIHtcclxuICAgICAgICB0aGlzLl9iYXNlUGxhbnMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMucGxhbnMpKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBuID0gQXJyYXkuaXNBcnJheSh0aGlzLmZlYXR1cmVzKSA/IHRoaXMuZmVhdHVyZXMubGVuZ3RoIDogMTA7XHJcbiAgICAgICAgY29uc3QgcGVya0ZyZWUgPSBuZXcgQXJyYXkobikuZmlsbChmYWxzZSk7XHJcbiAgICAgICAgY29uc3QgcGVya0Jhc2ljID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogbiB9LCAoXywgaSkgPT4gaSA+PSAyKTtcclxuICAgICAgICBjb25zdCBwZXJrUHJlbWl1bSA9IG5ldyBBcnJheShuKS5maWxsKHRydWUpO1xyXG5cclxuICAgICAgICB0aGlzLl9iYXNlUGxhbnMgPSBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIG5hbWU6IFwiRlJFRVwiLFxyXG4gICAgICAgICAgICBtb250aGx5TGFiZWw6IFwiXCIsXHJcbiAgICAgICAgICAgIHllYXJseUxhYmVsOiBcIlwiLFxyXG4gICAgICAgICAgICBtb250aGx5UHJpY2U6IFwiXCIsXHJcbiAgICAgICAgICAgIHllYXJseVByaWNlOiBcIlwiLFxyXG4gICAgICAgICAgICBtb250aGx5Tm90ZTogXCJcIixcclxuICAgICAgICAgICAgeWVhcmx5Tm90ZTogXCJcIixcclxuICAgICAgICAgICAgcGVya3M6IHBlcmtGcmVlLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgbmFtZTogXCJCQVNJQ1wiLFxyXG4gICAgICAgICAgICBtb250aGx5TGFiZWw6IFwiTW9udGhseVwiLFxyXG4gICAgICAgICAgICB5ZWFybHlMYWJlbDogXCJZZWFybHlcIixcclxuICAgICAgICAgICAgbW9udGhseVByaWNlOiBcIlwiLFxyXG4gICAgICAgICAgICB5ZWFybHlQcmljZTogXCJcIixcclxuICAgICAgICAgICAgbW9udGhseU5vdGU6XHJcbiAgICAgICAgICAgICAgdGhpcy5pc1VzZXJSZWZlcnJlZCA9PSB0cnVlXHJcbiAgICAgICAgICAgICAgICA/IFwiR2V0IDYwJSBPZmYgd2hlbiBiaWxsZWQgWWVhcmx5XCJcclxuICAgICAgICAgICAgICAgIDogXCJHZXQgNTAlIE9mZiB3aGVuIGJpbGxlZCBZZWFybHlcIixcclxuICAgICAgICAgICAgeWVhcmx5Tm90ZTpcclxuICAgICAgICAgICAgICB0aGlzLmlzVXNlclJlZmVycmVkID09IHRydWVcclxuICAgICAgICAgICAgICAgID8gXCJTYXZpbmcgOiAkMzZcIlxyXG4gICAgICAgICAgICAgICAgOiBcIllvdSBzYXZlZCAkMzAgKEJpbGxlZCBZZWFybHkpXCIsXHJcbiAgICAgICAgICAgIHBlcmtzOiBwZXJrQmFzaWMsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBuYW1lOiBcIlBSRU1JVU1cIixcclxuICAgICAgICAgICAgbW9udGhseUxhYmVsOiBcIk1vbnRobHlcIixcclxuICAgICAgICAgICAgeWVhcmx5TGFiZWw6IFwiWWVhcmx5XCIsXHJcbiAgICAgICAgICAgIG1vbnRobHlQcmljZTogXCJcIixcclxuICAgICAgICAgICAgeWVhcmx5UHJpY2U6IFwiXCIsXHJcbiAgICAgICAgICAgIG1vbnRobHlOb3RlOlxyXG4gICAgICAgICAgICAgIHRoaXMuaXNVc2VyUmVmZXJyZWQgPT0gdHJ1ZVxyXG4gICAgICAgICAgICAgICAgPyBcIjYwJSBPZmYgd2hlbiBiaWxsZWQgWWVhcmx5XCJcclxuICAgICAgICAgICAgICAgIDogXCJHZXQgNTAlIE9mZiB3aGVuIGJpbGxlZCBZZWFybHlcIixcclxuICAgICAgICAgICAgeWVhcmx5Tm90ZTpcclxuICAgICAgICAgICAgICB0aGlzLmlzVXNlclJlZmVycmVkID09IHRydWVcclxuICAgICAgICAgICAgICAgID8gXCJTYXZpbmcgOiAkMTQ0XCJcclxuICAgICAgICAgICAgICAgIDogXCJZb3Ugc2F2ZWQgJDMwIChCaWxsZWQgWWVhcmx5KVwiLFxyXG4gICAgICAgICAgICBwZXJrczogcGVya1ByZW1pdW0sXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF07XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyAtLS0tLS0tLS0tIEIpIGNhdGFsb2cgaWRzIGZyb20geW91ciBjdXN0b20gYnVuZGxlIC0tLS0tLS0tLS1cclxuICAgIGNvbnN0IGMwID0gdGhpcy5fcGtnQ3VzdG9tPy5bMF0gfHwge307XHJcbiAgICAvLyBwYWNrYWdlX2lkIGNhbiBjb21lIGJhY2sgYXMgXCJcIiAobm8gcGxhbiBhdCB0aGlzIHRpZXIpIG9yLCBmb3JcclxuICAgIC8vIGNvbXBhbnkvQjJCIGJ1bmRsZXMsIGFzIFtdIGluc3RlYWQgb2YgXCJcIiDigJQgbm9ybWFsaXplIGJvdGggdG8gXCJcIi5cclxuICAgIGNvbnN0IHBrZ0lkID0gKHYpID0+ICh0eXBlb2YgdiA9PT0gXCJzdHJpbmdcIiA/IHYgOiBcIlwiKTtcclxuICAgIGNvbnN0IGlkcyA9IHtcclxuICAgICAgYmFzaWNNb250aGx5OiBwa2dJZChjMD8ucHJpY2VfMT8uWzBdPy5wYWNrYWdlX2lkKSxcclxuICAgICAgYmFzaWNZZWFybHk6IHBrZ0lkKGMwPy5wcmljZV8yPy5bMF0/LnBhY2thZ2VfaWQpL
1FxyXG4gICAgICBwcmVtaXVtTW9udGhseTogcGtnSWQoYzA/LnByaWNlXzQ/LlswXT8ucGFja2FnZV9pZCksXHJcbiAgICAgIHByZW1pdW1ZZWFybHk6IHBrZ0lkKGMwPy5wcmljZV81Py5bMF0/LnBhY2thZ2VfaWQpLFxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBwa2dzID0ge1xyXG4gICAgICBiYXNpY01vbnRobHk6IGlkcy5iYXNpY01vbnRobHkgPyB0aGlzLl9maW5kUGtnKGlkcy5iYXNpY01vbnRobHkpIDogbnVsbCxcclxuICAgICAgYmFzaWNZZWFybHk6IGlkcy5iYXNpY1llYXJseSA/IHRoaXMuX2ZpbmRQa2coaWRzLmJhc2ljWWVhcmx5KSA6IG51bGwsXHJcbiAgICAgIHByZW1pdW1Nb250aGx5OiBpZHMucHJlbWl1bU1vbnRobHlcclxuICAgICAgICA/IHRoaXMuX2ZpbmRQa2coaWRzLnByZW1pdW1Nb250aGx5KVxyXG4gICAgICAgIDogbnVsbCxcclxuICAgICAgcHJlbWl1bVllYXJseTogaWRzLnByZW1pdW1ZZWFybHlcclxuICAgICAgICA/IHRoaXMuX2ZpbmRQa2coaWRzLnByZW1pdW1ZZWFybHkpXHJcbiAgICAgICAgOiBudWxsLFxyXG4gICAgfTtcclxuXHJcbiAgICAvLyAtLS0tLS0tLS0tIEMpIGFjdGl2ZSBzdWJzY3JpcHRpb24gc25hcHNob3QgLS0tLS0tLS0tLVxyXG4gICAgY29uc3QgbHAgPSB0aGlzLmxhdGVzdFBhY2thZ2U7XHJcbiAgICBjb25zdCBoYXMgPSB0aGlzLl9nZXRIYXNVc2VyUGFja2FnZSgpO1xyXG4gICAgY29uc3QgYUlkID0gbHA/LnBhY2thZ2VfaWQgfHwgXCJcIjtcclxuICAgIGNvbnN0IHR4biA9IChscD8udHJhbnNhY3Rpb25fdHlwZSB8fCBcIlwiKS50cmltKCk7XHJcblxyXG4gICAgY29uc3QgYWN0aXZlID0ge1xyXG4gICAgICBoYXMsXHJcbiAgICAgIGlkOiBhSWQsXHJcbiAgICAgIHRpZXI6IGFJZCA/ICh0aGlzLl9pc1BsdXMoYUlkKSA/IFwiUFJFTUlVTVwiIDogXCJCQVNJQ1wiKSA6IFwiXCIsXHJcbiAgICAgIGN5Y2xlOiBhSWRcclxuICAgICAgICA/IHRoaXMuX2lzWWVhcmx5KGFJZClcclxuICAgICAgICAgID8gXCJ5ZWFybHlcIlxyXG4gICAgICAgICAgOiB0aGlzLl9pc01vbnRobHkoYUlkKVxyXG4gICAgICAgICAgPyBcIm1vbnRobHlcIlxyXG4gICAgICAgICAgOiBcIlwiXHJcbiAgICAgICAgOiBcIlwiLFxyXG4gICAgICBzb3VyY2U6IHRoaXMuX2lzQXBwU3RvcmUodHhuKSA/IFwiYXBwc3RvcmVcIiA6IFwid2ViXCIsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5hY3RpdmUgPSBhY3RpdmU7XHJcblxyXG4gICAgLy8gLS0tLS0tLS0tLSBEKSBDVEEgbG9naWMgLS0tLS0tLS0tLVxyXG4gICAgY29uc3QgY3RhRm9yID0gKHBsYW5OYW1lLCBtb2RlKSA9PiB7XHJcbiAgICAgIGlmIChwbGFuTmFtZSA9PT0gXCJGUkVFXCIpXHJcbiAgICAgICAgcmV0dXJuIGFjdGl2ZS5oYXNcclxuICAgICAgICAgID8geyBraW5kOiBcImVtcHR5XCIgfVxyXG4gICAgICAgICAgOiB7IGtpbmQ6IFwiYWN0aXZlXCIsIHRleHQ6IFwiQUNUSVZFIFBMQU5cIiB9O1xyXG5cclxuICAgICAgaWYgKCFhY3RpdmUuaGFzKVxyXG4gICAgICAgIHJldHVybiB0aGlzLmlzVXNlclJlZmVycmVkICYmIG1vZGUgPT09IFwieWVhcmx5XCJcclxuICAgICAgICAgID8geyBraW5kOiBcImFjdGlvblwiLCB0ZXh0OiBcIlJFREVFTSBPRkZFUlwiIH1cclxuICAgICAgICAgIDogeyBraW5kOiBcImFjdGlvblwiLCB0ZXh0OiBcIlNFTEVDVFwiIH07XHJcblxyXG4gICAgICBpZiAocGxhbk5hbWUgPT09IGFjdGl2ZS50aWVyICYmIG1vZGUgPT09IGFjdGl2ZS5jeWNsZSlcclxuICAgICAgICByZXR1cm4geyBraW5kOiBcImFjdGl2ZVwiLCB0ZXh0OiBcIkFDVElWRSBQTEFOXCIgfTtcclxuXHJcbiAgICAgIGlmIChhY3RpdmUuc291cmNlID09PSBcImFwcHN0b3JlXCIpIHtcclxuICAgICAgICBjb25zdCB0eHQgPVxyXG4gICAgICAgICAgdGhpcy5pc1VzZXJSZWZlcnJlZCAmJiBtb2RlID09PSBcInllYXJseVwiID8gXCJSRURFRU0gT0ZGRVJcIiA6IFwiU0VMRUNUXCI7XHJcbiAgICAgICAgcmV0dXJuIHsga2luZDogXCJhY3Rpb25cIiwgdGV4dDogdHh0IH07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IHRpZXJDaGFuZ2UgPVxyXG4gICAgICAgIHBsYW5OYW1lID09PSBhY3RpdmUudGllclxyXG4gICAgICAgICAgPyBcInNhbWVcIlxyXG4gICAgICAgICAgOiBwbGFuTmFtZSA9PT0gXCJQUkVNSVVNXCJcclxuICAgICAgICAgID8gXCJ1cGdyYWRlXCJcclxuICAgICAgICAgIDogXCJkb3duZ3JhZGVcIjtcclxuICAgICAgY29uc3QgY3ljbGVDaGFuZ2UgPVxyXG4gICAgICAgIG1vZGUgPT09IGFjdGl2ZS5jeWNsZVxyXG4gICAgICAgICAgPyBcInNhbWVcIlxyXG4gICAgICAgICAgOiBhY3RpdmUuY3ljbGUgPT09IFwibW9udGhseVwiICYmIG1vZGUgPT09IFwieWVhcmx5XCJcclxuICAgICAgICAgID8gXCJ1cGdyYWRlXCJcclxuICAgICAgICAgIDogXCJkb3duZ3JhZGVcIjtcclxuXHJcbiAgICAgIGlmICh0aWVyQ2hhbmdlID09PSBcInVwZ3JhZGVcIiB8fCBjeWNsZUNoYW5nZSA9PT0gXCJ1cGdyYWRlXCIpXHJcbiAgICAgICAgcmV0dXJuIHsga2luZDogXCJhY3Rpb25cIiwgdGV4dDogXCJVUEdSQURFXCIgfTtcclxuICAgICAgaWYgKHRpZXJDaGFuZ2UgPT09IFwiZG93bmdyYWRlXCIgfHwgY3ljbGVDaGFuZ2UgPT09IFwiZG93bmdyYWRlXCIpXHJcbiAgICAgICAgcmV0dXJuIHsga2luZDogXCJhY3Rpb25cIiwgdGV4dDogXCJET1dOR1JBREVcIiB9O1xyXG4gICAgICByZXR1cm4gdGhpcy5pc1VzZXJSZWZlcnJlZCAmJiBtb2RlID09PSBcInllYXJseVwiXHJcbiAgICAgICAgPyB7IGtpbmQ6IFwiYWN0aW9uXCIsIHRleHQ6IFwiUkVERUVNIE9GRkVSXCIgfVxyXG4gICAgICAgIDogeyBraW5kOiBcImFjdGlvblwiLCB0ZXh0OiBcIlNFTEVDVFwiIH07XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IGJhc2VCeU5hbWUgPSAobmFtZSkgPT5cclxuICAgICAgdGhpcy5fYmFzZVBsYW5zLmZpbmQoKHApID0+IHA/Lm5hbWUgPT09IG5hbWUpIHx8IHt9O1xyXG5cclxuICAgIC8vIC0tLS0tLS0tLS0gRSkgQnVpbGQgYSBwbGFuIGZyb20gQkFTRTsgb3ZlcnJpZGUgb25seSBhY3RpdmUgY3ljbGUgLS0tLS0tLS0tLVxyXG4gICAgY29uc3QgYnVpbGRQbGFuID0gKG5hbWUsIG1JZCwgeUlkKSA9PiB7XHJcbiAgICAgIGNvbnN0IGJhc2UgPSBiYXNlQnlOYW1lKG5hbWUpO1xyXG5cclxuICAgICAgLy8gVVNEIHByaWNlczogZnJvbSBiYXNlIGlmIHByZXNlbnQsIGVsc2UgZnJvbSBjYXRhbG9nIHBrZy5wcmljZVxyXG4gICAgICAvLyBjb25zdCBwcmljZXMgPSB7XHJcbiAgICAgIC8vICAgbW9udGhseTpcclxuICAgICAgLy8gICAgIGJhc2UubW9udGhseVByaWNlIHx8XHJcbiAgICAgIC8vICAgICAobmFtZSA9PT0gXCJCQVNJQ1wiXHJcbiAgICAgIC8vICAgICAgID8gX3VzZEZyb21Qa2cocGtncy5iYXNpY01vbnRobHkpXHJcbiAgICAgIC8vICAgICAgIDogbmFtZSA9PT0gXCJQUkVNSVVNXCJcclxuICAgICAgLy8gICAgICAgPyBfdXNkRnJvbVBrZyhwa2dzLnByZW1pdW1Nb250aGx5KVxyXG4gICAgICAvLyAgICAgICA6IFwiXCIpLFxyXG4gICAgICAvLyAgIHllYXJseTpcclxuICAgICAgLy8gICAgIGJhc2UueWVhcmx5UHJpY2UgfHxcclxuICAgICAgLy8gICAgIChuYW1lID09PSBcIkJBU0lDXCJcclxuICAgICAgLy8gICAgICAgPyBfdXNkRnJvbVBrZyhwa2dzLmJhc2ljWWVhcmx5KVxyXG4gICAgICAvLyAgICAgICA6IG5hbWUgPT09IFwiUFJFTUlVTVwiXHJcbiAgICAgIC8vICAgICAgID8gX3VzZEZyb21Qa2cocGtncy5wcmVtaXVtWWVhcmx5KVxyXG4gICAgICAvLyAgICAgICA6IFwiXCIpLFxyXG4gICAgICAvLyB9O1xyXG5cclxuICAgICAgY29uc3QgcHJpY2VzID0ge1xyXG4gICAgICAgIG1vbnRobHk6IHByaWNlRnJvbUNhdGFsb2cobmFtZSwgXCJtb250aGx5XCIpIHx8IGJhc2UubW9udGhseVByaWNlIHx8IFwiXCIsXHJcbiAgICAgICAgeWVhcmx5OiBwcmljZUZyb21DYXRhbG9nKG5hbWUsIFwieWVhcmx5XCIpIHx8IGJhc2UueWVhcmx5UHJpY2UgfHwgXCJcIixcclxuICAgICAgfTtcclxuXHJcbiAgICAgIGlmIChhY3RpdmUuaGFzICYmIGFjdGl2ZS50aWVyID09PSBuYW1lICYmIGFjdGl2ZS5jeWNsZSkge1xyXG4gICAgICAgIGNvbnN0IGFjdGl2ZVBrZ1ByaWNlID0gX3VzZEZyb21Qa2codGhpcy5fZmluZFBrZyhhY3RpdmUuaWQpKTtcclxuICAgICAgICBpZiAoYWN0aXZlUGtnUHJpY2UpIHByaWNlc1thY3RpdmUuY3ljbGVdID0gYWN0aXZlUGtnUHJpY2U7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IGlzQWN0aXZlWWVhcmx5ID1cclxuICAgICAgICBhY3RpdmUuaGFzICYmIGFjdGl2ZS50aWVyID09PSBuYW1lICYmIGFjdGl2ZS5jeWNsZSA9PT0gXCJ5ZWFybHlcIjtcclxuXHJcbiAgICAgIGNvbnN0IHBtID0gcHJpY2VzPy55ZWFybHkgPyBfdG9QZXJNb250aChwcmljZXMueWVhcmx5KSA6IFwiXCI7XHJcbiAgICAgIGNvbnN0IHN3aXRjaEtleSA9IHBtID8gYCR7cG19YCA6IFwiXCI7XHJcbiAgICAgIGNvbnN0IGxhYmVscyA9IHtcclxuICAgICAgICBtb250aGx5OiBiYXNlLm1vbnRobHlMYWJlbCA/PyBcIk1vbnRobHlcIixcclxuICAgICAgICB5ZWFybHk6IGJhc2UueWVhcmx5TGFiZWwgPz8gXCJZZWFybHlcIixcclxuICAgICAgfTtcclxuXHJcbiAgICAgIGNvbnN0IG5vdGVzID0ge1xyXG4gICAgICAgIG1vbnRobHk6IGJhc2UubW9udGhseU5vdGUgfHwgXCJcIixcclxuICAgICAgICB5ZWFybHk6IGJhc2UueWVhcmx5Tm90ZSB8fCBcIlwiLFxyXG4gICAgICB9O1xyXG5cclxuICAgICAgLy8gV2hhdCB3ZSBzaG93IG9uIHRoZSBCTFVFIGxpbmU6XHJcbiAgICAgIC8vIC0gTW9udGhseTogbW9udGhseSBVU0RcclxuICAgICAgLy8gLSBZZWFybHk6ICBwZXItbW9udGggdmlldyBvZiB0aGUgeWVhcmx5IFVTRCB0b3RhbFxyXG5cclxuICAgICAgLy8gY29uc3QgZGlzcGxheVByaWNlcyA9IHtcclxuICAgICAgLy8gICBtb250aGx5OiBwcmljZXMubW9udGhseVxyXG4gICAgICAvLyAgICAgPyBpc0FjdGl2ZVllY
1XJseVxyXG4gICAgICAvLyAgICAgICA/IF90b1Blck1vbnRoKHByaWNlcy5tb250aGx5KSAvLyBvbmx5IGFjdGl2ZS15ZWFybHkg4oaSIHBlci1tb250aFxyXG4gICAgICAvLyAgICAgICA6IHByaWNlcy5tb250aGx5XHJcbiAgICAgIC8vICAgICA6IHByaWNlcy5tb250aGx5LCAvLyBhbHdheXMgbW9udGhseSB0b3RhbFxyXG4gICAgICAvLyAgIHllYXJseTogcHJpY2VzLnllYXJseSA/IF90b1Blck1vbnRoKHByaWNlcy55ZWFybHkpIDogcHJpY2VzLnllYXJseSxcclxuICAgICAgLy8gfTtcclxuXHJcbiAgICAgIGNvbnN0IGRpc3BsYXlQcmljZXMgPSB7XHJcbiAgICAgICAgbW9udGhseTogcHJpY2VzLm1vbnRobHksXHJcbiAgICAgICAgeWVhcmx5OiBwcmljZXMueWVhcmx5ID8gX3RvUGVyTW9udGgocHJpY2VzLnllYXJseSkgOiBcIlwiLFxyXG4gICAgICB9O1xyXG5cclxuICAgICAgLy8gQWN0aXZlIHRpZXIgaXMgcGlubmVkIHRvIGl0cyByZWFsIGN5Y2xlOyBvdGhlcnMgZm9sbG93IHRoZSBVSSB0b2dnbGVcclxuICAgICAgY29uc3QgaXNBY3RpdmVUaWVyID0gYWN0aXZlLmhhcyAmJiBuYW1lID09PSBhY3RpdmUudGllcjtcclxuICAgICAgY29uc3QgZGlzcGxheU1vZGUgPVxyXG4gICAgICAgIGlzQWN0aXZlVGllciAmJiBhY3RpdmUuY3ljbGUgPyBhY3RpdmUuY3ljbGUgOiB1bmRlZmluZWQ7XHJcblxyXG4gICAgICBjb25zdCBwcmVmZXJyZWRTZWxlY3RDeWNsZSA9IHByZWZlckN5Y2xlRm9yVGllcihuYW1lKTtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICAuLi5iYXNlLFxyXG4gICAgICAgIG5hbWUsXHJcbiAgICAgICAgaWRzOiB7IG1vbnRobHk6IG1JZCwgeWVhcmx5OiB5SWQgfSxcclxuXHJcbiAgICAgICAgbGFiZWxzLFxyXG4gICAgICAgIHByaWNlcyxcclxuICAgICAgICBub3RlcyxcclxuICAgICAgICBkaXNwbGF5UHJpY2VzLFxyXG4gICAgICAgIGRpc3BsYXlNb2RlLFxyXG4gICAgICAgIGlzQWN0aXZlTW9udGhseTogaXNBY3RpdmVUaWVyICYmIGFjdGl2ZS5jeWNsZSA9PT0gXCJtb250aGx5XCIsXHJcbiAgICAgICAgaXNBY3RpdmVZZWFybHk6IGlzQWN0aXZlVGllciAmJiBhY3RpdmUuY3ljbGUgPT09IFwieWVhcmx5XCIsXHJcbiAgICAgICAgY3Rhczoge1xyXG4gICAgICAgICAgbW9udGhseTogY3RhRm9yKG5hbWUsIFwibW9udGhseVwiKSxcclxuICAgICAgICAgIHllYXJseTogY3RhRm9yKG5hbWUsIFwieWVhcmx5XCIpLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIC8vIGxlZ2FjeSBtaXJyb3JzXHJcbiAgICAgICAgbW9udGhseUxhYmVsOiBsYWJlbHMubW9udGhseSxcclxuICAgICAgICB5ZWFybHlMYWJlbDogbGFiZWxzLnllYXJseSxcclxuICAgICAgICBtb250aGx5UHJpY2U6IHByaWNlcy5tb250aGx5LFxyXG4gICAgICAgIHllYXJseVByaWNlOiBwcmljZXMueWVhcmx5LFxyXG4gICAgICAgIG1vbnRobHlOb3RlOiBub3Rlcy5tb250aGx5LFxyXG4gICAgICAgIHllYXJseU5vdGU6IG5vdGVzLnllYXJseSxcclxuXHJcbiAgICAgICAgLy8gcGVya3MgcHJlc2VydmVkXHJcbiAgICAgICAgcGVya3M6IEFycmF5LmlzQXJyYXkoYmFzZS5wZXJrcykgPyBiYXNlLnBlcmtzLnNsaWNlKCkgOiBiYXNlLnBlcmtzLFxyXG4gICAgICAgIGFjdGl2ZVBrZzogdGhpcy5hY3RpdmUsXHJcbiAgICAgICAgcHJlZmVycmVkU2VsZWN0Q3ljbGUsXHJcbiAgICAgICAgc3dpdGNoS2V5LFxyXG4gICAgICB9O1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBmcmVlQmFzZSA9IGJhc2VCeU5hbWUoXCJGUkVFXCIpIHx8IHsgbmFtZTogXCJGUkVFXCIgfTtcclxuICAgIGNvbnN0IGZyZWVQbGFuID0ge1xyXG4gICAgICAuLi5mcmVlQmFzZSxcclxuICAgICAgbmFtZTogXCJGUkVFXCIsXHJcbiAgICAgIGxhYmVsczoge1xyXG4gICAgICAgIG1vbnRobHk6IGZyZWVCYXNlLm1vbnRobHlMYWJlbCA/PyBcIlwiLFxyXG4gICAgICAgIHllYXJseTogZnJlZUJhc2UueWVhcmx5TGFiZWwgPz8gXCJcIixcclxuICAgICAgfSxcclxuICAgICAgcHJpY2VzOiB7XHJcbiAgICAgICAgbW9udGhseTogZnJlZUJhc2UubW9udGhseVByaWNlID8/IFwiXCIsXHJcbiAgICAgICAgeWVhcmx5OiBmcmVlQmFzZS55ZWFybHlQcmljZSA/PyBcIlwiLFxyXG4gICAgICB9LFxyXG4gICAgICBub3Rlczoge1xyXG4gICAgICAgIG1vbnRobHk6IGZyZWVCYXNlLm1vbnRobHlOb3RlID8/IFwiXCIsXHJcbiAgICAgICAgeWVhcmx5OiBmcmVlQmFzZS55ZWFybHlOb3RlID8/IFwiXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIGRpc3BsYXlQcmljZXM6IHsgbW9udGhseTogZnJlZUJhc2UubW9udGhseVByaWNlID8/IFwiXCIsIHllYXJseTogXCJcIiB9LFxyXG4gICAgICBkaXNwbGF5TW9kZTogdW5kZWZpbmVkLFxyXG4gICAgICBjdGFzOiB7XHJcbiAgICAgICAgbW9udGhseTogY3RhRm9yKFwiRlJFRVwiLCBcIm1vbnRobHlcIiksXHJcbiAgICAgICAgeWVhcmx5OiBjdGFGb3IoXCJGUkVFXCIsIFwieWVhcmx5XCIpLFxyXG4gICAgICB9LFxyXG4gICAgICBtb250aGx5TGFiZWw6IGZyZWVCYXNlLm1vbnRobHlMYWJlbCA/PyBcIlwiLFxyXG4gICAgICB5ZWFybHlMYWJlbDogZnJlZUJhc2UueWVhcmx5TGFiZWwgPz8gXCJcIixcclxuICAgICAgbW9udGhseVByaWNlOiBmcmVlQmFzZS5tb250aGx5UHJpY2UgPz8gXCJcIixcclxuICAgICAgeWVhcmx5UHJpY2U6IGZyZWVCYXNlLnllYXJseVByaWNlID8/IFwiXCIsXHJcbiAgICAgIG1vbnRobHlOb3RlOiBmcmVlQmFzZS5tb250aGx5Tm90ZSA/PyBcIlwiLFxyXG4gICAgICB5ZWFybHlOb3RlOiBmcmVlQmFzZS55ZWFybHlOb3RlID8/IFwiXCIsXHJcbiAgICAgIHBlcmtzOiBBcnJheS5pc0FycmF5KGZyZWVCYXNlLnBlcmtzKVxyXG4gICAgICAgID8gZnJlZUJhc2UucGVya3Muc2xpY2UoKVxyXG4gICAgICAgIDogZnJlZUJhc2UucGVya3MsXHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IGJhc2ljID0gYnVpbGRQbGFuKFwiQkFTSUNcIiwgaWRzLmJhc2ljTW9udGhseSwgaWRzLmJhc2ljWWVhcmx5KTtcclxuICAgIGNvbnN0IHByZW1pdW0gPSBidWlsZFBsYW4oXCJQUkVNSVVNXCIsIGlkcy5wcmVtaXVtTW9udGhseSwgaWRzLnByZW1pdW1ZZWFybHkpO1xyXG5cclxuICAgIHRoaXMuX2FwcGx5VGV4dFBlcmtzKGZyZWVQbGFuKTtcclxuICAgIHRoaXMuX2FwcGx5VGV4dFBlcmtzKGJhc2ljKTtcclxuICAgIHRoaXMuX2FwcGx5VGV4dFBlcmtzKHByZW1pdW0pO1xyXG5cclxuICAgIGNvbnN0IHJlc29sdmVkSWRzID0gT2JqZWN0LnZhbHVlcyhpZHMpLmZpbHRlcihCb29sZWFuKTtcclxuICAgIGNvbnN0IGhhc0Jhc2ljSWQgPSByZXNvbHZlZElkcy5zb21lKChpZCkgPT4gIXRoaXMuX2lzUGx1cyhpZCkpO1xyXG4gICAgY29uc3QgaGFzUHJlbWl1bUlkID0gcmVzb2x2ZWRJZHMuc29tZSgoaWQpID0+IHRoaXMuX2lzUGx1cyhpZCkpO1xyXG5cclxuICAgIGNvbnN0IHRpZXJQbGFucyA9IFtoYXNCYXNpY0lkID8gYmFzaWMgOiBudWxsLCBoYXNQcmVtaXVtSWQgPyBwcmVtaXVtIDogbnVsbF0uZmlsdGVyKFxyXG4gICAgICBCb29sZWFuXHJcbiAgICApO
11xyXG5cclxuICAgIHRoaXMucGxhbnMgPSB0aGlzLmlzVXNlclJlZmVycmVkXHJcbiAgICAgID8gdGllclBsYW5zXHJcbiAgICAgIDogW2ZyZWVQbGFuLCAuLi50aWVyUGxhbnNdO1xyXG5cclxuICAgIC8vIExvY2sgdG9nZ2xlIGZvciBhcHAtc3RvcmUgc3Vic1xyXG4gICAgdGhpcy5iaWxsaW5nTW9kZUxvY2tlZCA9IGFjdGl2ZS5zb3VyY2UgPT09IFwiYXBwc3RvcmVcIjtcclxuXHJcbiAgICB0aGlzLnJlcXVlc3RVcGRhdGUoKTtcclxuICB9XHJcblxyXG4gIC8vIE5vcm1hbGl6ZSBhbnkgcGVyayBpbnRvIGEgY29uc2lzdGVudCBzaGFwZVxyXG4gIF9jb2VyY2VQZXJrVmFsdWUodikge1xyXG4gICAgaWYgKHYgPT09IHRydWUgfHwgdiA9PT0gZmFsc2UpIHJldHVybiB7IGtpbmQ6IFwiaWNvblwiLCBvbjogdiB9O1xyXG4gICAgaWYgKHR5cGVvZiB2ID09PSBcInN0cmluZ1wiKVxyXG4gICAgICByZXR1cm4geyBraW5kOiBcInRleHRcIiwgdGV4dDogdiwgYmFkZ2U6IGZhbHNlLCBib2xkOiBmYWxzZSB9O1xyXG4gICAgaWYgKHYgJiYgdHlwZW9mIHYgPT09IFwib2JqZWN0XCIgJiYgXCJ0ZXh0XCIgaW4gdikge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGtpbmQ6IFwidGV4dFwiLFxyXG4gICAgICAgIHRleHQ6IFN0cmluZyh2LnRleHQpLFxyXG4gICAgICAgIGJhZGdlOiAhIXYuYmFkZ2UsXHJcbiAgICAgICAgYm9sZDogISF2LmJvbGQsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4geyBraW5kOiBcImljb25cIiwgb246ICEhdiB9O1xyXG4gIH1cclxuXHJcbiAgX3JlbmRlclBlcmtDZWxsKHYpIHtcclxuICAgIGNvbnN0IHAgPSB0aGlzLl9jb2VyY2VQZXJrVmFsdWUodik7XHJcblxyXG4gICAgaWYgKHAua2luZCA9PT0gXCJ0ZXh0XCIpIHtcclxuICAgICAgLy8gcC50ZXh0IHNob3VsZCBiZSBhIGtub3duIGxvY2FsaXphdGlvbiBrZXkgaWYgeW914oCZcmUga2V5aW5nLFxyXG4gICAgICAvLyBvciB0aGUgcHJlY29tcHV0ZWQgbG9jYWxpemVkIHN0cmluZyBpZiBub3QgdXNpbmcga2V5cy5cclxuICAgICAgcmV0dXJuIGh0bWxgXHJcbiAgICAgICAgPHNwYW5cclxuICAgICAgICAgIGNsYXNzPVwicGVyay10ZXh0ICR7cC5iYWRnZSA/IFwiYmFkZ2VcIiA6IFwiXCJ9ICR7cC5ib2xkID8gXCJib2xkXCIgOiBcIlwifVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGxvY2FsLWVsZW1cclxuICAgICAgICAgICAgbG9jYWxLZXk9XCIke3AudGV4dH1cIlxyXG4gICAgICAgICAgICBsb2NhbExhbmc9XCIke3RoaXMuY3VycmVudExhbmd9XCJcclxuICAgICAgICAgID48L2xvY2FsLWVsZW0+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICBgO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBodG1sYFxyXG4gICAgICA8c3BhbiBjbGFzcz1cInBlcmstY2hlY2tcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJjb250YWluZXItY2hlY2tib3ggcmVhZG9ubHlcIj5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiA/Y2hlY2tlZD0ke3Aub259IGRpc2FibGVkIC8+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoZWNrbWFya1wiPjwvc3Bhbj5cclxuICAgICAgICA8L2xhYmVsPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICBgO1xyXG4gIH1cclxuXHJcbiAgX3BhcnNlVVNEKHMpIHtcclxuICAgIGNvbnN0IG4gPSBOdW1iZXIoU3RyaW5nKHMgfHwgXCJcIikucmVwbGFjZSgvW15cXGQuXS9nLCBcIlwiKSk7XHJcbiAgICByZXR1cm4gTnVtYmVyLmlzRmluaXRlKG4pID8gbiA6IDA7XHJcbiAgfVxyXG5cclxuICBfdEh0bWwoa2V5LCBmYikge1xyXG4gICAgY29uc3QgbGFuZyA9XHJcbiAgICAgIHR5cGVvZiB0aGlzLmN1cnJlbnRMYW5nID09PSBcInN0cmluZ1wiXHJcbiAgICAgICAgPyB0aGlzLmN1cnJlbnRMYW5nXHJcbiAgICAgICAgOiB0aGlzLmN1cnJlbnRMYW5nPy5bMF0gfHwgXCJlblwiO1xyXG4gICAgcmV0dXJuIGh0bWxgPGxvY2FsLWVsZW1cclxuICAgICAgbG9jYWxLZXk9XCIke2tleX1cIlxyXG4gICAgICBmYWxsYmFjaz1cIiR7ZmJ9XCJcclxuICAgICAgbG9jYWxMYW5nPVwiJHtsYW5nfVwiXHJcbiAgICA+PC9sb2NhbC1lbGVtPmA7XHJcbiAgfVxyXG5cclxuICBfZmxvb3JUb0ZpeGVkKG4sIHBsYWNlcyA9IDIpIHtcclxuICAgIGNvbnN0IHAgPSBNYXRoLnBvdygxMCwgcGxhY2VzKTtcclxuICAgIGNvbnN0IGZsb29yZWQgPSBNYXRoLmZsb29yKG4gKiBwKSAvIHA7XHJcbiAgICByZXR1cm4gZmxvb3JlZC50b0ZpeGVkKHBsYWNlcyk7XHJcbiAgfVxyXG5cclxuICBfdG9Nb250aGx5TGFiZWwocHJpY2VVU0RTdHIpIHtcclxuICAgIGNvbnN0IHYgPSB0aGlzLl9wYXJzZVVTRChwcmljZVVTRFN0cik7XHJcbiAgICBpZiAoIXYpIHJldHVybiBcIlVuYXZhaWxhYmxlXCI7XHJcbiAgICByZXR1cm4gYCQke3YudG9GaXhlZCgyKX0vTW9udGhseWA7XHJcbiAgfVxyXG5cclxuICBfeWVhcmx5VG9QZXJNb250aExhYmVsKHllYXJseVByaWNlVVNEU3RyKSB7XHJcbiAgICBjb25zdCB0b3RhbCA9IHRoaXMuX3BhcnNlVVNEKHllYXJseVByaWNlVVNEU3RyKTtcclxuICAgIGlmICghdG90YWwpIHJldHVybiBcIlVuYXZhaWxhYmxlXCI7XHJcbiAgICBjb25zdCBwZXJNb250aCA9IHRvdGFsIC8gMTI7XHJcbiAgICByZXR1cm4gYCQke3RoaXMuX2Zsb29yVG9GaXhlZChwZXJNb250aCwgMil9L01vbnRobHlgO1xyXG4gIH1cclxuXHJcbiAgX2xvY2FsU3VmZml4KHBrZykge1xyXG4gICAgY29uc3QgY29kZSA9IHBrZz8ubG9jYWxfY3VycmVuY3lfY29kZTtcclxuICAgIGlmICghY29kZSB8fCBjb2RlLnRvVXBwZXJDYXNlKCkgPT09IFwiVVNEXCIpIHJldHVybiBcIlwiO1xyXG5cclxuICAgIGNvbnN0IHJhdyA9XHJcbiAgICAgIHBrZy5sb2NhbF9tb250aGx5X3ByaWNlID8/XHJcbiAgICAgIHBrZy5sb2NhbF9wcmljZV9tb250aGx5ID8/XHJcbiAgICAgIHBrZy5sb2NhbF9wcmljZSA/P1xyXG4gICAgICBcIlwiO1xyXG5cclxuXHJcbiAgICBpZiAoIXJhdykgcmV0dXJuIFwiXCI7XHJcblxyXG4gICAgLy8gZXh0cmFjdCBudW1lcmljIHBhcnQgYW5kIHJvdW5kIHRvIGFuIGludGVnZXJcclxuICAgIC8vIGUuZy4gXCIyMTkuMTEgSU5SXCIgLT4gXCIyMTkgSU5SXCJcclxuICAgIGNvbnN0IG0gPSBTdHJpbmcocmF3KS5tYXRjaCgvKC0/XFxkW1xcZCxcXC5dKikvKTtcclxuICAgIGxldCBzaG93biA9IFN0cmluZyhyYXcpO1xyXG4gICAgaWYgKG0pIHtcclxuICAgICAgY29uc3QgbiA9IHBhcnNlRmxvYXQobVsxXS5yZXBsYWNlKC8sL2csIFwiXCIpKTtcclxuICAgICAgaWYgKGlzRmluaXRlKG4pKSB7XHJcbiAgICAgICAgY29uc3Qgcm91bmRlZCA9IE1hdGgucm91bmQobik7IC8vIDEyNS42ID0+IDEyNlxyXG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZEludCA9IHJvdW5kZWQudG9Mb2NhbGVTdHJpbmcoKTtcclxuICAgICAgICBzaG93biA9IHNob3duLnJlcGxhY2UobVsxXSwgZm9ybWF0dGVkSW50KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybi
1BodG1sYCggJHt0aGlzLl90SHRtbChcIkFwcHJveFwiLCBcIkFwcHJveC5cIil9ICR7c2hvd259ICR7Y29kZX0gK1xyXG4gICAgJHt0aGlzLl90SHRtbChcInRheGVzXCIsIFwidGF4ZXNcIil9IClgO1xyXG4gIH1cclxuXHJcbiAgX2ZpbmRQa2coaWQpIHtcclxuICAgIHJldHVybiBpZCA/IHRoaXMuX3BrZ0FsbD8uW2lkXSB8fCBudWxsIDogbnVsbDtcclxuICB9XHJcblxyXG4gIF9zdHJpcFByZWZpeChpZCA9IFwiXCIpIHtcclxuICAgIHJldHVybiBpZC5yZXBsYWNlKC9eY29tXFwuKGJhYnlzcGFya3NcXC5iYWJ5c3BhcmtzfGJzXFwuYnMpXFwuLywgXCJcIik7XHJcbiAgfVxyXG5cclxuICBfZm9ybWF0UHJpY2VMYWJlbChsYWJlbCkge1xyXG4gICAgaWYgKCFsYWJlbCB8fCB0eXBlb2YgbGFiZWwgIT09IFwic3RyaW5nXCIpIHJldHVybiBsYWJlbDtcclxuICAgIGNvbnN0IHRyaW1tZWQgPSBsYWJlbC50cmltKCk7XHJcblxyXG4gICAgaWYgKC9eYWx3YXlzXFxzK2ZyZWUkL2kudGVzdCh0cmltbWVkKSlcclxuICAgICAgcmV0dXJuIHRoaXMuX3RIdG1sKFwiQWx3YXlzIEZyZWVcIiwgXCJBbHdheXMgRnJlZVwiKTtcclxuICAgIGlmICgvXnVuYXZhaWxhYmxlJC9pLnRlc3QodHJpbW1lZCkpXHJcbiAgICAgIHJldHVybiB0aGlzLl90SHRtbChcIlVuYXZhaWxhYmxlXCIsIFwiVW5hdmFpbGFibGVcIik7XHJcblxyXG4gICAgLy8gXCIkMy45OS9Nb250aGx5XCIgb3IgXCLigrkxMTkvWWVhcmx5XCJcclxuICAgIGNvbnN0IG0gPVxyXG4gICAgICAvXlxccyooW14wLTlcXC0rXSopKC0/XFxkezEsM30oPzosXFxkezN9KSopKD86XFwuKFxcZHsxLDJ9KSk/XFwvKFtBLVphLXpdKylcXHMqJC8uZXhlYyhcclxuICAgICAgICB0cmltbWVkXHJcbiAgICAgICk7XHJcbiAgICBpZiAoIW0pIHJldHVybiBsYWJlbDtcclxuXHJcbiAgICBjb25zdCBbLCBjdXJyLCBtYWpvciwgY2VudHMsIHBlcmlvZF0gPSBtO1xyXG4gICAgcmV0dXJuIGh0bWxgJHtjdXJyfSR7bWFqb3J9JHtjZW50c1xyXG4gICAgICA/IGh0bWxgPHN1cD4ke2NlbnRzfTwvc3VwPmBcclxuICAgICAgOiBcIlwifS8ke3RoaXMuX3RIdG1sKHBlcmlvZCwgcGVyaW9kKX1gO1xyXG4gIH1cclxuXHJcbiAgLy8gbWFwIHBsYW4gKyBiaWxsaW5nIG1vZGUgLT4gdGhlIGxlZ2FjeSBrZXkgcHJlZml4XHJcbiAgX2dldEtleUZvcihwbGFuTmFtZSwgYmlsbGluZ01vZGUpIHtcclxuICAgIGlmIChwbGFuTmFtZSA9PT0gXCJGUkVFXCIpIHJldHVybiBcIlwiOyAvLyBmcmVlIGhhZCBubyB2YWx1ZSBpbiBsZWdhY3lcclxuICAgIGlmIChwbGFuTmFtZSA9PT0gXCJCQVNJQ1wiKVxyXG4gICAgICByZXR1cm4gYmlsbGluZ01vZGUgPT09IFwieWVhcmx5XCIgPyBcImJhc2ljLXllYXJseVwiIDogXCJiYXNpYy1tb250aGx5XCI7XHJcbiAgICBpZiAocGxhbk5hbWUgPT09IFwiUFJFTUlVTVwiKVxyXG4gICAgICByZXR1cm4gYmlsbGluZ01vZGUgPT09IFwieWVhcmx5XCIgPyBcInByZW1pdW0teWVhcmx5XCIgOiBcInByZW1pdW0tbW9udGhseVwiO1xyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICAvLyBwaWNrIHRoZSBwbGFuIGlkIGZvciBjdXJyZW50IGJpbGxpbmcgbW9kZSAoXCJpZHNcIiB3ZXJlIHNldCBpbiBTdGVwIDIpXHJcbiAgX2dldElkRm9yKHBsYW4sIGJpbGxpbmdNb2RlKSB7XHJcbiAgICBpZiAoIXBsYW4/LmlkcykgcmV0dXJuIFwiXCI7XHJcbiAgICByZXR1cm4gYmlsbGluZ01vZGUgPT09IFwieWVhcmx5XCJcclxuICAgICAgPyBwbGFuLmlkcy55ZWFybHkgfHwgXCJcIlxyXG4gICAgICA6IHBsYW4uaWRzLm1vbnRobHkgfHwgXCJcIjtcclxuICB9XHJcblxyXG4gIC8vIGxlZ2FjeSB2YWx1ZTogYCR7a2V5fS4ke2lkfWAgKGUuZy4sIFwiYmFzaWMteWVhcmx5LmNvbS5icy5icy50aWVyMV8xMl9tb250aFwiKVxyXG4gIC8vIF9idWlsZExlZ2FjeVZhbHVlKHBsYW4sIGJpbGxpbmdNb2RlKSB7XHJcbiAgLy8gICBjb25zdCBrZXkgPSB0aGlzLl9nZXRLZXlGb3IocGxhbj8ubmFtZSwgYmlsbGluZ01vZGUpO1xyXG4gIC8vICAgY29uc3QgaWQgPSB0aGlzLl9nZXRJZEZvcihwbGFuLCBiaWxsaW5nTW9kZSk7XHJcbiAgLy8gICBjb25zdCBzaG9ydCA9IHRoaXMuX3N0cmlwUHJlZml4KGlkKTsgLy8gPC0tIG5vdGUgdGhlIGxlYWRpbmcgdW5kZXJzY29yZSAmIHRoaXMuXHJcbiAgLy8gICByZXR1cm4ga2V5ICYmIHNob3J0ID8gYCR7a2V5fS4ke3Nob3J0fWAgOiBcIlwiO1xyXG4gIC8vIH1cclxuXHJcbiAgX2J1aWxkTGVnYWN5VmFsdWUocGxhbiwgYmlsbGluZ01vZGUpIHtcclxuICAgIC8vIFByZWZlciBleHBsaWNpdCBpZHM7IG5ldmVyIGNyb3NzLWN5Y2xlIGZhbGxiYWNrIGhlcmVcclxuICAgIGNvbnN0IGtleSA9IHRoaXMuX2dldEtleUZvcihwbGFuPy5uYW1lLCBiaWxsaW5nTW9kZSk7XHJcbiAgICBsZXQgaWQgPSBcIlwiO1xyXG4gICAgaWYgKGJpbGxpbmdNb2RlID09PSBcInllYXJseVwiKSBpZCA9IHBsYW4/Lmlkcz8ueWVhcmx5IHx8IFwiXCI7XHJcbiAgICBlbHNlIGlkID0gcGxhbj8uaWRzPy5tb250aGx5IHx8IFwiXCI7XHJcblxyXG4gICAgcmV0dXJuIGtleSAmJiBpZCA/IGAke2tleX0uJHt0aGlzLl9zdHJpcFByZWZpeChpZCl9YCA6IFwiXCI7XHJcbiAgfVxyXG5cclxuICAvLyBpbmNsdWRlIG1ldGEgZnJvbSBsYXRlc3QgdHJhbnNhY3Rpb24gKG9ubHkgZm9yIHdlYi0qIHBlciBsZWdhY3kpXHJcbiAgX2dldExhdGVzdFR4bk1ldGEoKSB7XHJcbiAgICBjb25zdCB0ID0gdGhpcy5sYXRlc3RQYWNrYWdlPy50cmFuc2FjdGlvbl90eXBlIHx8IFwiXCI7XHJcbiAgICBjb25zdCBpc1dlYiA9IC93ZWItLy50ZXN0KHQpO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdHlwZTogaXNXZWIgPyB0IDogXCJcIixcclxuICAgICAgaWQ6IGlzV2ViID8gdGhpcy5sYXRlc3RQYWNrYWdlPy50cmFuc2FjdGlvbl9pZCB8fCBcIlwiIDogXCJcIixcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvLyBjZW50cmFsIGNsaWNrIGhhbmRsZXIgdGhhdCBjYWxscyB5b3VyIGV4aXN0aW5nIGdsb2JhbCBmdW5jdGlvblxyXG4gIF9vblNlbGVjdFBsYW4ocGxhbikge1xyXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLl9idWlsZExlZ2FjeVZhbHVlKHBsYW4sIHRoaXMuYmlsbGluZ01vZGUpO1xyXG4gICAgY29uc3QgeyB0eXBlLCBpZCB9ID0gdGhpcy5fZ2V0TGF0ZXN0VHhuTWV0YSgpO1xyXG5cclxuICAgIC8vIEJ1aWxkIGEgdGVtcG9yYXJ5IG
1VsZW1lbnQgdGhhdCBsb29rcyBsaWtlIHRoZSBvbGQgYnV0dG9uXHJcbiAgICBjb25zdCBidG4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiYnV0dG9uXCIpO1xyXG4gICAgaWYgKHZhbHVlKSBidG4udmFsdWUgPSB2YWx1ZTsgLy8galF1ZXJ5IC52YWwoKSByZWFkcyB0aGlzXHJcbiAgICBpZiAoaWQpIGJ0bi5kYXRhc2V0LmlkID0gaWQ7IC8vICQoZWwpLmRhdGEoXCJpZFwiKVxyXG4gICAgaWYgKHR5cGUpIGJ0bi5kYXRhc2V0LnR5cGUgPSB0eXBlOyAvLyAkKGVsKS5kYXRhKFwidHlwZVwiKVxyXG5cclxuICAgIGlmICh0eXBlb2Ygd2luZG93LnJlbmRlclNlbGVjdGVkU3Vic2NyaXB0aW9uID09PSBcImZ1bmN0aW9uXCIpIHtcclxuICAgICAgd2luZG93LnJlbmRlclNlbGVjdGVkU3Vic2NyaXB0aW9uKGJ0biwge1xyXG4gICAgICAgIHVzZXJJZDogdGhpcy51c2VyX2lkLFxyXG4gICAgICAgIGlzVXNlclJlZmVycmVkOiAhIShcclxuICAgICAgICAgIHRoaXMudXNlckRhdGE/LmlzVXNlclJlZmVycmVkID8/IHRoaXMudXNlckRhdGE/LmlzX3VzZXJfcmVmZXJyZWRcclxuICAgICAgICApLFxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnNvbGUud2FybihcInJlbmRlclNlbGVjdGVkU3Vic2NyaXB0aW9uKCkgaXMgbm90IGRlZmluZWQgb24gd2luZG93XCIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgX2VtaXRMZWdhY3lDbGljayA9IChlKSA9PiB7XHJcbiAgICBjb25zdCBlbCA9IGUuY3VycmVudFRhcmdldDsgLy8gdGhpcyA8YnV0dG9uPiB3aXRoIHZhbHVlL2RhdGEtKlxyXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cucmVuZGVyU2VsZWN0ZWRTdWJzY3JpcHRpb24gPT09IFwiZnVuY3Rpb25cIikge1xyXG4gICAgICB3aW5kb3cucmVuZGVyU2VsZWN0ZWRTdWJzY3JpcHRpb24oZWwpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc29sZS5lcnJvcihcInJlbmRlclNlbGVjdGVkU3Vic2NyaXB0aW9uIGlzIG5vdCBvbiB3aW5kb3dcIik7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgLy8gT2xkLWJlaGF2aW9yOiBhbnkgcmVjb3JkIG1lYW5zIFwiaGFzIGEgcGFja2FnZVwiXHJcbiAgX2dldEhhc1VzZXJQYWNrYWdlKCkge1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5fcGtnVXNlcikgJiYgdGhpcy5fcGtnVXNlci5sZW5ndGggPiAwKSByZXR1cm4gdHJ1ZTtcclxuICAgIC8vIGxlZ2FjeSBmYWxsYmFjazogaWYgcmVkdWNlciBub3QgcmVhZHksIGp1c3Qgc2VlaW5nIGEgbGF0ZXN0IHBhY2thZ2UgaWQgY291bnRzXHJcbiAgICByZXR1cm4gISEodGhpcy5sYXRlc3RQYWNrYWdlICYmIHRoaXMubGF0ZXN0UGFja2FnZS5wYWNrYWdlX2lkKTtcclxuICB9XHJcblxyXG4gIF9pc0FwcFN0b3JlTG9jaygpIHtcclxuICAgIGNvbnN0IHQgPSB0aGlzLmxhdGVzdFBhY2thZ2U/LnRyYW5zYWN0aW9uX3R5cGUgfHwgXCJcIjtcclxuICAgIHJldHVybiAvYW5kcm9pZC1wbGF5c3RvcmV8aW9zLWFwcHN0b3JlL2kudGVzdCh0LnRyaW0oKSk7XHJcbiAgfVxyXG5cclxuICBfc2hvdWxkU2hvd0JpbGxpbmdUb2dnbGUoKSB7XHJcbiAgICBjb25zdCBoYXNQa2cgPSB0aGlzLl9nZXRIYXNVc2VyUGFja2FnZSgpO1xyXG4gICAgcmV0dXJuICFoYXNQa2cgfHwgIXRoaXMubGF0ZXN0UGFja2FnZSB8fCB0aGlzLl9pc0FwcFN0b3JlTG9jaygpO1xyXG4gIH1cclxuXHJcbiAgX2lzUGx1cyhpZCkge1xyXG4gICAgcmV0dXJuIC9wbHVzfHByZW1pdW18cHJpY2VfNHxwcmljZV81L2kudGVzdChTdHJpbmcoaWQpKTtcclxuICB9XHJcbiAgX2lzWWVhcmx5KGlkKSB7XHJcbiAgICBjb25zdCBzID0gU3RyaW5nKGlkIHx8IFwiXCIpO1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgLyh5ZWFyfHllYXJseXxhbm51YWx8cHJpY2VfMnxwcmljZV81KS9pLnRlc3QocykgfHxcclxuICAgICAgLyg/Ol58W18uLV0pMTJfbW9udGgoPzpbXy4tXXwkKS9pLnRlc3QocylcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBfaXNNb250aGx5KGlkKSB7XHJcbiAgICBjb25zdCBzID0gU3RyaW5nKGlkIHx8IFwiXCIpO1xyXG4gICAgaWYgKHRoaXMuX2lzWWVhcmx5KHMpKSByZXR1cm4gZmFsc2U7IC8vIGd1YXJkXHJcbiAgICAvLyBjb3ZlciBwcmljZV8xL3ByaWNlXzQsIOKAnG1vbnRobHnigJ0sIGFuZCBleHBsaWNpdCAxX21vbnRoIGZvcm1zXHJcbiAgICByZXR1cm4gLyhwcmljZV8xfHByaWNlXzR8bW9udGhseXwoPzpefFtfLi1dKTFfbW9udGgoPzpbXy4tXXwkKSkvaS50ZXN0KHMpO1xyXG4gIH1cclxuXHJcbiAgX2lzQXBwU3RvcmUodHgpIHtcclxuICAgIHJldHVybiAvYXBwbGV8aXR1bmVzfGdvb2dsZXxwbGF5fGFwcHN0b3JlL2kudGVzdChTdHJpbmcodHgpKTtcclxuICB9XHJcbiAgX2lzV2ViKHR4KSB7XHJcbiAgICByZXR1cm4gIXRoaXMuX2lzQXBwU3RvcmUodHgpO1xyXG4gIH1cclxuXHJcbiAgX2dldFRpbGVQa2dJZChwbGFuLCBtb2RlKSB7XHJcbiAgICBjb25zdCBhY3QgPSBwbGFuPy5hY3RpdmVQa2c7IC8vIDwtIHRoaXMgaXMgeW91ciBzbmFwc2hvdCB7aGFzLGlkLHRpZXIsY3ljbGUsLi4ufVxyXG5cclxuICAgIC8vIHVzZSB0aGUgYWN0aXZlIGlkIG9ubHkgaWYgaXQgYmVsb25ncyB0byBUSElTIHRpZXIgYW5kIG1hdGNoZXMgTU9ERVxyXG4gICAgaWYgKGFjdD8uaGFzICYmIGFjdD8udGllciA9PT0gcGxhbi5uYW1lKSB7XHJcbiAgICAgIGNvbnN0IGFJZCA9IGFjdC5pZCB8fCBcIlwiO1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgKG1vZGUgPT09IFwieWVhcmx5XCIgJiYgdGhpcy5faXNZZWFybHkoYUlkKSkgfHxcclxuICAgICAgICAobW9kZSA9PT0gXCJtb250aGx5XCIgJiYgdGhpcy5faXNNb250aGx5KGFJZCkpXHJcbiAgICAgICkge1xyXG4gICAgICAgIHJldHVybiBhSWQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBvdGhlcndpc2UgdXNlIHRoZSBjYXRhbG9nIGlkIGZvciB0aGUgY3VycmVudCBtb2RlXHJcbiAgICByZXR1cm4gbW9kZSA9PT0gXCJ5ZWFybHlcIlxyXG4gICAgICA/IHBsYW4/Lmlkcz8ueWVhcmx5IHx8IFwiXCJcclxuICAgICAgOiBwbGFuPy5pZHM/Lm1vbnRobHkgfHwgXCJcIjtcclxuICB9XHJcblxyXG4gIC8vIHR1cm4gc3RyaXBwZWQgaWQgPT4gZnVsbCBjYXRhbG9nIGtleSAocHJlZml4IHZhcmllcylcclxuICBfZXhwYW5kVG9GdWxsQ2F0YWxvZ0lkKGlkKSB7X
1HJcbiAgICBpZiAoIWlkKSByZXR1cm4gXCJcIjtcclxuICAgIGlmICh0aGlzLl9wa2dBbGw/LltpZF0pIHJldHVybiBpZDtcclxuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh0aGlzLl9wa2dBbGwgfHwge30pO1xyXG4gICAgcmV0dXJuIGtleXMuZmluZCgoaykgPT4gay5lbmRzV2l0aChpZCkpIHx8IGlkO1xyXG4gIH1cclxuICBfaGFzTm9uWmVyb1ByaWNlQnlJZChpZCkge1xyXG4gICAgY29uc3QgZnVsbCA9IHRoaXMuX2V4cGFuZFRvRnVsbENhdGFsb2dJZChpZCk7XHJcbiAgICBjb25zdCByYXcgPSB0aGlzLl9wa2dBbGw/LltmdWxsXT8ucHJpY2UgfHwgXCJcIjtcclxuICAgIGNvbnN0IG4gPSBwYXJzZUZsb2F0KFN0cmluZyhyYXcpLnJlcGxhY2UoXCIkXCIsIFwiXCIpKTtcclxuICAgIHJldHVybiBOdW1iZXIuaXNGaW5pdGUobikgJiYgbiA+IDA7XHJcbiAgfVxyXG4gIC8vIHdoaWNoIGlkIGJlbG9uZ3MgdG8gdGhpcyBwbGFuIGluIGN1cnJlbnQgYmlsbGluZyBtb2RlXHJcbiAgX3BsYW5JZChwbGFuLCBtb2RlKSB7XHJcbiAgICBjb25zdCB2ID0gdGhpcy5fYnVpbGRMZWdhY3lWYWx1ZShwbGFuLCBtb2RlKSB8fCBcIlwiOyAvLyBlLmcuIFwiYmFzaWMteWVhcmx5LjEyX21vbnRoXzI5Xzk5XCJcclxuICAgIHJldHVybiB2LnNwbGl0KFwiLlwiKVsxXSB8fCBcIlwiO1xyXG4gIH1cclxuXHJcbiAgX2NvbXB1dGVDdGEocGxhbiwgbW9kZSkge1xyXG4gICAgY29uc3QgbHAgPSB0aGlzLmxhdGVzdFBhY2thZ2U7XHJcbiAgICBjb25zdCBoYXNQa2cgPSB0aGlzLl9nZXRIYXNVc2VyUGFja2FnZSgpOyAvLyBzaW1wbGU6IGFueSBwYWNrYWdlP1xyXG4gICAgY29uc3QgdHhuID0gKGxwPy50cmFuc2FjdGlvbl90eXBlIHx8IFwiXCIpLnRyaW0oKTtcclxuICAgIGNvbnN0IGlzV2ViID0gL153ZWItL2kudGVzdCh0eG4pO1xyXG4gICAgY29uc3QgaXNGcmVlID0gcGxhbi5uYW1lID09PSBcIkZSRUVcIjtcclxuXHJcbiAgICAvLyBGUkVFOiBubyBwYWNrYWdlID0+IEFjdGl2ZSBQbGFuLCBvdGhlcndpc2Ugbm8gYnV0dG9uXHJcbiAgICBpZiAoaXNGcmVlKSB7XHJcbiAgICAgIHJldHVybiAhaGFzUGtnXHJcbiAgICAgICAgPyB7IGtpbmQ6IFwiYWN0aXZlXCIsIHRleHQ6IFwiQUNUSVZFIFBMQU5cIiB9XHJcbiAgICAgICAgOiB7IGtpbmQ6IFwiZW1wdHlcIiB9O1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEhlbHBlcjogaXMgdGhpcyBwbGFuIGFjdGl2ZSBmb3IgdGhlIGN1cnJlbnQgbW9kZT9cclxuICAgIGNvbnN0IGlzQWN0aXZlID1cclxuICAgICAgbW9kZSA9PT0gXCJ5ZWFybHlcIiA/ICEhcGxhbi5hY3RpdmVZZWFybHkgOiAhIXBsYW4uYWN0aXZlTW9udGhseTtcclxuXHJcbiAgICAvLyBCQVNJQyBydWxlc1xyXG4gICAgaWYgKHBsYW4ubmFtZSA9PT0gXCJCQVNJQ1wiKSB7XHJcbiAgICAgIGlmIChpc0FjdGl2ZSkgcmV0dXJuIHsga2luZDogXCJhY3RpdmVcIiwgdGV4dDogXCJBQ1RJVkUgUExBTlwiIH07XHJcblxyXG4gICAgICBpZiAoaXNXZWIpIHtcclxuICAgICAgICBpZiAobW9kZSA9PT0gXCJ5ZWFybHlcIikge1xyXG4gICAgICAgICAgcmV0dXJuIHsga2luZDogXCJhY3Rpb25cIiwgdGV4dDogXCJVUEdSQURFXCIgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGtpbmQ6IFwiYWN0aW9uXCIsXHJcbiAgICAgICAgICB0ZXh0OiB0aGlzLmlzVXNlclJlZmVycmVkID8gXCJSRURFRU0gT0ZGRVJcIiA6IFwiU0VMRUNUXCIsXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4geyBraW5kOiBcImFjdGlvblwiLCB0ZXh0OiBcIlNFTEVDVFwiIH07XHJcbiAgICB9XHJcblxyXG4gICAgLy8gR0VORVJJQyBZRUFSTFkgcnVsZXMgKGZvciBhbnkgcGxhbiByZW5kZXJlZCBpbiB5ZWFybHkgbW9kZSlcclxuICAgIGlmIChtb2RlID09PSBcInllYXJseVwiKSB7XHJcbiAgICAgIGlmICghIXBsYW4uYWN0aXZlWWVhcmx5KSByZXR1cm4geyBraW5kOiBcImFjdGl2ZVwiLCB0ZXh0OiBcIkFDVElWRSBQTEFOXCIgfTtcclxuXHJcbiAgICAgIC8vIGlmIHdlYiBhbmQgQkFTSUMgeWVhcmx5IHRpbGUgc2hvdWxkIG9mZmVyIGRvd25ncmFkZVxyXG4gICAgICBpZiAoaXNXZWIgJiYgcGxhbi5uYW1lID09PSBcIkJBU0lDXCIpIHtcclxuICAgICAgICByZXR1cm4geyBraW5kOiBcImFjdGlvblwiLCB0ZXh0OiBcIkRPV05HUkFERVwiIH07XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBraW5kOiBcImFjdGlvblwiLFxyXG4gICAgICAgIHRleHQ6IHRoaXMuaXNVc2VyUmVmZXJyZWQgPyBcIlJFREVFTSBPRkZFUlwiIDogXCJTRUxFQ1RcIixcclxuICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBGYWxsYmFjayBmb3IgYW55dGhpbmcgZWxzZSAoZS5nLiwgbW9udGhseSB0aWxlcyBvZiBub24tQkFTSUMgcGxhbnMpXHJcbiAgICBpZiAoaXNBY3RpdmUpIHJldHVybiB7IGtpbmQ6IFwiYWN0aXZlXCIsIHRleHQ6IFwiQUNUSVZFIFBMQU5cIiB9O1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAga2luZDogXCJhY3Rpb25cIixcclxuICAgICAgdGV4dDpcclxuICAgICAgICB0aGlzLmlzVXNlclJlZmVycmVkICYmIG1vZGUgPT09IFwieWVhcmx5XCIgPyBcIlJFREVFTSBPRkZFUlwiIDogXCJTRUxFQ1RcIixcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvLyBQdXQgaW5zaWRlIHRoZSBzYW1lIGNvbXBvbmVudC9jbGFzc1xyXG4gIF9wYWdlclN0ZXBGcm9tUGF0aCgpIHtcclxuICAgIGNvbnN0IHAgPSAod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lIHx8IFwiXCIpLnRvTG93ZXJDYXNlKCk7XHJcbiAgICBpZiAoL1xcL215YmFieXNwYXJrc1xcL3N1YnNjcmlwdGlvbi1zdWNjZXNzKD86XFwvfCQpLy50ZXN0KHApKSByZXR1cm4gMztcclxuICAgIGlmICgvXFwvbXliYWJ5c3BhcmtzXFwvY2hhbmdlLXN1YnNjcmlwdGlvbig/OlxcL3wkKS8udGVzdChwKSkgcmV0dXJuIDI7XHJcbiAgICByZXR1cm4gbnVsbDsgLy8gbm8gb3ZlcnJpZGVcclxuICB9XHJcblxyXG4gIC8vIFRoZSBiYW5uZXIgdGV4dCBhdCB0aGUgdG9wIG9mIHRoZSB0YWJsZSAoZGVza3RvcCArIG1vYmlsZSlcclxuICBfcmVuZGVyR3VpZGVNZXNzYWdlKCkge1xyXG4gICAgY29uc3QgaGFzUGtnID0gdGh
1pcy5fZ2V0SGFzVXNlclBhY2thZ2UoKTtcclxuICAgIGNvbnN0IGxhbmcgPVxyXG4gICAgICB0eXBlb2YgdGhpcy5jdXJyZW50TGFuZyA9PT0gXCJzdHJpbmdcIlxyXG4gICAgICAgID8gdGhpcy5jdXJyZW50TGFuZ1xyXG4gICAgICAgIDogdGhpcy5jdXJyZW50TGFuZz8uWzBdIHx8IFwiZW5cIjtcclxuXHJcbiAgICByZXR1cm4gaHRtbGBcclxuICAgICAgJHshaGFzUGtnXHJcbiAgICAgICAgPyBodG1sYFxyXG4gICAgICAgICAgICAke3RoaXMuaXNVc2VyUmVmZXJyZWRcclxuICAgICAgICAgICAgICA/IGh0bWxgXHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWZlcnJhbEd1aWRlRGVzY1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiY2hvb3NlTGFiZWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsb2NhbC1lbGVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxLZXk9XCJzdWJzLnJlZmVycmFsLnByZWZpeFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsbGJhY2s9XCJDaG9vc2UgYSBZZWFybHkgU3Vic2NyaXB0aW9uIGFuZCBnZXQgYVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxMYW5nPVwiJHtsYW5nfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2xvY2FsLWVsZW0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGlzY291bnRMYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjYwJTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bG9jYWwtZWxlbVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxLZXk9XCJzdWJzLnJlZmVycmFsLmRpc2NvdW50V29yZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxsYmFjaz1cImRpc2NvdW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsTGFuZz1cIiR7bGFuZ31cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xvY2FsLWVsZW0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Ryb25nPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInJlZkxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bG9jYWwtZWxlbVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhbEtleT1cInN1YnMucmVmZXJyYWwubGluZTFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmYWxsYmFjaz1cIlVubG9jayBwZXJzb25hbGl6ZWQgcGFyZW50aW5nIHRvb2xzLCBleHBlcnQgZ3VpZGFuY2UsIGFuZCBtb3JlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxMYW5nPVwiJHtsYW5nfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2xvY2FsLWVsZW0+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwicmVmTGFiZWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxsb2NhbC1lbGVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsS2V5PVwic3Vicy5yZWZlcnJhbC5saW5lMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhbGxiYWNrPVwiWW91ciBleGNsdXNpdmUgZGlzY291bnQgaXMgYXBwbGllZCBhdCBjaGVja291dCFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhbExhbmc9XCIke2xhbmd9XCJcclxuICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvbG9jYWwtZWxlbT5cclxuICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgYFxyXG4gICAgICAgICAgICAgIDogaHRtbGBcclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlZ3VsYXJHdWlkZURlc2NcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bG9jYWwtZWxlbVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhbEtleT1cInN1YnMuZ3VpZGUudGl0bGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmYWxsYmFjaz1cIkl0IGxvb2tzIGxpa2UgeW91IGhhdmVuJ3QgdHJpZWQgb25lIG9mIG91ciBwcmVtaXVtIHN1YnNjcmlwdGlvbnMgeWV0LlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsTGFuZz1cIiR7bGFuZ31cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9sb2NhbC1lbGVtPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bG9jYWwtZWxlbVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhbEtleT1cInN1YnMuZ3VpZGUuYm9keVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhbGxiYWNrPVwiUGxlYXNlIHNlbGVjdCBmcm9tIG9uZSBvZiB0aGUgcGxhbnMgYmVsb3cgdG8gdW5sb2NrIG91ciBFTlRJUkUgY2F0YWxvZyBvZiB0aG91c2FuZHMgb2YgZGV2ZWxvcG1lbnQgYWN0aXZpdGllc+KAlGNyZWF0ZWQgYnkgZXhwZXJ0cyB0byBoZWxwIHlvdSBzdXBwb3J0IHlvdXIgbGl0dGxlIG9uZXMgZGV2ZWxvcG1lbnQgd2hpbGUgc3BlbmRpbmcgcXVhbGl0eSB0aW1lIHRvZ2V0aGVyLlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsTGFuZz1cIiR7bGFuZ31cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9sb2NhbC1lbGVtPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICBgfVxyXG4gICAgICAgICAgYFxyXG4gICAgICAgIDogaHRtbGBcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlZ3VsYXJHdWlkZURlc2NcIj5cclxuICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJmcy10aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgPGxvY2FsLWVsZW1cclxuICAgICAgICAgICAgICAgICAgbG9jYWxLZXk9XCJzdWJzLmd1aWRlLmhhc1BrZy50aXRsZVwiXHJcbiAgICAgICAgICAgICAgICAgIGZhbGxiYWNrPVwiU2VsZWN0IFlvdXIgQWN0aXZpdHkgUGFja2FnZVwiXHJcbiAgICAgICAgICAgICAgICAgIGxvY2FsTGFuZz1cIiR7bGFuZ31cIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPC9sb2NhbC1lbGVtPlxyXG4gICAgICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICA8bG9jYWwtZWxlbVxyXG4gICAgICAgICAgICAgICAgICBsb2NhbEtleT1cInN1YnMuZ3VpZGUuaGFzUGtnLmJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICBmYWxsYmFjaz1cIlVubG9jayB1bmxpbWl0ZWQgYWNjZXNzIHRvIG91ciBmdWxsIGNhdGFsb2cgb2YgdGhvdXNhbmRzIG9mIGV4cGVydC1jcmVhdGVkIGFjdGl2aXRpZXNcIlxyXG4gICAgICAgICAgICAgICAgICBsb2NhbExhbmc9XCIke2xhbmd9XCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDwvbG9jYWwtZWxlbT5cclxuICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgYH1cclxuICAgIGA7XHJcbiAgfVxyXG5cclxuICBfcmVuZGVyVG9wU2VjdGlvbigpIHtcclxuICAgIGNvbnN0IG92ZXJyaWRlID0gdGhpcy5fcGFn
1ZXJTdGVwRnJvbVBhdGgoKTtcclxuICAgIGNvbnN0IHN0ZXBCYXNlID0gb3ZlcnJpZGUgPz8gdGhpcy5jdXJyZW50U3RlcCA/PyAxO1xyXG4gICAgY29uc3QgbWF4U3RlcCA9IEFycmF5LmlzQXJyYXkodGhpcy5wcm9ncmVzc1N0ZXBzKVxyXG4gICAgICA/IHRoaXMucHJvZ3Jlc3NTdGVwcy5sZW5ndGhcclxuICAgICAgOiAzO1xyXG4gICAgY29uc3Qgc3RlcCA9IE1hdGgubWluKE1hdGgubWF4KHN0ZXBCYXNlLCAxKSwgbWF4U3RlcCk7XHJcbiAgICByZXR1cm4gaHRtbGBcclxuICAgICAgPGRpdiBjbGFzcz1cInBhZ2VyUHJvZ3Jlc3NTZWN0aW9uXCI+XHJcbiAgICAgICAgPGg0IGNsYXNzPVwibXljbGFzc0hlYWRpbmdcIj5cclxuICAgICAgICAgIDxsb2NhbC1lbGVtXHJcbiAgICAgICAgICAgIGxvY2FsS2V5PVwic3Vicy5jaGlsZFByb2dyYW0udGl0bGVcIlxyXG4gICAgICAgICAgICBmYWxsYmFjaz1cIk15IENoaWxkJ3MgUHJvZ3JhbSBTdWJzY3JpcHRpb25zXCJcclxuICAgICAgICAgICAgbG9jYWxMYW5nPVwiJHt0aGlzLmN1cnJlbnRMYW5nfVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICA8L2xvY2FsLWVsZW0+XHJcbiAgICAgICAgPC9oND5cclxuICAgICAgICA8cGFnZXItcHJvZ3Jlc3MtYmFyIC5jdXJyZW50U3RlcD0ke3N0ZXB9IC5zdGVwcz0ke3RoaXMucHJvZ3Jlc3NTdGVwc30+XHJcbiAgICAgICAgPC9wYWdlci1wcm9ncmVzcy1iYXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICAke3RoaXMuX3JlbmRlckd1aWRlTWVzc2FnZSgpfVxyXG4gICAgYDtcclxuICB9XHJcblxyXG4gIHJlbmRlcigpIHtcclxuICAgIHJldHVybiBodG1sYFxyXG4gICAgICAke3RoaXMuX3JlbmRlclRvcFNlY3Rpb24oKX1cclxuICAgICAgJHt0aGlzLmlzTW9iaWxlID8gdGhpcy5fcmVuZGVyTW9iaWxlKCkgOiB0aGlzLl9yZW5kZXJEZXNrdG9wKCl9XHJcbiAgICBgO1xyXG4gIH1cclxuXHJcbiAgX3JlbmRlckRlc2t0b3AoKSB7XHJcbiAgICBjb25zdCB5ZWFybHlPZmZlclRleHQgPSB0aGlzLmlzVXNlclJlZmVycmVkID8gXCI2MCVcIiA6IFwiNTAlXCI7XHJcblxyXG4gICAgcmV0dXJuIGh0bWxgXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1zdWJzY3JpcHRpb25cIj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cInBsYW5zLXdyYXBwZXIgJHt0aGlzLmlzVXNlclJlZmVycmVkXHJcbiAgICAgICAgICAgID8gXCJ0d28tcGxhbnNcIlxyXG4gICAgICAgICAgICA6IFwidGhyZWUtcGxhbnNcIn1cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDwhLS0gRmVhdHVyZSBjb2x1bW4gLS0+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmVhdHVyZS1saXN0XCI+XHJcbiAgICAgICAgICAgIDx1bD5cclxuICAgICAgICAgICAgICAke3RoaXMuX3Nob3VsZFNob3dCaWxsaW5nVG9nZ2xlKClcclxuICAgICAgICAgICAgICAgID8gaHRtbGBcclxuICAgICAgICAgICAgICAgICAgICA8bGkgY2x
1hc3M9XCJiaWxsaW5nLXRvZ2dsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bG9jYWwtZWxlbVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsS2V5PVwiU2VsZWN0IHlvdXIgYmlsbGluZyBwcmVmZXJlbmNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbExhbmc9XCIke3RoaXMuY3VycmVudExhbmd9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbG9jYWwtZWxlbT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9nZ2xlLWJ1dHRvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSR7dGhpcy5iaWxsaW5nTW9kZSA9PT0gXCJ5ZWFybHlcIiA/IFwiYWN0aXZlXCIgOiBcIlwifVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuYmlsbGluZ01vZGVMb2NrZWR9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCkgPT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICF0aGlzLmJpbGxpbmdNb2RlTG9ja2VkICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5iaWxsaW5nTW9kZSA9IFwieWVhcmx5XCIpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGxvY2FsLWVsZW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsS2V5PVwiWWVhcmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsTGFuZz1cIiR7dGhpcy5jdXJyZW50TGFuZ31cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID48L2xvY2FsLWVsZW0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9JHt0aGlzLmJpbGxpbmdNb2RlID09PSBcIm1vbnRobHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBcImFjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5iaWxsaW5nTW9kZUxvY2tlZH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIXRoaXMuYmlsbGluZ01vZGVMb2NrZWQgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmJpbGxpbmdNb2RlID0gXCJtb250aGx5XCIpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGxvY2FsLWVsZW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsS2V5PVwiTW9udGhseVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbExhbmc9XCIke3RoaXMuY3VycmVudExhbmd9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9sb2NhbC1lbGVtPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLmJpbGxpbmdNb2RlID09PSBcInllYXJseVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gaHRtbGA8ZGl2IGNsYXNzPVwib2ZmZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPuKclDwvc3Bhbj4ke3llYXJseU9mZmVyVGV4dH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsb2NhbC1lbGVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsS2V5PVwiT0ZGXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxMYW5nPVwiJHt0aGlzLmN1cnJlbnRMYW5nfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9sb2NhbC1lbGVtPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmBcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBcIlwifVxyXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgIGBcclxuICAgICAgICAgICAgICAgIDogaHRtbGBcclxuICAgICAgICAgICAgICAgICAgICA8bGkgY2x
1hc3M9XCJiaWxsaW5nLXRvZ2dsZSBlbXB0eVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9nZ2xlLWJ1dHRvbnNcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICBgfVxyXG4gICAgICAgICAgICAgICR7dGhpcy5mZWF0dXJlcy5tYXAoXHJcbiAgICAgICAgICAgICAgICAoZiwgaSkgPT4gaHRtbGBcclxuICAgICAgICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmVhdHVyZS10ZXh0ICR7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9pc0ZlYXR1cmVCb2xkKGkpID8gXCJib2xkXCIgOiBcIlwiXHJcbiAgICAgICAgICAgICAgICAgICAgfVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bG9jYWwtZWxlbVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhbEtleT1cIiR7Zn1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhbExhbmc9XCIke3RoaXMuY3VycmVudExhbmd9XCJcclxuICAgICAgICAgICAgICAgICAgICAgID48L2xvY2FsLWVsZW0+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRvb2x0aXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0b29sdGlwLWljb25cIj5pPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRvb2x0aXAtdGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxsb2NhbC1lbGVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbEtleT1cIiR7dGhpcy50b29sdGlwc1tpXX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxMYW5nPVwiJHt0aGlzLmN1cnJlbnRMYW5nfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvbG9jYWwtZWxlbT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgIGBcclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBsYW5zLXJvd1wiPlxyXG4gICAgICAgICAgICA8IS0tIFBsYW5zIC0tPlxyXG4gICAgICAgICAgICAke3RoaXMucGxhbnMubWFwKChwbGFuKSA9PiB7XHJcbiAgICAgICAgICAgICAgLy8gTW9kZTogYWN0aXZlIHRpZXIgcGlubmVkOyBvdGhlcnMgZm9sbG93IHRoZSB0b2dnbGVcclxuICAgICAgICAgICAgICBjb25zdCBtb2RlID1cclxuICAgICAgICAgICAgICAgIHBsYW4ucHJlZmVycmVkU2VsZWN0Q3ljbGUgfHxcclxuICAgICAgICAgICAgICAgIHBsYW4uZGlzcGxheU1vZGUgfHxcclxuICAgICAgICAgICAgICAgIHRoaXMuYmlsbGluZ01vZGU7XHJcbiAgICAgICAgICAgICAgY29uc3QgcHJpY2VGb3JCbHVlID0gKFxyXG4gICAgICAgICAgICAgICAgcGxhbi5kaXNwbGF5UHJpY2VzPy5bbW9kZV0gfHxcclxuICAgICAgICAgICAgICAgIHBsYW4ucHJpY2VzPy5bbW9kZV0gfHxcclxuICAgICAgICAgICAgICAgIFwiXCJcclxuICAgICAgICAgICAgICApLnRyaW0oKTtcclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICBjb25zdCBsYWJlbEZvckZvcm1hdHRlciA9IHRoaXMuaXNCMmJVc2VyXHJcbiAgICAgICAgICAgICAgPyBcIlwiXHJcbiAgICAgICAgICAgICAgOiBwcmljZUZvckJsdWVcclxuICAgICAgICAgICAgICA/IGAke3ByaWNlRm9yQmx1ZX0vTW9udGhseWBcclxuICAgICAgICAgICAgICA6IFwiQWx3YXlzIEZyZWVcIjtcclxuXHJcbiAgICAgICAgICAgICAgY29uc3QgcGtnSWQgPSB0aGlzLl9nZXRUaWxlUGtnSWQocGxhbiwgbW9kZSk7XHJcbiAgICAgICAgICAgICAgY29uc3QgcGtnID0gcGtnSWQgPyB0aGlzLl9maW5kUGtnKHBrZ0lkKSA6IG51bGw7XHJcbiAgICAgICAgICAgICAgY29uc3QgYXBwcm94ID0gdGhpcy5fbG9jYWxTdWZmaXgocGtnKTtcclxuXHJcbiAgICAgICAgICAgICAgLy8gQ1RBICsgY2xpY2sgcGF5bG9hZCAobXVzdCBtYXRjaCB0aWxlIG1vZGUpXHJcbiAgICAgICAgICAgICAgY29uc3QgY3RhID0gcGxhbi5jdGFzPy5bbW9kZV0gfHwge1xyXG4gICAgICAgICAgICAgICAga2luZDogXCJhY3Rpb25cIixcclxuICAgICAgICAgICAgICAgIHRleHQ6IFwiU0VMRUNUXCIsXHJcbiAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICBjb25zdCBwYXlsb2FkTW9kZSA9IHBsYW4ucHJlZmVycmVkU2VsZWN0Q3ljbGUgfHwgbW9kZTtcclxuICAgICAgICAgICAgICBjb25zdCBsZWdhY3lWYWx1ZSA9IHRoaXMuX2J1aWxkTGVnYWN5VmFsdWUocGxhbiwgcGF5bG9hZE1vZGUpO1xyXG4gICAgICAgICAgICAgIGNvbnN0IHsgdHlwZTogdHhuVHlwZSwgaWQ6IHR4bklkIH0gPSB0aGlzLl9nZXRMYXRlc3RUeG5NZXRhKCk7XHJcbiAgICAgICAgICAgICAgY29uc3QgaXNEaXNhYmxlZCA9IGN0YS5raW5kID09PSBcImFjdGl2ZVwiIHx8ICFwa2dJZDtcclxuICAgICAgICAgICAgICBjb25zdCBpc0hpZ2hsaWdodCA9IHBsYW4ubmFtZSA9PT0gXCJQUkVNSVVNXCIgJiYgbW9kZSA9PT0gXCJ5ZWFybHlcIjtcclxuICAgICAgICAgICAgICBjb25zdCBidG5DbGFzcyA9IFtcclxuICAgICAgICAgICAgICAgIFwiYnV0dG9uLXBsYW5zXCIsXHJcbiAgICAgICAgICAgICAgICBpc0Rpc2FibGVkID8gXCJidXR0b24tZGlzYWJsZWRcIiA6IFwiXCIsXHJcbiAgICAgICAgICAgICAgXVxyXG4gICAgICAgICAgICAgICAgLmZpbHRlcihCb29sZWFuKVxyXG4gICAgICAgICAgICAgICAgLmpvaW4oXCIgXCIpO1xyXG5cclxuICAgICAgICAgICAgICBjb25zdCBidXR0b25UcGwgPVxyXG4gICAgICAgICAgICAgICAgY3RhLmtpbmQgPT09IFwiZW1wdHlcIlxyXG4gICAgICAgICAgICAgICAgICA/IGh0bWxgPGRpdiBjbGFzcz1cImVtcHR5XCI+PC9kaXY+YFxyXG4gICAgICAgICAgICAgICAgICA6IGh0bWxgXHJcbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiJHtidG5DbGFzc31cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/
1ZGlzYWJsZWQ9JHtpc0Rpc2FibGVkfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0ke2xlZ2FjeVZhbHVlfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXR5cGU9JHt0eG5UeXBlIHx8IFwiXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtaWQ9JHt0eG5JZCB8fCBcIlwifVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLl9lbWl0TGVnYWN5Q2xpY2t9XHJcbiAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsb2NhbC1lbGVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxLZXk9XCIke2N0YS50ZXh0fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsbGJhY2s9XCIke2N0YS50ZXh0fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxMYW5nPVwiJHt0aGlzLmN1cnJlbnRMYW5nfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2xvY2FsLWVsZW0+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICBgO1xyXG5cclxuICAgICAgICAgICAgICBjb25zdCBwZXJrUm93cyA9IHRoaXMuZmVhdHVyZXMubWFwKFxyXG4gICAgICAgICAgICAgICAgKF8sIGkpID0+XHJcbiAgICAgICAgICAgICAgICAgIGh0bWxgIDxsaT4ke3RoaXMuX3JlbmRlclBlcmtDZWxsKHBsYW4ucGVya3M/LltpXSl9PC9saT4gYFxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgY29uc3QgcGFkZGluZ1Jvd3MgPSBBcnJheShcclxuICAgICAgICAgICAgICAgIE1hdGgubWF4KDAsIHRoaXMuZmVhdHVyZXMubGVuZ3RoIC0gcGVya1Jvd3MubGVuZ3RoKVxyXG4gICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgIC5maWxsKDApXHJcbiAgICAgICAgICAgICAgICAubWFwKCgpID0+IGh0bWxgPGxpPjwvbGk+YCk7XHJcblxyXG4gICAgICAgICAgICAgIHJldHVybiBodG1sYFxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBsYW4gJHtpc0hpZ2hsaWdodCA/IFwiaGlnaGxpZ2h0XCIgOiBcIlwifVwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGxhbi1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGxhbi1uYW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bG9jYWwtZWxlbVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhbEtleT1cIiR7cGxhbi5uYW1lfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsTGFuZz1cIiR7dGhpcy5jdXJyZW50TGFuZ31cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgPjwvbG9jYWwtZWxlbT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgJHshdGhpcy5pc0IyYlVzZXJcclxuICAgICAgICAgICAgICAgICAgICA/IGh0bWxgXHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGxhbi1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAke3RoaXMuX2Zvcm1hdFByaWNlTGFiZWwobGFiZWxGb3JGb3JtYXR0ZXIpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGxhbi1wcmljZVwiPiR7YXBwcm94fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBsYW4tbm90ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAke3RoaXMuaXNVc2VyUmVmZXJyZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IG1vZGUgPT09IFwieWVhcmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gaHRtbGBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGxhbi1zdWItbm90ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxvY2FsLWVsZW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxLZXk9XCI2MCUgb2ZmIHdoZW4gYmlsbGVkIHllYXJseVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsTGFuZz1cIiR7dGhpcy5jdXJyZW50TGFuZ31cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sb2NhbC1lbGVtPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWYtbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsb2NhbC1lbGVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxLZXk9XCIke3BsYW4ubmFtZSA9PT0gXCJCQVNJQ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFwiU2F2aW5nIDogJDM2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJTYXZpbmcgOiAkMTQ0XCJ9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbExhbmc9XCIke3RoaXMuY3VycmVudExhbmd9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xvY2FsLWVsZW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjxzdXA+Kjwvc3VwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdHJvbmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogaHRtbGBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGxhbi1zdWItbm90ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxvY2FsLWVsZW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxLZXk9XCJTd2l0Y2ggdG8geWVhcmx5IGZvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsTGFuZz1cIiR7dGhpcy5jdXJyZW50TGFuZ31cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sb2NhbC1lbGVtPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxvY2FsLWVsZW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxLZXk9XCIke3BsYW4/LnN3aXRjaEtleSB8fCBcIlwifVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsTGFuZz1cIiR7dGhpcy5jdXJyZW50TGFuZ31cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sb2NhbC1lbGVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+L1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxvY2FsLWVsZW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxLZXk9XCJtb250aGx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxMYW5nPVwiJHt0aGlzLmN1cnJlbnRMYW5nfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xvY2FsLWVsZW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48c3VwPio8L3N1cD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVmLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bG9jYWwtZWxlbVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbEtleT1cIiR7cGxhbi5ub3Rlcz8uW21vZGVdID8/IFwiXCJ9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxMYW5nPVwiJHt0aGlzLmN1cnJlbnRMYW5nfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xvY2FsLWVsZW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48c3VwPio8L3N1cD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogaHRtbGBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxvY2FsLWVsZW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbEtleT1cIiR7cGxhbi5ub3Rlcz8uW21vZGVdID8/IFwiXCJ9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbExhbmc9XCIke3RoaXMuY3VycmVudExhbmd9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xvY2FsLWVsZW0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+YCBcclxuICAgICAgICAgICAgICAgICAgICA6IG5vdGhpbmcgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGxhbi1idXR0b25cIj4ke2J1dHRvblRwbH08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJwbGFuLWZlYXR1cmVz
1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgJHtwZXJrUm93c30ke3BhZGRpbmdSb3dzfVxyXG4gICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgYDtcclxuICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgJHshdGhpcy5pc1VzZXJSZWZlcnJlZFxyXG4gICAgICAgICAgPyBodG1sYFxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub3RlXCI+XHJcbiAgICAgICAgICAgICAgICA8c3Ryb25nPlxyXG4gICAgICAgICAgICAgICAgICA8bG9jYWwtZWxlbVxyXG4gICAgICAgICAgICAgICAgICAgIGxvY2FsS2V5PVwiT3VyIHByb3ByaWV0YXJ5IHRlY2hub2xvZ3kgbGVhcm5zIHlvdXIgY2hpbGTigJlzIHNwZWNpZmljIG5lZWRzLCBkZWxpdmVyaW5nIGp1c3QgdGhlIHJpZ2h0IGFjdGl2aXRpZXMgYXQganVzdCB0aGUgcmlnaHQgdGltZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgbG9jYWxMYW5nPVwiJHt0aGlzLmN1cnJlbnRMYW5nfVwiXHJcbiAgICAgICAgICAgICAgICAgID48L2xvY2FsLWVsZW0+XHJcbiAgICAgICAgICAgICAgICA8L3N0cm9uZz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgYFxyXG4gICAgICAgICAgOiBub3RoaW5nfVxyXG4gICAgICA8L2Rpdj5cclxuICAgIGA7XHJcbiAgfVxyXG5cclxuICBfcmVuZGVyTW9iaWxlKCkge1xyXG4gICAgY29uc3QgeWVhcmx5T2ZmZXJUZXh0ID0gdGhpcy5pc1VzZXJSZWZlcnJlZCA/IFwiNjAlXCIgOiBcIjUwJVwiO1xyXG4gICAgY29uc3QgcCA9IHRoaXMucGxhbnNbdGhpcy5hY3RpdmVQbGFuSWR4XSB8fCB7fTtcclxuICAgIGlmICghcCB8fCAhcC5uYW1lKSByZXR1cm4gaHRtbGBgOyAvLyBndWFyZFxyXG5cclxuICAgIC8vIC0tLSBNQVRDSCBERVNLVE9QIFNFTEVDVElPTiBMT0dJQyAtLS1cclxuICAgIGNvbnN0IG1vZGUgPSBwLnByZWZlcnJlZFNlbGVjdEN5Y2xlIHx8IHAuZGlzcGxheU1vZGUgfHwgdGhpcy5iaWxsaW5nTW9kZTtcclxuXHJcbiAgICAvLyBCbHVlIGxhYmVsIHVzZXMgcGVyLW1vbnRoIGZpZ3VyZSAoZGlzcGxheVByaWNlcyB3aGVuIHllYXJseSlcclxuICAgIGNvbnN0IHByaWNlRm9yQmx1ZSA9IChcclxuICAgICAgcC5kaXNwbGF5UHJpY2VzPy5bbW9kZV0gfHxcclxuICAgICAgcC5wcmljZXM/Llttb2RlXSB8fFxyXG4gICAgICBcIlwiXHJcbiAgICApLnRyaW0oKTtcclxuXHJcbiAgICBjb25zdCBsYWJlbEZvckZvcm1hdHRlciA9IHByaWNlRm9yQmx1ZVxyXG4gICAgPyBgJHtwcmljZUZvckJsdWV9L01vbnRobHlgXHJcbiAgICA6IFwiQWx3YXlzIEZyZWVcIjtcclxuXHJcbiAgICAgIC8vIGNvbnN0IGxhYmVsRm9yRm9ybWF0dGVyID0gdGhpcy5pc0IyYlVzZXJcclxuICAgICAgLy8gPyBcIlwiXHJcbiAgICAgIC8vIDogcHJpY2VGb3JCbHVlXHJcbiAgICAgIC8vID8gYCR7cHJpY2VGb3JCbHVlfS9Nb250aGx5YFxyXG4gICAgICAvLyA6IFwiQWx3YXlzIEZyZWVcIjtcclxuXHJcbiAgICAvLyBVc2UgdGhlIHNhbWUgcGtnIHJlc29sdmVyIGFzIGRlc2t0b3BcclxuICAgIGNvbnN0IHBrZ0lkID0gdGhpcy5fZ2V0VGlsZVBrZ0lkKHAsIG1vZGUpO1xyXG4gICAgY29uc3QgcGtnID0gcGtnSWQgPyB0aGlzLl9maW5kUGtnKHBrZ0lkKSA6IG51bGw7XHJcbiAgICBjb25zdCBhcHByb3ggPSB0aGlzLl9sb2NhbFN1ZmZpeChwa2cpO1xyXG5cclxuICAgIC8vIENUQSArIGxlZ2FjeSBwYXlsb2FkIChtdXN0IG1hdGNoIHRoZSB0aWxlIG1vZGUpXHJcbiAgICBjb25zdCBjdGEgPSBwLmN0YXM/Llttb2RlXSB8fCB7IGtpbmQ6IFwiYWN0aW9uXCIsIHRleHQ6IFwiU0VMRUNUXCIgfTtcclxuICAgIGNvbnN0IHBheWxvYWRNb2RlID0gcC5wcmVmZXJyZWRTZWxlY3RDeWNsZSB8fCBtb2RlO1xyXG4gICAgY29uc3QgbGVnYWN5VmFsdWUgPSB0aGlzLl9idWlsZExlZ2FjeVZhbHVlKHAsIHBheWxvYWRNb2RlKTtcclxuICAgIGNvbnN0IHsgdHlwZTogdHhuVHlwZSwgaWQ6IHR4bklkIH0gPSB0aGlzLl9nZXRMYXRlc3RUeG5NZXRhKCk7XHJcbiAgICBjb25zdCBpc0Rpc2FibGVkID0gY3RhLmtpbmQgPT09IFwiYWN0aXZlXCIgfHwgIXBrZ0lkO1xyXG5cclxuICAgIGNvbnN0IG1vYmlsZUJ0bkNsYXNzID0gW1xyXG4gICAgICBcImhlcm8tY3RhXCIsXHJcbiAgICAgIGlzRGlzYWJsZWQgPyBcImJ1dHRvbi1kaXNhYmxlZFwiIDogXCJcIixcclxuICAgIF0uam9pbihcIiBcIik7XHJcblxyXG4gICAgLy8gQnV0dG9uIGNvbnRlbnQ6IGluY2x1ZGUgcGVyLW1vbnRoIHByaWNlIGluc2lkZSB0aGUgZ3JlZW4gYnV0dG9uIHdoZW4gYWN0aW9uYWJsZSAmIG5vdCBGUkVFXHJcbiAgICBjb25zdCBiYXNlVGV4dCA9XHJcbiAgICAgIGN0YS50ZXh0ID09PSBcIkFDVElWRSBQTEFOXCIgJiYgcC5uYW1lID09PSBcIkZSRUVcIlxyXG4gICAgICAgID8gXCJBY3RpdmUgUGxhblwiXHJcbiAgICAgICAgOiBjdGEudGV4dDtcclxuICAgIGNvbnN0IGJ1dHRvbkNvbnRlbnQgPVxyXG4gICAgICBjdGEua2luZCA9PT0gXCJhY3Rpb25cIiAmJiBwLm5hbWUgIT09IFwiRlJFRVwiICYmIHByaWNlRm9yQmx1ZVxyXG4gICAgICAgID8gaHRtbGBcclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdGEtdGV4dFwiPlxyXG4gICAgICAgICAgICAgIDxsb2NhbC1lbGVtXHJcbiAgICAgICAgICAgICAgICBsb2NhbEtleT1cIiR7YmFzZVRleHR9XCJcclxuICAgICAgICAgICAgICAgIGZhbGxiYWNrPVwiJHtiYXNlVGV4dH1cIlxyXG4gICAgICAgICAgICAgICAgbG9jYWxMYW5nPVwiJHt0aGlzLmN1cnJlbnRMYW5nfVwiXHJcbiAgICAgICAgICAgICAgPjwvbG9jYWwtZWxlbT5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN0YS1zZXBcIj7igJM8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHJpY2UtaW4tY3RhXCI+JHt0aGlzLl9mb3JtYXRQcmljZUxhYmVsKGxhYmVsRm9yRm9ybWF0dGVyKX08L3NwYW5cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgYFxyXG4gICAgICAgIDogaHRtbGBcclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdGEtdGV4dFwiPlxyXG4gICAgICAgICAgICAgIDxsb2NhbC1lbGVtXHJcbiAgICAgICAgICAgICAgICBsb2NhbEtleT1cIiR7YmFzZVRleHR9XCJcclxuICAgICAgICAgICAgICAgIGZhbGxiYWNrPVwiJHtiYXNlVGV4dH1cIlxyXG4gICAgICAgICAgICAgICAgbG9jYWxMYW5nPVwiJHt0aGlzLmN1cnJlbnRMYW5nfVwiXHJcbiAgICAgICAgICAgICAgPjwvbG9jYWwtZWxlbT5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgYDtcclxuXHJcbiAgICAvLyBCdWlsZCByZWZlcnJhbCBub3RlcyAodG8gbWlycm9yIGRlc2t0b3ApIHdpdGhvdXQgY2hhbmdpbmcgZXhpc3RpbmcgZmxvd3NcclxuICAgIGNvbnN0IHNhdmluZ3NLZXkgPSBwLm5hbWUgPT09IFwiQkFTSUNcIiA/IFwiU2F2aW5nIDogJDM2XCIgOiBcIlNhdmluZyA6ICQxNDRcIjtcclxuICAgIGNvbnN0IHJlZmVycmFsTm9
10ZXMgPSB0aGlzLmlzVXNlclJlZmVycmVkXHJcbiAgICAgID8gbW9kZSA9PT0gXCJ5ZWFybHlcIlxyXG4gICAgICAgID8gaHRtbGBcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBsYW4tc3ViLW5vdGVcIj5cclxuICAgICAgICAgICAgICA8bG9jYWwtZWxlbVxyXG4gICAgICAgICAgICAgICAgbG9jYWxLZXk9XCI2MCUgb2ZmIHdoZW4gYmlsbGVkIHllYXJseVwiXHJcbiAgICAgICAgICAgICAgICBmYWxsYmFjaz1cIjYwJSBvZmYgd2hlbiBiaWxsZWQgeWVhcmx5XCJcclxuICAgICAgICAgICAgICAgIGxvY2FsTGFuZz1cIiR7dGhpcy5jdXJyZW50TGFuZ31cIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8L2xvY2FsLWVsZW0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVmLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgPHN0cm9uZz5cclxuICAgICAgICAgICAgICAgIDxsb2NhbC1lbGVtXHJcbiAgICAgICAgICAgICAgICAgIGxvY2FsS2V5PVwiJHtzYXZpbmdzS2V5fVwiXHJcbiAgICAgICAgICAgICAgICAgIGZhbGxiYWNrPVwiJHtwLm5hbWUgPT09IFwiQkFTSUNcIlxyXG4gICAgICAgICAgICAgICAgICAgID8gXCJTYXZpbmcgOiAkMzZcIlxyXG4gICAgICAgICAgICAgICAgICAgIDogXCJTYXZpbmcgOiAkMTQ0XCJ9XCJcclxuICAgICAgICAgICAgICAgICAgbG9jYWxMYW5nPVwiJHt0aGlzLmN1cnJlbnRMYW5nfVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8L2xvY2FsLWVsZW0+IDwvc3Ryb25nXHJcbiAgICAgICAgICAgICAgPjxzdXA+Kjwvc3VwPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIGBcclxuICAgICAgICA6IGh0bWxgXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwbGFuLXN1Yi1ub3RlXCI+XHJcbiAgICAgICAgICAgICAgPGxvY2FsLWVsZW1cclxuICAgICAgICAgICAgICAgIGxvY2FsS2V5PVwiU3dpdGNoIHRvIHllYXJseSBmb3JcIlxyXG4gICAgICAgICAgICAgICAgZmFsbGJhY2s9XCJTd2l0Y2ggdG8geWVhcmx5IGZvclwiXHJcbiAgICAgICAgICAgICAgICBsb2NhbExhbmc9XCIke3RoaXMuY3VycmVudExhbmd9XCJcclxuICAgICAgICAgICAgICA+PC9sb2NhbC1lbGVtPlxyXG4gICAgICAgICAgICAgIDxsb2NhbC1lbGVtXHJcbiAgICAgICAgICAgICAgICBsb2NhbEtleT1cIiR7cD8uc3dpdGNoS2V5IHx8IFwiXCJ9XCJcclxuICAgICAgICAgICAgICAgIGZhbGxiYWNrPVwiJHtwPy5zd2l0Y2hLZXkgfHwgXCJcIn1cIlxyXG4gICAgICAgICAgICAgICAgbG9jYWxMYW5nPVwiJHt0aGlzLmN1cnJlbnRMYW5nfVwiXHJcbiAgICAgICAgICAgICAgPjwvbG9jYWwtZWxlbVxyXG4gICAgICAgICAgICAgID4vXHJcbiAgICAgICAgICAgICAgPGxvY2FsLWVsZW1cclxuICAgICAgICAgICAgICAgIGxvY2FsS2V5PVwibW9udGhseVwiXHJcbiAgICAgICAgICAgICAgICBmYWxsYmFjaz1cIm1vbnRobHlcIlxyXG4gICAgICAgICAgICAgICAgbG9jYWxMYW5nPVwiJHt0aGlzLmN1cnJlbnRMYW5nfVwiXHJcbiAgICAgICAgICAgICAgPjwvbG9jYWwtZWxlbVxyXG4gICAgICAgICAgICAgID48c3VwPio8L3N1cD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICR7cC5ub3Rlcz8uW21vZGVdXHJcbiAgICAgICAgICAgICAgPyBodG1sYFxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVmLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxvY2FsLWVsZW1cclxuICAgICAgICAgICAgICAgICAgICAgIGxvY2FsS2V5PVwiJHtwLm5vdGVzPy5bbW9kZV19XCJcclxuICAgICAgICAgICAgICAgICAgICAgIGZhbGxiYWNrPVwiJHtwLm5vdGVzPy5bbW9kZV19XCJcclxuICAgICAgICAgICAgICAgICAgICAgIGxvY2FsTGFuZz1cIiR7dGhpcy5jdXJyZW50TGFuZ31cIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8L2xvY2FsLWVsZW1cclxuICAgICAgICAgICAgICAgICAgICA+PHN1cD4qPC9zdXA+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgYFxyXG4gICAgICAgICAgICAgIDogbm90aGluZ31cclxuICAgICAgICAgIGBcclxuICAgICAgOiBwLm5vdGVzPy5bbW9kZV1cclxuICAgICAgPyBodG1sYFxyXG4gICAgICAgICR7IXRoaXMuaXNCMmJVc2VyXHJcbiAgICAgICAgPyBodG1sYFxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwbGFuLXN1Yi1ub3RlXCI+XHJcbiAgICAgICAgICAgICAgICA8bG9jYWwtZWxlbVxyXG4gICAgICAgICAgICAgICAgICBsb2NhbEtleT1cIiR7cC5ub3Rlcz8uW21vZGVdfVwiXHJcbiAgICAgICAgICAgICAgICAgIGZhbGxiYWNrPVwiJHtwLm5vdGVzPy5bbW9kZV19XCJcclxuICAgICAgICAgICAgICAgICAgbG9jYWxMYW5nPVwiJHt0aGlzLmN1cnJlbnRMYW5nfVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8L2xvY2FsLWVsZW0+XHJcbiAgICAgICAgICAgICAgPC9kaXY+YDogbm90aGluZyB9XHJcbiAgICAgICAgICAgIGBcclxuICAgICAgOiBub3RoaW5nO1xyXG5cclxuICBcclxuICAgIGNvbnN0IGJ1dHRvblRwbCA9XHJcbiAgICAgIGN0YS5raW5kID09PSBcImVtcHR5XCJcclxuICAgICAgICA/IG51bGxcclxuICAgICAgICA6IGh0bWxgPGJ1dHRvblxyXG4gICAgICAgICAgICBjbGFzcz1cIiR7bW9iaWxlQnRuQ2xhc3N9XCJcclxuICAgICAgICAgICAgP2Rpc2FibGVkPSR7aXNEaXNhYmxlZH1cclxuICAgICAgICAgICAgdmFsdWU9JHtsZWdhY3lWYWx1ZX1cclxuICAgICAgICAgICAgZGF0YS10eXBlPSR7dHhuVHlwZSB8fCBcIlwifVxyXG4gICAgICAgICAgICBkYXRhLWlkPSR7dHhuSWQgfHwgXCJcIn1cclxuICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5fZW1pdExlZ2FjeUNsaWNrfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICAke2J1dHRvbkNvbnRlbnR9XHJcbiAgICAgICAgICA8L2J1dHRvbj5gO1xyXG5cclxuICAgIHJldHVybiBodG1sYFxyXG4gICAgICA8ZGl2IGNsYXNzPVwibW9iaWxlLXN1YnNjcmlwdGlvblwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2JpbGUtdGFic1wiPlxyXG4gICAgICAgICAgJHt0aGlzLnBsYW5zLm1hcChcclxuICAgICAgICAgICAgKHBsYW4sIGkpID0+IGh0bWxgXHJcbiAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0YWIgJHtpID09PSB0aGlzLmFjdGl2ZVBsYW5JZHggPyBcImFjdGl2ZVwiIDogXCJcIn1cIlxyXG4gICAgICAgICAgICAgICAgQGNsaWNrPSR7KCkgPT4gKHRoaXMuYWN0aXZlUGxhbklkeCA9IGkpfVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxsb2NhbC1lbGVtXHJcbiAgICAgICAgICAgICAgICAgIGxvY2FsS2V5PVwiJHtwbGFuLm5hbWV9XCJcclxuICAgICAgICAgICAgICAgICAgbG9jYWxMYW5nPVwiJHt0aGlzLmN1cnJlbnRMYW5nfVwiXHJcbiAgICAgICAgICAgICAgICA+PC9sb2NhbC1lbGVtPlxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICBgXHJcbiAgICAgICAgICApfVxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9iaWxlLWJpbGxpbmdcIj5cclxuICAgICAgICAgICR7dGhpcy5fc2hvdWxkU2hvd0JpbGxpbmdUb2dnbGUoKVxyXG4gICAgICAgICAgICA/IGh0bWxgXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIj5cclxuICAgICAgICAgICAgICAgICAgPGxvY2FsLWVsZW1cclxuICAgICAgICAgICAgICAgICAgICBsb2NhbEtleT1cIlNlbGVjdCB5b3VyIGJpbGxpbmcgcHJlZmVyZW5jZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgbG9jYWxMYW5nPVwiJHt0aGlzLmN1cnJlbnRMYW5nfVwiXHJcbiAgICAgICAgICAgICAgICAgID48L2xvY2FsLWVsZW0+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b2dnbGUtYnV0dG9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9JHt0aGlzLmJpbGxpbmdNb2RlID09PSBcInllYXJseVwiID8gXCJhY3RpdmVcIiA6IFwiXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5iaWxsaW5nTW9kZUxvY2tlZH1cclxuICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgIXRoaXMuYmlsbGluZ01vZGVMb2NrZWQgJiYgKHRoaXMuYmlsbGluZ01vZGUgPSBcInllYXJseVwiKX1cclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsb2NhbC1lbGVtXHJcbiAgICAgICAgICAgICAgICAgICAgICBsb2NhbEtleT1cIlllYXJseVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBsb2NhbExhbmc9XCIke3RoaXMuY3VycmVudExhbmd9XCJcclxuICAgICAgICAgICAgICAgICAgICA+PC9sb2NhbC1lbGVtPlxyXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPS
1R7dGhpcy5iaWxsaW5nTW9kZSA9PT0gXCJtb250aGx5XCIgPyBcImFjdGl2ZVwiIDogXCJcIn1cclxuICAgICAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmJpbGxpbmdNb2RlTG9ja2VkfVxyXG4gICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAhdGhpcy5iaWxsaW5nTW9kZUxvY2tlZCAmJiAodGhpcy5iaWxsaW5nTW9kZSA9IFwibW9udGhseVwiKX1cclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsb2NhbC1lbGVtXHJcbiAgICAgICAgICAgICAgICAgICAgICBsb2NhbEtleT1cIk1vbnRobHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgbG9jYWxMYW5nPVwiJHt0aGlzLmN1cnJlbnRMYW5nfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvbG9jYWwtZWxlbT5cclxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICR7dGhpcy5iaWxsaW5nTW9kZSA9PT0gXCJ5ZWFybHlcIlxyXG4gICAgICAgICAgICAgICAgICA/IGh0bWxgPGRpdiBjbGFzcz1cIm9mZmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj7inJQ8L3NwYW4+JHt5ZWFybHlPZmZlclRleHR9XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bG9jYWwtZWxlbVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhbEtleT1cIk9GRlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsTGFuZz1cIiR7dGhpcy5jdXJyZW50TGFuZ31cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgPjwvbG9jYWwtZWxlbT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5gXHJcbiAgICAgICAgICAgICAgICAgIDogXCJcIn1cclxuICAgICAgICAgICAgICBgXHJcbiAgICAgICAgICAgIDogbnVsbH1cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vYmlsZS1oZXJvXCI+XHJcbiAgICAgICAgICAke3AubmFtZSA9PT0gXCJGUkVFXCJcclxuICAgICAgICAgICAgPyBodG1sYDxkaXYgY2xhc3M9XCJoZXJvLXRhZ2xpbmVcIj5cclxuICAgICAgICAgICAgICAgIDxsb2NhbC1lbGVtXHJcbiAgICAgICAgICAgICAgICAgIGxvY2FsS2V5PVwiT3VyIGlkZWFsIGZyZWUgcGxhbiB0byB0ZXN0IG91ciBjbGFzc2VzIGFuZCBhY3Rpdml0aWVzXCJcclxuICAgICAgICAgICAgICAgICAgZmFsbGJhY2s9XCJPdXIgaWRlYWwgZnJlZSBwbGFuIHRvIHRlc3Qgb3VyIGNsYXNzZXMgYW5kIGFjdGl2aXRpZXNcIlxyXG4gICAgICAgICAgICAgICAgICBsb2NhbExhbmc9XCIke3RoaXMuY3VycmVudExhbmd9XCJcclxuICAgICAgICAgICAgICAgID48L2xvY2FsLWVsZW0+XHJcbiAgICAgICAgICAgICAgPC9kaXY+YFxyXG4gICAgICAgICAgICA6IGh0bWxgXHJcbiAgICAgICAgICAgICAgICAke3AubmFtZSA9PT0gXCJCQVNJQ1wiXHJcbiAgICAgICAgICAgICAgICAgID8gaHRtbGA8ZGl2IGNsYXNzPVwiaGVyby10YWdsaW5lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bG9jYWwtZWxlbVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhbEtleT1cIkFsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhbGxiYWNrPVwiQWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxMYW5nPVwiJHt0aGlzLmN1cnJlbnRMYW5nfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9sb2NhbC1lbGVtPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGxvY2FsLWVsZW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxLZXk9XCJvdXIgRnJlZSBjb250ZW50ICsgVW5saW1pdGVkIGFjdGl2aXRpZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmYWxsYmFjaz1cIm91ciBGcmVlIGNvbnRlbnQgKyBVbmxpbWl0ZWQgYWN0aXZpdGllc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsTGFuZz1cIiR7dGhpcy5jdXJyZW50TGFuZ31cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgPjwvbG9jYWwtZWxlbT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5gXHJcbiAgICAgICAgICAgICAgICAgIDogaHRtbGA8ZGl2IGNsYXNzPVwiaGVyby10YWdsaW5lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bG9jYWwtZWxlbVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhbEtleT1cIlVubGltaXRlZCBhY2Nlc3MgdG9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmYWxsYmFjaz1cIlVubGltaXRlZCBhY2Nlc3MgdG9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhbExhbmc9XCIke3RoaXMuY3VycmVudExhbmd9XCJcclxuICAgICAgICAgICAgICAgICAgICAgID48L2xvY2FsLWVsZW0+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bG9jYWwtZWxlbVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhbEtleT1cImFsbCBvdXIgY2xhc3NlcyBhbmQgYWN0aXZpdGllc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhbGxiYWNrPVwiYWxsIG91ciBjbGFzc2VzIGFuZCBhY3Rpdml0aWVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxMYW5nPVwiJHt0aGlzLmN1cnJlbnRMYW5nfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9sb2NhbC1lbGVtPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PmB9XHJcbiAgICAgICAgICAgICAgYH1cclxuICAgICAgICAgICR7YnV0dG9uVHBsfSAke3JlZmVycmFsTm90ZXN9XHJcbiAgICAgICAgICAkeyF0aGlzLmlzQjJiVXNlciAmJiBhcHByb3ggPyBodG1sYDxkaXYgY2xhc3M9XCJoZXJvLWFwcHJveFwiPiR7YXBwcm94fTwvZGl2PmAgOiBcIlwifVxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8dWwgY2xhc3M9XCJtb2JpbGUtZmVhdHVyZXMgbGlzdC1jaGVja2VkXCI+XHJcbiAgICAgICAgICAke3RoaXMuZmVhdHVyZXMubWFwKChmLCBpKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHB2ID0gdGhpcy5fY29lcmNlUGVya1ZhbHVlKHAucGVya3M/LltpXSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHRpcCA9IHRoaXMudG9vbHRpcHNbaV0gfHwgXCJcIjtcclxuXHJcbiAgICAgICAgICAgIC8vIEluIG1vYmlsZTogdGV4dCBjZWxscyAoZS5nLiwgXCJVbmxpbWl0ZWRcIiwgXCIzIGNvbnZlcnNhdGlvbnNcIikgYXJlIGNvbnNpZGVyZWQgaW5jbHVkZWQsXHJcbiAgICAgICAgICAgIC8vIGJ1dCB3ZSBET04nVCBzaG93IHRoZSB0ZXh04oCUb25seSB0aGUgdGljayArIGxhYmVsLlxyXG4gICAgICAgICAgICBjb25zdCBpc09uID0gcHYua2luZCA9PT0gXCJpY29uXCIgPyBwdi5vbiA6ICE
1hcHY7IC8vIHRleHQvb2JqZWN0ID0+IHRydWVcclxuICAgICAgICAgICAgY29uc3Qgcm93Q2xhc3MgPSBpc09uID8gXCJvblwiIDogXCJvZmZcIjtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiBodG1sYFxyXG4gICAgICAgICAgICAgIDxsaSBjbGFzcz1cIiR7cm93Q2xhc3N9XCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjb250YWluZXItY2hlY2tib3ggcmVhZG9ubHlcIj5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiID9jaGVja2VkPSR7aXNPbn0gZGlzYWJsZWQgLz5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGVja21hcmtcIj48L3NwYW4+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmVhdHVyZS10ZXh0ICR7dGhpcy5faXNGZWF0dXJlQm9sZChpKSA/IFwiYm9sZFwiIDogXCJcIn1cIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxvY2FsLWVsZW1cclxuICAgICAgICAgICAgICAgICAgICAgIGxvY2FsS2V5PVwiJHtmfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBsb2NhbExhbmc9XCIke3RoaXMuY3VycmVudExhbmd9XCJcclxuICAgICAgICAgICAgICAgICAgICA+PC9sb2NhbC1lbGVtPlxyXG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi10b29sdGlwXCIgdGl0bGU9XCIke3RpcH1cIj5cclxuICAgICAgICAgICAgICAgICAg4pOYXHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICBgO1xyXG4gICAgICAgICAgfSl9XHJcbiAgICAgICAgPC91bD5cclxuICAgICAgPC9kaXY+XHJcbiAgICBgO1xyXG4gIH1cclxufVxyXG5cclxuY3VzdG9tRWxlbWVudHMuZGVmaW5lKFwic3Vic2NyaXB0aW9uLXRhYmxlXCIsIFN1YnNjcmlwdGlvblRhYmxlKTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///4579\n\n}')},4704:(__unused_webpack_module,__unused_webpack___webpack_exports__,__webpack_require__)=>{eval('{\n// EXTERNAL MODULE: ./node_modules/lit-element/index.js\nvar lit_element = __webpack_require__(4420);\n// EXTERNAL MODULE: ./node_modules/pwa-helpers/connect-mixin.js\nvar connect_mixin = __webpack_require__(4753);\n// EXTERNAL MODULE: ./src/redux/store.js + 1 modules\nvar store = __webpack_require__(5548);\n// EXTERNAL MODULE: ./node_modules/lit/index.js\nvar lit = __webpack_require__(6161);\n;// ./src/components/referral-page/referral-pre-page.scss\n /* harmony default export */ const referral_pre_page = ((0,lit/* css */.AH)`@import url(https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;500;600;700&display=swap);a{color:#0493cc;cursor:pointer;text-decoration:none;font-size:16px}a:hover{color:#97c940}.center{text-align:center!important}.left{text-align:left!important}.right{text-align:right!important}img,svg{vertical-align:middle}*,::after,::before{box-sizing:border-box}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}.flex-center{display:flex!important;justify-content:center!important}textarea::placeholder{color:#848fa5!important}@media(max-width:768px){.tab-content{position:relative;padding:0 0 0 34px}}.referral-container{width:100%;height:100%;margin:70px auto 0 auto}.referral-top-container{display:flex;flex-wrap:wrap}.left,.right{flex:1;width:50%}.right{display:flex;justify-content:center;align-items:center;text-align:center;position:relative}.referral-heading{width:450px;word-wrap:break-word;margin-left:30px}.image-wrapper{width:100%;z-index:1}.bg-referral-intro{text-align:center!important}.referral-cta-wrapper{position:relative;width:100%;overflow:hidden}.referral-cta-image-wrapper{position:relative;width:100%;z-index:9999;margin-top:-20px}.cta-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:90%;color:#fff;text-align:center}.referral-group-wrapper{position:relative;width:90%;margin:0 auto}.referral-group-image-wrapper{position:relative}.referral-product-text{position:absolute!important;display:inline-grid;left:0!important;top:10%!important;place-items:center;width:100%;margin:0 auto;text-align:center}.referral-cta{background-color:#fff;font-size:18px;color:#213858;padding:8px 20px;border:1px solid #fff;border-radius:100px;display:inline-block;text-decoration:none;margin:8px auto;text-align:center;font-weight:700}.btn-highlight{font-weight:700;font-size:18px;color:#0094cc;text-transform:uppercase}.referral-cta:hover{color:#0493cc}.referral-cta:hover .btn-highlight{color:#0493cc}.bg-referral-intro-wrapper{display:flex;flex-wrap:wrap}.referral-card{flex-grow:1;width:calc(33.33% - 20px);text-align:center;padding:40px 20px;background-color:#fff}.referral-title{font-size:18px;font-weight:600;color:#67748c;margin-bottom:12px;font-family:"Open Sans",sans-serif}.referral-description{font-size:18px;color:#67748c;font-weight:400;line-height:1.5;margin:5px auto;max-width:250px;font-family:"Open Sans",sans-serif;text-align:center}@media(max-width:768px){.referral-container{padding:0;margin:0}.referral-top-container{display:inline-block}.referral-heading{width:90%;
1min-width:200px;margin:0 auto}.left,.right{display:block;width:100%}.bg-referral-intro-wrapper{display:block}.referral-card{display:inline}.image-wrapper{max-width:100%}.referral-signup-button-wrapper{width:80%;padding:0;margin:0}.blank_div{display:none}.referral-cta{font-size:12px;font-weight:400;padding:4px 10px;margin:4px auto}.btn-highlight{font-size:12px}}@media(min-width:1500px){.referral-top-container{height:400px}}`);\n \n// EXTERNAL MODULE: ./src/assets/images/referral-rewards-nbg.png\nvar referral_rewards_nbg = __webpack_require__(5765);\n// EXTERNAL MODULE: ./src/assets/images/referral-bg-cta.png\nvar referral_bg_cta = __webpack_require__(2773);\n// EXTERNAL MODULE: ./src/assets/images/referral-group.png\nvar referral_group = __webpack_require__(1260);\n// EXTERNAL MODULE: ./src/assets/images/icons/ava-icon.png\nvar ava_icon = __webpack_require__(6884);\n// EXTERNAL MODULE: ./src/assets/images/icons/development-icon.png\nvar development_icon = __webpack_require__(3559);\n// EXTERNAL MODULE: ./src/assets/images/icons/family-icon.png\nvar family_icon = __webpack_require__(8240);\n// EXTERNAL MODULE: ./src/utils/analytics.js + 1 modules\nvar analytics = __webpack_require__(5908);\n;// ./src/components/referral-page/referral-pre-page.js\n\r\n \r\n \r\n \r\n \r\n //import \'./referral-card.js\';\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n class ReferralPrePage extends (0,connect_mixin/* connect */.N)(store/* store */.M) (lit_element/* LitElement */.WF) {\r\n \r\n static get properties() {\r\n return {\r\n user_id : { type : Number }\r\n };\r\n }\r\n\r\n static get styles() {\r\n return [referral_pre_page];\r\n }\r\n \r\n constructor(){\r\n super();\r\n }\r\n\r\n stateChanged(state) {\r\n this.user_id = state.userData.user_id;\r\n }\r\n \r\n _registrationRedirect(event){\r\n (0,analytics/* eventReferralJoin */.qx)();\r\n event.stopImmediatePropagation();\r\n event.preventDefault();\r\n const registrationPageUrl = (this.user_id!="") ? "https://babysparks.com/subscribe/premium-yearly/ref-wp": "//babysparks.com/register/"\r\n window.location.assign(`${registrationPageUrl}`)\r\n }\r\n\r\n render() {\r\n return (0,lit_element/* html */.qy)`\r\n <div class="referral-container">\r\n <div class="referral-top-container">\r\n <div class="left">\r\n <div class="referral-heading">\r\n <heading-element\r\n headingType="h2"\r\n convertHTML="true"\r\n headingText="<local-elem localKey=\'Welcome to\'></local-elem>"\r\n headingClass="referral-title referral-title-padding"\r\n ></heading-element>\r\n <heading-element\r\n headingType="h2"\r\n convertHTML="true"\r\n headingText="BabySparks!"\r\n headingClass="referral-title"\r\n ></heading-element>\r\n <p-element pText="<local-elem localKey=\'Your friend sent you an exclusive invitation to\'></local-elem> <strong><local-elem localKey=\'join\'></local-elem></strong> <local-elem localKey=\'over\'></local-elem> <strong><local-elem localKey=\'10 million parents worldwide\'></local-elem></strong> <local-elem localKey=\'who trust BabySparks to support their parenting journey.\'></local-elem>" pClass="referral-top-desc" pHtmlElem=true></p-element>\r\n </div>\r\n </div>\r\n <div class="right">\r\n <div class="image-wrapper">\r\n <image-element imageClass="bs-referral-img" imageSrc="${referral_rewards_nbg/* default */.A}" alt="Referral Rewards"></image-element>\r\n </div>\r\n </div>\r\n </div>\r\n </div> \r\n <div class="referral-cta-wrapper">\r\n <div class="referral-cta-image-wrapper">\r\n <image-element imageClass="referral-cta-image" imageSrc="${referral_bg_cta/* default */.A}" alt="Referral Rewards CTA"></image-element>\r\n <div class="cta-text">\r\n <heading-element headingType="h2" headingText=\'<local-elem localKey="Sign up today & enjoy a"></local-elem> <span class="highlight"> <local-elem localKey="special price"></local-elem> </span> - <local-elem localKey="just for friends!"></local-elem>\' headingClass="title header-title referral-header-title" convertHTML=true></heading-element>\r\n <p-element pText="<local-elem localKey=\'Your friend\'s referral gives you\'></local-elem> <strong><local-elem localKey=\'60% Off\'></local-elem></strong> <local-elem localKey=\'your first purchase of a yearly subscription.\'></local-elem>" pClass="referral-product-text" pHtmlElem=true></p-element>\r\n <a href="javascript:void(0);" @click="${this._registrationRedirect}" class="referral-cta"><local-elem localKey=\'Sign Up Now & Claim Your\'></local-elem> <span class="btn-highlight"><local-elem localKey=\'60% Off\'></local-elem></span> </a>\r\n </div>\r\n </div>\r\n </div>\r\n <div class="referral-container">\r\n <div class="bg-referral-intro"> \r\n <heading-element\r\n headingType="h3"\r\n convertHTML="true"\r\n headingText="<local-elem localKey=\'What is BabySparks\'></local-elem>?"\r\n headingClass="referral-intro-title"\r\n ></heading-element>\r\n <p-element pText="<local-elem localKey=\'BabySparks is your go-to parenting platform, supporting both your childs development and your parenting journey.\'></local-elem>" pClass="referral-intro-desc" pHtmlElem=true></p-element>\r\n </div>\r\n <div class="bg-referral-intro-wrapper"> \r\n <div class="referral-card">\r\n <div class="icon">\r\n <img src="${development_icon/* default */.A}" alt="Icon" />\r\n </div>\r\n <div class="referral-title"><local-elem localKey=\'Early Development Program (0-3 years)\'></local-elem></div>\r\n <div class="referral-description"><local-elem localKey=\'Personalized daily activities, milestone tracking & progress monitoring to supp
1ort your child\'s growth.\'></local-elem></div>\r\n </div>\r\n\r\n <div class="referral-card">\r\n <div class="icon">\r\n <img src="${family_icon/* default */.A}" alt="Icon" />\r\n </div>\r\n <div class="referral-title"><local-elem localKey=\'Expert Support\'></local-elem></div>\r\n <div class="referral-description"><local-elem localKey=\'Access nearly 200 parenting experts through on-demand classes, live group sessions, and private 1:1 coaching on all parenting topics.\'></local-elem></div>\r\n </div>\r\n\r\n <div class="referral-card">\r\n <div class="icon">\r\n <img src="${ava_icon/* default */.A}" alt="Icon" />\r\n </div>\r\n <div class="referral-title"><local-elem localKey=\'AI Assistance\'></local-elem></div>\r\n <div class="referral-description"><local-elem localKey=\'Ava, our 24/7 AI-powered assistant, answers your parenting questions anytime.\'></local-elem></div>\r\n </div>\r\n </div>\r\n <div class="referral-group-wrapper">\r\n <div class="referral-group-image-wrapper">\r\n <image-element imageClass="referral-cta-image" imageSrc="${referral_group/* default */.A}" alt="Referral Rewards Group"></image-element>\r\n <div class="referral-product-text">\r\n <heading-element headingType="h1" headingText=\'<local-elem localKey="BabySparks is here to guide you through every stage of your parenting journey."></local-elem>\' headingClass="title referral-cta-title" convertHTML=true></heading-element>\r\n <p-element pText="<local-elem localKey=\'Join our community of over\'></local-elem> <strong><local-elem localKey=\'10 million\'></local-elem></strong> <local-elem localKey=\'parents at BabySparks.\'></local-elem>" pClass="referral-cta-desc" pHtmlElem=true></p-element>\r\n <div class="referral-signup-button-wrapper"><anchor-tag-element hrefClass="referral-signup-button" hrefAttr="javascript:void(0);" @click="${this._registrationRedirect}" hrefValue="<local-elem localKey=\'Sign Up!\'></local-elem>" convertHTML=true ></anchor-tag-element></div>\r\n </div>\r\n </div>\r\n </div>\r\n <p-element pText="<local-elem localKey=\'Note: in order to access this special offer please create your account using this landing page\'></local-elem>" pClass="referral-note" pHtmlElem=true></p-element>\r\n </div>\r\n `;\r\n }\r\n }\r\n \r\n customElements.define("referral-pre-page", ReferralPrePage);\r\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDcwNC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7QUFDQTs7Ozs7Ozs7Ozs7Ozs7OztBQ0dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQmFieVNwYXJrcy8uL3NyYy9jb21wb25lbnRzL3JlZmVycmFsLXBhZ2UvcmVmZXJyYWwtcHJlLXBhZ2Uuc2Nzcz9lNzA4Iiwid2VicGFjazovL0JhYnlTcGFya3MvLi9zcmMvY29tcG9uZW50cy9yZWZlcnJhbC1wYWdlL3JlZmVycmFsLXByZS1wYWdl
1LmpzP2JlMzAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtjc3N9IGZyb20gJ2xpdCc7IGV4cG9ydCBkZWZhdWx0IGNzc2BAaW1wb3J0IHVybChodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PU9wZW4rU2Fuczp3Z2h0QDMwMDs0MDA7NTAwOzYwMDs3MDAmZGlzcGxheT1zd2FwKTthe2NvbG9yOiMwNDkzY2M7Y3Vyc29yOnBvaW50ZXI7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Zm9udC1zaXplOjE2cHh9YTpob3Zlcntjb2xvcjojOTdjOTQwfS5jZW50ZXJ7dGV4dC1hbGlnbjpjZW50ZXIhaW1wb3J0YW50fS5sZWZ0e3RleHQtYWxpZ246bGVmdCFpbXBvcnRhbnR9LnJpZ2h0e3RleHQtYWxpZ246cmlnaHQhaW1wb3J0YW50fWltZyxzdmd7dmVydGljYWwtYWxpZ246bWlkZGxlfSosOjphZnRlciw6OmJlZm9yZXtib3gtc2l6aW5nOmJvcmRlci1ib3h9LmgxLC5oMiwuaDMsLmg0LC5oNSwuaDYsaDEsaDIsaDMsaDQsaDUsaDZ7bWFyZ2luLXRvcDowO21hcmdpbi1ib3R0b206LjVyZW07Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjEuMn0uZmxleC1jZW50ZXJ7ZGlzcGxheTpmbGV4IWltcG9ydGFudDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudH10ZXh0YXJlYTo6cGxhY2Vob2xkZXJ7Y29sb3I6Izg0OGZhNSFpbXBvcnRhbnR9QG1lZGlhKG1heC13aWR0aDo3NjhweCl7LnRhYi1jb250ZW50e3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmc6MCAwIDAgMzRweH19LnJlZmVycmFsLWNvbnRhaW5lcnt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO21hcmdpbjo3MHB4IGF1dG8gMCBhdXRvfS5yZWZlcnJhbC10b3AtY29udGFpbmVye2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcH0ubGVmdCwucmlnaHR7ZmxleDoxO3dpZHRoOjUwJX0ucmlnaHR7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3RleHQtYWxpZ246Y2VudGVyO3Bvc2l0aW9uOnJlbGF0aXZlfS5yZWZlcnJhbC1oZWFkaW5ne3dpZHRoOjQ1MHB4O3dvcmQtd3JhcDpicmVhay13b3JkO21hcmdpbi1sZWZ0OjMwcHh9LmltYWdlLXdyYXBwZXJ7d2lkdGg6MTAwJTt6LWluZGV4OjF9LmJnLXJlZmVycmFsLWludHJve3RleHQtYWxpZ246Y2VudGVyIWltcG9ydGFudH0ucmVmZXJyYWwtY3RhLXdyYXBwZXJ7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJTtvdmVyZmxvdzpoaWRkZW59LnJlZmVycmFsLWN0YS1pbWFnZS13cmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCU7ei1pbmRleDo5OTk5O21hcmdpbi10b3A6LTIwcHh9LmN0YS10ZXh0e3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpO3dpZHRoOjkwJTtjb2xvcjojZmZmO3RleHQtYWxpZ246Y2VudGVyfS5yZWZlcnJhbC1ncm91cC13cmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjkwJTttYXJnaW46MCBhdXRvfS5yZWZlcnJhbC1ncm91cC1pbWFnZS13cmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlfS5yZWZlcnJhbC1wcm9kdWN0LXRleHR7cG9zaXRpb246YWJzb2x1dGUhaW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWdyaWQ7bGVmdDowIWltcG9ydGFudDt0b3A6MTAlIWltcG9ydGFudDtwbGFjZS1pdGVtczpjZW50ZXI7d2lkdGg6MTAwJTttYXJnaW46MCBhdXRvO3RleHQtYWxpZ246Y2VudGVyfS5yZWZlcnJhbC1jdGF7YmFja2dyb3VuZC1jb2xvcjojZmZmO2ZvbnQtc2l6ZToxOHB4O2NvbG9yOiMyMTM4NTg7cGFkZGluZzo4cHggMjBweDtib3JkZXI6MXB4IHNvbGlkICNmZmY7Ym9yZGVyLXJhZGl1czoxMDBweDtkaXNwbGF5OmlubGluZS1ibG9jazt0ZXh0LWRlY29yYXRpb246bm9uZTttYXJnaW46OHB4IGF1dG87dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC13ZWlnaHQ6NzAwfS5idG4taGlnaGxpZ2h0e2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6MThweDtjb2xvcjojMDA5NGNjO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX0ucmVmZXJyYWwtY3RhOmhvdmVye2NvbG9yOiMwNDkzY2N9LnJlZmVycmFsLWN0YTpob3ZlciAuYnRuLWhpZ2hsaWdodHtjb2xvcjojMDQ5M2NjfS5iZy1yZWZlcnJhbC1pbnRyby13cmFwcGVye2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcH0ucmVmZXJyYWwtY2FyZHtmbGV4LWdyb3c6MTt3aWR0aDpjYWxjKDMzLjMzJSAtIDIwcHgpO3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmc6NDBweCAyMHB4O2JhY2tncm91bmQtY29sb3I6I2ZmZn0ucmVmZXJyYWwtdGl0bGV7Zm9udC1zaXplOjE4cHg7Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOiM2Nzc0OGM7bWFyZ2luLWJvdHRvbToxMnB4O2ZvbnQtZmFtaWx5OlwiT3BlbiBTYW5zXCIsc2Fucy1zZXJpZn0ucmVmZXJyYWwtZGVzY3JpcHRpb257Zm9udC1zaXplOjE4cHg7Y29sb3I6IzY3NzQ4Yztmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS41O21hcmdpbjo1cHggYXV0bzttYXgtd2lkdGg6MjUwcHg7Zm9udC1mYW1pbHk6XCJPcGVuIFNhbnNcIixzYW5zLXNlcmlmO3RleHQtYWxpZ246Y2VudGVyfUBtZWRpYShtYXgtd2lkdGg6NzY4cHgpey5yZWZlcnJhbC1jb250YWluZXJ7cGFkZGluZzowO21hcmdpbjowfS5yZWZlcnJhbC10b3AtY29udGFpbmVye2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5yZWZlcnJhbC1oZWFkaW5ne3dpZHRoOjkwJTttaW4td2lkdGg6MjAwcHg7bWFyZ2luOjAgYXV0b30ubGVmdCwucmlnaHR7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlfS5iZy1yZWZlcnJhbC1pbnRyby13cmFwcGVye2Rpc3BsYXk6YmxvY2t9LnJlZmVycmFsLWNhcmR7ZGlzcGxheTppbmxpbmV9LmltYWdlLXdyYXBwZXJ7bWF4LXdpZHRoOjEwMCV9LnJlZmVycmFsLXNpZ251cC1idXR0b24td3JhcHBlcnt3aWR0aDo4MCU7cGFkZGluZzowO21hcmdpbjowfS5ibGFua19kaXZ7ZGlzcGxheTpub25lfS5yZWZlcnJhbC1jdGF7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NDAwO3BhZGRpbmc6NHB4IDEwcHg7bWFyZ2luOjRweCBhdXRvfS5idG4taGlnaGxpZ2h0e2ZvbnQtc2l6ZToxMnB4fX1AbWVkaWEobWluLXdpZHRoOjE1MDBweCl7LnJlZmVycmFsLXRvcC1jb250YWluZXJ7aGVpZ2h0OjQwMHB4fX1gO1xuICAgICIsImltcG9ydCB7XHJcbiAgICBMaXRFbGVtZW50LFxyXG4gICAgaH
1RtbCxcclxuICAgIGNzc1xyXG4gIH0gZnJvbSBcImxpdC1lbGVtZW50XCI7XHJcbiAgXHJcbiAgaW1wb3J0IHsgY29ubmVjdCB9IGZyb20gJ3B3YS1oZWxwZXJzJztcclxuICBpbXBvcnQgeyBzdG9yZSB9IGZyb20gJy4uLy4uL3JlZHV4L3N0b3JlLmpzJztcclxuICBpbXBvcnQgcmVmZXJyYWxQcmVQYWdlU3R5bGVzIGZyb20gJy4vcmVmZXJyYWwtcHJlLXBhZ2Uuc2Nzcyc7XHJcbiAgLy9pbXBvcnQgJy4vcmVmZXJyYWwtY2FyZC5qcyc7XHJcbiAgaW1wb3J0IHJlZmVycmFsUmV3YXJkcyBmcm9tICcuLi8uLi9hc3NldHMvaW1hZ2VzL3JlZmVycmFsLXJld2FyZHMtbmJnLnBuZyc7XHJcbiAgaW1wb3J0IHJlZmVycmFsQ1RBIGZyb20gJy4uLy4uL2Fzc2V0cy9pbWFnZXMvcmVmZXJyYWwtYmctY3RhLnBuZyc7XHJcbiAgaW1wb3J0IHJlZmVycmFsR3JvdXAgZnJvbSAnLi4vLi4vYXNzZXRzL2ltYWdlcy9yZWZlcnJhbC1ncm91cC5wbmcnO1xyXG4gIGltcG9ydCBhdmFJY29uIGZyb20gXCIuLi8uLi9hc3NldHMvaW1hZ2VzL2ljb25zL2F2YS1pY29uLnBuZ1wiXHJcbiAgaW1wb3J0IGRldmVsb3BtZW50SWNvbiBmcm9tIFwiLi4vLi4vYXNzZXRzL2ltYWdlcy9pY29ucy9kZXZlbG9wbWVudC1pY29uLnBuZ1wiXHJcbiAgaW1wb3J0IGZhbWlseUljb24gZnJvbSBcIi4uLy4uL2Fzc2V0cy9pbWFnZXMvaWNvbnMvZmFtaWx5LWljb24ucG5nXCJcclxuICBpbXBvcnQgeyBldmVudFJlZmVycmFsSm9pbiB9IGZyb20gJy4uLy4uL3V0aWxzL2FuYWx5dGljcy5qcydcclxuXHJcbiAgY2xhc3MgUmVmZXJyYWxQcmVQYWdlIGV4dGVuZHMgY29ubmVjdChzdG9yZSkgKExpdEVsZW1lbnQpIHtcclxuICAgXHJcbiAgICBzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKSB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgdXNlcl9pZCA6IHsgdHlwZSA6IE51bWJlciB9XHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGdldCBzdHlsZXMoKSB7XHJcbiAgICAgICAgcmV0dXJuIFtyZWZlcnJhbFByZVBhZ2VTdHlsZXNdO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBjb25zdHJ1Y3Rvcigpe1xyXG4gICAgICBzdXBlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRlQ2hhbmdlZChzdGF0ZSkge1xyXG4gICAgICB0aGlzLnVzZXJfaWQgPSBzdGF0ZS51c2VyRGF0YS51c2VyX2lkO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAgX3JlZ2lzdHJhdGlvblJlZGlyZWN0KGV2ZW50KXtcclxuICAgICAgICBldmVudFJlZmVycmFsSm9pbigpO1xyXG4gICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICBjb25zdCByZWdpc3RyYXRpb25QYWdlVXJsID0gKHRoaXMudXNlcl9pZCE9XCJcIikgPyBwcm9jZXNzLmVudi5XT1JEUFJFU1NfUFVSQ0hBU0VfUEFHRV9VUkw6IHByb2Nlc3MuZW52LldPUkRQUkVTU19SRUdJU1RSQVRJT05fVVJMXHJcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmFzc2lnbihgJHtyZWdpc3RyYXRpb25QYWdlVXJsfWApXHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICByZXR1cm4gaHRtbGBcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlZmVycmFsLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlZmVycmFsLXRvcC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlZmVycmFsLWhlYWRpbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGhlYWRpbmctZWxlbWVudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWFkaW5nVHlwZT1cImgyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29udmVydEhUTUw9XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGluZ1RleHQ9XCI8bG9jYWwtZWxlbSBsb2NhbEtleT0nV2VsY29tZSB0byc+PC9sb2NhbC1lbGVtPlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRpbmdDbGFzcz1cInJlZmVycmFsLXRpdGxlICByZWZlcnJhbC10aXRsZS1wYWRkaW5nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvaGVhZGluZy1lbGVtZW50PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aGVhZGluZy1lbGVtZW50XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRpbmdUeXBlPVwiaDJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJ0S
1FRNTD1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWFkaW5nVGV4dD1cIkJhYnlTcGFya3MhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGluZ0NsYXNzPVwicmVmZXJyYWwtdGl0bGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9oZWFkaW5nLWVsZW1lbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwLWVsZW1lbnQgcFRleHQ9XCI8bG9jYWwtZWxlbSBsb2NhbEtleT0nWW91ciBmcmllbmQgc2VudCB5b3UgYW4gZXhjbHVzaXZlIGludml0YXRpb24gdG8nPjwvbG9jYWwtZWxlbT4gPHN0cm9uZz48bG9jYWwtZWxlbSBsb2NhbEtleT0nam9pbic+PC9sb2NhbC1lbGVtPjwvc3Ryb25nPiA8bG9jYWwtZWxlbSBsb2NhbEtleT0nb3Zlcic+PC9sb2NhbC1lbGVtPiA8c3Ryb25nPjxsb2NhbC1lbGVtIGxvY2FsS2V5PScxMCBtaWxsaW9uIHBhcmVudHMgd29ybGR3aWRlJz48L2xvY2FsLWVsZW0+PC9zdHJvbmc+IDxsb2NhbC1lbGVtIGxvY2FsS2V5PSd3aG8gdHJ1c3QgQmFieVNwYXJrcyB0byBzdXBwb3J0IHRoZWlyIHBhcmVudGluZyBqb3VybmV5Lic+PC9sb2NhbC1lbGVtPlwiIHBDbGFzcz1cInJlZmVycmFsLXRvcC1kZXNjXCIgcEh0bWxFbGVtPXRydWU+PC9wLWVsZW1lbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZS13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWFnZS1lbGVtZW50IGltYWdlQ2xhc3M9XCJicy1yZWZlcnJhbC1pbWdcIiBpbWFnZVNyYz1cIiR7cmVmZXJyYWxSZXdhcmRzfVwiIGFsdD1cIlJlZmVycmFsIFJld2FyZHNcIj48L2ltYWdlLWVsZW1lbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PiBcclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVmZXJyYWwtY3RhLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlZmVycmFsLWN0YS1pbWFnZS13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGltYWdlLWVsZW1lbnQgaW1hZ2VDbGFzcz1cInJlZmVycmFsLWN0YS1pbWFnZVwiIGltYWdlU3JjPVwiJHtyZWZlcnJhbENUQX1cIiBhbHQ9XCJSZWZlcnJhbCBSZXdhcmRzIENUQVwiPjwvaW1hZ2UtZWxlbWVudD5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3RhLXRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICA8aGVhZGluZy1lbGVtZW50IGhlYWRpbmdUeXBlPVwiaDJcIiBoZWFkaW5nVGV4dD0nPGxvY2FsLWVsZW0gbG9jYWxLZXk9XCJTaWduIHVwIHRvZGF5ICYgZW5qb3kgYVwiPjwvbG9jYWwtZWxlbT4gPHNwYW4gY2xhc3M9XCJoaWdobGlnaHRcIj4gPGxvY2FsLWVsZW0gbG9jYWxLZXk9XCJzcGVjaWFsIHByaWNlXCI+PC9sb2NhbC1lbGVtPiA8L3NwYW4+IC0gPGxvY2FsLWVsZW0gbG9jYWxLZXk9XCJqdXN0IGZvciBmcmllbmRzIVwiPjwvbG9jYWwtZWxlbT4nIGhlYWRpbmdDbGFzcz1cInRpdGxlIGhlYWRlci10aXRsZSByZWZlcnJhbC1oZWFkZXItdGl0bGVcIiBjb252ZXJ0S
1FRNTD10cnVlPjwvaGVhZGluZy1lbGVtZW50PlxyXG4gICAgICAgICAgICAgICAgICAgICAgIDxwLWVsZW1lbnQgcFRleHQ9XCI8bG9jYWwtZWxlbSBsb2NhbEtleT0nWW91ciBmcmllbmQncyByZWZlcnJhbCBnaXZlcyB5b3UnPjwvbG9jYWwtZWxlbT4gPHN0cm9uZz48bG9jYWwtZWxlbSBsb2NhbEtleT0nNjAlIE9mZic+PC9sb2NhbC1lbGVtPjwvc3Ryb25nPiA8bG9jYWwtZWxlbSBsb2NhbEtleT0neW91ciBmaXJzdCBwdXJjaGFzZSBvZiBhIHllYXJseSBzdWJzY3JpcHRpb24uJz48L2xvY2FsLWVsZW0+XCIgcENsYXNzPVwicmVmZXJyYWwtcHJvZHVjdC10ZXh0XCIgcEh0bWxFbGVtPXRydWU+PC9wLWVsZW1lbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKTtcIiBAY2xpY2s9XCIke3RoaXMuX3JlZ2lzdHJhdGlvblJlZGlyZWN0fVwiIGNsYXNzPVwicmVmZXJyYWwtY3RhXCI+PGxvY2FsLWVsZW0gbG9jYWxLZXk9J1NpZ24gVXAgTm93ICYgQ2xhaW0gWW91cic+PC9sb2NhbC1lbGVtPiA8c3BhbiBjbGFzcz1cImJ0bi1oaWdobGlnaHRcIj48bG9jYWwtZWxlbSBsb2NhbEtleT0nNjAlIE9mZic+PC9sb2NhbC1lbGVtPjwvc3Bhbj4gPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVmZXJyYWwtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmctcmVmZXJyYWwtaW50cm9cIj4gXHJcbiAgICAgICAgICAgICAgICAgIDxoZWFkaW5nLWVsZW1lbnRcclxuICAgICAgICAgICAgICAgICAgaGVhZGluZ1R5cGU9XCJoM1wiXHJcbiAgICAgICAgICAgICAgICAgIGNvbnZlcnRIVE1MPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIGhlYWRpbmdUZXh0PVwiPGxvY2FsLWVsZW0gbG9jYWxLZXk9J1doYXQgaXMgQmFieVNwYXJrcyc+PC9sb2NhbC1lbGVtPj9cIlxyXG4gICAgICAgICAgICAgICAgICBoZWFkaW5nQ2xhc3M9XCJyZWZlcnJhbC1pbnRyby10aXRsZVwiXHJcbiAgICAgICAgICAgICAgICAgID48L2hlYWRpbmctZWxlbWVudD5cclxuICAgICAgICAgICAgICAgICAgICA8cC1lbGVtZW50IHBUZXh0PVwiPGxvY2FsLWVsZW0gbG9jYWxLZXk9J0JhYnlTcGFya3MgaXMgeW91ciBnby10byBwYXJlbnRpbmcgcGxhdGZvcm0sIHN1cHBvcnRpbmcgYm90aCB5b3VyIGNoaWxkcyBkZXZlbG9wbWVudCBhbmQgeW91ciBwYXJlbnRpbmcgam91cm5leS4nPjwvbG9jYWwtZWxlbT5cIiBwQ2xhc3M9XCJyZWZlcnJhbC1pbnRyby1kZXNjXCIgcEh0bWxFbGVtPXRydWU+PC9wLWVsZW1lbnQ+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiZy1yZWZlcnJhbC1pbnRyby13cmFwcGVyXCI+IFxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVmZXJyYWwtY2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIiR7ZGV2ZWxvcG1lbnRJY29ufVwiIGFsdD1cIkljb25cIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWZlcnJhbC10aXRsZVwiPjxsb2NhbC1lbGVtIGxvY2FsS2V5PSdFYXJseSBEZXZlbG9wbWVudCBQcm9ncmFtICgwLTMgeWVhcnMpJz48L2xvY2FsLWVsZW0+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlZmVycmFsLWRlc2NyaXB0aW9uXCI+PGxvY2FsLWVsZW0gbG9jYWxLZXk9J1BlcnNvbmFsaXplZCBkYWlseSBhY3Rpdml0aWVzLCBtaWxlc3RvbmUgdHJhY2tpbmcgJiBwcm9ncmVzcyBtb25pdG9yaW5nIHRvIHN1cHBvcnQgeW91ciBjaGlsZCdzIGdyb3d0aC4nPjwvbG9jYWwtZWxlbT48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVmZXJyYWwtY2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIiR7ZmFtaWx5SWNvbn1cIiBhbHQ9XCJJY29uXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVmZXJyYWwtdGl0bGVcIj48bG9jYWwtZWxlbSBsb2NhbEtleT0nRXhwZXJ0IFN1cHBvcnQnPjwvbG9jYWwtZWxlbT48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVmZXJyYWwtZGVzY3JpcHRpb25cIj48bG9jYWwtZWxlbSBsb2NhbEtleT0nQWNjZXNzIG5lYXJseSAyMDAgcGFyZW50aW5nIGV4cGVydHMgdGhyb3VnaCBvbi1kZW1hbmQgY2xhc3NlcywgbGl2ZSBncm91cCBzZXNzaW9ucywgYW5kIHByaXZhdGUgMToxIGNvYWNoaW5nIG9uIGFsbCBwYXJlbnRpbmcgdG9waWNzLic+PC9sb2NhbC1lbGVtPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlZmVycmFsLWNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIke2F2YUljb259XCIgYWx0PVwiSWNvblwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlZmVycmFsLXRpdGxlXCI+PGxvY2FsLWVsZW0gbG9jYWxLZXk9J0FJIEFzc2lzdGFuY2UnPjwvbG9jYWwtZWxlbT48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVmZXJyYWwtZGVzY3JpcHRpb25cIj48bG9jYWwtZWxlbSBsb2NhbEtleT0nQXZhLCBvdXIgMjQvNyBBSS1wb3dlcmVkIGFzc2lzdGFudCwgYW5zd2VycyB5b3VyIHBhcmVudGluZyBxdWVzdGlvbnMgYW55dGltZS4nPjwvbG9jYWwtZWxlbT48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWZlcnJhbC1ncm91cC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVmZXJyYWwtZ3JvdXAtaW1hZ2Utd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1hZ2UtZWxlbWVudCBpbWFnZUNsYXNzPVwicmVmZXJyYWwtY3RhLWltYWdlXCIgaW1hZ2VTcmM9XCIke3JlZmVycmFsR3JvdXB9XCIgYWx0PVwiUmVmZXJyYWwgUmV3YXJkcyBHcm91cFwiPjwvaW1hZ2UtZWxlbWVudD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlZmVycmFsLXByb2R1Y3QtdGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoZWFkaW5nLWVsZW1lbnQgaGVhZGluZ1R5cGU9XCJoMVwiIGhlYWRpbmdUZXh0PSc8bG9jYWwtZWxlbSBsb2NhbEtleT1cIkJhYnlTcGFya3MgaXMgaGVyZSB0byBndWlkZSB5b3UgdGhyb3VnaCBldmVyeSBzdGFnZSBvZiB5b3VyIHBhcmVudGluZyBqb3VybmV5LlwiPjwvbG9jYWwtZWxlbT4nIGhlYWRpbmdDbGFzcz1cInRpdGxlIHJlZmVycmFsLWN0YS10aXRsZVwiIGNvbnZlcnRIVE1MPXRydWU+PC9oZWFkaW5nLWVsZW1lbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHAtZWxlbWVudCBwVGV4dD1cIjxsb2NhbC1lbGVtIGxvY2FsS2V5PSdKb2luIG91ciBjb21tdW5pdHkgb2Ygb3Zlcic+PC9sb2NhbC1lbGVtPiA8c3Ryb25nPjxsb2NhbC1lbGVtIGxvY2FsS2V5PScxMCBtaWxsaW9uJz48L2xvY2FsLWVsZW0+PC9zdHJvbmc+IDxsb2NhbC1lbGVtIGxvY2FsS2V5PSdwYXJlbnRzIGF0IEJhYnlTcGFya3MuJz48L2xvY2FsLWVsZW0+XCIgcENsYXNzPVwicmVmZXJyYWwtY3RhLWRlc2NcIiBwSHRtbEVsZW09dHJ1ZT48L3AtZWxlbWVudD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVmZXJyYWwtc2lnbnVwLWJ1dHRvbi13cmFwcGVyXCI+PGFuY2hvci10YWctZWxlbWVudCBocmVmQ2xhc3M9XCJyZWZlcnJhbC1zaWdudXAtYnV0dG9uXCIgaHJlZkF0dHI9XCJqYXZhc2NyaXB0OnZvaWQoMCk7XCIgQGNsaWNrPVwiJHt0aGlzLl9yZWdpc3RyYXRpb25SZWRpcmVjdH1cIiBocmVmVmFsdWU9XCI8bG9jYWwtZWxlbSBsb2NhbEtleT0nU2lnbiBVcCEnPjwvbG9jYWwtZWxlbT5cIiBjb252ZXJ0S
1FRNTD10cnVlID48L2FuY2hvci10YWctZWxlbWVudD48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICA8cC1lbGVtZW50IHBUZXh0PVwiPGxvY2FsLWVsZW0gbG9jYWxLZXk9J05vdGU6IGluIG9yZGVyIHRvIGFjY2VzcyB0aGlzIHNwZWNpYWwgb2ZmZXIgcGxlYXNlIGNyZWF0ZSB5b3VyIGFjY291bnQgdXNpbmcgdGhpcyBsYW5kaW5nIHBhZ2UnPjwvbG9jYWwtZWxlbT5cIiBwQ2xhc3M9XCJyZWZlcnJhbC1ub3RlXCIgcEh0bWxFbGVtPXRydWU+PC9wLWVsZW1lbnQ+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIGA7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIGN1c3RvbUVsZW1lbnRzLmRlZmluZShcInJlZmVycmFsLXByZS1wYWdlXCIsIFJlZmVycmFsUHJlUGFnZSk7XHJcbiAgIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///4704\n\n}')},6087:(__unused_webpack_module,__unused_webpack___webpack_exports__,__webpack_require__)=>{eval('{\n// EXTERNAL MODULE: ./node_modules/lit-element/index.js\nvar lit_element = __webpack_require__(4420);\n// EXTERNAL MODULE: ./node_modules/lit/index.js\nvar lit = __webpack_require__(6161);\n;// ./src/components/referral-page/referral-post-page.scss\n /* harmony default export */ const referral_post_page = ((0,lit/* css */.AH)`@import url(https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;500;600;700&display=swap);a{color:#0493cc;cursor:pointer;text-decoration:none;font-size:16px}a:hover{color:#97c940}.center{text-align:center!important}.left{text-align:left!important}.right{text-align:right!important}img,svg{vertical-align:middle}*,::after,::before{box-sizing:border-box}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}.flex-center{display:flex!important;justify-content:center!important}textarea::placeholder{color:#848fa5!important}@media(max-width:768px){.tab-content{position:relative;padding:0 0 0 34px}}.referral-post-purchase-page{text-align:center;margin:70px auto 0 auto}.post-image-wrapper{width:300px;display:flex;text-align:center;margin:30px auto}.app-logo-wrapper{display:flex!important;justify-content:center!important;gap:20px}@media(max-width:768px){.referral-post-purchase-page{margin:70px 20px 0 20px}.referral-social-app{width:100px}.referral-social-app img{min-width:106px;width:32%}.post-image-wrapper{min-width:300px;width:100%;display:block}.blank_div{display:none}}`);\n \n// EXTERNAL MODULE: ./src/assets/images/referral-post-purchase.png\nvar referral_post_purchase = __webpack_require__(999);\n;// ./src/components/referral-page/referral-post-page.js\n\r\n \r\n \r\n \r\n\r\n class ReferralPrePage extends lit_element/* LitElement */.WF {\r\n constructor(){\r\n super();\r\n }\r\n\r\n static get styles() {\r\n return [referral_post_page];\r\n }\r\n \r\n \r\n render() {\r\n return (0,lit_element/* html */.qy)`\r\n <div class="referral-post-purchase-page">\r\n <p-element pText="<local-elem localKey=\'Your referral discount has been successfully applied, and your subscription is active.\'></local-elem>" pClass="referral-post-desc font600" pHtmlElem=true></p-element>\r\n <heading-element\r\n headingType="h2"\r\n convertHTML="true"\r\n headingText="<local-elem localKey=\'Welcome to\'></local-elem> BabySparks!"\r\n headingClass="referral-cta-text blue"\r\n ></heading-element>\r\n <div class="post-image-wrapper">\r\n <image-element imageClass="bs-referral-img" imageSrc="${referral_post_purchase/* default */.A}" alt="Referral Rewards"></image-element>\r\n </div>\r\n <div class="next-wrapper">\r\n <heading-element\r\n headingType="h4"\r\n convertHTML="true"\r\n headingText="<local-elem localKey=\'Next Steps\'></local-elem>:"\r\n headingClass="referral-intro-title"\r\n ></heading-element>\r\n <p-element pText="<local-elem localKey=\'Download the BabySparks app to start exploring your personalized tools and resources right away.\'></local-elem>" pClass="referral-post-desc font400" pHtmlElem=true></p-element>\r\n <heading-element\r\n headingType="h4"\r\n convertHTML="true"\r\n headingText="<local-elem localKey=\'Step 1.\'></local-elem>"\r\n headingClass="referral-intro-title topMargin"\r\n ></heading-element>\r\n <p-element pText="<local-elem localKey=\'Download the BabySparks App:\'></local-elem>" pClass="referral-post-desc font400" pHtmlElem=true></p-element>\r\n <div class="app-logo-wrapper">\r\n <div class="referral-social-app">\r\n <a\r\n href="https://play.google.com/store/apps/details?id=com.babysparks.babysparks"\r\n ><img\r\n src="//babysparks.com/class/v2/img/[email protected]"\r\n width="199"\r\n /></a>\r\n </div>\r\n <div class="referral-social-app">\r\n <a\r\n href="https://itunes.apple.com/us/app/babysparks/id794574199?ls=1&mt=8"\r\n ><img\r\n src="//babysparks.com/class/v2/img/[email protected]"\r\n width="199"\r\n /></a>\r\n </div>\r\n </div>\r\n <heading-element\r\n headingType="h4"\r\n convertHTML="true"\r\n headingText="<local-elem localKey=\'Step 2.\'></local-elem>"\r\n headingClass="referral-intro-title topMargin"\r\n ></heading-element>\r\n <p-element pText="<span class=\'blue\'><strong><local-elem localKey=\'Log in\'></local-elem></strong></span> <local-elem localKey=\'using your new account to access your subscription.\'></local-elem>" pClass="referral-post-desc font400" pHtmlElem=true></p-element>\r\n </div>\r\n </div>`;\r\n }\r\n }\r\n \r\n customElements.define("referral-post-page", ReferralPrePage);\r\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjA4Ny5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBOzs7O0FDRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQmFieVNwYXJrcy8uL3NyYy9jb21wb25lbnRzL3JlZmVycmFsLXBhZ2UvcmVmZXJyYWwtcG9zdC1wYWdl
1LnNjc3M/M2FjNCIsIndlYnBhY2s6Ly9CYWJ5U3BhcmtzLy4vc3JjL2NvbXBvbmVudHMvcmVmZXJyYWwtcGFnZS9yZWZlcnJhbC1wb3N0LXBhZ2UuanM/OGFlOSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2Nzc30gZnJvbSAnbGl0JzsgZXhwb3J0IGRlZmF1bHQgY3NzYEBpbXBvcnQgdXJsKGh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9T3BlbitTYW5zOndnaHRAMzAwOzQwMDs1MDA7NjAwOzcwMCZkaXNwbGF5PXN3YXApO2F7Y29sb3I6IzA0OTNjYztjdXJzb3I6cG9pbnRlcjt0ZXh0LWRlY29yYXRpb246bm9uZTtmb250LXNpemU6MTZweH1hOmhvdmVye2NvbG9yOiM5N2M5NDB9LmNlbnRlcnt0ZXh0LWFsaWduOmNlbnRlciFpbXBvcnRhbnR9LmxlZnR7dGV4dC1hbGlnbjpsZWZ0IWltcG9ydGFudH0ucmlnaHR7dGV4dC1hbGlnbjpyaWdodCFpbXBvcnRhbnR9aW1nLHN2Z3t2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Kiw6OmFmdGVyLDo6YmVmb3Jle2JveC1zaXppbmc6Ym9yZGVyLWJveH0uaDEsLmgyLC5oMywuaDQsLmg1LC5oNixoMSxoMixoMyxoNCxoNSxoNnttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTouNXJlbTtmb250LXdlaWdodDo1MDA7bGluZS1oZWlnaHQ6MS4yfS5mbGV4LWNlbnRlcntkaXNwbGF5OmZsZXghaW1wb3J0YW50O2p1c3RpZnktY29udGVudDpjZW50ZXIhaW1wb3J0YW50fXRleHRhcmVhOjpwbGFjZWhvbGRlcntjb2xvcjojODQ4ZmE1IWltcG9ydGFudH1AbWVkaWEobWF4LXdpZHRoOjc2OHB4KXsudGFiLWNvbnRlbnR7cG9zaXRpb246cmVsYXRpdmU7cGFkZGluZzowIDAgMCAzNHB4fX0ucmVmZXJyYWwtcG9zdC1wdXJjaGFzZS1wYWdle3RleHQtYWxpZ246Y2VudGVyO21hcmdpbjo3MHB4IGF1dG8gMCBhdXRvfS5wb3N0LWltYWdlLXdyYXBwZXJ7d2lkdGg6MzAwcHg7ZGlzcGxheTpmbGV4O3RleHQtYWxpZ246Y2VudGVyO21hcmdpbjozMHB4IGF1dG99LmFwcC1sb2dvLXdyYXBwZXJ7ZGlzcGxheTpmbGV4IWltcG9ydGFudDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudDtnYXA6MjBweH1AbWVkaWEobWF4LXdpZHRoOjc2OHB4KXsucmVmZXJyYWwtcG9zdC1wdXJjaGFzZS1wYWdle21hcmdpbjo3MHB4IDIwcHggMCAyMHB4fS5yZWZlcnJhbC1zb2NpYWwtYXBwe3dpZHRoOjEwMHB4fS5yZWZlcnJhbC1zb2NpYWwtYXBwIGltZ3ttaW4td2lkdGg6MTA2cHg7d2lkdGg6MzIlfS5wb3N0LWltYWdlLXdyYXBwZXJ7bWluLXdpZHRoOjMwMHB4O3dpZHRoOjEwMCU7ZGlzcGxheTpibG9ja30uYmxhbmtfZGl2e2Rpc3BsYXk6bm9uZX19YDtcbiAgICAiLCJpbXBvcnQge1xyXG4gICAgTGl0RWxlbWVudCxcclxuICAgIGh0bWxcclxuICB9IGZyb20gXCJsaXQtZWxlbWVudFwiO1xyXG4gIFxyXG4gIGltcG9ydCByZWZlcnJhbFBvc3RQdXJjaGFzZVN0eWxlIGZyb20gJy4vcmVmZXJyYWwtcG9zdC1wYWdlLnNjc3MnO1xyXG4gIGltcG9ydCByZWZlcnJhbFBvc3RQdXJjaGFzZSBmcm9tICcuLi8uLi9hc3NldHMvaW1hZ2VzL3JlZmVycmFsLXBvc3QtcHVyY2hhc2UucG5nJ1xyXG5cclxuICBjbGFzcyBSZWZlcnJhbFByZVBhZ2UgZXh0ZW5kcyBMaXRFbGVtZW50IHtcclxuICAgIGNvbnN0cnVjdG9yKCl7XHJcbiAgICAgIHN1cGVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGdldCBzdHlsZXMoKSB7XHJcbiAgICAgIHJldHVybiBbcmVmZXJyYWxQb3N0UHVyY2hhc2VTdHlsZV07XHJcbiAgICB9XHJcbiAgICAgICAgXHJcbiAgICBcclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgcmV0dXJuIGh0bWxgXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWZlcnJhbC1wb3N0LXB1cmNoYXNlLXBhZ2VcIj5cclxuICAgICAgICAgICAgICAgIDxwLWVsZW1lbnQgcFRleHQ9XCI8bG9jYWwtZWxlbSBsb2NhbEtleT0nWW91ciByZWZlcnJhbCBkaXNjb3VudCBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgYXBwbGllZCwgYW5kIHlvdXIgc3Vic2NyaXB0aW9uIGlzIGFjdGl2ZS4nPjwvbG9jYWwtZWxlbT5cIiBwQ2xhc3M9XCJyZWZlcnJhbC1wb3N0LWRlc2MgZm9udDYwMFwiIHBIdG1sRWxlbT10cnVlPjwvcC1lbGVtZW50PlxyXG4gICAgICAgICAgICAgICAgIDxoZWFkaW5nLWVsZW1lbnRcclxuICAgICAgICAgICAgICAgICAgaGVhZGluZ1R5cGU9XCJoMlwiXHJcbiAgICAgICAgICAgICAgICAgIGNvbnZlcnRIVE1MPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIGhlYWRpbmdUZXh0PVwiPGxvY2FsLWVsZW0gbG9jYWxLZXk9J1dlbGNvbWUgdG8nPjwvbG9jYWwtZWxlbT4gQmFieVNwYXJrcyFcIlxyXG4gICAgICAgICAgICAgICAgICBoZWFkaW5nQ2xhc3M9XCJyZWZlcnJhbC1jdGEtdGV4dCBibHVlXCJcclxuICAgICAgICAgICAgICAgICAgPjwvaGVhZGluZy1lbGVtZW50PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9zdC1pbWFnZS13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGltYWdlLWVsZW1lbnQgaW1hZ2VDbGFzcz1cImJzLXJlZmVycmFsLWltZ1wiIGltYWdlU3JjPVwiJHtyZWZlcnJhbFBvc3RQdXJjaGFzZX1cIiBhbHQ9XCJSZWZlcnJhbCBSZXdhcmRzXCI+PC9pbWFnZS1lbGVtZW50PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5leHQtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoZWFkaW5nLWVsZW1lbnRcclxuICAgICAgICAgICAgICAgICAgICBoZWFkaW5nVHlwZT1cImg0XCJcclxuICAgICAgICAgICAgICAgICAgICBjb252ZXJ0S
1FRNTD1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhlYWRpbmdUZXh0PVwiPGxvY2FsLWVsZW0gbG9jYWxLZXk9J05leHQgU3RlcHMnPjwvbG9jYWwtZWxlbT46XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWFkaW5nQ2xhc3M9XCJyZWZlcnJhbC1pbnRyby10aXRsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvaGVhZGluZy1lbGVtZW50PlxyXG4gICAgICAgICAgICAgICAgICAgIDxwLWVsZW1lbnQgcFRleHQ9XCI8bG9jYWwtZWxlbSBsb2NhbEtleT0nRG93bmxvYWQgdGhlIEJhYnlTcGFya3MgYXBwIHRvIHN0YXJ0IGV4cGxvcmluZyB5b3VyIHBlcnNvbmFsaXplZCB0b29scyBhbmQgcmVzb3VyY2VzIHJpZ2h0IGF3YXkuJz48L2xvY2FsLWVsZW0+XCIgcENsYXNzPVwicmVmZXJyYWwtcG9zdC1kZXNjIGZvbnQ0MDBcIiBwSHRtbEVsZW09dHJ1ZT48L3AtZWxlbWVudD5cclxuICAgICAgICAgICAgICAgICAgICA8aGVhZGluZy1lbGVtZW50XHJcbiAgICAgICAgICAgICAgICAgICAgaGVhZGluZ1R5cGU9XCJoNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgY29udmVydEhUTUw9XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICBoZWFkaW5nVGV4dD1cIjxsb2NhbC1lbGVtIGxvY2FsS2V5PSdTdGVwIDEuJz48L2xvY2FsLWVsZW0+XCJcclxuICAgICAgICAgICAgICAgICAgICBoZWFkaW5nQ2xhc3M9XCJyZWZlcnJhbC1pbnRyby10aXRsZSB0b3BNYXJnaW5cIlxyXG4gICAgICAgICAgICAgICAgICAgID48L2hlYWRpbmctZWxlbWVudD5cclxuICAgICAgICAgICAgICAgICAgICAgPHAtZWxlbWVudCBwVGV4dD1cIjxsb2NhbC1lbGVtIGxvY2FsS2V5PSdEb3dubG9hZCB0aGUgQmFieVNwYXJrcyBBcHA6Jz48L2xvY2FsLWVsZW0+XCIgcENsYXNzPVwicmVmZXJyYWwtcG9zdC1kZXNjIGZvbnQ0MDBcIiBwSHRtbEVsZW09dHJ1ZT48L3AtZWxlbWVudD5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXBwLWxvZ28td3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlZmVycmFsLXNvY2lhbC1hcHBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwiaHR0cHM6Ly9wbGF5Lmdvb2dsZS5jb20vc3RvcmUvYXBwcy9kZXRhaWxzP2lkPWNvbS5iYWJ5c3BhcmtzLmJhYnlzcGFya3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID48aW1nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCIvL2JhYnlzcGFya3MuY29tL2NsYXNzL3YyL2ltZy9kb3dubG9hZEJhZGdlQW5kcm9pZEAzeC5wbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxOTlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvPjwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWZlcnJhbC1zb2NpYWwtYXBwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8vaXR1bmVzLmFwcGxlLmNvbS91cy9hcHAvYmFieXNwYXJrcy9pZDc5NDU3NDE5OT9scz0xJmFtcDttdD04XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA+PGltZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPVwiLy9iYWJ5c3BhcmtzLmNvbS9jbGFzcy92Mi9pbWcvZG93bmxvYWRCYWRnZUFwcGxlQDN4LnBuZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjE5OVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+PC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGhlYWRpbmctZWxlbWVudFxyXG4gICAgICAgICAgICAgICAgICAgIGhlYWRpbmdUeXBlPVwiaDRcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnZlcnRIVE1MPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVhZGluZ1RleHQ9XCI8bG9jYWwtZWxlbSBsb2NhbEtleT0nU3RlcCAyLic+PC9sb2NhbC1lbGVtPlwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVhZGluZ0NsYXNzPVwicmVmZXJyYWwtaW50cm8tdGl0bGUgdG9wTWFyZ2luXCJcclxuICAgICAgICAgICAgICAgICAgICA+PC9oZWFkaW5nLWVsZW1lbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPHAtZWxlbWVudCBwVGV4dD1cIjxzcGFuIGNsYXNzPSdibHVlJz48c3Ryb25nPjxsb2NhbC1lbGVtIGxvY2FsS2V5PSdMb2cgaW4nPjwvbG9jYWwtZWxlbT48L3N0cm9uZz48L3NwYW4+IDxsb2NhbC1lbGVtIGxvY2FsS2V5PSd1c2luZyB5b3VyIG5ldyBhY2NvdW50IHRvIGFjY2VzcyB5b3VyIHN1YnNjcmlwdGlvbi4nPjwvbG9jYWwtZWxlbT5cIiBwQ2xhc3M9XCJyZWZlcnJhbC1wb3N0LWRlc2MgZm9udDQwMFwiIHBIdG1sRWxlbT10cnVlPjwvcC1lbGVtZW50PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+YDtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKFwicmVmZXJyYWwtcG9zdC1wYWdlXCIsIFJlZmVycmFsUHJlUGFnZSk7XHJcbiAgIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///6087\n\n}')},6099:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{eval('{/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6161);\n /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,lit__WEBPACK_IMPORTED_MODULE_0__/* .css */ .AH)`@import url(https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;500;600;700&display=swap);a{color:#0493cc;cursor:pointer;text-decoration:none;font-size:16px}a:hover{color:#97c940}.center{text-align:center!important}.left{text-align:left!important}.right{text-align:right!important}img,svg{vertical-align:middle}*,::after,::before{box-sizing:border-box}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}.flex-center{display:flex!important;justify-content:center!important}textarea::placeholder{color:#848fa5!important}@media(max-width:768px){.tab-content{position:relative;padding:0 0 0 34px}}.autor-tiles span.grey-word{font-size:14px;font-weight:400;color:#67748c;display:-webkit-inline-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;width:72%;line-height:25px;height:20px}span{font-size:12px}span.photo-profile-menuLogin{background:rgba(0,0,0,0);color:#fff;font-size:18px;width:42px;height:36px;text-align:center;line-height:36px;font-family:"Open Sans",sans-serif;display:inline-block;float:left;margin:4px 0;text-transform:uppercase;border-right:1px solid hsla(0,0%,100%,.6117647059);border-radius:0}span.email-menuLogin{font-size:10px;font-family:SFProText-Regular;color:#8b8f9a;display:block}span.default{font-size:16px;color:#fff;display:block}span.green{font-size:16px;color:#97c940;display:block}span.bold-big-header{font-size:24px;color:#213858;font-family:"Open Sans",sans-serif;padding:8px;font-weight:700}span.price-classes-tiles{font-size:14px;color:#67748c;font-weight:700}span.price-classes-tiles.small{font-size:12px}span.discount-value{color:#67748c;font-size:14px;display:block}span.line-through{text-decoration:line-through;font-size:14px}span.line-through.small{font-size:12px}span.grey-word{font-size:14px;font-weight:400;color:#67748c}span.grey-word.small{font-size:12px}span.topic-tiles-title{font-size:13px;color:#343434;opacity:.7}span.topic-tiles-age{font-size:11px;color:#343434;opacity:.7;margin-left:2px;margin-top:2px}span.topic-tiles-divider{width:1px;opacity:.3;color:#343434;margin:0 -3px 0 -1px}span.autor-label-tiles{font-size:14px;opacity:.7;color:#343434}span.number-reviews{opacity:.5;color:#343434;font-size:12px;display:inline-block;margin-left:6px}span.yellow{float:right;font-size:12px;color:#343434;background-color:rgba(255,194,43,.9);padding:2px 4px;border-radius:4px;font-weight:700}span.label-addMyList{font-size:11px;color:#0493cc;display:block}span.browseBy{display:inline-block;font-size:16px;color:#0094cc;margin-right:48px}span.browseBy.mobile-label{display:none}span.browseBy.desktop-label{display:inline-block}span.result-all{width:14px;
1height:14px;display:inline-block;font-size:16px}span.img-dropdown-profile{margin-bottom:3px;background:#97c940;color:#fff;font-size:18px;width:42px;height:42px;border-radius:50%;text-align:center;margin:-8px 0;padding:8px;text-transform:uppercase;display:inline-block;line-height:25px}span.grey-topic{font-size:16px;font-weight:600;color:#67748c;display:block;padding:8px 0}span.title-group-filter{font-size:14px;color:#67748c;font-family:"Open Sans",sans-serif;line-height:19px;display:inline;vertical-align:middle;margin-left:5px;font-weight:600}span.title-group-filter.expert-list{display:table-cell;font-weight:600}span.title-group-filter.topic{font-weight:600;margin-left:0;vertical-align:middle;display:block;line-height:17px}span.title-group-filter.classType{font-weight:600;margin-left:0;vertical-align:middle}span.title-group-filter.selected{color:#fff;font-size:14px;font-family:"Open Sans",sans-serif}span.desc-group-filter{display:block;font-size:12px;color:#a1abbe}span.desc-group-filter.selected{color:#fff;font-size:14px;font-family:"Open Sans",sans-serif}span.expert-profesion{font-size:12px;font-weight:400;opacity:.7}span.expert-profesion.selected{color:#fff}span.grey-progress-label{float:right;font-size:12px;color:#343434;background-color:hsla(0,0%,100%,.7);padding:2px 4px;border-radius:4px}span.d-none{display:none}span.white-color{color:#fff}span.logout-message{color:#0493cc;font-size:19px;text-align:center;display:block}span.grey-topic-filters{margin-top:0;margin-left:39px;display:block;font-size:18px;font-weight:600;color:#67748c}span.lock_class_modal_message{color:#0493cc;font-size:19px;text-align:center;display:block;padding:30px}@media(max-width:820px){span.browseBy{margin-top:13px;text-transform:capitalize}span.browseBy.mobile-label{display:block;width:auto;float:left;margin:0;padding:0;line-height:44px}span.browseBy.desktop-label{display:none}span.grey-topic-filters{margin-left:18px}}@media(max-width:610px){span.logout-message{color:#0493cc;font-size:19px;text-align:center;display:block}span.browseBy{font-size:14px;margin-top:13px;text-transform:capitalize}span.browseBy.mobile-label{display:block;width:auto;float:left;margin:0;padding:0;line-height:44px}span.browseBy.desktop-label{display:none}span.grey-topic-filters{margin-left:18px}span.lock_class_modal_message{color:#0493cc;font-size:19px;text-align:center;display:block;padding:30px}}#subs_link{font-size:19px!important;text-decoration:underline!important}`);\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjA5OS5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL0JhYnlTcGFya3MvLi9zcmMvY29tcG9uZW50cy9zcGFuL3NwYW4uc2Nzcz9jYjY0Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y3NzfSBmcm9tICdsaXQnOyBleHBvcnQgZGVmYXVsdCBjc3NgQGltcG9ydCB1cmwoaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1PcGVuK1NhbnM6d2dodEAzMDA7NDAwOzUwMDs2MDA7NzAwJmRpc3BsYXk9c3dhcCk7YXtjb2xvcjojMDQ5M2NjO2N1cnNvcjpwb2ludGVyO3RleHQtZGVjb3JhdGlvbjpub25lO2ZvbnQtc2l6ZToxNnB4fWE6aG92ZXJ7Y29sb3I6Izk3Yzk0MH0uY2VudGVye3RleHQtYWxpZ246Y2VudGVyIWltcG9ydGFudH0ubGVmdHt0ZXh0LWFsaWduOmxlZnQhaW1wb3J0YW50fS5yaWdodHt0ZXh0LWFsaWduOnJpZ2h0IWltcG9ydGFudH1pbWcsc3Zne3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0qLDo6YWZ0ZXIsOjpiZWZvcmV7Ym94LXNpemluZzpib3JkZXItYm94fS5oMSwuaDIsLmgzLC5oNCwuaDUsLmg2LGgxLGgyLGgzLGg0LGg1LGg2e21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOi41cmVtO2ZvbnQtd2VpZ2h0OjUwMDtsaW5lLWhlaWdodDoxLjJ9LmZsZXgtY2VudGVye2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnQ7anVzdGlmeS1jb250ZW50OmNlbnRlciFpbXBvcnRhbnR9dGV4dGFyZWE6OnBsYWNlaG9sZGVye2NvbG9yOiM4NDhmYTUhaW1wb3J0YW50fUBtZWRpYShtYXgtd2lkdGg6NzY4cHgpey50YWItY29udGVudHtwb3NpdGlvbjpyZWxhdGl2ZTtwYWRkaW5nOjAgMCAwIDM0cHh9fS5hdXRvci10aWxlcyBzcGFuLmdyZXktd29yZHtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDA7Y29sb3I6IzY3NzQ4YztkaXNwbGF5Oi13ZWJraXQtaW5saW5lLWJveDstd2Via2l0LWxpbmUtY2xhbXA6MTstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7b3ZlcmZsb3c6aGlkZGVuO3dpZHRoOjcyJTtsaW5lLWhlaWdodDoyNXB4O2hlaWdodDoyMHB4fXNwYW57Zm9udC1zaXplOjEycHh9c3Bhbi5waG90by1wcm9maWxlLW1lbnVMb2dpbntiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMCk7Y29sb3I6I2ZmZjtmb250LXNpemU6MThweDt3aWR0aDo0MnB4O2hlaWdodDozNnB4O3RleHQtYWxpZ246Y2VudGVyO2xpbmUtaGVpZ2h0OjM2cHg7Zm9udC1mYW1pbHk6XCJPcGVuIFNhbnNcIixzYW5zLXNlcmlmO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2Zsb2F0OmxlZnQ7bWFyZ2luOjRweCAwO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIGhzbGEoMCwwJSwxMDAlLC42MTE3NjQ3MDU5KTtib3JkZXItcmFkaXVzOjB9c3Bhbi5lbWFpbC1tZW51TG9naW57Zm9udC1zaXplOjEwcHg7Zm9udC1mYW1pbHk6U0ZQcm9UZXh0LVJlZ3VsYXI7Y29sb3I6IzhiOGY5YTtkaXNwbGF5OmJsb2NrfXNwYW4uZGVmYXVsdHtmb250LXNpemU6MTZweDtjb2xvcjojZmZmO2Rpc3BsYXk6YmxvY2t9c3Bhbi5ncmVlbntmb250LXNpemU6MTZweDtjb2xvcjojOTdjOTQwO2Rpc3BsYXk6YmxvY2t9c3Bhbi5ib2xkLWJpZy1oZWFkZXJ7Zm9udC1zaXplOjI0cHg7Y29sb3I6IzIxMzg1ODtmb250LWZhbWlseTpcIk9wZW4gU2Fuc1wiLHNhbnMtc2VyaWY7cGFkZGluZzo4cHg7Zm9udC13ZWlnaHQ6NzAwfXNwYW4ucHJpY2UtY2xhc3Nlcy10aWxlc3tmb250LXNpemU6MTRweDtjb2xvcjojNjc3NDhjO2ZvbnQtd2VpZ2h0OjcwMH1zcGFuLnByaWNlLWNsYXNzZXMtdGlsZXMuc21hbGx
17Zm9udC1zaXplOjEycHh9c3Bhbi5kaXNjb3VudC12YWx1ZXtjb2xvcjojNjc3NDhjO2ZvbnQtc2l6ZToxNHB4O2Rpc3BsYXk6YmxvY2t9c3Bhbi5saW5lLXRocm91Z2h7dGV4dC1kZWNvcmF0aW9uOmxpbmUtdGhyb3VnaDtmb250LXNpemU6MTRweH1zcGFuLmxpbmUtdGhyb3VnaC5zbWFsbHtmb250LXNpemU6MTJweH1zcGFuLmdyZXktd29yZHtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDA7Y29sb3I6IzY3NzQ4Y31zcGFuLmdyZXktd29yZC5zbWFsbHtmb250LXNpemU6MTJweH1zcGFuLnRvcGljLXRpbGVzLXRpdGxle2ZvbnQtc2l6ZToxM3B4O2NvbG9yOiMzNDM0MzQ7b3BhY2l0eTouN31zcGFuLnRvcGljLXRpbGVzLWFnZXtmb250LXNpemU6MTFweDtjb2xvcjojMzQzNDM0O29wYWNpdHk6Ljc7bWFyZ2luLWxlZnQ6MnB4O21hcmdpbi10b3A6MnB4fXNwYW4udG9waWMtdGlsZXMtZGl2aWRlcnt3aWR0aDoxcHg7b3BhY2l0eTouMztjb2xvcjojMzQzNDM0O21hcmdpbjowIC0zcHggMCAtMXB4fXNwYW4uYXV0b3ItbGFiZWwtdGlsZXN7Zm9udC1zaXplOjE0cHg7b3BhY2l0eTouNztjb2xvcjojMzQzNDM0fXNwYW4ubnVtYmVyLXJldmlld3N7b3BhY2l0eTouNTtjb2xvcjojMzQzNDM0O2ZvbnQtc2l6ZToxMnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1sZWZ0OjZweH1zcGFuLnllbGxvd3tmbG9hdDpyaWdodDtmb250LXNpemU6MTJweDtjb2xvcjojMzQzNDM0O2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMTk0LDQzLC45KTtwYWRkaW5nOjJweCA0cHg7Ym9yZGVyLXJhZGl1czo0cHg7Zm9udC13ZWlnaHQ6NzAwfXNwYW4ubGFiZWwtYWRkTXlMaXN0e2ZvbnQtc2l6ZToxMXB4O2NvbG9yOiMwNDkzY2M7ZGlzcGxheTpibG9ja31zcGFuLmJyb3dzZUJ5e2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtc2l6ZToxNnB4O2NvbG9yOiMwMDk0Y2M7bWFyZ2luLXJpZ2h0OjQ4cHh9c3Bhbi5icm93c2VCeS5tb2JpbGUtbGFiZWx7ZGlzcGxheTpub25lfXNwYW4uYnJvd3NlQnkuZGVza3RvcC1sYWJlbHtkaXNwbGF5OmlubGluZS1ibG9ja31zcGFuLnJlc3VsdC1hbGx7d2lkdGg6MTRweDtoZWlnaHQ6MTRweDtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MTZweH1zcGFuLmltZy1kcm9wZG93bi1wcm9maWxle21hcmdpbi1ib3R0b206M3B4O2JhY2tncm91bmQ6Izk3Yzk0MDtjb2xvcjojZmZmO2ZvbnQtc2l6ZToxOHB4O3dpZHRoOjQycHg7aGVpZ2h0OjQycHg7Ym9yZGVyLXJhZGl1czo1MCU7dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luOi04cHggMDtwYWRkaW5nOjhweDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7ZGlzcGxheTppbmxpbmUtYmxvY2s7bGluZS1oZWlnaHQ6MjVweH1zcGFuLmdyZXktdG9waWN7Zm9udC1zaXplOjE2cHg7Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOiM2Nzc0OGM7ZGlzcGxheTpibG9jaztwYWRkaW5nOjhweCAwfXNwYW4udGl0bGUtZ3JvdXAtZmlsdGVye2ZvbnQtc2l6ZToxNHB4O2NvbG9yOiM2Nzc0OGM7Zm9udC1mYW1pbHk6XCJPcGVuIFNhbnNcIixzYW5zLXNlcmlmO2xpbmUtaGVpZ2h0OjE5cHg7ZGlzcGxheTppbmxpbmU7dmVydGljYWwtYWxpZ246bWlkZGxlO21hcmdpbi1sZWZ0OjVweDtmb250LXdlaWdodDo2MDB9c3Bhbi50aXRsZS1ncm91cC1maWx0ZXIuZXhwZXJ0LWxpc3R7ZGlzcGxheTp0YWJsZS1jZWxsO2ZvbnQtd2VpZ2h0OjYwMH1zcGFuLnRpdGxlLWdyb3VwLWZpbHRlci50b3BpY3tmb250LXdlaWdodDo2MDA7bWFyZ2luLWxlZnQ6MDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7ZGlzcGxheTpibG9jaztsaW5lLWhlaWdodDoxN3B4fXNwYW4udGl0bGUtZ3JvdXAtZmlsdGVyLmNsYXNzVHlwZXtmb250LXdlaWdodDo2MDA7bWFyZ2luLWxlZnQ6MDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9c3Bhbi50aXRsZS1ncm91cC1maWx0ZXIuc2VsZWN0ZWR7Y29sb3I6I2ZmZjtmb250LXNpemU6MTRweDtmb250LWZhbWlseTpcIk9wZW4gU2Fuc1wiLHNhbnMtc2VyaWZ9c3Bhbi5kZXNjLWdyb3VwLWZpbHRlcntkaXNwbGF5OmJsb2NrO2ZvbnQtc2l6ZToxMnB4O2NvbG9yOiNhMWFiYmV9c3Bhbi5kZXNjLWdyb3VwLWZpbHRlci5zZWxlY3RlZHtjb2xvcjojZmZmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtZmFtaWx5OlwiT3BlbiBTYW5zXCIsc2Fucy1zZXJpZn1zcGFuLmV4cGVydC1wcm9mZXNpb257Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NDAwO29wYWNpdHk6Ljd9c3Bhbi5leHBlcnQtcHJvZmVzaW9uLnNlbGVjdGVke2NvbG9yOiNmZmZ9c3Bhbi5ncmV5LXByb2dyZXNzLWxhYmVse2Zsb2F0OnJpZ2h0O2ZvbnQtc2l6ZToxMnB4O2NvbG9yOiMzNDM0MzQ7YmFja2dyb3VuZC1jb2xvcjpoc2xhKDAsMCUsMTAwJSwuNyk7cGFkZGluZzoycHggNHB4O2JvcmRlci1yYWRpdXM6NHB4fXNwYW4uZC1ub25le2Rpc3BsYXk6bm9uZX1zcGFuLndoaXRlLWNvbG9ye2NvbG9yOiNmZmZ9c3Bhbi5sb2dvdXQtbWVzc2FnZXtjb2xvcjojMDQ5M2NjO2ZvbnQtc2l6ZToxOXB4O3RleHQtYWxpZ246Y2VudGVyO2Rpc3BsYXk6YmxvY2t9c3Bhbi5ncmV5LXRvcGljLWZpbHRlcnN7bWFyZ2luLXRvcDowO21hcmdpbi1sZWZ0OjM5cHg7ZGlzcGxheTpibG9jaztmb250LXNpemU6MThweDtmb250LXdlaWdodDo2MDA7Y29sb3I6IzY3NzQ4Y31zcGFuLmxvY2tfY2xhc3NfbW9kYWxfbWVzc2FnZXtjb2xvcjojMDQ5M2NjO2ZvbnQtc2l6ZToxOXB4O3RleHQtYWxpZ246Y2VudGVyO2Rpc3BsYXk6YmxvY2s7cGFkZGluZzozMHB4fUBtZWRpYShtYXgtd2lkdGg6ODIwcHgpe3NwYW4uYnJvd3NlQnl7bWFyZ2luLXRvcDoxM3B4O3RleHQtdHJhbnNmb3JtOmNhcGl0YWxpemV9c3Bhbi5icm93c2VCeS5tb2JpbGUtbGFiZWx7ZGlzcGxheTpibG9jazt3aWR0aDphdXRvO2Zsb2F0OmxlZnQ7bWFyZ2luOjA7cGFkZGluZzowO2xpbmUtaGVpZ2h0OjQ0cHh9c3Bhbi5icm93c2VCeS5kZXNrdG9wLWxhYmVse2Rpc3BsYXk6bm9uZX1zcGFuLmdyZXktdG9waWMtZmlsdGVyc3ttYXJnaW4tbGVmdDoxOHB4fX1AbWVkaWEobWF4LXdpZHRoOjYxMHB4KXtzcGFuLmxvZ291dC1tZXNzYWdle2NvbG9yOiMwNDkzY2M7Zm9udC1zaXplOjE5cHg7dGV4dC1hbGlnbjpjZW50ZXI7ZGlzcGxheTpibG9ja31zcGFuLmJyb3dzZUJ5e2ZvbnQtc2l6ZToxNHB4O21hcmdpbi10b3A6MTNweDt0ZXh0LXRyYW5zZm9ybTpjYXBpdGFsaXplfXNwYW4uYnJvd3NlQnkubW9iaWxlLWxhYmVse2Rpc3BsYXk6YmxvY2s7d2lkdGg6YXV0bztmbG9hdDpsZWZ0O21hcmdpbjowO3BhZGRpbmc6MDtsaW5lLWhlaWdodDo0NHB4fXNwYW4uYnJvd3NlQnkuZGVza3RvcC1sYWJlbHtkaXNwbGF5Om5vbmV9c3Bhbi5ncmV5LXRvcGljLWZpbHRlcnN7bWFyZ2luLWxlZnQ6MThweH1zcGFuLmxvY2tfY2xhc3NfbW9kYWxfbWVzc2FnZXtjb2xvcjojMDQ5M2NjO2ZvbnQtc2l6ZToxOXB4O3RleHQtYWxpZ246Y2VudGVyO2Rpc3BsYXk6YmxvY2s7cGFkZGluZzozMHB4fX0jc3Vic19saW5re2ZvbnQtc2l6ZToxOXB4IWltcG9ydGFudDt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lIWltcG9ydGFudH1gO1xuICAgICJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///6099\n\n}')},6307:(__unused_webpack_module,__unused_webpack___webpack_exports__,__webpack_require__)=>{eval('{\n// EXTERNAL MODULE: ./node_modules/lit-element/index.js\nvar lit_element = __webpack_require__(4420);\n// EXTERNAL MODULE: ./node_modules/lit/index.js\nvar lit = __webpack_require__(6161);\n;// ./src/components/tab-content/tab-content.scss\n /* harmony default export */ const tab_content = ((0,lit/* css */.AH)`@import url(https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;500;600;700&display=swap);a{color:#0493cc;cursor:pointer;text-decoration:none;font-size:16px}a:hover{color:#97c940}.center{text-align:center!important}.left{text-align:left!important}.right{text-align:right!important}img,svg{vertical-align:middle}*,::after,::before{box-sizing:border-box}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}.flex-center{display:flex!important;justify-content:center!important}textarea::placeholder{color:#848fa5!important}@media(max-width:768px){.tab-content{position:relative;padding:0 0 0 34px}}.tab-content{position:relative}#nav-filters-browse{display:inline-block}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-tabs{border:0}hr{background-color:#d6dbe4;color:inherit;border:0;width:1px;height:20px;
1display:inline-block;margin:-6px 10px;opacity:1}@media(max-width:820px){.nav{display:block;width:100%}}@media(max-width:768px){#nav-filters-browse{width:100%}.tab-content{position:relative;padding:0 0 0 34px}}`);\n \n// EXTERNAL MODULE: ./src/components/nav-button/nav-button.js + 1 modules\nvar nav_button = __webpack_require__(829);\n// EXTERNAL MODULE: ./src/components/span/span.js\nvar span = __webpack_require__(8820);\n// EXTERNAL MODULE: ./node_modules/pwa-helpers/connect-mixin.js\nvar connect_mixin = __webpack_require__(4753);\n// EXTERNAL MODULE: ./src/redux/store.js + 1 modules\nvar store = __webpack_require__(5548);\n;// ./src/components/tab-content/tab-content.js\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass TabContent extends (0,connect_mixin/* connect */.N)(store/* store */.M)(lit_element/* LitElement */.WF) {\r\n constructor() {\r\n super();\r\n this.tabIndex = 1;\r\n }\r\n\r\n createRenderRoot() {\r\n return this;\r\n }\r\n\r\n static get properties() {\r\n return {\r\n tabIndex: { type: Number },\r\n };\r\n }\r\n\r\n static get styles() {\r\n return [tab_content];\r\n }\r\n\r\n stateChanged(state) {\r\n this.tabIndex = state.selectedTabIndex;\r\n }\r\n\r\n render() {\r\n return (0,lit_element/* html */.qy)`\r\n <div class="tab-content">\r\n ${this.tabIndex===1?(0,lit_element/* html */.qy)`<age-filter></age-filter>`:``} \r\n ${this.tabIndex===2?(0,lit_element/* html */.qy)`<topic-filter></topic-filter>`:``} \r\n ${this.tabIndex===3?(0,lit_element/* html */.qy)`<class-type-filter></class-type-filter>`:``} \r\n ${this.tabIndex===4?(0,lit_element/* html */.qy)`<pro-expert-list></pro-expert-list>`:``} \r\n ${this.tabIndex===5?(0,lit_element/* html */.qy)`<language-filter></language-filter>`:``} \r\n </div>\r\n `;\r\n }\r\n}\r\n\r\ncustomElements.define("tab-content", TabContent);\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjMwNy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBOzs7Ozs7Ozs7O0FDREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL0JhYnlTcGFya3MvLi9zcmMvY29tcG9uZW50cy90YWItY29udGVudC90YWItY29udGVudC5zY3NzP2UyMzEiLCJ3ZWJwYWNrOi8vQmFieVNwYXJrcy8uL3NyYy9jb21wb25lbnRzL3RhYi1jb250ZW50L3RhYi1jb250ZW50LmpzP2I2ZjYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtjc3N9IGZyb20gJ2xpdCc7IGV4cG9ydCBkZWZhdWx0IGNzc2BAaW1wb3J0IHVybChodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PU9wZW4rU2Fuczp3Z2h0QDMwMDs0MDA7NTAwOzYwMDs3MDAmZGlzcGxheT1zd2FwKTthe2NvbG9yOiMwNDkzY2M7Y3Vyc29yOnBvaW50ZXI7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Zm9udC1zaXplOjE2cHh9YTpob3Zlcntjb2xvcjojOTdjOTQwfS5jZW50ZXJ7dGV4dC1hbGlnbjpjZW50ZXIhaW1wb3J0YW50fS5sZWZ0e3RleHQtYWxpZ246bGVmdCFpbXBvcnRhbnR9LnJpZ2h0e3RleHQtYWxpZ246cmlnaHQhaW1wb3J0YW50fWltZyxzdmd7dmVydGljYWwtYWxpZ246bWlkZGxlfSosOjphZnRlciw6OmJlZm9yZXtib3gtc2l6aW5nOmJvcmRlci1ib3h9LmgxLC5oMiwuaDMsLmg0LC5oNSwuaDYsaDEsaDIsaDMsaDQsaDUsaDZ7bWFyZ2luLXRvcDowO21hcmdpbi1ib3R0b206LjVyZW07Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjEuMn0uZmxleC1jZW50ZXJ7ZGlzcGxheTpmbGV4IWltcG9ydGFudDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudH10ZXh0YXJlYTo6cGxhY2Vob2xkZXJ7Y29sb3I6Izg0OGZhNSFpbXBvcnRhbnR9QG1lZGlhKG1heC13aWR0aDo3NjhweCl7LnRhYi1jb250ZW50e3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmc6MCAwIDAgMzRweH19LnRhYi1jb250ZW50e3Bvc2l0aW9uOnJlbGF0aXZlfSNuYXYtZmlsdGVycy1icm93c2V7ZGlzcGxheTppbmxpbmUtYmxvY2t9Lm5hdntkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7cGFkZGluZy1sZWZ0OjA7bWFyZ2luLWJvdHRvbTowO2xpc3Qtc3R5bGU6bm9uZX0ubmF2LXRhYnN7Ym9yZGVyOjB9aHJ7YmFja2dyb3VuZC1jb2xvcjojZDZkYmU0O2NvbG9yOmluaGVyaXQ7Ym9yZGVyOjA7d2lkdGg6MXB4O2hlaWdodDoyMHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbjotNnB4IDEwcHg7b3BhY2l0eToxfUBtZWRpYShtYXgtd2lkdGg6ODIwcHgpey5uYXZ7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlfX1AbWVkaWEobWF4LXdpZHRoOjc2OHB4KXsjbmF2LWZpbHRlcnMtYnJvd3Nle3dpZHRoOjEwMCV9LnRhYi1jb250ZW50e3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmc6MCAwIDAgMzRweH19YDtcbiAgICAiLCJpbXBvcnQgeyBMaXRFbGVtZW50LCBodG1sLCBjc3MgfSBmcm9tIFwibGl0LWVsZW1lbnRcIjtcclxuXHJcbmltcG9ydCB0YWJDb250ZW50U3R5bGVzIGZyb20gXCIuL3RhYi1jb250ZW50LnNjc3NcIjtcclxuaW1wb3J0IFwiLi4vbmF2LWJ1dHRvbi9uYXYtYnV0dG9uLmpzXCI7XHJcbmltcG9ydCBcIi4uL3NwYW4vc3Bhbi5qc1wiO1xyXG5pbXBvcnQgeyBjb25uZWN0IH0gZnJvbSAncHdhLWhlbHBlcnMnO1xyXG5pbXBvcnQgeyBzdG9yZSB9IGZyb20gJy4uLy4uL3JlZHV4L3N0b3JlLmpzJztcclxuXHJcblxyXG5jbGFzcyBUYWJDb250ZW50IGV4dGVuZHMgY29ubmVjdChzdG9yZSkoTGl0RWxlbWVudCkge1xyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKTtcclxuICAgIHRoaXMudGFiSW5kZXggPSAxO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlUmVuZGVyUm9vdCgpIHtcclxuICAgIHJldHVybi
1B0aGlzO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldCBwcm9wZXJ0aWVzKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdGFiSW5kZXg6IHsgdHlwZTogTnVtYmVyIH0sXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldCBzdHlsZXMoKSB7XHJcbiAgICByZXR1cm4gW3RhYkNvbnRlbnRTdHlsZXNdO1xyXG4gIH1cclxuXHJcbiAgc3RhdGVDaGFuZ2VkKHN0YXRlKSB7XHJcbiAgICB0aGlzLnRhYkluZGV4ID0gc3RhdGUuc2VsZWN0ZWRUYWJJbmRleDtcclxuICB9XHJcblxyXG4gIHJlbmRlcigpIHtcclxuICAgIHJldHVybiBodG1sYFxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGFiLWNvbnRlbnRcIj5cclxuICAgICAgICR7dGhpcy50YWJJbmRleD09PTE/aHRtbGA8YWdlLWZpbHRlcj48L2FnZS1maWx0ZXI+YDpgYH0gXHJcbiAgICAgICAke3RoaXMudGFiSW5kZXg9PT0yP2h0bWxgPHRvcGljLWZpbHRlcj48L3RvcGljLWZpbHRlcj5gOmBgfSBcclxuICAgICAgICR7dGhpcy50YWJJbmRleD09PTM/aHRtbGA8Y2xhc3MtdHlwZS1maWx0ZXI+PC9jbGFzcy10eXBlLWZpbHRlcj5gOmBgfSAgXHJcbiAgICAgICAke3RoaXMudGFiSW5kZXg9PT00P2h0bWxgPHByby1leHBlcnQtbGlzdD48L3Byby1leHBlcnQtbGlzdD5gOmBgfSAgXHJcbiAgICAgICAke3RoaXMudGFiSW5kZXg9PT01P2h0bWxgPGxhbmd1YWdlLWZpbHRlcj48L2xhbmd1YWdlLWZpbHRlcj5gOmBgfSAgXHJcbiAgICAgIDwvZGl2PlxyXG4gICAgYDtcclxuICB9XHJcbn1cclxuXHJcbmN1c3RvbUVsZW1lbnRzLmRlZmluZShcInRhYi1jb250ZW50XCIsIFRhYkNvbnRlbnQpO1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///6307\n\n}')},7510:(__unused_webpack_module,__unused_webpack___webpack_exports__,__webpack_require__)=>{eval('{/* harmony import */ var lit_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4420);\n/* harmony import */ var pwa_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4753);\n/* harmony import */ var _redux_store_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5548);\n/* harmony import */ var _card_card_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6190);\n/* harmony import */ var _controllers_classesController_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(6130);\n/* harmony import */ var _headings_headings_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(758);\n/* harmony import */ var _swiper_swiper_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(8981);\n/* harmony import */ var _utils_common_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(8369);\n/* harmony import */ var _localization_localization_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(8550);\n/* harmony import */ var _redux_actions_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(3534);\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass RecommendedClass extends (0,pwa_helpers__WEBPACK_IMPORTED_MODULE_1__/* .connect */ .N)(_redux_store_js__WEBPACK_IMPORTED_MODULE_2__/* .store */ .M)(lit_element__WEBPACK_IMPORTED_MODULE_0__/* .LitElement */ .WF) {\r\n createRenderRoot() {\r\n return this;\r\n }\r\n\r\n constructor() {\r\n super();\r\n this.sliderType = "recommended";\r\n this.isMobileView = false;\r\n }\r\n\r\n static get properties() {\r\n return {\r\n recommendedContent: { type: String },\r\n recommendedContent: { type: String },\r\n sliderType: { type: String },\r\n slider_content_type: { type: String },\r\n recommendedTotalCount: { type: Number },\r\n offset: { type: Number },\r\n limit: { type: Number },\r\n searchKeywords: { type: String },\r\n activePageCount: { type: Number },\r\n isUTMURL: { type: Boolean },\r\n recommendedCurrentContent: { type: String },\r\n isMobileView: { type: Boolean },\r\n kidinfo: { type: Array },\r\n };\r\n }\r\n\r\n stateChanged(state) {\r\n this.recommendedContent = state.recommended.data;\r\n this.recommendedCurrentContent = state.recommended.currentData;\r\n this.kidinfo = state.userData.kids\r\n //state.kidsInfo;\r\n this.recommendedTotalCount = state.recommended.total_count;\r\n this.activePageCount = state.recommended.active_page_count;\r\n this.sliderType = state.recommended.page_type;\r\n this.searchKeywords = state.search.keywords;\r\n this.isUTMURL = state.isUTMURL;\r\n this.isMobileView = state.ismobile;\r\n }\r\n\r\n update(changedProperties) {\r\n if (changedProperties.has("recommendedContent")) {\r\n const oldValue = changedProperties.get("recommendedContent");\r\n this.recommendedContent = this.recommendedContent;\r\n }\r\n super.update(changedProperties);\r\n }\r\n\r\n requestUpdate(propName, oldValue) {\r\n if (this.isUTMURL == false) {\r\n if (\r\n (propName &&\r\n propName == "searchKeywords" &&\r\n _.eq(this.searchKeywords, oldValue) == false) ||\r\n (propName &&\r\n propName == "activePageCount" &&\r\n _.eq(this.activePageCount, oldValue) == false)\r\n ) {\r\n Promise.resolve((0,_controllers_classesController_js__WEBPACK_IMPORTED_MODULE_4__/* .recommendedClass */ .mW)()).then(function (value) {\r\n _redux_store_js__WEBPACK_IMPORTED_MODULE_2__/* .store */ .M.dispatch((0,_redux_actions_js__WEBPACK_IMPORTED_MODULE_9__/* .initLoader */ .Aj)(false));\r\n });\r\n }\r\n }\r\n return super.requestUpdate(propName, oldValue);\r\n }\r\n\r\n _sliderPaginate(e) {\r\n if (this.isMobileView === false) {\r\n _redux_store_js__WEBPACK_IMPORTED_MODULE_2__/* .store */ .M.dispatch((0,_redux_actions_js__WEBPACK_IMPORTED_MODULE_9__/* .initLoader */ .Aj)(true));\r\n }\r\n _redux_store_js__WEBPACK_IMPORTED_MODULE_2__/* .store */ .M.dispatch((0,_redux_actions_js__WEBPACK_IMPORTED_MODULE_9__/* .setRecommendedClassData */ .JN)([], "increment"));\r\n }
1\r\n\r\n render() {\r\n let card_template = "";\r\n let add_cards_template = "";\r\n let recommended_data = "";\r\n let addCardData = "";\r\n card_template = this.recommendedContent.map((record) => {\r\n try {\r\n recommended_data = JSON.stringify(record);\r\n } catch (error) {\r\n recommended_data = "";\r\n }\r\n return `<div class="swiper-slide medium">\r\n <card-element cardClass="medium" class-collection=\'${(0,_utils_common_js__WEBPACK_IMPORTED_MODULE_7__/* .escapeSpecialChars */ .y5)(\r\n recommended_data\r\n )}\' cardType="medium" sliderType="${\r\n this.sliderType\r\n }" card-config=\'{"showSubscribeTile": true, "showAddToCard" : true}\'></card-element>\r\n </div>`;\r\n });\r\n\r\n add_cards_template = this.recommendedCurrentContent.map((addCardrecord) => {\r\n try {\r\n addCardData = JSON.stringify(addCardrecord);\r\n } catch (error) {\r\n addCardData = "";\r\n }\r\n return `<div class="swiper-slide medium">\r\n <card-element cardClass="medium" class-collection=\'${(0,_utils_common_js__WEBPACK_IMPORTED_MODULE_7__/* .escapeSpecialChars */ .y5)(\r\n addCardData\r\n )}\' cardType="medium" sliderType="${\r\n this.sliderType\r\n }" card-config=\'{"showSubscribeTile": true, "showAddToCard" : true}\'></card-element>\r\n </div>`;\r\n });\r\n\r\n const data_count = this.recommendedTotalCount == 9999999 ? false : true;\r\n return (0,lit_element__WEBPACK_IMPORTED_MODULE_0__/* .html */ .qy)` ${data_count == true &&\r\n _redux_store_js__WEBPACK_IMPORTED_MODULE_2__/* .store */ .M.get
1State().oAuthPrivateToken &&\r\n this.kidinfo\r\n ? (0,lit_element__WEBPACK_IMPORTED_MODULE_0__/* .html */ .qy)`\r\n <fluid-container fluidClass="container-pages bg-greyShadow-browse">\r\n <heading-element\r\n headingType="h2"\r\n convertHTML="true"\r\n headingText="<local-elem localKey=\'Recommended for\'></local-elem> ${this.kidinfo?.name}"\r\n headingClass="title title-blue"\r\n ></heading-element>\r\n <bs-swiper\r\n .sliderCardElem=${card_template}\r\n .sliderAddCardElem=${add_cards_template}\r\n sliderClass="recommended-class-slider"\r\n sliderType="${this.sliderType}"\r\n activePageCount=${this.activePageCount}\r\n dataCount=${this.recommendedContent.length}\r\n totalCount=${this.recommendedTotalCount}\r\n @slider-paginate=${this._sliderPaginate}\r\n cardType="medium"\r\n >\r\n </bs-swiper>\r\n </fluid-container>\r\n `\r\n : (0,lit_element__WEBPACK_IMPORTED_MODULE_0__/* .html */ .qy)``}`;\r\n }\r\n}\r\n\r\ncustomElements.define("recommended-class", RecommendedClass);\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzUxMC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL0JhYnlTcGFya3MvLi9zcmMvY29tcG9uZW50cy9yZWNvbW1lbmRlZC1jbGFzcy9yZWNvbW1lbmRlZC1jbGFzcy5qcz81YTZlIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExpdEVsZW1lbnQsIGh0bWwsIGNzcyB9IGZyb20gXCJsaXQtZWxlbWVudFwiO1xyXG5pbXBvcnQgeyBjb25uZWN0IH0gZnJvbSBcInB3YS1oZWxwZXJzXCI7XHJcbmltcG9ydCB7IHN0b3JlIH0gZnJvbSBcIi4uLy4uL3JlZHV4L3N0b3JlLmpzXCI7XHJcbmltcG9ydCBcIi4uL2NhcmQvY2FyZC5qc1wiO1xyXG5pbXBvcnQgeyByZWNvbW1lbmRlZENsYXNzIH0gZnJvbSBcIi4uLy4uL2NvbnRyb2xsZXJzL2NsYXNzZXNDb250cm9sbGVyLmpzXCI7XHJcbmltcG9ydCBcIi4uL2hlYWRpbmdzL2hlYWRpbmdzLmpzXCI7XHJcbmltcG9ydCBcIi4uL3N3aXBlci9zd2lwZXIuanNcIjtcclxuaW1wb3J0IHsgZXNjYXBlU3BlY2lhbENoYXJzIH0gZnJvbSBcIi4uLy4uL3V0aWxzL2NvbW1vbi5qc1wiO1xyXG5pbXBvcnQgXCIuLi9sb2NhbGl6YXRpb24vbG9jYWxpemF0aW9uLmpzXCI7XHJcbmltcG9ydCB7IHNldFJlY29tbWVuZGVkQ2xhc3NEYXRhLCBpbml0TG9hZGVyIH0gZnJvbSBcIi4uLy4uL3JlZHV4L2FjdGlvbnMuanNcIjtcclxuXHJcbmNsYXNzIFJlY29tbWVuZGVkQ2xhc3MgZXh0ZW5kcyBjb25uZWN0KHN0b3JlKShMaXRFbGVtZW50KSB7XHJcbiAgY3JlYXRlUmVuZGVyUm9vdCgpIHtcclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgdGhpcy5zbGlkZXJUeXBlID0gXCJyZWNvbW1lbmRlZFwiO1xyXG4gICAgdGhpcy5pc01vYmlsZVZpZXcgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBnZXQgcHJvcGVydGllcygpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHJlY29tbWVuZGVkQ29udGVudDogeyB0eXBlOiBTdHJpbmcgfSxcclxuICAgICAgcmVjb21tZW5kZWRDb250ZW50OiB7IHR5cGU6IFN0cmluZyB9LFxyXG4gICAgICBzbGlkZXJUeXBlOiB7IHR5cGU6IFN0cmluZyB9LFxyXG4gICAgICBzbGlkZXJfY29udGVudF90eXBlOiB7IHR5cGU6IFN0cmluZyB9LFxyXG4gICAgICByZWNvbW1lbmRlZFRvdGFsQ291bnQ6IHsgdHlwZTogTnVtYmVyIH0sXHJcbiAgICAgIG9mZnNldDogeyB0eXBlOiBOdW1iZXIgfSxcclxuICAgICAgbGltaXQ6IHsgdHlwZTogTnVtYmVyIH0sXHJcbiAgICAgIHNlYXJjaEtleXdvcmRzOiB7IHR5cGU6IFN0cmluZyB9LFxyXG4gICAgICBhY3RpdmVQYWdlQ291bnQ6IHsgdHlwZTogTnVtYmVyIH0sXHJcbiAgICAgIGlzVVRNVVJMOiB7IHR5cGU6IEJvb2xlYW4gfSxcclxuICAgICAgcmVjb21tZW5kZWRDdXJyZW50Q29udGVudDogeyB0eXBlOiBTdHJpbmcgfSxcclxuICAgICAgaXNNb2JpbGVWaWV3OiB7IHR5cGU6IEJvb2xlYW4gfSxcclxuICAgICAga2lkaW5mbzogeyB0eXBlOiBBcnJheSB9LFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHN0YXRlQ2hhbmdlZChzdGF0ZSkge1xyXG4gICAgdGhpcy5yZWNvbW1lbmRlZENvbnRlbnQgPSBzdGF0ZS5yZWNvbW1lbmRlZC5kYXRhO1xyXG4gICAgdGhpcy5yZWNvbW1lbmRlZEN1cnJlbnRDb250ZW50ID0gc3RhdGUucmVjb21tZW5kZWQuY3VycmVudERhdGE7XHJcbiAgICB0aGlzLmtpZGluZm8gPSBzdGF0ZS51c2VyRGF0YS5raWRzXHJcbiAgICAvL3N0YXRlLmtpZHNJbmZvO1xyXG4gICAgdGhpcy5yZWNvbW1lbmRlZFRvdGFsQ291bnQgPSBzdGF0ZS5yZWNvbW1lbmRlZC50b3RhbF9jb3VudDtcclxuICAgIHRoaXMuYWN0aXZlUGFnZUNvdW50ID0gc3RhdGUucmVjb21tZW5kZWQuYWN0aXZlX3BhZ2VfY291bnQ7X
1HJcbiAgICB0aGlzLnNsaWRlclR5cGUgPSBzdGF0ZS5yZWNvbW1lbmRlZC5wYWdlX3R5cGU7XHJcbiAgICB0aGlzLnNlYXJjaEtleXdvcmRzID0gc3RhdGUuc2VhcmNoLmtleXdvcmRzO1xyXG4gICAgdGhpcy5pc1VUTVVSTCA9IHN0YXRlLmlzVVRNVVJMO1xyXG4gICAgdGhpcy5pc01vYmlsZVZpZXcgPSBzdGF0ZS5pc21vYmlsZTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcykge1xyXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcyhcInJlY29tbWVuZGVkQ29udGVudFwiKSkge1xyXG4gICAgICBjb25zdCBvbGRWYWx1ZSA9IGNoYW5nZWRQcm9wZXJ0aWVzLmdldChcInJlY29tbWVuZGVkQ29udGVudFwiKTtcclxuICAgICAgdGhpcy5yZWNvbW1lbmRlZENvbnRlbnQgPSB0aGlzLnJlY29tbWVuZGVkQ29udGVudDtcclxuICAgIH1cclxuICAgIHN1cGVyLnVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XHJcbiAgfVxyXG5cclxuICByZXF1ZXN0VXBkYXRlKHByb3BOYW1lLCBvbGRWYWx1ZSkge1xyXG4gICAgaWYgKHRoaXMuaXNVVE1VUkwgPT0gZmFsc2UpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIChwcm9wTmFtZSAmJlxyXG4gICAgICAgICAgcHJvcE5hbWUgPT0gXCJzZWFyY2hLZXl3b3Jkc1wiICYmXHJcbiAgICAgICAgICBfLmVxKHRoaXMuc2VhcmNoS2V5d29yZHMsIG9sZFZhbHVlKSA9PSBmYWxzZSkgfHxcclxuICAgICAgICAocHJvcE5hbWUgJiZcclxuICAgICAgICAgIHByb3BOYW1lID09IFwiYWN0aXZlUGFnZUNvdW50XCIgJiZcclxuICAgICAgICAgIF8uZXEodGhpcy5hY3RpdmVQYWdlQ291bnQsIG9sZFZhbHVlKSA9PSBmYWxzZSlcclxuICAgICAgKSB7XHJcbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKHJlY29tbWVuZGVkQ2xhc3MoKSkudGhlbihmdW5jdGlvbiAodmFsdWUpIHtcclxuICAgICAgICAgIHN0b3JlLmRpc3BhdGNoKGluaXRMb2FkZXIoZmFsc2UpKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN1cGVyLnJlcXVlc3RVcGRhdGUocHJvcE5hbWUsIG9sZFZhbHVlKTtcclxuICB9XHJcblxyXG4gIF9zbGlkZXJQYWdpbmF0ZShlKSB7XHJcbiAgICBpZiAodGhpcy5pc01vYmlsZVZpZXcgPT09IGZhbHNlKSB7XHJcbiAgICAgIHN0b3JlLmRpc3BhdGNoKGluaXRMb2FkZXIodHJ1ZSkpO1xyXG4gICAgfVxyXG4gICAgc3RvcmUuZGlzcGF0Y2goc2V0UmVjb21tZW5kZWRDbGFzc0RhdGEoW10sIFwiaW5jcmVtZW50XCIpKTtcclxuICB9XHJcblxyXG4gIHJlbmRlcigpIHtcclxuICAgIGxldCBjYXJkX3RlbXBsYXRlID0gXCJcIjtcclxuICAgIGxldCBhZGRfY2FyZHNfdGVtcGxhdGUgPSBcIlwiO1xyXG4gICAgbGV0IHJlY29tbWVuZGVkX2RhdGEgPSBcIlwiO1xyXG4gICAgbGV0IGFkZENhcmREYXRhID0gXCJcIjtcclxuICAgIGNhcmRfdGVtcGxhdGUgPSB0aGlzLnJlY29tbWVuZGVkQ29udGVudC5tYXAoKHJlY29yZCkgPT4ge1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIHJlY29tbWVuZGVkX2RhdGEgPSBKU09OLnN0cmluZ2lmeShyZWNvcmQpO1xyXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgIHJlY29tbWVuZGVkX2RhdGEgPSBcIlwiO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBgPGRpdiBjbGFzcz1cInN3aXBlci1zbGlkZSBtZWRpdW1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxjYXJkLWVsZW1lbnQgY2FyZENsYXNzPVwibWVkaXVtXCIgY2xhc3MtY29sbGVjdGlvbj0nJHtlc2NhcGVTcGVjaWFsQ2hhcnMoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlY29tbWVuZGVkX2RhdGFcclxuICAgICAgICAgICAgICAgICAgICAgICl9JyBjYXJkVHlwZT1cIm1lZGl1bVwiICBzbGlkZXJUeXBlPVwiJHtcclxuICAgICAgICB0aGlzLnNsaWRlclR5cGVcclxuICAgICAgfVwiIGNhcmQtY29uZmlnPSd7XCJzaG93U3Vic2NyaWJlVGlsZVwiOiB0cnVlLCBcInNob3dBZGRUb0NhcmRcIiA6IHRydWV9Jz48L2NhcmQtZWxlbWVudD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PmA7XHJcbiAgICB9KTtcclxuXHJcbiAgICBhZGRfY2FyZHNfdGVtcGxhdGUgPSB0aGlzLnJlY29tbWVuZGVkQ3VycmVudENvbnRlbnQubWFwKChhZGRDYXJkcmVjb3JkKSA9PiB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgYWRkQ2FyZERhdGEgPSBKU09OLnN0cmluZ2lmeShhZGRDYXJkcmVjb3JkKTtcclxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICBhZGRDYXJkRGF0YSA9IFwiXCI7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGA8ZGl2IGNsYXNzPVwic3dpcGVyLXNsaWRlIG1lZGl1bVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjYXJkLWVsZW1lbnQgY2FyZENsYXNzPVwibWVkaXVtXCIgY2xhc3MtY29sbGVjdGlvbj0nJHtlc2NhcGVTcGVjaWFsQ2hhcnMoXHJcbiAgICAgICAgICAgICAgICAgICAgICBhZGRDYXJkRGF0YVxyXG4gICAgICAgICAgICAgICAgICAgICl9JyBjYXJkVHlwZT1cIm1lZGl1bVwiICBzbGlkZXJUeXBlPVwiJHtcclxuICAgICAgICB0aGlzLnNsaWRlclR5cGVcclxuICAgICAgfVwiIGNhcmQtY29uZmlnPSd7XCJzaG93U3Vic2NyaWJlVGlsZVwiOiB0cnVlLCBcInNob3dBZGRUb0NhcmRcIiA6IHRydWV9Jz48L2NhcmQtZWxlbWVudD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PmA7XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb25zdCBkYXRhX2NvdW50ID0gdGhpcy5yZWNvbW1lbmRlZFRvdGFsQ291bnQgPT0gOTk5OTk5OSA/IGZhbHNlIDogdHJ1ZTtcclxuICAgIHJldHVybiBodG1sYCAke2RhdGFfY291bnQgPT0gdHJ1ZSAmJlxyXG4gICAgc3RvcmUuZ2V0U3RhdGUoKS5vQXV0aFByaXZhdGVUb2tlbiAmJlxyXG4gICAgdGhpcy5raWRpbmZvXHJcbiAgICAgID8gaHRtbGBcclxuICAgICAgICAgIDxmbHVpZC1jb250YWluZXIgZmx1aWRDbGFzcz1cImNvbnRhaW5lci1wYWdlcyBiZy1ncmV5U2hhZG93LWJyb3dzZVwiPlxyXG4gICAgICAgICAgICA8aGVhZGluZy1lbGVtZW50XHJcbiAgICAgICAgICAgICAgaGVhZGluZ1R5cGU9XCJoMlwiXHJcbiAgICAgICAgICAgICAgY29udmVydEhUTUw9XCJ0cnVlXCJcclxuICAgICAgICAgICAgICBoZWFkaW5nVGV4dD1cIjxsb2NhbC1lbGVtIGxvY2FsS2V5PSdSZWNvbW1lbmRlZCBmb3InPjwvbG9jYWwtZWxlbT4gJHt0aGlzLmtpZGluZm8/Lm5hbWV9XCJcclxuICAgICAgICAgICAgICBoZWFkaW5nQ2xhc3M9XCJ0aXRsZSB0aXRsZS1ibHVlXCJcclxuICAgICAgICAgICAgPjwvaGVhZGluZy1lbGVtZW50PlxyXG4gICAgICAgICAgICA8YnMtc3dpcGVyXHJcbiAgICAgICAgICAgICAgLnNsaWRlckNhcmRFbGVtPSR7Y2Fy
1ZF90ZW1wbGF0ZX1cclxuICAgICAgICAgICAgICAuc2xpZGVyQWRkQ2FyZEVsZW09JHthZGRfY2FyZHNfdGVtcGxhdGV9XHJcbiAgICAgICAgICAgICAgc2xpZGVyQ2xhc3M9XCJyZWNvbW1lbmRlZC1jbGFzcy1zbGlkZXJcIlxyXG4gICAgICAgICAgICAgIHNsaWRlclR5cGU9XCIke3RoaXMuc2xpZGVyVHlwZX1cIlxyXG4gICAgICAgICAgICAgIGFjdGl2ZVBhZ2VDb3VudD0ke3RoaXMuYWN0aXZlUGFnZUNvdW50fVxyXG4gICAgICAgICAgICAgIGRhdGFDb3VudD0ke3RoaXMucmVjb21tZW5kZWRDb250ZW50Lmxlbmd0aH1cclxuICAgICAgICAgICAgICB0b3RhbENvdW50PSR7dGhpcy5yZWNvbW1lbmRlZFRvdGFsQ291bnR9XHJcbiAgICAgICAgICAgICAgQHNsaWRlci1wYWdpbmF0ZT0ke3RoaXMuX3NsaWRlclBhZ2luYXRlfVxyXG4gICAgICAgICAgICAgIGNhcmRUeXBlPVwibWVkaXVtXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8L2JzLXN3aXBlcj5cclxuICAgICAgICAgIDwvZmx1aWQtY29udGFpbmVyPlxyXG4gICAgICAgIGBcclxuICAgICAgOiBodG1sYGB9YDtcclxuICB9XHJcbn1cclxuXHJcbmN1c3RvbUVsZW1lbnRzLmRlZmluZShcInJlY29tbWVuZGVkLWNsYXNzXCIsIFJlY29tbWVuZGVkQ2xhc3MpO1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///7510\n\n}')},7583:(__unused_webpack_module,__unused_webpack___webpack_exports__,__webpack_require__)=>{eval("{\n// EXTERNAL MODULE: ./node_modules/lit-element/index.js\nvar lit_element = __webpack_require__(4420);\n// EXTERNAL MODULE: ./node_modules/pwa-helpers/connect-mixin.js\nvar connect_mixin = __webpack_require__(4753);\n// EXTERNAL MODULE: ./src/redux/store.js + 1 modules\nvar store = __webpack_require__(5548);\n// EXTERNAL MODULE: ./src/redux/actions.js\nvar actions = __webpack_require__(3534);\n// EXTERNAL MODULE: ./src/assets/images/icons/Icon_Search.png\nvar Icon_Search = __webpack_require__(6340);\n// EXTERNAL MODULE: ./node_modules/lit/index.js\nvar lit = __webpack_require__(6161);\n;// ./src/components/search-bar/search-bar.scss\n /* harmony default export */ const search_bar = ((0,lit/* css */.AH)`@import url(https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;500;600;700&display=swap);a{color:#0493cc;cursor:pointer;text-decoration:none;font-size:16px}a:hover{color:#97c940}.center{text-align:center!important}.left{text-align:left!important}.right{text-align:right!important}img,svg{vertical-align:middle}*,::after,::before{box-sizing:border-box}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}.flex-center{display:flex!important;justify-content:center!important}textarea::placeholder{color:#848fa5!important}@media(max-width:768px){.tab-content{position:relative;padding:0 0 0 34px}}@media(max-width:2000px){.search-short{max-width:1800px;width:100%}}.search-short{margin-left:0;position:relative;width:96%}#button-search-browse{height:32px;width:32px;display:inline-block;border:1px solid #d6dbe4;border-radius:4px;border-bottom-left-radius:0;border-top-left-radius:0;border-left:0;background:#fff;text-align:center;padding:6px 0}@media(max-width:820px){.search-short{width:calc(100% - 118px);float:right;position:relative;z-index:999;margin-right:16px}}@media(max-width:610px){.search-short{width:calc(100% - 80px);float:right;position:relative;z-index:999;margin-right:16px}.search-short.search-short-mob{width:auto}.search-short.search-short-mob .mobile-input{display:none}.search-short.search-short-mob #button-search-browse{float:right;border-left:1px solid #d6dbe4;border-bottom-left-radius:4px;border-top-left-radius:4px;padding:7px 6px}.search-short.search-short-mob #button-search-browse img{margin:auto}}`);\n \n// EXTERNAL MODULE: ./src/components/image/image.js\nvar image_image = __webpack_require__(7826);\n// EXTERNAL MODULE: ./src/components/text-box/textbox.js + 1 modules\nvar textbox = __webpack_require__(3762);\n// EXTERNAL MODULE: ./src/utils/analytics.js + 1 modules\nvar analytics = __webpack_require__(5908);\n;// ./src/components/search-bar/search-bar.js\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass SearchBar extends (0,connect_mixin/* connect */.N)(store/* store */.M)(lit_element/* LitElement */.WF) {\r\n constructor() {\r\n super();\r\n this.form_id = 'search-primary';\r\n this.anchor_id = 'button-search-browse';\r\n this.search_box_id = 'input-search-browse';\r\n this.type = 'search';\r\n this.placeholder = 'Search for classes, topics or experts.';\r\n this.textClass = \"mobile-input\"\r\n }\r\n\r\n static get properties() {\r\n return {\r\n id: { type: String },\r\n placeholder: { type: String },\r\n type : { type : String },\r\n textClass: {type : String },\r\n };\r\n }\r\n\r\n stateChanged(state) {\r\n this.searchKeywords = state.search.keywords;\r\n }\r\n\r\n static get styles() {\r\n return [search_bar];\r\n }\r\n \r\n get imageTemplate() {\r\n return (0,lit_element/* html */.qy) `<image-element imgClass=\"link-img-search\" imageSrc=\"${Icon_Search/* default */.A}\"></image-element>`;\r\n }\r\n \r\n get anchorTemplate() {\r\n const imgsource = `<image-element imageSrc=\"${Icon_Search/* default */.A}\" @click=${()=>this._callSearchDispacther()}></image-element>`\r\n return (0,lit_element/* html */.qy) `<anchor-tag-element id=\"${this.anchor_id}\" hrefValue=\"${imgsource}\" @click=${()=>this._callSearchDispacther()}> </anchor-tag-element>`\r\n }\r\n\r\n get textboxTemplate() {\r\n return (0,lit_element/* html */.qy)` <text-box id=\"${this.search_box_id}\" type=\"${this.type}\" class=\"${this.textClass}\" placeholder=\"${this.placeholder}\" .methodCallback=${true} .showCrossIcon=${true} methodCallbackFrom=\"search-bar\"></text-box>`;\r\n }\r\n\r\n\r\n render() {\r\n return (0,lit_element/* html */.qy)`\r\n <form id=\"${this.form_id}\" class=\"form-search search-short search-short-mob\" @click=${this._openFullSearch}> \r\n ${this.textboxTemplate}\r\n ${this.anchorTemplate}\r\n </form>`;\r\n }\r\n\r\n _callSearchDispacther(){\r\n let elementChild=this.shadowRoot.getElementById(`${this.search_box_id}`)._getInputData();\r\n if(elementChild && elementChild.trim()!==''){\r\n this._searchDispat
1cher();\r\n }\r\n }\r\n\r\n _searchDispatcher(e){\r\n //console.log(\"::::::::::::::::::::::::: seacrch dispacher::::::::::::::::::::::::::::::\")\r\n let elementChild=this.shadowRoot.getElementById(`${this.search_box_id}`)._getInputData();\r\n if(elementChild !== this.searchKeywords){\r\n store/* store */.M.dispatch((0,actions/* initLoader */.Aj)(true));\r\n }\r\n store/* store */.M.dispatch((0,actions/* setOndemndClassData */.a$)(null,'filter'));\r\n store/* store */.M.dispatch((0,actions/* setLiveClassData */.Hu)(null,'filter'));\r\n // store.dispatch(setHighlyRatedClassData(null,'filter'));\r\n // store.dispatch(setTrendingClassData(null,'filter'));\r\n store/* store */.M.dispatch((0,actions/* setPrivateClassData */.I0)(null,'filter'));\r\n // store.dispatch(setRecentlyAddedClassData(null,'filter'));\r\n // store.dispatch(setWatchAgainClassData(null,'filter'));\r\n // store.dispatch(setPopularClassData(null,'filter'));\r\n store/* store */.M.dispatch((0,actions/* setSearchData */.Bf)(elementChild));\r\n // store.dispatch(setWishListClassData(null,'filter'));\r\n // store.dispatch(setRecommendedClassData(null,'filter'));\r\n //FB-Google Event\r\n (0,analytics/* eventSearchClasses */.V8)();\r\n this.requestUpdate(this.searchKeywords,elementChild);\r\n }\r\n\r\n _openFullSearch(){\r\n let bosearchx = this.shadowRoot.getElementById(`${this.form_id}`);\r\n bosearchx.classList.remove('search-short-mob');\r\n }\r\n requestUpdate(propName,oldValue) {\r\n //store.dispatch(initLoader(false));\r\n return super.requestUpdate(propName, oldValue);\r\n }\r\n \r\n}\r\n\r\ncustomElements.define(\"search-bar\", SearchBar);\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzU4My5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7Ozs7Ozs7O0FDRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9CYWJ5U3BhcmtzLy4vc3JjL2NvbXBvbmVudHMvc2VhcmNoLWJhci9zZWFyY2gtYmFyLnNjc3M/ZmU0MCIsIndlYnBhY2s6Ly9CYWJ5U3BhcmtzLy4vc3JjL2NvbXBvbmVudHMvc2VhcmNoLWJhci9zZWFyY2gtYmFyLmpzP2Q4ZDkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtjc3N9IGZyb20gJ2xpdCc7IGV4cG9ydCBkZWZhdWx0IGNzc2BAaW1wb3J0IHVybChodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PU9wZW4rU2Fuczp3Z2h0QDMwMDs0MDA7NTAwOzYwMDs3MDAmZGlzcGxheT1zd2FwKTthe2NvbG9yOiMwNDkzY2M7Y3Vyc29yOnBvaW50ZXI7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Zm9udC1zaXplOjE2cHh9YTpob3Zlcntjb2xvcjojOTdjOTQwfS5jZW50ZXJ7dGV4dC1hbGlnbjpjZW50ZXIhaW1wb3J0YW50fS5sZWZ0e3RleHQtYWxpZ246bGVmdCFpbXBvcnRhbnR9LnJpZ2h0e3RleHQtYWxpZ246cmlnaHQhaW1wb3J0YW50fWltZyxzdmd7dmVydGljYWwtYWxpZ246bWlkZGxlfSosOjphZnRlciw6OmJlZm9yZXtib3gtc2l6aW5nOmJvcmRlci1ib3h9LmgxLC5oMiwuaDMsLmg0LC5oNSwuaDYsaDEsaDIsaDMsaDQsaDUsaDZ7bWFyZ2luLXRvcDowO21hcmdpbi1ib3R0b206LjVyZW07Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjEuMn0uZmxleC1jZW50ZXJ7ZGlzcGxheTpmbGV4IWltcG9ydGFudDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudH10ZXh0YXJlYTo6cGxhY2Vob2xkZXJ7Y29sb3I6Izg0OGZhNSFpbXBvcnRhbnR9QG1lZGlhKG1heC13aWR0aDo3NjhweCl7LnRhYi1jb250ZW50e3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmc6MCAwIDAgMzRweH19QG1lZGlhKG1heC13aWR0aDoyMDAwcHgpey5zZWFyY2gtc2hvcnR7bWF4LXdpZHRoOjE4MDBweDt3aWR0aDoxMDAlfX0uc2VhcmNoLXNob3J0e21hcmdpbi1sZWZ0OjA7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6OTYlfSNidXR0b24tc2VhcmNoLWJyb3dzZXtoZWlnaHQ6MzJweDt3aWR0aDozMnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO2JvcmRlcjoxcHggc29saWQgI2Q2ZGJlNDtib3JkZXItcmFkaXVzOjRweDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjA7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowO2JvcmRlci1sZWZ0OjA7YmFja2dyb3VuZDojZmZmO3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmc6NnB4IDB9QG1lZGlhKG1heC13aWR0aDo4MjBweCl7LnNlYXJjaC1zaG9ydHt3aWR0aDpjYWxjKDEwMCUgLSAxMThweCk7ZmxvYXQ6cmlnaHQ7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDo5OTk7bWFyZ2luLXJpZ2h0OjE2cHh9fUBtZWRpYShtYXgtd2lkdGg6NjEwcHgpey5zZWFyY2gtc2hvcnR7d2lkdGg6Y2FsYygxMDAlIC0gODBweCk7ZmxvYXQ6cmlnaHQ7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDo5OTk7bWFyZ2luLXJpZ2h0OjE2cHh9LnNlYXJjaC1zaG9ydC5zZWFyY2gtc2hvcnQtbW9ie3dpZHRoOmF1dG99LnNlYXJjaC1zaG9ydC5zZWFyY2gtc2hvcnQtbW9iIC5tb2JpbGUtaW5wdXR7ZGlzcGxheTpub25lfS5zZWFyY2gtc2hvcnQuc2VhcmNoLXNob3J0LW1vYiAjYnV0dG9uLXNlYXJjaC1icm93c2V7ZmxvYXQ6cmlnaHQ7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNkNmRiZTQ7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo0cHg7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czo0cHg7cGFkZGluZzo3cHggNnB4fS5zZWFyY2gtc2hvcnQuc2VhcmNoLXNob3J0LW1vYiAjYnV0dG9uLXNlYXJjaC1icm93c2UgaW1ne21hcmdpbjphdXRvfX1gO1xuICAgICIsImltcG9ydCB7XHJcbiAgTGl0RWxlbWVudCxcclxuICBodG1sXHJcbn0gZnJvbSBcImxpdC1lbGVtZW50XCI7XHJcbmltcG9ydCB7
1IGNvbm5lY3QgfSBmcm9tICdwd2EtaGVscGVycyc7XHJcbmltcG9ydCB7IHN0b3JlIH0gZnJvbSAnLi4vLi4vcmVkdXgvc3RvcmUuanMnO1xyXG5pbXBvcnQgeyBzZXRTZWFyY2hEYXRhIH0gZnJvbSAnLi4vLi4vcmVkdXgvYWN0aW9ucy5qcyc7XHJcbmltcG9ydCBzZWFyY2hJY29uIGZyb20gJy4uLy4uL2Fzc2V0cy9pbWFnZXMvaWNvbnMvSWNvbl9TZWFyY2gucG5nJ1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gJy4vc2VhcmNoLWJhci5zY3NzJztcclxuaW1wb3J0ICcuLi9pbWFnZS9pbWFnZS5qcyc7XHJcbmltcG9ydCAnLi4vdGV4dC1ib3gvdGV4dGJveC5qcydcclxuaW1wb3J0IHsgc2V0T25kZW1uZENsYXNzRGF0YSwgc2V0TGl2ZUNsYXNzRGF0YSwgc2V0SGlnaGx5UmF0ZWRDbGFzc0RhdGEsIHNldFRyZW5kaW5nQ2xhc3NEYXRhLCBzZXRQcml2YXRlQ2xhc3NEYXRhLCBzZXRSZWNlbnRseUFkZGVkQ2xhc3NEYXRhLCBzZXRXYXRjaEFnYWluQ2xhc3NEYXRhLHNldFdpc2hMaXN0Q2xhc3NEYXRhLHNldFJlY29tbWVuZGVkQ2xhc3NEYXRhLCBzZXRQb3B1bGFyQ2xhc3NEYXRhLGluaXRMb2FkZXIsc2V0Q3VzdG9tQ2xhc3NEYXRhfSBmcm9tICcuLi8uLi9yZWR1eC9hY3Rpb25zLmpzJztcclxuaW1wb3J0IHsgZXZlbnRTZWFyY2hDbGFzc2VzIH0gZnJvbSAnLi4vLi4vdXRpbHMvYW5hbHl0aWNzJ1xyXG5cclxuXHJcbmNsYXNzIFNlYXJjaEJhciBleHRlbmRzIGNvbm5lY3Qoc3RvcmUpKExpdEVsZW1lbnQpIHtcclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICB0aGlzLmZvcm1faWQgPSAnc2VhcmNoLXByaW1hcnknO1xyXG4gICAgdGhpcy5hbmNob3JfaWQgPSAnYnV0dG9uLXNlYXJjaC1icm93c2UnO1xyXG4gICAgdGhpcy5zZWFyY2hfYm94X2lkID0gJ2lucHV0LXNlYXJjaC1icm93c2UnO1xyXG4gICAgdGhpcy50eXBlID0gJ3NlYXJjaCc7XHJcbiAgICB0aGlzLnBsYWNlaG9sZGVyID0gJ1NlYXJjaCBmb3IgY2xhc3NlcywgdG9waWNzIG9yIGV4cGVydHMuJztcclxuICAgIHRoaXMudGV4dENsYXNzID0gXCJtb2JpbGUtaW5wdXRcIlxyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldCBwcm9wZXJ0aWVzKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgaWQ6IHsgdHlwZTogU3RyaW5nIH0sXHJcbiAgICAgIHBsYWNlaG9sZGVyOiB7IHR5cGU6IFN0cmluZyB9LFxyXG4gICAgICB0eXBlIDogeyB0eXBlIDogU3RyaW5nIH0sXHJcbiAgICAgIHRleHRDbGFzczoge3R5cGUgOiBTdHJpbmcgfSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBzdGF0ZUNoYW5nZWQoc3RhdGUpIHtcclxuICAgIHRoaXMuc2VhcmNoS2V5d29yZHMgPSBzdGF0ZS5zZWFyY2gua2V5d29yZHM7XHJcbiB9XHJcblxyXG4gIHN0YXRpYyBnZXQgc3R5bGVzKCkge1xyXG4gICAgICByZXR1cm4gW3N0eWxlc107XHJcbiAgfVxyXG4gIFxyXG4gIGdldCBpbWFnZVRlbXBsYXRlKCkge1xyXG4gICAgcmV0dXJuIGh0bWwgYDxpbWFnZS1lbGVtZW50IGltZ0NsYXNzPVwibGluay1pbWctc2VhcmNoXCIgaW1hZ2VTcmM9XCIke3NlYXJjaEljb259XCI+PC9pbWFnZS1lbGVtZW50PmA7XHJcbiAgfVxyXG4gIFxyXG4gIGdldCBhbmNob3JUZW1wbGF0ZSgpIHtcclxuICAgIGNvbnN0IGltZ3NvdXJjZSA9IGA8aW1hZ2UtZWxlbWVudCBpbWFnZVNyYz1cIiR7c2VhcmNoSWNvbn1cIiBAY2xpY2s9JHsoKT0+dGhpcy5fY2FsbFNlYXJjaERpc3BhY3RoZXIoKX0+PC9pbWFnZS1lbGVtZW50PmBcclxuICAgIHJldHVybiBodG1sIGA8YW5jaG9yLXRhZy1lbGVtZW50IGlkPVwiJHt0aGlzLmFuY2hvcl9pZH1cIiBocmVmVmFsdWU9XCIke2ltZ3NvdXJjZX1cIiBAY2xpY2s9JHsoKT0+dGhpcy5fY2FsbFNlYXJjaERpc3BhY3RoZXIoKX0+IDwvYW5jaG9yLXRhZy1lbGVtZW50PmBcclxuICB9XHJcblxyXG4gIGdldCB0ZXh0Ym94VGVtcGxhdGUoKSB7XHJcbiAgICByZXR1cm4gaHRtbGAgPHRleHQtYm94IGlkPVwiJHt0aGlzLnNlYXJjaF9ib3hfaWR9XCIgdHlwZT1cIiR7dGhpcy50eXBlfVwiIGNsYXNzPVwiJHt0aGlzLnRleHRDbGFzc31cIiBwbGFjZWhvbGRlcj1cIiR7dGhpcy5wbGFjZWhvbGRlcn1cIiAubWV0aG9kQ2FsbGJhY2s9JHt0cnVlfSAuc2hvd0Nyb3NzSWNvbj0ke3RydWV9IG1ldGhvZENhbGxiYWNrRnJvbT1cInNlYXJjaC1iYXJcIj48L3RleHQtYm94PmA7XHJcbiAgfVxyXG5cclxuXHJcbiAgcmVuZGVyKCkge1xyXG4gICAgcmV0dXJuIGh0bWxgXHJcbiAgICA8Zm9ybSBpZD1cIiR7dGhpcy5mb3JtX2lkfVwiIGNsYXNzPVwiZm9ybS1zZWFyY2ggc2VhcmNoLXNob3J0IHNlYXJjaC1zaG9ydC1tb2JcIiBAY2xpY2s9JHt0aGlzLl9vcGVuRnVsbFNlYXJjaH0+IFxyXG4gICAgICAke3RoaXMudGV4dGJveFRlbXBsYXRlfVxyXG4gICAgICAke3RoaXMuYW5jaG9yVGVtcGxhdGV9XHJcbiAgICA8L2Zvcm0+YDtcclxuICB9XHJcblxyXG4gIF9jYWxsU2VhcmNoRGlzcGFjdGhlcigpe1xyXG4gICAgbGV0IGVsZW1lbnRDaGlsZD10aGlzLnNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoYCR7dGhpcy5zZWFyY2hfYm94X2lkfWApLl9nZXRJbnB1dERhdGEoKTtcclxuICAgIGlmKGVsZW1lbnRDaGlsZCAmJiBlbGVtZW50Q2hpbGQudHJpbSgpIT09Jycpe1xyXG4gICAgICB0aGlzLl9zZWFyY2hEaXNwYXRjaGVyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBfc2VhcmNoRGlzcGF0Y2hlcihlKXtcclxuICAgIC8vY29uc29sZS5sb2coXCI6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6IHNlYWNyY2ggZGlzcGFjaGVyOjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6XCIpXHJcbiAgICAgIGxldCBlbGVtZW50Q2hpbGQ9dGhpcy5zaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKGAke3RoaXMuc2VhcmNoX2JveF9pZH1gKS5fZ2V0SW5wdXREYXRhKCk7XHJcbiAgICAgIGlmKGVsZW1lbnRDaGlsZCAhPT0gdGhpcy5zZWFyY2hLZXl3b3Jkcyl7XHJcbiAgICAgICAgc3RvcmUuZGlzcGF0Y2goaW5pdExvYWRlcih0cnVlKSk7XHJcbiAgICAgIH1cclxuICAgICAgc3RvcmUuZGlzcGF0Y2goc2V0T25kZW1uZENsYXNzRGF0YShudWxsLCdmaWx0ZXInKSk7XHJcbiAgICAgIHN0b3JlLmRpc3BhdGNoKHNldExpdmV
1DbGFzc0RhdGEobnVsbCwnZmlsdGVyJykpO1xyXG4gICAgICAvLyBzdG9yZS5kaXNwYXRjaChzZXRIaWdobHlSYXRlZENsYXNzRGF0YShudWxsLCdmaWx0ZXInKSk7XHJcbiAgICAgIC8vIHN0b3JlLmRpc3BhdGNoKHNldFRyZW5kaW5nQ2xhc3NEYXRhKG51bGwsJ2ZpbHRlcicpKTtcclxuICAgICAgc3RvcmUuZGlzcGF0Y2goc2V0UHJpdmF0ZUNsYXNzRGF0YShudWxsLCdmaWx0ZXInKSk7XHJcbiAgICAgIC8vIHN0b3JlLmRpc3BhdGNoKHNldFJlY2VudGx5QWRkZWRDbGFzc0RhdGEobnVsbCwnZmlsdGVyJykpO1xyXG4gICAgICAvLyBzdG9yZS5kaXNwYXRjaChzZXRXYXRjaEFnYWluQ2xhc3NEYXRhKG51bGwsJ2ZpbHRlcicpKTtcclxuICAgICAgLy8gc3RvcmUuZGlzcGF0Y2goc2V0UG9wdWxhckNsYXNzRGF0YShudWxsLCdmaWx0ZXInKSk7XHJcbiAgICAgIHN0b3JlLmRpc3BhdGNoKHNldFNlYXJjaERhdGEoZWxlbWVudENoaWxkKSk7XHJcbiAgICAgLy8gc3RvcmUuZGlzcGF0Y2goc2V0V2lzaExpc3RDbGFzc0RhdGEobnVsbCwnZmlsdGVyJykpO1xyXG4gICAgIC8vIHN0b3JlLmRpc3BhdGNoKHNldFJlY29tbWVuZGVkQ2xhc3NEYXRhKG51bGwsJ2ZpbHRlcicpKTtcclxuICAgICAgLy9GQi1Hb29nbGUgRXZlbnRcclxuICAgICAgZXZlbnRTZWFyY2hDbGFzc2VzKCk7XHJcbiAgICAgIHRoaXMucmVxdWVzdFVwZGF0ZSh0aGlzLnNlYXJjaEtleXdvcmRzLGVsZW1lbnRDaGlsZCk7XHJcbiAgfVxyXG5cclxuICBfb3BlbkZ1bGxTZWFyY2goKXtcclxuICAgIGxldCBib3NlYXJjaHggPSB0aGlzLnNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoYCR7dGhpcy5mb3JtX2lkfWApO1xyXG4gICAgYm9zZWFyY2h4LmNsYXNzTGlzdC5yZW1vdmUoJ3NlYXJjaC1zaG9ydC1tb2InKTtcclxuICB9XHJcbiAgcmVxdWVzdFVwZGF0ZShwcm9wTmFtZSxvbGRWYWx1ZSkge1xyXG4gICAgLy9zdG9yZS5kaXNwYXRjaChpbml0TG9hZGVyKGZhbHNlKSk7XHJcbiAgICByZXR1cm4gc3VwZXIucmVxdWVzdFVwZGF0ZShwcm9wTmFtZSwgb2xkVmFsdWUpO1xyXG4gIH1cclxuIFxyXG59XHJcblxyXG5jdXN0b21FbGVtZW50cy5kZWZpbmUoXCJzZWFyY2gtYmFyXCIsIFNlYXJjaEJhcik7XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///7583\n\n}")},8073:(__unused_webpack_module,__unused_webpack___webpack_exports__,__webpack_require__)=>{eval('{\n// EXTERNAL MODULE: ./node_modules/lit-element/index.js\nvar lit_element = __webpack_require__(4420);\n// EXTERNAL MODULE: ./node_modules/lit/index.js\nvar lit = __webpack_require__(6161);\n;// ./src/components/sub-filters/sub-filters.scss\n /* harmony default export */ const sub_filters = ((0,lit/* css */.AH)`@import url(https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;500;600;700&display=swap);a{color:#0493cc;cursor:pointer;text-decoration:none;font-size:16px}a:hover{color:#97c940}.center{text-align:center!important}.left{text-align:left!important}.right{text-align:right!important}img,svg{vertical-align:middle}*,::after,::before{box-sizing:border-box}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}.flex-center{display:flex!important;justify-content:center!important}textarea::placeholder{color:#848fa5!important}@media(max-width:768px){.tab-content{position:relative;padding:0 0 0 34px}}.group-filter-topic{display:inline-table!important;height:48px!important;background:#fff;box-shadow:0 2px 4px 0 rgba(153,160,172,.45);text-align:center;border-radius:4px;margin:4px;cursor:pointer;padding:4px 0;position:relative;margin-left:0}.group-filter-topic.topic{width:100%!important;min-width:170px;box-shadow:none;padding:8px 24px;background:#fff;border-radius:8px;margin:0 4px}.group-filter-topic.topic.selected{background:#0493cc;color:#fff;position:relative;font-size:12px;font-family:SFProDisplay-Medium;padding:8px 34px;margin:0;border-radius:4px}.group-filter-topic.select-all-topic{width:100%!important;min-width:170px;box-shadow:none;padding:8px 24px;background:#fff;border-radius:8px;margin:0 10px;display:none!important}.group-filter-topic.age{width:100%!important;min-width:170px;max-width:212px}.group-filter-topic.select-all-age{width:100%!important;min-width:120px;display:none!important}.group-filter-topic.classType{width:100%!important;min-width:120px!important;max-width:416px!important}.group-filter-topic.select-all-class_type{width:100%!important;min-width:120px;display:none!important}.group-filter-topic.selected{background:#0493cc;color:#fff;position:relative;font-size:12px;font-family:SFProDisplay-Medium}.group-filter-topic.language{width:100%!important;min-width:120px;max-width:539px}.group-filter-topic.select-all-language{width:100%!important;min-width:120px}.group-filter-topic.experts{width:100%!important;min-width:170px!important}.blue-background{background:#0493cc}.language{width:300px}.flex-box{display:table-cell;vertical-align:middle}@media(max-width:820px){.group-filter-topic.age{width:120px}.group-filter-topic.select-all-age{width:120px}.group-filter-topic.language{width:180px}.group-filter-topic.select-all-language{width:180px}
1.group-filter-topic.classType{width:200px}.group-filter-topic.select-all-class_type{width:200px}}@media(max-width:610px){.group-filter-topic.age{width:143px!important;min-width:143px!important}.group-filter-topic.topic{width:150px!important;min-width:150px!important}.group-filter-topic.select-all-age{width:108px}.group-filter-topic.language{width:108px}.group-filter-topic.select-all-language{width:auto}.group-filter-topic.classType{width:200px}.group-filter-topic.select-all-class_type{width:200px}}`);\n \n// EXTERNAL MODULE: ./node_modules/pwa-helpers/connect-mixin.js\nvar connect_mixin = __webpack_require__(4753);\n// EXTERNAL MODULE: ./src/redux/store.js + 1 modules\nvar store = __webpack_require__(5548);\n// EXTERNAL MODULE: ./src/controllers/classesController.js\nvar classesController = __webpack_require__(6130);\n// EXTERNAL MODULE: ./src/redux/actions.js\nvar actions = __webpack_require__(3534);\n// EXTERNAL MODULE: ./src/assets/images/icons/Icono_OnDeman.png\nvar Icono_OnDeman = __webpack_require__(1967);\n// EXTERNAL MODULE: ./src/assets/images/icons/Icon_Live.png\nvar Icon_Live = __webpack_require__(1954);\n// EXTERNAL MODULE: ./src/utils/common.js\nvar common = __webpack_require__(8369);\n// EXTERNAL MODULE: ./src/assets/images/icons/Icon_Live.svg\nvar icons_Icon_Live = __webpack_require__(8573);\n// EXTERNAL MODULE: ./src/assets/images/icons/Icono_OnDemand_white.png\nvar Icono_OnDemand_white = __webpack_require__(5745);\n// EXTERNAL MODULE: ./src/components/localization/localization.js\nvar localization = __webpack_require__(8550);\n// EXTERNAL MODULE: ./src/utils/analytics.js + 1 modules\nvar analytics = __webpack_require__(5908);\n;// ./src/components/sub-filters/sub-filters.js\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass SubFilters extends (0,connect_mixin/* connect */.N)(store/* store */.M)(lit_element/* LitElement */.WF) {\r\n static get properties() {\r\n return {\r\n labelText: { type: String },\r\n labelClass: { type: String },\r\n collection: {\r\n type: Object,\r\n attribute: "filter-config",\r\n },\r\n filterType: { type: String },\r\n updatedAgeFilter: { type: Array },\r\n updatedTopicFilter: { type: Array },\r\n topicCollection: {\r\n type: Object,\r\n attribute: "filter-config",\r\n },\r\n ageCollection: {\r\n type: Object,\r\n attribute: "age-config",\r\n },\r\n filterCollection: {\r\n type: Array,\r\n attribute: "filter-data",\r\n },\r\n updatedClassTypeFilter: { type: Array },\r\n updatedLanguageFilter: { type: Array },\r\n };\r\n }\r\n\r\n constructor() {\r\n super();\r\n this.collection = {};\r\n this.filterType = "";\r\n this.updatedAgeFilter = [];\r\n this.updatedAgeFilterLabel = [];\r\n this.updatedTopicFilter = [];\r\n this.updatedClassTypeFilter = [];\r\n this.updatedLanguageFilter = [];\r\n this.topicCollection = {};\r\n this.filter_collection = this.filterCollection;\r\n }\r\n\r\n static get styles() {\r\n return [sub_filters];\r\n }\r\n\r\n get spanTemplates() {\r\n return (0,lit_element/* html */.qy)`\r\n <span-element\r\n spanText="${this.collection.span_text_1}"\r\n spanClass="title-group-filter"\r\n ></span-element>\r\n <span-element\r\n spanText="${this.collection.span_text_2}"\r\n spanClass="desc-group-filter"\r\n ></span-element>\r\n `;\r\n }\r\n\r\n get textboxTemplate() {\r\n return (0,lit_element/* html */.qy)` <text-box\r\n type="checkbox"\r\n name="${this.collection.name}"\r\n value="${this.collection.value}"\r\n ></text-box>`;\r\n }\r\n\r\n isSelectedFilter() {\r\n if (this.filterType == "age") {\r\n return this.updatedAgeFilter.includes(this.ageCollection.data_value);\r\n } else if (this.filterType == "topic") {\r\n return this.updatedTopicFilter.includes(this.collection.data_value);\r\n } else if (this.filterType == "classType") {\r\n return this.updatedClassTypeFilter.includes(this.collection.data_value);\r\n } else if (this.filterType == "language") {\r\n return this.updatedLanguageFilter.includes(this.collection.data_value);\r\n } else if (this.filterType == "Select-all ages") {\r\n return this.updatedLanguageFilter.includes(this.collection.data_value);\r\n } else if (this.filterType == "Select-all topics") {\r\n return this.updatedLanguageFilter.includes(this.collection.data_value);\r\n } else if (this.filterType == "Select-all language") {\r\n return this.updatedLanguageFilter.includes(this.collection.data_value);\r\n } else if (this.filterType == "select-all-class_type") {\r\n return this.updatedLanguageFilter.includes(this.collection.data_value);\r\n } else return false;\r\n }\r\n updateFilter() {\r\n try {\r\n store/* store */.M.dispatch((0,actions/* initLoader */.Aj)(true));\r\n store/* store */.M.dispatch((0,actions/* setOndemndClassData */.a$)(null, "filter"));\r\n store/* store */.M.dispatch((0,actions/* setLiveClassData */.Hu)(null, "filter"));\r\n // store.dispatch(setHighlyRatedClassData(null, "filter"));\r\n // store.dispatch(setTrendingClassData(null, "filter"));\r\n store/* store */.M.dispatch((0,actions/* setPrivateClassData */.I0)(null, "filter"));\r\n // store.dispatch(setRecentlyAddedClassData(null, "filter"));\r\n // store.dispatch(setCurrentlyEnrolledClassData(null, "filter"));\r\n // store.dispatch(setPopularClassData(null, "filter"));\r\n\r\n if (this.filterType == "age") {\r\n let selectedAgeFilters = [...this.updatedAgeFilter];\r\n const index = selectedAgeFilters.indexOf(this.collection.data_value);\r\n if (index > -1) {\r\n selectedAgeFilters.splice(index, 1);\r\n } else {\r\n selectedAgeFilters.push(this.collection.data_value);\r\n }\r\n store/* store */.M.dispatch((0,actions/* updateAgeFilter */.vL)(selectedAgeFilters));\r\n (0,analytics/* eventSpecificAge */.uJ)(this.collection.data_value)\r\n let obj = (0,common/* getDynamicURL */.jH)(\r\n this.updatedLanguageURL,\r\n "",\r\n this.updatedExpertURL,\r\n this.updatedTopicURL,\r\n this.updatedClassTypeURL,\r\n this.filterType,\r\n this.updatedAgeFilter\r\n );\r\n store/* store */.M.dispatch((0,actions/* updateAgeURL */.cf)(obj.typeURL));\r\n window.history.replaceState(\r\n {},\r\n document.title,\r\n "/classes/browse" + obj.finalURL\r\n );\r\n } else if (this.filterType == "topic") {\r\n let selectedTopicFilters = [...this.updatedTopicFilter];\r\n const index = selectedTopicFilters.indexOf(this.collection.data_value);\r\n if (index > -1) {\r\n selectedTopicFilters.splice(index, 1);\r\n } else {\r\n selectedTopicFilters.push(this.collection.data_value); \r\n }\r\n \r\n store/* store */.M.dispatch((0,actions/* updateTopicFilter */.$h)(selectedTopicFilters));\r\n (0,analytics/* eventSpecificTopics */.fG)(this.collection.data_value);\r\n let obj = (0,common/* getDynamicURL */.jH)(\r\n this.updatedLanguageURL,\r\n this.updatedAgeURL,\r\n this.updatedExpertURL,\r\n "",\r\n this.updatedClassTypeURL,\r\n "topic",\r\n this.updatedTopicFilter,\r\n this.filterCollection\r\n );\r\n \r\n store/* store */.M.dispatch((0,actions/* updateTopicURL */.W2)(obj.typeURL));\r\n window.history.replaceState(\r\n {},\r\n document.title,\r\n "/classes/browse" + obj.finalURL\r\n );\r\n } else if (this.filterType == "classType") {\r\n let selectedClassTypeFilters = [...this.updatedClassTypeFilter];\r\n const index = selectedClassTypeFilters.indexOf(\r\n this.collection.data_value\r\n );\r\n if (index > -1) {\r\n selectedClassTypeFilters.splice(index, 1);\r\n } else {\r\n selectedClassTypeFilters.push(this.collection.data_value);\r\n }\r\n store/* store */.M.dispatch((0,actions/* updateClassTypeFilter */.gs)(selectedClassTypeFilters));\r\n (0,analytics/* eventSpecificClassType */.p8)(this.collection.data_value)\r\n let obj = (0,common/* getDynamicURL */.jH)(\r\n this.updatedLanguageURL,\r\n this.updatedAgeURL,\r\n this.updatedExpertURL,\r\n this.updatedTopicURL,\r\n "",\r\n this.filterType,\r\n this.updatedClassTypeFilter\r\n );\r\n store/* store */.M.dispatch((0,actions/* updateClassTypeURL */.nx)(obj.typeURL));\r\n window.history.replaceState(\r\n {},\r\n document.title,\r\n "/classes/browse" + obj.finalURL\r\n );\r\n } else if (this.filterType == "language") {\r\n let selectedLanguageFilters = [...this.updatedLanguageFilter];\r\n const index = selectedLanguageFilters.indexOf(\r\n this.collection.data_value\r\n );\r\n if (index > -1) {\r\n selectedLanguageFilters.splice(index, 1);\r\n } else {\r\n selectedLanguageFilters.push(this.collection.data_value);\r\n }\r\n if (selectedLanguageFilters.length == 0) {\r\n selectedLanguageFilters.push("en");\r\n }\r\n store/* store */.M.dispatch((0,actions/* updateLanguageFilter */.mc)(selectedLanguageFilters));\r\n (0,analytics/* eventSpecificLanguageClick */.PU)(this.collection.data_value)\r\n store/* store */.M.dispatch((0,actions/* updateExpertFilter */.uX)([]));\r\n store/* store */.M.dispatch((0,actions/* updateTopicFilter */.$h)([]));\r\n let obj = (0,common/* getDynamicURL */.jH)(\r\n "",\r\n this.updatedAgeURL,\r\n this.updatedExpertURL,\r\n \'\',\r\n this.updatedClassTypeURL,\r\n this.filterType,\r\n this.updatedLanguageFilter\r\n );\r\n store/* store */.M.dispatch((0,actions/* updateLanguageURL */.nG)(obj.typeURL));\r\n window.history.replaceState(\r\n {},\r\n document.title,\r\n "/classes/browse" + obj.finalURL\r\n );\r\n\r\n\r\n } else if (this.filterType == "select-all-age") {\r\n let selectedAgeFilters = [...this.updatedAgeFilter];\r\n if (selectedAgeFilters.length != this.filterCollection.length - 1) {\r\n this.filterCollection.map((each) => {\r\n if (each.name != "Select-all ages") {\r\n if (!selectedAgeFilters.includes(each.data_value)) {\r\n selectedAgeFilters.push(each.data_value);\r\n }\r\n }\r\n });\r\n } else {\r\n selectedAgeFilters = [];\r\n }\r\n store/* store */.M.dispatch((0,actions/* updateAgeFilter */.vL)(selectedAgeFilters));\r\n let obj = (0,common/* getDynamicURL */.jH)(\r\n this.updatedLanguageURL,\r\n "",\r\n this.updatedExpertURL,\r\n this.updatedTopicURL,\r\n this.updatedClassTypeURL,\r\n "age",\r\n this.updatedAgeFilter\r\n );\r\n store/* store */.M.dispatch((0,actions/* updateAgeURL */.cf)(obj.typeURL));\r\n window.history.replaceState(\r\n {},\r\n document.title,\r\n "/classes/browse" + obj.finalURL\r\n );\r\n } else if (this.filterType == "select-all-topic") {\r\n let selectedTopicFilters = [...this.updatedTopicFilter];\r\n if (selectedTopicFilters.length != this.filterCollection.length - 1) {\r\n this.filterCollection.map((each) => {\r\n if (each.name != "Select-all topics") {\r\n if (!selectedTopicFilters.includes(each.id.toString())) {\r\n selectedTopicFilters.push(each.id.toString());\r\n }\r\n }\r\n });\r\n } else {\r\n selectedTopicFilters = [];\r\n }\r\n store/* store */.M.dispatch((0,actions/* updateTopicFilter */.$h)(selectedTopicFilters));\r\n let obj = (0,common/* getDynamicURL */.jH)(\r\n this.updatedLanguageURL,\r\n this.updatedAgeURL,\r\n this.updatedExpertURL,\r\n "",\r\n this.updatedClassTypeURL,\r\n "topic",\r\n this.updatedTopicFilter,\r\n this.filterCollection\r\n );\r\n store/* store */.M.dispatch((0,actions/* updateTopicURL */.W2)(obj.typeURL));\r\n window.history.replaceState(\r\n {},\r\n document.title,\r\n "/classes/browse" + obj.finalURL\r\n );\r\n } else if (this.filterType == "select-all-language") {\r\n let selectedLanguageFilters = [...this.updatedLanguageFilter];\r\n if (\r\n selectedLanguageFilters.length !=\r\n this.filterCollection.length - 1\r\n ) {\r\n this.filterCollection.map((each) => {\r\n if (each.name != "Select-all language") {\r\n if (!selectedLanguageFilters.includes(each.data_value)) {\r\n selectedLanguageFilters.push(each.data_value);\r\n }\r\n }\r\n });\r\n } else {\r\n selectedLanguageFilters = ["en"];\r\n }\r\n store/* store */.M.dispatch((0,actions/* updateLanguageFilter */.mc)(selectedLanguageFilters));\r\n let obj = (0,common/* getDynamicURL */.jH)(\r\n "",\r\n this.updatedAgeURL,\r\n this.updatedExpertURL,\r\n this.updatedTopicURL,\r\n this.updatedClassTypeURL,\r\n "language",\r\n this.updatedLanguageFilter\r\n );\r\n store/* store */.M.dispatch((0,actions/* updateLanguageURL */.nG)(obj.typeURL));\r\n window.history.replaceState(\r\n {},\r\n document.title,\r\n "/classes/browse" + obj.finalURL\r\n );\r\n \r\n } else if (this.filterType == "select-all-class_type") {\r\n let selectedClassTypeFilters = [...this.updatedClassTypeFilter];\r\n if (\r\n selectedClassTypeFilters.length !=\r\n this.filterCollection.length - 1\r\n ) {\r\n this.filterCollection.map((each) => {\r\n if (each.name != "Select all Class Types") {\r\n if (!selectedClassTypeFilters.includes(each.data_value)) {\r\n selectedClassTypeFilters.push(each.data_value);\r\n }\r\n }\r\n });\r\n } else {\r\n selectedClassTypeFilters = [];\r\n }\r\n store/* store */.M.dispatch((0,actions/* updateClassTypeFilter */.gs)(selectedClassTypeFilters));\r\n let obj = (0,common/* getDynamicURL */.jH)(\r\n this.updatedLanguageURL,\r\n this.updatedAgeURL,\r\n this.updatedExpertURL,\r\n this.updatedTopicURL,\r\n "",\r\n this.filterType,\r\n this.updatedClassTypeFilter\r\n );\r\n store/* store */.M.dispatch((0,actions/* updateClassTypeURL */.nx)(obj.typeURL));\r\n window.history.replaceState(\r\n {},\r\n document.title,\r\n "/classes/browse" + obj.finalURL\r\n );\r\n }\r\n if (this.filterType == "select-all-language" || this.filterType == "language") {\r\n Promise.all([\r\n (0,classesController/* topics */.vp)()\r\n ]).then((values) => {\r\n if(values)\r\n store/* store */.M.dispatch((0,actions/* initLoader */.Aj)(false));\r\n });\r\n }\r\n //if(mobileAndTabletcheck()== false){\r\n Promise.all([\r\n (0,classesController/* liveClass */.tq)(),\r\n (0,classesController/* ondemandClass */.$p)(),\r\n (0,classesController/* recentlyAddedClass */.T
1C)(),\r\n (0,classesController/* trendingClass */.Gq)(),\r\n (0,classesController/* highlyRatedClass */.$D)(),\r\n (0,classesController/* privateClass */.MP)(),\r\n (0,classesController/* popularClass */.G$)(),\r\n (0,classesController/* watchAgainClass */.oP)(),\r\n (0,classesController/* wishListClass */.Cp)(),\r\n (0,classesController/* recommendedClass */.mW)(),\r\n (0,classesController/* currentlyEnrolledClass */.sj)(),\r\n (0,classesController/* customClass */.EA)()\r\n ]).then((values) => {\r\n //console.log(values);\r\n if(values)\r\n store/* store */.M.dispatch((0,actions/* initLoader */.Aj)(false));\r\n });\r\n // console.log("mobile is false sub filter")\r\n // recentlyAddedClass()\r\n // ondemandClass()\r\n // liveClass()\r\n // privateClass()\r\n // highlyRatedClass()\r\n // trendingClass()\r\n // popularClass()\r\n //}\r\n \r\n } catch (error) {\r\n //console.log(error, "In update filter function");\r\n }\r\n }\r\n\r\n stateChanged(state) {\r\n this.updatedAgeFilter = state.ageFilter;\r\n this.updatedTopicFilter = state.topicFilter;\r\n this.updatedClassTypeFilter = state.classTypeFilter;\r\n this.updatedLanguageFilter = state.languageFilter;\r\n this.updatedLanguageURL = state.languageURL;\r\n this.updatedAgeURL = state.ageURL;\r\n this.updatedExpertURL = state.expertURL;\r\n this.updatedTopicURL = state.topicURL;\r\n this.updatedClassTypeURL = state.classTypeURL;\r\n }\r\n\r\n render() {\r\n try {\r\n let message;\r\n if (this.ageCollection) this.collection = this.ageCollection;\r\n\r\n if (this.collection?.span_text_1 == "Select-all ages") {\r\n const span_name =\r\n this.updatedAgeFilter.length === this.filterCollection.length - 1\r\n ? `<local-elem localKey="Unselect All Ages"></local-elem>`\r\n : `<local-elem localKey="Select All Ages"></local-elem>`;\r\n message = (0,lit_element/* html */.qy)`<span-element\r\n convertHTML="true"\r\n spanText="${span_name}"\r\n spanClass="title-group-filter ${this\r\n .filterType} ${this.isSelectedFilter() ? "selected" : ""}"\r\n ></span-element>`;\r\n } else if (this.collection?.span_text_1 == "Select-all topics") {\r\n const span_name =\r\n this.updatedTopicFilter.length === this.filterCollection.length - 1\r\n ? `<local-elem localKey="Unselect All Topics"></local-elem>`\r\n : `<local-elem localKey="Select All Topics"></local-elem>`;\r\n message = (0,lit_element/* html */.qy)`<span-element\r\n convertHTML="true"\r\n spanText="${span_name}"\r\n spanClass="title-group-filter ${this\r\n .filterType} ${this.isSelectedFilter() ? "selected" : ""}"\r\n ></span-element>`;\r\n } else if (this.collection?.span_text_1 == "Select-all language") {\r\n const span_name =\r\n this.updatedLanguageFilter.length != this.filterCollection.length - 1\r\n ? `<local-elem localKey="Select All Languages"></local-elem>`\r\n : `<local-elem localKey="Unselect All Languages"></local-elem>`;\r\n message = (0,lit_element/* html */.qy)`<span-element\r\n convertHTML="true"\r\n spanText="${span_name}"\r\n spanClass="title-group-filter ${this\r\n .filterType} ${this.isSelectedFilter() ? "selected" : ""}"\r\n ></span-element>`;\r\n } else if (this.collection?.span_text_1 == "Select all Class Types") {\r\n const span_name =\r\n this.updatedClassTypeFilter.length != this.filterCollection.length - 1\r\n ? `<local-elem localKey="Select All Class Types"></local-elem>`\r\n : `<local-elem localKey="Unselect All Class Types"></local-elem>`;\r\n message = (0,lit_element/* html */.qy)`<span-element\r\n convertHTML="true"\r\n spanText="${span_name}"\r\n spanClass="title-group-filter ${this\r\n .filterType} ${this.isSelectedFilter() ? "selected" : ""}"\r\n ></span-element>`;\r\n } else {\r\n message = (0,lit_element/* html */.qy)`<span-element\r\n convertHTML="true"\r\n spanText="${this.collection?.span_text_1}"\r\n spanClass="title-group-filter ${this\r\n .filterType} ${this.isSelectedFilter() ? "selected" : ""}"\r\n ></span-element>`;\r\n }\r\n\r\n if (this.collection) {\r\n return (0,lit_element/* html */.qy)`\r\n <label\r\n class="group-filter-topic ${this.filterType} ${this.isSelectedFilter()\r\n ? "blue-background selected"\r\n : ""}"\r\n @click="${this.updateFilter}"\r\n >
1\r\n <span class="flex-box">\r\n ${this.collection?.imageCategoryType\r\n ? (0,lit_element/* html */.qy)`<image-element\r\n imageSrc="${this.collection?.imageCategoryType == "on-demand"\r\n ? this.isSelectedFilter()\r\n ? Icono_OnDemand_white/* default */.A\r\n : Icono_OnDeman/* default */.A\r\n : this.isSelectedFilter()\r\n ? icons_Icon_Live/* default */.A\r\n : Icon_Live/* default */.A}"\r\n imageClass="category-tile-img"\r\n ></image-element>`\r\n : ``}\r\n ${message}\r\n <span-element\r\n spanText="${this.collection?.span_text_2}"\r\n spanClass="desc-group-filter ${this.filterType} ${this.isSelectedFilter() ? "selected" : ""}"\r\n convertHTML="true"\r\n ></span-element>\r\n <text-box\r\n type="checkbox"\r\n name="${this.collection?.name}"\r\n value="${this.collection?.value}"\r\n ></text-box>\r\n </span>\r\n </label>\r\n `;\r\n }\r\n } catch (error) {\r\n //console.log(error,"Error in render sub filter")\r\n }\r\n \r\n }\r\n}\r\n\r\ncustomElements.define("sub-filters", SubFilters);\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODA3My5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNEQTtBQUNBO0FBQ0E7QUFDQTtBQVFBO0FBWUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFlQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL0JhYnlTcGFya3MvLi9zcmMvY29tcG9uZW50cy9zdWItZmlsdGVycy9zdWItZmlsdGVycy5zY3NzPzQxNGEiLCJ3ZWJwYWNrOi8vQmFieVNwYXJrcy8uL3NyYy9jb21wb25lbnRzL3N1Yi1maWx0ZXJzL3N1Yi1maWx0ZXJzLmpzP2IxMmQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtjc3N9IGZyb20gJ2xpdCc7IGV4cG9ydCBkZWZhdWx0IGNzc2BAaW1wb3J0IHVybChodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PU9wZW4rU2Fuczp3Z2h0QDMwMDs0MDA7NTAwOzYwMDs3MDAmZGlzcGxheT1zd2FwKTthe2NvbG9yOiMwNDkzY2M7Y3Vyc29yOnBvaW50ZXI7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Zm9udC1zaXplOjE2cHh9YTpob3Zlcntjb2xvcjojOTdjOTQwfS5jZW50ZXJ7dGV4dC1hbGlnbjpjZW50ZXIhaW1wb3J0YW50fS5sZWZ0e3RleHQtYWxpZ246bGVmdC
1FpbXBvcnRhbnR9LnJpZ2h0e3RleHQtYWxpZ246cmlnaHQhaW1wb3J0YW50fWltZyxzdmd7dmVydGljYWwtYWxpZ246bWlkZGxlfSosOjphZnRlciw6OmJlZm9yZXtib3gtc2l6aW5nOmJvcmRlci1ib3h9LmgxLC5oMiwuaDMsLmg0LC5oNSwuaDYsaDEsaDIsaDMsaDQsaDUsaDZ7bWFyZ2luLXRvcDowO21hcmdpbi1ib3R0b206LjVyZW07Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjEuMn0uZmxleC1jZW50ZXJ7ZGlzcGxheTpmbGV4IWltcG9ydGFudDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudH10ZXh0YXJlYTo6cGxhY2Vob2xkZXJ7Y29sb3I6Izg0OGZhNSFpbXBvcnRhbnR9QG1lZGlhKG1heC13aWR0aDo3NjhweCl7LnRhYi1jb250ZW50e3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmc6MCAwIDAgMzRweH19Lmdyb3VwLWZpbHRlci10b3BpY3tkaXNwbGF5OmlubGluZS10YWJsZSFpbXBvcnRhbnQ7aGVpZ2h0OjQ4cHghaW1wb3J0YW50O2JhY2tncm91bmQ6I2ZmZjtib3gtc2hhZG93OjAgMnB4IDRweCAwIHJnYmEoMTUzLDE2MCwxNzIsLjQ1KTt0ZXh0LWFsaWduOmNlbnRlcjtib3JkZXItcmFkaXVzOjRweDttYXJnaW46NHB4O2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6NHB4IDA7cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luLWxlZnQ6MH0uZ3JvdXAtZmlsdGVyLXRvcGljLnRvcGlje3dpZHRoOjEwMCUhaW1wb3J0YW50O21pbi13aWR0aDoxNzBweDtib3gtc2hhZG93Om5vbmU7cGFkZGluZzo4cHggMjRweDtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyLXJhZGl1czo4cHg7bWFyZ2luOjAgNHB4fS5ncm91cC1maWx0ZXItdG9waWMudG9waWMuc2VsZWN0ZWR7YmFja2dyb3VuZDojMDQ5M2NjO2NvbG9yOiNmZmY7cG9zaXRpb246cmVsYXRpdmU7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6U0ZQcm9EaXNwbGF5LU1lZGl1bTtwYWRkaW5nOjhweCAzNHB4O21hcmdpbjowO2JvcmRlci1yYWRpdXM6NHB4fS5ncm91cC1maWx0ZXItdG9waWMuc2VsZWN0LWFsbC10b3BpY3t3aWR0aDoxMDAlIWltcG9ydGFudDttaW4td2lkdGg6MTcwcHg7Ym94LXNoYWRvdzpub25lO3BhZGRpbmc6OHB4IDI0cHg7YmFja2dyb3VuZDojZmZmO2JvcmRlci1yYWRpdXM6OHB4O21hcmdpbjowIDEwcHg7ZGlzcGxheTpub25lIWltcG9ydGFudH0uZ3JvdXAtZmlsdGVyLXRvcGljLmFnZXt3aWR0aDoxMDAlIWltcG9ydGFudDttaW4td2lkdGg6MTcwcHg7bWF4LXdpZHRoOjIxMnB4fS5ncm91cC1maWx0ZXItdG9waWMuc2VsZWN0LWFsbC1hZ2V7d2lkdGg6MTAwJSFpbXBvcnRhbnQ7bWluLXdpZHRoOjEyMHB4O2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9Lmdyb3VwLWZpbHRlci10b3BpYy5jbGFzc1R5cGV7d2lkdGg6MTAwJSFpbXBvcnRhbnQ7bWluLXdpZHRoOjEyMHB4IWltcG9ydGFudDttYXgtd2lkdGg6NDE2cHghaW1wb3J0YW50fS5ncm91cC1maWx0ZXItdG9waWMuc2VsZWN0LWFsbC1jbGFzc190eXBle3dpZHRoOjEwMCUhaW1wb3J0YW50O21pbi13aWR0aDoxMjBweDtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fS5ncm91cC1maWx0ZXItdG9waWMuc2VsZWN0ZWR7YmFja2dyb3VuZDojMDQ5M2NjO2NvbG9yOiNmZmY7cG9zaXRpb246cmVsYXRpdmU7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6U0ZQcm9EaXNwbGF5LU1lZGl1bX0uZ3JvdXAtZmlsdGVyLXRvcGljLmxhbmd1YWdle3dpZHRoOjEwMCUhaW1wb3J0YW50O21pbi13aWR0aDoxMjBweDttYXgtd2lkdGg6NTM5cHh9Lmdyb3VwLWZpbHRlci10b3BpYy5zZWxlY3QtYWxsLWxhbmd1YWdle3dpZHRoOjEwMCUhaW1wb3J0YW50O21pbi13aWR0aDoxMjBweH0uZ3JvdXAtZmlsdGVyLXRvcGljLmV4cGVydHN7d2lkdGg6MTAwJSFpbXBvcnRhbnQ7bWluLXdpZHRoOjE3MHB4IWltcG9ydGFudH0uYmx1ZS1iYWNrZ3JvdW5ke2JhY2tncm91bmQ6IzA0OTNjY30ubGFuZ3VhZ2V7d2lkdGg6MzAwcHh9LmZsZXgtYm94e2Rpc3BsYXk6dGFibGUtY2VsbDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9QG1lZGlhKG1heC13aWR0aDo4MjBweCl7Lmdyb3VwLWZpbHRlci10b3BpYy5hZ2V7d2lkdGg6MTIwcHh9Lmdyb3VwLWZpbHRlci10b3BpYy5zZWxlY3QtYWxsLWFnZXt3aWR0aDoxMjBweH0uZ3JvdXAtZmlsdGVyLXRvcGljLmxhbmd1YWdle3dpZHRoOjE4MHB4fS5ncm91cC1maWx0ZXItdG9waWMuc2VsZWN0LWFsbC1sYW5ndWFnZXt3aWR0aDoxODBweH0uZ3JvdXAtZmlsdGVyLXRvcGljLmNsYXNzVHlwZXt3aWR0aDoyMDBweH0uZ3JvdXAtZmlsdGVyLXRvcGljLnNlbGVjdC1hbGwtY2xhc3NfdHlwZXt3aWR0aDoyMDBweH19QG1lZGlhKG1heC13aWR0aDo2MTBweCl7Lmdyb3VwLWZpbHRlci10b3BpYy5hZ2V7d2lkdGg6MTQzcHghaW1wb3J0YW50O21pbi13aWR0aDoxNDNweCFpbXBvcnRhbnR9Lmdyb3VwLWZpbHRlci10b3BpYy50b3BpY3t3aWR0aDoxNTBweCFpbXBvcnRhbnQ7bWluLXdpZHRoOjE1MHB4IWltcG9ydGFudH0uZ3JvdXAtZmlsdGVyLXRvcGljLnNlbGVjdC1hbGwtYWdle3dpZHRoOjEwOHB4fS5ncm91cC1maWx0ZXItdG9waWMubGFuZ3VhZ2V7d2lkdGg6MTA4cHh9Lmdyb3VwLWZpbHRlci10b3BpYy5zZWxlY3QtYWxsLWxhbmd1YWdle3dpZHRoOmF1dG99Lmdyb3VwLWZpbHRlci10b3BpYy5jbGFzc1R5cGV7d2lkdGg6MjAwcHh9Lmdyb3VwLWZpbHRlci10b3BpYy5zZWxlY3QtYWxsLWNsYXNzX3R5cGV7d2lkdGg6MjAwcHh9fWA7XG4gICAgIiwiaW1wb3J0IHsgTGl0RWxlbWVudCwgaHRtbCB9IGZyb20gXCJsaXQtZWxlbWVudFwiO1xyXG5pbXBvcnQgc3ViRmlsdGVyU3R5bGUgZnJvbSBcIi4vc3ViLWZpbHRlcnMuc2Nzc1wiO1xyXG5pbXBvcnQgeyBjb25uZWN0IH0gZnJvbSBcInB3YS1oZWxwZXJzXCI7XHJcbmltcG9ydCB7IHN0b3JlIH0gZnJvbSBcIi4uLy4uL3JlZHV4L3N0b3JlLmpzXCI7XHJcbmltcG9ydCB7ICBcclxuICBvbmRlbWFuZENsYXNzLFxyXG4gIGxpdmVDbGFzcyxcclxuICBwcml2YXRlQ2xhc3MsXHJcbiAgaGlnaGx5UmF0ZWRDbGFzcyxcclxuICB0cmVuZGluZ0NsYXNzLHJlY2VudGx5QWRkZWRDbGFzcywgcG9wdWxhckNsYXNzLHdhdGNoQWdhaW5DbGFzcyx3aXNoTGlzdENsYXNzLHJlY29tbWVuZGVkQ2xhc3MsdG9waWNzLGN1cnJlbnRseUVucm9sbGVkQ2xhc3MsXHJcbiAgY3VzdG9tQ2xhc3NcclxufSBmcm9tIFwiLi4vLi4vY29udHJvbGxlcnMvY2xhc3Nlc0NvbnRyb2xsZXIuanNcIjtcclxuaW1wb3J0IHtcclxuICB1cGRhdGVBZ2VGaWx0ZXIsXHJcbiAgdXBkYXRlVG9waWNGaWx0ZXIsXHJcbiAgdXBkYXRlVG9waWNGaWx0ZXJMYWJlbCxcclxuICB1cGRhdGVDbGFzc1R5cGVGaWx0ZXIsXHJcbiAgdXBkYXRlTGFuZ3VhZ2VGaWx0ZXIsXHJcbiAgdXBkYXRlTGFuZ3VhZ2VVUkwsXHJcbiAgdXBkYXRlQWdlVVJMLFxyXG4gIHVwZGF0ZVRvcGljVVJMLFxyXG4gIHVwZGF0ZUNsYXNzVHlwZVVSTCxcclxuICB1cGRhdGVFeHBlcnRGaWx0ZXIsXHJcbn0gZnJvbSBcIi4uLy4uL3JlZHV4L2FjdGlvbnMuanNcIjtcclxuaW1wb3J0IG9uZGVtYW5kSWNvb
1iBmcm9tIFwiLi4vLi4vYXNzZXRzL2ltYWdlcy9pY29ucy9JY29ub19PbkRlbWFuLnBuZ1wiO1xyXG5pbXBvcnQgbGl2ZUljb24gZnJvbSBcIi4uLy4uL2Fzc2V0cy9pbWFnZXMvaWNvbnMvSWNvbl9MaXZlLnBuZ1wiO1xyXG5pbXBvcnQgeyBnZXREeW5hbWljVVJMLG1vYmlsZUFuZFRhYmxldGNoZWNrIH0gZnJvbSBcIi4uLy4uL3V0aWxzL2NvbW1vbi5qc1wiO1xyXG5pbXBvcnQgbGl2ZUljb25XaGl0ZSBmcm9tIFwiLi4vLi4vYXNzZXRzL2ltYWdlcy9pY29ucy9JY29uX0xpdmUuc3ZnXCI7XHJcbmltcG9ydCBvbmRlbWFuZEljb25XaGl0ZSBmcm9tIFwiLi4vLi4vYXNzZXRzL2ltYWdlcy9pY29ucy9JY29ub19PbkRlbWFuZF93aGl0ZS5wbmdcIjtcclxuaW1wb3J0IFwiLi4vbG9jYWxpemF0aW9uL2xvY2FsaXphdGlvbi5qc1wiO1xyXG5pbXBvcnQge1xyXG4gIHNldEV4cGVydERhdGEsXHJcbiAgc2V0T25kZW1uZENsYXNzRGF0YSxcclxuICBzZXRMaXZlQ2xhc3NEYXRhLFxyXG4gIHNldEhpZ2hseVJhdGVkQ2xhc3NEYXRhLFxyXG4gIHNldFRyZW5kaW5nQ2xhc3NEYXRhLFxyXG4gIHNldFByaXZhdGVDbGFzc0RhdGEsXHJcbiAgc2V0UmVjZW50bHlBZGRlZENsYXNzRGF0YSxcclxuICBzZXRDdXJyZW50bHlFbnJvbGxlZENsYXNzRGF0YSxcclxuICBzZXRQb3B1bGFyQ2xhc3NEYXRhLFxyXG4gIHNldFdpc2hMaXN0Q2xhc3NEYXRhLFxyXG4gIHNldFJlY29tbWVuZGVkQ2xhc3NEYXRhLFxyXG4gIGluaXRMb2FkZXIsXHJcbiAgc2V0Q3VzdG9tQ2xhc3NEYXRhXHJcbn0gZnJvbSBcIi4uLy4uL3JlZHV4L2FjdGlvbnMuanNcIjtcclxuaW1wb3J0IHsgZXZlbnRTcGVjaWZpY0FnZSxldmVudFNwZWNpZmljVG9waWNzLGV2ZW50U3BlY2lmaWNDbGFzc1R5cGUsZXZlbnRTcGVjaWZpY0xhbmd1YWdlQ2xpY2sgfSBmcm9tICcuLi8uLi91dGlscy9hbmFseXRpY3MnXHJcblxyXG5jbGFzcyBTdWJGaWx0ZXJzIGV4dGVuZHMgY29ubmVjdChzdG9yZSkoTGl0RWxlbWVudCkge1xyXG4gIHN0YXRpYyBnZXQgcHJvcGVydGllcygpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGxhYmVsVGV4dDogeyB0eXBlOiBTdHJpbmcgfSxcclxuICAgICAgbGFiZWxDbGFzczogeyB0eXBlOiBTdHJpbmcgfSxcclxuICAgICAgY29sbGVjdGlvbjoge1xyXG4gICAgICAgIHR5cGU6IE9iamVjdCxcclxuICAgICAgICBhdHRyaWJ1dGU6IFwiZmlsdGVyLWNvbmZpZ1wiLFxyXG4gICAgICB9LFxyXG4gICAgICBmaWx0ZXJUeXBlOiB7IHR5cGU6IFN0cmluZyB9LFxyXG4gICAgICB1cGRhdGVkQWdlRmlsdGVyOiB7IHR5cGU6IEFycmF5IH0sXHJcbiAgICAgIHVwZGF0ZWRUb3BpY0ZpbHRlcjogeyB0eXBlOiBBcnJheSB9LFxyXG4gICAgICB0b3BpY0NvbGxlY3Rpb246IHtcclxuICAgICAgICB0eXBlOiBPYmplY3QsXHJcbiAgICAgICAgYXR0cmlidXRlOiBcImZpbHRlci1jb25maWdcIixcclxuICAgICAgfSxcclxuICAgICAgYWdlQ29sbGVjdGlvbjoge1xyXG4gICAgICAgIHR5cGU6IE9iamVjdCxcclxuICAgICAgICBhdHRyaWJ1dGU6IFwiYWdlLWNvbmZpZ1wiLFxyXG4gICAgICB9LFxyXG4gICAgICBmaWx0ZXJDb2xsZWN0aW9uOiB7XHJcbiAgICAgICAgdHlwZTogQXJyYXksXHJcbiAgICAgICAgYXR0cmlidXRlOiBcImZpbHRlci1kYXRhXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIHVwZGF0ZWRDbGFzc1R5cGVGaWx0ZXI6IHsgdHlwZTogQXJyYXkgfSxcclxuICAgICAgdXBkYXRlZExhbmd1YWdlRmlsdGVyOiB7IHR5cGU6IEFycmF5IH0sXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgdGhpcy5jb2xsZWN0aW9uID0ge307XHJcbiAgICB0aGlzLmZpbHRlclR5cGUgPSBcIlwiO1xyXG4gICAgdGhpcy51cGRhdGVkQWdlRmlsdGVyID0gW107XHJcbiAgICB0aGlzLnVwZGF0ZWRBZ2VGaWx0ZXJMYWJlbCA9IFtdO1xyXG4gICAgdGhpcy51cGRhdGVkVG9waWNGaWx0ZXIgPSBbXTtcclxuICAgIHRoaXMudXBkYXRlZENsYXNzVHlwZUZpbHRlciA9IFtdO1xyXG4gICAgdGhpcy51cGRhdGVkTGFuZ3VhZ2VGaWx0ZXIgPSBbXTtcclxuICAgIHRoaXMudG9waWNDb2xsZWN0aW9uID0ge307XHJcbiAgICB0aGlzLmZpbHRlcl9jb2xsZWN0aW9uID0gdGhpcy5maWx0ZXJDb2xsZWN0aW9uO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldCBzdHlsZXMoKSB7XHJcbiAgICByZXR1cm4gW3N1YkZpbHRlclN0eWxlXTtcclxuICB9XHJcblxyXG4gIGdldCBzcGFuVGVtcGxhdGVzKCkge1xyXG4gICAgcmV0dXJuIGh0bWxgXHJcbiAgICAgIDxzcGFuLWVsZW1lbnRcclxuICAgICAgICBzcGFuVGV4dD1cIiR7dGhpcy5jb2xsZWN0aW9uLnNwYW5fdGV4dF8xfVwiXHJcbiAgICAgICAgc3BhbkNsYXNzPVwidGl0bGUtZ3JvdXAtZmlsdGVyXCJcclxuICAgICAgPjwvc3Bhbi1lbGVtZW50PlxyXG4gICAgICA8c3Bhbi1lbGVtZW50XHJcbiAgICAgICAgc3BhblRleHQ9XCIke3RoaXMuY29sbGVjdGlvbi5zcGFuX3RleHRfMn1cIlxyXG4gICAgICAgIHNwYW5DbGFzcz1cImRlc2MtZ3JvdXAtZmlsdGVyXCJcclxuICAgICAgPjwvc3Bhbi1lbGVtZW50PlxyXG4gICAgYDtcclxuICB9XHJcblxyXG4gIGdldCB0ZXh0Ym94VGVtcGxhdGUoKSB7XHJcbiAgICByZXR1cm4gaHRtbGAgPHRleHQtYm94XHJcbiAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgIG5hbWU9XCIke3RoaXMuY29sbGVjdGlvbi5uYW1lfVwiXHJcbiAgICAgIHZhbHVlPVwiJHt0aGlzLmNvbGxlY3Rpb24udmFsdWV9XCJcclxuICAgID48L3RleHQtYm94PmA7XHJcbiAgfVxyXG5cclxuICBpc1NlbGVjdGVkRmlsdGVyKCkge1xyXG4gICAgaWYgKHRoaXMuZmlsdGVyVHlwZSA9PSBcImFnZVwiKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnVwZGF0ZWRBZ2VGaWx0ZXIuaW5jbHVkZXModGhpcy5hZ2VDb2xsZWN0aW9uLmRhdGFfdmFsdWUpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmZpbHRlclR5cGUgPT0gXCJ0b3BpY1wiKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnVwZGF0ZWRUb3BpY0ZpbHRlci5pbmNsdWRlcyh0aGlzLmNvbGxlY3Rpb24uZGF0YV92YWx1ZSk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuZmlsdGVyVHlwZSA9PSBcImNsYXNzVHlwZVwiKSB7XHJcbiAgICAgIHJldHVybi
1B0aGlzLnVwZGF0ZWRDbGFzc1R5cGVGaWx0ZXIuaW5jbHVkZXModGhpcy5jb2xsZWN0aW9uLmRhdGFfdmFsdWUpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmZpbHRlclR5cGUgPT0gXCJsYW5ndWFnZVwiKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnVwZGF0ZWRMYW5ndWFnZUZpbHRlci5pbmNsdWRlcyh0aGlzLmNvbGxlY3Rpb24uZGF0YV92YWx1ZSk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuZmlsdGVyVHlwZSA9PSBcIlNlbGVjdC1hbGwgYWdlc1wiKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnVwZGF0ZWRMYW5ndWFnZUZpbHRlci5pbmNsdWRlcyh0aGlzLmNvbGxlY3Rpb24uZGF0YV92YWx1ZSk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuZmlsdGVyVHlwZSA9PSBcIlNlbGVjdC1hbGwgdG9waWNzXCIpIHtcclxuICAgICAgcmV0dXJuIHRoaXMudXBkYXRlZExhbmd1YWdlRmlsdGVyLmluY2x1ZGVzKHRoaXMuY29sbGVjdGlvbi5kYXRhX3ZhbHVlKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5maWx0ZXJUeXBlID09IFwiU2VsZWN0LWFsbCBsYW5ndWFnZVwiKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnVwZGF0ZWRMYW5ndWFnZUZpbHRlci5pbmNsdWRlcyh0aGlzLmNvbGxlY3Rpb24uZGF0YV92YWx1ZSk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuZmlsdGVyVHlwZSA9PSBcInNlbGVjdC1hbGwtY2xhc3NfdHlwZVwiKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnVwZGF0ZWRMYW5ndWFnZUZpbHRlci5pbmNsdWRlcyh0aGlzLmNvbGxlY3Rpb24uZGF0YV92YWx1ZSk7XHJcbiAgICB9IGVsc2UgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICB1cGRhdGVGaWx0ZXIoKSB7XHJcbiAgICB0cnkge1xyXG4gICAgICBzdG9yZS5kaXNwYXRjaChpbml0TG9hZGVyKHRydWUpKTtcclxuICAgICAgc3RvcmUuZGlzcGF0Y2goc2V0T25kZW1uZENsYXNzRGF0YShudWxsLCBcImZpbHRlclwiKSk7XHJcbiAgICAgIHN0b3JlLmRpc3BhdGNoKHNldExpdmVDbGFzc0RhdGEobnVsbCwgXCJmaWx0ZXJcIikpO1xyXG4gICAgICAvLyBzdG9yZS5kaXNwYXRjaChzZXRIaWdobHlSYXRlZENsYXNzRGF0YShudWxsLCBcImZpbHRlclwiKSk7XHJcbiAgICAgIC8vIHN0b3JlLmRpc3BhdGNoKHNldFRyZW5kaW5nQ2xhc3NEYXRhKG51bGwsIFwiZmlsdGVyXCIpKTtcclxuICAgICAgc3RvcmUuZGlzcGF0Y2goc2V0UHJpdmF0ZUNsYXNzRGF0YShudWxsLCBcImZpbHRlclwiKSk7XHJcbiAgICAgIC8vIHN0b3JlLmRpc3BhdGNoKHNldFJlY2VudGx5QWRkZWRDbGFzc0RhdGEobnVsbCwgXCJmaWx0ZXJcIikpO1xyXG4gICAgICAvLyBzdG9yZS5kaXNwYXRjaChzZXRDdXJyZW50bHlFbnJvbGxlZENsYXNzRGF0YShudWxsLCBcImZpbHRlclwiKSk7XHJcbiAgICAgIC8vIHN0b3JlLmRpc3BhdGNoKHNldFBvcHVsYXJDbGFzc0RhdGEobnVsbCwgXCJmaWx0ZXJcIikpO1xyXG5cclxuICAgICAgaWYgKHRoaXMuZmlsdGVyVHlwZSA9PSBcImFnZVwiKSB7XHJcbiAgICAgICAgbGV0IHNlbGVjdGVkQWdlRmlsdGVycyA9IFsuLi50aGlzLnVwZGF0ZWRBZ2VGaWx0ZXJdO1xyXG4gICAgICAgIGNvbnN0IGluZGV4ID0gc2VsZWN0ZWRBZ2VGaWx0ZXJzLmluZGV4T2YodGhpcy5jb2xsZWN0aW9uLmRhdGFfdmFsdWUpO1xyXG4gICAgICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgICAgICBzZWxlY3RlZEFnZUZpbHRlcnMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgc2VsZWN0ZWRBZ2VGaWx0ZXJzLnB1c2godGhpcy5jb2xsZWN0aW9uLmRhdGFfdmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzdG9yZS5kaXNwYXRjaCh1cGRhdGVBZ2VGaWx0ZXIoc2VsZWN0ZWRBZ2VGaWx0ZXJzKSk7XHJcbiAgICAgICAgZXZlbnRTcGVjaWZpY0FnZSh0aGlzLmNvbGxlY3Rpb24uZGF0YV92YWx1ZSlcclxuICAgICAgICBsZXQgb2JqID0gZ2V0RHluYW1pY1VSTChcclxuICAgICAgICAgIHRoaXMudXBkYXRlZExhbmd1YWdlVVJMLFxyXG4gICAgICAgICAgXCJcIixcclxuICAgICAgICAgIHRoaXMudXBkYXRlZEV4cGVydFVSTCxcclxuICAgICAgICAgIHRoaXMudXBkYXRlZFRvcGljVVJMLFxyXG4gICAgICAgICAgdGhpcy51cGRhdGVkQ2xhc3NUeXBlVVJMLFxyXG4gICAgICAgICAgdGhpcy5maWx0ZXJUeXBlLFxyXG4gICAgICAgICAgdGhpcy51cGRhdGVkQWdlRmlsdGVyXHJcbiAgICAgICAgKTtcclxuICAgICAgICBzdG9yZS5kaXNwYXRjaCh1cGRhdGVBZ2VVUkwob2JqLnR5cGVVUkwpKTtcclxuICAgICAgICB3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUoXHJcbiAgICAgICAgICB7fSxcclxuICAgICAgICAgIGRvY3VtZW50LnRpdGxlLFxyXG4gICAgICAgICAgcHJvY2Vzcy5lbnYuQ0xBU1NFU19CUk9XU0VfUEFHRV9QQVRIICsgb2JqLmZpbmFsVVJMXHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLmZpbHRlclR5cGUgPT0gXCJ0b3BpY1wiKSB7XHJcbiAgICAgICAgbGV0IHNlbGVjdGVkVG9waWNGaWx0ZXJzID0gWy4uLnRoaXMudXBkYXRlZFRvcGljRmlsdGVyXTtcclxuICAgICAgICBjb25zdCBpbmRleCA9IHNlbGVjdGVkVG9waWNGaWx0ZXJzLmluZGV4T2YodGhpcy5jb2xsZWN0aW9uLmRhdGFfdmFsdWUpO1xyXG4gICAgICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgICAgICBzZWxlY3RlZFRvcGljRmlsdGVycy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBzZWxlY3RlZFRvcGljRmlsdGVycy5wdXNoKHRoaXMuY29sbGVjdGlvbi5kYXRhX3ZhbHVlKTsgICAgICAgIFxyXG4gICAgICAgIH1cclxuICAgICAgXHJcbiAgICAgICAgc3RvcmUuZGlzcGF0Y2godXBkYXRlVG9waWNGaWx0ZXIoc2VsZWN0ZWRUb3BpY0ZpbHRlcnMpKTtcclxuICAgICAgICBldmVudFNwZWNpZmljVG9waWNzKHRoaXMuY29sbGVjdGlvbi5kYXRhX3ZhbHVlKTtcclxuICAgICAgICBsZXQgb2JqID0gZ2V0RHluYW1pY1VSTChcclxuICAgICAgICAgIHRoaXMudXBkYXRlZExhbmd1YWdlVVJMLFxyXG4gICAgICAgICAgdGhpcy51cGRhdGVkQWdlVVJMLFxyXG4gICAgICAgICAgdGhpcy51cGRhdGVkRXhwZXJ0VVJMLFxyXG4gICAgICAgICAgXCJcIixcclxuICAgICAgICAgI
1HRoaXMudXBkYXRlZENsYXNzVHlwZVVSTCxcclxuICAgICAgICAgIFwidG9waWNcIixcclxuICAgICAgICAgIHRoaXMudXBkYXRlZFRvcGljRmlsdGVyLFxyXG4gICAgICAgICAgdGhpcy5maWx0ZXJDb2xsZWN0aW9uXHJcbiAgICAgICAgKTtcclxuICAgICAgICBcclxuICAgICAgICBzdG9yZS5kaXNwYXRjaCh1cGRhdGVUb3BpY1VSTChvYmoudHlwZVVSTCkpO1xyXG4gICAgICAgIHdpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZShcclxuICAgICAgICAgIHt9LFxyXG4gICAgICAgICAgZG9jdW1lbnQudGl0bGUsXHJcbiAgICAgICAgICBwcm9jZXNzLmVudi5DTEFTU0VTX0JST1dTRV9QQUdFX1BBVEggKyBvYmouZmluYWxVUkxcclxuICAgICAgICApO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuZmlsdGVyVHlwZSA9PSBcImNsYXNzVHlwZVwiKSB7XHJcbiAgICAgICAgbGV0IHNlbGVjdGVkQ2xhc3NUeXBlRmlsdGVycyA9IFsuLi50aGlzLnVwZGF0ZWRDbGFzc1R5cGVGaWx0ZXJdO1xyXG4gICAgICAgIGNvbnN0IGluZGV4ID0gc2VsZWN0ZWRDbGFzc1R5cGVGaWx0ZXJzLmluZGV4T2YoXHJcbiAgICAgICAgICB0aGlzLmNvbGxlY3Rpb24uZGF0YV92YWx1ZVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgICAgIHNlbGVjdGVkQ2xhc3NUeXBlRmlsdGVycy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBzZWxlY3RlZENsYXNzVHlwZUZpbHRlcnMucHVzaCh0aGlzLmNvbGxlY3Rpb24uZGF0YV92YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHN0b3JlLmRpc3BhdGNoKHVwZGF0ZUNsYXNzVHlwZUZpbHRlcihzZWxlY3RlZENsYXNzVHlwZUZpbHRlcnMpKTtcclxuICAgICAgICBldmVudFNwZWNpZmljQ2xhc3NUeXBlKHRoaXMuY29sbGVjdGlvbi5kYXRhX3ZhbHVlKVxyXG4gICAgICAgIGxldCBvYmogPSBnZXREeW5hbWljVVJMKFxyXG4gICAgICAgICAgdGhpcy51cGRhdGVkTGFuZ3VhZ2VVUkwsXHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZWRBZ2VVUkwsXHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZWRFeHBlcnRVUkwsXHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZWRUb3BpY1VSTCxcclxuICAgICAgICAgIFwiXCIsXHJcbiAgICAgICAgICB0aGlzLmZpbHRlclR5cGUsXHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZWRDbGFzc1R5cGVGaWx0ZXJcclxuICAgICAgICApO1xyXG4gICAgICAgIHN0b3JlLmRpc3BhdGNoKHVwZGF0ZUNsYXNzVHlwZVVSTChvYmoudHlwZVVSTCkpO1xyXG4gICAgICAgIHdpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZShcclxuICAgICAgICAgIHt9LFxyXG4gICAgICAgICAgZG9jdW1lbnQudGl0bGUsXHJcbiAgICAgICAgICBwcm9jZXNzLmVudi5DTEFTU0VTX0JST1dTRV9QQUdFX1BBVEggKyBvYmouZmluYWxVUkxcclxuICAgICAgICApO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuZmlsdGVyVHlwZSA9PSBcImxhbmd1YWdlXCIpIHtcclxuICAgICAgICBsZXQgc2VsZWN0ZWRMYW5ndWFnZUZpbHRlcnMgPSBbLi4udGhpcy51cGRhdGVkTGFuZ3VhZ2VGaWx0ZXJdO1xyXG4gICAgICAgIGNvbnN0IGluZGV4ID0gc2VsZWN0ZWRMYW5ndWFnZUZpbHRlcnMuaW5kZXhPZihcclxuICAgICAgICAgIHRoaXMuY29sbGVjdGlvbi5kYXRhX3ZhbHVlXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICAgICAgc2VsZWN0ZWRMYW5ndWFnZUZpbHRlcnMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgc2VsZWN0ZWRMYW5ndWFnZUZpbHRlcnMucHVzaCh0aGlzLmNvbGxlY3Rpb24uZGF0YV92YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChzZWxlY3RlZExhbmd1YWdlRmlsdGVycy5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgc2VsZWN0ZWRMYW5ndWFnZUZpbHRlcnMucHVzaChcImVuXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzdG9yZS5kaXNwYXRjaCh1cGRhdGVMYW5ndWFnZUZpbHRlcihzZWxlY3RlZExhbmd1YWdlRmlsdGVycykpO1xyXG4gICAgICAgIGV2ZW50U3BlY2lmaWNMYW5ndWFnZUNsaWNrKHRoaXMuY29sbGVjdGlvbi5kYXRhX3ZhbHVlKVxyXG4gICAgICAgIHN0b3JlLmRpc3BhdGNoKHVwZGF0ZUV4cGVydEZpbHRlcihbXSkpO1xyXG4gICAgICAgIHN0b3JlLmRpc3BhdGNoKHVwZGF0ZVRvcGljRmlsdGVyKFtdKSk7XHJcbiAgICAgICAgbGV0IG9iaiA9IGdldER5bmFtaWNVUkwoXHJcbiAgICAgICAgICBcIlwiLFxyXG4gICAgICAgICAgdGhpcy51cGRhdGVkQWdlVVJMLFxyXG4gICAgICAgICAgdGhpcy51cGRhdGVkRXhwZXJ0VVJMLFxyXG4gICAgICAgICAgJycsXHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZWRDbGFzc1R5cGVVUkwsXHJcbiAgICAgICAgICB0aGlzLmZpbHRlclR5cGUsXHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZWRMYW5ndWFnZUZpbHRlclxyXG4gICAgICAgICk7XHJcbiAgICAgICAgc3RvcmUuZGlzcGF0Y2godXBkYXRlTGFuZ3VhZ2VVUkwob2JqLnR5cGVVUkwpKTtcclxuICAgICAgICB3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUoXHJcbiAgICAgICAgICB7fSxcclxuICAgICAgICAgIGRvY3VtZW50LnRpdGxlLFxyXG4gICAgICAgICAgcHJvY2Vzcy5lbnYuQ0xBU1NFU19CUk9XU0VfUEFHRV9QQVRIICsgb2JqLmZpbmFsVVJMXHJcbiAgICAgICAgKTtcclxuXHJcblxyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuZmlsdGVyVHlwZSA9PSBcInNlbGVjdC1hbGwtYWdlXCIpIHtcclxuICAgICAgICBsZXQgc2VsZWN0ZWRBZ2VGaWx0ZXJzID0gWy4uLnRoaXMudXBkYXRlZEFnZUZpbHRlcl07XHJcbiAgICAgICAgaWYgKHNlbGVjdGVkQWdlRmlsdGVycy5sZW5ndGggIT0gdGhpcy5maWx0ZXJDb2xsZWN0aW9uLmxlbmd0aCAtIDEpIHtcclxuICAgICAgICAgIHRoaXMuZmlsdGVyQ29sbGVjdGlvbi5tYXAoKGVhY2gpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVhY2gubmFtZSAhPSBcIlNlbGVjdC1hbGwgYWdlc1wiKSB7XHJcbiAgICAgICAgICAgICAgaWYgKCFzZWxlY3RlZEFnZUZpbHRlcnMuaW5jbHVkZXMoZWFjaC5kYXRhX3ZhbHVlKSkge1xyXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRBZ2VGaWx0ZXJzLnB1c2goZWFjaC5kYXRhX3ZhbHVlKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgI
1H1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBzZWxlY3RlZEFnZUZpbHRlcnMgPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgc3RvcmUuZGlzcGF0Y2godXBkYXRlQWdlRmlsdGVyKHNlbGVjdGVkQWdlRmlsdGVycykpO1xyXG4gICAgICAgIGxldCBvYmogPSBnZXREeW5hbWljVVJMKFxyXG4gICAgICAgICAgdGhpcy51cGRhdGVkTGFuZ3VhZ2VVUkwsXHJcbiAgICAgICAgICBcIlwiLFxyXG4gICAgICAgICAgdGhpcy51cGRhdGVkRXhwZXJ0VVJMLFxyXG4gICAgICAgICAgdGhpcy51cGRhdGVkVG9waWNVUkwsXHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZWRDbGFzc1R5cGVVUkwsXHJcbiAgICAgICAgICBcImFnZVwiLFxyXG4gICAgICAgICAgdGhpcy51cGRhdGVkQWdlRmlsdGVyXHJcbiAgICAgICAgKTtcclxuICAgICAgICBzdG9yZS5kaXNwYXRjaCh1cGRhdGVBZ2VVUkwob2JqLnR5cGVVUkwpKTtcclxuICAgICAgICB3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUoXHJcbiAgICAgICAgICB7fSxcclxuICAgICAgICAgIGRvY3VtZW50LnRpdGxlLFxyXG4gICAgICAgICAgcHJvY2Vzcy5lbnYuQ0xBU1NFU19CUk9XU0VfUEFHRV9QQVRIICsgb2JqLmZpbmFsVVJMXHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLmZpbHRlclR5cGUgPT0gXCJzZWxlY3QtYWxsLXRvcGljXCIpIHtcclxuICAgICAgICBsZXQgc2VsZWN0ZWRUb3BpY0ZpbHRlcnMgPSBbLi4udGhpcy51cGRhdGVkVG9waWNGaWx0ZXJdO1xyXG4gICAgICAgIGlmIChzZWxlY3RlZFRvcGljRmlsdGVycy5sZW5ndGggIT0gdGhpcy5maWx0ZXJDb2xsZWN0aW9uLmxlbmd0aCAtIDEpIHtcclxuICAgICAgICAgIHRoaXMuZmlsdGVyQ29sbGVjdGlvbi5tYXAoKGVhY2gpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVhY2gubmFtZSAhPSBcIlNlbGVjdC1hbGwgdG9waWNzXCIpIHtcclxuICAgICAgICAgICAgICBpZiAoIXNlbGVjdGVkVG9waWNGaWx0ZXJzLmluY2x1ZGVzKGVhY2guaWQudG9TdHJpbmcoKSkpIHtcclxuICAgICAgICAgICAgICAgIHNlbGVjdGVkVG9waWNGaWx0ZXJzLnB1c2goZWFjaC5pZC50b1N0cmluZygpKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBzZWxlY3RlZFRvcGljRmlsdGVycyA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzdG9yZS5kaXNwYXRjaCh1cGRhdGVUb3BpY0ZpbHRlcihzZWxlY3RlZFRvcGljRmlsdGVycykpO1xyXG4gICAgICAgIGxldCBvYmogPSBnZXREeW5hbWljVVJMKFxyXG4gICAgICAgICAgdGhpcy51cGRhdGVkTGFuZ3VhZ2VVUkwsXHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZWRBZ2VVUkwsXHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZWRFeHBlcnRVUkwsXHJcbiAgICAgICAgICBcIlwiLFxyXG4gICAgICAgICAgdGhpcy51cGRhdGVkQ2xhc3NUeXBlVVJMLFxyXG4gICAgICAgICAgXCJ0b3BpY1wiLFxyXG4gICAgICAgICAgdGhpcy51cGRhdGVkVG9waWNGaWx0ZXIsXHJcbiAgICAgICAgICB0aGlzLmZpbHRlckNvbGxlY3Rpb25cclxuICAgICAgICApO1xyXG4gICAgICAgIHN0b3JlLmRpc3BhdGNoKHVwZGF0ZVRvcGljVVJMKG9iai50eXBlVVJMKSk7XHJcbiAgICAgICAgd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKFxyXG4gICAgICAgICAge30sXHJcbiAgICAgICAgICBkb2
1N1bWVudC50aXRsZSxcclxuICAgICAgICAgIHByb2Nlc3MuZW52LkNMQVNTRVNfQlJPV1NFX1BBR0VfUEFUSCArIG9iai5maW5hbFVSTFxyXG4gICAgICAgICk7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5maWx0ZXJUeXBlID09IFwic2VsZWN0LWFsbC1sYW5ndWFnZVwiKSB7XHJcbiAgICAgICAgbGV0IHNlbGVjdGVkTGFuZ3VhZ2VGaWx0ZXJzID0gWy4uLnRoaXMudXBkYXRlZExhbmd1YWdlRmlsdGVyXTtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBzZWxlY3RlZExhbmd1YWdlRmlsdGVycy5sZW5ndGggIT1cclxuICAgICAgICAgIHRoaXMuZmlsdGVyQ29sbGVjdGlvbi5sZW5ndGggLSAxXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB0aGlzLmZpbHRlckNvbGxlY3Rpb24ubWFwKChlYWNoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlYWNoLm5hbWUgIT0gXCJTZWxlY3QtYWxsIGxhbmd1YWdlXCIpIHtcclxuICAgICAgICAgICAgICBpZiAoIXNlbGVjdGVkTGFuZ3VhZ2VGaWx0ZXJzLmluY2x1ZGVzKGVhY2guZGF0YV92YWx1ZSkpIHtcclxuICAgICAgICAgICAgICAgIHNlbGVjdGVkTGFuZ3VhZ2VGaWx0ZXJzLnB1c2goZWFjaC5kYXRhX3ZhbHVlKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBzZWxlY3RlZExhbmd1YWdlRmlsdGVycyA9IFtcImVuXCJdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzdG9yZS5kaXNwYXRjaCh1cGRhdGVMYW5ndWFnZUZpbHRlcihzZWxlY3RlZExhbmd1YWdlRmlsdGVycykpO1xyXG4gICAgICAgIGxldCBvYmogPSBnZXREeW5hbWljVVJMKFxyXG4gICAgICAgICAgXCJcIixcclxuICAgICAgICAgIHRoaXMudXBkYXRlZEFnZVVSTCxcclxuICAgICAgICAgIHRoaXMudXBkYXRlZEV4cGVydFVSTCxcclxuICAgICAgICAgIHRoaXMudXBkYXRlZFRvcGljVVJMLFxyXG4gICAgICAgICAgdGhpcy51cGRhdGVkQ2xhc3NUeXBlVVJMLFxyXG4gICAgICAgICAgXCJsYW5ndWFnZVwiLFxyXG4gICAgICAgICAgdGhpcy51cGRhdGVkTGFuZ3VhZ2VGaWx0ZXJcclxuICAgICAgICApO1xyXG4gICAgICAgIHN0b3JlLmRpc3BhdGNoKHVwZGF0ZUxhbmd1YWdlVVJMKG9iai50eXBlVVJMKSk7XHJcbiAgICAgICAgd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKFxyXG4gICAgICAgICAge30sXHJcbiAgICAgICAgICBkb2
1N1bWVudC50aXRsZSxcclxuICAgICAgICAgIHByb2Nlc3MuZW52LkNMQVNTRVNfQlJPV1NFX1BBR0VfUEFUSCArIG9iai5maW5hbFVSTFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgXHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5maWx0ZXJUeXBlID09IFwic2VsZWN0LWFsbC1jbGFzc190eXBlXCIpIHtcclxuICAgICAgICBsZXQgc2VsZWN0ZWRDbGFzc1R5cGVGaWx0ZXJzID0gWy4uLnRoaXMudXBkYXRlZENsYXNzVHlwZUZpbHRlcl07XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgc2VsZWN0ZWRDbGFzc1R5cGVGaWx0ZXJzLmxlbmd0aCAhPVxyXG4gICAgICAgICAgdGhpcy5maWx0ZXJDb2xsZWN0aW9uLmxlbmd0aCAtIDFcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMuZmlsdGVyQ29sbGVjdGlvbi5tYXAoKGVhY2gpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVhY2gubmFtZSAhPSBcIlNlbGVjdCBhbGwgQ2xhc3MgVHlwZXNcIikge1xyXG4gICAgICAgICAgICAgIGlmICghc2VsZWN0ZWRDbGFzc1R5cGVGaWx0ZXJzLmluY2x1ZGVzKGVhY2guZGF0YV92YWx1ZSkpIHtcclxuICAgICAgICAgICAgICAgIHNlbGVjdGVkQ2xhc3NUeXBlRmlsdGVycy5wdXNoKGVhY2guZGF0YV92YWx1ZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgc2VsZWN0ZWRDbGFzc1R5cGVGaWx0ZXJzID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHN0b3JlLmRpc3BhdGNoKHVwZGF0ZUNsYXNzVHlwZUZpbHRlcihzZWxlY3RlZENsYXNzVHlwZUZpbHRlcnMpKTtcclxuICAgICAgICBsZXQgb2JqID0gZ2V0RHluYW1pY1VSTChcclxuICAgICAgICAgIHRoaXMudXBkYXRlZExhbmd1YWdlVVJMLFxyXG4gICAgICAgICAgdGhpcy51cGRhdGVkQWdlVVJMLFxyXG4gICAgICAgICAgdGhpcy51cGRhdGVkRXhwZXJ0VVJMLFxyXG4gICAgICAgICAgdGhpcy51cGRhdGVkVG9waWNVUkwsXHJcbiAgICAgICAgICBcIlwiLFxyXG4gICAgICAgICAgdGhpcy5maWx0ZXJUeXBlLFxyXG4gICAgICAgICAgdGhpcy51cGRhdGVkQ2xhc3NUeXBlRmlsdGVyXHJcbiAgICAgICAgKTtcclxuICAgICAgICBzdG9yZS5kaXNwYXRjaCh1cGRhdGVDbGFzc1R5cGVVUkwob2JqLnR5cGVVUkwpKTtcclxuICAgICAgICB3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUoXHJcbiAgICAgICAgICB7fSxcclxuICAgICAgICAgIGRvY3VtZW50LnRpdGxlLFxyXG4gICAgICAgICAgcHJvY2Vzcy5lbnYuQ0xBU1NFU19CUk9XU0VfUEFHRV9QQVRIICsgb2JqLmZpbmFsVVJMXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5maWx0ZXJUeXBlID09IFwic2VsZWN0LWFsbC1sYW5ndWFnZVwiIHx8IHRoaXMuZmlsdGVyVHlwZSA9PSBcImxhbmd1YWdlXCIpIHtcclxuICAgICAgICBQcm9taXNlLmFsbChbXHJcbiAgICAgICAgICB0b3BpY3MoKVxyXG4gICAgICAgIF0pLnRoZW4oKHZhbHVlcykgPT4ge1xyXG4gICAgICAgICAgaWYodmFsdWVzKVxyXG4gICAgICAgICAgICBzdG9yZS5kaXNwYXRjaChpbml0TG9hZGVyKGZhbHNlKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgLy9pZihtb2JpbGVBbmRUYWJsZXRjaGVjaygpPT0gZmFsc2Upe1xyXG4gICAgICAgIFByb21pc2UuYWxsKFtcclxuICAgICAgICAgIGxpdmVDbGFzcygpLFxyXG4gICAgICAgICAgb25kZW1hbmRDbGFzcygpLFxyXG4gICAgICAgICAgcmVjZW50bHlBZGRlZENsYXNzKCksXHJcbiAgICAgICAgICB0cmVuZGluZ0NsYXNzKCksXHJcbiAgICAgICAgICBoaWdobHlSYXRlZENsYXNzKCksXHJcbiAgICAgICAgICBwcml2YXRlQ2xhc3MoKSxcclxuICAgICAgICAgIHBvcHVsYXJDbGFzcygpLFxyXG4gICAgICAgICAgd2F0Y2hBZ2FpbkNsYXNzKCksXHJcbiAgICAgICAgICB3aXNoTGlzdENsYXNzKCksXHJcbiAgICAgICAgICByZWNvbW1lbmRlZENsYXNzKCksXHJcbiAgICAgICAgICBjdXJyZW50bHlFbnJvbGxlZENsYXNzKCksXHJcbiAgICAgICAgICBjdXN0b21DbGFzcygpXHJcbiAgICAgICAgXSkudGhlbigodmFsdWVzKSA9PiB7XHJcbiAgICAgICAgICAvL2NvbnNvbGUubG9nKHZhbHVlcyk7XHJcbiAgICAgICAgICBpZih2YWx1ZXMpXHJcbiAgICAgICAgICAgIHN0b3JlLmRpc3BhdGNoKGluaXRMb2FkZXIoZmFsc2UpKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIm1vYmlsZSBpcyBmYWxzZSBzdWIgZmlsdGVyXCIpXHJcbiAgICAgICAgLy8gcmVjZW50bHlBZGRlZENsYXNzKClcclxuICAgICAgICAvLyBvbmRlbWFuZENsYXNzKClcclxuICAgICAgICAvLyBsaXZlQ2xhc3MoKVxyXG4gICAgICAgIC8vIHByaXZhdGVDbGFzcygpXHJcbiAgICAgICAgLy8gaGlnaGx5UmF0ZWRDbGFzcygpXHJcbiAgICAgICAgLy8gdHJlbmRpbmdDbGFzcygpXHJcbiAgICAgICAgLy8gcG9wdWxhckNsYXNzKClcclxuICAgICAgLy99XHJcbiAgICAgIFxyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgLy9jb25zb2xlLmxvZyhlcnJvciwgXCJJbiB1cGRhdGUgZmlsdGVyIGZ1bmN0aW9uXCIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RhdGVDaGFuZ2VkKHN0YXRlKSB7XHJcbiAgICB0aGlzLnVwZGF0ZWRBZ2VGaWx0ZXIgPSBzdGF0ZS5hZ2VGaWx0ZXI7XHJcbiAgICB0aGlzLnVwZGF0ZWRUb3BpY0ZpbHRlciA9IHN0YXRlLnRvcGljRmlsdGVyO1xyXG4gICAgdGhpcy51cGRhdGVkQ2xhc3NUeXBlRmlsdGVyID0gc3RhdGUuY2xhc3NUeXBlRmlsdGVyO1xyXG4gICAgdGhpcy51cGRhdGVkTGFuZ3VhZ2VGaWx0ZXIgPSBzdGF0ZS5sYW5ndWFnZUZpbHRlcjtcclxuICAgIHRoaXMudXBkYXRlZExhbmd1YWdlVVJMID0gc3RhdGUubGFuZ3VhZ2VVUkw7XHJcbiAgICB0aGlzLnVwZGF0ZWRBZ2VVUkwgPSBzdGF0ZS5hZ2VVUkw7XHJcbiAgICB0aGlzLnVwZGF0ZWRFeHBlcnRVUkwgPSBzdGF0ZS5leHBlcnRVUkw7XHJcbiAgICB0aGlzLnVwZGF0ZWRUb3BpY1VSTCA9IHN0YXRlLnRvcGljVVJMO1xyXG4gICAgdGhpcy51cGRhdGVkQ2xhc3NUeXBlVVJMID0gc3RhdGUuY2xhc3NUeXBlVVJMO1xyXG4gIH1cclxuXHJcbiAgcmVuZGVyKCkge1xyXG4gICAgdHJ5IHtcclxuICAgICAgbGV0IG1lc3NhZ2U7XHJcbiAgICBpZiAodGhpcy5hZ2VDb2xsZWN0aW9uKSB0aGlzLmNvbGxlY3Rpb24gPSB0aGlzLmFnZUNvbGxlY3Rpb247XHJcblxyXG4gICAgaWYgKHRoaXMuY29sbGVjdGlvbj8uc3Bhbl90ZXh0XzEgPT0gXCJTZWxlY3QtYWxsIGFnZXNcIikge1xyXG4gICAgICBjb25zdCBzcGFuX25hbWUgPVxyXG4gICAgICAgI
1HRoaXMudXBkYXRlZEFnZUZpbHRlci5sZW5ndGggPT09IHRoaXMuZmlsdGVyQ29sbGVjdGlvbi5sZW5ndGggLSAxXHJcbiAgICAgICAgICA/IGA8bG9jYWwtZWxlbSBsb2NhbEtleT1cIlVuc2VsZWN0IEFsbCBBZ2VzXCI+PC9sb2NhbC1lbGVtPmBcclxuICAgICAgICAgIDogYDxsb2NhbC1lbGVtIGxvY2FsS2V5PVwiU2VsZWN0IEFsbCBBZ2VzXCI+PC9sb2NhbC1lbGVtPmA7XHJcbiAgICAgIG1lc3NhZ2UgPSBodG1sYDxzcGFuLWVsZW1lbnRcclxuICAgICAgICBjb252ZXJ0SFRNTD1cInRydWVcIlxyXG4gICAgICAgIHNwYW5UZXh0PVwiJHtzcGFuX25hbWV9XCJcclxuICAgICAgICBzcGFuQ2xhc3M9XCJ0aXRsZS1ncm91cC1maWx0ZXIgJHt0aGlzXHJcbiAgICAgICAgICAuZmlsdGVyVHlwZX0gJHt0aGlzLmlzU2VsZWN0ZWRGaWx0ZXIoKSA/IFwic2VsZWN0ZWRcIiA6IFwiXCJ9XCJcclxuICAgICAgPjwvc3Bhbi1lbGVtZW50PmA7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY29sbGVjdGlvbj8uc3Bhbl90ZXh0XzEgPT0gXCJTZWxlY3QtYWxsIHRvcGljc1wiKSB7XHJcbiAgICAgIGNvbnN0IHNwYW5fbmFtZSA9XHJcbiAgICAgICAgdGhpcy51cGRhdGVkVG9waWNGaWx0ZXIubGVuZ3RoID09PSB0aGlzLmZpbHRlckNvbGxlY3Rpb24ubGVuZ3RoIC0gMVxyXG4gICAgICAgICAgPyBgPGxvY2FsLWVsZW0gbG9jYWxLZXk9XCJVbnNlbGVjdCBBbGwgVG9waWNzXCI+PC9sb2NhbC1lbGVtPmBcclxuICAgICAgICAgIDogYDxsb2NhbC1lbGVtIGxvY2FsS2V5PVwiU2VsZWN0IEFsbCBUb3BpY3NcIj48L2xvY2FsLWVsZW0+YDtcclxuICAgICAgbWVzc2FnZSA9IGh0bWxgPHNwYW4tZWxlbWVudFxyXG4gICAgICAgIGNvbnZlcnRIVE1MPVwidHJ1ZVwiXHJcbiAgICAgICAgc3BhblRleHQ9XCIke3NwYW5fbmFtZX1cIlxyXG4gICAgICAgIHNwYW5DbGFzcz1cInRpdGxlLWdyb3VwLWZpbHRlciAke3RoaXNcclxuICAgICAgICAgIC5maWx0ZXJUeXBlfSAke3RoaXMuaXNTZWxlY3RlZEZpbHRlcigpID8gXCJzZWxlY3RlZFwiIDogXCJcIn1cIlxyXG4gICAgICA+PC9zcGFuLWVsZW1lbnQ+YDtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5jb2xsZWN0aW9uPy5zcGFuX3RleHRfMSA9PSBcIlNlbGVjdC1hbGwgbGFuZ3VhZ2VcIikge1xyXG4gICAgICBjb25zdCBzcGFuX25hbWUgPVxyXG4gICAgICAgIHRoaXMudXBkYXRlZExhbmd1YWdlRmlsdGVyLmxlbmd0aCAhPSB0aGlzLmZpbHRlckNvbGxlY3Rpb24ubGVuZ3RoIC0gMVxyXG4gICAgICAgICAgPyBgPGxvY2FsLWVsZW0gbG9jYWxLZXk9XCJTZWxlY3QgQWxsIExhbmd1YWdlc1wiPjwvbG9jYWwtZWxlbT5gXHJcbiAgICAgICAgICA6IGA8bG9jYWwtZWxlbSBsb2NhbEtleT1cIlVuc2VsZWN0IEFsbCBMYW5ndWFnZXNcIj48L2xvY2FsLWVsZW0+YDtcclxuICAgICAgbWVzc2FnZSA9IGh0bWxgPHNwYW4tZWxlbWVudFxyXG4gICAgICAgIGNvbnZlcnRIVE1MPVwidHJ1ZVwiXHJcbiAgICAgICAgc3BhblRleHQ9XCIke3NwYW5fbmFtZX1cIlxyXG4gICAgICAgIHNwYW5DbGFzcz1cInRpdGxlLWdyb3VwLWZpbHRlciAke3RoaXNcclxuICAgICAgICAgIC5maWx0ZXJUeXBlfSAke3RoaXMuaXNTZWxlY3RlZEZpbHRlcigpID8gXCJzZWxlY3RlZFwiIDogXCJcIn1cIlxyXG4gICAgICA+PC9zcGFuLWVsZW1lbnQ+YDtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5jb2xsZWN0aW9uPy5zcGFuX3RleHRfMSA9PSBcIlNlbGVjdCBhbGwgQ2xhc3MgVHlwZXNcIikge1xyXG4gICAgICBjb25zdCBzcGFuX25hbWUgPVxyXG4gICAgICAgIHRoaXMudXBkYXRlZENsYXNzVHlwZUZpbHRlci5sZW5ndGggIT0gdGhpcy5maWx0ZXJDb2xsZWN0aW9uLmxlbmd0aCAtIDFcclxuICAgICAgICAgID8gYDxsb2NhbC1lbGVtIGxvY2FsS2V5PVwiU2VsZWN0IEFsbCBDbGFzcyBUeXBlc1wiPjwvbG9jYWwtZWxlbT5gXHJcbiAgICAgICAgICA6IGA8bG9jYWwtZWxlbSBsb2NhbEtleT1cIlVuc2VsZWN0IEFsbCBDbGFzcyBUeXBlc1wiPjwvbG9jYWwtZWxlbT5gO1xyXG4gICAgICBtZXNzYWdlID0gaHRtbGA8c3Bhbi1lbGVtZW50XHJcbiAgICAgICAgY29udmVydEhUTUw9XCJ0cnVlXCJcclxuICAgICAgICBzcGFuVGV4dD1cIiR7c3Bhbl9uYW1lfVwiXHJcbiAgICAgICAgc3BhbkNsYXNzPVwidGl0bGUtZ3JvdXAtZmlsdGVyICR7dGhpc1xyXG4gICAgICAgICAgLmZpbHRlclR5cGV9ICR7dGhpcy5pc1NlbGVjdGVkRmlsdGVyKCkgPyBcInNlbGVjdGVkXCIgOiBcIlwifVwiXHJcbiAgICAgID48L3NwYW4tZWxlbWVudD5gO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbWVzc2FnZSA9IGh0bWxgPHNwYW4tZWxlbWVudFxyXG4gICAgICAgIGNvbnZlcnRIVE1MPVwidHJ1ZVwiXHJcbiAgICAgICAgc3BhblRleHQ9XCIke3RoaXMuY29sbGVjdGlvbj8uc3Bhbl90ZXh0XzF9XCJcclxuICAgICAgICBzcGFuQ2xhc3M9XCJ0aXRsZS1ncm91cC1maWx0ZXIgJHt0aGlzXHJcbiAgICAgICAgICAuZmlsdGVyVHlwZX0gJHt0aGlzLmlzU2VsZWN0ZWRGaWx0ZXIoKSA/IFwic2VsZWN0ZWRcIiA6IFwiXCJ9XCJcclxuICAgICAgPjwvc3Bhbi1lbGVtZW50PmA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuY29sbGVjdGlvbikge1xyXG4gICAgICByZXR1cm4gaHRtbGBcclxuICAgICAgICA8bGFiZWxcclxuICAgICAgICAgIGNsYXNzPVwiZ3JvdXAtZmlsdGVyLXRvcGljICR7dGhpcy5maWx0ZXJUeXBlfSAke3RoaXMuaXNTZWxlY3RlZEZpbHRlcigpXHJcbiAgICAgICAgICAgID8gXCJibHVlLWJhY2tncm91bmQgc2VsZWN0ZWRcIlxyXG4gICAgICAgICAgICA6IFwiXCJ9XCJcclxuICAgICAgICAgIEBjbGljaz1cIiR7dGhpcy51cGRhdGVGaWx0ZXJ9XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImZsZXgtYm94XCI+XHJcbiAgICAgICAgICAgICR7dGhpcy5jb2xsZWN0aW9uPy5pbWFnZUNhdGVnb3J5VHlwZVxyXG4gICAgICAgICAgICAgID8gaHRtbGA8aW1hZ2UtZWxlbWVudFxyXG4gICAgICAgICAgICAgICAgICBpbWFnZVNyYz1cIiR7dGhpcy5jb2xsZWN0aW9uPy5pbWFnZUNhdGVnb3J5VHlwZSA9PSBcIm9uLWRlbWFuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmlzU2VsZWN0ZWRGaWx0ZXIoKVxyXG4gICAgICAgICAgICAgICAgICAgICAgPyBvbmRlbWFuZEljb25XaGl0ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgOiBvbmRlbWFuZEljb25cclxuICAgICAgICAgICAgICAgICAgICA6IHRoaXMuaXNTZWxlY3RlZEZpbHRlcigpXHJcbiAgICAgICAgICAgICAgICAgICAgPyBsaXZlSWNvbldoaXRlXHJcbiAgICAgICAgICAgICAgICAgICAgOiBsaXZlSWNvbn1cIlxyXG4gICAgICAgICAgICAgICAgICBpbWFnZUNsYXNzPVwiY2F0ZWdvcnktdGlsZS1pbWdcIlxyXG4gICAgICAgICAgICAgICAgPjwvaW1hZ2UtZWxlbWVudD5gXHJcbiAgICAgICAgICAgICAgOiBgYH1cclxuICAgICAgICAgICAgJHttZXNzYWdlfVxyXG4gICAgICAgICAgICA8c3Bhbi1lbGVtZW50XHJcbiAgICAgICAgICAgICAgc3B
1hblRleHQ9XCIke3RoaXMuY29sbGVjdGlvbj8uc3Bhbl90ZXh0XzJ9XCJcclxuICAgICAgICAgICAgICBzcGFuQ2xhc3M9XCJkZXNjLWdyb3VwLWZpbHRlciAke3RoaXMuZmlsdGVyVHlwZX0gJHt0aGlzLmlzU2VsZWN0ZWRGaWx0ZXIoKSA/IFwic2VsZWN0ZWRcIiA6IFwiXCJ9XCJcclxuICAgICAgICAgICAgICBjb252ZXJ0SFRNTD1cInRydWVcIlxyXG4gICAgICAgICAgICA+PC9zcGFuLWVsZW1lbnQ+XHJcbiAgICAgICAgICAgIDx0ZXh0LWJveFxyXG4gICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgbmFtZT1cIiR7dGhpcy5jb2xsZWN0aW9uPy5uYW1lfVwiXHJcbiAgICAgICAgICAgICAgdmFsdWU9XCIke3RoaXMuY29sbGVjdGlvbj8udmFsdWV9XCJcclxuICAgICAgICAgICAgPjwvdGV4dC1ib3g+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9sYWJlbD5cclxuICAgICAgYDtcclxuICAgIH1cclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIC8vY29uc29sZS5sb2coZXJyb3IsXCJFcnJvciBpbiByZW5kZXIgc3ViIGZpbHRlclwiKVxyXG4gICAgfVxyXG4gICAgXHJcbiAgfVxyXG59XHJcblxyXG5jdXN0b21FbGVtZW50cy5kZWZpbmUoXCJzdWItZmlsdGVyc1wiLCBTdWJGaWx0ZXJzKTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///8073\n\n}')},8820:(__unused_webpack_module,__unused_webpack___webpack_exports__,__webpack_require__)=>{eval('{/* harmony import */ var lit_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4420);\n/* harmony import */ var _span_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6099);\n/* harmony import */ var _utils_common_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8369);\n/* harmony import */ var _localization_localization_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(8550);\n\r\n \r\n \r\n \r\n \r\n\r\n class SpanElement extends lit_element__WEBPACK_IMPORTED_MODULE_0__/* .LitElement */ .WF {\r\n\r\n static get properties() {\r\n return {\r\n spanText: { type: String },\r\n spanClass : { type : String },\r\n convertHTML : { type: Boolean }\r\n }; \r\n }\r\n\r\n constructor(){\r\n super();\r\n this.localObj={};\r\n }\r\n \r\n static get styles() {\r\n return [_span_scss__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A];\r\n }\r\n\r\n render() {\r\n return (0,lit_element__WEBPACK_IMPORTED_MODULE_0__/* .html */ .qy)`<span class="${this.spanClass}" > ${this.convertHTML? (0,_utils_common_js__WEBPACK_IMPORTED_MODULE_2__/* .convert_string_to_fragment */ .LX)(this.spanText) : this.spanText }</span>`;\r\n }\r\n }\r\n \r\n customElements.define("span-element", SpanElement);\r\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODgyMC5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL0JhYnlTcGFya3MvLi9zcmMvY29tcG9uZW50cy9zcGFuL3NwYW4uanM/ZGQ2NiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgTGl0RWxlbWVudCxcclxuICAgIGh0bWxcclxuICB9IGZyb20gXCJsaXQtZWxlbWVudFwiO1xyXG4gIFxyXG4gIGltcG9ydCBzcGFuU3R5bGUgZnJvbSAnLi9zcGFuLnNjc3MnO1xyXG4gIGltcG9ydCB7Y29udmVydF9zdHJpbmdfdG9fZnJhZ21lbnR9IGZyb20gJy4uLy4uL3V0aWxzL2NvbW1vbi5qcyc7XHJcbiAgaW1wb3J0IFwiLi4vbG9jYWxpemF0aW9uL2xvY2FsaXphdGlvbi5qc1wiO1xyXG5cclxuICBjbGFzcyBTcGFuRWxlbWVudCBleHRlbmRzIExpdEVsZW1lbnQge1xyXG5cclxuICAgIHN0YXRpYyBnZXQgcHJvcGVydGllcygpIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBzcGFuVGV4dDogeyB0eXBlOiBTdHJpbmcgfSxcclxuICAgICAgICBzcGFuQ2xhc3MgOiB7IHR5cGUgOiBTdHJpbmcgfSxcclxuICAgICAgICBjb252ZXJ0S
1FRNTCA6IHsgdHlwZTogQm9vbGVhbiB9XHJcbiAgICAgIH07IFxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKCl7XHJcbiAgICAgIHN1cGVyKCk7XHJcbiAgICAgIHRoaXMubG9jYWxPYmo9e307XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHN0YXRpYyBnZXQgc3R5bGVzKCkge1xyXG4gICAgICAgIHJldHVybiBbc3BhblN0eWxlXTtcclxuICAgIH1cclxuXHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgIHJldHVybiBodG1sYDxzcGFuIGNsYXNzPVwiJHt0aGlzLnNwYW5DbGFzc31cIiA+ICR7dGhpcy5jb252ZXJ0SFRNTD8gY29udmVydF9zdHJpbmdfdG9fZnJhZ21lbnQodGhpcy5zcGFuVGV4dCkgOiB0aGlzLnNwYW5UZXh0IH08L3NwYW4+YDtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKFwic3Bhbi1lbGVtZW50XCIsIFNwYW5FbGVtZW50KTtcclxuICAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///8820\n\n}')},8981:(__unused_webpack_module,__unused_webpack___webpack_exports__,__webpack_require__)=>{eval("{\n// EXTERNAL MODULE: ./node_modules/lit-element/index.js\nvar lit_element = __webpack_require__(4420);\n// EXTERNAL MODULE: ./node_modules/swiper/swiper.mjs + 1 modules\nvar swiper = __webpack_require__(1236);\n// EXTERNAL MODULE: ./node_modules/swiper/modules/index.mjs + 22 modules\nvar modules = __webpack_require__(1884);\n// EXTERNAL MODULE: ./src/assets/css/swiper_css.js\nvar swiper_css = __webpack_require__(6206);\n// EXTERNAL MODULE: ./node_modules/lit/index.js\nvar lit = __webpack_require__(6161);\n;// ./src/components/swiper/swiper.scss\n /* harmony default export */ const swiper_swiper = ((0,lit/* css */.AH)`.swiper-wrapper{height:auto!important;-webkit-transform-style:preserve-3d}.swiper{margin-bottom:12px!important}.review-slider .swiper-slide{min-width:271px;width:auto!important;height:100%!important;padding:10px 0}.review-slider.swiper{max-width:1800px;width:100%;margin:0 auto;overflow-x:hidden}.review-slider .swiper-wrapper{display:grid;grid-auto-flow:column;width:97%;left:1%}.swiper-slide{width:280px!important;-webkit-backface-visibility:hidden;-webkit-transform:initial!important;transform:initial!important;cursor:pointer!important}.swiper-slide.small{width:164px!important}.swiper-slide.medium{width:280px!important}.swiper-slide.teacher-card{width:170px!important}.swiper-slide.age{width:calc(12.5% - 15px)!important;width:170px!important;min-width:170px!important;max-width:212px!important}.swiper-slide.classType{width:calc(25% - 14px)!important;min-width:170px!important;max-width:416px!important}.swiper-slide.topic{width:170px!important;min-width:170px!important}.swiper-slide.experts{width:auto!important;min-width:170px!important;cursor:pointer!important}.swiper-slide.language{width:calc(33.3% - 12px)!important;min-width:120px!important;max-width:539px!important}.swiper-slide.overview-review-slider .review-card{background:#fff;border-radius:8px;box-shadow:rgba(153,160,172,.45) 0 2px 4px;margin:6px 4px;transition:transform .2s,-webkit-transform .2s;padding:1rem;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;height:100%;gap:10px;text-align:center}.swiper-slide.overview-review-slider .review-quote img{display:block;margin:0 auto 1rem auto;width:30px;height:auto;opacity:.9}.swiper-slide.overview-review-slider .review-title{margin:2px 0 4px;font-size:1.125rem;font-weight:700;color:#111827}.swiper-slide.overview-review-slider .review-body{margin:0 auto;color:#4b5563;line-height:1.6;max-width:34ch}.swiper-slide.overview-review-slider .review-meta{margin-top:auto;display:flex;align-items:center;justify-content:center;gap:8px;color:#6b7280;font-size:.875rem}.swiper-slide.overview-review-slider .review-author{font-weight:600;color:#374151}.swiper-slide.overview-review-slider .review-dot{opacity:.6}.swiper-slide.overview-review-slider .review-date{opacity:.9}
1.swiper-button-prev:after{font-family:FontAwesome!important;content:\"\\\\f053\"!important;font-size:35px!important;color:#fff}.swiper-button-next:after{font-family:FontAwesome!important;content:\"\\\\f054\"!important;font-size:35px!important;color:#fff}.swiper-button{background:rgba(0,0,0,.2588235294)!important;width:80px!important;height:80px!important;border-radius:50%!important}.swiper-button-next{right:-25px!important;transform:translate(0,-50%)}.swiper-button-next.swiper-button-disabled{opacity:0!important}.age-filter-slider{overflow:hidden!important}.age-filter-slider .swiper-button-next{top:0!important;transform:none}.age-filter-slider .swiper-button-prev{left:0!important;top:0!important;transform:none}.topic-filter-slider{overflow:hidden!important}.topic-filter-slider .swiper-button-next{top:0!important;transform:none}.topic-filter-slider .swiper-button-prev{left:0!important;top:0!important;transform:none}.swipe-experts{overflow:hidden!important}.swipe-experts .swiper-button-next{top:0!important;transform:none}.swipe-experts .swiper-button-prev{left:0!important;top:0!important;transform:none}.type-filter-slider{overflow:hidden!important}.type-filter-slider .swiper-button-next{top:0!important;transform:none}.type-filter-slider .swiper-button-prev{left:0!important;top:0!important;transform:none}.language-filter-slider{overflow:hidden!important}.language-filter-slider .swiper-button-next{top:0!important;transform:none}.language-filter-slider .swiper-button-prev{left:0!important;top:0!important;transform:none}.swiper-button-prev{left:-25px!important;transform:translate(0,-50%)}.swiper-button-prev.swiper-button-disabled{opacity:0!important}.age-filter-slider .swiper-button,.language-filter-slider .swiper-button,.swipe-experts .swiper-button,.topic-filter-slider .swiper-button,.type-filter-slider .swiper-button{background:#0094cc!important;width:50px!important;height:50px!important;
1font-family:FontAwesome!important;font-size:0!important;line-height:1!important;color:#fff!important;top:0!important;right:0!important}@media(max-width:820px){.swiper-button{display:none!important}}@media(max-width:640px){.swiper{margin-bottom:0!important}.swiper-slide.age{width:143px!important;min-width:143px!important;max-width:243px!important}.swiper-slide.topic{width:150px!important;min-width:150px!important;max-width:243px!important}}@media(max-width:405px){.swiper-slide.small{width:147px!important}.swiper-slide.teacher-card{width:151px!important}}`);\n \n// EXTERNAL MODULE: ./src/utils/analytics.js + 1 modules\nvar analytics = __webpack_require__(5908);\n// EXTERNAL MODULE: ./src/components/card/card.scss\nvar card = __webpack_require__(1031);\n// EXTERNAL MODULE: ./src/components/card-header/card-header.scss\nvar card_header = __webpack_require__(9409);\n// EXTERNAL MODULE: ./src/components/button/button.scss\nvar button_button = __webpack_require__(9383);\n// EXTERNAL MODULE: ./src/components/image/image.scss\nvar image_image = __webpack_require__(2321);\n// EXTERNAL MODULE: ./src/components/anchor/anchor.scss\nvar anchor_anchor = __webpack_require__(8177);\n// EXTERNAL MODULE: ./src/components/discount-label/discount-label.scss\nvar discount_label = __webpack_require__(5691);\n// EXTERNAL MODULE: ./src/components/card-sub-header/card-sub-header.scss\nvar card_sub_header = __webpack_require__(4553);\n// EXTERNAL MODULE: ./src/components/progress-bar/progress-bar.scss\nvar progress_bar = __webpack_require__(1429);\n// EXTERNAL MODULE: ./src/components/card-schedule-header/card-schedule-header.scss\nvar card_schedule_header = __webpack_require__(5815);\n// EXTERNAL MODULE: ./src/components/card-body/card-body.scss\nvar card_body = __webpack_require__(7173);\n// EXTERNAL MODULE: ./src/components/headings/headings.scss\nvar headings = __webpack_require__(7661);\n// EXTERNAL MODULE: ./src/components/span/span.scss\nvar span = __webpack_require__(6099);\n// EXTERNAL MODULE: ./src/components/rating/rating.scss\nvar rating = __webpack_require__(5021);\n// EXTERNAL MODULE: ./src/components/card-footer/card-footer.scss\nvar card_footer = __webpack_require__(5313);\n// EXTERNAL MODULE: ./src/components/card-subscribe-footer/card-subscribe-footer.scss\nvar card_subscribe_footer = __webpack_require__(309);\n// EXTERNAL MODULE: ./src/components/b2b/b2b.scss\nvar b2b = __webpack_require__(5717);\n;// ./src/components/swiper/swiper.js\n\r\n\r\n// import Swiper, { Navigation, Pagination, Manipulation } from 'swiper';\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass BSSwiper extends lit_element/* LitElement */.WF {\r\n // static get styles() {\r\n // return [swiper_internal_css,swiper_css];\r\n // }\r\n\r\n static get styles() {\r\n return [swiper_swiper,swiper_css/* swiper_css */.f, card/* default */.A, card_header/* default */.A, button_button/* default */.A, image_image/* default */.A, \r\n anchor_anchor/* default */.A, discount_label/* default */.A, card_sub_header/* default */.A, progress_bar/* default */.A,\r\n card_schedule_header/* default */.A, card_body/* default */.A, headings/* default */.A, span/* default */.A, \r\n rating/* default */.A, card_footer/* default */.A, card_subscribe_footer/* default */.A, b2b/* default */.A];\r\n }\r\n\r\n static get properties() {\r\n return {\r\n sliderClass: { type: String },\r\n // sliderCount: { type: Number },\r\n sliderCardElem: { type: Array },\r\n sliderAddCardElem: { type: Array },\r\n dataCount: {type: Number},\r\n totalCount: {type: Number},\r\n enableSlider : { type : Boolean},\r\n cardType : {type : String},\r\n activePageCount:{type:Number},\r\n sliderType: {type : String}\r\n // dataCount: {type: Number}\r\n };\r\n }\r\n\r\n constructor(){\r\n super();\r\n this.enableSlider = true;\r\n }\r\n\r\n render() {\r\n return (0,lit_element/* html */.qy)`\r\n \x3c!-- Slider main container --\x3e\r\n <div class=\"swiper ${this.sliderClass}\">\r\n \x3c!-- Additional required wrapper --\x3e\r\n <div class=\"swiper-wrapper\">\r\n \x3c!-- Slides --\x3e\r\n </div>\r\n \x3c!-- If we need pagination --\x3e\r\n \x3c!--<div class=\"swiper-pagination\"></div>--\x3e\r\n\r\n \x3c!-- If we need navigation buttons --\x3e\r\n <div class=\"swiper-button-prev swiper-button\"></div>\r\n <div class=\"swiper-button-next swiper-button\"></div>\r\n </div>\r\n `;\r\n }\r\n\r\n firstUpdated(_changedProperties) {\r\n super.firstUpdated(_changedProperties);\r\n this.setSwiperConfig();\r\n }\r\n\r\n updated(changedProperties) {\r\n // console.log(\"::::::::::::::::::::::::::::::UPDATED HERE::::::::::::::::::::::::::\",changedProperties);\r\n\r\n if (changedProperties.has('sliderAddCardElem') && this.swiperObj) {\r\n // to remove all slides - Do this when applying filters or searching\r\n // this.swiperObj.removeAllSlides()\r\n if(this.activePageCount > 0 && this.totalCount!= 9999999 ){\r\n this.swiperObj.appendSlide(this.sliderAddCardElem)\r\n }else {\r\n // console.log(\"=========Is it coming heerrrrrrrrrrr in swiperrrrrrrrrrrrrrrrrrrrr===========\")\r\n this.swiperObj.removeAllSlides();\r\n this.swiperObj.appendSlide(this.sliderAddCardElem)\r\n }\r\n // if (this.swiperObj) {\r\n // this.swiperObj.appendSlide(this.sliderAddCardElem)\r\n // }\r\n }\r\n }\r\n\r\n // shouldUpdate(changedProperties) {\r\n // //console.log(\"In should update::::::::::::::::::::\", this.sliderAddCardElem.length, \"Card length\",this.sliderCardElem.length);\r\n // return changedProperties.has(\"sliderAddCardElem\");\r\n // }\r\n\r\n setSwiperConfig() {\r\n const slide = this.shadowRoot.querySelector('.swiper');\r\n const prev = this.shadowRoot.querySelector('.swiper-button-prev');\r\n const next = this.shadowRoot.querySelector('.swiper-button-next');\r\n var that = this;\r\n\r\n this.swiperObj = new swiper/* default */.A(slide,\r\n {\r\n // pass modules here\r\n modules: [modules/* Navigation */.Vx, modules/* Pagination */.dK, modules/* Manipulation */.cx],\r\n autoHeight: true,\r\n // slidesPerView: \"auto\",\r\n // slidesPerGroup: 1,\r\n slidesPerView:'auto',\r\n slidesPerGroup: that._slideViewCount(),\r\n slidesPerGroupAuto: true,\r\n spaceBetween: 20,\r\n allowTouchMove: true,\r\n navigation: {\r\n prevEl: prev,\r\n nextEl: next,\r\n },\r\n breakpoints: {\r\n // when window width is >= 320px\r\n 992: {\r\n allowTouchMove: false\r\n }\r\n }\r\n }\r\n );\r\n\r\n this.swiperObj.on('slideNextTransitionStart', function(e) {\r\n // stop pagination based on that.totalCount and that.sliderCardElem.length\r\n // console.log(that.sliderType,\"============Current timestamp==========\",new Date(),'*** mySwiper.realIndex', e.realIndex, e.rtl, e.slides.length, that.sliderCardElem.length);\r\n //disbaled eventViewClass() as per request from Katia Mar 24\r\n // eventViewClass();
1\r\n\r\n (0,analytics/* eventSpecificClassesCarouselPagination */.dz)(that.sliderType);\r\n // Dispatch event here and make api call\r\n\r\n if(that.totalCount!= 9999999 && that.totalCount > that.dataCount && that.dataCount>that.activePageCount){\r\n that._nextEventTrigger();\r\n }\r\n \r\n\r\n });\r\n\r\n this.swiperObj.on('slidePrevTransitionEnd', function(e) {\r\n //disbaled eventViewClass() as per request from Katia Mar 24\r\n // eventViewClass();\r\n (0,analytics/* eventSpecificClassesCarouselPagination */.dz)(that.sliderType);\r\n });\r\n\r\n\r\n // console.log(\"swiper config set here\", slide, prev, next, this.swiperObj)\r\n\r\n // if(this.enableSlider == false){\r\n // this.swiperObj.destroy()\r\n // }\r\n }\r\n\r\n _slideViewCount(){\r\n let windowWidth = innerWidth;\r\n let card_type= this.cardType;\r\n let sliderCount = 1;\r\n if(card_type == 'filters') {\r\n sliderCount = 1;\r\n }else {\r\n if(windowWidth < 410) {\r\n sliderCount = (card_type == 'small') ? 2 : 1\r\n }else if(windowWidth > 411 && windowWidth < 481) {\r\n sliderCount = (card_type == 'small') ? 2 : 1\r\n }else if(windowWidth > 481 && windowWidth < 767) {\r\n sliderCount = (card_type == 'small') ? 4 : 2\r\n }else if(windowWidth > 767 && windowWidth < 800){\r\n sliderCount = (card_type == 'small') ? 4 : 2\r\n }else if(windowWidth > 800 && windowWidth < 1023){\r\n sliderCount = (card_type == 'small') ? 4 : 3\r\n }else if(windowWidth > 1023 && windowWidth < 1080){\r\n sliderCount = (card_type == 'small') ? 5 : 3\r\n }else if(windowWidth > 1080 && windowWidth < 1279){\r\n sliderCount = (card_type == 'small') ? 5 : 3\r\n }else if(windowWidth > 1279 && windowWidth < 1330){\r\n sliderCount = (card_type == 'small') ? 6 : 4\r\n }else if(windowWidth > 1330 && windowWidth < 1500){\r\n sliderCount = (card_type == 'small') ? 7 : 4\r\n }else if(windowWidth > 1500 && windowWidth < 1800){\r\n sliderCount = (card_type == 'small') ? 8 : 5\r\n }else if(windowWidth > 1800 && windowWidth < 1900){\r\n sliderCount = (card_type == 'small') ? 9 : 8\r\n }else if(windowWidth > 1900 && windowWidth < 2200){\r\n sliderCount = (card_type == 'small') ? 10: 6\r\n }else if(windowWidth > 2200){\r\n sliderCount = (card_type == 'small') ? 11 : 7\r\n }\r\n }\r\n return sliderCount;\r\n }\r\n\r\n _nextEventTrigger(){\r\n this.dispatchEvent(\r\n new CustomEvent(\"slider-paginate\", {\r\n detail: { type: this.sliderType, action: \"increment\" },\r\n })\r\n );\r\n }\r\n\r\n}\r\n\r\ncustomElements.define(\"bs-swiper\", BSSwiper);\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODk4MS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9CYWJ5U3BhcmtzLy4vc3JjL2NvbXBvbmVudHMvc3dpcGVyL3N3aXBlci5zY3NzPzRkZmUiLCJ3ZWJwYWNrOi8vQmFieVNwYXJrcy8uL3NyYy9jb21wb25lbnRzL3N3aXBlci9zd2lwZXIuanM/NDQwYSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2Nzc30gZnJvbSAnbGl0JzsgZXhwb3J0IGRlZmF1bHQgY3NzYC5zd2lwZXItd3JhcHBlcntoZWlnaHQ6YXV0byFpbXBvcnRhbnQ7LXdlYmtpdC10cmFuc2Zvcm0tc3R5bGU6cHJlc2VydmUtM2R9LnN3aXBlcnttYXJnaW4tYm90dG9tOjEycHghaW1wb3J0YW50fS5yZXZpZXctc2xpZGVyIC5zd2lwZXItc2xpZGV7bWluLXdpZHRoOjI3MXB4O3dpZHRoOmF1dG8haW1wb3J0YW50O2hlaWdodDoxMDAlIWltcG9ydGFudDtwYWRkaW5nOjEwcHggMH0ucmV2aWV3LXNsaWRlci5zd2lwZXJ7bWF4LXdpZHRoOjE4MDBweDt3aWR0aDoxMDAlO21hcmdpbjowIGF1dG87b3ZlcmZsb3cteDpoaWRkZW59LnJldmlldy1zbGlkZXIgLnN3aXBlci13cmFwcGVye2Rpc3BsYXk6Z3JpZDtncmlkLWF1dG8tZmxvdzpjb2x1bW47d2lkdGg6OTclO2xlZnQ6MSV9LnN3aXBlci1zbGlkZXt3aWR0aDoyODBweCFpbXBvcnRhbnQ7LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjstd2Via2l0LXRyYW5zZm9ybTppbml0aWFsIWltcG9ydGFudDt0cmFuc2Zvcm06aW5pdGlhbCFpbXBvcnRhbnQ7Y3Vyc29yOnBvaW50ZXIhaW1wb3J0YW50fS5zd2lwZXItc2xpZGUuc21hbGx
17d2lkdGg6MTY0cHghaW1wb3J0YW50fS5zd2lwZXItc2xpZGUubWVkaXVte3dpZHRoOjI4MHB4IWltcG9ydGFudH0uc3dpcGVyLXNsaWRlLnRlYWNoZXItY2FyZHt3aWR0aDoxNzBweCFpbXBvcnRhbnR9LnN3aXBlci1zbGlkZS5hZ2V7d2lkdGg6Y2FsYygxMi41JSAtIDE1cHgpIWltcG9ydGFudDt3aWR0aDoxNzBweCFpbXBvcnRhbnQ7bWluLXdpZHRoOjE3MHB4IWltcG9ydGFudDttYXgtd2lkdGg6MjEycHghaW1wb3J0YW50fS5zd2lwZXItc2xpZGUuY2xhc3NUeXBle3dpZHRoOmNhbGMoMjUlIC0gMTRweCkhaW1wb3J0YW50O21pbi13aWR0aDoxNzBweCFpbXBvcnRhbnQ7bWF4LXdpZHRoOjQxNnB4IWltcG9ydGFudH0uc3dpcGVyLXNsaWRlLnRvcGlje3dpZHRoOjE3MHB4IWltcG9ydGFudDttaW4td2lkdGg6MTcwcHghaW1wb3J0YW50fS5zd2lwZXItc2xpZGUuZXhwZXJ0c3t3aWR0aDphdXRvIWltcG9ydGFudDttaW4td2lkdGg6MTcwcHghaW1wb3J0YW50O2N1cnNvcjpwb2ludGVyIWltcG9ydGFudH0uc3dpcGVyLXNsaWRlLmxhbmd1YWdle3dpZHRoOmNhbGMoMzMuMyUgLSAxMnB4KSFpbXBvcnRhbnQ7bWluLXdpZHRoOjEyMHB4IWltcG9ydGFudDttYXgtd2lkdGg6NTM5cHghaW1wb3J0YW50fS5zd2lwZXItc2xpZGUub3ZlcnZpZXctcmV2aWV3LXNsaWRlciAucmV2aWV3LWNhcmR7YmFja2dyb3VuZDojZmZmO2JvcmRlci1yYWRpdXM6OHB4O2JveC1zaGFkb3c6cmdiYSgxNTMsMTYwLDE3MiwuNDUpIDAgMnB4IDRweDttYXJnaW46NnB4IDRweDt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMnMsLXdlYmtpdC10cmFuc2Zvcm0gLjJzO3BhZGRpbmc6MXJlbTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDtoZWlnaHQ6MTAwJTtnYXA6MTBweDt0ZXh0LWFsaWduOmNlbnRlcn0uc3dpcGVyLXNsaWRlLm92ZXJ2aWV3LXJldmlldy1zbGlkZXIgLnJldmlldy1xdW90ZSBpbWd7ZGlzcGxheTpibG9jazttYXJnaW46MCBhdXRvIDFyZW0gYXV0bzt3aWR0aDozMHB4O2hlaWdodDphdXRvO29wYWNpdHk6Ljl9LnN3aXBlci1zbGlkZS5vdmVydmlldy1yZXZpZXctc2xpZGVyIC5yZXZpZXctdGl0bGV7bWFyZ2luOjJweCAwIDRweDtmb250LXNpemU6MS4xMjVyZW07Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOiMxMTE4Mjd9LnN3aXBlci1zbGlkZS5vdmVydmlldy1yZXZpZXctc2xpZGVyIC5yZXZpZXctYm9keXttYXJnaW46MCBhdXRvO2NvbG9yOiM0YjU1NjM7bGluZS1oZWlnaHQ6MS42O21heC13aWR0aDozNGNofS5zd2lwZXItc2xpZGUub3ZlcnZpZXctcmV2aWV3LXNsaWRlciAucmV2aWV3LW1ldGF7bWFyZ2luLXRvcDphdXRvO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtnYXA6OHB4O2NvbG9yOiM2YjcyODA7Zm9udC1zaXplOi44NzVyZW19LnN3aXBlci1zbGlkZS5vdmVydmlldy1yZXZpZXctc2xpZGVyIC5yZXZpZXctYXV0aG9ye2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjojMzc0MTUxfS5zd2lwZXItc2xpZGUub3ZlcnZpZXctcmV2aWV3LXNsaWRlciAucmV2aWV3LWRvdHtvcGFjaXR5Oi42fS5zd2lwZXItc2xpZGUub3ZlcnZpZXctcmV2aWV3LXNsaWRlciAucmV2aWV3LWRhdGV7b3BhY2l0eTouOX0uc3dpcGVyLWJ1dHRvbi1wcmV2OmFmdGVye2ZvbnQtZmFtaWx5OkZvbnRBd2Vzb21lIWltcG9ydGFudDtjb250ZW50OlwiXFxcXGYwNTNcIiFpbXBvcnRhbnQ7Zm9udC1zaXplOjM1cHghaW1wb3J0YW50O2NvbG9yOiNmZmZ9LnN3aXBlci1idXR0b24tbmV4dDphZnRlcntmb250LWZhbWlseTpGb250QXdlc29tZSFpbXBvcnRhbnQ7Y29udGVudDpcIlxcXFxmMDU0XCIhaW1wb3J0YW50O2ZvbnQtc2l6ZTozNXB4IWltcG9ydGFudDtjb2xvcjojZmZmfS5zd2lwZXItYnV0dG9ue2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMjU4ODIzNTI5NCkhaW1wb3J0YW50O3dpZHRoOjgwcHghaW1wb3J0YW50O2hlaWdodDo4MHB4IWltcG9ydGFudDtib3JkZXItcmFkaXVzOjUwJSFpbXBvcnRhbnR9LnN3aXBlci1idXR0b24tbmV4dHtyaWdodDotMjVweCFpbXBvcnRhbnQ7dHJhbnNmb3JtOnRyYW5zbGF0ZSgwLC01MCUpfS5zd2lwZXItYnV0dG9uLW5leHQuc3dpcGVyLWJ1dHRvbi1kaXNhYmxlZHtvcGFjaXR5OjAhaW1wb3J0YW50fS5hZ2UtZmlsdGVyLXNsaWRlcntvdmVyZmxvdzpoaWRkZW4haW
11wb3J0YW50fS5hZ2UtZmlsdGVyLXNsaWRlciAuc3dpcGVyLWJ1dHRvbi1uZXh0e3RvcDowIWltcG9ydGFudDt0cmFuc2Zvcm06bm9uZX0uYWdlLWZpbHRlci1zbGlkZXIgLnN3aXBlci1idXR0b24tcHJldntsZWZ0OjAhaW1wb3J0YW50O3RvcDowIWltcG9ydGFudDt0cmFuc2Zvcm06bm9uZX0udG9waWMtZmlsdGVyLXNsaWRlcntvdmVyZmxvdzpoaWRkZW4haW1wb3J0YW50fS50b3BpYy1maWx0ZXItc2xpZGVyIC5zd2lwZXItYnV0dG9uLW5leHR7dG9wOjAhaW1wb3J0YW50O3RyYW5zZm9ybTpub25lfS50b3BpYy1maWx0ZXItc2xpZGVyIC5zd2lwZXItYnV0dG9uLXByZXZ7bGVmdDowIWltcG9ydGFudDt0b3A6MCFpbXBvcnRhbnQ7dHJhbnNmb3JtOm5vbmV9LnN3aXBlLWV4cGVydHN7b3ZlcmZsb3c6aGlkZGVuIWltcG9ydGFudH0uc3dpcGUtZXhwZXJ0cyAuc3dpcGVyLWJ1dHRvbi1uZXh0e3RvcDowIWltcG9ydGFudDt0cmFuc2Zvcm06bm9uZX0uc3dpcGUtZXhwZXJ0cyAuc3dpcGVyLWJ1dHRvbi1wcmV2e2xlZnQ6MCFpbXBvcnRhbnQ7dG9wOjAhaW1wb3J0YW50O3RyYW5zZm9ybTpub25lfS50eXBlLWZpbHRlci1zbGlkZXJ7b3ZlcmZsb3c6aGlkZGVuIWltcG9ydGFudH0udHlwZS1maWx0ZXItc2xpZGVyIC5zd2lwZXItYnV0dG9uLW5leHR7dG9wOjAhaW1wb3J0YW50O3RyYW5zZm9ybTpub25lfS50eXBlLWZpbHRlci1zbGlkZXIgLnN3aXBlci1idXR0b24tcHJldntsZWZ0OjAhaW1wb3J0YW50O3RvcDowIWltcG9ydGFudDt0cmFuc2Zvcm06bm9uZX0ubGFuZ3VhZ2UtZmlsdGVyLXNsaWRlcntvdmVyZmxvdzpoaWRkZW4haW
11wb3J0YW50fS5sYW5ndWFnZS1maWx0ZXItc2xpZGVyIC5zd2lwZXItYnV0dG9uLW5leHR7dG9wOjAhaW1wb3J0YW50O3RyYW5zZm9ybTpub25lfS5sYW5ndWFnZS1maWx0ZXItc2xpZGVyIC5zd2lwZXItYnV0dG9uLXByZXZ7bGVmdDowIWltcG9ydGFudDt0b3A6MCFpbXBvcnRhbnQ7dHJhbnNmb3JtOm5vbmV9LnN3aXBlci1idXR0b24tcHJldntsZWZ0Oi0yNXB4IWltcG9ydGFudDt0cmFuc2Zvcm06dHJhbnNsYXRlKDAsLTUwJSl9LnN3aXBlci1idXR0b24tcHJldi5zd2lwZXItYnV0dG9uLWRpc2FibGVke29wYWNpdHk6MCFpbXBvcnRhbnR9LmFnZS1maWx0ZXItc2xpZGVyIC5zd2lwZXItYnV0dG9uLC5sYW5ndWFnZS1maWx0ZXItc2xpZGVyIC5zd2lwZXItYnV0dG9uLC5zd2lwZS1leHBlcnRzIC5zd2lwZXItYnV0dG9uLC50b3BpYy1maWx0ZXItc2xpZGVyIC5zd2lwZXItYnV0dG9uLC50eXBlLWZpbHRlci1zbGlkZXIgLnN3aXBlci1idXR0b257YmFja2dyb3VuZDojMDA5NGNjIWltcG9ydGFudDt3aWR0aDo1MHB4IWltcG9ydGFudDtoZWlnaHQ6NTBweCFpbXBvcnRhbnQ7Zm9udC1mYW1pbHk6Rm9udEF3ZXNvbWUhaW1wb3J0YW50O2ZvbnQtc2l6ZTowIWltcG9ydGFudDtsaW5lLWhlaWdodDoxIWltcG9ydGFudDtjb2xvcjojZmZmIWltcG9ydGFudDt0b3A6MCFpbXBvcnRhbnQ7cmlnaHQ6MCFpbXBvcnRhbnR9QG1lZGlhKG1heC13aWR0aDo4MjBweCl7LnN3aXBlci1idXR0b257ZGlzcGxheTpub25lIWltcG9ydGFudH19QG1lZGlhKG1heC13aWR0aDo2NDBweCl7LnN3aXBlcnttYXJnaW4tYm90dG9tOjAhaW1wb3J0YW50fS5zd2lwZXItc2xpZGUuYWdle3dpZHRoOjE0M3B4IWltcG9ydGFudDttaW4td2lkdGg6MTQzcHghaW1wb3J0YW50O21heC13aWR0aDoyNDNweCFpbXBvcnRhbnR9LnN3aXBlci1zbGlkZS50b3BpY3t3aWR0aDoxNTBweCFpbXBvcnRhbnQ7bWluLXdpZHRoOjE1MHB4IWltcG9ydGFudDttYXgtd2lkdGg6MjQzcHghaW1wb3J0YW50fX1AbWVkaWEobWF4LXdpZHRoOjQwNXB4KXsuc3dpcGVyLXNsaWRlLnNtYWxse3dpZHRoOjE0N3B4IWltcG9ydGFudH0uc3dpcGVyLXNsaWRlLnRlYWNoZXItY2FyZHt3aWR0aDoxNTFweCFpbXBvcnRhbnR9fWA7XG4gICAgIiwiaW1wb3J0IHsgTGl0RWxlbWVudCwgaHRtbCwgY3NzIH0gZnJvbSBcImxpdC1lbGVtZW50XCI7XHJcblxyXG4vLyBpbXBvcnQgU3dpcGVyLCB7IE5hdmlnYXRpb24sIFBhZ2luYXRpb24sIE1hbmlwdWxhdGlvbiB9IGZyb20gJ3N3aXBlcic7XHJcbmltcG9ydCBTd2lwZXIgZnJvbSAnc3dpcGVyJztcclxuaW1wb3J0IHsgTmF2aWdhdGlvbiwgUGFnaW5hdGlvbiwgTWFuaXB1bGF0aW9uIH0gZnJvbSAnc3dpcGVyL21vZHVsZXMnO1xyXG5cclxuaW1wb3J0IHsgc3dpcGVyX2NzcyB9IGZyb20gJy4uLy4uL2Fzc2V0cy9jc3Mvc3dpcGVyX2NzcydcclxuaW1wb3J0IHN3aXBlcl9pbnRlcm5hbF9jc3MgZnJvbSAnLi9zd2lwZXIuc2Nzcyc7XHJcbmltcG9ydCB7IGV2ZW50Vmlld0NsYXNzLGV2ZW50U3BlY2lmaWNDbGFzc2VzQ2Fyb3VzZWxQYWdpbmF0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbHMvYW5hbHl0aWNzJ1xyXG5cclxuXHJcbmltcG9ydCBDYXJkU3R5bGVzIGZyb20gJy4uL2NhcmQvY2FyZC5zY3NzJztcclxuaW1wb3J0IENhcmRIZWFkZXJTdHlsZXMgZnJvbSAnLi4vY2FyZC1oZWFkZXIvY2FyZC1oZWFkZXIuc2Nzcyc7XHJcbmltcG9ydCBidXR0b25TdHlsZSBmcm9tICcuLi9idXR0b24vYnV0dG9uLnNjc3MnO1xyXG5pbXBvcnQgaW1hZ2VTdHlsZSBmcm9tICcuLi9pbWFnZS9pbWFnZS5zY3NzJztcclxuaW1wb3J0IGFuY2hvclN0eWxlIGZyb20gJy4uL2FuY2hvci9hbmNob3Iuc2Nzcyc7XHJcbmltcG9ydCBEaXNjb3VudExhYmVsU3R5bGUgZnJvbSAnLi4vZGlzY291bnQtbGFiZWwvZGlzY291bnQtbGFiZWwuc2Nzcyc7XHJcbmltcG9ydCBDYXJkU3ViSGVhZGVyU3R5bGVzIGZyb20gJy4uL2NhcmQtc3ViLWhlYWRlci9jYXJkLXN1Yi1oZWFkZXIuc2Nzcyc7XHJcbmltcG9ydCBwcm9ncmVzc0JhclN0eWxlcyBmcm9tICcuLi9wcm9ncmVzcy1iYXIvcHJvZ3Jlc3MtYmFyLnNjc3MnO1xyXG5pbXBvcnQgQ2FyZFNjaGVkdWxlSGVhZGVyU3R5bGVzIGZyb20gJy4uL2NhcmQtc2NoZWR1bGUtaGVhZGVyL2NhcmQtc2NoZWR1bGUtaGVhZGVyLnNjc3MnO1xyXG5pbXBvcnQgQ2FyZEJvZHlTdHlsZXMgZnJvbSAnLi4vY2FyZC1ib2R5L2NhcmQtYm9keS5zY3NzJztcclxuaW1wb3J0IGhlYWRpbmdTdHlsZXMgZnJvbSAnLi4vaGVhZGluZ3MvaGVhZGluZ3Muc2Nzcyc7XHJcbmltcG9ydCBzcGFuU3R5bGUgZnJvbSAnLi4vc3Bhbi9zcGFuLnNjc3MnO1xyXG5pbXBvcnQgcmF0aW5nU3R5bGVzIGZyb20gJy4uL3JhdGluZy9yYXRpbmcuc2Nzcyc7XHJcbmltcG9ydCBDYXJkRm9vdGVyU3R5bGVzIGZyb20gJy4uL2NhcmQtZm9vdGVyL2NhcmQtZm9vdGVyLnNjc3MnO1xyXG5pbXBvcnQgQ2FyZFN1YnNjcmliZUZvb3RlclN0eWxlcyBmcm9tICcuLi9jYXJkLXN1YnNjcmliZS1mb290ZXIvY2FyZC1zdWJzY3JpYmUtZm9vdGVyLnNjc3MnO1xyXG5cclxuaW1wb3J0IGIyYlN0eWxlIGZyb20gJy4uL2IyYi9iMmIuc2Nzcyc7XHJcblxyXG5jbGFzcyBCU1N3aXBlciBleHRlbmRzIExpdEVsZW1lbnQge1xyXG4gIC8vIHN0YXRpYyBnZXQgc3R5bGVzKCkge1xyXG4gIC8vICAgcmV0dXJuIFtzd2lwZXJfaW50ZXJuYWxfY3NzLHN3aXBlcl9jc3NdO1xyXG4gIC8vIH1cclxuXHJcbiAgc3RhdGljIGdldCBzdHlsZXMoKSB7XHJcbiAgICByZXR1cm4gW3N3aXBlcl9pbnRlcm5hbF9jc3Msc3dpcGVyX2NzcywgQ2FyZFN0eWxlcywgQ2FyZEhlYWRlclN0eWxlcywgYnV0dG9uU3R5bGUsIGltYWdlU3R5bGUsIFxyXG4gICAgYW5jaG9yU3R5bGUsIERpc2NvdW50TGFiZWxTdHlsZSwgQ2FyZFN1YkhlYWRlclN0eWxlcywgcHJvZ3Jlc3NCYXJTdHlsZXMsXHJcbiAgICBDYXJkU2NoZWR1bGVIZWFkZXJTdHlsZXMsIENhcmRCb2R5U3R5bGVzLCBoZWFkaW5nU3R5bGVzLCBzcGFuU3R5bGUsIFxyXG4gICAgcmF0aW5nU3R5bGVzLCBDYXJkRm9vdGVyU3R5bGVzLCBDYXJkU3Vic2NyaWJlRm9vdGVyU3R5bGVzLCBiMmJTdHlsZV07XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBzbGlkZXJDbGFzczogeyB0eXBlOiBTdHJpbmcgfSxcclxuICAgICAgLy8gc2xpZGVyQ291bnQ6IHsgdHlwZTogTnVtYmVyIH0sXHJcbiAgICAgIHNsaWRlckNhcmRFbGVtOiB7IHR5cGU6IEFycmF
15IH0sXHJcbiAgICAgIHNsaWRlckFkZENhcmRFbGVtOiB7IHR5cGU6IEFycmF5IH0sXHJcbiAgICAgIGRhdGFDb3VudDoge3R5cGU6IE51bWJlcn0sXHJcbiAgICAgIHRvdGFsQ291bnQ6IHt0eXBlOiBOdW1iZXJ9LFxyXG4gICAgICBlbmFibGVTbGlkZXIgOiB7IHR5cGUgOiBCb29sZWFufSxcclxuICAgICAgY2FyZFR5cGUgOiB7dHlwZSA6IFN0cmluZ30sXHJcbiAgICAgIGFjdGl2ZVBhZ2VDb3VudDp7dHlwZTpOdW1iZXJ9LFxyXG4gICAgICBzbGlkZXJUeXBlOiB7dHlwZSA6IFN0cmluZ31cclxuICAgICAgLy8gZGF0YUNvdW50OiB7dHlwZTogTnVtYmVyfVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKCl7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgdGhpcy5lbmFibGVTbGlkZXIgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcmVuZGVyKCkge1xyXG4gICAgcmV0dXJuIGh0bWxgXHJcbiAgICAgIDwhLS0gU2xpZGVyIG1haW4gY29udGFpbmVyIC0tPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic3dpcGVyICR7dGhpcy5zbGlkZXJDbGFzc31cIj5cclxuICAgICAgICA8IS0tIEFkZGl0aW9uYWwgcmVxdWlyZWQgd3JhcHBlciAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic3dpcGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgIDwhLS0gU2xpZGVzIC0tPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwhLS0gSWYgd2UgbmVlZCBwYWdpbmF0aW9uIC0tPlxyXG4gICAgICAgIDwhLS08ZGl2IGNsYXNzPVwic3dpcGVyLXBhZ2luYXRpb25cIj48L2Rpdj4tLT5cclxuXHJcbiAgICAgICAgPCEtLSBJZiB3ZSBuZWVkIG5hdmlnYXRpb24gYnV0dG9ucyAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic3dpcGVyLWJ1dHRvbi1wcmV2IHN3aXBlci1idXR0b25cIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic3dpcGVyLWJ1dHRvbi1uZXh0IHN3aXBlci1idXR0b25cIj48L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICBgO1xyXG4gIH1cclxuXHJcbiAgZmlyc3RVcGRhdGVkKF9jaGFuZ2VkUHJvcGVydGllcykge1xyXG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKF9jaGFuZ2VkUHJvcGVydGllcyk7XHJcbiAgICB0aGlzLnNldFN3aXBlckNvbmZpZygpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcykge1xyXG4gIC8vICBjb25zb2xlLmxvZyhcIjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OlVQREFURUQgSEVSRTo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6XCIsY2hhbmdlZFByb3BlcnRpZXMpO1xyXG5cclxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ3NsaWRlckFkZENhcmRFbGVtJykgJiYgdGhpcy5zd2lwZXJPYmopIHtcclxuICAgICAgLy8gdG8gcmVtb3ZlIGFsbCBzbGlkZXMgLSBEbyB0aGlzIHdoZW4gYXBwbHlpbmcgZmlsdGVycyBvciBzZWFyY2hpbmdcclxuICAgICAgLy8gdGhpcy5zd2lwZXJPYmoucmVtb3ZlQWxsU2xpZGVzKClcclxuICAgICAgaWYodGhpcy5hY3RpdmVQYWdlQ291bnQgPiAwICYmIHRoaXMudG90YWxDb3VudCE9IDk5OTk5OTkgKXtcclxuICAgICAgICB0aGlzLnN3aXBlck9iai5hcHBlbmRTbGlkZSh0aGlzLnNsaWRlckFkZENhcmRFbGVtKVxyXG4gICAgICB9ZWxzZSB7XHJcbiAgICAgLy8gICBjb25zb2xlLmxvZyhcIj09PT09PT09PUlzIGl0IGNvbWluZyBoZWVycnJycnJycnJyciBpbiBzd2lwZXJycnJycnJycnJycnJycnJycnJycj09PT09PT09PT09XCIpXHJcbiAgICAgICAgdGhpcy5zd2lwZXJPYmoucmVtb3ZlQWxsU2xpZGVzKCk7XHJcbiAgICAgICAgdGhpcy5zd2lwZXJPYmouYXBwZW5kU2xpZGUodGhpcy5zbGlkZXJBZGRDYXJkRWxlbSlcclxuICAgICAgfVxyXG4gICAgICAvLyBpZiAodGhpcy5zd2lwZXJPYmopIHtcclxuICAgICAgLy8gICB0aGlzLnN3aXBlck9iai5hcHBlbmRTbGlkZSh0aGlzLnNsaWRlckFkZENhcmRFbGVtKVxyXG4gICAgICAvLyB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBzaG91bGRVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpIHtcclxuICAvLyAgIC8vY29uc29sZS5sb2coXCJJbiBzaG91bGQgdXBkYXRlOjo6Ojo6Ojo6Ojo6Ojo6Ojo6OjpcIiwgdGhpcy5zbGlkZXJBZGRDYXJkRWxlbS5sZW5ndGgsIFwiQ2FyZCBsZW5ndGhcIix0aGlzLnNsaWRlckNhcmRFbGVtLmxlbmd0aCk7XHJcbiAgLy8gICByZXR1cm4gY2hhbmdlZFByb3BlcnRpZXMuaGFzKFwic2xpZGVyQWRkQ2FyZEVsZW1cIik7XHJcbiAgLy8gfVxyXG5cclxuICBzZXRTd2lwZXJDb25maWcoKSB7XHJcbiAgICBjb25zdCBzbGlkZSA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcuc3dpcGVyJyk7XHJcbiAgICBjb25zdCBwcmV2ID0gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5zd2lwZXItYnV0dG9uLXByZXYnKTtcclxuICAgIGNvbnN0IG5leHQgPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnN3aXBlci1idXR0b24tbmV4dCcpO1xyXG4gICAgdmFyIHRoYXQgPSB0aGlzO1xyXG5cclxuICAgIHRoaXMuc3dpcGVyT2JqID0gbmV3IFN3aXBlcihzbGlkZSxcclxuICAgICAge1xyXG4gICAgICAgIC8vIHBhc3MgbW9kdWxlcyBoZXJlXHJcbiAgICAgICAgbW9kdWxlczogW05hdmlnYXRpb24sIFBhZ2luYXRpb24sIE1hbmlwdWxhdGlvbl0sXHJcbiAgICAgICAgYXV0b0hlaWdodDogdHJ1ZSxcclxuICAgICAgICAvLyBzbGlkZXNQZXJWaWV3OiBcImF1dG9cIixcclxuICAgICAgICAvLyBzbGlkZXNQZXJHcm91cDogMSxcclxuICAgICAgICBzbGlkZXNQZXJWaWV3OidhdXRvJyxcclxuICAgICAgICBzbGlkZXNQZXJHcm91cDogIHRoYXQuX3NsaWRlVmlld0NvdW50KCksXHJcbiAgICAgICAgc2xpZGVzUGVyR3JvdXBBdXRvOiB0cnVlLFxyXG4gICAgICAgIHNwYWNlQmV0d2VlbjogMjAsXHJcbiAgICAgICAgYWxsb3dUb3VjaE1vdmU6IHRydWUsXHJcbiAgICAgICAgbmF2aWdhdGlvbjoge1xyXG4gICAgICAgICAgcHJldkVsOiBwcmV2LFxyXG4gICAgICAgICAgbmV4dEVsOiBuZXh0LFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgYnJlYWtwb2ludHM6IHtcclxuICAgICAgICAgIC8vIHdoZW4gd2luZG93IHdpZHRoIGlzID49IDMyMHB4XHJcbiAgICAgICAgICA5OTI6IHtcclxuICAgICAgICAgICAgYWxsb3dUb3VjaE1vdmU6IGZhbHNlXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICApO
11xyXG5cclxuICAgIHRoaXMuc3dpcGVyT2JqLm9uKCdzbGlkZU5leHRUcmFuc2l0aW9uU3RhcnQnLCBmdW5jdGlvbihlKSB7XHJcbiAgICAgIC8vIHN0b3AgcGFnaW5hdGlvbiBiYXNlZCBvbiB0aGF0LnRvdGFsQ291bnQgYW5kIHRoYXQuc2xpZGVyQ2FyZEVsZW0ubGVuZ3RoXHJcbiAgICAvLyAgY29uc29sZS5sb2codGhhdC5zbGlkZXJUeXBlLFwiPT09PT09PT09PT09Q3VycmVudCB0aW1lc3RhbXA9PT09PT09PT09XCIsbmV3IERhdGUoKSwnKioqIG15U3dpcGVyLnJlYWxJbmRleCcsIGUucmVhbEluZGV4LCBlLnJ0bCwgZS5zbGlkZXMubGVuZ3RoLCB0aGF0LnNsaWRlckNhcmRFbGVtLmxlbmd0aCk7XHJcbiAgIC8vZGlzYmFsZWQgZXZlbnRWaWV3Q2xhc3MoKSBhcyBwZXIgcmVxdWVzdCBmcm9tIEthdGlhIE1hciAyNFxyXG4gICAgICAvLyAgZXZlbnRWaWV3Q2xhc3MoKTtcclxuXHJcbiAgICAgIGV2ZW50U3BlY2lmaWNDbGFzc2VzQ2Fyb3VzZWxQYWdpbmF0aW9uKHRoYXQuc2xpZGVyVHlwZSk7XHJcbiAgICAgIC8vIERpc3BhdGNoIGV2ZW50IGhlcmUgYW5kIG1ha2UgYXBpIGNhbGxcclxuXHJcbiAgICAgIGlmKHRoYXQudG90YWxDb3VudCE9IDk5OTk5OTkgJiYgdGhhdC50b3RhbENvdW50ID4gdGhhdC5kYXRhQ291bnQgJiYgdGhhdC5kYXRhQ291bnQ+dGhhdC5hY3RpdmVQYWdlQ291bnQpe1xyXG4gICAgICAgIHRoYXQuX25leHRFdmVudFRyaWdnZXIoKTtcclxuICAgICAgfVxyXG4gICAgIFxyXG5cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuc3dpcGVyT2JqLm9uKCdzbGlkZVByZXZUcmFuc2l0aW9uRW5kJywgZnVuY3Rpb24oZSkge1xyXG4gICAgICAvL2Rpc2JhbGVkIGV2ZW50Vmlld0NsYXNzKCkgYXMgcGVyIHJlcXVlc3QgZnJvbSBLYXRpYSBNYXIgMjRcclxuICAgICAvLyBldmVudFZpZXdDbGFzcygpO1xyXG4gICAgICBldmVudFNwZWNpZmljQ2xhc3Nlc0Nhcm91c2VsUGFnaW5hdGlvbih0aGF0LnNsaWRlclR5cGUpO1xyXG4gICAgfSk7XHJcblxyXG5cclxuICAgLy8gY29uc29sZS5sb2coXCJzd2lwZXIgY29uZmlnIHNldCBoZXJlXCIsIHNsaWRlLCBwcmV2LCBuZXh0LCB0aGlzLnN3aXBlck9iailcclxuXHJcbiAgICAvLyBpZih0aGlzLmVuYWJsZVNsaWRlciA9PSBmYWxzZSl7XHJcbiAgICAvLyAgIHRoaXMuc3dpcGVyT2JqLmRlc3Ryb3koKVxyXG4gICAgLy8gfVxyXG4gIH1cclxuXHJcbiAgX3NsaWRlVmlld0NvdW50KCl7XHJcbiAgICBsZXQgd2luZG93V2lkdGggPSBpbm5lcldpZHRoO1xyXG4gICAgbGV0IGNhcmRfdHlwZT0gdGhpcy5jYXJkVHlwZTtcclxuICAgIGxldCBzbGlkZXJDb3VudCA9IDE7XHJcbiAgICBpZihjYXJkX3R5cGUgPT0gJ2ZpbHRlcnMnKSB7XHJcbiAgICAgIHNsaWRlckNvdW50ID0gMTtcclxuICAgIH1lbHNlIHtcclxuICAgICAgaWYod2luZG93V2lkdGggPCA0MTApIHtcclxuICAgICAgICBzbGlkZXJDb3VudCA9IChjYXJkX3R5cGUgPT0gJ3NtYWxsJykgPyAyIDogMVxyXG4gICAgICB9ZWxzZSBpZih3aW5kb3dXaWR0aCA+IDQxMSAmJiB3aW5kb3dXaWR0aCA8IDQ4MSkge1xyXG4gICAgICAgIHNsaWRlckNvdW50ID0gKGNhcmRfdHlwZSA9PSAnc21hbGwnKSA/IDIgOiAxXHJcbiAgICAgIH1lbHNlIGlmKHdpbmRvd1dpZHRoID4gNDgxICYmIHdpbmRvd1dpZHRoIDwgNzY3KSB7XHJcbiAgICAgICAgc2xpZGVyQ291bnQgPSAoY2FyZF90eXBlID09ICdzbWFsbCcpID8gNCA6IDJcclxuICAgICAgfWVsc2UgaWYod2luZG93V2lkdGggPiA3NjcgJiYgd2luZG93V2lkdGggPCA4MDApe1xyXG4gICAgICAgIHNsaWRlckNvdW50ID0gKGNhcmRfdHlwZSA9PSAnc21hbGwnKSA/IDQgOiAyXHJcbiAgICAgIH1lbHNlIGlmKHdpbmRvd1dpZHRoID4gODAwICYmIHdpbmRvd1dpZHRoIDwgMTAyMyl7XHJcbiAgICAgICAgc2xpZGVyQ291bnQgPSAoY2FyZF90eXBlID09ICdzbWFsbCcpID8gNCA6IDNcclxuICAgICAgfWVsc2UgaWYod2luZG93V2lkdGggPiAxMDIzICYmIHdpbmRvd1dpZHRoIDwgMTA4MCl7XHJcbiAgICAgICAgc2xpZGVyQ291bnQgPSAoY2FyZF90eXBlID09ICdzbWFsbCcpID8gNSA6IDNcclxuICAgICAgfWVsc2UgaWYod2luZG93V2lkdGggPiAxMDgwICYmIHdpbmRvd1dpZHRoIDwgMTI3OSl7XHJcbiAgICAgICAgc2xpZGVyQ291bnQgPSAoY2FyZF90eXBlID09ICdzbWFsbCcpID8gNSA6IDNcclxuICAgICAgfWVsc2UgaWYod2luZG93V2lkdGggPiAxMjc5ICYmIHdpbmRvd1dpZHRoIDwgMTMzMCl7XHJcbiAgICAgICAgc2xpZGVyQ291bnQgPSAoY2FyZF90eXBlID09ICdzbWFsbCcpID8gNiA6IDRcclxuICAgICAgfWVsc2UgaWYod2luZG93V2lkdGggPiAxMzMwICYmIHdpbmRvd1dpZHRoIDwgMTUwMCl7XHJcbiAgICAgICAgc2xpZGVyQ291bnQgPSAoY2FyZF90eXBlID09ICdzbWFsbCcpID8gNyA6IDRcclxuICAgICAgfWVsc2UgaWYod2luZG93V2lkdGggPiAxNTAwICYmIHdpbmRvd1dpZHRoIDwgMTgwMCl7XHJcbiAgICAgICAgc2xpZGVyQ291bnQgPSAoY2FyZF90eXBlID09ICdzbWFsbCcpID8gOCA6IDVcclxuICAgICAgfWVsc2UgaWYod2luZG93V2lkdGggPiAxODAwICYmIHdpbmRvd1dpZHRoIDwgMTkwMCl7XHJcbiAgICAgICAgc2xpZGVyQ291bnQgPSAoY2FyZF90eXBlID09ICdzbWFsbCcpID8gOSA6IDhcclxuICAgICAgfWVsc2UgaWYod2luZG93V2lkdGggPiAxOTAwICYmIHdpbmRvd1dpZHRoIDwgMjIwMCl7XHJcbiAgICAgICAgc2xpZGVyQ291bnQgPSAoY2FyZF90eXBlID09ICdzbWFsbCcpID8gMTA6IDZcclxuICAgICAgfWVsc2UgaWYod2luZG93V2lkdGggPiAyMjAwKXtcclxuICAgICAgICBzbGlkZXJDb3VudCA9IChjYXJkX3R5cGUgPT0gJ3NtYWxsJykgPyAxMSA6IDdcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHNsaWRlckNvdW50O1xyXG4gIH1cclxuXHJcbiAgX25leHRFdmVudFRyaWdnZXIoKXtcclxuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChcclxuICAgICAgbmV3IEN1c3RvbUV2ZW50KFwic2xpZGVyLXBhZ2luYXRlXCIsIHtcclxuICAgICAgICBkZXRhaWw6IHsgdHlwZTogdGhpcy5zbGlkZXJUeXBlLCBhY3Rpb246IFwiaW5jcmVtZW50XCIgfSxcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxufVxyXG5cclxuY3VzdG9tRWxlbWVudHMuZGVmaW5lKFwiYnMtc3dpcGVyXCIsIEJTU3dpcGVyKTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///8981\n\n}")},9086:(__unused_webpack_module,__unused_webpack___webpack_exports__,__webpack_require__)=>{eval('{/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6161);\n/* harmony import */ var pwa_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4753);\n/* harmony import */ var _redux_store_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5548);\n/* harmony import */ var _swiper_swiper_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(8981);\n/* harmony import */ var _assets_images_quotes_png__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(2542);\n\r\n\r\n\r\n\r\n\r\n\r\nclass ReviewsSlider extends (0,pwa_helpers__WEBPACK_IMPORTED_MODULE_1__/* .connect */ .N)(_redux_store_js__WEBPACK_IMPORTED_MODULE_2__/* .store */ .M)(lit__WEBPACK_IMPORTED_MODULE_0__/* .LitElement */ .WF) {\r\n static get properties() {\r\n return {\r\n reviews: { type: Array },\r\n autoplay: { type: Boolean },\r\n loop: { type: Boolean },\r\n };\r\n }\r\n\r\n constructor() {\r\n super();\r\n this.reviews = [\r\n {\r\n title: "Helpful",\r\n body: "So helpful for this premie mama. My
1son was born 31.5 weeks. When we went to physical therapy after hospital discharge, we only had to go about 4 times thanks to this app ⦠He caught up to his peers in about 7 months thanks to my persistence and the app.",\r\n author: "Melissa T",\r\n date: "March 31, 2024",\r\n },\r\n {\r\n title: "I love this app",\r\n body: "I love this app. It really helps with my childrenâs development and gave me ideas for learning activities to do with my kids at each age.",\r\n author: "Jamey H",\r\n date: "April 12, 2024",\r\n },\r\n {\r\n title: "Great development app",\r\n body: "I look forward to doing this every day with my babe! It gave us great activities to do throughout the day and the progress was wonderful. It made me feel like my baby was heading in the right direction.",\r\n author: "BonnFire",\r\n date: "February 01, 2024",\r\n },\r\n {\r\n title: "Love this app!",\r\n body: "I used it daily for both kids! One of them now has ASD â and honestly, this app let me see that he was behind developmentally before anything else.",\r\n author: "Kirkie007",\r\n date: "January 02, 2024",\r\n },\r\n {\r\n title: "Must have App!",\r\n body: "I absolutely recommend this app to any mom looking to reach new milestones and daily exercises with their baby. My son enjoys doing them daily.",\r\n author: "Brookenicoleox",\r\n date: "March 24, 2024",\r\n },\r\n {\r\n title: "So Helpful!",\r\n body: "Developmentally appropriate activities that are fun and easy to enact with no special equipment needed. A great way to foster healthy development physically, socially, and emotionally with your baby.",\r\n author: "Rachel B",\r\n date: "February 23, 2024",\r\n },\r\n {\r\n title: "Helpful!",\r\n body: "I really like that it tells me what kind of things will be going on within the month for my baby. I feel like the information for me and my baby is spot on.",\r\n author: "MSKmom",\r\n date: "April 25, 2024",\r\n },\r\n {\r\n title: "Love it",\r\n body: "I absolutely love doing activities with my kids ... It keeps everything new and exciting, and it helps me to feel like Iâm really spending quality time with them.",\r\n author: "Mary M",\r\n date: "February 20, 2024",\r\n },\r\n {\r\n title: "The best!",\r\n body: "Worth every penny! This has been essential in the development of our 15 month year old son since the day we brought him home. It has been primarily helpful due to the pandemic and him staying home with us.Thus allowing us to ensure he receives the necessary learning and growth needed.The activities are great and diverse",\r\n author: "DramatiQue Fa12",\r\n date: "January 01, 2024",\r\n },\r\n {\r\n title: "Fantastic!",\r\n body: "I have been using it with my 7 week old and 21 week old, and it has been extremely helpful! Great ideas to keep them busy during the day and making sure that they are where they need to be developmentally",\r\n author: "Katejoe2",\r\n date: "March 01, 2024",\r\n },\r\n {\r\n title: "Great app!",\r\n body: "My wife and I are new parents, and this app at times seems to read our minds. We have many concerns (as most parents do) with issues like how much screen time and what foods are appropriate ⦠This app has answered all our questions.",\r\n author: "currifa",\r\n date: "May 09, 2024",\r\n },\r\n ];\r\n\r\n this.autoplay = false; // let you toggle if your <bs-swiper> supports it\r\n this.loop = true;\r\n }\r\n\r\n // Simple utility to escape text for safe injection into slide HTML strings.\r\n _esc(str = "") {\r\n return String(str)\r\n .replace(/&/g, "&")\r\n .replace(/</g, "<")\r\n .replace(/>/g, ">")\r\n .replace(/"/g, """)\r\n .replace(/\'/g, "'");\r\n }\r\n\r\n firstUpdated() {\r\n const swiper = this.querySelector("bs-swiper");\r\n\r\n const equalize = () => {\r\n const root = swiper?.shadowRoot;\r\n if (!root) return;\r\n const cards = [...root.querySelectorAll(".swiper-slide .review-card")];\r\n if (!cards.length) return;\r\n\r\n // Reset, measure, equalize\r\n cards.forEach((c) => (c.style.height = "auto"));\r\n const max = Math.max(...cards.map((c) => c.offsetHeight));\r\n cards.forEach((c) => (c.style.height = `${max}px`));\r\n };\r\n\r\n // run immediately and on resize\r\n equalize();\r\n queueMicrotask(equalize);\r\n window.addEventListener("resize", equalize);\r\n\r\n // if swiper dispatches slide or ready events, re-run\r\n swiper.addEventListener("slidechange", equalize);\r\n swiper.addEventListener("swiper-ready", equalize);\r\n }\r\n\r\n render() {\r\n try {\r\n if (!this.reviews?.length) return (0,lit__WEBPACK_IMPORTED_MODULE_0__/* .html */ .qy)``;\r\n\r\n // Build slides array of HTML strings â exactly how age-filter feeds <bs-swiper>\r\n const slides = this.reviews.map((r) => {\r\n const title = this._esc(r.title);\r\n const body = this._esc(r.body);\r\n const author = this._esc(r.author);\r\n const date = this._esc(r.date);\r\n\r\n return `\r\n <div class="swiper-slide overview-review-slider">\r\n <div class="card review-card">\r\n <div class="review-quote"><img src="${_assets_images_quotes_png__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .A}" alt="Reviews"/></div>\r\n <h3 class="review-title">${title}</h3>\r\n <p class="review-body">${body}</p>\r\n <div class="review-meta">
1\r\n <span class="review-author">${author}</span>\r\n <span class="review-dot">â¢</span>\r\n <span class="review-date">${date}</span>\r\n </div>\r\n </div>\r\n </div>`;\r\n });\r\n\r\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__/* .html */ .qy)`\r\n <bs-swiper\r\n class="reviews-slider"\r\n .sliderCardElem=${slides}\r\n .sliderAddCardElem=${slides}\r\n sliderClass="reviews-swiper"\r\n dataCount=${slides.length}\r\n cardType="reviews"\r\n ></bs-swiper>\r\n `;\r\n } catch (e) {\r\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__/* .html */ .qy)``;\r\n }\r\n }\r\n\r\n createRenderRoot() {\r\n return this;\r\n }\r\n}\r\n\r\ncustomElements.define("reviews-slider", ReviewsSlider);\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiOTA4Ni5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQmFieVNwYXJrcy8uL3NyYy9jb21wb25lbnRzL3Jldmlld3MvcmV2aWV3cy5qcz9kYmYxIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExpdEVsZW1lbnQsIGh0bWwgfSBmcm9tIFwibGl0XCI7XHJcbmltcG9ydCB7IGNvbm5lY3QgfSBmcm9tIFwicHdhLWhlbHBlcnNcIjtcclxuaW1wb3J0IHsgc3RvcmUgfSBmcm9tIFwiLi4vLi4vcmVkdXgvc3RvcmUuanNcIjtcclxuaW1wb3J0IFwiLi4vc3dpcGVyL3N3aXBlci5qc1wiO1xyXG5pbXBvcnQgcmV2aWV3UXVvdGVzIGZyb20gXCIuLi8uLi9hc3NldHMvaW1hZ2VzL3F1b3Rlcy5wbmdcIjtcclxuXHJcbmNsYXNzIFJldmlld3NTbGlkZXIgZXh0ZW5kcyBjb25uZWN0KHN0b3JlKShMaXRFbGVtZW50KSB7XHJcbiAgc3RhdGljIGdldCBwcm9wZXJ0aWVzKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgcmV2aWV3czogeyB0eXBlOiBBcnJheSB9LFxyXG4gICAgICBhdXRvcGxheTogeyB0eXBlOiBCb29sZWFuIH0sXHJcbiAgICAgIGxvb3A6IHsgdHlwZTogQm9vbGVhbiB9LFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKTtcclxuICAgIHRoaXMucmV2aWV3cyA9IFtcclxuICAgICAge1xyXG4gICAgICAgIHRpdGxlOiBcIkhlbHBmdWxcIixcclxuICAgICAgICBib2R5OiBcIlNvIGhlbHBmdWwgZm9yIHRoaXMgcHJlbWllIG1hbWEuIE15IHNvbiB3YXMgYm9ybiAzMS41IHdlZWtzLiBXaGVuIHdlIHdlbnQgdG8gcGh5c2ljYWwgdGhlcmFweSBhZnRlciBob3NwaXRhbCBkaXNjaGFyZ2UsIHdlIG9ubHkgaGFkIHRvIGdvIGFib3V0IDQgdGltZXMgdGhhbmtzIHRvIHRoaXMgYXBwIOKApiBIZSBjYXVnaHQgdXAgdG8gaGlzIHBlZXJzIGluIGFib3V0IDcgbW9udGhzIHRoYW5rcyB0byBteSBwZXJzaXN0ZW5jZSBhbmQgdGhlIGFwcC5cIixcclxuICAgICAgICBhdXRob3I6IFwiTWVsaXNzYSBUXCIsXHJcbiAgICAgICAgZGF0ZTogXCJNYXJjaCAzMSwgMjAyNFwiLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgdGl0bGU6IFwiSSBsb3ZlIHRoaXMgYXBwXCIsXHJcbiAgICAgICAgYm9keTogXCJJIGxvdmUgdGhpcyBhcHAuIEl0IHJlYWxseSBoZWxwcyB3aXRoIG15IGNoaWxkcmVu4oCZcyBkZXZlbG9wbWVudCBhbmQgZ2F2ZSBtZSBpZGVhcyBmb3IgbGVhcm5pbmcgYWN0aXZpdGllcyB0byBkbyB3aXRoIG15IGtpZHMgYXQgZWFjaCBhZ2UuXCIsXHJcbiAgICAgICAgYXV0aG9yOiBcIkphbWV5IEhcIixcclxuICAgICAgICBkYXRlOiBcIkFwcmlsIDEyLCAyMDI0XCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICB0aXRsZTogXCJHcmVhdCBkZXZlbG9wbWVudCBhcHBcIixcclxuICAgICAgICBib2R5OiBcIkkgbG9vayBmb3J3YXJkIHRvIGRvaW5nIHRoaXMgZXZlcnkgZGF5IHdpdGggbXkgYmFiZSEgSXQgZ2F2ZSB1cyBncmVhdCBhY3Rpdml0aWVzIHRvIGRvIHRocm91Z2hvdXQgdGhlIGRheSBhbmQgdGhlI
1HByb2dyZXNzIHdhcyB3b25kZXJmdWwuIEl0IG1hZGUgbWUgZmVlbCBsaWtlIG15IGJhYnkgd2FzIGhlYWRpbmcgaW4gdGhlIHJpZ2h0IGRpcmVjdGlvbi5cIixcclxuICAgICAgICBhdXRob3I6IFwiQm9ubkZpcmVcIixcclxuICAgICAgICBkYXRlOiBcIkZlYnJ1YXJ5IDAxLCAyMDI0XCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICB0aXRsZTogXCJMb3ZlIHRoaXMgYXBwIVwiLFxyXG4gICAgICAgIGJvZHk6IFwiSSB1c2VkIGl0IGRhaWx5IGZvciBib3RoIGtpZHMhIE9uZSBvZiB0aGVtIG5vdyBoYXMgQVNEIOKAkyBhbmQgaG9uZXN0bHksIHRoaXMgYXBwIGxldCBtZSBzZWUgdGhhdCBoZSB3YXMgYmVoaW5kIGRldmVsb3BtZW50YWxseSBiZWZvcmUgYW55dGhpbmcgZWxzZS5cIixcclxuICAgICAgICBhdXRob3I6IFwiS2lya2llMDA3XCIsXHJcbiAgICAgICAgZGF0ZTogXCJKYW51YXJ5IDAyLCAyMDI0XCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICB0aXRsZTogXCJNdXN0IGhhdmUgQXBwIVwiLFxyXG4gICAgICAgIGJvZHk6IFwiSSBhYnNvbHV0ZWx5IHJlY29tbWVuZCB0aGlzIGFwcCB0byBhbnkgbW9tIGxvb2tpbmcgdG8gcmVhY2ggbmV3IG1pbGVzdG9uZXMgYW5kIGRhaWx5IGV4ZXJjaXNlcyB3aXRoIHRoZWlyIGJhYnkuIE15IHNvbiBlbmpveXMgZG9pbmcgdGhlbSBkYWlseS5cIixcclxuICAgICAgICBhdXRob3I6IFwiQnJvb2tlbmljb2xlb3hcIixcclxuICAgICAgICBkYXRlOiBcIk1hcmNoIDI0LCAyMDI0XCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICB0aXRsZTogXCJTbyBIZWxwZnVsIVwiLFxyXG4gICAgICAgIGJvZHk6IFwiRGV2ZWxvcG1lbnRhbGx5IGFwcHJvcHJpYXRlIGFjdGl2aXRpZXMgdGhhdCBhcmUgZnVuIGFuZCBlYXN5IHRvIGVuYWN0IHdpdGggbm8gc3BlY2lhbCBlcXVpcG1lbnQgbmVlZGVkLiBBIGdyZWF0IHdheSB0byBmb3N0ZXIgaGVhbHRoeSBkZXZlbG9wbWVudCBwaHlzaWNhbGx5LCBzb2NpYWxseSwgYW5kIGVtb3Rpb25hbGx5IHdpdGggeW91ciBiYWJ5LlwiLFxyXG4gICAgICAgIGF1dGhvcjogXCJSYWNoZWwgQlwiLFxyXG4gICAgICAgIGRhdGU6IFwiRmVicnVhcnkgMjMsIDIwMjRcIixcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHRpdGxlOiBcIkhlbHBmdWwhXCIsXHJcbiAgICAgICAgYm9keTogXCJJIHJlYWxseSBsaWtlIHRoYXQgaXQgdGVsbHMgbWUgd2hhdCBraW5kIG9mIHRoaW5ncyB3aWxsIGJlIGdvaW5nIG9uIHdpdGhpbiB0aGUgbW9udGggZm9yIG15IGJhYnkuIEkgZmVlbCBsaWtlIHRoZSBpbmZvcm1hdGlvbiBmb3IgbWUgYW5kIG15IGJhYnkgaXMgc3BvdCBvbi5cIixcclxuICAgICAgICBhdXRob3I6IFwiTVNLbW9tXCIsXHJcbiAgICAgICAgZGF0ZTogXCJBcHJpbCAyNSwgMjAyNFwiLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgdGl0bGU6IFwiTG92ZSBpdFwiLFxyXG4gICAgICAgIGJvZHk6IFwiSSBhYnNvbHV0ZWx5IGxvdmUgZG9pbmcgYWN0aXZpdGllcyB3aXRoIG15IGtpZHMgLi4uIEl0IGtlZXBzIGV2ZXJ5dGhpbmcgbmV3IGFuZCBleGNpdGluZywgYW5kIGl0IGhlbHBzIG1lIHRvIGZlZWwgbGlrZSBJ4oCZbSByZWFsbHkgc3BlbmRpbmcgcXVhbGl0eSB0aW1lIHdpdGggdGhlbS5cIixcclxuICAgICAgICBhdXRob3I6IFwiTWFyeSBNXCIsXHJcbiAgICAgICAgZGF0ZTogXCJGZWJydWFyeSAyMCwgMjAyNFwiLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgdGl0bGU6IFwiVGhlIGJlc3QhXCIsXHJcbiAgICAgICAgYm9keTogXCJXb3J0aCBldmVyeSBwZW5ueSEgVGhpcyBoYXMgYmVlbiBlc3NlbnRpYWwgaW4gdGhlIGRldmVsb3BtZW50IG9mIG91ciAxNSBtb250aCB5ZWFyIG9sZCBzb24gc2luY2UgdGhlIGRheSB3ZSBicm91Z2h0IGhpbSBob21lLiBJdCBoYXMgYmVlbiBwcmltYXJpbHkgaGVscGZ1bCBkdWUgdG8gdGhlIHBhbmRlbWljIGFuZCBoaW0gc3RheWluZyBob21lIHdpdGggdXMuVGh1cyBhbGxvd2luZyB1cyB0byBlbnN1cmUgaGUgcmVjZWl2ZXMgdGhlIG5lY2Vzc2FyeSBsZWFybmluZyBhbmQgZ3Jvd3RoIG5lZWRlZC5UaGUgYWN0aXZpdGllcyBhcmUgZ3JlYXQgYW5kIGRpdmVyc2VcIixcclxuICAgICAgICBhdXRob3I6IFwiRHJhbWF0aVF1ZSBGYTEyXCIsXHJcbiAgICAgICAgZGF0ZTogXCJKYW51YXJ5IDAxLCAyMDI0XCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICB0aXRsZTogXCJGYW50YXN0aWMhXCIsXHJcbiAgICAgICAgYm9keTogXCJJIGhhdmUgYmVlbiB1c2luZyBpdCB3aXRoIG15IDcgd2VlayBvbGQgYW5kIDIxIHdlZWsgb2xkLCBhbmQgaXQgaGFzIGJlZW4gZXh0cmVtZWx5IGhlbHBmdWwhIEdyZWF0IGlkZWFzIHRvIGtlZXAgdGhlbSBidXN5IGR1cmluZyB0aGUgZGF5IGFuZCBtYWtpbmcgc3VyZSB0aGF0IHRoZXkgYXJlIHdoZXJlIHRoZXkgbmVlZCB0byBiZSBkZXZlbG9wbWVudGFsbHlcIixcclxuICAgICAgICBhdXRob3I6IFwiS2F0ZWpvZTJcIixcclxuICAgICAgICBkYXRlOiBcIk1hcmNoIDAxLCAyMDI0XCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICB0aXRsZTogXCJHcmVhdCBhcHAhXCIsXHJcbiAgICAgICAgYm9keTogXCJNeSB3aWZlIGFuZCBJIGFyZSBuZXcgcGFyZW50cywgYW5kIHR
1oaXMgYXBwIGF0IHRpbWVzIHNlZW1zIHRvIHJlYWQgb3VyIG1pbmRzLiBXZSBoYXZlIG1hbnkgY29uY2VybnMgKGFzIG1vc3QgcGFyZW50cyBkbykgd2l0aCBpc3N1ZXMgbGlrZSBob3cgbXVjaCBzY3JlZW4gdGltZSBhbmQgd2hhdCBmb29kcyBhcmUgYXBwcm9wcmlhdGUg4oCmIFRoaXMgYXBwIGhhcyBhbnN3ZXJlZCBhbGwgb3VyIHF1ZXN0aW9ucy5cIixcclxuICAgICAgICBhdXRob3I6IFwiY3VycmlmYVwiLFxyXG4gICAgICAgIGRhdGU6IFwiTWF5IDA5LCAyMDI0XCIsXHJcbiAgICAgIH0sXHJcbiAgICBdO1xyXG5cclxuICAgIHRoaXMuYXV0b3BsYXkgPSBmYWxzZTsgLy8gbGV0IHlvdSB0b2dnbGUgaWYgeW91ciA8YnMtc3dpcGVyPiBzdXBwb3J0cyBpdFxyXG4gICAgdGhpcy5sb29wID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8vIFNpbXBsZSB1dGlsaXR5IHRvIGVzY2FwZSB0ZXh0IGZvciBzYWZlIGluamVjdGlvbiBpbnRvIHNsaWRlIEhUTUwgc3RyaW5ncy5cclxuICBfZXNjKHN0ciA9IFwiXCIpIHtcclxuICAgIHJldHVybiBTdHJpbmcoc3RyKVxyXG4gICAgICAucmVwbGFjZSgvJi9nLCBcIiZhbXA7XCIpXHJcbiAgICAgIC5yZXBsYWNlKC88L2csIFwiJmx0O1wiKVxyXG4gICAgICAucmVwbGFjZSgvPi9nLCBcIiZndDtcIilcclxuICAgICAgLnJlcGxhY2UoL1wiL2csIFwiJnF1b3Q7XCIpXHJcbiAgICAgIC5yZXBsYWNlKC8nL2csIFwiJiMzOTtcIik7XHJcbiAgfVxyXG5cclxuICBmaXJzdFVwZGF0ZWQoKSB7XHJcbiAgICBjb25zdCBzd2lwZXIgPSB0aGlzLnF1ZXJ5U2VsZWN0b3IoXCJicy1zd2lwZXJcIik7XHJcblxyXG4gICAgY29uc3QgZXF1YWxpemUgPSAoKSA9PiB7XHJcbiAgICAgIGNvbnN0IHJvb3QgPSBzd2lwZXI/LnNoYWRvd1Jvb3Q7XHJcbiAgICAgIGlmICghcm9vdCkgcmV0dXJuO1xyXG4gICAgICBjb25zdCBjYXJkcyA9IFsuLi5yb290LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuc3dpcGVyLXNsaWRlIC5yZXZpZXctY2FyZFwiKV07XHJcbiAgICAgIGlmICghY2FyZHMubGVuZ3RoKSByZXR1cm47XHJcblxyXG4gICAgICAvLyBSZXNldCwgbWVhc3VyZSwgZXF1YWxpemVcclxuICAgICAgY2FyZHMuZm9yRWFjaCgoYykgPT4gKGMuc3R5bGUuaGVpZ2h0ID0gXCJhdXRvXCIpKTtcclxuICAgICAgY29uc3QgbWF4ID0gTWF0aC5tYXgoLi4uY2FyZHMubWFwKChjKSA9PiBjLm9mZnNldEhlaWdodCkpO1xyXG4gICAgICBjYXJkcy5mb3JFYWNoKChjKSA9PiAoYy5zdHlsZS5oZWlnaHQgPSBgJHttYXh9cHhgKSk7XHJcbiAgICB9O1xyXG5cclxuICAgIC8vIHJ1biBpbW1lZGlhdGVseSBhbmQgb24gcmVzaXplXHJcbiAgICBlcXVhbGl6ZSgpO1xyXG4gICAgcXVldWVNaWNyb3Rhc2soZXF1YWxpemUpO1xyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgZXF1YWxpemUpO1xyXG5cclxuICAgIC8vIGlmIHN3aXBlciBkaXNwYXRjaGVzIHNsaWRlIG9yIHJlYWR5IGV2ZW50cywgcmUtcnVuXHJcbiAgICBzd2lwZXIuYWRkRXZlbnRMaXN0ZW5lcihcInNsaWRlY2hhbmdlXCIsIGVxdWFsaXplKTtcclxuICAgIHN3aXBlci5hZGRFdmVudExpc3RlbmVyKFwic3dpcGVyLXJlYWR5XCIsIGVxdWFsaXplKTtcclxuICB9XHJcblxyXG4gIHJlbmRlcigpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGlmICghdGhpcy5yZXZpZXdzPy5sZW5ndGgpIHJldHVybiBodG1sYGA7XHJcblxyXG4gICAgICAvLyBCdWlsZCBzbGlkZXMgYXJyYXkgb2YgSFRNTCBzdHJpbmdzIOKAlCBleGFjdGx5IGhvdyBhZ2UtZmlsdGVyIGZlZWRzIDxicy1zd2lwZXI+XHJcbiAgICAgIGNvbnN0IHNsaWRlcyA9IHRoaXMucmV2aWV3cy5tYXAoKHIpID0+IHtcclxuICAgICAgICBjb25zdCB0aXRsZSA9IHRoaXMuX2VzYyhyLnRpdGxlKTtcclxuICAgICAgICBjb25zdCBib2R5ID0gdGhpcy5fZXNjKHIuYm9keSk7XHJcbiAgICAgICAgY29uc3QgYXV0aG9yID0gdGhpcy5fZXNjKHIuYXV0aG9yKTtcclxuICAgICAgICBjb25zdCBkYXRlID0gdGhpcy5fZXNjKHIuZGF0ZSk7XHJcblxyXG4gICAgICAgIHJldHVybiBgXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3dpcGVyLXNsaWRlIG92ZXJ2aWV3LXJldmlldy1zbGlkZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgcmV2aWV3LWNhcmRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmV2aWV3LXF1b3RlXCI+PGltZyBzcmM9XCIke3Jldmlld1F1b3Rlc31cIiBhbHQ9XCJSZXZpZXdzXCIvPjwvZGl2PlxyXG4gICAgICAgICAgICAgIDxoMyBjbGFzcz1cInJldmlldy10aXRsZVwiPiR7dGl0bGV9PC9oMz5cclxuICAgICAgICAgICAgICA8cCBjbGFzcz1cInJldmlldy1ib2R5XCI+JHtib2R5fTwvcD5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmV2aWV3LW1ldGFcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmV2aWV3LWF1dGhvclwiPiR7YXV0aG9yfTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmV2aWV3LWRvdFwiPuKAojwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmV2aWV3LWRhdGVcIj4ke2RhdGV9PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PmA7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgcmV0dXJuIGh0bWxgXHJcbiAgICAgICAgPGJzLXN3aXBlclxyXG4gICAgICAgICAgY2xhc3M9XCJyZXZpZXdzLXNsaWRlclwiXHJcbiAgICAgICAgICAuc2xpZGVyQ2FyZEVsZW09JHtzbGlkZXN9XHJcbiAgICAgICAgICAuc2xpZGVyQWRkQ2FyZEVsZW09JHtzbGlkZXN9XHJcbiAgICAgICAgICBzbGlkZXJDbGFzcz1cInJldmlld3Mtc3dpcGVyXCJcclxuICAgICAgICAgIGRhdGFDb3VudD0ke3NsaWRlcy5sZW5ndGh9XHJcbiAgICAgICAgICBjYXJkVHlwZT1cInJldmlld3NcIlxyXG4gICAgICAgID48L2JzLXN3aXBlcj5cclxuICAgICAgYDtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgcmV0dXJuIGh0bWxgYDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNyZWF0ZVJlbmRlclJvb3QoKSB7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcbn1cclxuXHJcbmN1c3RvbUVsZW1lbnRzLmRlZmluZShcInJldmlld3Mtc2xpZGVyXCIsIFJldmlld3NTbGlkZXIpO1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///9086\n\n}')}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.