(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-5ce9c408"],{"0019":function(t,e,s){"use strict";e["a"]={data(){return{pt_nextActive:!1}},methods:{async pt_paginatieWithoutTotal({params:t,signal:e}){const s={...t,perPage:t.perPage||50};this.pt_nextActive=!1;const{meta:i={rowTotal:-1},result:n=[]}=await this.download({params:s},e)||{};return n.length>+(t.perPage||50)&&(this.pt_nextActive=!0),i.rowTotal<0?{meta:{...i,pageTotal:Number(t.page)+1,df_rowTotal:-1,rowTotal:i.page*i.perPage+n.length},result:n}:{meta:i,result:n}}}}},"2ac3":function(t,e,s){"use strict";s("cb02")},"97f5":function(t,e,s){"use strict";var i=s("62ad"),n=s("a523"),a=s("132d"),c=s("8860"),o=s("da13"),r=s("5d23"),l=s("e449"),u=s("0fd9"),d=(s("fb6a"),function(){var t=this,e=t._self._c;return e(n["a"],{staticClass:"buttons-table pb-0 pt-0"},[t.$vuetify.breakpoint.smAndUp?[t.actions.length>3?e("div",[e(u["a"],[t._l(t.actions.slice(0,2),(function(s){return e("div",{key:s.id},[e(i["a"],{staticClass:"pr-0"},[e(a["a"],{class:{"buttons-table__hidden":!!s.visible&&!s.visible(t.item)},attrs:{small:""},on:{click:function(e){return s.event(t.item.id,t.item.idx)}}},[t._v(" "+t._s(s.icon)+" ")])],1)],1)})),e("div",{staticClass:"pt-3 pl-2"},[e(l["a"],{attrs:{bottom:"",left:"","close-on-click":"","close-on-content-click":"","offset-y":""},scopedSlots:t._u([{key:"activator",fn:function(s){var i=s.on,n=s.attrs;return[e(a["a"],t._g(t._b({attrs:{small:""}},"v-icon",n,!1),i),[t._v(" mdi-dots-vertical ")])]}}],null,!1,331352376)},t._l(t.actions.slice(2),(function(s){return e(c["a"],{key:s.id,staticClass:"pt-0 pb-0",attrs:{dense:""}},[!s.visible||s.visible(t.item)?e(o["a"],{on:{click:function(e){return s.event(t.item.id,t.item.idx)}}},[e(r["c"],[t._v(t._s(s.text))])],1):t._e()],1)})),1)],1)],2)],1):e("div",[e(u["a"],{staticClass:"flex-nowrap justify-end"},t._l(t.actions,(function(s){return e("div",{key:s.id},[e(i["a"],{staticClass:"pr-0 pl-2"},[e(a["a"],{class:{"buttons-table__hidden":!!s.visible&&!s.visible(t.item)},attrs:{small:""},on:{click:function(e){return s.event(t.item.id,t.item.idx)}}},[t._v(" "+t._s(s.icon)+" ")])],1)],1)})),0)],1)]:e(l["a"],{attrs:{bottom:"",left:"","close-on-click":"","close-on-content-click":"","offset-y":""},scopedSlots:t._u([{key:"activator",fn:function(s){var i=s.on,n=s.attrs;return[e(a["a"],t._g(t._b({attrs:{small:""}},"v-icon",n,!1),i),[t._v(" mdi-dots-vertical ")])]}}])},t._l(t.actions,(function(s){return e(c["a"],{key:s.id,attrs:{dense:""}},[!s.visible||s.visible(t.item)?e(o["a"],{on:{click:function(e){return s.event(t.item.id,t.item.idx)}}},[e(r["c"],[t._v(t._s(s.text))])],1):t._e()],1)})),1)],2)}),m=[],h={name:"TableButtons",props:{actions:{type:Array,required:!0},item:{type:Object}}},b=h,v=(s("2ac3"),s("2877")),f=Object(v["a"])(b,d,m,!1,null,"1369d41d",null);e["a"]=f.exports},b49d:function(t,e,s){"use strict";var i=s("15a4"),n=s("2f62"),a=s("b0c2");e["a"]={created(){this.getSettings()},methods:{...Object(n["b"])("accounts",["updateUiSettings","fetchUiSettings"]),async getSettings(){const t=this.defaultColumns||[],{result:e}=await this.fetchUiSettings({settingsIdentifier:`${a["a"].isMarshroute()?"WMS":"YAPP"}.${this.settingsIdentificator}`}),s=Object.values(e.checkboxes||[]).map(t=>t.checkboxes).flat(),n=s.map(e=>{const s=t.find(t=>t.value===e.value||t.text===e.text);if("data-table-select"!==e.value&&s)return{...e,value:s?s.value:e.value,text:s?s.text:e.text}}).filter(t=>void 0!==t);if(n.length)if(n.every(t=>t.width)){const e=t.filter(t=>!n.find(e=>e.value===t.value));this.isColumns=i["a"].uniqBy(i["a"].flatten([e,n]),t=>t.value).map(e=>{const s=t.find(t=>t.value===e.value);return{...e,...s,text:s?s.text:e.text}})}else this.isColumns=t.map(t=>({...t}));else this.isColumns=t},async cs_changePosition(t,e){const{main:s}=this.cs_columnsSetting||{},{checkboxes:i,name:n}=s||{},c=this.isColumns.map(e=>{const s=(i||t).find(t=>t.value===e.value);return{...s,...e}||{...e,disabled:!0,isActive:!1}});this.updateUiSettings({settingsIdentifier:`${a["a"].isMarshroute()?"WMS":"YAPP"}.${this.settingsIdentificator}`||e,data:{checkboxes:{main:{checkboxes:c,name:n||"Основные параметры"}}}})},async cs_changeVisible({sectionKey:t,checkboxId:e}){const s=t=>t.value===e?{...t,isActive:!t.isActive}:t,i=this.cs_columnsSetting[t].checkboxes.map(s);await this.updateUiSettings({settingsIdentifier:`${a["a"].isMarshroute()?"WMS":"YAPP"}.${this.settingsIdentificator}`,data:{checkboxes:{...this.cs_columnsSetting,[t]:{...this.cs_columnsSetting[t],checkboxes:i}}}})},cs_createCheckboxState({settingsColumn:t,value:e,text:s}){const i=this.cs_getSavedCheckboxState({section:t.section,value:e});return{isActive:i&&"undefined"!==typeof i.isActive?i.isActive:t.isActive,disabled:i&&"undefined"!==typeof i.disabled?i.disabled:t.disabled,value:e,text:s}},cs_getSavedCheckboxState({section:t,value:e}){const s=this.uiSettings[`${a["a"].isMarshroute()?"WMS":"YAPP"}.${this.settingsIdentificator}`],i=s?s.checkboxes:{};if(i&&i[t])return i[t].checkboxes.find(t=>t.value===e)}},computed:{...Object(n["e"])("accounts",["uiSettings"]),cs_allColumns(){return this.columns},cs_columns(){return this.columns.filter(t=>{if(!t.settingsColumn)return!0;const e=this.cs_columnsSetting[t.settingsColumn.section].checkboxes.find(e=>e.value===t.value);return e&&e.isActive})},cs_columnsSetting(){const t=(t,{settingsColumn:e,value:s,text:i})=>{if(!e)return t;const n=t[e.section]||{checkboxes:[]};return n.name=e.sectionName,n.checkboxes.push(this.cs_createCheckboxState({settingsColumn:e,value:s,text:i})),{...t,[e.section]:n}};return this.columns.reduce(t,{})}}}},cb02:function(t,e,s){},cb0c:function(t,e,s){"use strict";s.r(e);var i,n,a=s("5530"),c=s("c7eb"),o=s("1da1"),r=s("3707"),l=s("0019"),u=s("4c48"),d=s("97f5"),m=s("2f62"),h=s("b49d"),b=s("dde5"),v={name:"ShipmentPalletsDetail",metaInfo:function(){return{title:this.$translate("pages.reports.title")}},components:{TableColumnsLink:u["a"],TableButtons:d["a"]},mixins:[r["a"],l["a"],h["a"]],data:function(){return{settingsIdentificator:"LK.orderShipmentPallets"}},computed:{isLoadingText:function(){return this.$isLoadingTranslate("pages.orders")},tableSettings:function(){return{props:{showSelect:!1,standardPagination:!0,isHaveNextItems:this.pt_nextActive,withPagination:!1,withFilter:!1,withExport:!0,allHeaders:this.cs_allColumns,title:this.title,searchBtnVisible:!1,headers:this.cs_columns,columnsSetting:this.cs_columnsSetting,multiSort:!1},listeners:{changeVisible:this.cs_changeVisible}}},columns:function(){return[{text:this.$translate("pages.orders.order.tabs.shipment-pallets.attributes.sku"),value:"itemId",width:210,settingsColumn:{isActive:!0,visible:!1,section:"main"}},{text:this.$translate("pages.orders.order.tabs.shipment-pallets.attributes.name"),value:"name",width:310,settingsColumn:{isActive:!0,visible:!1,section:"main"}},{text:this.$translate("pages.orders.order.tabs.order-marks.attributes.mark"),value:"mark",width:310,settingsColumn:{isActive:!0,visible:!1,section:"main"}},{text:this.$translate("pages.orders.order.tabs.order-serial-numbers.attributes.serialNumber"),value:"serialNumber",settingsColumn:{isActive:!0,visible:!1,section:"main"}}]}},created:function(){var t=this;return Object(o["a"])(Object(c["a"])().mark((function e(){return Object(c["a"])().wrap((function(e){while(1)switch(e.prev=e.next){case 0:t.fetchUiSettings({settingsIdentifier:"LK.orderShipmentPallets"}),t.$i18n.fetchMessages("pages.orders");case 2:case"end":return e.stop()}}),e)})))()},methods:Object(a["a"])(Object(a["a"])({},Object(m["b"])("accounts",["fetchUiSettings"])),{},{download:function(t,e){var s=t.params;return b["o"].getPalletsWithId({orderId:this.$route.params.id,id:this.$route.params.palletId,params:s},e)}})},f=v,p=s("2877"),g=Object(p["a"])(f,i,n,!1,null,null,null);e["default"]=g.exports}}]);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmNrb2ZmaWNlX2Zyb250X2NvcmUvbWl4aW5zL3BhZ2luYXRpb25zV2l0aG91dFRvdGFsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iY2tvZmZpY2VfZnJvbnRfY29yZS9jb21wb25lbnRzL3NoYXJlZC9iYXNlVGFibGVQYWdlL1RhYmxlQnV0dG9ucy52dWU/ZDZiMCIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmNrb2ZmaWNlX2Zyb250X2NvcmUvY29tcG9uZW50cy9zaGFyZWQvYmFzZVRhYmxlUGFnZS9UYWJsZUJ1dHRvbnMudnVlIiwid2VicGFjazovLy9ub2RlX21vZHVsZXMvYmNrb2ZmaWNlX2Zyb250X2NvcmUvY29tcG9uZW50cy9zaGFyZWQvYmFzZVRhYmxlUGFnZS9UYWJsZUJ1dHRvbnMudnVlIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iY2tvZmZpY2VfZnJvbnRfY29yZS9jb21wb25lbnRzL3NoYXJlZC9iYXNlVGFibGVQYWdlL1RhYmxlQnV0dG9ucy52dWU/NDU3NCIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmNrb2ZmaWNlX2Zyb250X2NvcmUvY29tcG9uZW50cy9zaGFyZWQvYmFzZVRhYmxlUGFnZS9UYWJsZUJ1dHRvbnMudnVlP2EwMDMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jja29mZmljZV9mcm9udF9jb3JlL21peGlucy9jb2x1bW5zU2V0dGluZy5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3Mvb3JkZXJzL29yZGVyL1BhbGxldHMvRGV0YWlsLnZ1ZSIsIndlYnBhY2s6Ly8vc3JjL3ZpZXdzL29yZGVycy9vcmRlci9QYWxsZXRzL0RldGFpbC52dWUiLCJ3ZWJwYWNrOi8vLy4vc3JjL3ZpZXdzL29yZGVycy9vcmRlci9QYWxsZXRzL0RldGFpbC52dWU/OTgxOCJdLCJuYW1lcyI6WyJwdF9uZXh0QWN0aXZlIiwibWV0aG9kcyIsInBhcmFtcyIsInNpZ25hbCIsInBhcmFtc0Zvck5leHQiLCJwZXJQYWdlIiwidGhpcyIsIm1ldGEiLCJyb3dUb3RhbCIsInJlc3VsdCIsImRvd25sb2FkIiwibGVuZ3RoIiwicGFnZVRvdGFsIiwiTnVtYmVyIiwicGFnZSIsImRmX3Jvd1RvdGFsIiwic3RhdGljQ2xhc3MiLCJjbGFzcyIsImF0dHJzIiwib24iLCJhY3Rpb24iLCJfYyIsInNjb3BlZFNsb3RzIiwiX3ZtIiwia2V5IiwiYWN0aW9ucyIsImlkIiwiY2xpY2siLCIkZXZlbnQiLCJfbCIsInZpc2libGUiLCJfdSIsIml0ZW0iLCJldmVudCIsInN0YXRpY1JlbmRlckZucyIsInJlbmRlciIsIm5hbWUiLCJwcm9wcyIsInR5cGUiLCJBcnJheSIsInJlcXVpcmVkIiwiT2JqZWN0IiwiY29tcG9uZW50IiwiZ2V0U2V0dGluZ3MiLCJkZWZhdWx0Q29sdW1ucyIsImZldGNoVWlTZXR0aW5ncyIsInNldHRpbmdzSWRlbnRpZmllciIsImlzTWFyc2hyb3V0ZSIsInNldHRpbmdzSWRlbnRpZmljYXRvciIsImRpcnR5Q2hlY2tib3hlcyIsInZhbHVlcyIsImNoZWNrYm94ZXMiLCJtYXAiLCJzZWN0aW9uIiwiZmxhdCIsIml0IiwiY2IiLCJmaW5kIiwiYyIsInZhbHVlIiwidGV4dCIsImZpbHRlciIsInVuZGVmaW5lZCIsImV2ZXJ5Iiwid2lkdGgiLCJoaWRkZW5Db2x1bW4iLCJlbCIsImlzQ29sdW1ucyIsInVuaXFCeSIsImZsYXR0ZW4iLCJlIiwiZmluZEVsIiwiaXRlbXMiLCJtYWluIiwiY3NfY29sdW1uc1NldHRpbmciLCJmb3JtYXRJc0NvbHVtbnMiLCJjYnMiLCJkaXNhYmxlZCIsImlzQWN0aXZlIiwidXBkYXRlVWlTZXR0aW5ncyIsImRhdGEiLCJzZWN0aW9uS2V5IiwiY2hlY2tib3hJZCIsInRvZ2dsZUNoZWNrYm94IiwiY2hlY2tib3giLCJzZXR0aW5nc0NvbHVtbiIsInN0YXRlIiwiY3NfZ2V0U2F2ZWRDaGVja2JveFN0YXRlIiwic2F2ZWRTZXR0aW5ncyIsInVpU2V0dGluZ3MiLCJzYXZlZENoZWNrYm94ZXNTdGF0ZSIsImNvbXB1dGVkIiwiY29sdW1ucyIsImNvbHVtbiIsImFkZENoZWNrYm94IiwiY29sdW1uc09iamVjdCIsInNlY3Rpb25OYW1lIiwicHVzaCIsImNzX2NyZWF0ZUNoZWNrYm94U3RhdGUiLCJyZWR1Y2UiLCJtZXRhSW5mbyIsInRpdGxlIiwiJHRyYW5zbGF0ZSIsImNvbXBvbmVudHMiLCJUYWJsZUNvbHVtbnNMaW5rIiwiVGFibGVCdXR0b25zIiwibWl4aW5zIiwiQmFzZVRhYmxlUGFnZSIsInBhZ2luYXRpb25zV2l0aG91dFRvdGFsIiwiY29sdW1uc1NldHRpbmciLCJpc0xvYWRpbmdUZXh0IiwiJGlzTG9hZGluZ1RyYW5zbGF0ZSIsInRhYmxlU2V0dGluZ3MiLCJzaG93U2VsZWN0Iiwic3RhbmRhcmRQYWdpbmF0aW9uIiwiaXNIYXZlTmV4dEl0ZW1zIiwid2l0aFBhZ2luYXRpb24iLCJ3aXRoRmlsdGVyIiwid2l0aEV4cG9ydCIsImFsbEhlYWRlcnMiLCJjc19hbGxDb2x1bW5zIiwic2VhcmNoQnRuVmlzaWJsZSIsImhlYWRlcnMiLCJjc19jb2x1bW5zIiwibXVsdGlTb3J0IiwibGlzdGVuZXJzIiwiY2hhbmdlVmlzaWJsZSIsImNzX2NoYW5nZVZpc2libGUiLCJjcmVhdGVkIiwiX3RoaXMiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwiJGkxOG4iLCJmZXRjaE1lc3NhZ2VzIiwic3RvcCIsIl9vYmplY3RTcHJlYWQiLCJtYXBBY3Rpb25zIiwiX3JlZiIsIm9yZGVyc1NlcnZpY2UiLCJnZXRQYWxsZXRzV2l0aElkIiwib3JkZXJJZCIsIiRyb3V0ZSIsInBhbGxldElkIl0sIm1hcHBpbmdzIjoia0hBQWUsUUFDYixPQUNFLE1BQU8sQ0FDTEEsZUFBZSxJQUduQkMsUUFBUyxDQUNQLGdDQUErQixPQUFFQyxFQUFN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QTdJLE9BQ0EsT0FBQThJLE9BQUFDLGlCQUFBLENBQ0FDLFFBQUEsS0FBQUMsT0FBQWpKLE9BQUF3QixHQUNBQSxHQUFBLEtBQUF5SCxPQUFBakosT0FBQWtKLFNBQ0FsSixVQUNBQyxPQzVHNFgsSSxZRk94WHVDLEVBQVksZUFDZCxFQUNBUCxFQUNBRCxHQUNBLEVBQ0EsS0FDQSxLQUNBLE1BSWEsYUFBQVEsRSIsImZpbGUiOiJqcy9jaHVuay01Y2U5YzQwOC5iZGVlMGE3NS5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IHtcclxuICBkYXRhKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgcHRfbmV4dEFjdGl2ZTogZmFsc2UsXHJcbiAgICB9O1xyXG4gIH0sXHJcbiAgbWV0aG9kczoge1xyXG4gICAgYXN5bmMgcHRfcGFnaW5hdGllV2l0aG91dFRvdGFsKHsgcGFyYW1zLCBzaWduYWwgfSkge1xyXG4gICAgICBjb25zdCBwYXJhbXNGb3JOZXh0ID0ge1xyXG4gICAgICAgIC4uLnBhcmFtcyxcclxuICAgICAgICBwZXJQYWdlOiBwYXJhbXMucGVyUGFnZSB8fCA1MCxcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5wdF9uZXh0QWN0aXZlID0gZmFsc2U7XHJcbiAgICAgIGNvbnN0IHsgbWV0YSA9IHsgcm93VG90YWw6IC0xIH0sIHJlc3VsdCA9IFtdIH0gPSBhd2FpdCB0aGlzLmRvd25sb2FkKHsgcGFyYW1zOiBwYXJhbXNGb3JOZXh0IH0sIHNpZ25hbCkgfHwge307XHJcbiAgICAgIGlmIChyZXN1bHQubGVuZ3RoID4gKyhwYXJhbXMucGVyUGFnZSB8fCA1MCkpIHtcclxuICAgICAgICB0aGlzLnB0X25leHRBY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIC8vIHJlc3VsdC5wb3AoKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAobWV0YS5yb3dUb3RhbCA8IDApIHtcclxuICAgICAgICByZXR1cm4geyBtZXRhOiB7IC4uLm1ldGEsIHBhZ2VUb3RhbDogTnVtYmVyKHBhcmFtcy5wYWdlKSArIDEsIGRmX3Jvd1RvdGFsOiAtMSAsIHJvd1RvdGFsOiBtZXRhLnBhZ2UgKiBtZXRhLnBlclBhZ2UgKyByZXN1bHQubGVuZ3RoIH0sIHJlc3VsdCB9O1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB7IG1ldGEsIHJlc3VsdCB9O1xyXG4gICAgfSxcclxuICB9LFxyXG59O1xyXG4iLCJleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi9taW5pLWNzcy1leHRyYWN0LXBsdWdpbi9kaXN0L2xvYWRlci5qcz8/cmVmLS05LW9uZU9mLTEtMCEuLi8uLi8uLi8uLi9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTktb25lT2YtMS0xIS4uLy4uLy4uLy4uL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4uLy4uLy4uLy4uL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cmVmLS05LW9uZU9mLTEtMiEuLi8uLi8uLi8uLi9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMyEuLi8uLi8uLi8uLi9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9UYWJsZUJ1dHRvbnMudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MTM2OWQ0MWQmcHJvZCZsYW5nPXNjc3Mmc2NvcGVkPXRydWVcIiIsInZhciByZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKXt2YXIgX3ZtPXRoaXMsX2M9X3ZtLl9zZWxmLl9jO3JldHVybiBfYygndi1jb250YWluZXInLHtzdGF0aWNDbGFzczpcImJ1dHRvbnMtdGFibGUgcGItMCBwdC0wXCJ9LFsoX3ZtLiR2dWV0aWZ5LmJyZWFrcG9pbnQuc21BbmRVcCk/Wyhfdm0uYWN0aW9ucy5sZW5ndGggPiAzKT9fYygnZGl2JyxbX2MoJ3Ytcm93JyxbX3ZtLl9sKChfdm0uYWN0aW9ucy5zbGljZSgwLCAyKSksZnVuY3Rpb24oYWN0aW9uKXtyZXR1cm4gX2MoJ2Rpdicse2tleTphY3Rpb24uaWR9LFtfYygndi1jb2wnLHtzdGF0aWNDbGFzczpcInByLTBcIn0sW19jKCd2LWljb24nLHtjbGFzczp7ICdidXR0b25zLXRhYmxlX19oaWRkZW4nOiBhY3Rpb24udmlzaWJsZSA/ICFhY3Rpb24udmlzaWJsZShfdm0uaXRlbSkgOiBmYWxzZSB9LGF0dHJzOntcInNtYWxsXCI6XCJcIn0sb246e1wiY2xpY2tcIjpmdW5jdGlvbigkZXZlbnQpe3JldHVybiBhY3Rpb24uZXZlbnQoX3ZtLml0ZW0uaWQsIF92bS5pdGVtLmlkeCl9fX0sW192bS5fdihcIiBcIitfdm0uX3MoYWN0aW9uLmljb24pK1wiIFwiKV0pXSwxKV0sMSl9KSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJwdC0zIHBsLTJcIn0sW19jKCd2LW1lbnUnLHthdHRyczp7XCJib3R0b21cIjpcIlwiLFwibGVmdFwiOlwiXCIsXCJjbG9zZS1vbi1jbGlja1wiOlwiXCIsXCJjbG9zZS1vbi1jb250ZW50LWNsaWNrXCI6XCJcIixcIm9mZnNldC15XCI6XCJcIn0sc2NvcGVkU2xvdHM6X3ZtLl91KFt7a2V5OlwiYWN0aXZhdG9yXCIsZm46ZnVuY3Rpb24oeyBvbiwgYXR0cnMgfSl7cmV0dXJuIFtfYygndi1pY29uJyxfdm0uX2coX3ZtLl9iKHthdHRyczp7XCJzbWFsbFwiOlwiXCJ9fSwndi1pY29uJyxhdHRycyxmYWxzZSksb24pLFtfdm0uX3YoXCIgbWRpLWRvdHMtdmVydGljYWwgXCIpXSldfX1dLG51bGwsZmFsc2UsMzMxMzUyMzc2KX0sX3ZtLl9sKChfdm0uYWN0aW9ucy5zbGljZSgyKSksZnVuY3Rpb24oYWN0aW9uKXtyZXR1cm4gX2MoJ3YtbGlzdCcse2tleTphY3Rpb24uaWQsc3RhdGljQ2xhc3M6XCJwdC0wIHBiLTBcIixhdHRyczp7XCJkZW5zZVwiOlwiXCJ9fSxbKGFjdGlvbi52aXNpYmxlID8gYWN0aW9uLnZpc2libGUoX3ZtLml0ZW0pIDogdHJ1ZSk/X2MoJ3YtbGlzdC1pdGVtJyx7b246e1wiY2xpY2tcIjpmdW5jdGlvbigkZXZlbnQpe3JldHVybiBhY3Rpb24uZXZlbnQoX3ZtLml0ZW0uaWQsIF92bS5pdGVtLmlkeCl9fX0sW19jKCd2LWxpc3QtaXRlbS10aXRsZScsW192bS5fdihfdm0uX3MoYWN0aW9uLnRleHQpKV0pXSwxKTpfdm0uX2UoKV0sMSl9KSwxKV0sMSldLDIpXSwxKTpfYygnZGl2JyxbX2MoJ3Ytcm93Jyx7c3RhdGljQ2xhc3M6XCJmbGV4LW5vd3JhcCBqdXN0aWZ5LWVuZFwifSxfdm0uX2woKF92bS5hY3Rpb25zKSxmdW5jdGlvbihhY3Rpb24pe3JldHVybiBfYygnZGl2Jyx7a2V5OmFjdGlvbi5pZH0sW19jKCd2LWNvbCcse3N0YXRpY0NsYXNzOlwicHItMCBwbC0yXCJ9LFtfYygndi1pY29uJyx7Y2xhc3M6eyAnYnV0dG9ucy10YWJsZV9faGlkZGVuJzogYWN0aW9uLnZpc2libGUgPyAhYWN0aW9uLnZpc2libGUoX3ZtLml0ZW0pIDogZmFsc2UgfSxhdHRyczp7XCJzbWFsbFwiOlwiXCJ9LG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gYWN0aW9uLmV2ZW50KF92bS5pdGVtLmlkLCBfdm0uaXRlbS5pZHgpfX19LFtfdm0uX3YoXCIgXCIrX3ZtLl9zKGFjdGlvbi5pY29uKStcIiBcIildKV0sMSldLDEpfSksMCldLDEpXTpfYygndi1tZW51Jyx7YXR0cnM6e1wiYm90dG9tXCI6XCJcIixcImxlZnRcIjpcIlwiLFwiY2xvc2Utb24tY2xpY2tcIjpcIlwiLFwiY2xvc2Utb24tY29udGVudC1jbGlja1wiOlwiXCIsXCJvZmZzZXQteVwiOlwiXCJ9LHNjb3BlZFNsb3RzOl92bS5fdShbe2tleTpcImFjdGl2YXRvclwiLGZuOmZ1bmN0aW9uKHsgb24sIGF0dHJzIH0pe3JldHVybiBbX2MoJ3YtaWNvbicsX3ZtLl9nKF92bS5fYih7YXR0cnM6e1wic21hbGxcIjpcIlwifX0sJ3YtaWNvbicsYXR0cnMsZmFsc2UpLG9uKSxbX3ZtLl92KFwiIG1kaS1kb3RzLXZlcnRpY2FsIFwiKV0pXX19XSl9LF92bS5fbCgoX3ZtLmFjdGlvbnMpLGZ1bmN0aW9uKGFjdGlvbil7cmV0dXJuIF9jKCd2LWxpc3QnLHtrZXk6YWN0aW9uLmlkLGF0dHJzOntcImRlbnNlXCI6XCJcIn19LFsoYWN0aW9uLnZpc2libGUgPyBhY3Rpb24udmlzaWJsZShfdm0uaXRlbSkgOiB0cnVlKT9fYygndi1saXN0LWl0ZW0nLHtvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIGFjdGlvbi5ldmVudChfdm0uaXRlbS5pZCwgX3ZtLml0ZW0uaWR4KX19fSxbX2MoJ3YtbGlzdC1pdGVtLXRpdGxlJyxbX3ZtLl92KF92bS5fcyhhY3Rpb24udGV4dCkpXSldLDEpOl92bS5fZSgpXSwxKX0pLDEpXSwyKVxufVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5cbmV4cG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0iLCI8dGVtcGxhdGU+XHJcbiAgPHYtY29udGFpbmVyIGNsYXNzPVwiYnV0dG9ucy10YWJsZSBwYi0wIHB0LTBcIj5cclxuICAgIDx0ZW1wbGF0ZSB2LWlmPVwiJHZ1ZXRpZnkuYnJlYWtwb2ludC5zbUFuZFVwXCI+XHJcbiAgICAgIDxkaXYgdi1pZj1cImFjdGlvbnMubGVuZ3RoID4gM1wiPlxyXG4gICAgICAgIDx2LXJvdz5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgdi1mb3I9XCJhY3Rpb24gaW4gYWN0aW9ucy5zbGljZSgwLCAyKVwiXHJcbiAgICAgICAgICAgIDprZXk9XCJhY3Rpb24uaWRcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8di1jb2wgY2xhc3M9XCJwci0wXCI+XHJcbiAgICAgICAgICAgICAgPHYtaWNvblxyXG4gICAgICAgICAgICAgICAgc21hbGxcclxuICAgICAgICAgICAgICAgIEBjbGljaz1cImFjdGlvbi5ldmVudChpdGVtLmlkLCBpdGVtLmlkeClcIlxyXG4gICAgICAgICAgICAgICAgOmNsYXNzPVwieyAnYnV0dG9ucy10YWJsZV9faGlkZGVuJzogYWN0aW9uLnZpc2libGUgPyAhYWN0aW9uLnZpc2libGUoaXRlbSkgOiBmYWxzZSB9XCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICB7eyBhY3Rpb24uaWNvbiB9fVxyXG4gICAgICAgICAgICAgIDwvdi1pY29uPlxyXG4gICAgICAgICAgICA8L3YtY29sPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicHQtMyBwbC0yXCI+XHJcbiAgICAgICAgICAgIDx2LW1lbnVcclxuICAgICAgICAgICAgICBib3R0b21cclxuICAgICAgICAgICAgICBsZWZ0XHJcbiAgICAgICAgICAgICAgY2xvc2Utb24tY2xpY2tcclxuICAgICAgICAgICAgICBjbG9zZS1vbi1jb250ZW50LWNsaWNrXHJcbiAgICAgICAgICAgICAgb2Zmc2V0LXlcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDx0ZW1wbGF0ZSB2LXNsb3Q6YWN0aXZhdG9yPVwieyBvbiwgYXR0cnMgfVwiPlxyXG4gICAgICAgICAgICAgICAgPHYtaWNvblxyXG4gICAgICAgICAgICAgICAgICBzbWFsbFxyXG4gICAgICAgICAgICAgICAgICB2LWJpbmQ9XCJhdHRyc1wiXHJcbiAgICAgICAgICAgICAgICAgIHYtb249XCJvblwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIG1kaS1kb3RzLXZlcnRpY2FsXHJcbiAgICAgICAgICAgICAgICA8L3YtaWNvbj5cclxuICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICAgICAgICAgIDx2LWxpc3RcclxuICAgICAgICAgICAgICAgIHYtZm9yPVwiYWN0aW9uIGluIGFjdGlvbnMuc2xpY2UoMilcIlxyXG4gICAgICAgICAgICAgICAgOmtleT1cImFjdGlvbi5pZFwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInB0LTAgcGItMFwiXHJcbiAgICAgICAgICAgICAgICBkZW5zZVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDx2LWxpc3QtaXRlbSB2LWlmPVwiYWN0aW9uLnZpc2libGUgPyBhY3Rpb24udmlzaWJsZShpdGVtKSA6IHRydWVcIiBAY2xpY2s9XCJhY3Rpb24uZXZlbnQoaXRlbS5pZCwgaXRlbS5pZHgpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDx2LWxpc3QtaXRlbS10aXRsZT57eyBhY3Rpb24udGV4dCB9fTwvdi1saXN0LWl0ZW0tdGl0bGU+XHJcbiAgICAgICAgICAgICAgICA8L3YtbGlzdC1pdGVtPlxyXG4gICAgICAgICAgICAgIDwvdi1saXN0PlxyXG4gICAgICAgICAgICA8L3YtbWVudT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvdi1yb3c+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IHYtZWxzZT5cclxuICAgICAgICA8di1yb3cgY2xhc3M9XCJmbGV4LW5vd3JhcCBqdXN0aWZ5LWVuZFwiPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICB2LWZvcj1cImFjdGlvbiBpbiBhY3Rpb25zXCJcclxuICAgICAgICAgICAgOmtleT1cImFjdGlvbi5pZFwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDx2LWNvbCBjbGFzcz1cInByLTAgcGwtMlwiPlxyXG4gICAgICAgICAgICAgIDx2LWljb25cclxuICAgICAgICAgICAgICAgIHNtYWxsXHJcbiAgICAgICAgICAgICAgICBAY2xpY2s9XCJhY3Rpb24uZXZlbnQoaXRlbS5pZCwgaXRlbS5pZHgpXCJcclxuICAgICAgICAgICAgICAgIDpjbGFzcz1cInsgJ2J1dHRvbnMtdGFibGVfX2hpZGRlbic6IGFjdGlvbi52aXNpYmxlID8gIWFjdGlvbi52aXNpYmxlKGl0ZW0pIDogZmFsc2UgfVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAge3sgYWN0aW9uLmljb24gfX1cclxuICAgICAgICAgICAgICA8L3YtaWNvbj5cclxuICAgICAgICAgICAgPC92LWNvbD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvdi1yb3c+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC90ZW1wbGF0ZT5cclxuICAgIDx2LW1lbnVcclxuICAgICAgdi1lbHNlXHJcbiAgICAgIGJvdHRvbVxyXG4gICAgICBsZWZ0XHJcbiAgICAgIGNsb3NlLW9uLWNsaWNrXHJcbiAgICAgIGNsb3NlLW9uLWNvbnRlbnQtY2xpY2tcclxuICAgICAgb2Zmc2V0LXlcclxuICAgID5cclxuICAgICAgPHRlbXBsYXRlIHYtc2xvdDphY3RpdmF0b3I9XCJ7IG9uLCBhdHRycyB9XCI+XHJcbiAgICAgICAgPHYtaWNvblxyXG4gICAgICAgICAgc21hbGxcclxuICAgICAgICAgIHYtYmluZD1cImF0dHJzXCJcclxuICAgICAgICAgIHYtb249XCJvblwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgbWRpLWRvdHMtdmVydGljYWxcclxuICAgICAgICA8L3YtaWNvbj5cclxuICAgICAgPC90ZW1wbGF0ZT5cclxuICAgICAgPHYtbGlzdFxyXG4gICAgICAgIHYtZm9yPVwiYWN0aW9uIGluIGFjdGlvbnNcIlxyXG4gICAgICAgIDprZXk9XCJhY3Rpb24uaWRcIlxyXG4gICAgICAgIGRlbnNlXHJcbiAgICAgID5cclxuICAgICAgICA8di1saXN0LWl0ZW0gdi1pZj1cImFjdGlvbi52aXNpYmxlID8gYWN0aW9uLnZpc2libGUoaXRlbSkgOiB0cnVlXCIgQGNsaWNrPVwiYWN0aW9uLmV2ZW50KGl0ZW0uaWQsIGl0ZW0uaWR4KVwiPlxyXG4gICAgICAgICAgPHYtbGlzdC1pdGVtLXRpdGxlPnt7IGFjdGlvbi50ZXh0IH19PC92LWxpc3QtaXRlbS10aXRsZT5cclxuICAgICAgICA8L3YtbGlzdC1pdGVtPlxyXG4gICAgICA8L3YtbGlzdD5cclxuICAgIDwvdi1tZW51PlxyXG4gIDwvdi1jb250YWluZXI+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5leHBvcnQgZGVmYXVsdCB7XHJcbiAgbmFtZTogJ1RhYmxlQnV0dG9ucycsXHJcbiAgcHJvcHM6IHtcclxuICAgIGFjdGlvbnM6IHtcclxuICAgICAgdHlwZTogQXJyYXksXHJcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgfSxcclxuICAgIGl0ZW06IHtcclxuICAgICAgdHlwZTogT2JqZWN0LFxyXG4gICAgfSxcclxuICB9LFxyXG59O1xyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cclxuLmJ1dHRvbnMtdGFibGUge1xyXG4gIDo6di1kZWVwIC5yb3cge1xyXG4gICAgZmxleC13cmFwOiBub3dyYXA7XHJcbiAgfVxyXG4gICZfX2hpZGRlbiB7XHJcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICB9XHJcbn1cclxuPC9zdHlsZT5cclxuIiwiaW1wb3J0IG1vZCBmcm9tIFwiLSEuLi8uLi8uLi8uLi9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMTMtMCEuLi8uLi8uLi8uLi90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vVGFibGVCdXR0b25zLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qc1wiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xMy0wIS4uLy4uLy4uLy4uL3RocmVhZC1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9UYWJsZUJ1dHRvbnMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzXCIiLCJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IGZyb20gXCIuL1RhYmxlQnV0dG9ucy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MTM2OWQ0MWQmc2NvcGVkPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9UYWJsZUJ1dHRvbnMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzXCJcbmV4cG9ydCAqIGZyb20gXCIuL1RhYmxlQnV0dG9ucy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anNcIlxuaW1wb3J0IHN0eWxlMCBmcm9tIFwiLi9UYWJsZUJ1dHRvbnMudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MTM2OWQ0MWQmcHJvZCZsYW5nPXNjc3Mmc2NvcGVkPXRydWVcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgXCIxMzY5ZDQxZFwiLFxuICBudWxsXG4gIFxuKVxuXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyIsImltcG9ydCBfIGZyb20gJ2xvZGFzaC1lcyc7XHJcbmltcG9ydCB7IG1hcFN0YXRlLCBtYXBBY3Rpb25zIH0gZnJvbSAndnVleCc7XHJcbmltcG9ydCBXTVMgZnJvbSBcIi4uLy4uLy4uL3NyYy9jb21tb24vd21zQ29tbW9uXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCB7XHJcbiAgY3JlYXRlZCgpIHtcclxuICAgIHRoaXMuZ2V0U2V0dGluZ3MoKTtcclxuICB9LFxyXG4gIG1ldGhvZHM6IHtcclxuICAgIC4uLm1hcEFjdGlvbnMoJ2FjY291bnRzJywgWyd1cGRhdGVVaVNldHRpbmdzJywgJ2ZldGNoVWlTZXR0aW5ncyddKSxcclxuICAgIGFzeW5jIGdldFNldHRpbmdzKCkge1xyXG4gICAgICBjb25zdCBkZWZhdWx0Q29sdW1ucyA9IHRoaXMuZGVmYXVsdENvbHVtbnMgfHwgW107XHJcbiAgICAgIGNvbnN0IHsgcmVzdWx0IH0gPSBhd2FpdCB0aGlzLmZldGNoVWlTZXR0aW5ncyh7IHNldHRpbmdzSWRlbnRpZmllcjogYCR7V01TLmlzTWFyc2hyb3V0ZSgpID8gJ1dNUycgOiAnWUFQUCd9LiR7dGhpcy5zZXR0aW5nc0lkZW50aWZpY2F0b3J9YCB9KTtcclxuICAgICAgY29uc3QgZGlydHlDaGVja2JveGVzID0gT2JqZWN0LnZhbHVlcyhyZXN1bHQuY2hlY2tib3hlcyB8fCBbXSkubWFwKChzZWN0aW9uKSA9PiBzZWN0aW9uLmNoZWNrYm94ZXMpLmZsYXQoKTtcclxuICAgICAgY29uc3QgY2hlY2tib3hlcyA9IGRpcnR5Q2hlY2tib3hlcy5tYXAoKGl0KSA9PiB7XHJcbiAgICAgICAgY29uc3QgY2IgPSBkZWZhdWx0Q29sdW1ucy5maW5kKChjKSA9PiBjLnZhbHVlID09PSBpdC52YWx1ZSB8fCBjLnRleHQgPT09IGl0LnRleHQpXHJcbiAgICAgICAgaWYgKGl0LnZhbHVlICE9PSAnZGF0YS10YWJsZS1zZWxlY3QnICYmIGNiKSB7XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAuLi5pdCxcclxuICAgICAgICAgICAgdmFsdWU6IGNiID8gY2IudmFsdWUgOiBpdC52YWx1ZSxcclxuICAgICAgICAgICAgdGV4dDogY2IgPyBjYi50ZXh0IDogaXQudGV4dCxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICB9KS5maWx0ZXIoKGl0KSA9PiBpdCAhPT0gdW5kZWZpbmVkKTtcclxuICAgICAgaWYgKGNoZWNrYm94ZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgaWYgKCFjaGVja2JveGVzLmV2ZXJ5KChpdCkgPT4gaXQud2lkdGgpKSB7XHJcbiAgICAgICAgICB0aGlzLmlzQ29sdW1ucyA9IGRlZmF1bHRDb2x1bW5zLm1hcCgoaXQpID0+ICh7IC4uLml0IH0pKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc3QgaGlkZGVuQ29sdW1uID0gZGVmYXVsdENvbHVtbnMuZmlsdGVyKChpdCkgPT4gIWNoZWNrYm94ZXMuZmluZCgoZWwpID0+IGVsLnZhbHVlID09PSBpdC52YWx1ZSkpO1xyXG4gICAgICAgICAgdGhpcy5pc0NvbHVtbnMgPSBfLnVuaXFCeShfLmZsYXR0ZW4oW2hpZGRlbkNvbHVtbiwgY2hlY2tib3hlc10pLCAoZSkgPT4gZS52YWx1ZSkubWFwKChpdCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBmaW5kRWwgPSBkZWZhdWx0Q29sdW1ucy5maW5kKChjKSA9PiBjLnZhbHVlID09PSBpdC52YWx1ZSk7XHJcbiAgICAgICAgICAgIHJldHVybiAoeyAuLi5pdCwgLi4uZmluZEVsLCB0ZXh0OiBmaW5kRWwgPyBmaW5kRWwudGV4dCA6IGl0LnRleHQgfSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5pc0NvbHVtbnMgPSBkZWZhdWx0Q29sdW1ucztcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGFzeW5jIGNzX2NoYW5nZVBvc2l0aW9uKGl0ZW1zLCBrZXkpIHtcclxuICAgICAgY29uc3QgeyBtYWluIH0gPSB0aGlzLmNzX2NvbHVtbnNTZXR0aW5nIHx8IHt9O1xyXG4gICAgICBjb25zdCB7IGNoZWNrYm94ZXMsIG5hbWUgfSA9IG1haW4gfHwge307XHJcbiAgICAgIGNvbnN0IGZvcm1hdElzQ29sdW1ucyA9IHRoaXMuaXNDb2x1bW5zLm1hcCgoaXQpID0+IHtcclxuICAgICAgICBjb25zdCBmaW5kRWwgPSAoY2hlY2tib3hlcyB8fCBpdGVtcykuZmluZCgoY2JzKSA9PiBjYnMudmFsdWUgPT09IGl0LnZhbHVlKTtcclxuICAgICAgICByZXR1cm4gKHsgLi4uZmluZEVsLCAuLi5pdCB9KSB8fCB7XHJcbiAgICAgICAgICAuLi5pdCxcclxuICAgICAgICAgIGRpc2FibGVkOiB0cnVlLFxyXG4gICAgICAgICAgaXNBY3RpdmU6IGZhbHNlLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnVwZGF0ZVVpU2V0dGluZ3Moe1xyXG4gICAgICAgIHNldHRpbmdzSWRlbnRpZmllcjogYCR7V01TLmlzTWFyc2hyb3V0ZSgpID8gJ1dNUycgOiAnWUFQUCd9LiR7dGhpcy5zZXR0aW5nc0lkZW50aWZpY2F0b3J9YCB8fCBrZXksXHJcbiAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgY2hlY2tib3hlczoge1xyXG4gICAgICAgICAgICBtYWluOiB7XHJcbiAgICAgICAgICAgICAgY2hlY2tib3hlczogZm9ybWF0SXNDb2x1bW5zLFxyXG4gICAgICAgICAgICAgIG5hbWU6IG5hbWUgfHwgJ9Ce0YHQvdC+0LLQvdGL0LUg0L/QsNGA0LDQvNC10YLRgNGLJyxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICB9LFxyXG4gICAgYXN5bmMgY3NfY2hhbmdlVmlzaWJsZSh7IHNlY3Rpb25LZXksIGNoZWNrYm94SWQgfSkge1xyXG4gICAgICBjb25zdCB0b2dnbGVDaGVja2JveCA9IChjaGVja2JveCkgPT4ge1xyXG4gICAgICAgIGlmIChjaGVja2JveC52YWx1ZSA9PT0gY2hlY2tib3hJZCkgcmV0dXJuIHsgLi4uY2hlY2tib3gsIGlzQWN0aXZlOiAhY2hlY2tib3guaXNBY3RpdmUgfTtcclxuICAgICAgICByZXR1cm4gY2hlY2tib3g7XHJcbiAgICAgIH07XHJcbiAgICAgIGNvbnN0IGNoZWNrYm94ZXMgPSB0aGlzLmNzX2NvbHVtbnNTZXR0aW5nW3NlY3Rpb25LZXldLmNoZWNrYm94ZXMubWFwKHRvZ2dsZUNoZWNrYm94KTtcclxuICAgICAgYXdhaXQgdGhpcy51cGRhdGVVaVNldHRpbmdzKHtcclxuICAgICAgICBzZXR0aW5nc0lkZW50aWZpZXI6IGAke1dNUy5pc01hcnNocm91dGUoKSA/ICdXTVMnIDogJ1lBUFAnfS4ke3RoaXMuc2V0dGluZ3NJZGVudGlmaWNhdG9yfWAsXHJcbiAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgY2hlY2tib3hlczoge1xyXG4gICAgICAgICAgICAuLi50aGlzLmNzX2NvbHVtbnNTZXR0aW5nLFxyXG4gICAgICAgICAgICBbc2VjdGlvbktleV06IHtcclxuICAgICAgICAgICAgICAuLi50aGlzLmNzX2NvbHVtbnNTZXR0aW5nW3NlY3Rpb25LZXldLFxyXG4gICAgICAgICAgICAgIGNoZWNrYm94ZXMsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgfSxcclxuICAgIGNzX2NyZWF0ZUNoZWNrYm94U3RhdGUoe1xyXG4gICAgICBzZXR0aW5nc0NvbHVtbiwgdmFsdWUsIHRleHQsXHJcbiAgICB9KSB7XHJcbiAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5jc19nZXRTYXZlZENoZWNrYm94U3RhdGUoeyBzZWN0aW9uOiBzZXR0aW5nc0NvbHVtbi5zZWN0aW9uLCB2YWx1ZSB9KTtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBpc0FjdGl2ZTogc3RhdGUgJiYgdHlwZW9mIHN0YXRlLmlzQWN0aXZlICE9PSAndW5kZWZpbmVkJyA/IHN0YXRlLmlzQWN0aXZlIDogc2V0dGluZ3NDb2x1bW4uaXNBY3RpdmUsXHJcbiAgICAgICAgZGlzYWJsZWQ6IHN0YXRlICYmIHR5cGVvZiBzdGF0ZS5kaXNhYmxlZCAhPT0gJ3VuZGVmaW5lZCcgPyBzdGF0ZS5kaXNhYmxlZCA6IHNldHRpbmdzQ29sdW1uLmRpc2FibGVkLFxyXG4gICAgICAgIHZhbHVlLFxyXG4gICAgICAgIHRleHQsXHJcbiAgICAgIH07XHJcbiAgICB9LFxyXG4gICAgY3NfZ2V0U2F2ZWRDaGVja2JveFN0YXRlKHsgc2VjdGlvbiwgdmFsdWUgfSkge1xyXG4gICAgICBjb25zdCBzYXZlZFNldHRpbmdzID0gdGhpcy51aVNldHRpbmdzW2Ake1dNUy5pc01hcnNocm91dGUoKSA/ICdXTVMnIDogJ1lBUFAnfS4ke3RoaXMuc2V0dGluZ3NJZGVudGlmaWNhdG9yfWBdO1xyXG4gICAgICBjb25zdCBzYXZlZENoZWNrYm94ZXNTdGF0ZSA9IHNhdmVkU2V0dGluZ3MgPyBzYXZlZFNldHRpbmdzLmNoZWNrYm94ZXMgOiB7fTtcclxuICAgICAgaWYgKCEoc2F2ZWRDaGVja2JveGVzU3RhdGUgJiYgc2F2ZWRDaGVja2JveGVzU3RhdGVbc2VjdGlvbl0pKSByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICByZXR1cm4gc2F2ZWRDaGVja2JveGVzU3RhdGVbc2VjdGlvbl0uY2hlY2tib3hlcy5maW5kKChjaGVja2JveCkgPT4gY2hlY2tib3gudmFsdWUgPT09IHZhbHVlKTtcclxuICAgIH0sXHJcbiAgfSxcclxuICBjb21wdXRlZDoge1xyXG4gICAgLi4ubWFwU3RhdGUoJ2FjY291bnRzJywgWyd1aVNldHRpbmdzJ10pLFxyXG4gICAgY3NfYWxsQ29sdW1ucygpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29sdW1ucztcclxuICAgIH0sXHJcbiAgICBjc19jb2x1bW5zKCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb2x1bW5zLmZpbHRlcigoY29sdW1uKSA9PiB7XHJcbiAgICAgICAgaWYgKCFjb2x1bW4uc2V0dGluZ3NDb2x1bW4pIHJldHVybiB0cnVlO1xyXG4gICAgICAgIGNvbnN0IGNoZWNrYm94ID0gdGhpcy5jc19jb2x1bW5zU2V0dGluZ1tjb2x1bW4uc2V0dGluZ3NDb2x1bW4uc2VjdGlvbl0uY2hlY2tib3hlcy5maW5kKChpdGVtKSA9PiBpdGVtLnZhbHVlID09PSBjb2x1bW4udmFsdWUpO1xyXG4gICAgICAgIHJldHVybiBjaGVja2JveCAmJiBjaGVja2JveC5pc0FjdGl2ZTtcclxuICAgICAgfSk7XHJcbiAgICB9LFxyXG4gICAgY3NfY29sdW1uc1NldHRpbmcoKSB7XHJcbiAgICAgIGNvbnN0IGFkZENoZWNrYm94ID0gKGNvbHVtbnNPYmplY3QsIHsgc2V0dGluZ3NDb2x1bW4sIHZhbHVlLCB0ZXh0IH0pID0+IHtcclxuICAgICAgICBpZiAoIXNldHRpbmdzQ29sdW1uKSByZXR1cm4gY29sdW1uc09iamVjdDtcclxuICAgICAgICBjb25zdCBzZWN0aW9uID0gY29sdW1uc09iamVjdFtzZXR0aW5nc0NvbHVtbi5zZWN0aW9uXSB8fCB7IGNoZWNrYm94ZXM6IFtdIH07XHJcbiAgICAgICAgc2VjdGlvbi5uYW1lID0gc2V0dGluZ3NDb2x1bW4uc2VjdGlvbk5hbWU7XHJcbiAgICAgICAgc2VjdGlvbi5jaGVja2JveGVzLnB1c2godGhpcy5jc19jcmVhdGVDaGVja2JveFN0YXRlKHtcclxuICAgICAgICAgIHNldHRpbmdzQ29sdW1uLCB2YWx1ZSwgdGV4dCxcclxuICAgICAgICB9KSk7XHJcbiAgICAgICAgcmV0dXJuIHsgLi4uY29sdW1uc09iamVjdCwgW3NldHRpbmdzQ29sdW1uLnNlY3Rpb25dOiBzZWN0aW9uIH07XHJcbiAgICAgIH07XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbHVtbnMucmVkdWNlKGFkZENoZWNrYm94LCB7fSk7XHJcbiAgICB9LFxyXG4gIH0sXHJcbn07XHJcbiIsInZhciByZW5kZXIsIHN0YXRpY1JlbmRlckZuc1xuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9EZXRhaWwudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzXCJcbmV4cG9ydCAqIGZyb20gXCIuL0RldGFpbC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anNcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGxcbiAgXG4pXG5cbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIiwiPHNjcmlwdD5cclxuaW1wb3J0IEJhc2VUYWJsZVBhZ2UgZnJvbSAnYmNrb2ZmaWNlX2Zyb250X2NvcmUvY29tcG9uZW50cy9zaGFyZWQvYmFzZVRhYmxlUGFnZS9CYXNlVGFibGVQYWdlLnZ1ZSc7XHJcbmltcG9ydCBwYWdpbmF0aW9uc1dpdGhvdXRUb3RhbCBmcm9tICdiY2tvZmZpY2VfZnJvbnRfY29yZS9taXhpbnMvcGFnaW5hdGlvbnNXaXRob3V0VG90YWwnO1xyXG5pbXBvcnQgVGFibGVDb2x1bW5zTGluayBmcm9tICdiY2tvZmZpY2VfZnJvbnRfY29yZS9jb21wb25lbnRzL3NoYXJlZC9iYXNlVGFibGVQYWdlL1RhYmxlQ29sdW1uc0xpbmsudnVlJztcclxuaW1wb3J0IFRhYmxlQnV0dG9ucyBmcm9tICdiY2tvZmZpY2VfZnJvbnRfY29yZS9jb21wb25lbnRzL3NoYXJlZC9iYXNlVGFibGVQYWdlL1RhYmxlQnV0dG9ucy52dWUnO1xyXG5pbXBvcnQgeyBtYXBBY3Rpb25zIH0gZnJvbSAndnVleCc7XHJcbmltcG9ydCBjb2x1bW5zU2V0dGluZyBmcm9tICdiY2tvZmZpY2VfZnJvbnRfY29yZS9taXhpbnMvY29sdW1uc1NldHRpbmcnO1xyXG5pbXBvcnQgeyBvcmRlcnNTZXJ2aWNlIH0gZnJvbSAnQC9zZXJ2aWNlcyc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCB7XHJcbiAgbmFtZTogJ1NoaXBtZW50UGFsbGV0c0RldGFpbCcsXHJcbiAgbWV0YUluZm8oKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0aXRsZTogdGhpcy4kdHJhbnNsYXRlKCdwYWdlcy5yZXBvcnRzLnRpdGxlJyksXHJcbiAgICB9O1xyXG4gIH0sXHJcbiAgY29tcG9uZW50czoge1xyXG4gICAgVGFibGVDb2x1bW5zTGluayxcclxuICAgIFRhYmxlQnV0dG9ucyxcclxuICB9LFxyXG4gIG1peGluczogW0Jhc2VUYWJsZVBhZ2UsIHBhZ2luYXRpb25zV2l0aG91dFRvdGFsLCBjb2x1bW5zU2V0dGluZ10sXHJcbiAgZGF0YSgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHNldHRpbmdzSWRlbnRpZmljYXRvcjogJ0xLLm9yZGVyU2hpcG1lbnRQYWxsZXRzJyxcclxuICAgIH07XHJcbiAgfSxcclxuICBjb21wdXRlZDoge1xyXG4gICAgaXNMb2FkaW5nVGV4dCgpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuJGlzTG9hZGluZ1RyYW5zbGF0ZSgncGFnZXMub3JkZXJzJyk7XHJcbiAgICB9LFxyXG4gICAgdGFibGVTZXR0aW5ncygpIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBwcm9wczoge1xyXG4gICAgICAgICAgc2hvd1NlbGVjdDogZmFsc2UsXHJcbiAgICAgICAgICBzdGFuZGFyZFBhZ2luYXRpb246IHRydWUsXHJcbiAgICAgICAgICBpc0hhdmVOZXh0SXRlbXM6IHRoaXMucHRfbmV4dEFjdGl2ZSxcclxuICAgICAgICAgIHdpdGhQYWdpbmF0aW9uOiBmYWxzZSxcclxuICAgICAgICAgIHdpdGhGaWx0ZXI6IGZhbHNlLFxyXG4gICAgICAgICAgd2l0aEV4cG9ydDogdHJ1ZSxcclxuICAgICAgICAgIGFsbEhlYWRlcnM6IHRoaXMuY3NfYWxsQ29sdW1ucyxcclxuICAgICAgICAgIHRpdGxlOiB0aGlzLnRpdGxlLFxyXG4gICAgICAgICAgc2VhcmNoQnRuVmlzaWJsZTogZmFsc2UsXHJcbiAgICAgICAgICBoZWFkZXJzOiB0aGlzLmNzX2NvbHVtbnMsXHJcbiAgICAgICAgICBjb2x1bW5zU2V0dGluZzogdGhpcy5jc19jb2x1bW5zU2V0dGluZyxcclxuICAgICAgICAgIG11bHRpU29ydDogZmFsc2UsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBsaXN0ZW5lcnM6IHtcclxuICAgICAgICAgIGNoYW5nZVZpc2libGU6IHRoaXMuY3NfY2hhbmdlVmlzaWJsZSxcclxuICAgICAgICB9LFxyXG4gICAgICB9O1xyXG4gICAgfSxcclxuICAgIGNvbHVtbnMoKSB7XHJcbiAgICAgIHJldHVybiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdGV4dDogdGhpcy4kdHJhbnNsYXRlKCdwYWdlcy5vcmRlcnMub3JkZXIudGFicy5zaGlwbWVudC1wYWxsZXRzLmF0dHJpYnV0ZXMuc2t1JyksXHJcbiAgICAgICAgICB2YWx1ZTogJ2l0ZW1JZCcsXHJcbiAgICAgICAgICB3aWR0aDogMjEwLFxyXG4gICAgICAgICAgc2V0dGluZ3NDb2x1bW46IHtcclxuICAgICAgICAgICAgaXNBY3RpdmU6IHRydWUsXHJcbiAgICAgICAgICAgIHZpc2libGU6IGZhbHNlLFxyXG4gICAgICAgICAgICBzZWN0aW9uOiAnbWFpbicsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdGV4dDogdGhpcy4kdHJhbnNsYXRlKCdwYWdlcy5vcmRlcnMub3JkZXIudGFicy5zaGlwbWVudC1wYWxsZXRzLmF0dHJpYnV0ZXMubmFtZScpLFxyXG4gICAgICAgICAgdmFsdWU6ICduYW1lJyxcclxuICAgICAgICAgIHdpZHRoOiAzMTAsXHJcbiAgICAgICAgICBzZXR0aW5nc0NvbHVtbjoge1xyXG4gICAgICAgICAgICBpc0FjdGl2ZTogdHJ1ZSxcclxuICAgICAgICAgICAgdmlzaWJsZTogZmFsc2UsXHJcbiAgICAgICAgICAgIHNlY3Rpb246ICdtYWluJyxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICB0ZXh0OiB0aGlzLiR0cmFuc2xhdGUoJ3BhZ2VzLm9yZGVycy5vcmRlci50YWJzLm9yZGVyLW1hcmtzLmF0dHJpYnV0ZXMubWFyaycpLFxyXG4gICAgICAgICAgdmFsdWU6ICdtYXJrJyxcclxuICAgICAgICAgIHdpZHRoOiAzMTAsXHJcbiAgICAgICAgICBzZXR0aW5nc0NvbHVtbjoge1xyXG4gICAgICAgICAgICBpc0FjdGl2ZTogdHJ1ZSxcclxuICAgICAgICAgICAgdmlzaWJsZTogZmFsc2UsXHJcbiAgICAgICAgICAgIHNlY3Rpb246ICdtYWluJyxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICB0ZXh0OiB0aGlzLiR0cmFuc2xhdGUoJ3BhZ2VzLm9yZGVycy5vcmRlci50YWJzLm9yZGVyLXNlcmlhbC1udW1iZXJzLmF0dHJpYnV0ZXMuc2VyaWFsTnVtYmVyJyksXHJcbiAgICAgICAgICB2YWx1ZTogJ3NlcmlhbE51bWJlcicsXHJcbiAgICAgICAgICBzZXR0aW5nc0NvbHVtbjoge1xyXG4gICAgICAgICAgICBpc0FjdGl2ZTogdHJ1ZSxcclxuICAgICAgICAgICAgdmlzaWJsZTogZmFsc2UsXHJcbiAgICAgICAgICAgIHNlY3Rpb246ICdtYWluJyxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgXTtcclxuICAgIH0sXHJcbiAgfSxcclxuICBhc3luYyBjcmVhdGVkKCkge1xyXG4gICAgdGhpcy5mZXRjaFVpU2V0dGluZ3MoeyBzZXR0aW5nc0lkZW50aWZpZXI6ICdMSy5vcmRlclNoaXBtZW50UGFsbGV0cycgfSk7XHJcbiAgICB0aGlzLiRpMThuLmZldGNoTWVzc2FnZXMoJ3BhZ2VzLm9yZGVycycpO1xyXG4gIH0sXHJcbiAgbWV0aG9kczoge1xyXG4gICAgLi4ubWFwQWN0aW9ucygnYWNjb3VudHMnLCBbXHJcbiAgICAgICdmZXRjaFVpU2V0dGluZ3MnLFxyXG4gICAgXSksXHJcbiAgICBkb3dubG9hZCh7IHBhcmFtcyB9LCBzaWduYWwpIHtcclxuICAgICAgcmV0dXJuIG9yZGVyc1NlcnZpY2UuZ2V0UGFsbGV0c1dpdGhJZCh7XHJcbiAgICAgICAgb3JkZXJJZDogdGhpcy4kcm91dGUucGFyYW1zLmlkLFxyXG4gICAgICAgIGlkOiB0aGlzLiRyb3V0ZS5wYXJhbXMucGFsbGV0SWQsXHJcbiAgICAgICAgcGFyYW1zLFxyXG4gICAgICB9LCBzaWduYWwpO1xyXG4gICAgfSxcclxuICB9LFxyXG59O1xyXG48L3NjcmlwdD5cclxuIiwiaW1wb3J0IG1vZCBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEzLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RocmVhZC1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9EZXRhaWwudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xMy0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vRGV0YWlsLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qc1wiIl0sInNvdXJjZVJvb3QiOiIifQ==