| Server IP : 82.208.35.60 / Your IP : 216.73.216.89 Web Server : Apache/2.4.55 (FreeBSD) OpenSSL/1.1.1q-freebsd PHP/7.3.31 System : FreeBSD server7.d2m.cz 12.4-RELEASE-p9 FreeBSD 12.4-RELEASE-p9 GENERIC amd64 User : studiokobylisy_cz ( 1008) PHP Version : 7.3.31 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/air-sport_cz/www/admin939wizxmp/themes/new-theme/public/ |
Upload File : |
/*! For license information please see feature_flag.bundle.js.LICENSE.txt */
(()=>{var t={68840:(t,e,r)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n,o=(n=r(85315))&&n.__esModule?n:{default:n};e.default=function(t,e,r){var n=this,a=t.id,u=t.closable;this.modal=function(t){var e,r=t.id,n=void 0===r?"confirm-modal":r,i=t.confirmTitle,a=t.confirmMessage,u=void 0===a?"":a,c=t.closeButtonLabel,s=void 0===c?"Close":c,l=t.confirmButtonLabel,f=void 0===l?"Accept":l,d=t.confirmButtonClass,p=void 0===d?"btn-primary":d,v=t.customButtons,m=void 0===v?[]:v,y={};return y.container=document.createElement("div"),y.container.classList.add("modal","fade"),y.container.id=n,y.dialog=document.createElement("div"),y.dialog.classList.add("modal-dialog"),y.content=document.createElement("div"),y.content.classList.add("modal-content"),y.header=document.createElement("div"),y.header.classList.add("modal-header"),i&&(y.title=document.createElement("h4"),y.title.classList.add("modal-title"),y.title.innerHTML=i),y.closeIcon=document.createElement("button"),y.closeIcon.classList.add("close"),y.closeIcon.setAttribute("type","button"),y.closeIcon.dataset.dismiss="modal",y.closeIcon.innerHTML="×",y.body=document.createElement("div"),y.body.classList.add("modal-body","text-left","font-weight-normal"),y.message=document.createElement("p"),y.message.classList.add("confirm-message"),y.message.innerHTML=u,y.footer=document.createElement("div"),y.footer.classList.add("modal-footer"),y.closeButton=document.createElement("button"),y.closeButton.setAttribute("type","button"),y.closeButton.classList.add("btn","btn-outline-secondary","btn-lg"),y.closeButton.dataset.dismiss="modal",y.closeButton.innerHTML=s,y.confirmButton=document.createElement("button"),y.confirmButton.setAttribute("type","button"),y.confirmButton.classList.add("btn",p,"btn-lg","btn-confirm-submit"),y.confirmButton.dataset.dismiss="modal",y.confirmButton.innerHTML=f,i?y.header.append(y.title,y.closeIcon):y.header.appendChild(y.closeIcon),y.body.appendChild(y.message),(e=y.footer).append.apply(e,[y.closeButton].concat((0,o.default)(m),[y.confirmButton])),y.content.append(y.header,y.body,y.footer),y.dialog.appendChild(y.content),y.container.appendChild(y.dialog),y}(t),this.$modal=i(this.modal.container),this.show=function(){n.$modal.modal()},this.modal.confirmButton.addEventListener("click",e),this.$modal.modal({backdrop:!!u||"static",keyboard:void 0===u||u,closable:void 0===u||u,show:!1}),this.$modal.on("hidden.bs.modal",(function(){document.querySelector("#"+a).remove(),r&&r()})),document.body.appendChild(this.modal.container)};var i=window.$},24043:(t,e,r)=>{t.exports={default:r(47185),__esModule:!0}},85315:(t,e,r)=>{"use strict";e.__esModule=!0;var n,o=(n=r(24043))&&n.__esModule?n:{default:n};e.default=function(t){if(Array.isArray(t)){for(var e=0,r=Array(t.length);e<t.length;e++)r[e]=t[e];return r}return(0,o.default)(t)}},47185:(t,e,r)=>{r(91867),r(2586),t.exports=r(34579).Array.from},85663:t=>{t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},12159:(t,e,r)=>{var n=r(36727);t.exports=function(t){if(!n(t))throw TypeError(t+" is not an object!");return t}},57428:(t,e,r)=>{var n=r(7932),o=r(78728),i=r(16531);t.exports=function(t){return function(e,r,a){var u,c=n(e),s=o(c.length),l=i(a,s);if(t&&r!=r){for(;s>l;)if((u=c[l++])!=u)return!0}else for(;s>l;l++)if((t||l in c)&&c[l]===r)return t||l||0;return!t&&-1}}},14677:(t,e,r)=>{var n=r(32894),o=r(22939)("toStringTag"),i="Arguments"==n(function(){return arguments}());t.exports=function(t){var e,r,a;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(r=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),o))?r:i?n(e):"Object"==(a=n(e))&&"function"==typeof e.callee?"Arguments":a}},32894:t=>{var e={}.toString;t.exports=function(t){return e.call(t).slice(8,-1)}},34579:t=>{var e=t.exports={version:"2.6.11"};"number"==typeof __e&&(__e=e)},52445:(t,e,r)=>{"use strict";var n=r(4743),o=r(83101);t.exports=function(t,e,r){e in t?n.f(t,e,o(0,r)):t[e]=r}},19216:(t,e,r)=>{var n=r(85663);t.exports=function(t,e,r){if(n(t),void 0===e)return t;switch(r){case 1:return function(r){return t.call(e,r)};case 2:return function(r,n){return t.call(e,r,n)};case 3:return function(r,n,o){return t.call(e,r,n,o)}}return function(){return t.apply(e,arguments)}}},8333:t=>{t.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},89666:(t,e,r)=>{t.exports=!r(7929)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},97467:(t,e,r)=>{var n=r(36727),o=r(33938).document,i=n(o)&&n(o.createElement);t.exports=function(t){return i?o.createElement(t):{}}},73338:t=>{t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},83856:(t,e,r)=>{var n=r(33938),o=r(34579),i=r(19216),a=r(41818),u=r(27069),c=function(t,e,r){var s,l,f,d=t&c.F,p=t&c.G,v=t&c.S,m=t&c.P,y=t&c.B,h=t&c.W,b=p?o:o[e]||(o[e]={}),g=b.prototype,x=p?n:v?n[e]:(n[e]||{}).prototype;for(s in p&&(r=e),r)(l=!d&&x&&void 0!==x[s])&&u(b,s)||(f=l?x[s]:r[s],b[s]=p&&"function"!=typeof x[s]?r[s]:y&&l?i(f,n):h&&x[s]==f?function(t){var e=function(e,r,n){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,r)}return new t(e,r,n)}return t.apply(this,arguments)};return e.prototype=t.prototype,e}(f):m&&"function"==typeof f?i(Function.call,f):f,m&&((b.virtual||(b.virtual={}))[s]=f,t&c.R&&g&&!g[s]&&a(g,s,f)))};c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,t.exports=c},7929:t=>{t.exports=function(t){try{return!!t()}catch(t){return!0}}},33938:t=>{var e=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=e)},27069:t=>{var e={}.hasOwnProperty;t.exports=function(t,r){return e.call(t,r)}},41818:(t,e,r)=>{var n=r(4743),o=r(83101);t.exports=r(89666)?function(t,e,r){return n.f(t,e,o(1,r))}:function(t,e,r){return t[e]=r,t}},54881:(t,e,r)=>{var n=r(33938).document;t.exports=n&&n.documentElement},33758:(t,e,r)=>{t.exports=!r(89666)&&!r(7929)((function(){return 7!=Object.defineProperty(r(97467)("div"),"a",{get:function(){return 7}}).a}))},50799:(t,e,r)=>{var n=r(32894);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==n(t)?t.split(""):Object(t)}},45991:(t,e,r)=>{var n=r(15449),o=r(22939)("iterator"),i=Array.prototype;t.exports=function(t){return void 0!==t&&(n.Array===t||i[o]===t)}},36727:t=>{t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},95602:(t,e,r)=>{var n=r(12159);t.exports=function(t,e,r,o){try{return o?e(n(r)[0],r[1]):e(r)}catch(e){var i=t.return;throw void 0!==i&&n(i.call(t)),e}}},33945:(t,e,r)=>{"use strict";var n=r(98989),o=r(83101),i=r(25378),a={};r(41818)(a,r(22939)("iterator"),(function(){return this})),t.exports=function(t,e,r){t.prototype=n(a,{next:o(1,r)}),i(t,e+" Iterator")}},45700:(t,e,r)=>{"use strict";var n=r(16227),o=r(83856),i=r(57470),a=r(41818),u=r(15449),c=r(33945),s=r(25378),l=r(95089),f=r(22939)("iterator"),d=!([].keys&&"next"in[].keys()),p="keys",v="values",m=function(){return this};t.exports=function(t,e,r,y,h,b,g){c(r,e,y);var x,w,_,O=function(t){if(!d&&t in M)return M[t];switch(t){case p:case v:return function(){return new r(this,t)}}return function(){return new r(this,t)}},E=e+" Iterator",j=h==v,A=!1,M=t.prototype,L=M[f]||M["@@iterator"]||h&&M[h],B=L||O(h),S=h?j?O("entries"):B:void 0,P="Array"==e&&M.entries||L;if(P&&(_=l(P.call(new t)))!==Object.prototype&&_.next&&(s(_,E,!0),n||"function"==typeof _[f]||a(_,f,m)),j&&L&&L.name!==v&&(A=!0,B=function(){return L.call(this)}),n&&!g||!d&&!A&&M[f]||a(M,f,B),u[e]=B,u[E]=m,h)if(x={values:j?B:O(v),keys:b?B:O(p),entries:S},g)for(w in x)w in M||i(M,w,x[w]);else o(o.P+o.F*(d||A),e,x);return x}},96630:(t,e,r)=>{var n=r(22939)("iterator"),o=!1;try{var i=[7][n]();i.return=function(){o=!0},Array.from(i,(function(){throw 2}))}catch(t){}t.exports=function(t,e){if(!e&&!o)return!1;var r=!1;try{var i=[7],a=i[n]();a.next=function(){return{done:r=!0}},i[n]=function(){return a},t(i)}catch(t){}return r}},15449:t=>{t.exports={}},16227:t=>{t.exports=!0},98989:(t,e,r)=>{var n=r(12159),o=r(57856),i=r(73338),a=r(58989)("IE_PROTO"),u=function(){},c=function(){var t,e=r(97467)("iframe"),n=i.length;for(e.style.display="none",r(54881).appendChild(e),e.src="javascript:",(t=e.contentWindow.document).open(),t.write("<script>document.F=Object<\/script>"),t.close(),c=t.F;n--;)delete c.prototype[i[n]];return c()};t.exports=Object.create||function(t,e){var r;return null!==t?(u.prototype=n(t),r=new u,u.prototype=null,r[a]=t):r=c(),void 0===e?r:o(r,e)}},4743:(t,e,r)=>{var n=r(12159),o=r(33758),i=r(33206),a=Object.defineProperty;e.f=r(89666)?Object.defineProperty:function(t,e,r){if(n(t),e=i(e,!0),n(r),o)try{return a(t,e,r)}catch(t){}if("get"in r||"set"in r)throw TypeError("Accessors not supported!");return"value"in r&&(t[e]=r.value),t}},57856:(t,e,r)=>{var n=r(4743),o=r(12159),i=r(46162);t.exports=r(89666)?Object.defineProperties:function(t,e){o(t);for(var r,a=i(e),u=a.length,c=0;u>c;)n.f(t,r=a[c++],e[r]);return t}},95089:(t,e,r)=>{var n=r(27069),o=r(66530),i=r(58989)("IE_PROTO"),a=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=o(t),n(t,i)?t[i]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?a:null}},12963:(t,e,r)=>{var n=r(27069),o=r(7932),i=r(57428)(!1),a=r(58989)("IE_PROTO");t.exports=function(t,e){var r,u=o(t),c=0,s=[];for(r in u)r!=a&&n(u,r)&&s.push(r);for(;e.length>c;)n(u,r=e[c++])&&(~i(s,r)||s.push(r));return s}},46162:(t,e,r)=>{var n=r(12963),o=r(73338);t.exports=Object.keys||function(t){return n(t,o)}},83101:t=>{t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},57470:(t,e,r)=>{t.exports=r(41818)},25378:(t,e,r)=>{var n=r(4743).f,o=r(27069),i=r(22939)("toStringTag");t.exports=function(t,e,r){t&&!o(t=r?t:t.prototype,i)&&n(t,i,{configurable:!0,value:e})}},58989:(t,e,r)=>{var n=r(20250)("keys"),o=r(65730);t.exports=function(t){return n[t]||(n[t]=o(t))}},20250:(t,e,r)=>{var n=r(34579),o=r(33938),i="__core-js_shared__",a=o[i]||(o[i]={});(t.exports=function(t,e){return a[t]||(a[t]=void 0!==e?e:{})})("versions",[]).push({version:n.version,mode:r(16227)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},90510:(t,e,r)=>{var n=r(11052),o=r(8333);t.exports=function(t){return function(e,r){var i,a,u=String(o(e)),c=n(r),s=u.length;return c<0||c>=s?t?"":void 0:(i=u.charCodeAt(c))<55296||i>56319||c+1===s||(a=u.charCodeAt(c+1))<56320||a>57343?t?u.charAt(c):i:t?u.slice(c,c+2):a-56320+(i-55296<<10)+65536}}},16531:(t,e,r)=>{var n=r(11052),o=Math.max,i=Math.min;t.exports=function(t,e){return(t=n(t))<0?o(t+e,0):i(t,e)}},11052:t=>{var e=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:e)(t)}},7932:(t,e,r)=>{var n=r(50799),o=r(8333);t.exports=function(t){return n(o(t))}},78728:(t,e,r)=>{var n=r(11052),o=Math.min;t.exports=function(t){return t>0?o(n(t),9007199254740991):0}},66530:(t,e,r)=>{var n=r(8333);t.exports=function(t){return Object(n(t))}},33206:(t,e,r)=>{var n=r(36727);t.exports=function(t,e){if(!n(t))return t;var r,o;if(e&&"function"==typeof(r=t.toString)&&!n(o=r.call(t)))return o;if("function"==typeof(r=t.valueOf)&&!n(o=r.call(t)))return o;if(!e&&"function"==typeof(r=t.toString)&&!n(o=r.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},65730:t=>{var e=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++e+r).toString(36))}},22939:(t,e,r)=>{var n=r(20250)("wks"),o=r(65730),i=r(33938).Symbol,a="function"==typeof i;(t.exports=function(t){return n[t]||(n[t]=a&&i[t]||(a?i:o)("Symbol."+t))}).store=n},83728:(t,e,r)=>{var n=r(14677),o=r(22939)("iterator"),i=r(15449);t.exports=r(34579).getIteratorMethod=function(t){if(null!=t)return t[o]||t["@@iterator"]||i[n(t)]}},2586:(t,e,r)=>{"use strict";var n=r(19216),o=r(83856),i=r(66530),a=r(95602),u=r(45991),c=r(78728),s=r(52445),l=r(83728);o(o.S+o.F*!r(96630)((function(t){Array.from(t)})),"Array",{from:function(t){var e,r,o,f,d=i(t),p="function"==typeof this?this:Array,v=arguments.length,m=v>1?arguments[1]:void 0,y=void 0!==m,h=0,b=l(d);if(y&&(m=n(m,v>2?arguments[2]:void 0,2)),null==b||p==Array&&u(b))for(r=new p(e=c(d.length));e>h;h++)s(r,h,y?m(d[h],h):d[h]);else for(f=b.call(d),r=new p;!(o=f.next()).done;h++)s(r,h,y?a(f,m,[o.value,h],!0):o.value);return r.length=h,r}})},91867:(t,e,r)=>{"use strict";var n=r(90510)(!0);r(45700)(String,"String",(function(t){this._t=String(t),this._i=0}),(function(){var t,e=this._t,r=this._i;return r>=e.length?{value:void 0,done:!0}:(t=n(e,r),this._i+=t.length,{value:t,done:!1})}))}},e={};function r(n){var o=e[n];if(void 0!==o)return o.exports;var i=e[n]={exports:{}};return t[n](i,i.exports,r),i.exports}(()=>{"use strict";var t,e=(t=r(68840))&&t.__esModule?t:{default:t},n=window.$;n((function(){var t=n("#submit-btn-feature-flag");t.prop("disabled",!0);var r=n("#feature-flag-form"),o=n("#feature-flag-form input"),i=r.serialize(),a=r.serializeArray();o.change((function(){t.prop("disabled",i===r.serialize())})),t.on("click",(function(n){n.preventDefault();var o=r.serializeArray();if(i!==r.serialize()){for(var u=!1,c=0;c<o.length;c+=1)if("form[_token]"!==o[c].name&&"0"!==o[c].value&&"0"===a[c].value){u=!0;break}var s=new e.default({id:"modal-confirm-submit-feature-flag",confirmTitle:t.data("modal-title"),confirmMessage:t.data("modal-message"),confirmButtonLabel:t.data("modal-apply"),closeButtonLabel:t.data("modal-cancel")},(function(){r.submit()}));u?s.show():r.submit()}}))}))})(),window.feature_flag={}})();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9bbmFtZV0vLi9qcy9jb21wb25lbnRzL21vZGFsLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL2NvcmUtanMvYXJyYXkvZnJvbS5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9oZWxwZXJzL3RvQ29uc3VtYWJsZUFycmF5LmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvZm4vYXJyYXkvZnJvbS5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2EtZnVuY3Rpb24uanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19hbi1vYmplY3QuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19hcnJheS1pbmNsdWRlcy5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2NsYXNzb2YuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19jb2YuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19jb3JlLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fY3JlYXRlLXByb3BlcnR5LmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fY3R4LmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fZGVmaW5lZC5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2Rlc2NyaXB0b3JzLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fZG9tLWNyZWF0ZS5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2VudW0tYnVnLWtleXMuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19leHBvcnQuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19mYWlscy5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2dsb2JhbC5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2hhcy5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2hpZGUuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19odG1sLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faWU4LWRvbS1kZWZpbmUuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19pb2JqZWN0LmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faXMtYXJyYXktaXRlci5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2lzLW9iamVjdC5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXItY2FsbC5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXItY3JlYXRlLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faXRlci1kZWZpbmUuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19pdGVyLWRldGVjdC5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXJhdG9ycy5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2xpYnJhcnkuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtY3JlYXRlLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWRwLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWRwcy5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1ncG8uanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3Qta2V5cy1pbnRlcm5hbC5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1rZXlzLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fcHJvcGVydHktZGVzYy5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3JlZGVmaW5lLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fc2V0LXRvLXN0cmluZy10YWcuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19zaGFyZWQta2V5LmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fc2hhcmVkLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fc3RyaW5nLWF0LmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fdG8tYWJzb2x1dGUtaW5kZXguanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL190by1pbnRlZ2VyLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fdG8taW9iamVjdC5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLWxlbmd0aC5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLW9iamVjdC5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLXByaW1pdGl2ZS5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3VpZC5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3drcy5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvY29yZS5nZXQtaXRlcmF0b3ItbWV0aG9kLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9lczYuYXJyYXkuZnJvbS5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2LnN0cmluZy5pdGVyYXRvci5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vanMvcGFnZXMvZmVhdHVyZS1mbGFnL2luZGV4LmpzIl0sIm5hbWVzIjpbInBhcmFtcyIsImNvbmZpcm1DYWxsYmFjayIsImNhbmNlbENhbGxiYWNrIiwiaWQiLCJjbG9zYWJsZSIsInRoaXMiLCJtb2RhbCIsImNvbmZpcm1UaXRsZSIsImNvbmZpcm1NZXNzYWdlIiwiY2xvc2VCdXR0b25MYWJlbCIsImNvbmZpcm1CdXR0b25MYWJlbCIsImNvbmZpcm1CdXR0b25DbGFzcyIsImN1c3RvbUJ1dHRvbnMiLCJjb250YWluZXIiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc0xpc3QiLCJhZGQiLCJkaWFsb2ciLCJjb250ZW50IiwiaGVhZGVyIiwidGl0bGUiLCJpbm5lckhUTUwiLCJjbG9zZUljb24iLCJzZXRBdHRyaWJ1dGUiLCJkYXRhc2V0IiwiZGlzbWlzcyIsImJvZHkiLCJtZXNzYWdlIiwiZm9vdGVyIiwiY2xvc2VCdXR0b24iLCJjb25maXJtQnV0dG9uIiwiYXBwZW5kIiwiYXBwZW5kQ2hpbGQiLCJNb2RhbCIsIiRtb2RhbCIsIiQiLCJzaG93IiwiYWRkRXZlbnRMaXN0ZW5lciIsImJhY2tkcm9wIiwia2V5Ym9hcmQiLCJ1bmRlZmluZWQiLCJvbiIsInF1ZXJ5U2VsZWN0b3IiLCJyZW1vdmUiLCJ3aW5kb3ciLCJtb2R1bGUiLCJleHBvcnRzIiwiX19lc01vZHVsZSIsIm9iaiIsIl9mcm9tMiIsImRlZmF1bHQiLCJhcnIiLCJBcnJheSIsImlzQXJyYXkiLCJpIiwiYXJyMiIsImxlbmd0aCIsIml0IiwiVHlwZUVycm9yIiwiaXNPYmplY3QiLCJ0b0lPYmplY3QiLCJ0b0xlbmd0aCIsInRvQWJzb2x1dGVJbmRleCIsIklTX0lOQ0xVREVTIiwiJHRoaXMiLCJlbCIsImZyb21JbmRleCIsInZhbHVlIiwiTyIsImluZGV4IiwiY29mIiwiVEFHIiwiQVJHIiwiYXJndW1lbnRzIiwiVCIsIkIiLCJrZXkiLCJlIiwidHJ5R2V0IiwiT2JqZWN0IiwiY2FsbGVlIiwidG9TdHJpbmciLCJjYWxsIiwic2xpY2UiLCJjb3JlIiwidmVyc2lvbiIsIl9fZSIsIiRkZWZpbmVQcm9wZXJ0eSIsImNyZWF0ZURlc2MiLCJvYmplY3QiLCJmIiwiYUZ1bmN0aW9uIiwiZm4iLCJ0aGF0IiwiYSIsImIiLCJjIiwiYXBwbHkiLCJkZWZpbmVQcm9wZXJ0eSIsImdldCIsImlzIiwic3BsaXQiLCJnbG9iYWwiLCJjdHgiLCJoaWRlIiwiaGFzIiwiJGV4cG9ydCIsInR5cGUiLCJuYW1lIiwic291cmNlIiwib3duIiwib3V0IiwiSVNfRk9SQ0VEIiwiRiIsIklTX0dMT0JBTCIsIkciLCJJU19TVEFUSUMiLCJTIiwiSVNfUFJPVE8iLCJQIiwiSVNfQklORCIsIklTX1dSQVAiLCJXIiwiZXhwUHJvdG8iLCJ0YXJnZXQiLCJDIiwiRnVuY3Rpb24iLCJ2aXJ0dWFsIiwiUiIsIlUiLCJleGVjIiwiTWF0aCIsInNlbGYiLCJfX2ciLCJoYXNPd25Qcm9wZXJ0eSIsImRQIiwiZG9jdW1lbnRFbGVtZW50IiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJJdGVyYXRvcnMiLCJJVEVSQVRPUiIsIkFycmF5UHJvdG8iLCJwcm90b3R5cGUiLCJhbk9iamVjdCIsIml0ZXJhdG9yIiwiZW50cmllcyIsInJldCIsImNyZWF0ZSIsImRlc2NyaXB0b3IiLCJzZXRUb1N0cmluZ1RhZyIsIkl0ZXJhdG9yUHJvdG90eXBlIiwiQ29uc3RydWN0b3IiLCJOQU1FIiwibmV4dCIsIkxJQlJBUlkiLCJyZWRlZmluZSIsIiRpdGVyQ3JlYXRlIiwiZ2V0UHJvdG90eXBlT2YiLCJCVUdHWSIsImtleXMiLCJLRVlTIiwiVkFMVUVTIiwicmV0dXJuVGhpcyIsIkJhc2UiLCJERUZBVUxUIiwiSVNfU0VUIiwiRk9SQ0VEIiwibWV0aG9kcyIsImdldE1ldGhvZCIsImtpbmQiLCJwcm90byIsIkRFRl9WQUxVRVMiLCJWQUxVRVNfQlVHIiwiJG5hdGl2ZSIsIiRkZWZhdWx0IiwiJGVudHJpZXMiLCIkYW55TmF0aXZlIiwidmFsdWVzIiwiU0FGRV9DTE9TSU5HIiwicml0ZXIiLCJmcm9tIiwic2tpcENsb3NpbmciLCJzYWZlIiwiaXRlciIsImRvbmUiLCJkUHMiLCJlbnVtQnVnS2V5cyIsIklFX1BST1RPIiwiRW1wdHkiLCJjcmVhdGVEaWN0IiwiaWZyYW1lRG9jdW1lbnQiLCJpZnJhbWUiLCJzdHlsZSIsImRpc3BsYXkiLCJzcmMiLCJjb250ZW50V2luZG93Iiwib3BlbiIsIndyaXRlIiwibHQiLCJjbG9zZSIsIlByb3BlcnRpZXMiLCJyZXN1bHQiLCJJRThfRE9NX0RFRklORSIsInRvUHJpbWl0aXZlIiwiQXR0cmlidXRlcyIsImdldEtleXMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwidG9PYmplY3QiLCJPYmplY3RQcm90byIsImNvbnN0cnVjdG9yIiwiYXJyYXlJbmRleE9mIiwibmFtZXMiLCJwdXNoIiwiJGtleXMiLCJiaXRtYXAiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJkZWYiLCJ0YWciLCJzdGF0Iiwic2hhcmVkIiwidWlkIiwiU0hBUkVEIiwic3RvcmUiLCJtb2RlIiwiY29weXJpZ2h0IiwidG9JbnRlZ2VyIiwiZGVmaW5lZCIsIlRPX1NUUklORyIsInBvcyIsInMiLCJTdHJpbmciLCJsIiwiY2hhckNvZGVBdCIsImNoYXJBdCIsIm1heCIsIm1pbiIsImNlaWwiLCJmbG9vciIsImlzTmFOIiwiSU9iamVjdCIsInZhbCIsInZhbHVlT2YiLCJweCIsInJhbmRvbSIsImNvbmNhdCIsIlN5bWJvbCIsIlVTRV9TWU1CT0wiLCJjbGFzc29mIiwiaXNBcnJheUl0ZXIiLCJjcmVhdGVQcm9wZXJ0eSIsImdldEl0ZXJGbiIsImFycmF5TGlrZSIsInN0ZXAiLCJhTGVuIiwibWFwZm4iLCJtYXBwaW5nIiwiaXRlckZuIiwiJGF0IiwiaXRlcmF0ZWQiLCJfdCIsIl9pIiwicG9pbnQiLCJfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18iLCJfX3dlYnBhY2tfcmVxdWlyZV9fIiwibW9kdWxlSWQiLCJjYWNoZWRNb2R1bGUiLCJfX3dlYnBhY2tfbW9kdWxlc19fIiwiJHN1Ym1pdEJ1dHRvbiIsInByb3AiLCIkZm9ybSIsIiRmb3JtSW5wdXRzIiwiaW5pdGlhbFN0YXRlIiwic2VyaWFsaXplIiwiaW5pdGlhbEZvcm1EYXRhIiwic2VyaWFsaXplQXJyYXkiLCJjaGFuZ2UiLCJldmVudCIsInByZXZlbnREZWZhdWx0IiwiZm9ybURhdGEiLCJvbmVGbGFnSXNFbmFibGVkIiwiQ29uZmlybU1vZGFsIiwiZGF0YSIsInN1Ym1pdCJdLCJtYXBwaW5ncyI6IjtzSkEwQ2UsU0FBc0JBLEVBQVFDLEVBQWlCQyxHQUFnQixXQUVyRUMsRUFBZ0JILEVBQWhCRyxHQUFJQyxFQUFZSixFQUFaSSxTQUNYQyxLQUFLQyxNQWtDUCxZQVFHLFVBUERILFVBT0MsTUFQSSxnQkFPSixFQU5ESSxFQU1DLEVBTkRBLGFBTUMsSUFMREMsc0JBS0MsTUFMZ0IsR0FLaEIsTUFKREMsd0JBSUMsTUFKa0IsUUFJbEIsTUFIREMsMEJBR0MsTUFIb0IsU0FHcEIsTUFGREMsMEJBRUMsTUFGb0IsY0FF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QVlLLFFBQU8sV0FDakJSLEVBQWNDLEtBQUssV0FBWUcsSUFBaUJGLEVBQU1HLGdCQUd4REwsRUFBY25PLEdBQUcsU0FBUyxTQUFDNE8sR0FDekJBLEVBQU1DLGlCQUVOLElBQU1DLEVBQVdULEVBQU1LLGlCQUV2QixHQUFJSCxJQUFpQkYsRUFBTUcsWUFBM0IsQ0FNQSxJQUZBLElBQUlPLEdBQW1CLEVBRWRsTyxFQUFJLEVBQUdBLEVBQUlpTyxFQUFTL04sT0FBUUYsR0FBSyxFQUN4QyxHQUEwQixpQkFBckJpTyxFQUFTak8sR0FBR3NELE1BQW1ELE1BQXRCMkssRUFBU2pPLEdBQUdhLE9BQWdELE1BQTdCK00sRUFBZ0I1TixHQUFHYSxNQUFnQixDQUM5R3FOLEdBQW1CLEVBQ25CLE1BSUosSUFBTW5SLEVBQVEsSUFBSW9SLFVBQ2hCLENBQ0V2UixHQUFJLG9DQUNKSSxhQUFjc1EsRUFBY2MsS0FBSyxlQUNqQ25SLGVBQWdCcVEsRUFBY2MsS0FBSyxpQkFDbkNqUixtQkFBb0JtUSxFQUFjYyxLQUFLLGVBQ3ZDbFIsaUJBQWtCb1EsRUFBY2MsS0FBSyxrQkFFdkMsV0FDRVosRUFBTWEsWUFJTkgsRUFDRm5SLEVBQU0rQixPQUVOME8sRUFBTWEsaUIiLCJmaWxlIjoiZmVhdHVyZV9mbGFnLmJ1bmRsZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IHNpbmNlIDIwMDcgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzXG4gKiBQcmVzdGFTaG9wIGlzIGFuIEludGVybmF0aW9uYWwgUmVnaXN0ZXJlZCBUcmFkZW1hcmsgJiBQcm9wZXJ0eSBvZiBQcmVzdGFTaG9wIFNBXG4gKlxuICogTk9USUNFIE9GIExJQ0VOU0VcbiAqXG4gKiBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIE9wZW4gU29mdHdhcmUgTGljZW5zZSAoT1NMIDMuMClcbiAqIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFLm1kLlxuICogSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4gKiBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL09TTC0zLjBcbiAqIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4gKiBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4gKiB0byBsaWNlbnNlQHByZXN0YXNob3AuY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4gKlxuICogRElTQ0xBSU1FUlxuICpcbiAqIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBQcmVzdGFTaG9wIHRvIG5ld2VyXG4gKiB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgUHJlc3RhU2hvcCBmb3IgeW91clxuICogbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHBzOi8vZGV2ZG9jcy5wcmVzdGFzaG9wLmNvbS8gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gKlxuICogQGF1dGhvciAgICBQcmVzdGFTaG9wIFNBIGFuZCBDb250cmlidXRvcnMgPGNvbnRhY3RAcHJlc3Rhc2hvcC5jb20+XG4gKiBAY29weXJpZ2h0IFNpbmNlIDIwMDcgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzXG4gKiBAbGljZW5zZSAgIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvT1NMLTMuMCBPcGVuIFNvZnR3YXJlIExpY2Vuc2UgKE9TTCAzLjApXG4gKi9cblxuY29uc3QgeyR9ID0gd2luZG93O1xuXG4vKipcbiAqIENvbmZpcm1Nb2RhbCBjb21wb25lbnRcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gaWRcbiAqIEBwYXJhbSB7U3RyaW5nfSBjb25maXJtVGl0bGVcbiAqIEBwYXJhbSB7U3RyaW5nfSBjb25maXJtTWVzc2FnZVxuICogQHBhcmFtIHtTdHJpbmd9IGNsb3NlQnV0dG9uTGFiZWxcbiAqIEBwYXJhbSB7U3RyaW5nfSBjb25maXJtQnV0dG9uTGFiZWxcbiAqIEBwYXJhbSB7U3RyaW5nfSBjb25maXJtQnV0dG9uQ2xhc3NcbiAqIEBwYXJhbSB7QXJyYXl9IGN1c3RvbUJ1dHRvbnNcbiAqIEBwYXJhbSB7Qm9vbGVhbn0gY2xvc2FibGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGNvbmZpcm1DYWxsYmFja1xuICogQHBhcmFtIHtGdW5jdGlvbn0gY2FuY2VsQ2FsbGJhY2tcbiAqXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIENvbmZpcm1Nb2RhbChwYXJhbXMsIGNvbmZpcm1DYWxsYmFjaywgY2FuY2VsQ2FsbGJhY2spIHtcbiAgLy8gQ29uc3RydWN0IHRoZSBtb2RhbFxuICBjb25zdCB7aWQsIGNsb3NhYmxlfSA9IHBhcmFtcztcbiAgdGhpcy5tb2RhbCA9IE1vZGFsKHBhcmFtcyk7XG5cbiAgLy8galF1ZXJ5IG1vZGFsIG9iamVjdFxuICB0aGlzLiRtb2RhbCA9ICQodGhpcy5tb2RhbC5jb250YWluZXIpO1xuXG4gIHRoaXMuc2hvdyA9ICgpID0+IHtcbiAgICB0aGlzLiRtb2RhbC5tb2RhbCgpO1xuICB9O1xuXG4gIHRoaXMubW9kYWwuY29uZmlybUJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGNvbmZpcm1DYWxsYmFjayk7XG5cbiAgdGhpcy4kbW9kYWwubW9kYWwoe1xuICAgIGJhY2tkcm9wOiBjbG9zYWJsZSA/IHRydWUgOiAnc3RhdGljJyxcbiAgICBrZXlib2FyZDogY2xvc2FibGUgIT09IHVuZGVmaW5lZCA/IGNsb3NhYmxlIDogdHJ1ZSxcbiAgICBjbG9zYWJsZTogY2xvc2FibGUgIT09IHVuZGVmaW5lZCA/IGNsb3NhYmxlIDogdHJ1ZSxcbiAgICBzaG93OiBmYWxzZSxcbiAgfSk7XG5cbiAgdGhpcy4kbW9kYWwub24oJ2hpZGRlbi5icy5tb2RhbCcsICgpID0+IHtcbiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAjJHtpZH1gKS5yZW1vdmUoKTtcbiAgICBpZiAoY2FuY2VsQ2FsbGJhY2spIHtcbiAgICAgIGNhbmNlbENhbGxiYWNrKCk7XG4gICAgfVxuICB9KTtcblxuICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMubW9kYWwuY29udGFpbmVyKTtcbn1cblxuLyoqXG4gKiBNb2RhbCBjb21wb25lbnQgdG8gaW1wcm92ZSBsaXNpYmlsaXR5IGJ5IGNvbnN0cnVjdGluZyB0aGUgbW9kYWwgb3V0c2lkZSB0aGUgbWFpbiBmdW5jdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwYXJhbXNcbiAqXG4gKi9cbmZ1bmN0aW9uIE1vZGFsKHtcbiAgaWQgPSAnY29uZmlybS1tb2RhbCcsXG4gIGNvbmZpcm1UaXRsZSxcbiAgY29uZmlybU1lc3NhZ2UgPSAnJyxcbiAgY2xvc2VCdXR0b25MYWJlbCA9ICdDbG9zZScsXG4gIGNvbmZpcm1CdXR0b25MYWJlbCA9ICdBY2NlcHQnLFxuICBjb25maXJtQnV0dG9uQ2xhc3MgPSAnYnRuLXByaW1hcnknLFxuICBjdXN0b21CdXR0b25zID0gW10sXG59KSB7XG4gIGNvbnN0IG1vZGFsID0ge307XG5cbiAgLy8gTWFpbiBtb2RhbCBlbGVtZW50XG4gIG1vZGFsLmNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICBtb2RhbC5jb250YWluZXIuY2xhc3NMaXN0LmFkZCgnbW9kYWwnLCAnZmFkZScpO1xuICBtb2RhbC5jb250YWluZXIuaWQgPSBpZDtcblxuICAvLyBNb2RhbCBkaWFsb2cgZWxlbWVudFxuICBtb2RhbC5kaWFsb2cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgbW9kYWwuZGlhbG9nLmNsYXNzTGlzdC5hZGQoJ21vZGFsLWRpYWxvZycpO1xuXG4gIC8vIE1vZGFsIGNvbnRlbnQgZWxlbWVudFxuICBtb2RhbC5jb250ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gIG1vZGFsLmNvbnRlbnQuY2xhc3NMaXN0LmFkZCgnbW9kYWwtY29udGVudCcpO1xuXG4gIC8vIE1vZGFsIGhlYWRlciBlbGVtZW50XG4gIG1vZGFsLmhlYWRlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICBtb2RhbC5oZWFkZXIuY2xhc3NMaXN0LmFkZCgnbW9kYWwtaGVhZGVyJyk7XG5cbiAgLy8gTW9kYWwgdGl0bGUgZWxlbWVudFxuICBpZiAoY29uZmlybVRpdGxlKSB7XG4gICAgbW9kYWwudGl0bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdoNCcpO1xuICAgIG1vZGFsLnRpdGxlLmNsYXNzTGlzdC5hZGQoJ21vZGFsLXRpdGxlJyk7XG4gICAgbW9kYWwudGl0bGUuaW5uZXJIVE1MID0gY29uZmlybVRpdGxlO1xuICB9XG5cbiAgLy8gTW9kYWwgY2xvc2UgYnV0dG9uIGljb25cbiAgbW9kYWwuY2xvc2VJY29uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7XG4gIG1vZGFsLmNsb3NlSWNvbi5jbGFzc0xpc3QuYWRkKCdjbG9zZScpO1xuICBtb2RhbC5jbG9zZUljb24uc2V0QXR0cmlidXRlKCd0eXBlJywgJ2J1dHRvbicpO1xuICBtb2RhbC5jbG9zZUljb24uZGF0YXNldC5kaXNtaXNzID0gJ21vZGFsJztcbiAgbW9kYWwuY2xvc2VJY29uLmlubmVySFRNTCA9ICfDlyc7XG5cbiAgLy8gTW9kYWwgYm9keSBlbGVtZW50XG4gIG1vZGFsLmJvZHkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgbW9kYWwuYm9keS5jbGFzc0xpc3QuYWRkKCdtb2RhbC1ib2R5JywgJ3RleHQtbGVmdCcsICdmb250LXdlaWdodC1ub3JtYWwnKTtcblxuICAvLyBNb2RhbCBtZXNzYWdlIGVsZW1lbnRcbiAgbW9kYWwubWVzc2FnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKTtcbiAgbW9kYWwubWVzc2FnZS5jbGFzc0xpc3QuYWRkKCdjb25maXJtLW1lc3NhZ2UnKTtcbiAgbW9kYWwubWVzc2FnZS5pbm5lckhUTUwgPSBjb25maXJtTWVzc2FnZTtcblxuICAvLyBNb2RhbCBmb290ZXIgZWxlbWVudFxuICBtb2RhbC5mb290ZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgbW9kYWwuZm9vdGVyLmNsYXNzTGlzdC5hZGQoJ21vZGFsLWZvb3RlcicpO1xuXG4gIC8vIE1vZGFsIGNsb3NlIGJ1dHRvbiBlbGVtZW50XG4gIG1vZGFsLmNsb3NlQnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7XG4gIG1vZGFsLmNsb3NlQnV0dG9uLnNldEF0dHJpYnV0ZSgndHlwZScsICdidXR0b24nKTtcbiAgbW9kYWwuY2xvc2VCdXR0b24uY2xhc3NMaXN0LmFkZCgnYnRuJywgJ2J0bi1vdXRsaW5lLXNlY29uZGFyeScsICdidG4tbGcnKTtcbiAgbW9kYWwuY2xvc2VCdXR0b24uZGF0YXNldC5kaXNtaXNzID0gJ21vZGFsJztcbiAgbW9kYWwuY2xvc2VCdXR0b24uaW5uZXJIVE1MID0gY2xvc2VCdXR0b25MYWJlbDtcblxuICAvLyBNb2RhbCBjb25maXJtIGJ1dHRvbiBlbGVtZW50XG4gIG1vZGFsLmNvbmZpcm1CdXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKTtcbiAgbW9kYWwuY29uZmlybUJ1dHRvbi5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAnYnV0dG9uJyk7XG4gIG1vZGFsLmNvbmZpcm1CdXR0b24uY2xhc3NMaXN0LmFkZCgnYnRuJywgY29uZmlybUJ1dHRvbkNsYXNzLCAnYnRuLWxnJywgJ2J0bi1jb25maXJtLXN1Ym1pdCcpO1xuICBtb2RhbC5jb25maXJtQnV0dG9uLmRhdGFzZXQuZGlzbWlzcyA9ICdtb2RhbCc7XG4gIG1vZGFsLmNvbmZpcm1CdXR0b24uaW5uZXJIVE1MID0gY29uZmlybUJ1dHRvbkxhYmVsO1xuXG4gIC8vIENvbnN0cnVjdGluZyB0aGUgbW9kYWxcbiAgaWYgKGNvbmZpcm1UaXRsZSkge1xuICAgIG1vZGFsLmhlYWRlci5hcHBlbmQobW9kYWwudGl0bGUsIG1vZGFsLmNsb3NlSWNvbik7XG4gIH0gZWxzZSB7XG4gICAgbW9kYWwuaGVhZGVyLmFwcGVuZENoaWxkKG1vZGFsLmNsb3NlSWNvbik7XG4gIH1cblxuICBtb2RhbC5ib2R5LmFwcGVuZENoaWxkKG1vZGFsLm1lc3NhZ2UpO1xuICBtb2RhbC5mb290ZXIuYXBwZW5kKG1vZGFsLmNsb3NlQnV0dG9uLCAuLi5jdXN0b21CdXR0b25zLCBtb2RhbC5jb25maXJtQnV0dG9uKTtcbiAgbW9kYWwuY29udGVudC5hcHBlbmQobW9kYWwuaGVhZGVyLCBtb2RhbC5ib2R5LCBtb2RhbC5mb290ZXIpO1xuICBtb2RhbC5kaWFsb2cuYXBwZW5kQ2hpbGQobW9kYWwuY29udGVudCk7XG4gIG1vZGFsLmNvbnRhaW5lci5hcHBlbmRDaGlsZChtb2RhbC5kaWFsb2cpO1xuXG4gIHJldHVybiBtb2RhbDtcbn1cbiIsIm1vZHVsZS5leHBvcnRzID0geyBcImRlZmF1bHRcIjogcmVxdWlyZShcImNvcmUtanMvbGlicmFyeS9mbi9hcnJheS9mcm9tXCIpLCBfX2VzTW9kdWxlOiB0cnVlIH07IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfZnJvbSA9IHJlcXVpcmUoXCIuLi9jb3JlLWpzL2FycmF5L2Zyb21cIik7XG5cbnZhciBfZnJvbTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9mcm9tKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuZXhwb3J0cy5kZWZhdWx0ID0gZnVuY3Rpb24gKGFycikge1xuICBpZiAoQXJyYXkuaXNBcnJheShhcnIpKSB7XG4gICAgZm9yICh2YXIgaSA9IDAsIGFycjIgPSBBcnJheShhcnIubGVuZ3RoKTsgaSA8IGFyci5sZW5ndGg7IGkrKykge1xuICAgICAgYXJyMltpXSA9IGFycltpXTtcbiAgICB9XG5cbiAgICByZXR1cm4gYXJyMjtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gKDAsIF9mcm9tMi5kZWZhdWx0KShhcnIpO1xuICB9XG59OyIsInJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXM2LnN0cmluZy5pdGVyYXRvcicpO1xucmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lczYuYXJyYXkuZnJvbScpO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGVzL19jb3JlJykuQXJyYXkuZnJvbTtcbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIGlmICh0eXBlb2YgaXQgIT0gJ2Z1bmN0aW9uJykgdGhyb3cgVHlwZUVycm9yKGl0ICsgJyBpcyBub3QgYSBmdW5jdGlvbiEnKTtcbiAgcmV0dXJuIGl0O1xufTtcbiIsInZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vX2lzLW9iamVjdCcpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKCFpc09iamVjdChpdCkpIHRocm93IFR5cGVFcnJvcihpdCArICcgaXMgbm90IGFuIG9iamVjdCEnKTtcbiAgcmV0dXJuIGl0O1xufTtcbiIsIi8vIGZhbHNlIC0+IEFycmF5I2luZGV4T2Zcbi8vIHRydWUgIC0+IEFycmF5I2luY2x1ZGVzXG52YXIgdG9JT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8taW9iamVjdCcpO1xudmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi9fdG8tbGVuZ3RoJyk7XG52YXIgdG9BYnNvbHV0ZUluZGV4ID0gcmVxdWlyZSgnLi9fdG8tYWJzb2x1dGUtaW5kZXgnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKElTX0lOQ0xVREVTKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoJHRoaXMsIGVsLCBmcm9tSW5kZXgpIHtcbiAgICB2YXIgTyA9IHRvSU9iamVjdCgkdGhpcyk7XG4gICAgdmFyIGxlbmd0aCA9IHRvTGVuZ3RoKE8ubGVuZ3RoKTtcbiAgICB2YXIgaW5kZXggPSB0b0Fic29sdXRlSW5kZXgoZnJvbUluZGV4LCBsZW5ndGgpO1xuICAgIHZhciB2YWx1ZTtcbiAgICAvLyBBcnJheSNpbmNsdWRlcyB1c2VzIFNhbWVWYWx1ZVplcm8gZXF1YWxpdHkgYWxnb3JpdGhtXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZVxuICAgIGlmIChJU19JTkNMVURFUyAmJiBlbCAhPSBlbCkgd2hpbGUgKGxlbmd0aCA+IGluZGV4KSB7XG4gICAgICB2YWx1ZSA9IE9baW5kZXgrK107XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VsZi1jb21wYXJlXG4gICAgICBpZiAodmFsdWUgIT0gdmFsdWUpIHJldHVybiB0cnVlO1xuICAgIC8vIEFycmF5I2luZGV4T2YgaWdub3JlcyBob2xlcywgQXJyYXkjaW5jbHVkZXMgLSBub3RcbiAgICB9IGVsc2UgZm9yICg7bGVuZ3RoID4gaW5kZXg7IGluZGV4KyspIGlmIChJU19JTkNMVURFUyB8fCBpbmRleCBpbiBPKSB7XG4gICAgICBpZiAoT1tpbmRleF0gPT09IGVsKSByZXR1cm4gSVNfSU5DTFVERVMgfHwgaW5kZXggfHwgMDtcbiAgICB9IHJldHVybiAhSVNfSU5DTFVERVMgJiYgLTE7XG4gIH07XG59O1xuIiwiLy8gZ2V0dGluZyB0YWcgZnJvbSAxOS4xLjMuNiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nKClcbnZhciBjb2YgPSByZXF1aXJlKCcuL19jb2YnKTtcbnZhciBUQUcgPSByZXF1aXJlKCcuL193a3MnKSgndG9TdHJpbmdUYWcnKTtcbi8vIEVTMyB3cm9uZyBoZXJlXG52YXIgQVJHID0gY29mKGZ1bmN0aW9uICgpIHsgcmV0dXJuIGFyZ3VtZW50czsgfSgpKSA9PSAnQXJndW1lbnRzJztcblxuLy8gZmFsbGJhY2sgZm9yIElFMTEgU2NyaXB0IEFjY2VzcyBEZW5pZWQgZXJyb3JcbnZhciB0cnlHZXQgPSBmdW5jdGlvbiAoaXQsIGtleSkge1xuICB0cnkge1xuICAgIHJldHVybiBpdFtrZXldO1xuICB9IGNhdGNoIChlKSB7IC8qIGVtcHR5ICovIH1cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHZhciBPLCBULCBCO1xuICByZXR1cm4gaXQgPT09IHVuZGVmaW5lZCA/ICdVbmRlZmluZWQnIDogaXQgPT09IG51bGwgPyAnTnVsbCdcbiAgICAvLyBAQHRvU3RyaW5nVGFnIGNhc2VcbiAgICA6IHR5cGVvZiAoVCA9IHRyeUdldChPID0gT2JqZWN0KGl0KSwgVEFHKSkgPT0gJ3N0cmluZycgPyBUXG4gICAgLy8gYnVpbHRpblRhZyBjYXNlXG4gICAgOiBBUkcgPyBjb2YoTylcbiAgICAvLyBFUzMgYXJndW1lbnRzIGZhbGxiYWNrXG4gICAgOiAoQiA9IGNvZihPKSkgPT0gJ09iamVjdCcgJiYgdHlwZW9mIE8uY2FsbGVlID09ICdmdW5jdGlvbicgPyAnQXJndW1lbnRzJyA6IEI7XG59O1xuIiwidmFyIHRvU3RyaW5nID0ge30udG9TdHJpbmc7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiB0b1N0cmluZy5jYWxsKGl0KS5zbGljZSg4LCAtMSk7XG59O1xuIiwidmFyIGNvcmUgPSBtb2R1bGUuZXhwb3J0cyA9IHsgdmVyc2lvbjogJzIuNi4xMScgfTtcbmlmICh0eXBlb2YgX19lID09ICdudW1iZXInKSBfX2UgPSBjb3JlOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVuZGVmXG4iLCIndXNlIHN0cmljdCc7XG52YXIgJGRlZmluZVByb3BlcnR5ID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwJyk7XG52YXIgY3JlYXRlRGVzYyA9IHJlcXVpcmUoJy4vX3Byb3BlcnR5LWRlc2MnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqZWN0LCBpbmRleCwgdmFsdWUpIHtcbiAgaWYgKGluZGV4IGluIG9iamVjdCkgJGRlZmluZVByb3BlcnR5LmYob2JqZWN0LCBpbmRleCwgY3JlYXRlRGVzYygwLCB2YWx1ZSkpO1xuICBlbHNlIG9iamVjdFtpbmRleF0gPSB2YWx1ZTtcbn07XG4iLCIvLyBvcHRpb25hbCAvIHNpbXBsZSBjb250ZXh0IGJpbmRpbmdcbnZhciBhRnVuY3Rpb24gPSByZXF1aXJlKCcuL19hLWZ1bmN0aW9uJyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChmbiwgdGhhdCwgbGVuZ3RoKSB7XG4gIGFGdW5jdGlvbihmbik7XG4gIGlmICh0aGF0ID09PSB1bmRlZmluZWQpIHJldHVybiBmbjtcbiAgc3dpdGNoIChsZW5ndGgpIHtcbiAgICBjYXNlIDE6IHJldHVybiBmdW5jdGlvbiAoYSkge1xuICAgICAgcmV0dXJuIGZuLmNhbGwodGhhdCwgYSk7XG4gICAgfTtcbiAgICBjYXNlIDI6IHJldHVybiBmdW5jdGlvbiAoYSwgYikge1xuICAgICAgcmV0dXJuIGZuLmNhbGwodGhhdCwgYSwgYik7XG4gICAgfTtcbiAgICBjYXNlIDM6IHJldHVybiBmdW5jdGlvbiAoYSwgYiwgYykge1xuICAgICAgcmV0dXJuIGZuLmNhbGwodGhhdCwgYSwgYiwgYyk7XG4gICAgfTtcbiAgfVxuICByZXR1cm4gZnVuY3Rpb24gKC8qIC4uLmFyZ3MgKi8pIHtcbiAgICByZXR1cm4gZm4uYXBwbHkodGhhdCwgYXJndW1lbnRzKTtcbiAgfTtcbn07XG4iLCIvLyA3LjIuMSBSZXF1aXJlT2JqZWN0Q29lcmNpYmxlKGFyZ3VtZW50KVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKGl0ID09IHVuZGVmaW5lZCkgdGhyb3cgVHlwZUVycm9yKFwiQ2FuJ3QgY2FsbCBtZXRob2Qgb24gIFwiICsgaXQpO1xuICByZXR1cm4gaXQ7XG59O1xuIiwiLy8gVGhhbmsncyBJRTggZm9yIGhpcyBmdW5ueSBkZWZpbmVQcm9wZXJ0eVxubW9kdWxlLmV4cG9ydHMgPSAhcmVxdWlyZSgnLi9fZmFpbHMnKShmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdhJywgeyBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDc7IH0gfSkuYSAhPSA3O1xufSk7XG4iLCJ2YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbnZhciBkb2N1bWVudCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpLmRvY3VtZW50O1xuLy8gdHlwZW9mIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgaXMgJ29iamVjdCcgaW4gb2xkIElFXG52YXIgaXMgPSBpc09iamVjdChkb2N1bWVudCkgJiYgaXNPYmplY3QoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gaXMgPyBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGl0KSA6IHt9O1xufTtcbiIsIi8vIElFIDgtIGRvbid0IGVudW0gYnVnIGtleXNcbm1vZHVsZS5leHBvcnRzID0gKFxuICAnY29uc3RydWN0b3IsaGFzT3duUHJvcGVydHksaXNQcm90b3R5cGVPZixwcm9wZXJ0eUlzRW51bWVyYWJsZSx0b0xvY2FsZVN0cmluZyx0b1N0cmluZyx2YWx1ZU9mJ1xuKS5zcGxpdCgnLCcpO1xuIiwidmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpO1xudmFyIGNvcmUgPSByZXF1aXJlKCcuL19jb3JlJyk7XG52YXIgY3R4ID0gcmVxdWlyZSgnLi9fY3R4Jyk7XG52YXIgaGlkZSA9IHJlcXVpcmUoJy4vX2hpZGUnKTtcbnZhciBoYXMgPSByZXF1aXJlKCcuL19oYXMnKTtcbnZhciBQUk9UT1RZUEUgPSAncHJvdG90eXBlJztcblxudmFyICRleHBvcnQgPSBmdW5jdGlvbiAodHlwZSwgbmFtZSwgc291cmNlKSB7XG4gIHZhciBJU19GT1JDRUQgPSB0eXBlICYgJGV4cG9ydC5GO1xuICB2YXIgSVNfR0xPQkFMID0gdHlwZSAmICRleHBvcnQuRztcbiAgdmFyIElTX1NUQVRJQyA9IHR5cGUgJiAkZXhwb3J0LlM7XG4gIHZhciBJU19QUk9UTyA9IHR5cGUgJiAkZXhwb3J0LlA7XG4gIHZhciBJU19CSU5EID0gdHlwZSAmICRleHBvcnQuQjtcbiAgdmFyIElTX1dSQVAgPSB0eXBlICYgJGV4cG9ydC5XO1xuICB2YXIgZXhwb3J0cyA9IElTX0dMT0JBTCA/IGNvcmUgOiBjb3JlW25hbWVdIHx8IChjb3JlW25hbWVdID0ge30pO1xuICB2YXIgZXhwUHJvdG8gPSBleHBvcnRzW1BST1RPVFlQRV07XG4gIHZhciB0YXJnZXQgPSBJU19HTE9CQUwgPyBnbG9iYWwgOiBJU19TVEFUSUMgPyBnbG9iYWxbbmFtZV0gOiAoZ2xvYmFsW25hbWVdIHx8IHt9KVtQUk9UT1RZUEVdO1xuICB2YXIga2V5LCBvd24sIG91dDtcbiAgaWYgKElTX0dMT0JBTCkgc291cmNlID0gbmFtZTtcbiAgZm9yIChrZXkgaW4gc291cmNlKSB7XG4gICAgLy8gY29udGFpbnMgaW4gbmF0aXZlXG4gICAgb3duID0gIUlTX0ZPUkNFRCAmJiB0YXJnZXQgJiYgdGFyZ2V0W2tleV0gIT09IHVuZGVmaW5lZDtcbiAgICBpZiAob3duICYmIGhhcyhleHBvcnRzLCBrZXkpKSBjb250aW51ZTtcbiAgICAvLyBleHBvcnQgbmF0aXZlIG9yIHBhc3NlZFxuICAgIG91dCA9IG93biA/IHRhcmdldFtrZXldIDogc291cmNlW2tleV07XG4gICAgLy8gcHJldmVudCBnbG9iYWwgcG9sbHV0aW9uIGZvciBuYW1lc3BhY2VzXG4gICAgZXhwb3J0c1trZXldID0gSVNfR0xPQkFMICYmIHR5cGVvZiB0YXJnZXRba2V5XSAhPSAnZnVuY3Rpb24nID8gc291cmNlW2tleV1cbiAgICAvLyBiaW5kIHRpbWVycyB0byBnbG9iYWwgZm9yIGNhbGwgZnJvbSBleHBvcnQgY29udGV4dFxuICAgIDogSVNfQklORCAmJiBvd24gPyBjdHgob3V0LCBnbG9iYWwpXG4gICAgLy8gd3JhcCBnbG9iYWwgY29uc3RydWN0b3JzIGZvciBwcmV2ZW50IGNoYW5nZSB0aGVtIGluIGxpYnJhcnlcbiAgICA6IElTX1dSQVAgJiYgdGFyZ2V0W2tleV0gPT0gb3V0ID8gKGZ1bmN0aW9uIChDKSB7XG4gICAgICB2YXIgRiA9IGZ1bmN0aW9uIChhLCBiLCBjKSB7XG4gICAgICAgIGlmICh0aGlzIGluc3RhbmNlb2YgQykge1xuICAgICAgICAgIHN3aXRjaCAoYXJndW1lbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgY2FzZSAwOiByZXR1cm4gbmV3IEMoKTtcbiAgICAgICAgICAgIGNhc2UgMTogcmV0dXJuIG5ldyBDKGEpO1xuICAgICAgICAgICAgY2FzZSAyOiByZXR1cm4gbmV3IEMoYSwgYik7XG4gICAgICAgICAgfSByZXR1cm4gbmV3IEMoYSwgYiwgYyk7XG4gICAgICAgIH0gcmV0dXJuIEMuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgIH07XG4gICAgICBGW1BST1RPVFlQRV0gPSBDW1BST1RPVFlQRV07XG4gICAgICByZXR1cm4gRjtcbiAgICAvLyBtYWtlIHN0YXRpYyB2ZXJzaW9ucyBmb3IgcHJvdG90eXBlIG1ldGhvZHNcbiAgICB9KShvdXQpIDogSVNfUFJPVE8gJiYgdHlwZW9mIG91dCA9PSAnZnVuY3Rpb24nID8gY3R4KEZ1bmN0aW9uLmNhbGwsIG91dCkgOiBvdXQ7XG4gICAgLy8gZXhwb3J0IHByb3RvIG1ldGhvZHMgdG8gY29yZS4lQ09OU1RSVUNUT1IlLm1ldGhvZHMuJU5BTUUlXG4gICAgaWYgKElTX1BST1RPKSB7XG4gICAgICAoZXhwb3J0cy52aXJ0dWFsIHx8IChleHBvcnRzLnZpcnR1YWwgPSB7fSkpW2tleV0gPSBvdXQ7XG4gICAgICAvLyBleHBvcnQgcHJvdG8gbWV0aG9kcyB0byBjb3JlLiVDT05TVFJVQ1RPUiUucHJvdG90eXBlLiVOQU1FJVxuICAgICAgaWYgKHR5cGUgJiAkZXhwb3J0LlIgJiYgZXhwUHJvdG8gJiYgIWV4cFByb3RvW2tleV0pIGhpZGUoZXhwUHJvdG8sIGtleSwgb3V0KTtcbiAgICB9XG4gIH1cbn07XG4vLyB0eXBlIGJpdG1hcFxuJGV4cG9ydC5GID0gMTsgICAvLyBmb3JjZWRcbiRleHBvcnQuRyA9IDI7ICAgLy8gZ2xvYmFsXG4kZXhwb3J0LlMgPSA0OyAgIC8vIHN0YXRpY1xuJGV4cG9ydC5QID0gODsgICAvLyBwcm90b1xuJGV4cG9ydC5CID0gMTY7ICAvLyBiaW5kXG4kZXhwb3J0LlcgPSAzMjsgIC8vIHdyYXBcbiRleHBvcnQuVSA9IDY0OyAgLy8gc2FmZVxuJGV4cG9ydC5SID0gMTI4OyAvLyByZWFsIHByb3RvIG1ldGhvZCBmb3IgYGxpYnJhcnlgXG5tb2R1bGUuZXhwb3J0cyA9ICRleHBvcnQ7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChleGVjKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuICEhZXhlYygpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn07XG4iLCIvLyBodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9pc3N1ZXMvODYjaXNzdWVjb21tZW50LTExNTc1OTAyOFxudmFyIGdsb2JhbCA9IG1vZHVsZS5leHBvcnRzID0gdHlwZW9mIHdpbmRvdyAhPSAndW5kZWZpbmVkJyAmJiB3aW5kb3cuTWF0aCA9PSBNYXRoXG4gID8gd2luZG93IDogdHlwZW9mIHNlbGYgIT0gJ3VuZGVmaW5lZCcgJiYgc2VsZi5NYXRoID09IE1hdGggPyBzZWxmXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1uZXctZnVuY1xuICA6IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XG5pZiAodHlwZW9mIF9fZyA9PSAnbnVtYmVyJykgX19nID0gZ2xvYmFsOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVuZGVmXG4iLCJ2YXIgaGFzT3duUHJvcGVydHkgPSB7fS5oYXNPd25Qcm9wZXJ0eTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0LCBrZXkpIHtcbiAgcmV0dXJuIGhhc093blByb3BlcnR5LmNhbGwoaXQsIGtleSk7XG59O1xuIiwidmFyIGRQID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwJyk7XG52YXIgY3JlYXRlRGVzYyA9IHJlcXVpcmUoJy4vX3Byb3BlcnR5LWRlc2MnKTtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9fZGVzY3JpcHRvcnMnKSA/IGZ1bmN0aW9uIChvYmplY3QsIGtleSwgdmFsdWUpIHtcbiAgcmV0dXJuIGRQLmYob2JqZWN0LCBrZXksIGNyZWF0ZURlc2MoMSwgdmFsdWUpKTtcbn0gOiBmdW5jdGlvbiAob2JqZWN0LCBrZXksIHZhbHVlKSB7XG4gIG9iamVjdFtrZXldID0gdmFsdWU7XG4gIHJldHVybiBvYmplY3Q7XG59O1xuIiwidmFyIGRvY3VtZW50ID0gcmVxdWlyZSgnLi9fZ2xvYmFsJykuZG9jdW1lbnQ7XG5tb2R1bGUuZXhwb3J0cyA9IGRvY3VtZW50ICYmIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiIsIm1vZHVsZS5leHBvcnRzID0gIXJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJykgJiYgIXJlcXVpcmUoJy4vX2ZhaWxzJykoZnVuY3Rpb24gKCkge1xuICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHJlcXVpcmUoJy4vX2RvbS1jcmVhdGUnKSgnZGl2JyksICdhJywgeyBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDc7IH0gfSkuYSAhPSA3O1xufSk7XG4iLCIvLyBmYWxsYmFjayBmb3Igbm9uLWFycmF5LWxpa2UgRVMzIGFuZCBub24tZW51bWVyYWJsZSBvbGQgVjggc3RyaW5nc1xudmFyIGNvZiA9IHJlcXVpcmUoJy4vX2NvZicpO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb3RvdHlwZS1idWlsdGluc1xubW9kdWxlLmV4cG9ydHMgPSBPYmplY3QoJ3onKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKSA/IE9iamVjdCA6IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gY29mKGl0KSA9PSAnU3RyaW5nJyA/IGl0LnNwbGl0KCcnKSA6IE9iamVjdChpdCk7XG59O1xuIiwiLy8gY2hlY2sgb24gZGVmYXVsdCBBcnJheSBpdGVyYXRvclxudmFyIEl0ZXJhdG9ycyA9IHJlcXVpcmUoJy4vX2l0ZXJhdG9ycycpO1xudmFyIElURVJBVE9SID0gcmVxdWlyZSgnLi9fd2tzJykoJ2l0ZXJhdG9yJyk7XG52YXIgQXJyYXlQcm90byA9IEFycmF5LnByb3RvdHlwZTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGl0ICE9PSB1bmRlZmluZWQgJiYgKEl0ZXJhdG9ycy5BcnJheSA9PT0gaXQgfHwgQXJyYXlQcm90b1tJVEVSQVRPUl0gPT09IGl0KTtcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gdHlwZW9mIGl0ID09PSAnb2JqZWN0JyA/IGl0ICE9PSBudWxsIDogdHlwZW9mIGl0ID09PSAnZnVuY3Rpb24nO1xufTtcbiIsIi8vIGNhbGwgc29tZXRoaW5nIG9uIGl0ZXJhdG9yIHN0ZXAgd2l0aCBzYWZlIGNsb3Npbmcgb24gZXJyb3JcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4vX2FuLW9iamVjdCcpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXRlcmF0b3IsIGZuLCB2YWx1ZSwgZW50cmllcykge1xuICB0cnkge1xuICAgIHJldHVybiBlbnRyaWVzID8gZm4oYW5PYmplY3QodmFsdWUpWzBdLCB2YWx1ZVsxXSkgOiBmbih2YWx1ZSk7XG4gIC8vIDcuNC42IEl0ZXJhdG9yQ2xvc2UoaXRlcmF0b3IsIGNvbXBsZXRpb24pXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB2YXIgcmV0ID0gaXRlcmF0b3JbJ3JldHVybiddO1xuICAgIGlmIChyZXQgIT09IHVuZGVmaW5lZCkgYW5PYmplY3QocmV0LmNhbGwoaXRlcmF0b3IpKTtcbiAgICB0aHJvdyBlO1xuICB9XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGNyZWF0ZSA9IHJlcXVpcmUoJy4vX29iamVjdC1jcmVhdGUnKTtcbnZhciBkZXNjcmlwdG9yID0gcmVxdWlyZSgnLi9fcHJvcGVydHktZGVzYycpO1xudmFyIHNldFRvU3RyaW5nVGFnID0gcmVxdWlyZSgnLi9fc2V0LXRvLXN0cmluZy10YWcnKTtcbnZhciBJdGVyYXRvclByb3RvdHlwZSA9IHt9O1xuXG4vLyAyNS4xLjIuMS4xICVJdGVyYXRvclByb3RvdHlwZSVbQEBpdGVyYXRvcl0oKVxucmVxdWlyZSgnLi9faGlkZScpKEl0ZXJhdG9yUHJvdG90eXBlLCByZXF1aXJlKCcuL193a3MnKSgnaXRlcmF0b3InKSwgZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBOQU1FLCBuZXh0KSB7XG4gIENvbnN0cnVjdG9yLnByb3RvdHlwZSA9IGNyZWF0ZShJdGVyYXRvclByb3RvdHlwZSwgeyBuZXh0OiBkZXNjcmlwdG9yKDEsIG5leHQpIH0pO1xuICBzZXRUb1N0cmluZ1RhZyhDb25zdHJ1Y3RvciwgTkFNRSArICcgSXRlcmF0b3InKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgTElCUkFSWSA9IHJlcXVpcmUoJy4vX2xpYnJhcnknKTtcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG52YXIgcmVkZWZpbmUgPSByZXF1aXJlKCcuL19yZWRlZmluZScpO1xudmFyIGhpZGUgPSByZXF1aXJlKCcuL19oaWRlJyk7XG52YXIgSXRlcmF0b3JzID0gcmVxdWlyZSgnLi9faXRlcmF0b3JzJyk7XG52YXIgJGl0ZXJDcmVhdGUgPSByZXF1aXJlKCcuL19pdGVyLWNyZWF0ZScpO1xudmFyIHNldFRvU3RyaW5nVGFnID0gcmVxdWlyZSgnLi9fc2V0LXRvLXN0cmluZy10YWcnKTtcbnZhciBnZXRQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4vX29iamVjdC1ncG8nKTtcbnZhciBJVEVSQVRPUiA9IHJlcXVpcmUoJy4vX3drcycpKCdpdGVyYXRvcicpO1xudmFyIEJVR0dZID0gIShbXS5rZXlzICYmICduZXh0JyBpbiBbXS5rZXlzKCkpOyAvLyBTYWZhcmkgaGFzIGJ1Z2d5IGl0ZXJhdG9ycyB3L28gYG5leHRgXG52YXIgRkZfSVRFUkFUT1IgPSAnQEBpdGVyYXRvcic7XG52YXIgS0VZUyA9ICdrZXlzJztcbnZhciBWQUxVRVMgPSAndmFsdWVzJztcblxudmFyIHJldHVyblRoaXMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChCYXNlLCBOQU1FLCBDb25zdHJ1Y3RvciwgbmV4dCwgREVGQVVMVCwgSVNfU0VULCBGT1JDRUQpIHtcbiAgJGl0ZXJDcmVhdGUoQ29uc3RydWN0b3IsIE5BTUUsIG5leHQpO1xuICB2YXIgZ2V0TWV0aG9kID0gZnVuY3Rpb24gKGtpbmQpIHtcbiAgICBpZiAoIUJVR0dZICYmIGtpbmQgaW4gcHJvdG8pIHJldHVybiBwcm90b1traW5kXTtcbiAgICBzd2l0Y2ggKGtpbmQpIHtcbiAgICAgIGNhc2UgS0VZUzogcmV0dXJuIGZ1bmN0aW9uIGtleXMoKSB7IHJldHVybiBuZXcgQ29uc3RydWN0b3IodGhpcywga2luZCk7IH07XG4gICAgICBjYXNlIFZBTFVFUzogcmV0dXJuIGZ1bmN0aW9uIHZhbHVlcygpIHsgcmV0dXJuIG5ldyBDb25zdHJ1Y3Rvcih0aGlzLCBraW5kKTsgfTtcbiAgICB9IHJldHVybiBmdW5jdGlvbiBlbnRyaWVzKCkgeyByZXR1cm4gbmV3IENvbnN0cnVjdG9yKHRoaXMsIGtpbmQpOyB9O1xuICB9O1xuICB2YXIgVEFHID0gTkFNRSArICcgSXRlcmF0b3InO1xuICB2YXIgREVGX1ZBTFVFUyA9IERFRkFVTFQgPT0gVkFMVUVTO1xuICB2YXIgVkFMVUVTX0JVRyA9IGZhbHNlO1xuICB2YXIgcHJvdG8gPSBCYXNlLnByb3RvdHlwZTtcbiAgdmFyICRuYXRpdmUgPSBwcm90b1tJVEVSQVRPUl0gfHwgcHJvdG9bRkZfSVRFUkFUT1JdIHx8IERFRkFVTFQgJiYgcHJvdG9bREVGQVVMVF07XG4gIHZhciAkZGVmYXVsdCA9ICRuYXRpdmUgfHwgZ2V0TWV0aG9kKERFRkFVTFQpO1xuICB2YXIgJGVudHJpZXMgPSBERUZBVUxUID8gIURFRl9WQUxVRVMgPyAkZGVmYXVsdCA6IGdldE1ldGhvZCgnZW50cmllcycpIDogdW5kZWZpbmVkO1xuICB2YXIgJGFueU5hdGl2ZSA9IE5BTUUgPT0gJ0FycmF5JyA/IHByb3RvLmVudHJpZXMgfHwgJG5hdGl2ZSA6ICRuYXRpdmU7XG4gIHZhciBtZXRob2RzLCBrZXksIEl0ZXJhdG9yUHJvdG90eXBlO1xuICAvLyBGaXggbmF0aXZlXG4gIGlmICgkYW55TmF0aXZlKSB7XG4gICAgSXRlcmF0b3JQcm90b3R5cGUgPSBnZXRQcm90b3R5cGVPZigkYW55TmF0aXZlLmNhbGwobmV3IEJhc2UoKSkpO1xuICAgIGlmIChJdGVyYXRvclByb3RvdHlwZSAhPT0gT2JqZWN0LnByb3RvdHlwZSAmJiBJdGVyYXRvclByb3RvdHlwZS5uZXh0KSB7XG4gICAgICAvLyBTZXQgQEB0b1N0cmluZ1RhZyB0byBuYXRpdmUgaXRlcmF0b3JzXG4gICAgICBzZXRUb1N0cmluZ1RhZyhJdGVyYXRvclByb3RvdHlwZSwgVEFHLCB0cnVlKTtcbiAgICAgIC8vIGZpeCBmb3Igc29tZSBvbGQgZW5naW5lc1xuICAgICAgaWYgKCFMSUJSQVJZICYmIHR5cGVvZiBJdGVyYXRvclByb3RvdHlwZVtJVEVSQVRPUl0gIT0gJ2Z1bmN0aW9uJykgaGlkZShJdGVyYXRvclByb3RvdHlwZSwgSVRFUkFUT1IsIHJldHVyblRoaXMpO1xuICAgIH1cbiAgfVxuICAvLyBmaXggQXJyYXkje3ZhbHVlcywgQEBpdGVyYXRvcn0ubmFtZSBpbiBWOCAvIEZGXG4gIGlmIChERUZfVkFMVUVTICYmICRuYXRpdmUgJiYgJG5hdGl2ZS5uYW1lICE9PSBWQUxVRVMpIHtcbiAgICBWQUxVRVNfQlVHID0gdHJ1ZTtcbiAgICAkZGVmYXVsdCA9IGZ1bmN0aW9uIHZhbHVlcygpIHsgcmV0dXJuICRuYXRpdmUuY2FsbCh0aGlzKTsgfTtcbiAgfVxuICAvLyBEZWZpbmUgaXRlcmF0b3JcbiAgaWYgKCghTElCUkFSWSB8fCBGT1JDRUQpICYmIChCVUdHWSB8fCBWQUxVRVNfQlVHIHx8ICFwcm90b1tJVEVSQVRPUl0pKSB7XG4gICAgaGlkZShwcm90bywgSVRFUkFUT1IsICRkZWZhdWx0KTtcbiAgfVxuICAvLyBQbHVnIGZvciBsaWJyYXJ5XG4gIEl0ZXJhdG9yc1tOQU1FXSA9ICRkZWZhdWx0O1xuICBJdGVyYXRvcnNbVEFHXSA9IHJldHVyblRoaXM7XG4gIGlmIChERUZBVUxUKSB7XG4gICAgbWV0aG9kcyA9IHtcbiAgICAgIHZhbHVlczogREVGX1ZBTFVFUyA/ICRkZWZhdWx0IDogZ2V0TWV0aG9kKFZBTFVFUyksXG4gICAgICBrZXlzOiBJU19TRVQgPyAkZGVmYXVsdCA6IGdldE1ldGhvZChLRVlTKSxcbiAgICAgIGVudHJpZXM6ICRlbnRyaWVzXG4gICAgfTtcbiAgICBpZiAoRk9SQ0VEKSBmb3IgKGtleSBpbiBtZXRob2RzKSB7XG4gICAgICBpZiAoIShrZXkgaW4gcHJvdG8pKSByZWRlZmluZShwcm90bywga2V5LCBtZXRob2RzW2tleV0pO1xuICAgIH0gZWxzZSAkZXhwb3J0KCRleHBvcnQuUCArICRleHBvcnQuRiAqIChCVUdHWSB8fCBWQUxVRVNfQlVHKSwgTkFNRSwgbWV0aG9kcyk7XG4gIH1cbiAgcmV0dXJuIG1ldGhvZHM7XG59O1xuIiwidmFyIElURVJBVE9SID0gcmVxdWlyZSgnLi9fd2tzJykoJ2l0ZXJhdG9yJyk7XG52YXIgU0FGRV9DTE9TSU5HID0gZmFsc2U7XG5cbnRyeSB7XG4gIHZhciByaXRlciA9IFs3XVtJVEVSQVRPUl0oKTtcbiAgcml0ZXJbJ3JldHVybiddID0gZnVuY3Rpb24gKCkgeyBTQUZFX0NMT1NJTkcgPSB0cnVlOyB9O1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdGhyb3ctbGl0ZXJhbFxuICBBcnJheS5mcm9tKHJpdGVyLCBmdW5jdGlvbiAoKSB7IHRocm93IDI7IH0pO1xufSBjYXRjaCAoZSkgeyAvKiBlbXB0eSAqLyB9XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGV4ZWMsIHNraXBDbG9zaW5nKSB7XG4gIGlmICghc2tpcENsb3NpbmcgJiYgIVNBRkVfQ0xPU0lORykgcmV0dXJuIGZhbHNlO1xuICB2YXIgc2FmZSA9IGZhbHNlO1xuICB0cnkge1xuICAgIHZhciBhcnIgPSBbN107XG4gICAgdmFyIGl0ZXIgPSBhcnJbSVRFUkFUT1JdKCk7XG4gICAgaXRlci5uZXh0ID0gZnVuY3Rpb24gKCkgeyByZXR1cm4geyBkb25lOiBzYWZlID0gdHJ1ZSB9OyB9O1xuICAgIGFycltJVEVSQVRPUl0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiBpdGVyOyB9O1xuICAgIGV4ZWMoYXJyKTtcbiAgfSBjYXRjaCAoZSkgeyAvKiBlbXB0eSAqLyB9XG4gIHJldHVybiBzYWZlO1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0ge307XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHRydWU7XG4iLCIvLyAxOS4xLjIuMiAvIDE1LjIuMy41IE9iamVjdC5jcmVhdGUoTyBbLCBQcm9wZXJ0aWVzXSlcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4vX2FuLW9iamVjdCcpO1xudmFyIGRQcyA9IHJlcXVpcmUoJy4vX29iamVjdC1kcHMnKTtcbnZhciBlbnVtQnVnS2V5cyA9IHJlcXVpcmUoJy4vX2VudW0tYnVnLWtleXMnKTtcbnZhciBJRV9QUk9UTyA9IHJlcXVpcmUoJy4vX3NoYXJlZC1rZXknKSgnSUVfUFJPVE8nKTtcbnZhciBFbXB0eSA9IGZ1bmN0aW9uICgpIHsgLyogZW1wdHkgKi8gfTtcbnZhciBQUk9UT1RZUEUgPSAncHJvdG90eXBlJztcblxuLy8gQ3JlYXRlIG9iamVjdCB3aXRoIGZha2UgYG51bGxgIHByb3RvdHlwZTogdXNlIGlmcmFtZSBPYmplY3Qgd2l0aCBjbGVhcmVkIHByb3RvdHlwZVxudmFyIGNyZWF0ZURpY3QgPSBmdW5jdGlvbiAoKSB7XG4gIC8vIFRocmFzaCwgd2FzdGUgYW5kIHNvZG9teTogSUUgR0MgYnVnXG4gIHZhciBpZnJhbWUgPSByZXF1aXJlKCcuL19kb20tY3JlYXRlJykoJ2lmcmFtZScpO1xuICB2YXIgaSA9IGVudW1CdWdLZXlzLmxlbmd0aDtcbiAgdmFyIGx0ID0gJzwnO1xuICB2YXIgZ3QgPSAnPic7XG4gIHZhciBpZnJhbWVEb2N1bWVudDtcbiAgaWZyYW1lLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gIHJlcXVpcmUoJy4vX2h0bWwnKS5hcHBlbmRDaGlsZChpZnJhbWUpO1xuICBpZnJhbWUuc3JjID0gJ2phdmFzY3JpcHQ6JzsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1zY3JpcHQtdXJsXG4gIC8vIGNyZWF0ZURpY3QgPSBpZnJhbWUuY29udGVudFdpbmRvdy5PYmplY3Q7XG4gIC8vIGh0bWwucmVtb3ZlQ2hpbGQoaWZyYW1lKTtcbiAgaWZyYW1lRG9jdW1lbnQgPSBpZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVudDtcbiAgaWZyYW1lRG9jdW1lbnQub3BlbigpO1xuICBpZnJhbWVEb2N1bWVudC53cml0ZShsdCArICdzY3JpcHQnICsgZ3QgKyAnZG9jdW1lbnQuRj1PYmplY3QnICsgbHQgKyAnL3NjcmlwdCcgKyBndCk7XG4gIGlmcmFtZURvY3VtZW50LmNsb3NlKCk7XG4gIGNyZWF0ZURpY3QgPSBpZnJhbWVEb2N1bWVudC5GO1xuICB3aGlsZSAoaS0tKSBkZWxldGUgY3JlYXRlRGljdFtQUk9UT1RZUEVdW2VudW1CdWdLZXlzW2ldXTtcbiAgcmV0dXJuIGNyZWF0ZURpY3QoKTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gT2JqZWN0LmNyZWF0ZSB8fCBmdW5jdGlvbiBjcmVhdGUoTywgUHJvcGVydGllcykge1xuICB2YXIgcmVzdWx0O1xuICBpZiAoTyAhPT0gbnVsbCkge1xuICAgIEVtcHR5W1BST1RPVFlQRV0gPSBhbk9iamVjdChPKTtcbiAgICByZXN1bHQgPSBuZXcgRW1wdHkoKTtcbiAgICBFbXB0eVtQUk9UT1RZUEVdID0gbnVsbDtcbiAgICAvLyBhZGQgXCJfX3Byb3RvX19cIiBmb3IgT2JqZWN0LmdldFByb3RvdHlwZU9mIHBvbHlmaWxsXG4gICAgcmVzdWx0W0lFX1BST1RPXSA9IE87XG4gIH0gZWxzZSByZXN1bHQgPSBjcmVhdGVEaWN0KCk7XG4gIHJldHVybiBQcm9wZXJ0aWVzID09PSB1bmRlZmluZWQgPyByZXN1bHQgOiBkUHMocmVzdWx0LCBQcm9wZXJ0aWVzKTtcbn07XG4iLCJ2YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuL19hbi1vYmplY3QnKTtcbnZhciBJRThfRE9NX0RFRklORSA9IHJlcXVpcmUoJy4vX2llOC1kb20tZGVmaW5lJyk7XG52YXIgdG9QcmltaXRpdmUgPSByZXF1aXJlKCcuL190by1wcmltaXRpdmUnKTtcbnZhciBkUCA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcblxuZXhwb3J0cy5mID0gcmVxdWlyZSgnLi9fZGVzY3JpcHRvcnMnKSA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSA6IGZ1bmN0aW9uIGRlZmluZVByb3BlcnR5KE8sIFAsIEF0dHJpYnV0ZXMpIHtcbiAgYW5PYmplY3QoTyk7XG4gIFAgPSB0b1ByaW1pdGl2ZShQLCB0cnVlKTtcbiAgYW5PYmplY3QoQXR0cmlidXRlcyk7XG4gIGlmIChJRThfRE9NX0RFRklORSkgdHJ5IHtcbiAgICByZXR1cm4gZFAoTywgUCwgQXR0cmlidXRlcyk7XG4gIH0gY2F0Y2ggKGUpIHsgLyogZW1wdHkgKi8gfVxuICBpZiAoJ2dldCcgaW4gQXR0cmlidXRlcyB8fCAnc2V0JyBpbiBBdHRyaWJ1dGVzKSB0aHJvdyBUeXBlRXJyb3IoJ0FjY2Vzc29ycyBub3Qgc3VwcG9ydGVkIScpO1xuICBpZiAoJ3ZhbHVlJyBpbiBBdHRyaWJ1dGVzKSBPW1BdID0gQXR0cmlidXRlcy52YWx1ZTtcbiAgcmV0dXJuIE87XG59O1xuIiwidmFyIGRQID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuL19hbi1vYmplY3QnKTtcbnZhciBnZXRLZXlzID0gcmVxdWlyZSgnLi9fb2JqZWN0LWtleXMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL19kZXNjcmlwdG9ycycpID8gT2JqZWN0LmRlZmluZVByb3BlcnRpZXMgOiBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKE8sIFByb3BlcnRpZXMpIHtcbiAgYW5PYmplY3QoTyk7XG4gIHZhciBrZXlzID0gZ2V0S2V5cyhQcm9wZXJ0aWVzKTtcbiAgdmFyIGxlbmd0aCA9IGtleXMubGVuZ3RoO1xuICB2YXIgaSA9IDA7XG4gIHZhciBQO1xuICB3aGlsZSAobGVuZ3RoID4gaSkgZFAuZihPLCBQID0ga2V5c1tpKytdLCBQcm9wZXJ0aWVzW1BdKTtcbiAgcmV0dXJuIE87XG59O1xuIiwiLy8gMTkuMS4yLjkgLyAxNS4yLjMuMiBPYmplY3QuZ2V0UHJvdG90eXBlT2YoTylcbnZhciBoYXMgPSByZXF1aXJlKCcuL19oYXMnKTtcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4vX3RvLW9iamVjdCcpO1xudmFyIElFX1BST1RPID0gcmVxdWlyZSgnLi9fc2hhcmVkLWtleScpKCdJRV9QUk9UTycpO1xudmFyIE9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxubW9kdWxlLmV4cG9ydHMgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YgfHwgZnVuY3Rpb24gKE8pIHtcbiAgTyA9IHRvT2JqZWN0KE8pO1xuICBpZiAoaGFzKE8sIElFX1BST1RPKSkgcmV0dXJuIE9bSUVfUFJPVE9dO1xuICBpZiAodHlwZW9mIE8uY29uc3RydWN0b3IgPT0gJ2Z1bmN0aW9uJyAmJiBPIGluc3RhbmNlb2YgTy5jb25zdHJ1Y3Rvcikge1xuICAgIHJldHVybiBPLmNvbnN0cnVjdG9yLnByb3RvdHlwZTtcbiAgfSByZXR1cm4gTyBpbnN0YW5jZW9mIE9iamVjdCA/IE9iamVjdFByb3RvIDogbnVsbDtcbn07XG4iLCJ2YXIgaGFzID0gcmVxdWlyZSgnLi9faGFzJyk7XG52YXIgdG9JT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8taW9iamVjdCcpO1xudmFyIGFycmF5SW5kZXhPZiA9IHJlcXVpcmUoJy4vX2FycmF5LWluY2x1ZGVzJykoZmFsc2UpO1xudmFyIElFX1BST1RPID0gcmVxdWlyZSgnLi9fc2hhcmVkLWtleScpKCdJRV9QUk9UTycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChvYmplY3QsIG5hbWVzKSB7XG4gIHZhciBPID0gdG9JT2JqZWN0KG9iamVjdCk7XG4gIHZhciBpID0gMDtcbiAgdmFyIHJlc3VsdCA9IFtdO1xuICB2YXIga2V5O1xuICBmb3IgKGtleSBpbiBPKSBpZiAoa2V5ICE9IElFX1BST1RPKSBoYXMoTywga2V5KSAmJiByZXN1bHQucHVzaChrZXkpO1xuICAvLyBEb24ndCBlbnVtIGJ1ZyAmIGhpZGRlbiBrZXlzXG4gIHdoaWxlIChuYW1lcy5sZW5ndGggPiBpKSBpZiAoaGFzKE8sIGtleSA9IG5hbWVzW2krK10pKSB7XG4gICAgfmFycmF5SW5kZXhPZihyZXN1bHQsIGtleSkgfHwgcmVzdWx0LnB1c2goa2V5KTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufTtcbiIsIi8vIDE5LjEuMi4xNCAvIDE1LjIuMy4xNCBPYmplY3Qua2V5cyhPKVxudmFyICRrZXlzID0gcmVxdWlyZSgnLi9fb2JqZWN0LWtleXMtaW50ZXJuYWwnKTtcbnZhciBlbnVtQnVnS2V5cyA9IHJlcXVpcmUoJy4vX2VudW0tYnVnLWtleXMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBPYmplY3Qua2V5cyB8fCBmdW5jdGlvbiBrZXlzKE8pIHtcbiAgcmV0dXJuICRrZXlzKE8sIGVudW1CdWdLZXlzKTtcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChiaXRtYXAsIHZhbHVlKSB7XG4gIHJldHVybiB7XG4gICAgZW51bWVyYWJsZTogIShiaXRtYXAgJiAxKSxcbiAgICBjb25maWd1cmFibGU6ICEoYml0bWFwICYgMiksXG4gICAgd3JpdGFibGU6ICEoYml0bWFwICYgNCksXG4gICAgdmFsdWU6IHZhbHVlXG4gIH07XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL19oaWRlJyk7XG4iLCJ2YXIgZGVmID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwJykuZjtcbnZhciBoYXMgPSByZXF1aXJlKCcuL19oYXMnKTtcbnZhciBUQUcgPSByZXF1aXJlKCcuL193a3MnKSgndG9TdHJpbmdUYWcnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQsIHRhZywgc3RhdCkge1xuICBpZiAoaXQgJiYgIWhhcyhpdCA9IHN0YXQgPyBpdCA6IGl0LnByb3RvdHlwZSwgVEFHKSkgZGVmKGl0LCBUQUcsIHsgY29uZmlndXJhYmxlOiB0cnVlLCB2YWx1ZTogdGFnIH0pO1xufTtcbiIsInZhciBzaGFyZWQgPSByZXF1aXJlKCcuL19zaGFyZWQnKSgna2V5cycpO1xudmFyIHVpZCA9IHJlcXVpcmUoJy4vX3VpZCcpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoa2V5KSB7XG4gIHJldHVybiBzaGFyZWRba2V5XSB8fCAoc2hhcmVkW2tleV0gPSB1aWQoa2V5KSk7XG59O1xuIiwidmFyIGNvcmUgPSByZXF1aXJlKCcuL19jb3JlJyk7XG52YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi9fZ2xvYmFsJyk7XG52YXIgU0hBUkVEID0gJ19fY29yZS1qc19zaGFyZWRfXyc7XG52YXIgc3RvcmUgPSBnbG9iYWxbU0hBUkVEXSB8fCAoZ2xvYmFsW1NIQVJFRF0gPSB7fSk7XG5cbihtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gIHJldHVybiBzdG9yZVtrZXldIHx8IChzdG9yZVtrZXldID0gdmFsdWUgIT09IHVuZGVmaW5lZCA/IHZhbHVlIDoge30pO1xufSkoJ3ZlcnNpb25zJywgW10pLnB1c2goe1xuICB2ZXJzaW9uOiBjb3JlLnZlcnNpb24sXG4gIG1vZGU6IHJlcXVpcmUoJy4vX2xpYnJhcnknKSA/ICdwdXJlJyA6ICdnbG9iYWwnLFxuICBjb3B5cmlnaHQ6ICfCqSAyMDE5IERlbmlzIFB1c2hrYXJldiAoemxvaXJvY2sucnUpJ1xufSk7XG4iLCJ2YXIgdG9JbnRlZ2VyID0gcmVxdWlyZSgnLi9fdG8taW50ZWdlcicpO1xudmFyIGRlZmluZWQgPSByZXF1aXJlKCcuL19kZWZpbmVkJyk7XG4vLyB0cnVlICAtPiBTdHJpbmcjYXRcbi8vIGZhbHNlIC0+IFN0cmluZyNjb2RlUG9pbnRBdFxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoVE9fU1RSSU5HKSB7XG4gIHJldHVybiBmdW5jdGlvbiAodGhhdCwgcG9zKSB7XG4gICAgdmFyIHMgPSBTdHJpbmcoZGVmaW5lZCh0aGF0KSk7XG4gICAgdmFyIGkgPSB0b0ludGVnZXIocG9zKTtcbiAgICB2YXIgbCA9IHMubGVuZ3RoO1xuICAgIHZhciBhLCBiO1xuICAgIGlmIChpIDwgMCB8fCBpID49IGwpIHJldHVybiBUT19TVFJJTkcgPyAnJyA6IHVuZGVmaW5lZDtcbiAgICBhID0gcy5jaGFyQ29kZUF0KGkpO1xuICAgIHJldHVybiBhIDwgMHhkODAwIHx8IGEgPiAweGRiZmYgfHwgaSArIDEgPT09IGwgfHwgKGIgPSBzLmNoYXJDb2RlQXQoaSArIDEpKSA8IDB4ZGMwMCB8fCBiID4gMHhkZmZmXG4gICAgICA/IFRPX1NUUklORyA/IHMuY2hhckF0KGkpIDogYVxuICAgICAgOiBUT19TVFJJTkcgPyBzLnNsaWNlKGksIGkgKyAyKSA6IChhIC0gMHhkODAwIDw8IDEwKSArIChiIC0gMHhkYzAwKSArIDB4MTAwMDA7XG4gIH07XG59O1xuIiwidmFyIHRvSW50ZWdlciA9IHJlcXVpcmUoJy4vX3RvLWludGVnZXInKTtcbnZhciBtYXggPSBNYXRoLm1heDtcbnZhciBtaW4gPSBNYXRoLm1pbjtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGluZGV4LCBsZW5ndGgpIHtcbiAgaW5kZXggPSB0b0ludGVnZXIoaW5kZXgpO1xuICByZXR1cm4gaW5kZXggPCAwID8gbWF4KGluZGV4ICsgbGVuZ3RoLCAwKSA6IG1pbihpbmRleCwgbGVuZ3RoKTtcbn07XG4iLCIvLyA3LjEuNCBUb0ludGVnZXJcbnZhciBjZWlsID0gTWF0aC5jZWlsO1xudmFyIGZsb29yID0gTWF0aC5mbG9vcjtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBpc05hTihpdCA9ICtpdCkgPyAwIDogKGl0ID4gMCA/IGZsb29yIDogY2VpbCkoaXQpO1xufTtcbiIsIi8vIHRvIGluZGV4ZWQgb2JqZWN0LCB0b09iamVjdCB3aXRoIGZhbGxiYWNrIGZvciBub24tYXJyYXktbGlrZSBFUzMgc3RyaW5nc1xudmFyIElPYmplY3QgPSByZXF1aXJlKCcuL19pb2JqZWN0Jyk7XG52YXIgZGVmaW5lZCA9IHJlcXVpcmUoJy4vX2RlZmluZWQnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBJT2JqZWN0KGRlZmluZWQoaXQpKTtcbn07XG4iLCIvLyA3LjEuMTUgVG9MZW5ndGhcbnZhciB0b0ludGVnZXIgPSByZXF1aXJlKCcuL190by1pbnRlZ2VyJyk7XG52YXIgbWluID0gTWF0aC5taW47XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gaXQgPiAwID8gbWluKHRvSW50ZWdlcihpdCksIDB4MWZmZmZmZmZmZmZmZmYpIDogMDsgLy8gcG93KDIsIDUzKSAtIDEgPT0gOTAwNzE5OTI1NDc0MDk5MVxufTtcbiIsIi8vIDcuMS4xMyBUb09iamVjdChhcmd1bWVudClcbnZhciBkZWZpbmVkID0gcmVxdWlyZSgnLi9fZGVmaW5lZCcpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIE9iamVjdChkZWZpbmVkKGl0KSk7XG59O1xuIiwiLy8gNy4xLjEgVG9QcmltaXRpdmUoaW5wdXQgWywgUHJlZmVycmVkVHlwZV0pXG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbi8vIGluc3RlYWQgb2YgdGhlIEVTNiBzcGVjIHZlcnNpb24sIHdlIGRpZG4ndCBpbXBsZW1lbnQgQEB0b1ByaW1pdGl2ZSBjYXNlXG4vLyBhbmQgdGhlIHNlY29uZCBhcmd1bWVudCAtIGZsYWcgLSBwcmVmZXJyZWQgdHlwZSBpcyBhIHN0cmluZ1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQsIFMpIHtcbiAgaWYgKCFpc09iamVjdChpdCkpIHJldHVybiBpdDtcbiAgdmFyIGZuLCB2YWw7XG4gIGlmIChTICYmIHR5cGVvZiAoZm4gPSBpdC50b1N0cmluZykgPT0gJ2Z1bmN0aW9uJyAmJiAhaXNPYmplY3QodmFsID0gZm4uY2FsbChpdCkpKSByZXR1cm4gdmFsO1xuICBpZiAodHlwZW9mIChmbiA9IGl0LnZhbHVlT2YpID09ICdmdW5jdGlvbicgJiYgIWlzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaXQpKSkgcmV0dXJuIHZhbDtcbiAgaWYgKCFTICYmIHR5cGVvZiAoZm4gPSBpdC50b1N0cmluZykgPT0gJ2Z1bmN0aW9uJyAmJiAhaXNPYmplY3QodmFsID0gZm4uY2FsbChpdCkpKSByZXR1cm4gdmFsO1xuICB0aHJvdyBUeXBlRXJyb3IoXCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWVcIik7XG59O1xuIiwidmFyIGlkID0gMDtcbnZhciBweCA9IE1hdGgucmFuZG9tKCk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXkpIHtcbiAgcmV0dXJuICdTeW1ib2woJy5jb25jYXQoa2V5ID09PSB1bmRlZmluZWQgPyAnJyA6IGtleSwgJylfJywgKCsraWQgKyBweCkudG9TdHJpbmcoMzYpKTtcbn07XG4iLCJ2YXIgc3RvcmUgPSByZXF1aXJlKCcuL19zaGFyZWQnKSgnd2tzJyk7XG52YXIgdWlkID0gcmVxdWlyZSgnLi9fdWlkJyk7XG52YXIgU3ltYm9sID0gcmVxdWlyZSgnLi9fZ2xvYmFsJykuU3ltYm9sO1xudmFyIFVTRV9TWU1CT0wgPSB0eXBlb2YgU3ltYm9sID09ICdmdW5jdGlvbic7XG5cbnZhciAkZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgcmV0dXJuIHN0b3JlW25hbWVdIHx8IChzdG9yZVtuYW1lXSA9XG4gICAgVVNFX1NZTUJPTCAmJiBTeW1ib2xbbmFtZV0gfHwgKFVTRV9TWU1CT0wgPyBTeW1ib2wgOiB1aWQpKCdTeW1ib2wuJyArIG5hbWUpKTtcbn07XG5cbiRleHBvcnRzLnN0b3JlID0gc3RvcmU7XG4iLCJ2YXIgY2xhc3NvZiA9IHJlcXVpcmUoJy4vX2NsYXNzb2YnKTtcbnZhciBJVEVSQVRPUiA9IHJlcXVpcmUoJy4vX3drcycpKCdpdGVyYXRvcicpO1xudmFyIEl0ZXJhdG9ycyA9IHJlcXVpcmUoJy4vX2l0ZXJhdG9ycycpO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL19jb3JlJykuZ2V0SXRlcmF0b3JNZXRob2QgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKGl0ICE9IHVuZGVmaW5lZCkgcmV0dXJuIGl0W0lURVJBVE9SXVxuICAgIHx8IGl0WydAQGl0ZXJhdG9yJ11cbiAgICB8fCBJdGVyYXRvcnNbY2xhc3NvZihpdCldO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBjdHggPSByZXF1aXJlKCcuL19jdHgnKTtcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuL190by1vYmplY3QnKTtcbnZhciBjYWxsID0gcmVxdWlyZSgnLi9faXRlci1jYWxsJyk7XG52YXIgaXNBcnJheUl0ZXIgPSByZXF1aXJlKCcuL19pcy1hcnJheS1pdGVyJyk7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuL190by1sZW5ndGgnKTtcbnZhciBjcmVhdGVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4vX2NyZWF0ZS1wcm9wZXJ0eScpO1xudmFyIGdldEl0ZXJGbiA9IHJlcXVpcmUoJy4vY29yZS5nZXQtaXRlcmF0b3ItbWV0aG9kJyk7XG5cbiRleHBvcnQoJGV4cG9ydC5TICsgJGV4cG9ydC5GICogIXJlcXVpcmUoJy4vX2l0ZXItZGV0ZWN0JykoZnVuY3Rpb24gKGl0ZXIpIHsgQXJyYXkuZnJvbShpdGVyKTsgfSksICdBcnJheScsIHtcbiAgLy8gMjIuMS4yLjEgQXJyYXkuZnJvbShhcnJheUxpa2UsIG1hcGZuID0gdW5kZWZpbmVkLCB0aGlzQXJnID0gdW5kZWZpbmVkKVxuICBmcm9tOiBmdW5jdGlvbiBmcm9tKGFycmF5TGlrZSAvKiAsIG1hcGZuID0gdW5kZWZpbmVkLCB0aGlzQXJnID0gdW5kZWZpbmVkICovKSB7XG4gICAgdmFyIE8gPSB0b09iamVjdChhcnJheUxpa2UpO1xuICAgIHZhciBDID0gdHlwZW9mIHRoaXMgPT0gJ2Z1bmN0aW9uJyA/IHRoaXMgOiBBcnJheTtcbiAgICB2YXIgYUxlbiA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gICAgdmFyIG1hcGZuID0gYUxlbiA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQ7XG4gICAgdmFyIG1hcHBpbmcgPSBtYXBmbiAhPT0gdW5kZWZpbmVkO1xuICAgIHZhciBpbmRleCA9IDA7XG4gICAgdmFyIGl0ZXJGbiA9IGdldEl0ZXJGbihPKTtcbiAgICB2YXIgbGVuZ3RoLCByZXN1bHQsIHN0ZXAsIGl0ZXJhdG9yO1xuICAgIGlmIChtYXBwaW5nKSBtYXBmbiA9IGN0eChtYXBmbiwgYUxlbiA+IDIgPyBhcmd1bWVudHNbMl0gOiB1bmRlZmluZWQsIDIpO1xuICAgIC8vIGlmIG9iamVjdCBpc24ndCBpdGVyYWJsZSBvciBpdCdzIGFycmF5IHdpdGggZGVmYXVsdCBpdGVyYXRvciAtIHVzZSBzaW1wbGUgY2FzZVxuICAgIGlmIChpdGVyRm4gIT0gdW5kZWZpbmVkICYmICEoQyA9PSBBcnJheSAmJiBpc0FycmF5SXRlcihpdGVyRm4pKSkge1xuICAgICAgZm9yIChpdGVyYXRvciA9IGl0ZXJGbi5jYWxsKE8pLCByZXN1bHQgPSBuZXcgQygpOyAhKHN0ZXAgPSBpdGVyYXRvci5uZXh0KCkpLmRvbmU7IGluZGV4KyspIHtcbiAgICAgICAgY3JlYXRlUHJvcGVydHkocmVzdWx0LCBpbmRleCwgbWFwcGluZyA/IGNhbGwoaXRlcmF0b3IsIG1hcGZuLCBbc3RlcC52YWx1ZSwgaW5kZXhdLCB0cnVlKSA6IHN0ZXAudmFsdWUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBsZW5ndGggPSB0b0xlbmd0aChPLmxlbmd0aCk7XG4gICAgICBmb3IgKHJlc3VsdCA9IG5ldyBDKGxlbmd0aCk7IGxlbmd0aCA+IGluZGV4OyBpbmRleCsrKSB7XG4gICAgICAgIGNyZWF0ZVByb3BlcnR5KHJlc3VsdCwgaW5kZXgsIG1hcHBpbmcgPyBtYXBmbihPW2luZGV4XSwgaW5kZXgpIDogT1tpbmRleF0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXN1bHQubGVuZ3RoID0gaW5kZXg7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJGF0ID0gcmVxdWlyZSgnLi9fc3RyaW5nLWF0JykodHJ1ZSk7XG5cbi8vIDIxLjEuMy4yNyBTdHJpbmcucHJvdG90eXBlW0BAaXRlcmF0b3JdKClcbnJlcXVpcmUoJy4vX2l0ZXItZGVmaW5lJykoU3RyaW5nLCAnU3RyaW5nJywgZnVuY3Rpb24gKGl0ZXJhdGVkKSB7XG4gIHRoaXMuX3QgPSBTdHJpbmcoaXRlcmF0ZWQpOyAvLyB0YXJnZXRcbiAgdGhpcy5faSA9IDA7ICAgICAgICAgICAgICAgIC8vIG5leHQgaW5kZXhcbi8vIDIxLjEuNS4yLjEgJVN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlJS5uZXh0KClcbn0sIGZ1bmN0aW9uICgpIHtcbiAgdmFyIE8gPSB0aGlzLl90O1xuICB2YXIgaW5kZXggPSB0aGlzLl9pO1xuICB2YXIgcG9pbnQ7XG4gIGlmIChpbmRleCA+PSBPLmxlbmd0aCkgcmV0dXJuIHsgdmFsdWU6IHVuZGVmaW5lZCwgZG9uZTogdHJ1ZSB9O1xuICBwb2ludCA9ICRhdChPLCBpbmRleCk7XG4gIHRoaXMuX2kgKz0gcG9pbnQubGVuZ3RoO1xuICByZXR1cm4geyB2YWx1ZTogcG9pbnQsIGRvbmU6IGZhbHNlIH07XG59KTtcbiIsIi8vIFRoZSBtb2R1bGUgY2FjaGVcbnZhciBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18gPSB7fTtcblxuLy8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbmZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG5cdHZhciBjYWNoZWRNb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO1xuXHRpZiAoY2FjaGVkTW9kdWxlICE9PSB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm4gY2FjaGVkTW9kdWxlLmV4cG9ydHM7XG5cdH1cblx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcblx0dmFyIG1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF0gPSB7XG5cdFx0Ly8gbm8gbW9kdWxlLmlkIG5lZWRlZFxuXHRcdC8vIG5vIG1vZHVsZS5sb2FkZWQgbmVlZGVkXG5cdFx0ZXhwb3J0czoge31cblx0fTtcblxuXHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cblx0X193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0obW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cblx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcblx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xufVxuXG4iLCIvKipcbiAqIENvcHlyaWdodCBzaW5jZSAyMDA3IFByZXN0YVNob3AgU0EgYW5kIENvbnRyaWJ1dG9yc1xuICogUHJlc3RhU2hvcCBpcyBhbiBJbnRlcm5hdGlvbmFsIFJlZ2lzdGVyZWQgVHJhZGVtYXJrICYgUHJvcGVydHkgb2YgUHJlc3RhU2hvcCBTQVxuICpcbiAqIE5PVElDRSBPRiBMSUNFTlNFXG4gKlxuICogVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBPcGVuIFNvZnR3YXJlIExpY2Vuc2UgKE9TTCAzLjApXG4gKiB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRS5tZC5cbiAqIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuICogaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9PU0wtMy4wXG4gKiBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuICogb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuICogdG8gbGljZW5zZUBwcmVzdGFzaG9wLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuICpcbiAqIERJU0NMQUlNRVJcbiAqXG4gKiBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgUHJlc3RhU2hvcCB0byBuZXdlclxuICogdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIFByZXN0YVNob3AgZm9yIHlvdXJcbiAqIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwczovL2RldmRvY3MucHJlc3Rhc2hvcC5jb20vIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICpcbiAqIEBhdXRob3IgICAgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzIDxjb250YWN0QHByZXN0YXNob3AuY29tPlxuICogQGNvcHlyaWdodCBTaW5jZSAyMDA3IFByZXN0YVNob3AgU0EgYW5kIENvbnRyaWJ1dG9yc1xuICogQGxpY2Vuc2UgICBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL09TTC0zLjAgT3BlbiBTb2Z0d2FyZSBMaWNlbnNlIChPU0wgMy4wKVxuICovXG5cbmltcG9ydCBDb25maXJtTW9kYWwgZnJvbSAnQGNvbXBvbmVudHMvbW9kYWwnO1xuXG5jb25zdCB7JH0gPSB3aW5kb3c7XG5cbiQoKCkgPT4ge1xuICBjb25zdCAkc3VibWl0QnV0dG9uID0gJCgnI3N1Ym1pdC1idG4tZmVhdHVyZS1mbGFnJyk7XG4gICRzdWJtaXRCdXR0b24ucHJvcCgnZGlzYWJsZWQnLCB0cnVlKTtcbiAgY29uc3QgJGZvcm0gPSAkKCcjZmVhdHVyZS1mbGFnLWZvcm0nKTtcbiAgY29uc3QgJGZvcm1JbnB1dHMgPSAkKCcjZmVhdHVyZS1mbGFnLWZvcm0gaW5wdXQnKTtcbiAgY29uc3QgaW5pdGlhbFN0YXRlID0gJGZvcm0uc2VyaWFsaXplKCk7XG4gIGNvbnN0IGluaXRpYWxGb3JtRGF0YSA9ICRmb3JtLnNlcmlhbGl6ZUFycmF5KCk7XG5cbiAgJGZvcm1JbnB1dHMuY2hhbmdlKCgpID0+IHtcbiAgICAkc3VibWl0QnV0dG9uLnByb3AoJ2Rpc2FibGVkJywgaW5pdGlhbFN0YXRlID09PSAkZm9ybS5zZXJpYWxpemUoKSk7XG4gIH0pO1xuXG4gICRzdWJtaXRCdXR0b24ub24oJ2NsaWNrJywgKGV2ZW50KSA9PiB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIGNvbnN0IGZvcm1EYXRhID0gJGZvcm0uc2VyaWFsaXplQXJyYXkoKTtcblxuICAgIGlmIChpbml0aWFsU3RhdGUgPT09ICRmb3JtLnNlcmlhbGl6ZSgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IG9uZUZsYWdJc0VuYWJsZWQgPSBmYWxzZTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZm9ybURhdGEubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgIGlmICgoZm9ybURhdGFbaV0ubmFtZSAhPT0gJ2Zvcm1bX3Rva2VuXScpICYmIChmb3JtRGF0YVtpXS52YWx1ZSAhPT0gJzAnKSAmJiAoaW5pdGlhbEZvcm1EYXRhW2ldLnZhbHVlID09PSAnMCcpKSB7XG4gICAgICAgIG9uZUZsYWdJc0VuYWJsZWQgPSB0cnVlO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBtb2RhbCA9IG5ldyBDb25maXJtTW9kYWwoXG4gICAgICB7XG4gICAgICAgIGlkOiAnbW9kYWwtY29uZmlybS1zdWJtaXQtZmVhdHVyZS1mbGFnJyxcbiAgICAgICAgY29uZmlybVRpdGxlOiAkc3VibWl0QnV0dG9uLmRhdGEoJ21vZGFsLXRpdGxlJyksXG4gICAgICAgIGNvbmZpcm1NZXNzYWdlOiAkc3VibWl0QnV0dG9uLmRhdGEoJ21vZGFsLW1lc3NhZ2UnKSxcbiAgICAgICAgY29uZmlybUJ1dHRvbkxhYmVsOiAkc3VibWl0QnV0dG9uLmRhdGEoJ21vZGFsLWFwcGx5JyksXG4gICAgICAgIGNsb3NlQnV0dG9uTGFiZWw6ICRzdWJtaXRCdXR0b24uZGF0YSgnbW9kYWwtY2FuY2VsJyksXG4gICAgICB9LFxuICAgICAgKCkgPT4ge1xuICAgICAgICAkZm9ybS5zdWJtaXQoKTtcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIGlmIChvbmVGbGFnSXNFbmFibGVkKSB7XG4gICAgICBtb2RhbC5zaG93KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICRmb3JtLnN1Ym1pdCgpO1xuICAgIH1cbiAgfSk7XG59KTtcbiJdLCJzb3VyY2VSb290IjoiIn0=