PageSourceSearch

https://app.nempos.dk/js/6713.02fbbe6c.js

js nempos.dk collected 2026-10-08 03:43:45 UTC 40,985 bytes, 2 lines download raw bytes

1"use strict";(self["webpackChunkwsypos_frontend"]=self["webpackChunkwsypos_frontend"]||[]).push([[6713],{36713:function(t,e,s){s.r(e),s.d(e,{default:function(){return l}});var i=function(){var t=this,e=t._self._c;return e("div",{staticClass:"col main-right-col p-4"},[e("h1",[t._v(t._s(t.getMode()))]),t._v(" Change to: "),e("button",{on:{click:function(e){return t.changeMode("sandbox")}}},[t._v("Sandbox")]),e("button",{on:{click:function(e){return t.changeMode("live")}}},[t._v("Live")]),e("button",{on:{click:function(e){return t.changeMode("certification")}}},[t._v("certification")]),e("div",{staticClass:"col-12 mb-3 ml-2"},[e("span",{staticClass:"h1"},[t._v(t._s(t.$t("superadmin.mobilepay.poses.name")))]),e("span",{staticClass:"btn-group float-end ms-2"},[e("router-link",{attrs:{to:"MobilePayOverview"}},[e("button",{staticClass:"btn btn-info",attrs:{type:"button"}},[t._v(t._s(t.$t("superadmin.mobilepay.name")))])])],1)]),e("div",{staticClass:"col-12 mb-3"},[e("table",{staticClass:"table table-striped"},[e("thead",[e("tr",{staticClass:"sortable-header"},[e("th",{staticStyle:{"background-color":"green",color:"white"}},[t._v(" "+t._s(t.$t("superadmin.mobilepaypos.beaconId"))+" ")]),e("th",[t._v(" "+t._s(t.$t("superadmin.mobilepaypos.merchantPosId"))+" ")]),e("th",[t._v(" "+t._s(t.$t("superadmin.mobilepaypos.name"))+" ")]),e("th",{staticStyle:{"background-color":"green",color:"white"}},[t._v(" "+t._s(t.$t("superadmin.mobilepaypos.posId"))+" ")]),e("th",[t._v(" "+t._s(t.$t("superadmin.mobilepaypos.requirePaymentBeforeCheckin"))+" ")]),e("th",[t._v(" "+t._s(t.$t("superadmin.mobilepaypos.storeId"))+" ")]),e("th",[t._v(" "+t._s(t.$t("superadmin.mobilepaypos.supportedBeaconTypes"))+" ")]),e("th",{staticClass:"actions"},[t._v(t._s(t.$t("admin.actions")))])])]),e("tbody",t._l(this.mobilepayposes,(function(s,i){return e("tr",{key:s.beacondId},[e("td",[t._v(" "+t._s(s.beaconId)+" ")]),e("td",[t._v(" "+t._s(s.merchantPosId)+" ")]),e("td",[t._v(" "+t._s(s.name)+" ")]),e("td",[t._v(" "+t._s(s.posId)+" ")]),e("td",[t._v(" "+t._s(s.requirePaymentBeforeCheckin)+" ")]),e("td",[t._v(" "+t._s(s.storeId)+" ")]),e("td",[t._v(" "+t._s(s.supportedBeaconTypes)+" ")]),e("td")])})),0)])]),e("div",{staticClass:"col-5"},[e("table",{staticClass:"table table-striped"},[e("thead",[e("tr",{staticClass:"sortable-header"},[e("th",[t._v(" "+t._s(t.$t("register"))+" ")]),e("th",[t._v(" "+t._s(t.$t("id"))+" ")]),e("th",[t._v(" "+t._s(t.$t("uuid"))+" ")]),e("th",[t._v("MerchantQrId")]),e("th",[t._v(" "+t._s(t.$t("actions"))+" ")])])]),e("tbody",t._l(this.registers,(function(s,i){return e("tr",{key:s.uuid},[e("td",[t._v(t._s(s.name))]),e("td",[t._v(t._s(s.identifier))]),e("td",[t._v(t._s(s.uuid))]),e("td",{domProps:{innerHTML:t._s(t.registerHasVippsMobilepayPOS(s))}}),t.registerHasMobilepay(s.identifier)||t.registerHasVippsMobilepayPOS(s)?t.registerHasVippsMobilepayPOS(s)?e("td"):e("td",[e("button",{on:{click:function(e){return t.convertToVipps(s.uuid)}}},[t._v("Convert to VIPPS")]),e("button",{on:{click:function(e){return t.deletePos(s.uuid)}}},[t._v("Delete point-of-sale")])]):e("td",[e("button",{on:{click:function(e){return t.createPos(s)}}},[t._v(" Create mobilepay POS remotely and assign to company ")])])])})),0)])]),e("div",{staticClass:"col-5"},[e("h3",[t._v("DENNE LOG ER KUN TIL WEL - LAD VÆR MED AT KIGGE PÅ DEN!")]),e("table",{staticClass:"table table-striped"},[t._m(0),e("tbody",t._l(this.mobilepaypos_actions,(function(s,i){return e("tr",{key:t.mobilepaypos_actions.id},[e("td",[t._v(t._s(s.mode))]),e("td",[t._v(t._s(s.posid))]),e("td",[t._v(t._s(s.storeid))]),e("td",[t._v(t._s(s.action))]),e("td",[t._v(t._s(s.params))]),e("td",[t._v(t._s(s.idempotency_key))]),e("td",[t._v(t._s(s.result_code))]),e("td",[t._v(t._s(s.result_header))]),e("td",[t._v(t._s(s.result_body))]),e("td",[t._v(t._s(s.created_at))])])})),0)])])])},o=[function(){var t=this,e=t._self._c;return e("thead",[e("tr",{staticClass:"sortable-header"},[e("th",[t._v("mode")]),e("th",[t._v("posid")]),e("th",[t._v("storeid")]),e("th",[t._v("params")]),e("th",[t._v("idempotency_key")]),e("th",[t._v("result_co
1de")]),e("th",[t._v("result_header")]),e("th",[t._v("result_body")]),e("th",[t._v("created_at")])])])}],a={name:"MobilePayPoses",data(){return{mobilepayposes:!1,registers:!1,register_prefix:"Kasse",mobilepaypos_actions:!1,interval:null}},methods:{changeMode(t){this.$store.commit("setMobilepayposMode",t)},getMode(){return this.$store.getters.mobilepayposMode},async getmobilepayPoSes(){let t={mode:this.getMode()},e=await this.wsyAPI.get("mobilepaypos-poses/"+this.$route.params.storeid,t);this.wsyAPI.validateResponse(e)&&(this.mobilepayposes=e.mobilepaypos_poses,this.meta=e.meta)},async getRegisters(){let t={},e=await this.wsyAPI.get("registers",t);this.wsyAPI.validateResponse(e)&&(this.registers=e.registers,this.meta=e.meta)},async getLatestActions(){let t={mode:this.getMode()},e=await this.wsyAPI.get("mobilepaypos-actions",t);this.wsyAPI.validateResponse(e)&&(this.mobilepaypos_actions=e.mobilepaypos_actions,this.meta=e.meta)},getRegisterMobilepayPOS:function(t){for(let e=0;e<this.mobilepayposes.length;e++){let s=this.mobilepayposes[e];if(s.beaconId==t.uuid)return s}},registerHasMobilepay:function(t){return this.mobilepayposes&&this.mobilepayposes.some((e=>e.merchantPosId===this.register_prefix+""+t))},registerHasVippsMobilepayPOS:function(t){for(let e=0;e<t.payment_types.length;e++){let s=t.payment_types[e];if("vippsmobilepaypos"==s.interface.key)return"YES"}},async convertToVipps(t){let e={register_uuid:t,mode:this.getMode()},s=await this.wsyAPI.post("vippsmobilepay-convert",e);this.wsyAPI.validateResponse(s)?this.meta=s.meta:this.$store.commit("dangerNotify",s.message)},async deletePos(t){let e={register_uuid:t,mode:this.getMode()},s=await this.wsyAPI.delete("mobilepaypos-poses",e);this.wsyAPI.validateResponse(s)&&(this.mobilepayposes=s.mobilepaypos_poses,this.meta=s.meta)},async createPos(t){let e={register_uuid:t.uuid,mode:this.getMode()},s=await this.wsyAPI.post("mobilepaypos-poses/"+this.$route.params.storeid,e);this.wsyAPI.validateResponse(s)&&(this.mobilepayposes=s.mobilepaypos_poses,this.meta=s.meta)}},computed:{},created(){this.getmobilepayPoSes(),this.getRegisters(),this.getLatestActions(),this.interval=window.setInterval((()=>{this.getmobilepayPoSes(),this.getLatestActions()}),5e3)},beforeDestroy(){window.clearInterval(this.interval)}},r=a,n=s(81656),p=(0,n.A)(r,i,o,!1,null,"47edf667",null),l=p.exports}}]);
2//# sourceMappingURL=data:application/json;charset=utf-8;base64,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BUyxrQkFBQSxHQUNBLElBQ0EsRUFFQWtCLGFBQUFBLEdBQ0FGLE9BQUFHLGNBQUEsS0FBQW5DLFNBQ0EsR0MxUitRLEksV0NRM1FvQyxHQUFZLE9BQ2QsRUFDQTNGLEVBQ0FvRCxHQUNBLEVBQ0EsS0FDQSxXQUNBLE1BSUYsRUFBZXVDLEVBQWlCLE8iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly93c3lwb3MtZnJvbnRlbmQvLi9zcmMvdmlld3Mvc2lnbmVkX2luL3N1cGVyYWRtaW4vTW9iaWxlUGF5UG9TZXMudnVlIiwid2VicGFjazovL3dzeXBvcy1mcm9udGVuZC9zcmMvdmlld3Mvc2lnbmVkX2luL3N1cGVyYWRtaW4vTW9iaWxlUGF5UG9TZXMudnVlIiwid2VicGFjazovL3dzeXBvcy1mcm9udGVuZC8uL3NyYy92aWV3cy9zaWduZWRfaW4vc3VwZXJhZG1pbi9Nb2JpbGVQYXlQb1Nlcy52dWU/OGM1OSIsIndlYnBhY2s6Ly93c3lwb3MtZnJvbnRlbmQvLi9zcmMvdmlld3Mvc2lnbmVkX2luL3N1cGVyYWRtaW4vTW9iaWxlUGF5UG9TZXMudnVlP2NmZjAiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIHJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcigpe3ZhciBfdm09dGhpcyxfYz1fdm0uX3NlbGYuX2M7cmV0dXJuIF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImNvbCBtYWluLXJpZ2h0LWNvbCBwLTRcIn0sW19jKCdoMScsW192bS5fdihfdm0uX3MoX3ZtLmdldE1vZGUoKSkpXSksX3ZtLl92KFwiIENoYW5nZSB0bzogXCIpLF9jKCdidXR0b24nLHtvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5jaGFuZ2VNb2RlKCdzYW5kYm94Jyl9fX0sW192bS5fdihcIlNhbmRib3hcIildKSxfYygnYnV0dG9uJyx7b246e1wiY2xpY2tcIjpmdW5jdGlvbigkZXZlbnQpe3JldHVybiBfdm0uY2hhbmdlTW9kZSgnbGl2ZScpfX19LFtfdm0uX3YoXCJMaXZlXCIpXSksX2MoJ2J1dHRvbicse29uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmNoYW5nZU1vZGUoJ2NlcnRpZmljYXRpb24nKX19fSxbX3ZtLl92KFwiY2VydGlmaWNhdGlvblwiKV0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImNvbC0xMiBtYi0zIG1sLTJcIn0sW19jKCdzcGFuJyx7c3RhdGljQ2xhc3M6XCJoMVwifSxbX3ZtLl92KF92bS5fcyhfdm0uJHQoXCJzdXBlcmFkbWluLm1vYmlsZXBheS5wb3Nlcy5uYW1lXCIpKSldKSxfYygnc3Bhbicse3N0YXRpY0NsYXNzOlwiYnRuLWdyb3VwIGZsb2F0LWVuZCBtcy0yXCJ9LFtfYygncm91dGVyLWxpbmsnLHthdHRyczp7XCJ0b1wiOlwiTW9iaWxlUGF5T3ZlcnZpZXdcIn19LFtfYygnYnV0dG9uJyx7c3RhdGljQ2xhc3M6XCJidG4gYnRuLWluZm9cIixhdHRyczp7XCJ0eXBlXCI6XCJidXR0b25cIn19LFtfdm0uX3YoX3ZtLl9zKF92bS4kdChcInN1cGVyYWRtaW4ubW9iaWxlcGF5Lm5hbWVcIikpKV0pXSldLDEpXSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwiY29sLTEyIG1iLTNcIn0sW19jKCd0YWJsZScse3N0YXRpY0NsYXNzOlwidGFibGUgdGFibGUtc3RyaXBlZFwifSxbX2MoJ3RoZWFkJyxbX2MoJ3RyJyx7c3RhdGljQ2xhc3M6XCJzb3J0YWJsZS1oZWFkZXJcIn0sW19jKCd0aCcse3N0YXRpY1N0eWxlOntcImJhY2tncm91bmQtY29sb3JcIjpcImdyZWVuXCIsXCJjb2xvclwiOlwid2hpdGVcIn19LFtfdm0uX3YoXCIgXCIrX3ZtLl9zKF92bS4kdChcInN1cGVyYWRtaW4ubW9iaWxlcGF5cG9zLmJlYWNvbklkXCIpKStcIiBcIildKSxfYygndGgnLFtfdm0uX3YoXCIgXCIrX3ZtLl9zKF92bS4kdChcInN1cGVyYWRtaW4ubW9iaWxlcGF5cG9zLm1lcmNoYW50UG9zSWRcIikpK1wiIFwiKV0pLF9jKCd0aCcsW192bS5fdihcIiBcIitfdm0uX3MoX3ZtLiR0KFwic3VwZXJhZG1pbi5tb2JpbGVwYXlwb3MubmFtZVwiKSkrXCIgXCIpXSksX2MoJ3RoJyx7c3RhdGljU3R5bGU6e1wiYmFja2dyb3VuZC1jb2xvclwiOlwiZ3JlZW5cIixcImNvbG9yXCI6XCJ3aGl0ZVwifX0sW192bS5fdihcIiBcIitfdm0uX3MoX3ZtLiR0KFwic3VwZXJhZG1pbi5tb2JpbGVwYXlwb3MucG9zSWRcIikpK1wiIFwiKV0pLF9jKCd0aCcsW192bS5fdihcIiBcIitfdm0uX3MoX3ZtLiR0KFwic3VwZXJhZG1pbi5tb2JpbGVwYXlwb3MucmVxdWlyZVBheW1lbnRCZWZvcmVDaGVja2luXCIpKStcIiBcIildKSxfYygndGgnLFtfdm0uX3YoXCIgXCIrX3ZtLl9zKF92bS4kdChcInN1cGVyYWRtaW4ubW9iaWxlcGF5cG9zLnN0b3JlSWRcIikpK1wiIFwiKV0pLF9jKCd0aCcsW192bS5fdihcIiBcIitfdm0uX3MoX3ZtLiR0KFwic3VwZXJhZG1pbi5tb2JpbGVwYXlwb3Muc3VwcG9ydGVkQmVhY29uVHlwZXNcIikpK1wiIFwiKV0pLF9jKCd0aCcse3N0YXRpY0NsYXNzOlwiYWN0aW9uc1wifSxbX3ZtLl92KF92bS5fcyhfdm0uJHQoXCJhZG1pbi5hY3Rpb25zXCIpKSldKV0pXSksX2MoJ3Rib2R5Jyxfdm0uX2woKHRoaXMubW9iaWxlcGF5cG9zZXMpLGZ1bmN0aW9uKG1vYmlsZXBheXBvc19pLGluZGV4KXtyZXR1cm4gX2MoJ3RyJyx7a2V5Om1vYmlsZXBheXBvc19pLmJlYWNvbmRJZH0sW19jKCd0ZCcsW192bS5fdihcIiBcIitfdm0uX3MobW9iaWxlcGF5cG9zX2kuYmVhY29uSWQpK1wiIFwiKV0pLF9jKCd0ZCcsW192bS5fdihcIiBcIitfdm0uX3MobW9iaWxlcGF5cG9zX2kubWVyY2hhbnRQb3NJZCkrXCIgXCIpXSksX2MoJ3RkJyxbX3ZtLl92KFwiIFwiK192bS5fcyhtb2JpbGVwYXlwb3NfaS5uYW1lKStcIiBcIildKSxfYygndGQnLFtfdm0uX3YoXCIgXCIrX3ZtLl9zKG1vYmlsZXBheXBvc19pLnBvc0lkKStcIiBcIildKSxfYygndGQnLFtfdm0uX3YoXCIgXCIrX3ZtLl9zKG1vYmlsZXBheXBvc19pLnJlcXVpcmVQYXltZW50QmVmb3JlQ2hlY2tpbikrXCIgXCIpXSksX2MoJ3RkJyxbX3ZtLl92KFwiIFwiK192bS5fcyhtb2JpbGVwYXlwb3NfaS5zdG9yZUlkKStcIiBcIildKSxfYygndGQnLFtfdm0uX3YoXCIgXCIrX3ZtLl9zKG1vYmlsZXBheXBvc19pLnN1cHBvcnRlZEJlYWNvblR5cGVzKStcIiBcIildKSxfYygndGQnKV0pfSksMCldKV0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImNvbC01XCJ9LFtfYygndGFibGUnLHtzdGF0aWNDbGFzczpcInRhYmxlIHRhYmxlLXN0cmlwZWRcIn0sW19jKCd0aGVhZCcsW19jKCd0cicse3N0YXRpY0NsYXNzOlwic29ydGFibGUtaGVhZGVyXCJ9LFtfYygndGgnLFtfdm0uX3YoXCIgXCIrX3ZtLl9zKF92bS4kdChcInJlZ2lzdGVyXCIpKStcIiBcIildKSxfYygndGgnLFtfdm0uX3YoXCIgXCIrX3ZtLl9zKF92bS4kdChcImlkXCIpKStcIiBcIildKSxfYygndGgnLFtfdm0uX3YoXCIgXCIrX3ZtLl9zKF92bS4kdChcInV1aWRcIikpK1wiIFwiKV0pLF9jKCd0aCcsW192bS5fdihcIk1lcmNoYW50UXJJZFwiKV0pLF9jKCd0aCcsW192bS5fdihcIiBcIitfdm0uX3MoX3ZtLiR0KFwiYWN0aW9uc1wiKSkrXCIgXCIpXSldKV0pLF9jKCd0Ym9keScsX3ZtLl9sKCh0aGlzLnJlZ2lzdGVycyksZnVuY3Rpb24ocmVnaXN0ZXJfaSxpbmRleCl7cmV0dXJuIF9jKCd0cicse2tleTpyZWdpc3Rlcl9pLnV1aWR9LFtfYygndGQnLFtfdm0uX3YoX3ZtLl9zKHJlZ2lzdGVyX2kubmFtZSkpXSksX2MoJ3RkJyxbX3ZtLl92KF92bS5fcyhyZWdpc3Rlcl9pLmlkZW50aWZpZXIpKV0pLF9jKCd0ZCcsW192bS5fdihfdm0uX3MocmVnaXN0ZXJfaS51dWlkKSldKSxfYygndGQnLHtkb21Qcm9wczp7XCJpbm5lckhUTUxcIjpfdm0uX3MoX3ZtLnJlZ2lzdGVySGFzVmlwcHNNb2JpbGVwYXlQT1MocmVnaXN0ZXJfaSkpfX0pLChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAhX3ZtLnJlZ2lzdGVySGFzTW9iaWxlcGF5KHJlZ2lzdGVyX2kuaWRlbnRpZmllcikgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAhX3ZtLnJlZ2lzdGVySGFzVmlwcHNNb2JpbGVwYXlQT1MocmVnaXN0ZXJfaSlcbiAgICAgICAgICAgICAgICAgICAgICAgICk/X2MoJ3RkJyxbX2MoJ2J1dHRvbicse29uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmNyZWF0ZVBvcyhyZWdpc3Rlcl9pKX19fSxbX3ZtLl92KFwiIENyZWF0ZSBtb2JpbGVwYXkgUE9TIHJlbW90ZWx5IGFuZCBhc3NpZ24gdG8gY29tcGFueSBcIildKV0pOighX3ZtLnJlZ2lzdGVySGFzVmlwcHNNb2JpbGVwYXlQT1MocmVnaXN0ZXJfaSkpP19jKCd0ZCcsW19jKCdidXR0b24nLHtvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5jb252ZXJ0VG9WaXBwcyhyZWdpc3Rlcl9pLnV1aWQpfX19LFtfdm0uX3YoXCJDb252ZXJ0IHRvIFZJUFBTXCIpXSksX2MoJ2J1dHRvbicse29uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmRlbGV0ZVBvcyhyZWdpc3Rlcl9pLnV1aWQpfX19LFtfdm0uX3YoXCJEZWxldGUgcG9pbnQtb2Ytc2FsZVwiKV0pXSk6X2MoJ3RkJyldKX0pLDApXSldKSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJjb2wtNVwifSxbX2MoJ2gzJyxbX3ZtLl92KFwiREVOTkUgTE9HIEVSIEtVTiBUSUwgV0VMIC0gTEFEIFbDhlIgTUVEIEFUIEtJR0dFIFDDhSBERU4hXCIpXSksX2MoJ3RhYmxlJyx7c3RhdGljQ2xhc3M6XCJ0YWJsZSB0YWJsZS1zdHJpcGVkXCJ9LFtfdm0uX20oMCksX2MoJ3Rib2R5Jyxfdm0uX2woKHRoaXMubW9iaWxlcGF5cG9zX2FjdGlvbnMpLGZ1bmN0aW9uKGFjdGlvbl9pLGluZGV4KXtyZXR1cm4gX2MoJ3RyJyx7a2V5Ol92bS5tb2JpbGVwYXlwb3NfYWN0aW9ucy5pZH0sW19jKCd0ZCcsW192bS5fdihfdm0uX3MoYWN0aW9uX2kubW9kZSkpXSksX2MoJ3RkJyxbX3ZtLl92KF92bS5fcyhhY3Rpb25faS5wb3NpZCkpXSksX2MoJ3RkJyxbX3ZtLl92KF92bS5fcyhhY3Rpb25faS5zdG9yZWlkKSldKSxfYygndGQnLFtfdm0uX3YoX3ZtLl9zKGFjdGlvbl9pLmFjdGlvbikpXSksX2MoJ3RkJyxbX3ZtLl92KF92bS5fcyhhY3Rpb25faS5wYXJhbXMpKV0pLF9jKCd0ZCcsW192bS5fdihfdm0uX3MoYWN0aW9uX2kuaWRlbX
2BvdGVuY3lfa2V5KSldKSxfYygndGQnLFtfdm0uX3YoX3ZtLl9zKGFjdGlvbl9pLnJlc3VsdF9jb2RlKSldKSxfYygndGQnLFtfdm0uX3YoX3ZtLl9zKGFjdGlvbl9pLnJlc3VsdF9oZWFkZXIpKV0pLF9jKCd0ZCcsW192bS5fdihfdm0uX3MoYWN0aW9uX2kucmVzdWx0X2JvZHkpKV0pLF9jKCd0ZCcsW192bS5fdihfdm0uX3MoYWN0aW9uX2kuY3JlYXRlZF9hdCkpXSldKX0pLDApXSldKV0pXG59XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW2Z1bmN0aW9uICgpe3ZhciBfdm09dGhpcyxfYz1fdm0uX3NlbGYuX2M7cmV0dXJuIF9jKCd0aGVhZCcsW19jKCd0cicse3N0YXRpY0NsYXNzOlwic29ydGFibGUtaGVhZGVyXCJ9LFtfYygndGgnLFtfdm0uX3YoXCJtb2RlXCIpXSksX2MoJ3RoJyxbX3ZtLl92KFwicG9zaWRcIildKSxfYygndGgnLFtfdm0uX3YoXCJzdG9yZWlkXCIpXSksX2MoJ3RoJyxbX3ZtLl92KFwicGFyYW1zXCIpXSksX2MoJ3RoJyxbX3ZtLl92KFwiaWRlbXBvdGVuY3lfa2V5XCIpXSksX2MoJ3RoJyxbX3ZtLl92KFwicmVzdWx0X2NvZGVcIildKSxfYygndGgnLFtfdm0uX3YoXCJyZXN1bHRfaGVhZGVyXCIpXSksX2MoJ3RoJyxbX3ZtLl92KFwicmVzdWx0X2JvZHlcIildKSxfYygndGgnLFtfdm0uX3YoXCJjcmVhdGVkX2F0XCIpXSldKV0pXG59XVxuXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IiwiPHRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJjb2wgbWFpbi1yaWdodC1jb2wgcC00XCI+XG4gICAgICAgIDxoMT57eyBnZXRNb2RlKCkgfX08L2gxPlxuICAgICAgICBDaGFuZ2UgdG86XG4gICAgICAgIDxidXR0b24gQGNsaWNrPVwiY2hhbmdlTW9kZSgnc2FuZGJveCcpXCI+U2FuZGJveDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIEBjbGljaz1cImNoYW5nZU1vZGUoJ2xpdmUnKVwiPkxpdmU8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBAY2xpY2s9XCJjaGFuZ2VNb2RlKCdjZXJ0aWZpY2F0aW9uJylcIj5jZXJ0aWZpY2F0aW9uPC9idXR0b24+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgbWItMyBtbC0yXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImgxXCI+e3sgJHQoXCJzdXBlcmFkbWluLm1vYmlsZXBheS5wb3Nlcy5uYW1lXCIpIH19PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJidG4tZ3JvdXAgZmxvYXQtZW5kIG1zLTJcIj5cbiAgICAgICAgICAgICAgICA8cm91dGVyLWxpbmsgdG89XCJNb2JpbGVQYXlPdmVydmlld1wiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4taW5mb1wiPnt7ICR0KFwic3VwZXJhZG1pbi5tb2JpbGVwYXkubmFtZVwiKSB9fTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvcm91dGVyLWxpbms+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIG1iLTNcIj5cbiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlIHRhYmxlLXN0cmlwZWRcIj5cbiAgICAgICAgICAgICAgICA8dGhlYWQ+XG4gICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInNvcnRhYmxlLWhlYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47IGNvbG9yOiB3aGl0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICR0KFwic3VwZXJhZG1pbi5tb2JpbGVwYXlwb3MuYmVhY29uSWRcIikgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJHQoXCJzdXBlcmFkbWluLm1vYmlsZXBheXBvcy5tZXJjaGFudFBvc0lkXCIpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICR0KFwic3VwZXJhZG1pbi5tb2JpbGVwYXlwb3MubmFtZVwiKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IGdyZWVuOyBjb2xvcjogd2hpdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAkdChcInN1cGVyYWRtaW4ubW9iaWxlcGF5cG9zLnBvc0lkXCIpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICR0KFwic3VwZXJhZG1pbi5tb2JpbGVwYXlwb3MucmVxdWlyZVBheW1lbnRCZWZvcmVDaGVja2luXCIpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICR0KFwic3VwZXJhZG1pbi5tb2JpbGVwYXlwb3Muc3RvcmVJZFwiKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAkdChcInN1cGVyYWRtaW4ubW9iaWxlcGF5cG9zLnN1cHBvcnRlZEJlYWNvblR5cGVzXCIpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiYWN0aW9uc1wiPnt7ICR0KFwiYWRtaW4uYWN0aW9uc1wiKSB9fTwvdGg+XG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgPC90aGVhZD5cbiAgICAgICAgICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgICAgICAgICAgIDx0ciB2LWZvcj1cIihtb2JpbGVwYXlwb3NfaSwgaW5kZXgpIGluIHRoaXMubW9iaWxlcGF5cG9zZXNcIiA6a2V5PVwibW9iaWxlcGF5cG9zX2kuYmVhY29uZElkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgbW9iaWxlcGF5cG9zX2kuYmVhY29uSWQgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgbW9iaWxlcGF5cG9zX2kubWVyY2hhbnRQb3NJZCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBtb2JpbGVwYXlwb3NfaS5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgI
2Ht7IG1vYmlsZXBheXBvc19pLnBvc0lkIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IG1vYmlsZXBheXBvc19pLnJlcXVpcmVQYXltZW50QmVmb3JlQ2hlY2tpbiB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBtb2JpbGVwYXlwb3NfaS5zdG9yZUlkIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IG1vYmlsZXBheXBvc19pLnN1cHBvcnRlZEJlYWNvblR5cGVzIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgICAgIDwvdGFibGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTVcIj5cbiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlIHRhYmxlLXN0cmlwZWRcIj5cbiAgICAgICAgICAgICAgICA8dGhlYWQ+XG4gICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInNvcnRhYmxlLWhlYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICR0KFwicmVnaXN0ZXJcIikgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJHQoXCJpZFwiKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAkdChcInV1aWRcIikgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGg+TWVyY2hhbnRRcklkPC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAkdChcImFjdGlvbnNcIikgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgPC90aGVhZD5cbiAgICAgICAgICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgICAgICAgICAgIDx0ciB2LWZvcj1cIihyZWdpc3Rlcl9pLCBpbmRleCkgaW4gdGhpcy5yZWdpc3RlcnNcIiA6a2V5PVwicmVnaXN0ZXJfaS51dWlkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3sgcmVnaXN0ZXJfaS5uYW1lIH19PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57eyByZWdpc3Rlcl9pLmlkZW50aWZpZXIgfX08L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7IHJlZ2lzdGVyX2kudXVpZCB9fTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgdi1odG1sPVwicmVnaXN0ZXJIYXNWaXBwc01vYmlsZXBheVBPUyhyZWdpc3Rlcl9pKVwiPjwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LWlmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFyZWdpc3Rlckhhc01vYmlsZXBheShyZWdpc3Rlcl9pLmlkZW50aWZpZXIpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFyZWdpc3Rlckhhc1ZpcHBzTW9iaWxlcGF5UE9TKHJlZ2lzdGVyX2kpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIEBjbGljaz1cImNyZWF0ZVBvcyhyZWdpc3Rlcl9pKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGUgbW9iaWxlcGF5IFBPUyByZW1vdGVseSBhbmQgYXNzaWduIHRvIGNvbXBhbnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgdi1lbHNlLWlmPVwiIXJlZ2lzdGVySGFzVmlwcHNNb2JpbGVwYXlQT1MocmVnaXN0ZXJfaSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIEBjbGljaz1cImNvbnZlcnRUb1ZpcHBzKHJlZ2lzdGVyX2kudXVpZClcIj5Db252ZXJ0IHRvIFZJUFBTPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBAY2xpY2s9XCJkZWxldGVQb3MocmVnaXN0ZXJfaS51dWlkKVwiPkRlbGV0ZSBwb2ludC1vZi1zYWxlPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIHYtZWxzZT48L3RkPlxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgICAgICA8L3RhYmxlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC01XCI+XG4gICAgICAgICAgICA8aDM+REVOTkUgTE9HIEVSIEtVTiBUSUwgV0VMIC0gTEFEIFbDhlIgTUVEIEFUIEtJR0dFIFDDhSBERU4hPC9oMz5cbiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlIHRhYmxlLXN0cmlwZWRcIj5cbiAgICAgICAgICAgICAgICA8dGhlYWQ+XG4gICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInNvcnRhYmxlLWhlYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoPm1vZGU8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoPnBvc2lkPC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5zdG9yZWlkPC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5wYXJhbXM8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoPmlkZW1wb3RlbmN5X2tleTwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGg+cmVzdWx0X2NvZGU8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoPnJlc3VsdF9oZWFkZXI8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoPnJlc3VsdF9ib2R5PC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5jcmVhdGVkX2F0PC90aD5cbiAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICA8L3RoZWFkPlxuICAgICAgICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgICAgICAgICAgPHRyIHYtZm9yPVwiKGFjdGlvbl9pLCBpbmRleCkgaW4gdGhpcy5tb2JpbGVwYXlwb3NfYWN0aW9uc1wiIDprZXk9XCJtb2JpbGVwYXlwb3NfYWN0aW9ucy5pZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7IGFjdGlvbl9pLm1vZGUgfX08L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7IGFjdGlvbl9pLnBvc2lkIH19PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57eyBhY3Rpb25faS5zdG9yZWlkIH19PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57eyBhY3Rpb25faS5hY3Rpb24gfX08L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7IGFjdGlvbl9pLnBhcmFtcyB9fTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3sgYWN0aW9uX2kuaWRlbX
2BvdGVuY3lfa2V5IH19PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57eyBhY3Rpb25faS5yZXN1bHRfY29kZSB9fTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3sgYWN0aW9uX2kucmVzdWx0X2hlYWRlciB9fTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3sgYWN0aW9uX2kucmVzdWx0X2JvZHkgfX08L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7IGFjdGlvbl9pLmNyZWF0ZWRfYXQgfX08L3RkPlxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgICAgICA8L3RhYmxlPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG5leHBvcnQgZGVmYXVsdCB7XG4gICAgbmFtZTogXCJNb2JpbGVQYXlQb3Nlc1wiLFxuXG4gICAgZGF0YSgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG1vYmlsZXBheXBvc2VzOiBmYWxzZSxcbiAgICAgICAgICAgIHJlZ2lzdGVyczogZmFsc2UsXG4gICAgICAgICAgICByZWdpc3Rlcl9wcmVmaXg6IFwiS2Fzc2VcIixcbiAgICAgICAgICAgIG1vYmlsZXBheXBvc19hY3Rpb25zOiBmYWxzZSxcbiAgICAgICAgICAgIGludGVydmFsOiBudWxsLFxuICAgICAgICB9XG4gICAgfSxcblxuICAgIG1ldGhvZHM6IHtcbiAgICAgICAgY2hhbmdlTW9kZSh2YWwpIHtcbiAgICAgICAgICAgIHRoaXMuJHN0b3JlLmNvbW1pdChcInNldE1vYmlsZXBheXBvc01vZGVcIiwgdmFsKVxuICAgICAgICB9LFxuICAgICAgICBnZXRNb2RlKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuJHN0b3JlLmdldHRlcnMubW9iaWxlcGF5cG9zTW9kZVxuICAgICAgICB9LFxuICAgICAgICBhc3luYyBnZXRtb2JpbGVwYXlQb1NlcygpIHtcbiAgICAgICAgICAgIGxldCBwYXJhbXMgPSB7IG1vZGU6IHRoaXMuZ2V0TW9kZSgpIH1cblxuICAgICAgICAgICAgbGV0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy53c3lBUEkuZ2V0KFwibW9iaWxlcGF5cG9zLXBvc2VzL1wiICsgdGhpcy4kcm91dGUucGFyYW1zLnN0b3JlaWQsIHBhcmFtcylcblxuICAgICAgICAgICAgaWYgKHRoaXMud3N5QVBJLnZhbGlkYXRlUmVzcG9uc2UocmVzcG9uc2UpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tb2JpbGVwYXlwb3NlcyA9IHJlc3BvbnNlLm1vYmlsZXBheXBvc19wb3Nlc1xuICAgICAgICAgICAgICAgIHRoaXMubWV0YSA9IHJlc3BvbnNlLm1ldGFcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgYXN5bmMgZ2V0UmVnaXN0ZXJzKCkge1xuICAgICAgICAgICAgbGV0IHBhcmFtcyA9IHt9XG5cbiAgICAgICAgICAgIGxldCByZXNwb25zZSA9IGF3YWl0IHRoaXMud3N5QVBJLmdldChcInJlZ2lzdGVyc1wiLCBwYXJhbXMpXG5cbiAgICAgICAgICAgIGlmICh0aGlzLndzeUFQSS52YWxpZGF0ZVJlc3BvbnNlKHJlc3BvbnNlKSkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJzID0gcmVzcG9uc2UucmVnaXN0ZXJzXG4gICAgICAgICAgICAgICAgdGhpcy5tZXRhID0gcmVzcG9uc2UubWV0YVxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBhc3luYyBnZXRMYXRlc3RBY3Rpb25zKCkge1xuICAgICAgICAgICAgbGV0IHBhcmFtcyA9IHsgbW9kZTogdGhpcy5nZXRNb2RlKCkgfVxuXG4gICAgICAgICAgICBsZXQgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLndzeUFQSS5nZXQoXCJtb2JpbGVwYXlwb3MtYWN0aW9uc1wiLCBwYXJhbXMpXG5cbiAgICAgICAgICAgIGlmICh0aGlzLndzeUFQSS52YWxpZGF0ZVJlc3BvbnNlKHJlc3BvbnNlKSkge1xuICAgICAgICAgICAgICAgIHRoaXMubW9iaWxlcGF5cG9zX2FjdGlvbnMgPSByZXNwb25zZS5tb2JpbGVwYXlwb3NfYWN0aW9uc1xuICAgICAgICAgICAgICAgIHRoaXMubWV0YSA9IHJlc3BvbnNlLm1ldGFcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZ2V0UmVnaXN0ZXJNb2JpbGVwYXlQT1M6IGZ1bmN0aW9uIChyZWdpc3Rlcikge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLm1vYmlsZXBheXBvc2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vYmlsZXBheXBvc19pID0gdGhpcy5tb2JpbGVwYXlwb3Nlc1tpXVxuICAgICAgICAgICAgICAgIGlmIChtb2JpbGVwYXlwb3NfaS5iZWFjb25JZCA9PSByZWdpc3Rlci51dWlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBtb2JpbGVwYXlwb3NfaVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICB9LFxuICAgICAgICByZWdpc3Rlckhhc01vYmlsZXBheTogZnVuY3Rpb24gKGlkZW50aWZpZXIpIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgdGhpcy5tb2JpbGVwYXlwb3NlcyAmJlxuICAgICAgICAgICAgICAgIHRoaXMubW9iaWxlcGF5cG9zZXMuc29tZSgoZWxlbWVudCkgPT4gZWxlbWVudC5tZXJjaGFudFBvc0lkID09PSB0aGlzLnJlZ2lzdGVyX3ByZWZpeCArIFwiXCIgKyBpZGVudGlmaWVyKVxuICAgICAgICAgICAgKVxuICAgICAgICB9LFxuICAgICAgICByZWdpc3Rlckhhc1ZpcHBzTW9iaWxlcGF5UE9TOiBmdW5jdGlvbiAocmVnaXN0ZXIpIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmVnaXN0ZXIucGF5bWVudF90eXBlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGxldCBwYXltZW50X3R5cGVfaSA9IHJlZ2lzdGVyLnBheW1lbnRfdHlwZXNbaV1cbiAgICAgICAgICAgICAgICBpZiAocGF5bWVudF90eXBlX2kuaW50ZXJmYWNlLmtleSA9PSBcInZpcHBzbW9iaWxlcGF5cG9zXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFwiWUVTXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgfSxcbiAgICAgICAgYXN5bmMgY29udmVydFRvVmlwcHModXVpZCkge1xuICAgICAgICAgICAgbGV0IHBhcmFtcyA9IHtcbiAgICAgICAgICAgICAgICByZWdpc3Rlcl91dWlkOiB1dWlkLFxuICAgICAgICAgICAgICAgIG1vZGU6IHRoaXMuZ2V0TW9kZSgpLFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy53c3lBUEkucG9zdChcInZpcHBzbW9iaWxlcGF5LWNvbnZlcnRcIiwgcGFyYW1zKVxuXG4gICAgICAgICAgICBpZiAodGhpcy53c3lBUEkudmFsaWRhdGVSZXNwb25zZShyZXNwb25zZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1ldGEgPSByZXNwb25zZS5tZXRhXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgI
2HRoaXMuJHN0b3JlLmNvbW1pdChcImRhbmdlck5vdGlmeVwiLCByZXNwb25zZS5tZXNzYWdlKVxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBhc3luYyBkZWxldGVQb3ModXVpZCkge1xuICAgICAgICAgICAgbGV0IHBhcmFtcyA9IHtcbiAgICAgICAgICAgICAgICByZWdpc3Rlcl91dWlkOiB1dWlkLFxuICAgICAgICAgICAgICAgIG1vZGU6IHRoaXMuZ2V0TW9kZSgpLFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy53c3lBUEkuZGVsZXRlKFwibW9iaWxlcGF5cG9zLXBvc2VzXCIsIHBhcmFtcylcblxuICAgICAgICAgICAgaWYgKHRoaXMud3N5QVBJLnZhbGlkYXRlUmVzcG9uc2UocmVzcG9uc2UpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tb2JpbGVwYXlwb3NlcyA9IHJlc3BvbnNlLm1vYmlsZXBheXBvc19wb3Nlc1xuICAgICAgICAgICAgICAgIHRoaXMubWV0YSA9IHJlc3BvbnNlLm1ldGFcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgYXN5bmMgY3JlYXRlUG9zKHJlZ2lzdGVyKSB7XG4gICAgICAgICAgICBsZXQgcGFyYW1zID0ge1xuICAgICAgICAgICAgICAgIHJlZ2lzdGVyX3V1aWQ6IHJlZ2lzdGVyLnV1aWQsXG4gICAgICAgICAgICAgICAgbW9kZTogdGhpcy5nZXRNb2RlKCksXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIC8vICAgICAnbmFtZScgPT4gJ3JlcXVpcmVkfHN0cmluZ3xtYXg6NTAnLFxuICAgICAgICAgICAgLy8gICAgICdkYXRhJyA9PiAncmVxdWlyZWR8YXJyYXknLFxuICAgICAgICAgICAgLy8gICAgICdpbnRlcmZhY2Uua2V5JyA9PiAncmVxdWlyZWR8c3RyaW5nfGluOmZsYXRwYXksdmlicmFudCxtb2JpbGVwYXlwb3MnLCAvLyBJTVBUT0RPOiBCZXR0ZXIgc29sdXRpb25cbiAgICAgICAgICAgIC8vIF07XG4gICAgICAgICAgICBsZXQgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLndzeUFQSS5wb3N0KFwibW9iaWxlcGF5cG9zLXBvc2VzL1wiICsgdGhpcy4kcm91dGUucGFyYW1zLnN0b3JlaWQsIHBhcmFtcylcblxuICAgICAgICAgICAgaWYgKHRoaXMud3N5QVBJLnZhbGlkYXRlUmVzcG9uc2UocmVzcG9uc2UpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tb2JpbGVwYXlwb3NlcyA9IHJlc3BvbnNlLm1vYmlsZXBheXBvc19wb3Nlc1xuICAgICAgICAgICAgICAgIHRoaXMubWV0YSA9IHJlc3BvbnNlLm1ldGFcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9LFxuICAgIGNvbXB1dGVkOiB7fSxcbiAgICBjcmVhdGVkKCkge1xuICAgICAgICB0aGlzLmdldG1vYmlsZXBheVBvU2VzKClcbiAgICAgICAgdGhpcy5nZXRSZWdpc3RlcnMoKVxuICAgICAgICB0aGlzLmdldExhdGVzdEFjdGlvbnMoKVxuXG4gICAgICAgIHRoaXMuaW50ZXJ2YWwgPSB3aW5kb3cuc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5nZXRtb2JpbGVwYXlQb1NlcygpXG4gICAgICAgICAgICB0aGlzLmdldExhdGVzdEFjdGlvbnMoKVxuICAgICAgICB9LCA1MDAwKVxuICAgIH0sXG5cbiAgICBiZWZvcmVEZXN0cm95KCkge1xuICAgICAgICB3aW5kb3cuY2xlYXJJbnRlcnZhbCh0aGlzLmludGVydmFsKVxuICAgIH0sXG59XG48L3NjcmlwdD5cblxuPHN0eWxlIGxhbmc9XCJzY3NzXCIgc2NvcGVkPlxuQGltcG9ydCBcIi4vc3JjL2Fzc2V0cy9yZXRoZW1lLnNjc3NcIjtcbjwvc3R5bGU+XG4iLCJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTQwLnVzZVsxXSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS92dWUtbG9hZGVyLXYxNS9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL01vYmlsZVBheVBvU2VzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qc1wiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTQwLnVzZVsxXSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS92dWUtbG9hZGVyLXYxNS9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL01vYmlsZVBheVBvU2VzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qc1wiIiwiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSBmcm9tIFwiLi9Nb2JpbGVQYXlQb1Nlcy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NDdlZGY2Njcmc2NvcGVkPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9Nb2JpbGVQYXlQb1Nlcy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anNcIlxuZXhwb3J0ICogZnJvbSBcIi4vTW9iaWxlUGF5UG9TZXMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzXCJcbmltcG9ydCBzdHlsZTAgZnJvbSBcIi4vTW9iaWxlUGF5UG9TZXMudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NDdlZGY2NjcmcHJvZCZsYW5nPXNjc3Mmc2NvcGVkPXRydWVcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvdnVlLWxvYWRlci12MTUvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiNDdlZGY2NjdcIixcbiAgbnVsbFxuICBcbilcblxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwibmFtZXMiOlsicmVuZGVyIiwiX3ZtIiwidGhpcyIsIl9jIiwiX3NlbGYiLCJzdGF0aWNDbGFzcyIsIl92IiwiX3MiLCJnZXRNb2RlIiwib24iLCIkZXZlbnQiLCJjaGFuZ2VNb2RlIiwiJHQiLCJhdHRycyIsInN0YXRpY1N0eWxlIiwiX2wiLCJtb2JpbGVwYXlwb3NlcyIsIm1vYmlsZXBheXBvc19pIiwiaW5kZXgiLCJrZXkiLCJiZWFjb25kSWQiLCJiZWFjb25JZCIsIm1lcmNoYW50UG9zSWQiLCJuYW1lIiwicG9zSWQiLCJyZXF1aXJlUGF5bWVudEJlZm9yZUNoZWNraW4iLCJzdG9yZUlkIiwic3VwcG9ydGVkQmVhY29uVHlwZXMiLCJyZWdpc3RlcnMiLCJyZWdpc3Rlcl9pIiwidXVpZCIsImlkZW50aWZpZXIiLCJkb21Qcm9wcyIsInJlZ2lzdGVySGFzVmlwcHNNb2JpbGVwYXlQT1MiLCJyZWdpc3Rlckhhc01vYmlsZXBheSIsImNvbnZlcnRUb1ZpcHBzIiwiZGVsZXRlUG9zIiwiY3JlYXRlUG9zIiwiX20iLCJtb2JpbGVwYXlwb3NfYWN0aW9ucyIsImFjdGlvbl9pIiwiaWQiLCJtb2RlIiwicG9zaWQiLCJzdG9yZWlkIiwiYWN0aW9uIiwicGFyYW1zIiwiaWRlbXBvdGVuY3lfa2V5IiwicmVzdWx0X2NvZGUiLCJyZXN1bHRfaGVhZGVyIiwicmVzdWx0X2JvZHkiLCJjcmVhdGVkX2F0Iiwic3RhdGljUmVuZGVyRm5zIiwiZGF0YSIsInJlZ2lzdGVyX3ByZWZpeCIsImludGVydmFsIiwibWV0aG9kcyIsInZhbCIsIiRzdG9yZSIsImNvbW1pdCIsImdldHRlcnMiLCJtb2JpbGVwYXlwb3NNb2RlIiwiZ2V0bW9iaWxlcGF5UG9TZXMiLCJyZXNwb25zZSIsIndzeUFQSSIsImdldCIsIiRyb3V0ZSIsInZhbGlkYXRlUmVzcG9uc2UiLCJtb2JpbGVwYXlwb3NfcG9zZXMiLCJtZXRhIiwiZ2V0UmVnaXN0ZXJzIiwiZ2V0TGF0ZXN0QWN0aW9ucyIsImdldFJlZ2lzdGVyTW9iaWxlcGF5UE9TIiwicmVnaXN0ZXIiLCJpIiwibGVuZ3RoIiwic29tZSIsImVsZW1lbnQiLCJwYXltZW50X3R5cGVzIiwicGF5bWVudF90eXBlX2kiLCJpbnRlcmZhY2UiLCJyZWdpc3Rlcl91dWlkIiwicG9zdCIsIm1lc3NhZ2UiLCJkZWxldGUiLCJjb21wdXRlZCIsImNyZWF0ZWQiLCJ3aW5kb3ciLCJzZXRJbn
2RlcnZhbCIsImJlZm9yZURlc3Ryb3kiLCJjbGVhckludGVydmFsIiwiY29tcG9uZW50Il0sInNvdXJjZVJvb3QiOiIifQ==

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.