0&&n.appendChild(t.createElement("br")),n.appendChild(e)}),n}(e,r.label)),r.element.appendChild(i);var o=e.createElement("div");return o.classList.add(a("v")),o.appendChild(n.view.element),r.element.appendChild(o),r}return i(e,t),e}(s.View);e.LabeledView=l},"./src/main/js/view/monitor/graph.ts":function(t,e,n){"use strict";var r,i=this&&this.__extends||(r=function(t,e){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)},function(t,e){function n(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,"__esModule",{value:!0}),e.GraphMonitorView=void 0;var o=n("./src/main/js/misc/class-name.ts"),s=n("./src/main/js/misc/disposing-util.ts"),a=n("./src/main/js/misc/dom-util.ts"),l=n("./src/main/js/misc/number-util.ts"),u=n("./src/main/js/misc/pane-error.ts"),c=n("./src/main/js/view/view.ts"),p=a.SVG_NS,d=o.ClassName("grp","monitor"),h=function(t){function e(e,n){var r=t.call(this,e,n)||this;r.onCursorChange_=r.onCursorChange_.bind(r),r.onValueUpdate_=r.onValueUpdate_.bind(r),r.element.classList.add(d()),r.formatter_=n.formatter,r.minValue_=n.minValue,r.maxValue_=n.maxValue,r.cursor_=n.cursor,r.cursor_.emitter.on("change",r.onCursorChange_);var i=e.createElementNS(p,"svg");i.classList.add(d("g")),r.element.appendChild(i),r.svgElem_=i;var o=e.createElementNS(p,"polyline");r.svgElem_.appendChild(o),r.lineElem_=o;var a=e.createElement("div");return a.classList.add(d("t")),r.element.appendChild(a),r.tooltipElem_=a,n.value.emitter.on("update",r.onValueUpdate_),r.value=n.value,r.update(),n.model.emitter.on("dispose",function(){r.lineElem_=s.disposeElement(r.lineElem_),r.svgElem_=s.disposeElement(r.svgElem_),r.tooltipElem_=s.disposeElement(r.tooltipElem_)}),r}return i(e,t),Object.defineProperty(e.prototype,"graphElement",{get:function(){if(!this.svgElem_)throw u.PaneError.alreadyDisposed();return this.svgElem_},enumerable:!1,configurable:!0}),e.prototype.update=function(){var t=this.tooltipElem_;if(!this.lineElem_||!this.svgElem_||!t)throw u.PaneError.alreadyDisposed();var e=this.svgElem_.getBoundingClientRect(),n=this.value.totalCount-1,r=this.minValue_,i=this.maxValue_;this.lineElem_.setAttributeNS(null,"points",this.value.rawValues.map(function(t,o){return[l.NumberUtil.map(o,0,n,0,e.width),l.NumberUtil.map(t,r,i,e.height,0)].join(",")}).join(" "));var o=this.value.rawValues[this.cursor_.index];if(void 0!==o){t.classList.add(d("t","valid"));var s=l.NumberUtil.map(this.cursor_.index,0,n,0,e.width),a=l.NumberUtil.map(o,r,i,e.height,0);t.style.left=s+"px",t.style.top=a+"px",t.textContent=""+this.formatter_.format(o)}else t.classList.remove(d("t","valid"))},e.prototype.onValueUpdate_=function(){this.update()},e.prototype.onCursorChange_=function(){this.update()},e}(c.View);e.GraphMonitorView=h},"./src/main/js/view/monitor/multi-log.ts":function(t,e,n){"use strict";var r,i=this&&this.__extends||(r=function(t,e){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)},function(t,e){function n(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,"__esModule",{value:!0}),e.MultiLogMonitorView=void 0;var o=n("./src/main/js/misc/class-name.ts"),s=n("./src/main/js/misc/disposing-util.ts"),a=n("./src/main/js/misc/pane-error.ts"),l=n("./src/main/js/view/view.ts"),u=o.ClassName("mll","monitor"),c=function(t){function e(e,n){var r=t.call(this,e,n)||this;r.onValueUpdate_=r.onValueUpdate_.bind(r),r.formatter_=n.formatter,r.element.classList.add(u());var i=e.createElement("textarea");return i.classList.add(u("i")),i.readOnly=!0,r.element.appendChild(i),r.textareaElem_=i,n.value.emitter.on("update",r.onValueUpdate_),r.value=n.value,r.update(),n.model.emitter.on("dispose",function(){r.textareaElem_=s.disposeElement(r.textareaElem_)}),r}return i(e,t),e.prototype.update=function(){var t=this,e=this.textareaElem_;if(!e)throw a.PaneError.alreadyDisposed();var n=e.scrollTop===e.scrollHeight-e.clientHeight;e.textContent=this.value.rawValues.map(function(e){return t.formatter_.format(e)}).join("\n"),n&&(e.scrollTop=e.scrollHeight)},e.prototype.onValueUpdate_=function(){this.update()},e}(l.View);e.MultiLogMonitorView=c},"./src/main/js/view/monitor/single-log.ts":function(t,e,n){"use strict";var r,i=this&&this.__extends||(r=function(t,e){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)},function(t,e){function n(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,"__esModule",{value:!0}),e.SingleLogMonitorView=void 0;var o=n("./src/main/js/misc/class-name.ts"),s=n("./src/main/js/misc/disposing-util.ts"),a=n("./src/main/js/misc/pane-error.ts"),l=n("./src/main/js/view/view.ts"),u=o.ClassName("sgl","monitor"),c=function(t){function e(e,n){var r=t.call(this,e,n)||this;r.onValueUpdate_=r.onValueUpdate_.bind(r),r.formatter_=n.formatter,r.element.classList.add(u());var i=e.createElement("input");return i.classList.add(u("i")),i.readOnly=!0,i.type="text",r.element.appendChild(i),r.inputElem_=i,n.value.emitter.on("update",r.onValueUpdate_),r.value=n.value,r.update(),n.model.emitter.on("dispose",function(){r.inputElem_=s.disposeElement(r.inputElem_)}),r}return i(e,t),e.prototype.update=function(){if(!this.inputElem_)throw a.PaneError.alreadyDisposed();var t=this.value.rawValues;this.inputElem_.value=t.length>0?this.formatter_.format(t[t.length-1]):""},e.prototype.onValueUpdate_=function(){this.update()},e}(l.View);e.SingleLogMonitorView=c},"./src/main/js/view/root.ts":function(t,e,n){"use strict";var r,i=this&&this.__extends||(r=function(t,e){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)},function(t,e){function n(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,"__esModule",{value:!0}),e.RootView=void 0;var o=n("./src/main/js/misc/class-name.ts"),s=n("./src/main/js/misc/disposing-util.ts"),a=n("./src/main/js/misc/pane-error.ts"),l=n("./src/main/js/view/view.ts"),u=o.ClassName("rot"),c=function(t){function e(e,n){var r=t.call(this,e,n)||this;r.onFolderChange_=r.onFolderChange_.bind(r),r.folder_=n.folder,r.folder_&&r.folder_.emitter.on("change",r.onFolderChange_),r.element.classList.add(u());var i=r.folder_;if(i){var o=e.createElement("button");o.classList.add(u("t")),o.textContent=i.title,r.element.appendChild(o);var a=e.createElement("div");a.classList.add(u("m")),o.appendChild(a),r.titleElem_=o}var l=e.createElement("div");return l.classList.add(u("c")),r.element.appendChild(l),r.containerElem_=l,r.applyModel_(),n.model.emitter.on("dispose",function(){r.containerElem_=s.disposeElement(r.containerElem_),r.folder_=null,r.titleElem_=s.disposeElement(r.titleElem_)}),r}return i(e,t),Object.defineProperty(e.prototype,"titleElement",{get:function(){return this.titleElem_},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"containerElement",{get:function(){if(!this.containerElem_)throw a.PaneError.alreadyDisposed();return this.containerElem_},enumerable:!1,configurable:!0}),e.prototype.applyModel_=function(){var t=this.containerElem_;if(!t)throw a.PaneError.alreadyDisposed();var e=!this.folder_||this.folder_.styleExpanded,n=u(void 0,"expanded");e?this.element.classList.add(n):this.element.classList.remove(n),t.style.height=this.folder_?this.folder_.styleHeight:"auto"},e.prototype.onFolderChange_=function(){this.applyModel_()},e}(l.View);e.RootView=c},"./src/main/js/view/separator.ts":function(t,e,n){"use strict";var r,i=this&&this.__extends||(r=function(t,e){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)},function(t,e){function n(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,"__esModule",{value:!0}),e.SeparatorView=void 0;var o=n("./src/main/js/misc/class-name.ts"),s=n("./src/main/js/view/view.ts"),a=o.ClassName("spt"),l=function(t){function e(e,n){var r=t.call(this,e,n)||this;r.element.classList.add(a());var i=e.createElement("hr");return i.classList.add(a("r")),r.element.appendChild(i),r}return i(e,t),e}(s.View);e.SeparatorView=l},"./src/main/js/view/view.ts":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.View=void 0;var r=n("./src/main/js/misc/class-name.ts"),i=n("./src/main/js/misc/disposing-util.ts"),o=n("./src/main/js/misc/pane-error.ts"),s=n("./src/main/js/model/view-positions.ts"),a=r.ClassName(""),l=function(){function t(t,e){this.onChange_=this.onChange_.bind(this),this.onDispose_=this.onDispose_.bind(this),this.model_=e.model,this.model_.emitter.on("change",this.onChange_),this.model_.emitter.on("dispose",this.onDispose_),this.doc_=t,this.elem_=this.doc_.createElement("div"),this.elem_.classList.add(a())}return Object.defineProperty(t.prototype,"document",{get:function(){if(!this.doc_)throw o.PaneError.alreadyDisposed();return this.doc_},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"element",{get:function(){if(!this.elem_)throw o.PaneError.alreadyDisposed();return this.elem_},enumerable:!1,configurable:!0}),t.prototype.onDispose_=function(){this.doc_=null,this.elem_=i.disposeElement(this.elem_)},t.prototype.onChange_=function(t){var e=this.elem_;if(!e)throw o.PaneError.alreadyDisposed();if("hidden"===t.propertyName){var n=a(void 0,"hidden");this.model_.hidden?e.classList.add(n):e.classList.remove(n)}else"positions"===t.propertyName&&(s.getAll().forEach(function(t){e.classList.remove(a(void 0,t))}),this.model_.positions.forEach(function(t){e.classList.add(a(void 0,t))}))},t}();e.View=l},"./src/main/sass/bundle.scss":function(t,e,n){(t.exports=n("./node_modules/css-loader/lib/css-base.js")(!1)).push([t.i,".tp-fldv_t,.tp-rotv_t{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border-width:0;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0;outline:none;padding:0;background-color:var(--folder-background-color);color:var(--folder-foreground-color);cursor:pointer;display:block;height:24px;line-height:24px;overflow:hidden;padding-left:30px;position:relative;text-align:left;text-overflow:ellipsis;white-space:nowrap;width:100%;transition:border-radius .2s ease-in-out .2s}.tp-fldv_t:hover,.tp-rotv_t:hover{background-color:var(--folder-background-color-hover)}.tp-fldv_t:focus,.tp-rotv_t:focus{background-color:var(--folder-background-color-focus)}.tp-fldv_t:active,.tp-rotv_t:active{background-color:var(--folder-background-color-active)}.tp-fldv_m,.tp-rotv_m{background:linear-gradient(to left, var(--folder-foreground-color), var(--folder-foreground-color) 2px, transparent 2px, transparent 4px, var(--folder-foreground-color) 4px);border-radius:2px;bottom:0;content:'';display:block;height:6px;left:12px;margin:auto;position:absolute;top:0;transform:rotate(90deg);transition:transform .2s ease-in-out;width:6px}.tp-fldv.tp-fldv-expanded>.tp-fldv_t>.tp-fldv_m,.tp-rotv.tp-rotv-expanded .tp-rotv_m{transform:none}.tp-fldv_c,.tp-rotv_c{box-sizing:border-box;height:0;opacity:0;overflow:hidden;padding-bottom:0;padding-top:0;position:relative;transition:height .2s ease-in-out,opacity .2s linear,padding .2s ease-in-out}.tp-fldv_c>.tp-fldv.tp-v-first,.tp-rotv_c>.tp-fldv.tp-v-first{margin-top:-4px}.tp-fldv_c>.tp-fldv.tp-v-last,.tp-rotv_c>.tp-fldv.tp-v-last{margin-bottom:-4px}.tp-fldv_c>*:not(.tp-v-first),.tp-rotv_c>*:not(.tp-v-first){margin-top:4px}.tp-fldv_c>.tp-fldv:not(.tp-v-hidden)+.tp-fldv,.tp-rotv_c>.tp-fldv:not(.tp-v-hidden)+.tp-fldv{margin-top:0}.tp-fldv_c>.tp-sptv:not(.tp-v-hidden)+.tp-sptv,.tp-rotv_c>.tp-sptv:not(.tp-v-hidden)+.tp-sptv{margin-top:0}.tp-fldv.tp-fldv-expanded>.tp-fldv_c,.tp-rotv.tp-rotv-expanded .tp-rotv_c{opacity:1;padding-bottom:4px;padding-top:4px;transform:none;overflow:visible;transition:height .2s ease-in-out,opacity .2s linear .2s,padding .2s ease-in-out}.tp-btnv{padding:0 4px}.tp-btnv_b{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border-width:0;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0;outline:none;padding:0;background-color:var(--button-background-color);border-radius:2px;color:var(--button-foreground-color);cursor:pointer;display:block;font-weight:bold;height:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.tp-btnv_b:hover{background-color:var(--button-background-color-hover)}.tp-btnv_b:focus{background-color:var(--button-background-color-focus)}.tp-btnv_b:active{background-color:var(--button-background-color-active)}.tp-dfwv{position:absolute;top:8px;right:8px;width:256px}.tp-fldv.tp-fldv-expanded .tp-fldv_t{transition:border-radius 0s}.tp-fldv_c{border-left:var(--folder-background-color) solid 4px}.tp-fldv_t:hover+.tp-fldv_c{border-left-color:var(--folder-background-color-hover)}.tp-fldv_t:focus+.tp-fldv_c{border-left-color:var(--folder-background-color-focus)}.tp-fldv_t:active+.tp-fldv_c{border-left-color:var(--folder-background-color-active)}.tp-fldv_c>.tp-fldv{margin-left:4px}.tp-fldv_c>.tp-fldv>.tp-fldv_t{border-top-left-radius:2px;border-bottom-left-radius:2px}.tp-fldv_c>.tp-fldv.tp-fldv-expanded>.tp-fldv_t{border-bottom-left-radius:0}.tp-fldv_c .tp-fldv>.tp-fldv_c{border-bottom-left-radius:2px}.tp-ckbiv_l{display:block;position:relative}.tp-ckbiv_i{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border-width:0;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0;outline:none;padding:0;background:red;left:0;opacity:0;position:absolute;top:0}.tp-ckbiv_m{background-color:var(--input-background-color);border-radius:2px;cursor:pointer;display:block;height:20px;position:relative;width:20px}.tp-ckbiv_m::before{background-color:var(--input-foreground-color);border-radius:2px;bottom:4px;content:'';display:block;left:4px;opacity:0;position:absolute;right:4px;top:4px}.tp-ckbiv_i:hover+.tp-ckbiv_m{background-color:var(--input-background-color-hover)}.tp-ckbiv_i:focus+.tp-ckbiv_m{background-color:var(--input-background-color-focus)}.tp-ckbiv_i:active+.tp-ckbiv_m{background-color:var(--input-background-color-active)}.tp-ckbiv_i:checked+.tp-ckbiv_m::before{opacity:1}.tp-cctxtsiv{display:flex;width:100%}.tp-cctxtsiv_m{margin-right:4px;position:relative}.tp-cctxtsiv_ms{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border-width:0;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0;outline:none;padding:0;border-radius:2px;color:var(--label-foreground-color);cursor:pointer;height:20px;line-height:20px;padding:0 18px 0 4px}.tp-cctxtsiv_ms:hover{background-color:var(--input-background-color-hover)}.tp-cctxtsiv_ms:focus{background-color:var(--input-background-color-focus)}.tp-cctxtsiv_ms:active{background-color:var(--input-background-color-active)}.tp-cctxtsiv_mm{border-color:var(--label-foreground-color) transparent transparent;border-style:solid;border-width:3px;box-sizing:border-box;height:6px;pointer-events:none;width:6px;bottom:0;margin:auto;position:absolute;right:6px;top:3px}.tp-cctxtsiv_w{display:flex;flex:1}.tp-cctxtsiv_i{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border-width:0;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0;outline:none;padding:0;background-color:var(--input-background-color);border-radius:2px;box-sizing:border-box;color:var(--input-foreground-color);font-family:inherit;height:20px;line-height:20px;min-width:0;width:100%;border-radius:0;flex:1;padding:0 4px}.tp-cctxtsiv_i:hover{background-color:var(--input-background-color-hover)}.tp-cctxtsiv_i:focus{background-color:var(--input-background-color-focus)}.tp-cctxtsiv_i:active{background-color:var(--input-background-color-active)}.tp-cctxtsiv_i:first-child{border-bottom-left-radius:2px;border-top-left-radius:2px}.tp-cctxtsiv_i:last-child{border-bottom-right-radius:2px;border-top-right-radius:2px}.tp-cctxtsiv_i+.tp-cctxtsiv_i{margin-left:2px}.tp-clpiv{background-color:var(--base-background-color);border-radius:6px;box-shadow:0 2px 4px var(--base-shadow-color);display:none;padding:4px;position:relative;visibility:hidden;z-index:1000}.tp-clpiv.tp-clpiv-expanded{display:block;visibility:visible}.tp-clpiv_h,.tp-clpiv_ap{margin-left:6px;margin-right:6px}.tp-clpiv_h{margin-top:4px}.tp-clpiv_rgb{display:flex;margin-top:4px;width:100%}.tp-clpiv_a{display:flex;margin-top:4px;padding-top:8px;position:relative}.tp-clpiv_a:before{background-color:var(--separator-color);content:'';height:4px;left:-4px;position:absolute;right:-4px;top:0}.tp-clpiv_ap{flex:3}.tp-clpiv_at{flex:1;margin-left:4px}.tp-svpiv{border-radius:2px;outline:none;overflow:hidden;position:relative}.tp-svpiv_c{cursor:crosshair;display:block;height:80px;width:100%}.tp-svpiv_m{border-radius:100%;border:rgba(255,255,255,0.75) solid 2px;box-sizing:border-box;-webkit-filter:drop-shadow(0 0 1px rgba(0,0,0,0.3));filter:drop-shadow(0 0 1px rgba(0,0,0,0.3));height:12px;margin-left:-6px;margin-top:-6px;pointer-events:none;position:absolute;width:12px}.tp-svpiv:focus .tp-svpiv_m{border-color:#fff}.tp-hpliv{cursor:pointer;height:20px;outline:none;position:relative}.tp-hpliv_c{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAABCAYAAABubagXAAAAQ0lEQVQoU2P8z8Dwn0GCgQEDi2OK/RBgYHjBgIpfovFh8j8YBIgzFGQxuqEgPhaDOT5gOhPkdCxOZeBg+IDFZZiGAgCaSSMYtcRHLgAAAABJRU5ErkJggg==);background-position:left top;background-repeat:no-repeat;background-size:100% 100%;border-radius:2px;display:block;height:4px;left:0;margin-top:-2px;position:absolute;top:50%;width:100%}.tp-hpliv_m{border-radius:2px;border:rgba(255,255,255,0.75) solid 2px;box-shadow:0 0 2px rgba(0,0,0,0.1);box-sizing:border-box;height:12px;left:50%;margin-left:-6px;margin-top:-6px;pointer-events:none;position:absolute;top:50%;width:12px}.tp-hpliv:focus .tp-hpliv_m{border-color:#fff}.tp-apliv{cursor:pointer;height:20px;outline:none;position:relative}.tp-apliv_b{background-image:linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%),linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%);background-size:4px 4px;background-position:0 0,2px 2px;background-color:#fff;border-radius:2px;display:block;height:4px;left:0;margin-top:-2px;overflow:hidden;position:absolute;top:50%;width:100%}.tp-apliv_c{bottom:0;left:0;position:absolute;right:0;top:0}.tp-apliv_m{background-image:linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%),linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%);background-size:12px 12px;background-position:0 0,6px 6px;background-color:#fff;border-radius:2px;box-shadow:0 0 2px rgba(0,0,0,0.1);height:12px;left:50%;margin-left:-6px;margin-top:-6px;overflow:hidden;pointer-events:none;position:absolute;top:50%;width:12px}.tp-apliv_p{border-radius:2px;border:rgba(255,255,255,0.75) solid 2px;box-sizing:border-box;bottom:0;left:0;position:absolute;right:0;top:0}.tp-apliv:focus .tp-apliv_p{border-color:#fff}.tp-lstiv{display:block;padding:0;position:relative}.tp-lstiv_s{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border-width:0;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0;outline:none;padding:0;background-color:var(--button-background-color);border-radius:2px;color:var(--button-foreground-color);cursor:pointer;display:block;height:20px;line-height:20px;padding:0 4px;width:100%}.tp-lstiv_s:hover{background-color:var(--button-background-color-hover)}.tp-lstiv_s:focus{background-color:var(--button-background-color-focus)}.tp-lstiv_s:active{background-color:var(--button-background-color-active)}.tp-lstiv_m{border-color:var(--button-foreground-color) transparent transparent;border-style:solid;border-width:3px;box-sizing:border-box;height:6px;pointer-events:none;width:6px;bottom:0;margin:auto;position:absolute;right:6px;top:3px}.tp-p2dpadiv{background-color:var(--base-background-color);border-radius:6px;box-shadow:0 2px 4px var(--base-shadow-color);display:none;padding:4px 4px 4px 28px;position:relative;visibility:hidden;z-index:1000}.tp-p2dpadiv.tp-p2dpadiv-expanded{display:block;visibility:visible}.tp-p2dpadiv_p{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border-width:0;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0;outline:none;padding:0;background-color:var(--input-background-color);border-radius:2px;box-sizing:border-box;color:var(--input-foreground-color);font-family:inherit;height:20px;line-height:20px;min-width:0;width:100%;cursor:crosshair;height:0;overflow:hidden;padding-bottom:100%;position:relative}.tp-p2dpadiv_p:hover{background-color:var(--input-background-color-hover)}.tp-p2dpadiv_p:focus{background-color:var(--input-background-color-focus)}.tp-p2dpadiv_p:active{background-color:var(--input-background-color-active)}.tp-p2dpadiv_g{display:block;height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}.tp-p2dpadiv_ax{stroke:var(--input-guide-color)}.tp-p2dpadiv_l{stroke:var(--input-foreground-color);stroke-linecap:round;stroke-dasharray:1px 3px}.tp-p2dpadiv_m{fill:var(--input-foreground-color)}.tp-p2dpadtxtiv{display:flex;position:relative}.tp-p2dpadtxtiv_b{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border-width:0;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0;outline:none;padding:0;background-color:var(--button-background-color);border-radius:2px;color:var(--button-foreground-color);cursor:pointer;display:block;font-weight:bold;height:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;height:20px;position:relative;width:20px}.tp-p2dpadtxtiv_b:hover{background-color:var(--button-background-color-hover)}.tp-p2dpadtxtiv_b:focus{background-color:var(--button-background-color-focus)}.tp-p2dpadtxtiv_b:active{background-color:var(--button-background-color-active)}.tp-p2dpadtxtiv_b svg{display:block;height:16px;left:50%;margin-left:-8px;margin-top:-8px;position:absolute;top:50%;width:16px}.tp-p2dpadtxtiv_p{left:-4px;position:absolute;right:-4px;top:20px}.tp-p2dpadtxtiv_t{margin-left:4px}.tp-p2dtxtiv{display:flex}.tp-p2dtxtiv_w{align-items:center;display:flex}.tp-p2dtxtiv_w+.tp-p2dtxtiv_w{margin-left:2px}.tp-p2dtxtiv_i{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border-width:0;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0;outline:none;padding:0;background-color:var(--input-background-color);border-radius:2px;box-sizing:border-box;color:var(--input-foreground-color);font-family:inherit;height:20px;line-height:20px;min-width:0;width:100%;padding:0 4px;width:100%}.tp-p2dtxtiv_i:hover{background-color:var(--input-background-color-hover)}.tp-p2dtxtiv_i:focus{background-color:var(--input-background-color-focus)}.tp-p2dtxtiv_i:active{background-color:var(--input-background-color-active)}.tp-p2dtxtiv_w:nth-child(1) .tp-p2dtxtiv_i{border-top-right-radius:0;border-bottom-right-radius:0}.tp-p2dtxtiv_w:nth-child(2) .tp-p2dtxtiv_i{border-top-left-radius:0;border-bottom-left-radius:0}.tp-sldiv{display:block;padding:0}.tp-sldiv_o{box-sizing:border-box;cursor:pointer;height:20px;margin:0 6px;outline:none;position:relative}.tp-sldiv_o::before{background-color:var(--input-background-color);border-radius:1px;bottom:0;content:'';display:block;height:2px;left:0;margin:auto;position:absolute;right:0;top:0}.tp-sldiv_i{height:100%;left:0;position:absolute;top:0}.tp-sldiv_i::before{background-color:var(--button-background-color);border-radius:2px;bottom:0;content:'';display:block;height:12px;margin:auto;position:absolute;right:-6px;top:0;width:12px}.tp-sldiv_o:hover .tp-sldiv_i::before{background-color:var(--button-background-color-hover)}.tp-sldiv_o:focus .tp-sldiv_i::before{background-color:var(--button-background-color-focus)}.tp-sldiv_o:active .tp-sldiv_i::before{background-color:var(--button-background-color-active)}.tp-txtiv{display:block;padding:0}.tp-txtiv_i{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border-width:0;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0;outline:none;padding:0;background-color:var(--input-background-color);border-radius:2px;box-sizing:border-box;color:var(--input-foreground-color);font-family:inherit;height:20px;line-height:20px;min-width:0;width:100%;padding:0 4px}.tp-txtiv_i:hover{background-color:var(--input-background-color-hover)}.tp-txtiv_i:focus{background-color:var(--input-background-color-focus)}.tp-txtiv_i:active{background-color:var(--input-background-color-active)}.tp-cswiv{background-image:linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%),linear-gradient(to top right, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%);background-size:10px 10px;background-position:0 0,5px 5px;background-color:#fff;border-radius:2px}.tp-cswiv_sw{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border-width:0;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0;outline:none;padding:0;background-color:var(--input-background-color);border-radius:2px;box-sizing:border-box;color:var(--input-foreground-color);font-family:inherit;height:20px;line-height:20px;min-width:0;width:100%}.tp-cswiv_sw:hover{background-color:var(--input-background-color-hover)}.tp-cswiv_sw:focus{background-color:var(--input-background-color-focus)}.tp-cswiv_sw:active{background-color:var(--input-background-color-active)}.tp-cswiv_b{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border-width:0;cursor:pointer;display:block;height:20px;left:0;margin:0;outline:none;padding:0;position:absolute;top:0;width:20px}.tp-cswiv_b:focus::after{border:rgba(255,255,255,0.75) solid 2px;border-radius:2px;bottom:0;content:'';display:block;left:0;position:absolute;right:0;top:0}.tp-cswiv_p{left:-4px;position:absolute;right:-4px;top:20px}.tp-cswtxtiv{display:flex;position:relative}.tp-cswtxtiv_s{flex-grow:0;flex-shrink:0;width:20px}.tp-cswtxtiv_t{flex:1;margin-left:4px}.tp-sldtxtiv{display:flex}.tp-sldtxtiv_s{flex:2}.tp-sldtxtiv_t{flex:1;margin-left:4px}.tp-lblv{align-items:center;display:flex;padding-left:4px;padding-right:4px}.tp-lblv_l{color:var(--label-foreground-color);flex:1;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;overflow:hidden;padding-left:4px;padding-right:16px}.tp-lblv_v{align-self:flex-start;flex-grow:0;flex-shrink:0;width:160px}.tp-grpmv{display:block;padding:0;position:relative}.tp-grpmv_g{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border-width:0;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0;outline:none;padding:0;background-color:var(--monitor-background-color);border-radius:2px;box-sizing:border-box;color:var(--monitor-foreground-color);height:20px;width:100%;display:block;height:60px}.tp-grpmv_g polyline{fill:none;stroke:var(--monitor-foreground-color);stroke-linejoin:round}.tp-grpmv_t{color:var(--monitor-foreground-color);font-size:0.9em;left:0;pointer-events:none;position:absolute;text-indent:4px;top:0;visibility:hidden}.tp-grpmv_t.tp-grpmv_t-valid{visibility:visible}.tp-grpmv_t::before{background-color:var(--monitor-foreground-color);border-radius:100%;content:'';display:block;height:4px;left:-2px;position:absolute;top:-2px;width:4px}.tp-sglmv_i{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border-width:0;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0;outline:none;padding:0;background-color:var(--monitor-background-color);border-radius:2px;box-sizing:border-box;color:var(--monitor-foreground-color);height:20px;width:100%;padding:0 4px}.tp-mllmv_i{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border-width:0;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0;outline:none;padding:0;background-color:var(--monitor-background-color);border-radius:2px;box-sizing:border-box;color:var(--monitor-foreground-color);height:20px;width:100%;display:block;height:60px;line-height:20px;padding:0 4px;resize:none;white-space:pre}.tp-cswmv_sw{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border-width:0;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0;outline:none;padding:0;background-color:var(--monitor-background-color);border-radius:2px;box-sizing:border-box;color:var(--monitor-foreground-color);height:20px;width:100%}.tp-rotv{--font-family: var(--tp-font-family, Roboto Mono,Source Code Pro,Menlo,Courier,monospace);--base-background-color: var(--tp-base-background-color, #2f3137);--base-shadow-color: var(--tp-base-shadow-color, rgba(0,0,0,0.2));--button-background-color: var(--tp-button-background-color, #adafb8);--button-background-color-active: var(--tp-button-background-color-active, #d6d7db);--button-background-color-focus: var(--tp-button-background-color-focus, #c8cad0);--button-background-color-hover: var(--tp-button-background-color-hover, #bbbcc4);--button-foreground-color: var(--tp-button-foreground-color, #2f3137);--folder-background-color: var(--tp-folder-background-color, rgba(200,202,208,0.1));--folder-background-color-active: var(--tp-folder-background-color-active, rgba(200,202,208,0.25));--folder-background-color-focus: var(--tp-folder-background-color-focus, rgba(200,202,208,0.2));--folder-background-color-hover: var(--tp-folder-background-color-hover, rgba(200,202,208,0.15));--folder-foreground-color: var(--tp-folder-foreground-color, #c8cad0);--input-background-color: var(--tp-input-background-color, rgba(200,202,208,0.15));--input-background-color-active: var(--tp-input-background-color-active, rgba(200,202,208,0.35));--input-background-color-focus: var(--tp-input-background-color-focus, rgba(200,202,208,0.25));--input-background-color-hover: var(--tp-input-background-color-hover, rgba(200,202,208,0.15));--input-foreground-color: var(--tp-input-foreground-color, #c8cad0);--input-guide-color: var(--tp-input-guide-color, rgba(47,49,55,0.5));--label-foreground-color: var(--tp-label-foreground-color, rgba(200,202,208,0.8));--monitor-background-color: var(--tp-monitor-background-color, rgba(24,24,27,0.5));--monitor-foreground-color: var(--tp-monitor-foreground-color, rgba(200,202,208,0.7));--separator-color: var(--tp-separator-color, rgba(24,24,27,0.3));background-color:var(--base-background-color);border-radius:6px;box-shadow:0 2px 4px var(--base-shadow-color);font-family:var(--font-family);font-size:11px;font-weight:500;text-align:left}.tp-rotv_t{border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top-left-radius:6px;border-top-right-radius:6px}.tp-rotv.tp-rotv-expanded .tp-rotv_t{border-bottom-left-radius:0;border-bottom-right-radius:0}.tp-rotv_m{transition:none}.tp-rotv_c>.tp-fldv:last-child>.tp-fldv_c{border-bottom-left-radius:6px;border-bottom-right-radius:6px}.tp-rotv_c>.tp-fldv:last-child:not(.tp-fldv-expanded)>.tp-fldv_t{border-bottom-left-radius:6px;border-bottom-right-radius:6px}.tp-rotv_c>.tp-fldv:first-child>.tp-fldv_t{border-top-left-radius:6px;border-top-right-radius:6px}.tp-sptv_r{background-color:var(--separator-color);border-width:0;display:block;height:4px;margin:0;width:100%}.tp-v.tp-v-hidden{display:none}\n",""])}}).default},"object"==typeof n&&"object"==typeof e?e.exports=i():"function"==typeof define&&define.amd?define([],i):"object"==typeof n?n.tweakpane=i():r.Tweakpane=i()},{}],32:[function(t,e,n){e.exports=function(t,e){return t[0]=e[0],t[1]=e[1],t}},{}],33:[function(t,e,n){const r=t("canvas-sketch"),{noise1D:i,getRandomSeed:o,setSeed:s}=t("canvas-sketch-util/random"),{lerp:a}=t("canvas-sketch-util/math"),{clipPolylinesToBox:l}=t("canvas-sketch-util/geometry"),{pathsToSVG:u}=t("canvas-sketch-util/penplot"),{cos:c,sin:p,PI:d}=Math,h=t("tweakpane");var f=t("file-saver");const m={background:"#fff",lineColor:"#000",nlines:200,angleLeft:-.4,angleRight:.3,noiseFreq:.05,noiseAmpl:5,lineWidth:.05,shift:0,smooth:0,margin:1,driftBottom:0,seed:99,d:1.5,squared:!1,darkmode:!1},v={dimensions:"A4",orientation:"portrait",pixelsPerInch:300,scaleToView:!0,units:"cm",prefix:"dune",data:m},g=({width:t,height:e,units:n})=>{return({context:r,data:o})=>{const{background:h}=o;r.clearRect(0,0,t,e),r.fillStyle=h,r.fillRect(0,0,t,e);const f=(({nlines:n,noiseFreq:r,noiseAmpl:o,shift:u,smooth:h,angleLeft:f,angleRight:m,driftBottom:v,margin:g,seed:b,squared:y,d:w})=>{let _=[];const x=w*t;s(b);for(let s=0;se?e-2*g:t-2*g;j=(t-n)/2,C=(e-n)/2}else j=C=g;return _=l(_,[j,C,t-j,e-C])})(o);return f.forEach(t=>{r.beginPath(),t.forEach(t=>r.lineTo(t[0],t[1])),r.lineWidth=o.lineWidth,r.lineJoin="round",r.lineCap="round",r.strokeStyle=o.lineColor,r.stroke()}),[r.canvas,{data:u(f,{width:t,height:e,units:n}),extension:".svg"}]}};(async()=>{const t=await r(g,v);{const r=new h,i=r.addFolder({title:"Parameters"});r.on("change",e);const s=i.addFolder({title:"Dimensions"});s.addInput(v,"dimensions",{options:{A4:"A4",A3:"A3",USletter:"letter",postcard:"postcard","11r":"11r"}}).on("change",n),s.addInput(v,"orientation",{options:{portrait:"portrait",landscape:"landscape"}}).on("change",n),s.addInput(m,"margin",{min:0,max:5,step:.5}),s.addInput(m,"squared"),i.addInput(m,"nlines",{step:1,min:10,max:500}),i.addInput(m,"background"),i.addInput(m,"lineColor"),i.addInput(m,"angleLeft",{min:-1,max:1}),i.addInput(m,"angleRight",{min:-1,max:1}),i.addInput(m,"d",{min:.01,max:3,label:"line length"}),i.addInput(m,"lineWidth",{min:.01,max:.2}),i.addInput(m,"driftBottom",{min:-50,max:50}),i.addInput(m,"shift",{min:-50,max:50});const a=i.addFolder({expanded:!0,title:"RNG"});a.addButton({title:"Reseed"}).on("click",()=>{m.seed=o(),e()}),a.addInput(m,"noiseAmpl",{step:1,min:-10,max:10}),a.addInput(m,"noiseFreq",{min:0,max:.2}),i.addButton({title:"Export lines as SVG"}).on("click",()=>{const e=t.render(),n=new Blob([e[1].data],{type:"image/svg+xml"});f.saveAs(n,"penplot.svg")}),i.addButton({title:"Save PNG"}).on("click",()=>{t.render()[0].toBlob(function(t){f.saveAs(t,"penplot.png")})}),i.addInput(m,"darkmode").on("change",t=>{document.body.style.background=t?"#282a2b":"white"})}function e(){t.render()}function n(){t.loadAndRun(g,v),t.render()}})()},{"canvas-sketch":17,"canvas-sketch-util/geometry":8,"canvas-sketch-util/math":14,"canvas-sketch-util/penplot":15,"canvas-sketch-util/random":16,"file-saver":22,tweakpane:31}],34:[function(t,e,n){"use strict";n.byteLength=function(t){var e=u(t),n=e[1];return 3*(e[0]+n)/4-n},n.toByteArray=function(t){var e,n,r=u(t),s=r[0],a=r[1],l=new o(function(t,e,n){return 3*(e+n)/4-n}(0,s,a)),c=0,p=a>0?s-4:s;for(n=0;n>16&255,l[c++]=e>>8&255,l[c++]=255&e;2===a&&(e=i[t.charCodeAt(n)]<<2|i[t.charCodeAt(n+1)]>>4,l[c++]=255&e);1===a&&(e=i[t.charCodeAt(n)]<<10|i[t.charCodeAt(n+1)]<<4|i[t.charCodeAt(n+2)]>>2,l[c++]=e>>8&255,l[c++]=255&e);return l},n.fromByteArray=function(t){for(var e,n=t.length,i=n%3,o=[],s=0,a=n-i;sa?a:s+16383));1===i?o.push(r[(e=t[n-1])>>2]+r[e<<4&63]+"=="):2===i&&o.push(r[(e=(t[n-2]<<8)+t[n-1])>>10]+r[e>>4&63]+r[e<<2&63]+"=");return o.join("")};for(var r=[],i=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,l=s.length;a0)throw new Error("Invalid string. Length must be a multiple of 4");var n=t.indexOf("=");return-1===n&&(n=e),[n,n===e?0:4-n%4]}function c(t,e,n){for(var i,o=[],s=e;s>18&63]+r[i>>12&63]+r[i>>6&63]+r[63&i]);return o.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},{}],35:[function(t,e,n){(function(e){(function(){"use strict";var e=t("base64-js"),r=t("ieee754");n.Buffer=s,n.SlowBuffer=function(t){+t!=t&&(t=0);return s.alloc(+t)},n.INSPECT_MAX_BYTES=50;var i=2147483647;function o(t){if(t>i)throw new RangeError('The value "'+t+'" is invalid for option "size"');var e=new Uint8Array(t);return e.__proto__=s.prototype,e}function s(t,e,n){if("number"==typeof t){if("string"==typeof e)throw new TypeError('The "string" argument must be of type string. Received type number');return u(t)}return a(t,e,n)}function a(t,e,n){if("string"==typeof t)return function(t,e){"string"==typeof e&&""!==e||(e="utf8");if(!s.isEncoding(e))throw new TypeError("Unknown encoding: "+e);var n=0|d(t,e),r=o(n),i=r.write(t,e);i!==n&&(r=r.slice(0,i));return r}(t,e);if(ArrayBuffer.isView(t))return c(t);if(null==t)throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(D(t,ArrayBuffer)||t&&D(t.buffer,ArrayBuffer))return function(t,e,n){if(e<0||t.byteLength=i)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i.toString(16)+" bytes");return 0|t}function d(t,e){if(s.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||D(t,ArrayBuffer))return t.byteLength;if("string"!=typeof t)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);var n=t.length,r=arguments.length>2&&!0===arguments[2];if(!r&&0===n)return 0;for(var i=!1;;)switch(e){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":return F(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return U(t).length;default:if(i)return r?-1:F(t).length;e=(""+e).toLowerCase(),i=!0}}function h(t,e,n){var r=t[e];t[e]=t[n],t[n]=r}function f(t,e,n,r,i){if(0===t.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),B(n=+n)&&(n=i?0:t.length-1),n<0&&(n=t.length+n),n>=t.length){if(i)return-1;n=t.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof e&&(e=s.from(e,r)),s.isBuffer(e))return 0===e.length?-1:m(t,e,n,r,i);if("number"==typeof e)return e&=255,"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,n):Uint8Array.prototype.lastIndexOf.call(t,e,n):m(t,[e],n,r,i);throw new TypeError("val must be string, number or Buffer")}function m(t,e,n,r,i){var o,s=1,a=t.length,l=e.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(t.length<2||e.length<2)return-1;s=2,a/=2,l/=2,n/=2}function u(t,e){return 1===s?t[e]:t.readUInt16BE(e*s)}if(i){var c=-1;for(o=n;oa&&(n=a-l),o=n;o>=0;o--){for(var p=!0,d=0;di&&(r=i):r=i;var o=e.length;r>o/2&&(r=o/2);for(var s=0;s>8,i.push(n%256),i.push(r);return i}(e,t.length-n),t,n,r)}function x(t,n,r){return e.fromByteArray(0===n&&r===t.length?t:t.slice(n,r))}function j(t,e,n){n=Math.min(t.length,n);for(var r=[],i=e;i239?4:u>223?3:u>191?2:1;if(i+p<=n)switch(p){case 1:u<128&&(c=u);break;case 2:128==(192&(o=t[i+1]))&&(l=(31&u)<<6|63&o)>127&&(c=l);break;case 3:s=t[i+2],128==(192&(o=t[i+1]))&&128==(192&s)&&(l=(15&u)<<12|(63&o)<<6|63&s)>2047&&(l<55296||l>57343)&&(c=l);break;case 4:s=t[i+2],a=t[i+3],128==(192&(o=t[i+1]))&&128==(192&s)&&128==(192&a)&&(l=(15&u)<<18|(63&o)<<12|(63&s)<<6|63&a)>65535&&l<1114112&&(c=l)}null===c?(c=65533,p=1):c>65535&&(r.push((c-=65536)>>>10&1023|55296),c=56320|1023&c),r.push(c),i+=p}return function(t){var e=t.length;if(e<=C)return String.fromCharCode.apply(String,t);var n="",r=0;for(;rthis.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return P(this,e,n);case"utf8":case"utf-8":return j(this,e,n);case"ascii":return E(this,e,n);case"latin1":case"binary":return M(this,e,n);case"base64":return x(this,e,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return k(this,e,n);default:if(r)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),r=!0}}.apply(this,arguments)},s.prototype.equals=function(t){if(!s.isBuffer(t))throw new TypeError("Argument must be a Buffer");return this===t||0===s.compare(this,t)},s.prototype.inspect=function(){var t="",e=n.INSPECT_MAX_BYTES;return t=this.toString("hex",0,e).replace(/(.{2})/g,"$1 ").trim(),this.length>e&&(t+=" ... "),""},s.prototype.compare=function(t,e,n,r,i){if(D(t,Uint8Array)&&(t=s.from(t,t.offset,t.byteLength)),!s.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof t);if(void 0===e&&(e=0),void 0===n&&(n=t?t.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),e<0||n>t.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&e>=n)return 0;if(r>=i)return-1;if(e>=n)return 1;if(this===t)return 0;for(var o=(i>>>=0)-(r>>>=0),a=(n>>>=0)-(e>>>=0),l=Math.min(o,a),u=this.slice(r,i),c=t.slice(e,n),p=0;p>>=0,isFinite(n)?(n>>>=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var i=this.length-e;if((void 0===n||n>i)&&(n=i),t.length>0&&(n<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var o=!1;;)switch(r){case"hex":return v(this,t,e,n);case"utf8":case"utf-8":return g(this,t,e,n);case"ascii":return b(this,t,e,n);case"latin1":case"binary":return y(this,t,e,n);case"base64":return w(this,t,e,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return _(this,t,e,n);default:if(o)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),o=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var C=4096;function E(t,e,n){var r="";n=Math.min(t.length,n);for(var i=e;ir)&&(n=r);for(var i="",o=e;on)throw new RangeError("Trying to access beyond buffer length")}function I(t,e,n,r,i,o){if(!s.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||et.length)throw new RangeError("Index out of range")}function V(t,e,n,r,i,o){if(n+r>t.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function T(t,e,n,i,o){return e=+e,n>>>=0,o||V(t,0,n,4),r.write(t,e,n,i,23,4),n+4}function S(t,e,n,i,o){return e=+e,n>>>=0,o||V(t,0,n,8),r.write(t,e,n,i,52,8),n+8}s.prototype.slice=function(t,e){var n=this.length;(t=~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),(e=void 0===e?n:~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),e>>=0,e>>>=0,n||O(t,e,this.length);for(var r=this[t],i=1,o=0;++o>>=0,e>>>=0,n||O(t,e,this.length);for(var r=this[t+--e],i=1;e>0&&(i*=256);)r+=this[t+--e]*i;return r},s.prototype.readUInt8=function(t,e){return t>>>=0,e||O(t,1,this.length),this[t]},s.prototype.readUInt16LE=function(t,e){return t>>>=0,e||O(t,2,this.length),this[t]|this[t+1]<<8},s.prototype.readUInt16BE=function(t,e){return t>>>=0,e||O(t,2,this.length),this[t]<<8|this[t+1]},s.prototype.readUInt32LE=function(t,e){return t>>>=0,e||O(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},s.prototype.readUInt32BE=function(t,e){return t>>>=0,e||O(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},s.prototype.readIntLE=function(t,e,n){t>>>=0,e>>>=0,n||O(t,e,this.length);for(var r=this[t],i=1,o=0;++o=(i*=128)&&(r-=Math.pow(2,8*e)),r},s.prototype.readIntBE=function(t,e,n){t>>>=0,e>>>=0,n||O(t,e,this.length);for(var r=e,i=1,o=this[t+--r];r>0&&(i*=256);)o+=this[t+--r]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*e)),o},s.prototype.readInt8=function(t,e){return t>>>=0,e||O(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},s.prototype.readInt16LE=function(t,e){t>>>=0,e||O(t,2,this.length);var n=this[t]|this[t+1]<<8;return 32768&n?4294901760|n:n},s.prototype.readInt16BE=function(t,e){t>>>=0,e||O(t,2,this.length);var n=this[t+1]|this[t]<<8;return 32768&n?4294901760|n:n},s.prototype.readInt32LE=function(t,e){return t>>>=0,e||O(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},s.prototype.readInt32BE=function(t,e){return t>>>=0,e||O(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},s.prototype.readFloatLE=function(t,e){return t>>>=0,e||O(t,4,this.length),r.read(this,t,!0,23,4)},s.prototype.readFloatBE=function(t,e){return t>>>=0,e||O(t,4,this.length),r.read(this,t,!1,23,4)},s.prototype.readDoubleLE=function(t,e){return t>>>=0,e||O(t,8,this.length),r.read(this,t,!0,52,8)},s.prototype.readDoubleBE=function(t,e){return t>>>=0,e||O(t,8,this.length),r.read(this,t,!1,52,8)},s.prototype.writeUIntLE=function(t,e,n,r){(t=+t,e>>>=0,n>>>=0,r)||I(this,t,e,n,Math.pow(2,8*n)-1,0);var i=1,o=0;for(this[e]=255&t;++o>>=0,n>>>=0,r)||I(this,t,e,n,Math.pow(2,8*n)-1,0);var i=n-1,o=1;for(this[e+i]=255&t;--i>=0&&(o*=256);)this[e+i]=t/o&255;return e+n},s.prototype.writeUInt8=function(t,e,n){return t=+t,e>>>=0,n||I(this,t,e,1,255,0),this[e]=255&t,e+1},s.prototype.writeUInt16LE=function(t,e,n){return t=+t,e>>>=0,n||I(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},s.prototype.writeUInt16BE=function(t,e,n){return t=+t,e>>>=0,n||I(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},s.prototype.writeUInt32LE=function(t,e,n){return t=+t,e>>>=0,n||I(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},s.prototype.writeUInt32BE=function(t,e,n){return t=+t,e>>>=0,n||I(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},s.prototype.writeIntLE=function(t,e,n,r){if(t=+t,e>>>=0,!r){var i=Math.pow(2,8*n-1);I(this,t,e,n,i-1,-i)}var o=0,s=1,a=0;for(this[e]=255&t;++o>0)-a&255;return e+n},s.prototype.writeIntBE=function(t,e,n,r){if(t=+t,e>>>=0,!r){var i=Math.pow(2,8*n-1);I(this,t,e,n,i-1,-i)}var o=n-1,s=1,a=0;for(this[e+o]=255&t;--o>=0&&(s*=256);)t<0&&0===a&&0!==this[e+o+1]&&(a=1),this[e+o]=(t/s>>0)-a&255;return e+n},s.prototype.writeInt8=function(t,e,n){return t=+t,e>>>=0,n||I(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},s.prototype.writeInt16LE=function(t,e,n){return t=+t,e>>>=0,n||I(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},s.prototype.writeInt16BE=function(t,e,n){return t=+t,e>>>=0,n||I(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},s.prototype.writeInt32LE=function(t,e,n){return t=+t,e>>>=0,n||I(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},s.prototype.writeInt32BE=function(t,e,n){return t=+t,e>>>=0,n||I(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},s.prototype.writeFloatLE=function(t,e,n){return T(this,t,e,!0,n)},s.prototype.writeFloatBE=function(t,e,n){return T(this,t,e,!1,n)},s.prototype.writeDoubleLE=function(t,e,n){return S(this,t,e,!0,n)},s.prototype.writeDoubleBE=function(t,e,n){return S(this,t,e,!1,n)},s.prototype.copy=function(t,e,n,r){if(!s.isBuffer(t))throw new TypeError("argument should be a Buffer");if(n||(n=0),r||0===r||(r=this.length),e>=t.length&&(e=t.length),e||(e=0),r>0&&r=this.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),t.length-e=0;--o)t[o+e]=this[o+n];else Uint8Array.prototype.set.call(t,this.subarray(n,r),e);return i},s.prototype.fill=function(t,e,n,r){if("string"==typeof t){if("string"==typeof e?(r=e,e=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!s.isEncoding(r))throw new TypeError("Unknown encoding: "+r);if(1===t.length){var i=t.charCodeAt(0);("utf8"===r&&i<128||"latin1"===r)&&(t=i)}}else"number"==typeof t&&(t&=255);if(e<0||this.length>>=0,n=void 0===n?this.length:n>>>0,t||(t=0),"number"==typeof t)for(o=e;o55295&&n<57344){if(!i){if(n>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(s+1===r){(e-=3)>-1&&o.push(239,191,189);continue}i=n;continue}if(n<56320){(e-=3)>-1&&o.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,n<128){if((e-=1)<0)break;o.push(n)}else if(n<2048){if((e-=2)<0)break;o.push(n>>6|192,63&n|128)}else if(n<65536){if((e-=3)<0)break;o.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;o.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return o}function U(t){return e.toByteArray(function(t){if((t=(t=t.split("=")[0]).trim().replace(A,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function N(t,e,n,r){for(var i=0;i=e.length||i>=t.length);++i)e[i+n]=t[i];return i}function D(t,e){return t instanceof e||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===e.name}function B(t){return t!=t}}).call(this)}).call(this,t("buffer").Buffer)},{"base64-js":34,buffer:35,ieee754:36}],36:[function(t,e,n){n.read=function(t,e,n,r,i){var o,s,a=8*i-r-1,l=(1<>1,c=-7,p=n?i-1:0,d=n?-1:1,h=t[e+p];for(p+=d,o=h&(1<<-c)-1,h>>=-c,c+=a;c>0;o=256*o+t[e+p],p+=d,c-=8);for(s=o&(1<<-c)-1,o>>=-c,c+=r;c>0;s=256*s+t[e+p],p+=d,c-=8);if(0===o)o=1-u;else{if(o===l)return s?NaN:Infinity*(h?-1:1);s+=Math.pow(2,r),o-=u}return(h?-1:1)*s*Math.pow(2,o-r)},n.write=function(t,e,n,r,i,o){var s,a,l,u=8*o-i-1,c=(1<>1,d=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,h=r?0:o-1,f=r?1:-1,m=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||Infinity===e?(a=isNaN(e)?1:0,s=c):(s=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-s))<1&&(s--,l*=2),(e+=s+p>=1?d/l:d*Math.pow(2,1-p))*l>=2&&(s++,l/=2),s+p>=c?(a=0,s=c):s+p>=1?(a=(e*l-1)*Math.pow(2,i),s+=p):(a=e*Math.pow(2,p-1)*Math.pow(2,i),s=0));i>=8;t[n+h]=255&a,h+=f,a/=256,i-=8);for(s=s<0;t[n+h]=255&s,h+=f,s/=256,u-=8);t[n+h-f]|=128*m}},{}],37:[function(t,e,n){(function(t){(function(){t.CANVAS_SKETCH_DEFAULT_STORAGE_KEY=window.location.href}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[33,37]);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Vzci9sb2NhbC9saWIvbm9kZV9tb2R1bGVzL2NhbnZhcy1za2V0Y2gtY2xpL25vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJub2RlX21vZHVsZXMvYWJzLXN2Zy1wYXRoL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2FkYXB0aXZlLWJlemllci1jdXJ2ZS9mdW5jdGlvbi5qcyIsIm5vZGVfbW9kdWxlcy9hZGFwdGl2ZS1iZXppZXItY3VydmUvaW5kZXguanMiLCJub2RlX21vZHVsZXMvYWxtb3N0LWVxdWFsL2FsbW9zdF9lcXVhbC5qcyIsIm5vZGVfbW9kdWxlcy9hbi1hcnJheS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9hcnJheS1hbG1vc3QtZXF1YWwvaW5kZXguanMiLCJub2RlX21vZHVsZXMvYXJyYXktYWxtb3N0LWVxdWFsL25vZGVfbW9kdWxlcy9hbG1vc3QtZXF1YWwvYWxtb3N0X2VxdWFsLmpzIiwibm9kZV9tb2R1bGVzL2NhbnZhcy1za2V0Y2gtdXRpbC9nZW9tZXRyeS5qcyIsIm5vZGVfbW9kdWxlcy9jYW52YXMtc2tldGNoLXV0aWwvbGliL2NsaXAvY2xpcC1saW5lLXRvLWNpcmNsZS5qcyIsIm5vZGVfbW9kdWxlcy9jYW52YXMtc2tldGNoLXV0aWwvbGliL2NsaXAvY2xpcC1zZWdtZW50LXRvLWNpcmNsZS5qcyIsIm5vZGVfbW9kdWxlcy9jYW52YXMtc2tldGNoLXV0aWwvbGliL29wdGltaXplLXBlbnBsb3QtcGF0aHMuanMiLCJub2RlX21vZHVsZXMvY2FudmFzLXNrZXRjaC11dGlsL2xpYi92ZWMyLmpzIiwibm9kZV9tb2R1bGVzL2NhbnZhcy1za2V0Y2gtdXRpbC9saWIvd3JhcC5qcyIsIm5vZGVfbW9kdWxlcy9jYW52YXMtc2tldGNoLXV0aWwvbWF0aC5qcyIsIm5vZGVfbW9kdWxlcy9jYW52YXMtc2tldGNoLXV0aWwvcGVucGxvdC5qcyIsIm5vZGVfbW9kdWxlcy9jYW52YXMtc2tldGNoLXV0aWwvcmFuZG9tLmpzIiwibm9kZV9tb2R1bGVzL2NhbnZhcy1za2V0Y2gvZGlzdC9ub2RlX21vZHVsZXMvY2FudmFzLXNrZXRjaC9ub2RlX21vZHVsZXMvb2JqZWN0LWFzc2lnbi9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9jYW52YXMtc2tldGNoL2Rpc3Qvbm9kZV9tb2R1bGVzL2NhbnZhcy1za2V0Y2gvbm9kZV9tb2R1bGVzL3JpZ2h0LW5vdy9icm93c2VyLmpzIiwibm9kZV9tb2R1bGVzL2NhbnZhcy1za2V0Y2gvZGlzdC9ub2RlX21vZHVsZXMvY2FudmFzLXNrZXRjaC9ub2RlX21vZHVsZXMvaXMtcHJvbWlzZS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9jYW52YXMtc2tldGNoL2Rpc3Qvbm9kZV9tb2R1bGVzL2NhbnZhcy1za2V0Y2gvbm9kZV9tb2R1bGVzL2lzLWRvbS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9jYW52YXMtc2tldGNoL2Rpc3Qvbm9kZV9tb2R1bGVzL2NhbnZhcy1za2V0Y2gvbGliL3V0aWwuanMiLCJub2RlX21vZHVsZXMvY2FudmFzLXNrZXRjaC9kaXN0L25vZGVfbW9kdWxlcy9jYW52YXMtc2tldGNoL25vZGVfbW9kdWxlcy9yZXBlYXQtc3RyaW5nL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2NhbnZhcy1za2V0Y2gvZGlzdC9ub2RlX21vZHVsZXMvY2FudmFzLXNrZXRjaC9ub2RlX21vZHVsZXMvZGVlcC1lcXVhbC9saWIva2V5cy5qcyIsIm5vZGVfbW9kdWxlcy9jYW52YXMtc2tldGNoL2Rpc3Qvbm9kZV9tb2R1bGVzL2NhbnZhcy1za2V0Y2gvbm9kZV9tb2R1bGVzL2RlZXAtZXF1YWwvbGliL2lzX2FyZ3VtZW50cy5qcyIsIm5vZGVfbW9kdWxlcy9jYW52YXMtc2tldGNoL2Rpc3Qvbm9kZV9tb2R1bGVzL2NhbnZhcy1za2V0Y2gvbm9kZV9tb2R1bGVzL2RlZXAtZXF1YWwvaW5kZXguanMiLCJub2RlX21vZHVsZXMvY2FudmFzLXNrZXRjaC9kaXN0L25vZGVfbW9kdWxlcy9jYW52YXMtc2tldGNoL25vZGVfbW9kdWxlcy9kYXRlZm9ybWF0L2xpYi9kYXRlZm9ybWF0LmpzIiwibm9kZV9tb2R1bGVzL2NhbnZhcy1za2V0Y2gvZGlzdC9ub2RlX21vZHVsZXMvY2FudmFzLXNrZXRjaC9ub2RlX21vZHVsZXMvcGFkLWxlZnQvaW5kZXguanMiLCJub2RlX21vZHVsZXMvY2FudmFzLXNrZXRjaC9kaXN0L25vZGVfbW9kdWxlcy9jYW52YXMtc2tldGNoL2xpYi9zYXZlLmpzIiwibm9kZV9tb2R1bGVzL2NhbnZhcy1za2V0Y2gvZGlzdC9ub2RlX21vZHVsZXMvY2FudmFzLXNrZXRjaC9saWIvYWNjZXNzaWJpbGl0eS5qcyIsIm5vZGVfbW9kdWxlcy9jYW52YXMtc2tldGNoL2Rpc3Qvbm9kZV9tb2R1bGVzL2NhbnZhcy1za2V0Y2gvbGliL3BhcGVyLXNpemVzLmpzIiwibm9kZV9tb2R1bGVzL2NhbnZhcy1za2V0Y2gvZGlzdC9ub2RlX21vZHVsZXMvY2FudmFzLXNrZXRjaC9ub2RlX21vZHVsZXMvZGVmaW5lZC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9jYW52YXMtc2tldGNoL2Rpc3Qvbm9kZV9tb2R1bGVzL2NhbnZhcy1za2V0Y2gvbm9kZV9tb2R1bGVzL2NvbnZlcnQtbGVuZ3RoL2NvbnZlcnQtbGVuZ3RoLmpzIiwibm9kZV9tb2R1bGVzL2NhbnZhcy1za2V0Y2gvZGlzdC9ub2RlX21vZHVsZXMvY2FudmFzLXNrZXRjaC9saWIvZGlzdGFuY2VzLmpzIiwibm9kZV9tb2R1bGVzL2NhbnZhcy1za2V0Y2gvZGlzdC9ub2RlX21vZHVsZXMvY2FudmFzLXNrZXRjaC9saWIvY29yZS9yZXNpemVDYW52YXMuanMiLCJub2RlX21vZHVsZXMvY2FudmFzLXNrZXRjaC9kaXN0L25vZGVfbW9kdWxlcy9jYW52YXMtc2tldGNoL25vZGVfbW9kdWxlcy9nZXQtY2FudmFzLWNvbnRleHQvaW5kZXguanMiLCJub2RlX21vZHVsZXMvY2FudmFzLXNrZXRjaC9kaXN0L25vZGVfbW9kdWxlcy9jYW52YXMtc2tldGNoL2xpYi9jb3JlL2NyZWF0ZUNhbnZhcy5qcyIsIm5vZGVfbW9kdWxlcy9jYW52YXMtc2tldGNoL2Rpc3Qvbm9kZV9tb2R1bGVzL2NhbnZhcy1za2V0Y2gvbGliL2NvcmUvU2tldGNoTWFuYWdlci5qcyIsIm5vZGVfbW9kdWxlcy9jYW52YXMtc2tldGNoL2Rpc3Qvbm9kZV9tb2R1bGVzL2NhbnZhcy1za2V0Y2gvbGliL2NvcmUva2V5Ym9hcmRTaG9ydGN1dHMuanMiLCJub2RlX21vZHVsZXMvY2FudmFzLXNrZXRjaC9kaXN0L25vZGVfbW9kdWxlcy9jYW52YXMtc2tldGNoL2xpYi9jYW52YXMtc2tldGNoLmpzIiwibm9kZV9tb2R1bGVzL2Nsb25lL2Nsb25lLmpzIiwibm9kZV9tb2R1bGVzL2NvbnZlcnQtbGVuZ3RoL2NvbnZlcnQtbGVuZ3RoLmpzIiwibm9kZV9tb2R1bGVzL2QzLXBhdGgvZGlzdC9kMy1wYXRoLmpzIiwibm9kZV9tb2R1bGVzL2RlZmluZWQvaW5kZXguanMiLCJub2RlX21vZHVsZXMvZmlsZS1zYXZlci9kaXN0L0ZpbGVTYXZlci5taW4uanMiLCJub2RlX21vZHVsZXMvbGluZWNsaXAvaW5kZXguanMiLCJub2RlX21vZHVsZXMvbm9ybWFsaXplLXN2Zy1wYXRoL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3BhcnNlLXN2Zy1wYXRoL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3NlZWQtcmFuZG9tL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3NpbXBsZXgtbm9pc2Uvc2ltcGxleC1ub2lzZS5qcyIsIm5vZGVfbW9kdWxlcy9zdmctYXJjLXRvLWN1YmljLWJlemllci9janMvaW5kZXguanMiLCJub2RlX21vZHVsZXMvc3ZnLXBhdGgtY29udG91cnMvaW5kZXguanMiLCJub2RlX21vZHVsZXMvc3ZnLXBhdGgtY29udG91cnMvbm9kZV9tb2R1bGVzL25vcm1hbGl6ZS1zdmctcGF0aC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy90d2Vha3BhbmUvZGlzdC90d2Vha3BhbmUuanMiLCJub2RlX21vZHVsZXMvdmVjMi1jb3B5L2luZGV4LmpzIiwic2tldGNoLmpzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vdXNyL2xvY2FsL2xpYi9ub2RlX21vZHVsZXMvY2FudmFzLXNrZXRjaC1jbGkvbm9kZV9tb2R1bGVzL2Jhc2U2NC1qcy9pbmRleC5qcyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Vzci9sb2NhbC9saWIvbm9kZV9tb2R1bGVzL2NhbnZhcy1za2V0Y2gtY2xpL25vZGVfbW9kdWxlcy9idWZmZXIvaW5kZXguanMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi91c3IvbG9jYWwvbGliL25vZGVfbW9kdWxlcy9jYW52YXMtc2tldGNoLWNsaS9ub2RlX21vZHVsZXMvaWVlZTc1NC9pbmRleC5qcyIsImNhbnZhcy1za2V0Y2gtY2xpL2luamVjdGVkL3N0b3JhZ2Uta2V5LmpzIl0sIm5hbWVzIjpbInIiLCJlIiwibiIsInQiLCJvIiwiaSIsImYiLCJjIiwicmVxdWlyZSIsInUiLCJhIiwiRXJyb3IiLCJjb2RlIiwicCIsImV4cG9ydHMiLCJjYWxsIiwibGVuZ3RoIiwiMSIsIm1vZHVsZSIsInBhdGgiLCJzdGFydFgiLCJzdGFydFkiLCJ4IiwieSIsIm1hcCIsInNlZyIsInR5cGUiLCJzbGljZSIsImNvbW1hbmQiLCJ0b1VwcGVyQ2FzZSIsImNsb25lIiwicG9pbnQiLCJ2ZWMyIiwib3B0IiwiUkVDVVJTSU9OX0xJTUlUIiwicmVjdXJzaW9uIiwiRkxUX0VQU0lMT04iLCJlcHNpbG9uIiwiUEFUSF9ESVNUQU5DRV9FUFNJTE9OIiwicGF0aEVwc2lsb24iLCJjdXJ2ZV9hbmdsZV90b2xlcmFuY2VfZXBzaWxvbiIsImFuZ2xlRXBzaWxvbiIsIm1fYW5nbGVfdG9sZXJhbmNlIiwiYW5nbGVUb2xlcmFuY2UiLCJtX2N1c3BfbGltaXQiLCJjdXNwTGltaXQiLCJzdGFydCIsImMxIiwiYzIiLCJlbmQiLCJzY2FsZSIsInBvaW50cyIsImRpc3RhbmNlVG9sZXJhbmNlIiwicHVzaCIsInJlY3Vyc2l2ZSIsIngxIiwieTEiLCJ4MiIsInkyIiwieDMiLCJ5MyIsIng0IiwieTQiLCJsZXZlbCIsInBpIiwiTWF0aCIsIlBJIiwieDEyIiwieTEyIiwieDIzIiwieTIzIiwieDM0IiwieTM0IiwieDEyMyIsInkxMjMiLCJ4MjM0IiwieTIzNCIsIngxMjM0IiwieTEyMzQiLCJkYTEiLCJkYTIiLCJkeCIsImR5IiwiZDIiLCJhYnMiLCJkMyIsImEyMyIsImF0YW4yIiwiYmVnaW4iLCJtaW4iLCJhbG1vc3RFcXVhbCIsImIiLCJhYnNvbHV0ZUVycm9yIiwicmVsYXRpdmVFcnJvciIsImQiLCJEQkxfRVBTSUxPTiIsInN0ciIsIk9iamVjdCIsInByb3RvdHlwZSIsInRvU3RyaW5nIiwiYXJyIiwiQllURVNfUEVSX0VMRU1FTlQiLCJidWZmZXIiLCJBcnJheSIsImlzQXJyYXkiLCJhbG1vc3QiLCJhYnNvbHV0ZVRvbGVyYW5jZSIsInJlbGF0aXZlVG9sZXJhbmNlIiwiZXZlcnkiLCJhMCIsImIwIiwibGluZWNsaXAiLCJhcnJheUFsbW9zdEVxdWFsIiwic3F1YXJlZERpc3RhbmNlIiwiYXJlUG9pbnRzQ29sbGluZWFyIiwicG9pbnQwIiwicG9pbnQxIiwicG9pbnQyIiwieDAiLCJ5MCIsInJlbW92ZUR1cGxpY2F0ZVBvaW50cyIsImxhc3RQb2ludCIsIm5ld1BhdGgiLCJjdXJQb2ludCIsInJlbW92ZUNvbGxpbmVhclBvaW50cyIsInJlbWFpbmluZ1BvaW50cyIsInAwIiwicDEiLCJwMiIsImNvbGxpbmVhciIsInNwbGljZSIsInNoaWZ0IiwiY2xpcFNlZ21lbnRUb0NpcmNsZSIsImNsaXBMaW5lVG9DaXJjbGUiLCJjbGlwUG9seWxpbmVzVG9Cb3giLCJwb2x5bGluZXMiLCJiYm94IiwiYm9yZGVyIiwiY2xvc2VMaW5lcyIsIm1heCIsIkJvb2xlYW4iLCJsaW5lIiwicmVzdWx0IiwicG9seWdvbiIsImZpbHRlciIsImxpbmVzIiwicG9seWxpbmUiLCJyZWR1Y2UiLCJjb25jYXQiLCJjcmVhdGVIYXRjaExpbmVzIiwiYm91bmRzIiwiYW5nbGUiLCJzcGFjaW5nIiwib3V0IiwieG1pbiIsInltaW4iLCJ4bWF4IiwieW1heCIsInciLCJoIiwic3FydCIsInJvdEFuZ2xlIiwiY2EiLCJjb3MiLCJzYSIsInNpbiIsImN4IiwiY3kiLCJnZXRCb3VuZHMiLCJsbyIsImhpIiwiaiIsInNxciIsImNpcmNsZSIsImNpcmNsZVJhZGl1cyIsImhpdHMiLCJkZWx0YSIsImRldCIsInNxcnREZXQiLCJwb2ludEluQ2lyY2xlIiwicHgiLCJweSIsInJhZGl1cyIsImRpc3RhbmNlIiwicHJvamVjdFBvaW50Iiwic3JjeCIsInNyY3kiLCJkZXN0eCIsImRlc3R5IiwiZGlzdCIsImNsb3Nlc3RQb2ludCIsInAxSW5DaXJjbGUiLCJwMkluQ2lyY2xlIiwidngiLCJ2eSIsInJhdGlvIiwiY2xvc2VzdFBvaW50T25MaW5lRnJvbVBvaW50IiwiaGl0QSIsImhpdEIiLCJjbG9zZXN0UG9pbnRPblNlZ21lbnRGcm9tUG9pbnQiLCJpbnRlcnNlY3QiLCJtZXJnZVBhdGhzIiwicGF0aHMiLCJwYXRoMUlkeCIsInBhdGgySWR4IiwibWluSWR4IiwibWF4SWR4IiwibWVyZ2VkUGF0aCIsInNvcnQiLCJuZXdQYXRocyIsImxhc3RQYXRoIiwiY3VyUHQiLCJjbG9zZXN0IiwibGFzdFB0IiwiZGlzdGFuY2VUb0ZpcnN0IiwiZGlzdGFuY2VUb0xhc3QiLCJpZHgiLCJyZXZlcnNlIiwiY2xvc2VzdFBhdGgiLCJtZXJnZSIsIm1lcmdlVGhyZWhzb2xkIiwibWVyZ2VUaHJlaHNvbGRTcSIsInB0MSIsInB0MiIsInZhbHVlIiwiZnJvbSIsInRvIiwiVHlwZUVycm9yIiwiY3ljbGUiLCJmbG9vciIsImRlZmluZWQiLCJ3cmFwIiwiRVBTSUxPTiIsIk51bWJlciIsImNsYW1wIiwibGVycCIsImludmVyc2VMZXJwIiwidG9GaW5pdGUiLCJkZWZhdWx0VmFsdWUiLCJpc0Zpbml0ZSIsImV4cGFuZFZlY3RvciIsImRpbXMiLCJzY2FsYXIiLCJsZXJwQXJyYXkiLCJuZXdBcnJheSIsImluaXRpYWxWYWx1ZSIsIm1vZCIsImRhbXAiLCJsYW1iZGEiLCJkdCIsImV4cCIsImZyYWN0Iiwic2lnbiIsImRlZ1RvUmFkIiwicmFkVG9EZWciLCJwaW5nUG9uZyIsImxpbnNwYWNlIiwib3B0cyIsImVuZHBvaW50Iiwib2Zmc2V0IiwiXyIsImxlcnBGcmFtZXMiLCJ2YWx1ZXMiLCJsZW4iLCJ3aG9sZSIsImZyYW1lIiwibmV4dEZyYW1lIiwiY2xhbXAwMSIsInYiLCJzbW9vdGhzdGVwIiwiZGFtcEFycmF5IiwibWFwUmFuZ2UiLCJpbnB1dE1pbiIsImlucHV0TWF4Iiwib3V0cHV0TWluIiwib3V0cHV0TWF4Iiwib3V0VmFsIiwiZXhwYW5kMkQiLCJleHBhbmQzRCIsImV4cGFuZDREIiwiY29udmVydCIsInN2Z1BhdGhDb250b3VycyIsInN2Z1BhdGhQYXJzZSIsInN2Z1BhdGhBYnMiLCJzdmdQYXRoQXJjcyIsIm9wdGltaXplciIsImdlb21ldHJ5IiwiREVGQVVMVF9QRU5fVEhJQ0tORVNTIiwiREVGQVVMVF9QRU5fVEhJQ0tORVNTX1VOSVQiLCJERUZBVUxUX1BJWEVMU19QRVJfSU5DSCIsInBhdGhzVG9TVkdQYXRocyIsImlucHV0cyIsInN2Z1BhdGgiLCJjb252ZXJ0VG9TVkdQYXRoIiwicGF0aHNUb1BvbHlsaW5lcyIsImN1cnZlUmVzb2x1dGlvbiIsInVuaXRzIiwiY29udG91cnMiLCJlYWNoUGF0aCIsImZlYXR1cmUiLCJjb21tYW5kcyIsImZvckVhY2giLCJzdWJDb250b3VyIiwicGF0aHNUb1NWRyIsIndpZHRoIiwiaGVpZ2h0IiwiY29udmVydE9wdGlvbnMiLCJ2aWV3VW5pdHMiLCJyb3VuZFBpeGVsIiwicHJlY2lzaW9uIiwicGl4ZWxzUGVySW5jaCIsImFzc2lnbiIsInVuZGVmaW5lZCIsIm9wdGltaXplIiwib3B0aW1pemVPcHRzIiwicmVtb3ZlRHVwbGljYXRlcyIsInJlbW92ZUNvbGxpbmVhciIsInNob3VsZFNvcnQiLCJzaG91bGRNZXJnZSIsInNob3VsZFJlbW92ZUNvbGxpbmVhciIsIm1lcmdlVGhyZXNob2xkIiwic3ZnUGF0aHMiLCJ2aWV3V2lkdGgiLCJ2aWV3SGVpZ2h0IiwiZmlsbFN0eWxlIiwic3Ryb2tlU3R5bGUiLCJsaW5lV2lkdGgiLCJsaW5lSm9pbiIsImxpbmVDYXAiLCJwYXRoRWxlbWVudHMiLCJ0b0F0dHJMaXN0Iiwiam9pbiIsImFyZ3MiLCJhdHRyIiwicmVuZGVyUGF0aHMiLCJjb250ZXh0IiwiY2xlYXJSZWN0IiwiYmFja2dyb3VuZCIsImZpbGxSZWN0IiwiZm9yZWdyb3VuZCIsImJlZ2luUGF0aCIsImRyYXdTVkdQYXRoIiwibGluZVRvIiwic3Ryb2tlIiwiY2FudmFzIiwiZGF0YSIsImV4dGVuc2lvbiIsImlucHV0IiwiaXNFbXB0eSIsImlzUGF0aCIsImlzUG9seWxpbmUiLCJwb2x5bGluZVRvU1ZHUGF0aCIsImNiIiwibW92ZVRvIiwiYmV6aWVyQ3VydmVUbyIsImNyZWF0ZVBhdGgiLCJmbiIsInF1YWRyYXRpY0N1cnZlVG8iLCJhcmd1bWVudHMiLCJfeDEiLCJfeTEiLCJhcHBseSIsInBvbHlsaW5lc1RvU1ZHIiwiY29uc29sZSIsIndhcm4iLCJyZW5kZXJQb2x5bGluZXMiLCJzZWVkUmFuZG9tIiwiU2ltcGxleE5vaXNlIiwiY3JlYXRlUmFuZG9tIiwiZGVmYXVsdFNlZWQiLCJjdXJyZW50U2VlZCIsImN1cnJlbnRSYW5kb20iLCJub2lzZUdlbmVyYXRvciIsImRlZmF1bHRSYW5kb20iLCJyYW5kb20iLCJfbmV4dEdhdXNzaWFuIiwiX2hhc05leHRHYXVzc2lhbiIsInNldFNlZWQiLCJnZXRTZWVkIiwiZ2V0UmFuZG9tU2VlZCIsIlN0cmluZyIsInZhbHVlTm9uWmVybyIsInBlcm11dGVOb2lzZSIsImNyZWF0ZU5vaXNlIiwibm9pc2UxRCIsImZyZXF1ZW5jeSIsImFtcGxpdHVkZSIsIm5vaXNlMkQiLCJub2lzZTNEIiwieiIsIm5vaXNlNEQiLCJib29sZWFuIiwiY2hhbmNlIiwicmFuZ2UiLCJyYW5nZUZsb29yIiwicGljayIsImFycmF5Iiwic2h1ZmZsZSIsInJhbmQiLCJ0bXAiLCJyZXQiLCJvbkNpcmNsZSIsImluc2lkZUNpcmNsZSIsIm9uU3BoZXJlIiwicGhpIiwidGhldGEiLCJhY29zIiwiaW5zaWRlU3BoZXJlIiwiayIsImNicnQiLCJxdWF0ZXJuaW9uIiwidTEiLCJ1MiIsInUzIiwic3ExIiwic3EyIiwidGhldGExIiwidGhldGEyIiwid2VpZ2h0ZWQiLCJ3ZWlnaHRlZFNldCIsInNldCIsIndlaWdodGVkU2V0SW5kZXgiLCJnYXVzc2lhbiIsIm1lYW4iLCJzdGFuZGFyZERlcml2YXRpb24iLCJ2MSIsInYyIiwicyIsIm11bHRpcGxpZXIiLCJsb2ciLCJzZWVkIiwid2VpZ2h0Iiwid2VpZ2h0cyIsInRvdGFsV2VpZ2h0IiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiaGFzT3duUHJvcGVydHkiLCJwcm9wSXNFbnVtZXJhYmxlIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJvYmplY3RBc3NpZ24iLCJ0ZXN0MSIsImdldE93blByb3BlcnR5TmFtZXMiLCJ0ZXN0MiIsImZyb21DaGFyQ29kZSIsInRlc3QzIiwic3BsaXQiLCJsZXR0ZXIiLCJrZXlzIiwiZXJyIiwic2hvdWxkVXNlTmF0aXZlIiwidGFyZ2V0Iiwic291cmNlIiwic3ltYm9scyIsInZhbCIsInRvT2JqZWN0Iiwia2V5IiwiYnJvd3NlciIsImNvbW1vbmpzR2xvYmFsIiwicGVyZm9ybWFuY2UiLCJub3ciLCJEYXRlIiwiaXNQcm9taXNlXzEiLCJvYmoiLCJ0aGVuIiwiaXNEb20iLCJ3aW5kb3ciLCJOb2RlIiwibm9kZVR5cGUiLCJub2RlTmFtZSIsImdldENsaWVudEFQSSIsImFyZ3VtZW50cyQxIiwiaXNCcm93c2VyIiwiZG9jdW1lbnQiLCJjYWNoZSIsInNoaW0iLCJzdXBwb3J0c0FyZ3VtZW50c0NsYXNzIiwic3VwcG9ydGVkIiwib2JqZWN0IiwidW5zdXBwb3J0ZWQiLCJwU2xpY2UiLCJkZWVwRXF1YWwiLCJhY3R1YWwiLCJleHBlY3RlZCIsImdldFRpbWUiLCJzdHJpY3QiLCJpc1VuZGVmaW5lZE9yTnVsbCIsImlzX2FyZ3VtZW50cyIsImlzQnVmZmVyIiwia2EiLCJrYiIsIm9iakVxdWl2IiwiY29weSIsImdsb2JhbCIsInRva2VuIiwidGltZXpvbmUiLCJ0aW1lem9uZUNsaXAiLCJkYXRlRm9ybWF0IiwiZGF0ZSIsIm1hc2siLCJ1dGMiLCJnbXQiLCJ0b0xvd2VyQ2FzZSIsInRlc3QiLCJpc05hTiIsIm1hc2tTbGljZSIsIm1hc2tzIiwiRCIsIm0iLCJIIiwiTSIsIkwiLCJnZXRUaW1lem9uZU9mZnNldCIsIlciLCJ0YXJnZXRUaHVyc2RheSIsImdldEZ1bGxZZWFyIiwiZ2V0TW9udGgiLCJnZXREYXRlIiwic2V0RGF0ZSIsImdldERheSIsImZpcnN0VGh1cnNkYXkiLCJkcyIsInNldEhvdXJzIiwiZ2V0SG91cnMiLCJnZXRXZWVrIiwiTiIsImRvdyIsImdldERheU9mV2VlayIsImZsYWdzIiwiZGQiLCJwYWQiLCJkZGQiLCJpMThuIiwiZGF5TmFtZXMiLCJkZGRkIiwibW0iLCJtbW0iLCJtb250aE5hbWVzIiwibW1tbSIsInl5IiwieXl5eSIsImhoIiwiSEgiLCJNTSIsInNzIiwibCIsInJvdW5kIiwidGltZU5hbWVzIiwidHQiLCJUIiwiVFQiLCJaIiwibWF0Y2giLCJwb3AiLCJyZXBsYWNlIiwiUyIsImRlZmF1bHQiLCJzaG9ydERhdGUiLCJtZWRpdW1EYXRlIiwibG9uZ0RhdGUiLCJmdWxsRGF0ZSIsInNob3J0VGltZSIsIm1lZGl1bVRpbWUiLCJsb25nVGltZSIsImlzb0RhdGUiLCJpc29UaW1lIiwiaXNvRGF0ZVRpbWUiLCJpc29VdGNEYXRlVGltZSIsImV4cGlyZXNIZWFkZXJGb3JtYXQiLCJyZXMiLCJyZXBlYXRTdHJpbmciLCJudW0iLCJzdWJzdHIiLCJsaW5rIiwicGFkTGVmdCIsImNoIiwibm9vcCIsImRlZmF1bHRFeHRzIiwicHJlZml4Iiwic3VmZml4Iiwic3VwcG9ydGVkRW5jb2RpbmdzIiwic3RyZWFtIiwiaXNTdGFydCIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiZmlsZW5hbWUiLCJyZXNvbHZlRmlsZW5hbWUiLCJmdW5jIiwiY2xpZW50Iiwib3V0cHV0IiwiZXYiLCJzYXZlRGF0YVVSTCIsImRhdGFVUkwiLCJzcGxpdEluZGV4IiwiaW5kZXhPZiIsImJhc2U2NCIsImJ5dGVTdHJpbmciLCJhdG9iIiwibWltZU1hdGNoIiwiZXhlYyIsIm1pbWUiLCJhYiIsIkFycmF5QnVmZmVyIiwiaWEiLCJVaW50OEFycmF5IiwiY2hhckNvZGVBdCIsIkJsb2IiLCJjcmVhdGVCbG9iRnJvbURhdGFVUkwiLCJibG9iIiwic2F2ZUJsb2IiLCJjcmVhdGVFbGVtZW50Iiwic3R5bGUiLCJ2aXNpYmlsaXR5IiwiZG93bmxvYWQiLCJocmVmIiwiVVJMIiwiY3JlYXRlT2JqZWN0VVJMIiwiYm9keSIsImFwcGVuZENoaWxkIiwib25jbGljayIsInNldFRpbWVvdXQiLCJyZXZva2VPYmplY3RVUkwiLCJwYXJlbnRFbGVtZW50IiwicmVtb3ZlQ2hpbGQiLCJyZW1vdmVBdHRyaWJ1dGUiLCJjbGljayIsImZpbGUiLCJ0b3RhbEZyYW1lcyIsImxheWVyU3RyIiwidG90YWxMYXllcnMiLCJsYXllciIsIm5hbWUiLCJ0aW1lU3RhbXAiLCJoYXNoIiwiY29tbW9uVHlwb3MiLCJkaW1lbnNpb24iLCJhbmltYXRlZCIsImFuaW1hdGluZyIsInVuaXQiLCJQNSIsInBpeGVsbGF0ZWQiLCJsb29waW5nIiwicGl4ZWxQZXJJbmNoIiwiYWxsS2V5cyIsImNoZWNrU2V0dGluZ3MiLCJzZXR0aW5ncyIsImluY2x1ZGVzIiwicGFwZXJTaXplcyIsImRpY3QiLCJwcmVzZXQiLCJpdGVtIiwiZGltZW5zaW9ucyIsImRlZmluZWQkMSIsImNvbnZlcnNpb25zIiwic3lzdGVtIiwiZmFjdG9yIiwiY20iLCJwdCIsInBjIiwiaW4iLCJmdCIsImFuY2hvcnMiLCJtZXRyaWMiLCJpbXBlcmlhbCIsImNvbnZlcnRMZW5ndGgiLCJmcm9tVW5pdCIsInRvVW5pdCIsInRvRmFjdG9yIiwiZnJvbUZhY3RvciIsImlzVG9QaXhlbCIsImZyb21Vbml0RGF0YSIsInRvVW5pdERhdGEiLCJhbmNob3IiLCJkZWNpbWFscyIsImNvbnZlcnREaXN0YW5jZSQxIiwidW5pdHNGcm9tIiwidW5pdHNUbyIsInJlc2l6ZUNhbnZhcyIsInByb3BzIiwic3R5bGVXaWR0aCIsInN0eWxlSGVpZ2h0IiwiY2FudmFzV2lkdGgiLCJjYW52YXNIZWlnaHQiLCJoYXNEaW1lbnNpb25zIiwiY2hlY2tJZkhhc0RpbWVuc2lvbnMiLCJleHBvcnRpbmciLCJzY2FsZVRvRml0Iiwic2NhbGVUb1ZpZXciLCJwaXhlbFJhdGlvIiwiZXhwb3J0UGl4ZWxSYXRpbyIsImJsZWVkIiwiZGV2aWNlUGl4ZWxSYXRpbyIsImJhc2VQaXhlbFJhdGlvIiwibWF4UGl4ZWxSYXRpbyIsInRyaW1XaWR0aCIsInRyaW1IZWlnaHQiLCJyZWYiLCJlbGVtZW50IiwicGFyZW50IiwiaW5uZXJXaWR0aCIsImlubmVySGVpZ2h0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwiZ2V0UGFyZW50U2l6ZSIsInBhcmVudFdpZHRoIiwicGFyZW50SGVpZ2h0IiwiZ2V0RGltZW5zaW9uc0Zyb21QcmVzZXQiLCJoaWdoZXN0IiwibG93ZXN0Iiwib3JpZW50YXRpb24iLCJsYW5kc2NhcGUiLCJyZWFsV2lkdGgiLCJyZWFsSGVpZ2h0IiwiYXNwZWN0Iiwid2luZG93QXNwZWN0Iiwic2NhbGVUb0ZpdFBhZGRpbmciLCJtYXhXaWR0aCIsIm1heEhlaWdodCIsImdldENhbnZhc0NvbnRleHRfMSIsImdsIiwiYXR0cmlicyIsIm5hbWVzIiwiZ2V0Q29udGV4dCIsImNyZWF0ZUNhbnZhcyIsIm93bnNDYW52YXMiLCJuZXdDYW52YXMiLCJjcmVhdGVDYW52YXNFbGVtZW50IiwiYXR0cmlidXRlcyIsInBpeGVsYXRlZCIsImltYWdlU21vb3RoaW5nRW5hYmxlZCIsIm1vekltYWdlU21vb3RoaW5nRW5hYmxlZCIsIm9JbWFnZVNtb290aGluZ0VuYWJsZWQiLCJ3ZWJraXRJbWFnZVNtb290aGluZ0VuYWJsZWQiLCJtc0ltYWdlU21vb3RoaW5nRW5hYmxlZCIsIlNrZXRjaE1hbmFnZXIiLCJfc2V0dGluZ3MiLCJfcHJvcHMiLCJfc2tldGNoIiwiX3JhZiIsIl9yZWNvcmRUaW1lb3V0IiwiX2xhc3RSZWRyYXdSZXN1bHQiLCJfaXNQNVJlc2l6aW5nIiwiX2tleWJvYXJkU2hvcnRjdXRzIiwiaGFuZGxlciIsImVuYWJsZWQiLCJrZXlDb2RlIiwiYWx0S2V5IiwibWV0YUtleSIsImN0cmxLZXkiLCJ0b2dnbGVQbGF5IiwicHJldmVudERlZmF1bHQiLCJjb21taXQiLCJzYXZlIiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJrZXlib2FyZFNob3J0Y3V0cyIsInRoaXMkMSIsImhvdGtleXMiLCJzaGlmdEtleSIsInJlY29yZGluZyIsImVuZFJlY29yZCIsInJ1biIsInJlY29yZCIsImV4cG9ydEZyYW1lIiwicGxheWluZyIsInBhdXNlIiwicGxheSIsIl9hbmltYXRlSGFuZGxlciIsImFuaW1hdGUiLCJfcmVzaXplSGFuZGxlciIsInJlc2l6ZSIsInJlbmRlciIsInNrZXRjaCIsImdldCIsInRoaXMiLCJfY29tcHV0ZVBsYXloZWFkIiwiY3VycmVudFRpbWUiLCJkdXJhdGlvbiIsIl9jb21wdXRlRnJhbWUiLCJwbGF5aGVhZCIsInRpbWUiLCJmcHMiLCJfY29tcHV0ZUN1cnJlbnRGcmFtZSIsIl9nZXRTaXplUHJvcHMiLCJ2aWV3cG9ydFdpZHRoIiwidmlld3BvcnRIZWlnaHQiLCJkaXNwb3NlIiwic3RhcnRlZCIsIl9zaWduYWxCZWdpbiIsInRpY2siLCJfY2FuY2VsVGltZW91dHMiLCJjYW5jZWxBbmltYXRpb25GcmFtZSIsIl9sYXN0VGltZSIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsImVycm9yIiwic3RvcCIsImRlbHRhVGltZSIsImV4cG9ydE9wdHMiLCJfY3JlYXRlRXhwb3J0T3B0aW9ucyIsImZyYW1lSW50ZXJ2YWwiLCJfc2lnbmFsRW5kIiwiYmVnaW5SZWNvcmQiLCJfd3JhcENvbnRleHRTY2FsZSIsImNhdGNoIiwicmVzcG9uc2UiLCJ3YXNSZWNvcmRpbmciLCJzZXF1ZW5jZSIsImVuY29kaW5nIiwiZW5jb2RpbmdRdWFsaXR5IiwiZGF0ZWZvcm1hdCIsImFsbCIsInByZUV4cG9ydCIsImNvbW1pdE9wdHMiLCJfZG9FeHBvcnRGcmFtZSIsImRyYXdSZXN1bHQiLCJoYXNEYXRhT2JqZWN0IiwidG9EYXRhVVJMIiwiZXhwb3J0Q2FudmFzIiwibGF5ZXJMaXN0IiwiY3VyT3B0Iiwic2F2ZVBhcmFtIiwic2F2ZVByb21pc2UiLCJwYXJ0cyIsInNhdmVGaWxlIiwic2F2ZVJlc3VsdCIsInNhdmVkRXZlbnRzIiwiZXZlbnRXaXRoT3V0cHV0IiwiZmluZCIsIm91dHB1dE5hbWUiLCJpc0NsaWVudCIsInNvbWUiLCJpc1N0cmVhbWluZyIsIm9mU2VxIiwicG9zdEV4cG9ydCIsIl9wcmVSZW5kZXIiLCJfcG9zdFJlbmRlciIsInA1Iiwic2NhbGVYIiwic2NhbGVZIiwic2NhbGVDb250ZXh0IiwicmVzdG9yZSIsImZsdXNoIiwicmVkcmF3Iiwic3VibWl0RHJhd0NhbGwiLCJ1cGRhdGUiLCJub3RZZXRTdXBwb3J0ZWQiLCJvbGRDYW52YXMiLCJvbGRDb250ZXh0IiwidGltZU9wdHMiLCJ0aW1lUHJvcHMiLCJnZXRUaW1lUHJvcHMiLCJfc2V0dXBHTEtleSIsIl9hcHBlbmRDYW52YXNJZk5lZWRlZCIsImRyYXciLCJvbGRTaXplcyIsIm5ld1Byb3BzIiwicGl4ZWxEZW5zaXR5Iiwic3R5bGVDYW52YXMiLCJuZXdTaXplcyIsImNoYW5nZWQiLCJkZWVwRXF1YWxfMSIsIl9zaXplQ2hhbmdlZCIsImZyYW1lSW50ZXJ2YWxNUyIsImRlbHRhVGltZU1TIiwiaGFzRHVyYXRpb24iLCJpc05ld0ZyYW1lIiwicGxheWJhY2tSYXRlIiwibmV3VGltZSIsInRpbWVTY2FsZSIsImlzRmluaXNoZWQiLCJpc0xvb3BTdGFydCIsImxvb3AiLCJsYXN0RnJhbWUiLCJkaXNwYXRjaCIsIm1vdW50IiwidW5tb3VudCIsImRldGFjaCIsImN0eCIsImNsZWFyIiwiY2xlYXJDb2xvciIsImJ1ZmZlckRhdGEiLCJoYXNUb3RhbEZyYW1lcyIsInRvdGFsRnJhbWVzRnJvbUR1cmF0aW9uIiwiZHVyYXRpb25Gcm9tVG90YWxGcmFtZXMiLCJJbmZpbml0eSIsInN0YXJ0VGltZSIsInN0YXJ0RnJhbWUiLCJoYXNTdGFydFRpbWUiLCJoYXNTdGFydEZyYW1lIiwic2V0dXAiLCJsb2FkQW5kUnVuIiwiY2FudmFzU2tldGNoIiwibmV3U2V0dGluZ3MiLCJsb2FkIiwidW5sb2FkIiwiZGVzdHJveSIsImNyZWF0ZVNrZXRjaCIsInByZWxvYWQiLCJQNUNvbnN0cnVjdG9yIiwicDVTa2V0Y2giLCJpc0dMIiwicmVuZGVyZXIiLCJXRUJHTCIsIlAyRCIsIm5vTG9vcCIsInNldEF0dHJpYnV0ZXMiLCJfcmVuZGVyZXIiLCJkcmF3aW5nQ29udGV4dCIsImxvYWRlciIsImF0dGFjaCIsIm1lc3NhZ2UiLCJDQUNIRSIsInJ1bnRpbWVDb2xsaXNpb25zIiwiaG90SUQiLCJpc0hvdCIsImhvdCIsImlkIiwiaXNJbmplY3RpbmciLCJwcmV2aW91c0RhdGEiLCJjYWNoZUdldCIsIm5leHQiLCJvbGRNYW5hZ2VyIiwibWFuYWdlciIsIlBhcGVyU2l6ZXMiLCJfaW5zdGFuY2VvZiIsIm5hdGl2ZU1hcCIsIm5hdGl2ZVNldCIsIm5hdGl2ZVByb21pc2UiLCJNYXAiLCJTZXQiLCJjaXJjdWxhciIsImRlcHRoIiwiaW5jbHVkZU5vbkVudW1lcmFibGUiLCJhbGxQYXJlbnRzIiwiYWxsQ2hpbGRyZW4iLCJ1c2VCdWZmZXIiLCJCdWZmZXIiLCJfY2xvbmUiLCJjaGlsZCIsInByb3RvIiwiX19pc0FycmF5IiwiX19pc1JlZ0V4cCIsIlJlZ0V4cCIsIl9fZ2V0UmVnRXhwRmxhZ3MiLCJsYXN0SW5kZXgiLCJfX2lzRGF0ZSIsImFsbG9jVW5zYWZlIiwiY3JlYXRlIiwiZ2V0UHJvdG90eXBlT2YiLCJpbmRleCIsImtleUNoaWxkIiwidmFsdWVDaGlsZCIsImVudHJ5Q2hpbGQiLCJhZGQiLCJhdHRycyIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInN5bWJvbCIsImRlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwiZGVmaW5lUHJvcGVydHkiLCJhbGxQcm9wZXJ0eU5hbWVzIiwicHJvcGVydHlOYW1lIiwiX19vYmpUb1N0ciIsInJlIiwiaWdub3JlQ2FzZSIsIm11bHRpbGluZSIsImNsb25lUHJvdG90eXBlIiwiZmFjdG9yeSIsInRhdSIsInRhdUVwc2lsb24iLCJQYXRoIiwiX3gwIiwiX3kwIiwiY29uc3RydWN0b3IiLCJjbG9zZVBhdGgiLCJhcmNUbyIsIngyMSIsInkyMSIsIngwMSIsInkwMSIsImwwMV8yIiwieDIwIiwieTIwIiwibDIxXzIiLCJsMjBfMiIsImwyMSIsImwwMSIsInRhbiIsInQwMSIsInQyMSIsImFyYyIsImExIiwiY2N3IiwiY3ciLCJkYSIsInJlY3QiLCJkZWZpbmUiLCJhbWQiLCJzZWxmIiwiWE1MSHR0cFJlcXVlc3QiLCJvcGVuIiwicmVzcG9uc2VUeXBlIiwib25sb2FkIiwiZyIsIm9uZXJyb3IiLCJzZW5kIiwic3RhdHVzIiwiZGlzcGF0Y2hFdmVudCIsIk1vdXNlRXZlbnQiLCJjcmVhdGVFdmVudCIsImluaXRNb3VzZUV2ZW50IiwibmF2aWdhdG9yIiwidXNlckFnZW50Iiwic2F2ZUFzIiwiSFRNTEFuY2hvckVsZW1lbnQiLCJ3ZWJraXRVUkwiLCJyZWwiLCJvcmlnaW4iLCJsb2NhdGlvbiIsIm1zU2F2ZU9yT3BlbkJsb2IiLCJhdXRvQm9tIiwidGl0bGUiLCJpbm5lclRleHQiLCJIVE1MRWxlbWVudCIsInNhZmFyaSIsIkZpbGVSZWFkZXIiLCJvbmxvYWRlbmQiLCJyZWFkQXNEYXRhVVJMIiwiRmlsZVNhdmVyIiwiY29kZUIiLCJsYXN0Q29kZSIsImNvZGVBIiwiYml0Q29kZSIsInBhcnQiLCJlZGdlIiwicHJldiIsInByZXZJbnNpZGUiLCJpbnNpZGUiLCJiZXppZXJYIiwiYmV6aWVyWSIsInF1YWRYIiwicXVhZFkiLCJjdXJ2ZXMiLCJhcmNUb0N1cnZlIiwicngiLCJyeSIsInhBeGlzUm90YXRpb24iLCJsYXJnZUFyY0ZsYWciLCJzd2VlcEZsYWciLCJxdWFkcmF0aWMiLCJzZWdtZW50IiwibnVtYmVycyIsIm51bWJlciIsInBhcnNlVmFsdWVzIiwidW5zaGlmdCIsInEiLCJwb29sIiwiR0xPQkFMIiwic3RhcnRkZW5vbSIsInBvdyIsInNpZ25pZmljYW5jZSIsIm92ZXJmbG93Iiwib2xkUmFuZG9tIiwiQVJDNCIsImtleWxlbiIsIm1lIiwiY291bnQiLCJtaXhrZXkiLCJzbWVhciIsInN0cmluZ3NlZWQiLCJ0b3N0cmluZyIsIm9wdGlvbnMiLCJhcmM0IiwiZmxhdHRlbiIsInByb3AiLCJ0eXAiLCJlbnRyb3B5IiwiY3J5cHRvIiwiZ2V0UmFuZG9tVmFsdWVzIiwicGx1Z2lucyIsInNjcmVlbiIsImF1dG9zZWVkIiwicmVzZXRHbG9iYWwiLCJGMiIsIkcyIiwiRzMiLCJGNCIsIkc0IiwicmFuZG9tT3JTZWVkIiwiczAiLCJzMSIsInMyIiwibWFzaCIsImFsZWEiLCJidWlsZFBlcm11dGF0aW9uVGFibGUiLCJwZXJtIiwicGVybU1vZDEyIiwiYXV4IiwiZ3JhZDMiLCJGbG9hdDMyQXJyYXkiLCJncmFkNCIsInhpbiIsInlpbiIsImkxIiwiajEiLCJuMCIsIm4xIiwibjIiLCJpaSIsImpqIiwidDAiLCJnaTAiLCJ0MSIsImdpMSIsInQyIiwiZ2kyIiwiemluIiwibjMiLCJrMSIsImkyIiwiajIiLCJrMiIsInowIiwiejEiLCJ6MiIsInozIiwia2siLCJ0MyIsImdpMyIsIm40IiwibDEiLCJsMiIsImkzIiwiajMiLCJrMyIsImwzIiwidzAiLCJyYW5reCIsInJhbmt5IiwicmFua3oiLCJyYW5rdyIsIncxIiwidzIiLCJ3MyIsIno0IiwidzQiLCJsbCIsInQ0IiwiZ2k0IiwiX2J1aWxkUGVybXV0YXRpb25UYWJsZSIsIl9zbGljZWRUb0FycmF5IiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJfYXJyIiwiX24iLCJfZCIsIl9lIiwiX3MiLCJfaSIsImRvbmUiLCJzbGljZUl0ZXJhdG9yIiwiVEFVIiwibWFwVG9FbGxpcHNlIiwiX3JlZiIsImNvc3BoaSIsInNpbnBoaSIsImNlbnRlcngiLCJjZW50ZXJ5IiwiYXBwcm94VW5pdEFyYyIsImFuZzEiLCJhbmcyIiwidmVjdG9yQW5nbGUiLCJ1eCIsInV5IiwiZG90IiwiX3JlZjIiLCJfcmVmMiR4QXhpc1JvdGF0aW9uIiwiX3JlZjIkbGFyZ2VBcmNGbGFnIiwiX3JlZjIkc3dlZXBGbGFnIiwicHhwIiwicHlwIiwiX2dldEFyY0NlbnRlciIsInJ4c3EiLCJyeXNxIiwicHhwc3EiLCJweXBzcSIsInJhZGljYW50IiwiY2VudGVyeHAiLCJjZW50ZXJ5cCIsInZ4MSIsInZ5MSIsInZ4MiIsInZ5MiIsImdldEFyY0NlbnRlciIsIl9nZXRBcmNDZW50ZXIyIiwic2VnbWVudHMiLCJjZWlsIiwiY3VydmUiLCJfbWFwVG9FbGxpcHNlIiwiX21hcFRvRWxsaXBzZTIiLCJfbWFwVG9FbGxpcHNlMyIsImJlemllciIsIm5vcm0iLCJ0bXAxIiwidG1wMiIsInRtcDMiLCJzdmciLCJwZW4iLCJiZXppZXJUbyIsIs+AIiwiXzEyMCIsInJhZGlhbnMiLCJsYXJnZV9hcmNfZmxhZyIsInN3ZWVwX2ZsYWciLCJmMSIsImYyIiwieHkiLCJyb3RhdGUiLCJyeDIiLCJyeTIiLCJhc2luIiwidG9GaXhlZCIsImYyb2xkIiwieDJvbGQiLCJ5Mm9sZCIsImh4IiwiaHkiLCJyb3QiLCJyYWQiLCJkZWdyZXNzIiwicm9vdCIsIm1vZHVsZXMiLCJpbnN0YWxsZWRNb2R1bGVzIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsIm1vZHVsZUlkIiwiZ2V0dGVyIiwidG9TdHJpbmdUYWciLCJtb2RlIiwiX19lc01vZHVsZSIsIm5zIiwiYmluZCIsInByb3BlcnR5IiwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9saWIvY3NzLWJhc2UuanMiLCJ1c2VTb3VyY2VNYXAiLCJsaXN0IiwiY29udGVudCIsImNzc01hcHBpbmciLCJidG9hIiwic291cmNlTWFwcGluZyIsInVuZXNjYXBlIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwiSlNPTiIsInN0cmluZ2lmeSIsInNvdXJjZVVSTHMiLCJzb3VyY2VzIiwic291cmNlUm9vdCIsImNzc1dpdGhNYXBwaW5nVG9TdHJpbmciLCJtZWRpYVF1ZXJ5IiwiYWxyZWFkeUltcG9ydGVkTW9kdWxlcyIsIi4vbm9kZV9tb2R1bGVzL3Byb2Nlc3MvYnJvd3Nlci5qcyIsImNhY2hlZFNldFRpbWVvdXQiLCJjYWNoZWRDbGVhclRpbWVvdXQiLCJwcm9jZXNzIiwiZGVmYXVsdFNldFRpbW91dCIsImRlZmF1bHRDbGVhclRpbWVvdXQiLCJydW5UaW1lb3V0IiwiZnVuIiwiY2xlYXJUaW1lb3V0IiwiY3VycmVudFF1ZXVlIiwicXVldWUiLCJkcmFpbmluZyIsInF1ZXVlSW5kZXgiLCJjbGVhblVwTmV4dFRpY2siLCJkcmFpblF1ZXVlIiwidGltZW91dCIsIm1hcmtlciIsInJ1bkNsZWFyVGltZW91dCIsIkl0ZW0iLCJuZXh0VGljayIsImVudiIsImFyZ3YiLCJ2ZXJzaW9uIiwidmVyc2lvbnMiLCJvbiIsImFkZExpc3RlbmVyIiwib25jZSIsIm9mZiIsInJlbW92ZUxpc3RlbmVyIiwicmVtb3ZlQWxsTGlzdGVuZXJzIiwiZW1pdCIsInByZXBlbmRMaXN0ZW5lciIsInByZXBlbmRPbmNlTGlzdGVuZXIiLCJsaXN0ZW5lcnMiLCJiaW5kaW5nIiwiY3dkIiwiY2hkaXIiLCJkaXIiLCJ1bWFzayIsIi4vc3JjL21haW4vanMvYXBpL2J1dHRvbi50cyIsIkJ1dHRvbkFwaSIsImJ1dHRvbkNvbnRyb2xsZXIiLCJjb250cm9sbGVyIiwidmlld01vZGVsIiwiaGlkZGVuIiwiY29uZmlndXJhYmxlIiwiZXZlbnROYW1lIiwiYnV0dG9uIiwiZW1pdHRlciIsIi4vc3JjL21haW4vanMvYXBpL2V2ZW50LWhhbmRsZXItYWRhcHRlcnMudHMiLCJmb2xkZXIiLCJtb25pdG9yIiwiX2EiLCJzZW5kZXIiLCJnZXRWYWx1ZVRvV3JpdGUiLCJyYXdWYWx1ZSIsInJlYWQiLCJ1aUNvbnRhaW5lciIsImlucHV0QmluZGluZyIsIm1vbml0b3JCaW5kaW5nIiwiZXhwYW5kZWQiLCIuL3NyYy9tYWluL2pzL2FwaS9mb2xkZXIudHMiLCJfX2Fzc2lnbiIsIkZvbGRlckFwaSIsIklucHV0QmluZGluZ0NvbnRyb2xsZXJDcmVhdG9ycyIsIk1vbml0b3JCaW5kaW5nQ29udHJvbGxlckNyZWF0b3JzIiwiYnV0dG9uXzEiLCJmb2xkZXJfMSIsInNlcGFyYXRvcl8xIiwidGFyZ2V0XzEiLCJ2aWV3X21vZGVsXzEiLCJidXR0b25fMiIsIkV2ZW50SGFuZGxlckFkYXB0ZXJzIiwiaW5wdXRfYmluZGluZ18xIiwibW9uaXRvcl9iaW5kaW5nXzEiLCJzZXBhcmF0b3JfMiIsImZvbGRlckNvbnRyb2xsZXIiLCJhZGRJbnB1dCIsIm9wdF9wYXJhbXMiLCJwYXJhbXMiLCJ1YyIsIlRhcmdldCIsInByZXNldEtleSIsIklucHV0QmluZGluZ0FwaSIsImFkZE1vbml0b3IiLCJNb25pdG9yQmluZGluZ0FwaSIsImFkZEZvbGRlciIsIkZvbGRlckNvbnRyb2xsZXIiLCJWaWV3TW9kZWwiLCJhZGRCdXR0b24iLCJCdXR0b25Db250cm9sbGVyIiwiYWRkU2VwYXJhdG9yIiwiU2VwYXJhdG9yQ29udHJvbGxlciIsIlNlcGFyYXRvckFwaSIsIi4vc3JjL21haW4vanMvYXBpL2lucHV0LWJpbmRpbmcudHMiLCJIYW5kbGVyQWRhcHRlcnMiLCJiaW5kaW5nQ29udHJvbGxlciIsInJlZnJlc2giLCIuL3NyYy9tYWluL2pzL2FwaS9tb25pdG9yLWJpbmRpbmcudHMiLCIuL3NyYy9tYWluL2pzL2FwaS9wcmVzZXQudHMiLCJpbXBvcnRKc29uIiwiZXhwb3J0SnNvbiIsInRhcmdldHMiLCJ3cml0ZSIsIi4vc3JjL21haW4vanMvYXBpL3Jvb3QudHMiLCJSb290QXBpIiwiVWlVdGlsIiwiZm9sZGVyXzIiLCJpbnB1dF9iaW5kaW5nXzIiLCJtb25pdG9yX2JpbmRpbmdfMiIsIlByZXNldCIsInJvb3RDb250cm9sbGVyIiwidmlldyIsImltcG9ydFByZXNldCIsImZpbmRDb250cm9sbGVycyIsIml0ZW1zIiwiSW5wdXRCaW5kaW5nQ29udHJvbGxlciIsImliYyIsImV4cG9ydFByZXNldCIsIk1vbml0b3JCaW5kaW5nQ29udHJvbGxlciIsIm1iYyIsIi4vc3JjL21haW4vanMvYXBpL3NlcGFyYXRvci50cyIsIi4vc3JjL21haW4vanMvYmluZGluZy9pbnB1dC50cyIsIklucHV0QmluZGluZyIsImVtaXR0ZXJfMSIsImNvbmZpZyIsIm9uVmFsdWVDaGFuZ2VfIiwicmVhZGVyXyIsInJlYWRlciIsIndyaXRlcl8iLCJ3cml0ZXIiLCJFbWl0dGVyIiwidGFyZ2V0VmFsdWUiLCJ3cml0ZV8iLCIuL3NyYy9tYWluL2pzL2JpbmRpbmcvbW9uaXRvci50cyIsIk1vbml0b3JCaW5kaW5nIiwib25UaWNrXyIsIm9uVmFsdWVVcGRhdGVfIiwidGlja2VyIiwiZGlzcG9zYWJsZSIsImFwcGVuZCIsIi4vc3JjL21haW4vanMvY29uc3RyYWludC9jb21wb3NpdGUudHMiLCJDb21wb3NpdGVDb25zdHJhaW50IiwiY29uc3RyYWludHNfIiwiY29uc3RyYWludHMiLCJjb25zdHJhaW4iLCIuL3NyYy9tYWluL2pzL2NvbnN0cmFpbnQvbGlzdC50cyIsIkxpc3RDb25zdHJhaW50Iiwib3B0c18iLCIuL3NyYy9tYWluL2pzL2NvbnN0cmFpbnQvcG9pbnQtMmQudHMiLCJQb2ludDJkQ29uc3RyYWludCIsInBvaW50XzJkXzEiLCJ4Q29uc3RyYWludCIsInlDb25zdHJhaW50IiwiUG9pbnQyZCIsIi4vc3JjL21haW4vanMvY29uc3RyYWludC9yYW5nZS50cyIsIlJhbmdlQ29uc3RyYWludCIsInR5cGVfdXRpbF8xIiwibWF4VmFsdWUiLCJtaW5WYWx1ZSIsIlR5cGVVdGlsIiwiLi9zcmMvbWFpbi9qcy9jb25zdHJhaW50L3N0ZXAudHMiLCJTdGVwQ29uc3RyYWludCIsInN0ZXAiLCIuL3NyYy9tYWluL2pzL2NvbnN0cmFpbnQvdXRpbC50cyIsIkNvbnN0cmFpbnRVdGlsIiwiY29tcG9zaXRlXzEiLCJmaW5kQ29uc3RyYWludCIsImNvbnN0cmFpbnRDbGFzcyIsInRtcFJlc3VsdCIsInNjIiwiLi9zcmMvbWFpbi9qcy9jb250cm9sbGVyL2JpbmRpbmctY3JlYXRvcnMvYm9vbGVhbi1pbnB1dC50cyIsImlucHV0XzEiLCJsaXN0XzEiLCJ1dGlsXzEiLCJCb29sZWFuQ29udmVydGVyIiwiaW5wdXRfdmFsdWVfMSIsImNoZWNrYm94XzEiLCJsaXN0XzIiLCJjcmVhdGVDb250cm9sbGVyIiwiY29uc3RyYWludCIsIkxpc3RJbnB1dENvbnRyb2xsZXIiLCJzdHJpbmdpZnlWYWx1ZSIsIkNoZWNrYm94SW5wdXRDb250cm9sbGVyIiwiSW5wdXRWYWx1ZSIsIm5vcm1hbGl6ZUlucHV0UGFyYW1zT3B0aW9ucyIsImZyb21NaXhlZCIsImNyZWF0ZUNvbnN0cmFpbnQiLCJsYWJlbCIsIi4vc3JjL21haW4vanMvY29udHJvbGxlci9iaW5kaW5nLWNyZWF0b3JzL2Jvb2xlYW4tbW9uaXRvci50cyIsIm1vbml0b3JfMSIsImJvb2xlYW5fMSIsIm1vbml0b3JfdmFsdWVfMSIsIm11bHRpX2xvZ18xIiwic2luZ2xlX2xvZ18xIiwiTW9uaXRvclZhbHVlIiwiZ2V0T3JEZWZhdWx0IiwidG90YWxDb3VudCIsIlNpbmdsZUxvZ01vbml0b3JDb250cm9sbGVyIiwiZm9ybWF0dGVyIiwiQm9vbGVhbkZvcm1hdHRlciIsIk11bHRpTG9nTW9uaXRvckNvbnRyb2xsZXIiLCJjcmVhdGVUaWNrZXIiLCJpbnRlcnZhbCIsIi4vc3JjL21haW4vanMvY29udHJvbGxlci9iaW5kaW5nLWNyZWF0b3JzL2NvbG9yLWlucHV0LnRzIiwiY3JlYXRlV2l0aE9iamVjdCIsImNyZWF0ZVdpdGhOdW1iZXIiLCJjcmVhdGVXaXRoU3RyaW5nIiwiQ29sb3JDb252ZXJ0ZXIiLCJjb2xvcl8xIiwiY29sb3JfMiIsIk51bWJlckNvbG9yUGFyc2VyIiwiU3RyaW5nQ29sb3JQYXJzZXIiLCJjb2xvcl9zd2F0Y2hfdGV4dF8xIiwibm90YXRpb24iLCJnZXROb3RhdGlvbiIsImNvbnZlcnRlciIsImZyb21TdHJpbmciLCJjb2xvciIsImdldFN0cmluZ2lmaWVyIiwiQ29sb3JTd2F0Y2hUZXh0SW5wdXRDb250cm9sbGVyIiwiQ29sb3JGb3JtYXR0ZXIiLCJwYXJzZXIiLCJDb21wb3NpdGVQYXJzZXIiLCJzdXBwb3J0c0FscGhhIiwiaGFzQWxwaGFDb21wb25lbnQiLCJSZ2JhUGFyc2VyIiwiUmdiUGFyc2VyIiwidG9IZXhSZ2JhU3RyaW5nIiwidG9IZXhSZ2JTdHJpbmciLCJmcm9tTnVtYmVyVG9SZ2JhIiwiZnJvbU51bWJlclRvUmdiIiwidG9SZ2JhTnVtYmVyIiwidG9SZ2JOdW1iZXIiLCJDb2xvciIsImlzQ29sb3JPYmplY3QiLCJmcm9tT2JqZWN0IiwiaXNSZ2JhQ29sb3JPYmplY3QiLCJ0b1JnYmFPYmplY3QiLCIuL3NyYy9tYWluL2pzL2NvbnRyb2xsZXIvYmluZGluZy1jcmVhdG9ycy9pbnB1dC50cyIsInBhbmVfZXJyb3JfMSIsIkJvb2xlYW5JbnB1dEJpbmRpbmdDb250cm9sbGVyQ3JlYXRvcnMiLCJDb2xvcklucHV0QmluZGluZ0NvbnRyb2xsZXJDcmVhdG9ycyIsIk51bWJlcklucHV0QmluZGluZ0NvbnRyb2xsZXJDcmVhdG9ycyIsIlBvaW50MmRJbnB1dEJpbmRpbmdDb250cm9sbGVyQ3JlYXRvcnMiLCJTdHJpbmdJbnB1dEJpbmRpbmdDb250cm9sbGVyQ3JlYXRvcnMiLCJQYW5lRXJyb3IiLCJiYyIsImNyZWF0ZUJpbmRpbmdDb250cm9sbGVyIiwiLi9zcmMvbWFpbi9qcy9jb250cm9sbGVyL2JpbmRpbmctY3JlYXRvcnMvbW9uaXRvci50cyIsIkJvb2xlYW5Nb25pdG9yQmluZGluZ0NvbnRyb2xsZXJDcmVhdG9ycyIsIk51bWJlck1vbml0b3JCaW5kaW5nQ29udHJvbGxlckNyZWF0b3JzIiwiU3RyaW5nTW9uaXRvckJpbmRpbmdDb250cm9sbGVyQ3JlYXRvcnMiLCIuL3NyYy9tYWluL2pzL2NvbnRyb2xsZXIvYmluZGluZy1jcmVhdG9ycy9udW1iZXItaW5wdXQudHMiLCJyYW5nZV8xIiwic3RlcF8xIiwiTnVtYmVyQ29udmVydGVyIiwibnVtYmVyXzEiLCJzdHJpbmdfbnVtYmVyXzEiLCJudW1iZXJfdGV4dF8xIiwic2xpZGVyX3RleHRfMSIsIlNsaWRlclRleHRJbnB1dENvbnRyb2xsZXIiLCJOdW1iZXJGb3JtYXR0ZXIiLCJnZXRTdWl0YWJsZURlY2ltYWxEaWdpdHMiLCJTdHJpbmdOdW1iZXJQYXJzZXIiLCJOdW1iZXJUZXh0SW5wdXRDb250cm9sbGVyIiwiLi9zcmMvbWFpbi9qcy9jb250cm9sbGVyL2JpbmRpbmctY3JlYXRvcnMvbnVtYmVyLW1vbml0b3IudHMiLCJncmFwaF8xIiwiY3JlYXRlRm9ybWF0dGVyIiwiR3JhcGhNb25pdG9yQ29udHJvbGxlciIsImNyZWF0ZUdyYXBoTW9uaXRvciIsImNyZWF0ZVRleHRNb25pdG9yIiwiLi9zcmMvbWFpbi9qcy9jb250cm9sbGVyL2JpbmRpbmctY3JlYXRvcnMvcG9pbnQtMmQtaW5wdXQudHMiLCJQb2ludDJkQ29udmVydGVyIiwiYW55X3BvaW50XzJkXzEiLCJwb2ludF8yZF9wYWRfdGV4dF8xIiwiY3JlYXRlRGltZW5zaW9uQ29uc3RyYWludCIsIkFueVBvaW50MmRQYXJzZXIiLCJ5UGFyYW1zIiwiaW52ZXJ0c1kiLCJzaG91bGROZXZlckhhcHBlbiIsIlBvaW50MmRQYWRUZXh0SW5wdXRDb250cm9sbGVyIiwieEZvcm1hdHRlciIsInlGb3JtYXR0ZXIiLCJpbnZlcnRlZCIsIi4vc3JjL21haW4vanMvY29udHJvbGxlci9iaW5kaW5nLWNyZWF0b3JzL3N0cmluZy1pbnB1dC50cyIsIlN0cmluZ0NvbnZlcnRlciIsInN0cmluZ18xIiwidGV4dF8xIiwiVGV4dElucHV0Q29udHJvbGxlciIsIlN0cmluZ0Zvcm1hdHRlciIsIi4vc3JjL21haW4vanMvY29udHJvbGxlci9iaW5kaW5nLWNyZWF0b3JzL3N0cmluZy1tb25pdG9yLnRzIiwiLi9zcmMvbWFpbi9qcy9jb250cm9sbGVyL2JpbmRpbmctY3JlYXRvcnMvdXRpbC50cyIsImNvbnN0YW50c18xIiwiaW50ZXJ2YWxfMSIsIm1hbnVhbF8xIiwiTWFudWFsVGlja2VyIiwiSW50ZXJ2YWxUaWNrZXIiLCJDb25zdGFudHMiLCJtb25pdG9yRGVmYXVsdEludGVydmFsIiwiLi9zcmMvbWFpbi9qcy9jb250cm9sbGVyL2J1dHRvbi50cyIsIm9uQnV0dG9uQ2xpY2tfIiwiQnV0dG9uIiwiQnV0dG9uVmlldyIsIm1vZGVsIiwiYnV0dG9uRWxlbWVudCIsIi4vc3JjL21haW4vanMvY29udHJvbGxlci9jb250YWluZXItdXRpbC50cyIsImNvbXB1dGVFeHBhbmRlZEZvbGRlckhlaWdodCIsInVwZGF0ZUFsbEl0ZW1zUG9zaXRpb25zIiwiRG9tVXRpbCIsInZpc2libGVJdGVtcyIsImZpcnN0VmlzaWJsZUl0ZW0iLCJsYXN0VmlzaWJsZUl0ZW0iLCJwcyIsInBvc2l0aW9ucyIsImNvbnRhaW5lckVsZW1lbnQiLCJkaXNhYmxlVHJhbnNpdGlvblRlbXBvcmFyaWx5IiwiZXhwYW5kZWRIZWlnaHQiLCJ0ZW1wb3JhcnlFeHBhbmRlZCIsImZvcmNlUmVmbG93IiwiY2xpZW50SGVpZ2h0IiwiLi9zcmMvbWFpbi9qcy9jb250cm9sbGVyL2ZvbGRlci50cyIsInVpX2NvbnRhaW5lcl8xIiwiQ29udGFpbmVyVXRpbCIsIm9uQ29udGFpbmVyVHJhbnNpdGlvbkVuZF8iLCJvbkZvbGRlckJlZm9yZUNoYW5nZV8iLCJvblRpdGxlQ2xpY2tfIiwib25VaUNvbnRhaW5lckFkZF8iLCJvblVpQ29udGFpbmVySXRlbUxheW91dF8iLCJvblVpQ29udGFpbmVyUmVtb3ZlXyIsIkZvbGRlciIsInVjTGlzdF8iLCJVaUNvbnRhaW5lciIsImRvY18iLCJGb2xkZXJWaWV3IiwidGl0bGVFbGVtZW50Iiwic2hvdWxkRml4SGVpZ2h0IiwiYXBwbHlVaUNvbnRhaW5lckNoYW5nZV8iLCJpbnNlcnRFbGVtZW50QXQiLCJ1aUNvbnRyb2xsZXIiLCIuL3NyYy9tYWluL2pzL2NvbnRyb2xsZXIvaW5wdXQtYmluZGluZy50cyIsImxhYmVsZWRfMSIsIkxhYmVsZWRWaWV3IiwiLi9zcmMvbWFpbi9qcy9jb250cm9sbGVyL2lucHV0L2EtcGFsZXR0ZS50cyIsIkFQYWxldHRlSW5wdXRDb250cm9sbGVyIiwicG9pbnRlcl9oYW5kbGVyXzEiLCJhX3BhbGV0dGVfMSIsIm9uS2V5RG93bl8iLCJvblBvaW50ZXJEb3duXyIsIm9uUG9pbnRlck1vdmVfIiwib25Qb2ludGVyVXBfIiwiQVBhbGV0dGVJbnB1dFZpZXciLCJwdEhhbmRsZXJfIiwiUG9pbnRlckhhbmRsZXIiLCJoYW5kbGVQb2ludGVyRXZlbnRfIiwiYWxwaGEiLCJnZXRDb21wb25lbnRzIiwiZ2V0U3RlcEZvcktleSIsImdldEJhc2VTdGVwRm9yQ29sb3IiLCJnZXRIb3Jpem9udGFsU3RlcEtleXMiLCIuL3NyYy9tYWluL2pzL2NvbnRyb2xsZXIvaW5wdXQvY2hlY2tib3gudHMiLCJvbklucHV0Q2hhbmdlXyIsIkNoZWNrYm94SW5wdXRWaWV3IiwiaW5wdXRFbGVtZW50IiwiaW5wdXRFbGVtIiwiZm9yY2VDYXN0IiwiY3VycmVudFRhcmdldCIsImNoZWNrZWQiLCIuL3NyYy9tYWluL2pzL2NvbnRyb2xsZXIvaW5wdXQvY29sb3ItY29tcG9uZW50LXRleHRzLnRzIiwiQ29sb3JDb21wb25lbnRUZXh0c0lucHV0Q29udHJvbGxlciIsImNvbG9yX2NvbXBvbmVudF90ZXh0c18xIiwiX3RoaXMiLCJvbk1vZGVTZWxlY3RDaGFuZ2VfIiwib25JbnB1dEtleURvd25fIiwicGFyc2VyXyIsInBpY2tlZENvbG9yIiwiQ29sb3JDb21wb25lbnRUZXh0c0lucHV0VmlldyIsImlucHV0RWxlbWVudHMiLCJtb2RlU2VsZWN0RWxlbWVudCIsImZpbmRJbmRleE9mSW5wdXRFbGVtXyIsImlucHV0RWxlbXMiLCJ1cGRhdGVDb21wb25lbnRfIiwibmV3VmFsdWUiLCJuZXdDb21wcyIsImNvbXAiLCJwYXJzZWRWYWx1ZSIsImNvbXBJbmRleCIsImdldFZlcnRpY2FsU3RlcEtleXMiLCIuL3NyYy9tYWluL2pzL2NvbnRyb2xsZXIvaW5wdXQvY29sb3ItcGlja2VyLnRzIiwiQ29sb3JQaWNrZXJJbnB1dENvbnRyb2xsZXIiLCJmb2xkYWJsZV8xIiwiTW9kZWxTeW5jIiwiY29sb3JfcGlja2VyXzEiLCJoX3BhbGV0dGVfMSIsInN2X3BhbGV0dGVfMSIsInRyaWdnZXJFbGVtZW50Iiwib25Gb2N1c2FibGVFbGVtZW50Qmx1cl8iLCJmb2xkYWJsZSIsIkZvbGRhYmxlIiwiaFBhbGV0dGVJY18iLCJIUGFsZXR0ZUlucHV0Q29udHJvbGxlciIsInN2UGFsZXR0ZUljXyIsIlN2UGFsZXR0ZUlucHV0Q29udHJvbGxlciIsImFscGhhSWNzXyIsInBhbGV0dGUiLCJ0ZXh0IiwiY29ubmVjdCIsInByaW1hcnkiLCJzZWNvbmRhcnkiLCJjb21wcyIsImNvbXBUZXh0c0ljXyIsIkNvbG9yUGlja2VySW5wdXRWaWV3IiwiYWxwaGFJbnB1dFZpZXdzIiwiY29tcG9uZW50VGV4dHNWaWV3IiwiaFBhbGV0dGVJbnB1dFZpZXciLCJzdlBhbGV0dGVJbnB1dFZpZXciLCJhbGxGb2N1c2FibGVFbGVtZW50cyIsImVsZW0iLCJuZXh0VGFyZ2V0IiwiZmluZE5leHRUYXJnZXQiLCJjb250YWlucyIsInN1cHBvcnRzVG91Y2giLCJvd25lckRvY3VtZW50IiwiLi9zcmMvbWFpbi9qcy9jb250cm9sbGVyL2lucHV0L2NvbG9yLXN3YXRjaC10ZXh0LnRzIiwiY29sb3Jfc3dhdGNoXzEiLCJzd2F0Y2hJY18iLCJDb2xvclN3YXRjaElucHV0Q29udHJvbGxlciIsInRleHRJY18iLCJDb2xvclN3YXRjaFRleHRJbnB1dFZpZXciLCJzd2F0Y2hJbnB1dFZpZXciLCJ0ZXh0SW5wdXRWaWV3IiwiLi9zcmMvbWFpbi9qcy9jb250cm9sbGVyL2lucHV0L2NvbG9yLXN3YXRjaC50cyIsInBpY2tlZF9jb2xvcl8xIiwib25CdXR0b25CbHVyXyIsInBpY2tlckljXyIsIlBpY2tlZENvbG9yIiwiQ29sb3JTd2F0Y2hJbnB1dFZpZXciLCJwaWNrZXJJbnB1dFZpZXciLCJyZWxhdGVkVGFyZ2V0IiwiZm9jdXMiLCIuL3NyYy9tYWluL2pzL2NvbnRyb2xsZXIvaW5wdXQvaC1wYWxldHRlLnRzIiwibnVtYmVyX3V0aWxfMSIsIkhQYWxldHRlSW5wdXRWaWV3IiwiaHVlIiwiTnVtYmVyVXRpbCIsIi4vc3JjL21haW4vanMvY29udHJvbGxlci9pbnB1dC9saXN0LnRzIiwib25TZWxlY3RDaGFuZ2VfIiwidmFsdWVfIiwibGlzdEl0ZW1zXyIsInZpZXdfIiwiTGlzdElucHV0VmlldyIsInNlbGVjdEVsZW1lbnQiLCJvcHRFbGVtIiwic2VsZWN0ZWRPcHRpb25zIiwiaXRlbUluZGV4IiwiZGF0YXNldCIsIi4vc3JjL21haW4vanMvY29udHJvbGxlci9pbnB1dC9udW1iZXItdGV4dC50cyIsImV4dGVuZFN0YXRpY3MiLCJfX2V4dGVuZHMiLCJzZXRQcm90b3R5cGVPZiIsIl9fcHJvdG9fXyIsIl9fIiwiX3N1cGVyIiwic3RlcF8iLCJnZXRTdGVwRm9yVGV4dElucHV0IiwiLi9zcmMvbWFpbi9qcy9jb250cm9sbGVyL2lucHV0L3BvaW50LTJkLXBhZC10ZXh0LnRzIiwicG9pbnRfMmRfcGFkXzEiLCJwb2ludF8yZF90ZXh0XzEiLCJvblBhZEJ1dHRvbkJsdXJfIiwib25QYWRCdXR0b25DbGlja18iLCJwYWRJY18iLCJQb2ludDJkUGFkSW5wdXRDb250cm9sbGVyIiwiUG9pbnQyZFRleHRJbnB1dENvbnRyb2xsZXIiLCJQb2ludDJkUGFkVGV4dElucHV0VmlldyIsInBhZElucHV0VmlldyIsInBhZEJ1dHRvbkVsZW1lbnQiLCIuL3NyYy9tYWluL2pzL2NvbnRyb2xsZXIvaW5wdXQvcG9pbnQtMmQtcGFkLnRzIiwicG9pbnRfMmRfMiIsIm9uUGFkS2V5RG93bl8iLCJtYXhWYWx1ZV8iLCJnZXRTdWl0YWJsZU1heFZhbHVlRm9yUG9pbnQyZFBhZCIsImludmVydHNZXyIsInhTdGVwXyIsInlTdGVwXyIsIlBvaW50MmRQYWRJbnB1dFZpZXciLCJwYWRFbGVtZW50IiwiaXNBcnJvd0tleSIsIi4vc3JjL21haW4vanMvY29udHJvbGxlci9pbnB1dC9wb2ludC0yZC10ZXh0LnRzIiwiUG9pbnQyZFRleHRJbnB1dFZpZXciLCIuL3NyYy9tYWluL2pzL2NvbnRyb2xsZXIvaW5wdXQvc2xpZGVyLXRleHQudHMiLCJzbGlkZXJfMSIsInNsaWRlckljXyIsIlNsaWRlcklucHV0Q29udHJvbGxlciIsIlNsaWRlclRleHRJbnB1dFZpZXciLCJzbGlkZXJJbnB1dFZpZXciLCIuL3NyYy9tYWluL2pzL2NvbnRyb2xsZXIvaW5wdXQvc2xpZGVyLnRzIiwiZXN0aW1hdGVTdWl0YWJsZVJhbmdlIiwiZmluZFJhbmdlIiwibWluVmFsdWVfIiwiU2xpZGVySW5wdXRWaWV3Iiwib3V0ZXJFbGVtZW50IiwiLi9zcmMvbWFpbi9qcy9jb250cm9sbGVyL2lucHV0L3N2LXBhbGV0dGUudHMiLCJTdlBhbGV0dGVJbnB1dFZpZXciLCJzYXR1cmF0aW9uIiwiYmFzZVN0ZXAiLCIuL3NyYy9tYWluL2pzL2NvbnRyb2xsZXIvaW5wdXQvdGV4dC50cyIsIlRleHRJbnB1dFZpZXciLCIuL3NyYy9tYWluL2pzL2NvbnRyb2xsZXIvbW9uaXRvci1iaW5kaW5nLnRzIiwiLi9zcmMvbWFpbi9qcy9jb250cm9sbGVyL21vbml0b3IvZ3JhcGgudHMiLCJncmFwaF9jdXJzb3JfMSIsIm9uR3JhcGhNb3VzZUxlYXZlXyIsIm9uR3JhcGhNb3VzZU1vdmVfIiwiY3Vyc29yXyIsIkdyYXBoQ3Vyc29yIiwiR3JhcGhNb25pdG9yVmlldyIsImN1cnNvciIsImdyYXBoRWxlbWVudCIsIm9mZnNldFgiLCIuL3NyYy9tYWluL2pzL2NvbnRyb2xsZXIvbW9uaXRvci9tdWx0aS1sb2cudHMiLCJNdWx0aUxvZ01vbml0b3JWaWV3IiwiLi9zcmMvbWFpbi9qcy9jb250cm9sbGVyL21vbml0b3Ivc2luZ2xlLWxvZy50cyIsIlNpbmdsZUxvZ01vbml0b3JWaWV3IiwiLi9zcmMvbWFpbi9qcy9jb250cm9sbGVyL3Jvb3QudHMiLCJSb290Q29udHJvbGxlciIsInJvb3RfMSIsImNyZWF0ZUZvbGRlciIsIlJvb3RWaWV3IiwiLi9zcmMvbWFpbi9qcy9jb250cm9sbGVyL3NlcGFyYXRvci50cyIsIlNlcGFyYXRvclZpZXciLCIuL3NyYy9tYWluL2pzL2NvbnRyb2xsZXIvdWktdXRpbC50cyIsImlzVmVydGljYWxBcnJvd0tleSIsImZpbmRTdGVwIiwiZ2V0U3VpdGFibGVNYXhEaW1lbnNpb25WYWx1ZSIsInJjIiwidGV4dFRvVmFsdWVNYXAiLCJ1aUNvbnRyb2xsZXJzIiwiY29udHJvbGxlckNsYXNzIiwicmVzdWx0cyIsInVwS2V5IiwiZG93bktleSIsImdldERlY2ltYWxEaWdpdHMiLCJ5YyIsInhyIiwieXIiLCJmb3JBbHBoYSIsIi4vc3JjL21haW4vanMvY29udmVydGVyL2Jvb2xlYW4udHMiLCIuL3NyYy9tYWluL2pzL2NvbnZlcnRlci9jb2xvci50cyIsInRvRnVuY3Rpb25hbEhzbGFTdHJpbmciLCJ0b0Z1bmN0aW9uYWxIc2xTdHJpbmciLCJ0b0Z1bmN0aW9uYWxSZ2JhU3RyaW5nIiwidG9GdW5jdGlvbmFsUmdiU3RyaW5nIiwiQ29sb3JNb2RlbCIsImNyZWF0ZUVtcHR5Q29sb3IiLCJ6ZXJvZmlsbCIsImhleCIsIndpdGhvdXRBbHBoYSIsInJnYmFDb21wcyIsImZvcm1hdCIsImFGb3JtYXR0ZXIiLCJyZ2JGb3JtYXR0ZXIiLCJoc2xGb3JtYXR0ZXIiLCJjdiIsIk5PVEFUSU9OX1RPX1NUUklOR0lGSUVSX01BUCIsImZ1bmMuaHNsIiwiZnVuYy5oc2xhIiwiZnVuYy5yZ2IiLCJmdW5jLnJnYmEiLCJoZXgucmdiIiwiaGV4LnJnYmEiLCIuL3NyYy9tYWluL2pzL2NvbnZlcnRlci9udW1iZXIudHMiLCJwdiIsIi4vc3JjL21haW4vanMvY29udmVydGVyL3BvaW50LTJkLnRzIiwiLi9zcmMvbWFpbi9qcy9jb252ZXJ0ZXIvc3RyaW5nLnRzIiwiLi9zcmMvbWFpbi9qcy9mb3JtYXR0ZXIvYm9vbGVhbi50cyIsIi4vc3JjL21haW4vanMvZm9ybWF0dGVyL2NvbG9yLnRzIiwic3RyaW5naWZpZXIiLCJzdHJpbmdpZmllcl8iLCIuL3NyYy9tYWluL2pzL2Zvcm1hdHRlci9udW1iZXIudHMiLCJkaWdpdHMiLCJkaWdpdHNfIiwiLi9zcmMvbWFpbi9qcy9mb3JtYXR0ZXIvc3RyaW5nLnRzIiwiLi9zcmMvbWFpbi9qcy9pbmRleC50cyIsIlN0eWxlIiwiVHdlYWtwYW5lIiwib3B0X2NvbmZpZyIsInF1ZXJ5U2VsZWN0b3IiLCJzdHlsZUVsZW0iLCJmb3IiLCJ0ZXh0Q29udGVudCIsImhlYWQiLCJlbWJlZERlZmF1bHRTdHlsZUlmTmVlZGVkIiwiVHdlYWtwYW5lV2l0aG91dFN0eWxlIiwiLi9zcmMvbWFpbi9qcy9taXNjL2NsYXNzLW5hbWUudHMiLCJDbGFzc05hbWUiLCJQUkVGSVgiLCJUWVBFX1RPX1BPU1RGSVhfTUFQIiwiIiwidmlld05hbWUiLCJvcHRfdmlld1R5cGUiLCJwb3N0Zml4Iiwib3B0X2VsZW1lbnROYW1lIiwib3B0X21vZGlmaWVyIiwiLi9zcmMvbWFpbi9qcy9taXNjL2NvbG9yLW1vZGVsLnRzIiwiY29udmVydE1vZGUiLCJ3aXRoQWxwaGEiLCJvcGFxdWUiLCJoc3ZUb1JnYiIsInJnYlRvSHNsIiwicnAiLCJncCIsImJwIiwiY21heCIsImNtaW4iLCJoc2xUb1JnYiIsIl9iIiwiX2MiLCJfZiIsImhwIiwic3AiLCJscCIsInJnYlRvSHN2IiwidnAiLCJNT0RFX0NPTlZFUlRFUl9NQVAiLCJoc2wiLCJoc3YiLCJyZ2IiLCJjb21wb25lbnRzIiwiZnJvbU1vZGUiLCJ0b01vZGUiLCIuL3NyYy9tYWluL2pzL21pc2MvY29uc3RhbnRzLnRzIiwiLi9zcmMvbWFpbi9qcy9taXNjL2Rpc3Bvc2luZy11dGlsLnRzIiwiZGlzcG9zZUVsZW1lbnQiLCIuL3NyYy9tYWluL2pzL21pc2MvZG9tLXV0aWwudHMiLCJpbmRleE9mQ2hpbGRFbGVtZW50IiwicmVtb3ZlRWxlbWVudCIsImNyZWF0ZVN2Z0ljb25FbGVtZW50IiwiZ2V0Q2FudmFzQ29udGV4dCIsImdldFdpbmRvd0RvY3VtZW50IiwiU1ZHX05TIiwiY2FsbGJhY2siLCJ0cmFuc2l0aW9uIiwib250b3VjaHN0YXJ0IiwiRnVuY3Rpb24iLCJjYW52YXNFbGVtZW50IiwiSUNPTl9JRF9UT19JTk5FUl9IVE1MX01BUCIsInAyZHBhZCIsImljb25JZCIsImNyZWF0ZUVsZW1lbnROUyIsImlubmVySFRNTCIsImluc2VydEJlZm9yZSIsImNoaWxkcmVuIiwicGFyZW50RWxlbSIsImV4cGxpY2l0T3JpZ2luYWxUYXJnZXQiLCIuL3NyYy9tYWluL2pzL21pc2MvZW1pdHRlci50cyIsIm9ic2VydmVyc18iLCJvYnNlcnZlcnMiLCJvYnNlcnZlciIsImV2ZW50IiwiLi9zcmMvbWFpbi9qcy9taXNjL251bWJlci11dGlsLnRzIiwic3RhcnQxIiwiZW5kMSIsInN0YXJ0MiIsImVuZDIiLCIuL3NyYy9tYWluL2pzL21pc2MvcGFuZS1lcnJvci50cyIsImNyZWF0ZU1lc3NhZ2UiLCJzdGFjayIsImFscmVhZHlEaXNwb3NlZCIsIi4vc3JjL21haW4vanMvbWlzYy9wb2ludGVyLWhhbmRsZXIudHMiLCJvbkRvY3VtZW50TW91c2VNb3ZlXyIsIm9uRG9jdW1lbnRNb3VzZVVwXyIsIm9uTW91c2VEb3duXyIsIm9uVG91Y2hNb3ZlXyIsIm9uVG91Y2hTdGFydF8iLCJwcmVzc2VkXyIsImNvbXB1dGVQb3NpdGlvbl8iLCJvZmZzZXRZIiwid2luIiwiZGVmYXVsdFZpZXciLCJwYWdlWCIsInNjcm9sbFgiLCJsZWZ0IiwicGFnZVkiLCJzY3JvbGxZIiwidG9wIiwidG91Y2giLCJ0YXJnZXRUb3VjaGVzIiwiY2xpZW50WCIsImNsaWVudFkiLCIuL3NyYy9tYWluL2pzL21pc2MvdGlja2VyL2ludGVydmFsLnRzIiwiZGlzcG9zYWJsZV8xIiwiaWRfIiwic2V0SW50ZXJ2YWwiLCJEaXNwb3NhYmxlIiwiY2xlYXJJbnRlcnZhbCIsIi4vc3JjL21haW4vanMvbWlzYy90aWNrZXIvbWFudWFsLnRzIiwiLi9zcmMvbWFpbi9qcy9taXNjL3R5cGUtdXRpbC50cyIsImRlZXBFcXVhbHNBcnJheSIsImEyIiwiLi9zcmMvbWFpbi9qcy9tb2RlbC9idXR0b24udHMiLCIuL3NyYy9tYWluL2pzL21vZGVsL2NvbG9yLnRzIiwiQ09OU1RSQUlOVF9NQVAiLCJpc1JnYkNvbG9yQ29tcG9uZW50IiwibW9kZV8iLCJjb21wc18iLCJpc1JnYkNvbG9yT2JqZWN0Iiwib3B0X21vZGUiLCJyZ2JDb21wcyIsIi4vc3JjL21haW4vanMvbW9kZWwvZGlzcG9zYWJsZS50cyIsImRpc3Bvc2VkXyIsIi4vc3JjL21haW4vanMvbW9kZWwvZm9sZGFibGUudHMiLCJleHBhbmRlZF8iLCIuL3NyYy9tYWluL2pzL21vZGVsL2ZvbGRlci50cyIsImV4cGFuZGVkSGVpZ2h0XyIsInRlbXBvcmFyeUV4cGFuZGVkXyIsInNob3VsZEZpeEhlaWdodF8iLCJzdHlsZUV4cGFuZGVkIiwiLi9zcmMvbWFpbi9qcy9tb2RlbC9ncmFwaC1jdXJzb3IudHMiLCJpbmRleF8iLCIuL3NyYy9tYWluL2pzL21vZGVsL2lucHV0LXZhbHVlLnRzIiwiY29uc3RyYWludF8iLCJyYXdWYWx1ZV8iLCJlcXVhbHNWYWx1ZSIsImNvbnN0cmFpbmVkVmFsdWUiLCIuL3NyYy9tYWluL2pzL21vZGVsL2xpc3QudHMiLCJMaXN0IiwiaXRlbXNfIiwib3B0X2luZGV4IiwicmVtb3ZlIiwiLi9zcmMvbWFpbi9qcy9tb2RlbC9tb2RlbC1zeW5jLnRzIiwiLi9zcmMvbWFpbi9qcy9tb2RlbC9tb25pdG9yLXZhbHVlLnRzIiwicmF3VmFsdWVzXyIsInRvdGFsQ291bnRfIiwiLi9zcmMvbWFpbi9qcy9tb2RlbC9waWNrZWQtY29sb3IudHMiLCIuL3NyYy9tYWluL2pzL21vZGVsL3BvaW50LTJkLnRzIiwiLi9zcmMvbWFpbi9qcy9tb2RlbC90YXJnZXQudHMiLCJvcHRfaWQiLCJvYmpfIiwia2V5XyIsInByZXNldEtleV8iLCIuL3NyYy9tYWluL2pzL21vZGVsL3VpLWNvbnRhaW5lci50cyIsIm9uSXRlbUZvbGRlckZvbGRfIiwib25MaXN0SXRlbUxheW91dF8iLCJvblN1Yml0ZW1MYXlvdXRfIiwib25TdWJpdGVtRm9sZGVyRm9sZF8iLCJvblN1Yml0ZW1JbnB1dENoYW5nZV8iLCJvblN1Yml0ZW1Nb25pdG9yVXBkYXRlXyIsIm9uSXRlbUlucHV0Q2hhbmdlXyIsIm9uTGlzdEFkZF8iLCJvbkxpc3RJdGVtRGlzcG9zZV8iLCJvbkxpc3RSZW1vdmVfIiwib25JdGVtTW9uaXRvclVwZGF0ZV8iLCJkaXNwb3NlZCIsIi4vc3JjL21haW4vanMvbW9kZWwvdmlldy1tb2RlbC50cyIsIm9uRGlzcG9zZV8iLCJwb3NpdGlvbnNfIiwiaGlkZGVuXyIsImRpc3Bvc2FibGVfIiwiLi9zcmMvbWFpbi9qcy9tb2RlbC92aWV3LXBvc2l0aW9ucy50cyIsImdldEFsbCIsIi4vc3JjL21haW4vanMvcGFyc2VyL2FueS1wb2ludC0yZC50cyIsIi4vc3JjL21haW4vanMvcGFyc2VyL251bWJlci1jb2xvci50cyIsIi4vc3JjL21haW4vanMvcGFyc2VyL3N0cmluZy1jb2xvci50cyIsInBhcnNlQ3NzTnVtYmVyT3JQZXJjZW50YWdlIiwicGFyc2VGbG9hdCIsIkFOR0xFX1RPX0RFR19NQVAiLCJkZWciLCJncmFkIiwidHVybiIsInBhcnNlQ3NzTnVtYmVyT3JBbmdsZSIsIk5PVEFUSU9OX1RPX1BBUlNFUl9NQVAiLCJtUnJnZ2JiIiwicGFyc2VJbnQiLCJtUmdiIiwic3VicGFyc2VyIiwiLi9zcmMvbWFpbi9qcy9wYXJzZXIvc3RyaW5nLW51bWJlci50cyIsIi4vc3JjL21haW4vanMvdHdlYWtwYW5lLXdpdGhvdXQtc3R5bGUudHMiLCJyb290XzIiLCJjbGFzc19uYW1lXzEiLCJjb250YWluZXJFbGVtXyIsImNvbnRhaW5lciIsImNsYXNzTGlzdCIsImNyZWF0ZURlZmF1bHRXcmFwcGVyRWxlbWVudCIsInVzZXNEZWZhdWx0V3JhcHBlcl8iLCJjb250YWluZXJFbGVtIiwiLi9zcmMvbWFpbi9qcy92aWV3L2J1dHRvbi50cyIsIkRpc3Bvc2luZ1V0aWwiLCJ2aWV3XzEiLCJjbGFzc05hbWUiLCJidXR0b25FbGVtIiwiYnV0dG9uRWxlbV8iLCJWaWV3IiwiLi9zcmMvbWFpbi9qcy92aWV3L2ZvbGRlci50cyIsIm9uRm9sZGVyQ2hhbmdlXyIsImZvbGRlcl8iLCJ0aXRsZUVsZW0iLCJ0aXRsZUVsZW1fIiwibWFya0VsZW0iLCJhcHBseU1vZGVsXyIsImV4cGFuZGVkQ2xhc3MiLCIuL3NyYy9tYWluL2pzL3ZpZXcvaW5wdXQvYS1wYWxldHRlLnRzIiwidGFiSW5kZXgiLCJiYXJFbGVtIiwiY29sb3JFbGVtIiwiY29sb3JFbGVtXyIsIm1hcmtlckVsZW0iLCJtYXJrZXJFbGVtXyIsInByZXZpZXdFbGVtIiwicHJldmlld0VsZW1fIiwibGVmdENvbG9yIiwicmlnaHRDb2xvciIsImdyYWRpZW50Q29tcHMiLCJiYWNrZ3JvdW5kQ29sb3IiLCIuL3NyYy9tYWluL2pzL3ZpZXcvaW5wdXQvY2hlY2tib3gudHMiLCJsYWJlbEVsZW0iLCJpbnB1dEVsZW1fIiwiLi9zcmMvbWFpbi9qcy92aWV3L2lucHV0L2NvbG9yLWNvbXBvbmVudC10ZXh0cy50cyIsIkZPUk1BVFRFUiIsIm1vZGVFbGVtIiwic2VsZWN0RWxlbSIsImZyYWciLCJjcmVhdGVEb2N1bWVudEZyYWdtZW50IiwiY3JlYXRlTW9kZVNlbGVjdEVsZW1lbnQiLCJtb2RlTWFya2VyRWxlbSIsIndyYXBwZXJFbGVtIiwiaW5wdXRFbGVtc18iLCIuL3NyYy9tYWluL2pzL3ZpZXcvaW5wdXQvY29sb3ItcGlja2VyLnRzIiwiX19zcHJlYWRBcnJheXMiLCJpbCIsImpsIiwib25Gb2xkYWJsZUNoYW5nZV8iLCJoc3ZFbGVtIiwic3ZFbGVtIiwic3ZQYWxldHRlVmlld18iLCJoRWxlbSIsImhQYWxldHRlVmlld18iLCJyZ2JFbGVtIiwiY29tcFRleHRzVmlld18iLCJhbHBoYVZpZXdzXyIsImFFbGVtIiwiYXBFbGVtIiwiYXRFbGVtIiwiZWxlbXMiLCIuL3NyYy9tYWluL2pzL3ZpZXcvaW5wdXQvY29sb3Itc3dhdGNoLXRleHQudHMiLCJzd2F0Y2hFbGVtIiwic3dhdGNoSW5wdXRWaWV3XyIsInRleHRFbGVtIiwiLi9zcmMvbWFpbi9qcy92aWV3L2lucHV0L2NvbG9yLXN3YXRjaC50cyIsInN3YXRjaEVsZW1fIiwicGlja2VyRWxlbSIsInBpY2tlclZpZXdfIiwiLi9zcmMvbWFpbi9qcy92aWV3L2lucHV0L2gtcGFsZXR0ZS50cyIsIi4vc3JjL21haW4vanMvdmlldy9pbnB1dC9saXN0LnRzIiwic3RyaW5naWZ5VmFsdWVfIiwib3B0aW9uRWxlbSIsInNlbGVjdEVsZW1fIiwiLi9zcmMvbWFpbi9qcy92aWV3L2lucHV0L3BvaW50LTJkLXBhZC10ZXh0LnRzIiwicGFkV3JhcHBlckVsZW0iLCJwYWRCdXR0b25FbGVtXyIsInBhZEVsZW0iLCJwYWRJbnB1dFZpZXdfIiwidGV4dElucHV0Vmlld18iLCIuL3NyYy9tYWluL2pzL3ZpZXcvaW5wdXQvcG9pbnQtMmQtcGFkLnRzIiwicGFkRWxlbV8iLCJzdmdFbGVtIiwic3ZnRWxlbV8iLCJ4QXhpc0VsZW0iLCJzZXRBdHRyaWJ1dGVOUyIsInlBeGlzRWxlbSIsImxpbmVFbGVtIiwibGluZUVsZW1fIiwiaXB5IiwiLi9zcmMvbWFpbi9qcy92aWV3L2lucHV0L3BvaW50LTJkLXRleHQudHMiLCJDT01QT05FTlRfTEFCRUxTIiwiZm9ybWF0dGVyc18iLCIuL3NyYy9tYWluL2pzL3ZpZXcvaW5wdXQvc2xpZGVyLXRleHQudHMiLCJzbGlkZXJFbGVtIiwic2xpZGVySW5wdXRWaWV3XyIsIi4vc3JjL21haW4vanMvdmlldy9pbnB1dC9zbGlkZXIudHMiLCJvdXRlckVsZW0iLCJvdXRlckVsZW1fIiwiaW5uZXJFbGVtIiwiaW5uZXJFbGVtXyIsIi4vc3JjL21haW4vanMvdmlldy9pbnB1dC9zdi1wYWxldHRlLnRzIiwiY29sb3JfbW9kZWxfMSIsIkNBTlZBU19SRVNPTCIsImNhbnZhc0VsZW0iLCJjYW52YXNFbGVtXyIsImhzdkNvbXBzIiwiaW1nRGF0YSIsImdldEltYWdlRGF0YSIsIml5IiwiaXgiLCJwdXRJbWFnZURhdGEiLCIuL3NyYy9tYWluL2pzL3ZpZXcvaW5wdXQvdGV4dC50cyIsImZvcm1hdHRlcl8iLCIuL3NyYy9tYWluL2pzL3ZpZXcvbGFiZWxlZC50cyIsImNyZWF0ZVRleHROb2RlIiwibGluZU5vZGUiLCJjcmVhdGVMYWJlbE5vZGUiLCJ2aWV3RWxlbSIsIi4vc3JjL21haW4vanMvdmlldy9tb25pdG9yL2dyYXBoLnRzIiwib25DdXJzb3JDaGFuZ2VfIiwidG9vbHRpcEVsZW0iLCJ0b29sdGlwRWxlbV8iLCJtYXhJbmRleCIsInJhd1ZhbHVlcyIsInR4IiwidHkiLCIuL3NyYy9tYWluL2pzL3ZpZXcvbW9uaXRvci9tdWx0aS1sb2cudHMiLCJ0ZXh0YXJlYUVsZW0iLCJyZWFkT25seSIsInRleHRhcmVhRWxlbV8iLCJzaG91bGRTY3JvbGwiLCJzY3JvbGxUb3AiLCJzY3JvbGxIZWlnaHQiLCIuL3NyYy9tYWluL2pzL3ZpZXcvbW9uaXRvci9zaW5nbGUtbG9nLnRzIiwiLi9zcmMvbWFpbi9qcy92aWV3L3Jvb3QudHMiLCIuL3NyYy9tYWluL2pzL3ZpZXcvc2VwYXJhdG9yLnRzIiwiaHJFbGVtIiwiLi9zcmMvbWFpbi9qcy92aWV3L3ZpZXcudHMiLCJWaWV3UG9zaXRpb25zIiwib25DaGFuZ2VfIiwibW9kZWxfIiwiZWxlbV8iLCJoaWRkZW5DbGFzcyIsInBvcyIsIi4vc3JjL21haW4vc2Fzcy9idW5kbGUuc2NzcyIsImxpbmVDb2xvciIsIm5saW5lcyIsImFuZ2xlTGVmdCIsImFuZ2xlUmlnaHQiLCJub2lzZUZyZXEiLCJub2lzZUFtcGwiLCJzbW9vdGgiLCJtYXJnaW4iLCJkcmlmdEJvdHRvbSIsInNxdWFyZWQiLCJkYXJrbW9kZSIsIm1hcmdpbkgiLCJtYXJnaW5WIiwic2lkZUxlbmd0aCIsImRyYXdMaW5lcyIsImd1aSIsInBhbmUiLCJBNCIsIkEzIiwiVVNsZXR0ZXIiLCJwb3N0Y2FyZCIsIjExciIsInBvcnRyYWl0Iiwicm5nIiwidG9CbG9iIiwiYnl0ZUxlbmd0aCIsImI2NCIsImxlbnMiLCJnZXRMZW5zIiwicGxhY2VIb2xkZXJzTGVuIiwidG9CeXRlQXJyYXkiLCJ2YWxpZExlbiIsIkFyciIsIl9ieXRlTGVuZ3RoIiwiY3VyQnl0ZSIsInJldkxvb2t1cCIsImZyb21CeXRlQXJyYXkiLCJ1aW50OCIsImV4dHJhQnl0ZXMiLCJsZW4yIiwiZW5jb2RlQ2h1bmsiLCJsb29rdXAiLCJpZWVlNzU0IiwiU2xvd0J1ZmZlciIsImFsbG9jIiwiSU5TUEVDVF9NQVhfQllURVMiLCJLX01BWF9MRU5HVEgiLCJjcmVhdGVCdWZmZXIiLCJSYW5nZUVycm9yIiwiYnVmIiwiYXJnIiwiZW5jb2RpbmdPck9mZnNldCIsInN0cmluZyIsImlzRW5jb2RpbmciLCJpc1ZpZXciLCJmcm9tQXJyYXlMaWtlIiwiaXNJbnN0YW5jZSIsImJ5dGVPZmZzZXQiLCJmcm9tQXJyYXlCdWZmZXIiLCJ2YWx1ZU9mIiwibnVtYmVySXNOYU4iLCJ0b1ByaW1pdGl2ZSIsImFzc2VydFNpemUiLCJzaXplIiwibXVzdE1hdGNoIiwibG93ZXJlZENhc2UiLCJ1dGY4VG9CeXRlcyIsImJhc2U2NFRvQnl0ZXMiLCJzd2FwIiwiYmlkaXJlY3Rpb25hbEluZGV4T2YiLCJhcnJheUluZGV4T2YiLCJsYXN0SW5kZXhPZiIsImluZGV4U2l6ZSIsImFyckxlbmd0aCIsInZhbExlbmd0aCIsInJlYWRVSW50MTZCRSIsImZvdW5kSW5kZXgiLCJmb3VuZCIsImhleFdyaXRlIiwicmVtYWluaW5nIiwic3RyTGVuIiwicGFyc2VkIiwidXRmOFdyaXRlIiwiYmxpdEJ1ZmZlciIsImFzY2lpV3JpdGUiLCJieXRlQXJyYXkiLCJhc2NpaVRvQnl0ZXMiLCJsYXRpbjFXcml0ZSIsImJhc2U2NFdyaXRlIiwidWNzMldyaXRlIiwidXRmMTZsZVRvQnl0ZXMiLCJiYXNlNjRTbGljZSIsInV0ZjhTbGljZSIsInNlY29uZEJ5dGUiLCJ0aGlyZEJ5dGUiLCJmb3VydGhCeXRlIiwidGVtcENvZGVQb2ludCIsImZpcnN0Qnl0ZSIsImNvZGVQb2ludCIsImJ5dGVzUGVyU2VxdWVuY2UiLCJjb2RlUG9pbnRzIiwiTUFYX0FSR1VNRU5UU19MRU5HVEgiLCJkZWNvZGVDb2RlUG9pbnRzQXJyYXkiLCJrTWF4TGVuZ3RoIiwiVFlQRURfQVJSQVlfU1VQUE9SVCIsImZvbyIsInR5cGVkQXJyYXlTdXBwb3J0Iiwic3BlY2llcyIsIndyaXRhYmxlIiwicG9vbFNpemUiLCJmaWxsIiwiYWxsb2NVbnNhZmVTbG93IiwiX2lzQnVmZmVyIiwiY29tcGFyZSIsInN3YXAxNiIsInN3YXAzMiIsInN3YXA2NCIsInRvTG9jYWxlU3RyaW5nIiwiaGV4U2xpY2UiLCJhc2NpaVNsaWNlIiwibGF0aW4xU2xpY2UiLCJ1dGYxNmxlU2xpY2UiLCJlcXVhbHMiLCJpbnNwZWN0IiwidHJpbSIsInRoaXNTdGFydCIsInRoaXNFbmQiLCJ0aGlzQ29weSIsInRhcmdldENvcHkiLCJ0b0pTT04iLCJ0b0hleCIsImJ5dGVzIiwiY2hlY2tPZmZzZXQiLCJleHQiLCJjaGVja0ludCIsImNoZWNrSUVFRTc1NCIsIndyaXRlRmxvYXQiLCJsaXR0bGVFbmRpYW4iLCJub0Fzc2VydCIsIndyaXRlRG91YmxlIiwibmV3QnVmIiwic3ViYXJyYXkiLCJyZWFkVUludExFIiwibXVsIiwicmVhZFVJbnRCRSIsInJlYWRVSW50OCIsInJlYWRVSW50MTZMRSIsInJlYWRVSW50MzJMRSIsInJlYWRVSW50MzJCRSIsInJlYWRJbnRMRSIsInJlYWRJbnRCRSIsInJlYWRJbnQ4IiwicmVhZEludDE2TEUiLCJyZWFkSW50MTZCRSIsInJlYWRJbnQzMkxFIiwicmVhZEludDMyQkUiLCJyZWFkRmxvYXRMRSIsInJlYWRGbG9hdEJFIiwicmVhZERvdWJsZUxFIiwicmVhZERvdWJsZUJFIiwid3JpdGVVSW50TEUiLCJ3cml0ZVVJbnRCRSIsIndyaXRlVUludDgiLCJ3cml0ZVVJbnQxNkxFIiwid3JpdGVVSW50MTZCRSIsIndyaXRlVUludDMyTEUiLCJ3cml0ZVVJbnQzMkJFIiwid3JpdGVJbnRMRSIsImxpbWl0Iiwic3ViIiwid3JpdGVJbnRCRSIsIndyaXRlSW50OCIsIndyaXRlSW50MTZMRSIsIndyaXRlSW50MTZCRSIsIndyaXRlSW50MzJMRSIsIndyaXRlSW50MzJCRSIsIndyaXRlRmxvYXRMRSIsIndyaXRlRmxvYXRCRSIsIndyaXRlRG91YmxlTEUiLCJ3cml0ZURvdWJsZUJFIiwidGFyZ2V0U3RhcnQiLCJjb3B5V2l0aGluIiwiSU5WQUxJRF9CQVNFNjRfUkUiLCJsZWFkU3Vycm9nYXRlIiwiYmFzZTY0Y2xlYW4iLCJzcmMiLCJkc3QiLCJpc0xFIiwibUxlbiIsIm5CeXRlcyIsImVMZW4iLCJlTWF4IiwiZUJpYXMiLCJuQml0cyIsIk5hTiIsInJ0IiwiTE4yIiwiQ0FOVkFTX1NLRVRDSF9ERUZBVUxUX1NUT1JBR0VfS0VZIl0sIm1hcHBpbmdzIjoiQ0FBQSxXQUFBLE9BQUEsU0FBQUEsRUFBQUMsRUFBQUMsRUFBQUMsR0FBQSxTQUFBQyxFQUFBQyxFQUFBQyxHQUFBLElBQUFKLEVBQUFHLEdBQUEsQ0FBQSxJQUFBSixFQUFBSSxHQUFBLENBQUEsSUFBQUUsRUFBQSxtQkFBQUMsU0FBQUEsUUFBQSxJQUFBRixHQUFBQyxFQUFBLE9BQUFBLEVBQUFGLEdBQUEsR0FBQSxHQUFBSSxFQUFBLE9BQUFBLEVBQUFKLEdBQUEsR0FBQSxJQUFBSyxFQUFBLElBQUFDLE1BQUEsdUJBQUFOLEVBQUEsS0FBQSxNQUFBSyxFQUFBRSxLQUFBLG1CQUFBRixFQUFBLElBQUFHLEVBQUFYLEVBQUFHLEdBQUEsQ0FBQVMsUUFBQSxJQUFBYixFQUFBSSxHQUFBLEdBQUFVLEtBQUFGLEVBQUFDLFFBQUEsU0FBQWQsR0FBQSxPQUFBSSxFQUFBSCxFQUFBSSxHQUFBLEdBQUFMLElBQUFBLElBQUFhLEVBQUFBLEVBQUFDLFFB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QTdGLEdBQUEsSUFBQXEwRSxHQUFBLEdBRUFodUUsRUFBQTZKLEVBQUE5UCxFQUFBeUYsSUFBQSxJQUFBNlUscURDbEZBZ0UsRUFBQWsyRCxrQ0FBQTczRCxPQUFBd2lCLFNBQUFuWiIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbigpe2Z1bmN0aW9uIHIoZSxuLHQpe2Z1bmN0aW9uIG8oaSxmKXtpZighbltpXSl7aWYoIWVbaV0pe3ZhciBjPVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmU7aWYoIWYmJmMpcmV0dXJuIGMoaSwhMCk7aWYodSlyZXR1cm4gdShpLCEwKTt2YXIgYT1uZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiK2krXCInXCIpO3Rocm93IGEuY29kZT1cIk1PRFVMRV9OT1RfRk9VTkRcIixhfXZhciBwPW5baV09e2V4cG9ydHM6e319O2VbaV1bMF0uY2FsbChwLmV4cG9ydHMsZnVuY3Rpb24ocil7dmFyIG49ZVtpXVsxXVtyXTtyZXR1cm4gbyhufHxyKX0scCxwLmV4cG9ydHMscixlLG4sdCl9cmV0dXJuIG5baV0uZXhwb3J0c31mb3IodmFyIHU9XCJmdW5jdGlvblwiPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZSxpPTA7aTx0Lmxlbmd0aDtpKyspbyh0W2ldKTtyZXR1cm4gb31yZXR1cm4gcn0pKCkiLCJcbm1vZHVsZS5leHBvcnRzID0gYWJzb2x1dGl6ZVxuXG4vKipcbiAqIHJlZGVmaW5lIGBwYXRoYCB3aXRoIGFic29sdXRlIGNvb3JkaW5hdGVzXG4gKlxuICogQHBhcmFtIHtBcnJheX0gcGF0aFxuICogQHJldHVybiB7QXJyYXl9XG4gKi9cblxuZnVuY3Rpb24gYWJzb2x1dGl6ZShwYXRoKXtcblx0dmFyIHN0YXJ0WCA9IDBcblx0dmFyIHN0YXJ0WSA9IDBcblx0dmFyIHggPSAwXG5cdHZhciB5ID0gMFxuXG5cdHJldHVybiBwYXRoLm1hcChmdW5jdGlvbihzZWcpe1xuXHRcdHNlZyA9IHNlZy5zbGljZSgpXG5cdFx0dmFyIHR5cGUgPSBzZWdbMF1cblx0XHR2YXIgY29tbWFuZCA9IHR5cGUudG9VcHBlckNhc2UoKVxuXG5cdFx0Ly8gaXMgcmVsYXRpdmVcblx0XHRpZiAodHlwZSAhPSBjb21tYW5kKSB7XG5cdFx0XHRzZWdbMF0gPSBjb21tYW5kXG5cdFx0XHRzd2l0Y2ggKHR5cGUpIHtcblx0XHRcdFx0Y2FzZSAnYSc6XG5cdFx0XHRcdFx0c2VnWzZdICs9IHhcblx0XHRcdFx0XHRzZWdbN10gKz0geVxuXHRcdFx0XHRcdGJyZWFrXG5cdFx0XHRcdGNhc2UgJ3YnOlxuXHRcdFx0XHRcdHNlZ1sxXSArPSB5XG5cdFx0XHRcdFx0YnJlYWtcblx0XHRcdFx0Y2FzZSAnaCc6XG5cdFx0XHRcdFx0c2VnWzFdICs9IHhcblx0XHRcdFx0XHRicmVha1xuXHRcdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRcdGZvciAodmFyIGkgPSAxOyBpIDwgc2VnLmxlbmd0aDspIHtcblx0XHRcdFx0XHRcdHNlZ1tpKytdICs9IHhcblx0XHRcdFx0XHRcdHNlZ1tpKytdICs9IHlcblx0XHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gdXBkYXRlIGN1cnNvciBzdGF0ZVxuXHRcdHN3aXRjaCAoY29tbWFuZCkge1xuXHRcdFx0Y2FzZSAnWic6XG5cdFx0XHRcdHggPSBzdGFydFhcblx0XHRcdFx0eSA9IHN0YXJ0WVxuXHRcdFx0XHRicmVha1xuXHRcdFx0Y2FzZSAnSCc6XG5cdFx0XHRcdHggPSBzZWdbMV1cblx0XHRcdFx0YnJlYWtcblx0XHRcdGNhc2UgJ1YnOlxuXHRcdFx0XHR5ID0gc2VnWzFdXG5cdFx0XHRcdGJyZWFrXG5cdFx0XHRjYXNlICdNJzpcblx0XHRcdFx0eCA9IHN0YXJ0WCA9IHNlZ1sxXVxuXHRcdFx0XHR5ID0gc3RhcnRZID0gc2VnWzJdXG5cdFx0XHRcdGJyZWFrXG5cdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHR4ID0gc2VnW3NlZy5sZW5ndGggLSAyXVxuXHRcdFx0XHR5ID0gc2VnW3NlZy5sZW5ndGggLSAxXVxuXHRcdH1cblxuXHRcdHJldHVybiBzZWdcblx0fSlcbn1cbiIsImZ1bmN0aW9uIGNsb25lKHBvaW50KSB7IC8vVE9ETzogdXNlIGdsLXZlYzIgZm9yIHRoaXNcbiAgICByZXR1cm4gW3BvaW50WzBdLCBwb2ludFsxXV1cbn1cblxuZnVuY3Rpb24gdmVjMih4LCB5KSB7XG4gICAgcmV0dXJuIFt4LCB5XVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZUJlemllckJ1aWxkZXIob3B0KSB7XG4gICAgb3B0ID0gb3B0fHx7fVxuXG4gICAgdmFyIFJFQ1VSU0lPTl9MSU1JVCA9IHR5cGVvZiBvcHQucmVjdXJzaW9uID09PSAnbnVtYmVyJyA/IG9wdC5yZWN1cnNpb24gOiA4XG4gICAgdmFyIEZMVF9FUFNJTE9OID0gdHlwZW9mIG9wdC5lcHNpbG9uID09PSAnbnVtYmVyJyA/IG9wdC5lcHNpbG9uIDogMS4xOTIwOTI5MGUtN1xuICAgIHZhciBQQVRIX0RJU1RBTkNFX0VQU0lMT04gPSB0eXBlb2Ygb3B0LnBhdGhFcHNpbG9uID09PSAnbnVtYmVyJyA/IG9wdC5wYXRoRXBzaWxvbiA6IDEuMFxuXG4gICAgdmFyIGN1cnZlX2FuZ2xlX3RvbGVyYW5jZV9lcHNpbG9uID0gdHlwZW9mIG9wdC5hbmdsZUVwc2lsb24gPT09ICdudW1iZXInID8gb3B0LmFuZ2xlRXBzaWxvbiA6IDAuMDFcbiAgICB2YXIgbV9hbmdsZV90b2xlcmFuY2UgPSBvcHQuYW5nbGVUb2xlcmFuY2UgfHwgMFxuICAgIHZhciBtX2N1c3BfbGltaXQgPSBvcHQuY3VzcExpbWl0IHx8IDBcblxuICAgIHJldHVybiBmdW5jdGlvbiBiZXppZXJDdXJ2ZShzdGFydCwgYzEsIGMyLCBlbmQsIHNjYWxlLCBwb2ludHMpIHtcbiAgICAgICAgaWYgKCFwb2ludHMpXG4gICAgICAgICAgICBwb2ludHMgPSBbXVxuXG4gICAgICAgIHNjYWxlID0gdHlwZW9mIHNjYWxlID09PSAnbnVtYmVyJyA/IHNjYWxlIDogMS4wXG4gICAgICAgIHZhciBkaXN0YW5jZVRvbGVyYW5jZSA9IFBBVEhfRElTVEFOQ0VfRVBTSUxPTiAvIHNjYWxlXG4gICAgICAgIGRpc3RhbmNlVG9sZXJhbmNlICo9IGRpc3RhbmNlVG9sZXJhbmNlXG4gICAgICAgIGJlZ2luKHN0YXJ0LCBjMSwgYzIsIGVuZCwgcG9pbnRzLCBkaXN0YW5jZVRvbGVyYW5jZSlcbiAgICAgICAgcmV0dXJuIHBvaW50c1xuICAgIH1cblxuXG4gICAgLy8vLy8vIEJhc2VkIG9uOlxuICAgIC8vLy8vLyBodHRwczovL2dpdGh1Yi5jb20vcGVsc29uL2FudGlncmFpbi9ibG9iL21hc3Rlci9hZ2ctMi40L3NyYy9hZ2dfY3VydmVzLmNwcFxuXG4gICAgZnVuY3Rpb24gYmVnaW4oc3RhcnQsIGMxLCBjMiwgZW5kLCBwb2ludHMsIGRpc3RhbmNlVG9sZXJhbmNlKSB7XG4gICAgICAgIHBvaW50cy5wdXNoKGNsb25lKHN0YXJ0KSlcbiAgICAgICAgdmFyIHgxID0gc3RhcnRbMF0sXG4gICAgICAgICAgICB5MSA9IHN0YXJ0WzFdLFxuICAgICAgICAgICAgeDIgPSBjMVswXSxcbiAgICAgICAgICAgIHkyID0gYzFbMV0sXG4gICAgICAgICAgICB4MyA9IGMyWzBdLFxuICAgICAgICAgICAgeTMgPSBjMlsxXSxcbiAgICAgICAgICAgIHg0ID0gZW5kWzBdLFxuICAgICAgICAgICAgeTQgPSBlbmRbMV1cbiAgICAgICAgcmVjdXJzaXZlKHgxLCB5MSwgeDIsIHkyLCB4MywgeTMsIHg0LCB5NCwgcG9pbnRzLCBkaXN0YW5jZVRvbGVyYW5jZSwgMClcbiAgICAgICAgcG9pbnRzLnB1c2goY2xvbmUoZW5kKSlcbiAgICB9XG5cbiAgICBmdW5jdGlvbiByZWN1cnNpdmUoeDEsIHkxLCB4MiwgeTIsIHgzLCB5MywgeDQsIHk0LCBwb2ludHMsIGRpc3RhbmNlVG9sZXJhbmNlLCBsZXZlbCkge1xuICAgICAgICBpZihsZXZlbCA+IFJFQ1VSU0lPTl9MSU1JVCkgXG4gICAgICAgICAgICByZXR1cm5cblxuICAgICAgICB2YXIgcGkgPSBNYXRoLlBJXG5cbiAgICAgICAgLy8gQ2FsY3VsYXRlIGFsbCB0aGUgbWlkLXBvaW50cyBvZiB0aGUgbGluZSBzZWdtZW50c1xuICAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgdmFyIHgxMiAgID0gKHgxICsgeDIpIC8gMlxuICAgICAgICB2YXIgeTEyICAgPSAoeTEgKyB5MikgLyAyXG4gICAgICAgIHZhciB4MjMgICA9ICh4MiArIHgzKSAvIDJcbiAgICAgICAgdmFyIHkyMyAgID0gKHkyICsgeTMpIC8gMlxuICAgICAgICB2YXIgeDM0ICAgPSAoeDMgKyB4NCkgLyAyXG4gICAgICAgIHZhciB5MzQgICA9ICh5MyArIHk0KSAvIDJcbiAgICAgICAgdmFyIHgxMjMgID0gKHgxMiArIHgyMykgLyAyXG4gICAgICAgIHZhciB5MTIzICA9ICh5MTIgKyB5MjMpIC8gMlxuICAgICAgICB2YXIgeDIzNCAgPSAoeDIzICsgeDM0KSAvIDJcbiAgICAgICAgdmFyIHkyMzQgID0gKHkyMyArIHkzNCkgLyAyXG4gICAgICAgIHZhciB4MTIzNCA9ICh4MTIzICsgeDIzNCkgLyAyXG4gICAgICAgIHZhciB5MTIzNCA9ICh5MTIzICsgeTIzNCkgLyAyXG5cbiAgICAgICAgaWYobGV2ZWwgPiAwKSB7IC8vIEVuZm9yY2Ugc3ViZGl2aXNpb24gZmlyc3QgdGltZVxuICAgICAgICAgICAgLy8gVHJ5IHRvIGFwcHJveGltYXRlIHRoZSBmdWxsIGN1YmljIGN1cnZlIGJ5IGEgc2luZ2xlIHN0cmFpZ2h0IGxpbmVcbiAgICAgICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICB2YXIgZHggPSB4NC14MVxuICAgICAgICAgICAgdmFyIGR5ID0geTQteTFcblxuICAgICAgICAgICAgdmFyIGQyID0gTWF0aC5hYnMoKHgyIC0geDQpICogZHkgLSAoeTIgLSB5NCkgKiBkeClcbiAgICAgICAgICAgIHZhciBkMyA9IE1hdGguYWJzKCh4MyAtIHg0KSAqIGR5IC0gKHkzIC0geTQpICogZHgpXG5cbiAgICAgICAgICAgIHZhciBkYTEsIGRhMlxuXG4gICAgICAgICAgICBpZihkMiA+IEZMVF9FUFNJTE9OICYmIGQzID4gRkxUX0VQU0lMT04pIHtcbiAgICAgICAgICAgICAgICAvLyBSZWd1bGFyIGNhcmVcbiAgICAgICAgICAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAgICAgaWYoKGQyICsgZDMpKihkMiArIGQzKSA8PSBkaXN0YW5jZVRvbGVyYW5jZSAqIChkeCpkeCArIGR5KmR5KSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgY3VydmF0dXJlIGRvZXNuJ3QgZXhjZWVkIHRoZSBkaXN0YW5jZVRvbGVyYW5jZSB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICAvLyB3ZSB0ZW5kIHRvIGZpbmlzaCBzdWJkaXZpc2lvbnMuXG4gICAgICAgICAgICAgICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgICAgICAgICBpZihtX2FuZ2xlX3RvbGVyYW5jZSA8IGN1cnZlX2FuZ2xlX3RvbGVyYW5jZV9lcHNpbG9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb2ludHMucHVzaCh2ZWMyKHgxMjM0LCB5MTIzNCkpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC8vIEFuZ2xlICYgQ3VzcCBDb25kaXRpb25cbiAgICAgICAgICAgICAgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAgICAgICAgIHZhciBhMjMgPSBNYXRoLmF0YW4yKHkzIC0geTIsIHgzIC0geDIpXG4gICAgICAgICAgICAgICAgICAgIGRhMSA9IE1hdGguYWJzKGEyMyAtIE1hdGguYXRhbjIoeTIgLSB5MSwgeDIgLSB4MSkpXG4gICAgICAgICAgICAgICAgICAgIGRhMiA9IE1hdGguYWJzKE1hdGguYXRhbjIoeTQgLSB5MywgeDQgLSB4MykgLSBhMjMpXG4gICAgICAgICAgICAgICAgICAgIGlmKGRhMSA+PSBwaSkgZGExID0gMipwaSAtIGRhMVxuICAgICAgICAgICAgICAgICAgICBpZihkYTIgPj0gcGkpIGRhMiA9IDIqcGkgLSBkYTJcblxuICAgICAgICAgICAgICAgICAgICBpZihkYTEgKyBkYTIgPCBtX2FuZ2xlX3RvbGVyYW5jZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmluYWxseSB3ZSBjYW4gc3RvcCB0aGUgcmVjdXJzaW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50cy5wdXNoKHZlYzIoeDEyMzQsIHkxMjM0KSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYobV9jdXNwX2xpbWl0ICE9PSAwLjApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGRhMSA+IG1fY3VzcF9saW1pdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50cy5wdXNoKHZlYzIoeDIsIHkyKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYoZGEyID4gbV9jdXNwX2xpbWl0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnRzLnB1c2godmVjMih4MywgeTMpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYoZDIgPiBGTFRfRVBTSUxPTikge1xuICAgICAgICAgICAgICAgICAgICAvLyBwMSxwMyxwNCBhcmUgY29sbGluZWFyLCBwMiBpcyBjb25zaWRlcmFibGVcbiAgICAgICAgICAgICAgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAgICAgICAgIGlmKGQyICogZDIgPD0gZGlzdGFuY2VUb2xlcmFuY2UgKiAoZHgqZHggKyBkeSpkeSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKG1fYW5nbGVfdG9sZXJhbmNlIDwgY3VydmVfYW5nbGVfdG9sZXJhbmNlX2Vwc2lsb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2ludHMucHVzaCh2ZWMyKHgxMjM0LCB5MTIzNCkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFuZ2xlIENvbmRpdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAgICAgICAgICAgICBkYTEgPSBNYXRoLmFicyhNYXRoLmF0YW4yKHkzIC0geTIsIHgzIC0geDIpIC0gTWF0aC5hdGFuMih5MiAtIHkxLCB4MiAtIHgxKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGRhMSA+PSBwaSkgZGExID0gMipwaSAtIGRhMVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZihkYTEgPCBtX2FuZ2xlX3RvbGVyYW5jZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50cy5wdXNoKHZlYzIoeDIsIHkyKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2ludHMucHVzaCh2ZWMyKHgzLCB5MykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKG1fY3VzcF9saW1pdCAhPT0gMC4wKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoZGExID4gbV9jdXNwX2xpbWl0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50cy5wdXNoKHZlYzIoeDIsIHkyKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYoZDMgPiBGTFRfRVBTSUxPTikge1xuICAgICAgICAgICAgICAgICAgICAvLyBwMSxwMixwNCBhcmUgY29sbGluZWFyLCBwMyBpcyBjb25zaWRlcmFibGVcbiAgICAgICAgICAgICAgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAgICAgICAgIGlmKGQzICogZDMgPD0gZGlzdGFuY2VUb2xlcmFuY2UgKiAoZHgqZHggKyBkeSpkeSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKG1fYW5nbGVfdG9sZXJhbmNlIDwgY3VydmVfYW5nbGVfdG9sZXJhbmNlX2Vwc2lsb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2ludHMucHVzaCh2ZWMyKHgxMjM0LCB5MTIzNCkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFuZ2xlIENvbmRpdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAgICAgICAgICAgICBkYTEgPSBNYXRoLmFicyhNYXRoLmF0YW4yKHk0IC0geTMsIHg0IC0geDMpIC0gTWF0aC5hdGFuMih5MyAtIHkyLCB4MyAtIHgyKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGRhMSA+PSBwaSkgZGExID0gMipwaSAtIGRhMVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZihkYTEgPCBtX2FuZ2xlX3RvbGVyYW5jZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50cy5wdXNoKHZlYzIoeDIsIHkyKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2ludHMucHVzaCh2ZWMyKHgzLCB5MykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKG1fY3VzcF9saW1pdCAhPT0gMC4wKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoZGExID4gbV9jdXNwX2xpbWl0KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnRzLnB1c2godmVjMih4MywgeTMpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIENvbGxpbmVhciBjYXNlXG4gICAgICAgICAgICAgICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgICAgICAgICAgZHggPSB4MTIzNCAtICh4MSArIHg0KSAvIDJcbiAgICAgICAgICAgICAgICAgICAgZHkgPSB5MTIzNCAtICh5MSArIHk0KSAvIDJcbiAgICAgICAgICAgICAgICAgICAgaWYoZHgqZHggKyBkeSpkeSA8PSBkaXN0YW5jZVRvbGVyYW5jZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnRzLnB1c2godmVjMih4MTIzNCwgeTEyMzQpKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDb250aW51ZSBzdWJkaXZpc2lvblxuICAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgcmVjdXJzaXZlKHgxLCB5MSwgeDEyLCB5MTIsIHgxMjMsIHkxMjMsIHgxMjM0LCB5MTIzNCwgcG9pbnRzLCBkaXN0YW5jZVRvbGVyYW5jZSwgbGV2ZWwgKyAxKSBcbiAgICAgICAgcmVjdXJzaXZlKHgxMjM0LCB5MTIzNCwgeDIzNCwgeTIzNCwgeDM0LCB5MzQsIHg0LCB5NCwgcG9pbnRzLCBkaXN0YW5jZVRvbGVyYW5jZSwgbGV2ZWwgKyAxKSBcbiAgICB9XG59XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vZnVuY3Rpb24nKSgpIiwiXCJ1c2Ugc3RyaWN0XCJcclxuXHJcbnZhciBhYnMgPSBNYXRoLmFic1xyXG4gICwgbWluID0gTWF0aC5taW5cclxuXHJcbmZ1bmN0aW9uIGFsbW9zdEVxdWFsKGEsIGIsIGFic29sdXRlRXJyb3IsIHJlbGF0aXZlRXJyb3IpIHtcclxuICB2YXIgZCA9IGFicyhhIC0gYilcclxuICBcclxuICBpZiAoYWJzb2x1dGVFcnJvciA9PSBudWxsKSBhYnNvbHV0ZUVycm9yID0gYWxtb3N0RXF1YWwuREJMX0VQU0lMT047XHJcbiAgaWYgKHJlbGF0aXZlRXJyb3IgPT0gbnVsbCkgcmVsYXRpdmVFcnJvciA9IGFic29sdXRlRXJyb3I7XHJcbiAgXHJcbiAgaWYoZCA8PSBhYnNvbHV0ZUVycm9yKSB7XHJcbiAgICByZXR1cm4gdHJ1ZVxyXG4gIH1cclxuICBpZihkIDw9IHJlbGF0aXZlRXJyb3IgKiBtaW4oYWJzKGEpLCBhYnMoYikpKSB7XHJcbiAgICByZXR1cm4gdHJ1ZVxyXG4gIH1cclxuICByZXR1cm4gYSA9PT0gYlxyXG59XHJcblxyXG5hbG1vc3RFcXVhbC5GTFRfRVBTSUxPTiA9IDEuMTkyMDkyOTBlLTdcclxuYWxtb3N0RXF1YWwuREJMX0VQU0lMT04gPSAyLjIyMDQ0NjA0OTI1MDMxMzFlLTE2XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGFsbW9zdEVxdWFsXHJcbiIsInZhciBzdHIgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nXG5cbm1vZHVsZS5leHBvcnRzID0gYW5BcnJheVxuXG5mdW5jdGlvbiBhbkFycmF5KGFycikge1xuICByZXR1cm4gKFxuICAgICAgIGFyci5CWVRFU19QRVJfRUxFTUVOVFxuICAgICYmIHN0ci5jYWxsKGFyci5idWZmZXIpID09PSAnW29iamVjdCBBcnJheUJ1ZmZlcl0nXG4gICAgfHwgQXJyYXkuaXNBcnJheShhcnIpXG4gIClcbn1cbiIsInZhciBpc0FycmF5ID0gcmVxdWlyZSgnYW4tYXJyYXknKVxudmFyIGFsbW9zdCA9IHJlcXVpcmUoJ2FsbW9zdC1lcXVhbCcpXG5cbi8vZGV0ZXJtaW5lcyB3aGV0aGVyIHR3byBhcnJheXMgYXJlIGFsbW9zdCBlcXVhbFxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihhLCBiLCBhYnNvbHV0ZVRvbGVyYW5jZSwgcmVsYXRpdmVUb2xlcmFuY2UpIHtcbiAgICAvL3dpbGwgYWNjZXB0IHR5cGVkIGFycmF5c1xuICAgIGlmICghYSB8fCAhYiB8fCAhaXNBcnJheShhKSB8fCAhaXNBcnJheShiKSlcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgaWYgKGEubGVuZ3RoICE9PSBiLmxlbmd0aClcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgaWYgKHR5cGVvZiBhYnNvbHV0ZVRvbGVyYW5jZSAhPT0gJ251bWJlcicpXG4gICAgICAgIGFic29sdXRlVG9sZXJhbmNlID0gYWxtb3N0LkZMVF9FUFNJTE9OXG4gICAgaWYgKHR5cGVvZiByZWxhdGl2ZVRvbGVyYW5jZSAhPT0gJ251bWJlcicpXG4gICAgICAgIHJlbGF0aXZlVG9sZXJhbmNlID0gYWJzb2x1dGVUb2xlcmFuY2VcblxuICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhKS5ldmVyeShmdW5jdGlvbihhMCwgaSkge1xuICAgICAgICB2YXIgYjAgPSBiW2ldXG4gICAgICAgIHJldHVybiBhMCA9PT0gYjAgfHwgYWxtb3N0KGEwLCBiMCwgYWJzb2x1dGVUb2xlcmFuY2UsIHJlbGF0aXZlVG9sZXJhbmNlKVxuICAgIH0pXG59IiwiXCJ1c2Ugc3RyaWN0XCJcblxudmFyIGFicyA9IE1hdGguYWJzXG4gICwgbWluID0gTWF0aC5taW5cblxuZnVuY3Rpb24gYWxtb3N0RXF1YWwoYSwgYiwgYWJzb2x1dGVFcnJvciwgcmVsYXRpdmVFcnJvcikge1xuICB2YXIgZCA9IGFicyhhIC0gYilcbiAgaWYoZCA8PSBhYnNvbHV0ZUVycm9yKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuICBpZihkIDw9IHJlbGF0aXZlRXJyb3IgKiBtaW4oYWJzKGEpLCBhYnMoYikpKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuICByZXR1cm4gYSA9PT0gYlxufVxuXG5hbG1vc3RFcXVhbC5GTFRfRVBTSUxPTiA9IDEuMTkyMDkyOTBlLTdcbmFsbW9zdEVxdWFsLkRCTF9FUFNJTE9OID0gMi4yMjA0NDYwNDkyNTAzMTMxZS0xNlxuXG5tb2R1bGUuZXhwb3J0cyA9IGFsbW9zdEVxdWFsXG4iLCJ2YXIgbGluZWNsaXAgPSByZXF1aXJlKCdsaW5lY2xpcCcpO1xudmFyIGFsbW9zdEVxdWFsID0gcmVxdWlyZSgnYWxtb3N0LWVxdWFsJyk7XG52YXIgYXJyYXlBbG1vc3RFcXVhbCA9IHJlcXVpcmUoJ2FycmF5LWFsbW9zdC1lcXVhbCcpO1xudmFyIGNsb25lID0gcmVxdWlyZSgnY2xvbmUnKTtcbnZhciBzcXVhcmVkRGlzdGFuY2UgPSByZXF1aXJlKCcuL2xpYi92ZWMyJykuc3F1YXJlZERpc3RhbmNlO1xuXG5tb2R1bGUuZXhwb3J0cy5hcmVQb2ludHNDb2xsaW5lYXIgPSBmdW5jdGlvbiAocG9pbnQwLCBwb2ludDEsIHBvaW50Mikge1xuICB2YXIgeDAgPSBwb2ludDBbMF07XG4gIHZhciB5MCA9IHBvaW50MFsxXTtcbiAgdmFyIHgxID0gcG9pbnQxWzBdO1xuICB2YXIgeTEgPSBwb2ludDFbMV07XG4gIHZhciB4MiA9IHBvaW50MlswXTtcbiAgdmFyIHkyID0gcG9pbnQyWzFdO1xuICByZXR1cm4gYWxtb3N0RXF1YWwoKHkwIC0geTEpICogKHgwIC0geDIpLCAoeTAgLSB5MikgKiAoeDAgLSB4MSkpO1xufTtcblxubW9kdWxlLmV4cG9ydHMucmVtb3ZlRHVwbGljYXRlUG9pbnRzID0gZnVuY3Rpb24gKHBhdGgpIHtcbiAgdmFyIG5ld1BhdGggPSBbXTtcbiAgdmFyIGxhc3RQb2ludDtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYXRoLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGN1clBvaW50ID0gcGF0aFtpXTtcbiAgICBpZiAoIWxhc3RQb2ludCB8fCAhYXJyYXlBbG1vc3RFcXVhbChsYXN0UG9pbnQsIGN1clBvaW50KSkge1xuICAgICAgbmV3UGF0aC5wdXNoKGN1clBvaW50KTtcbiAgICAgIGxhc3RQb2ludCA9IGN1clBvaW50O1xuICAgIH1cbiAgfVxuICByZXR1cm4gY2xvbmUobmV3UGF0aCk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cy5yZW1vdmVDb2xsaW5lYXJQb2ludHMgPSBmdW5jdGlvbiAocGF0aCkge1xuICB2YXIgbmV3UGF0aCA9IFtdO1xuICB2YXIgcmVtYWluaW5nUG9pbnRzID0gY2xvbmUocGF0aCk7XG4gIHdoaWxlIChyZW1haW5pbmdQb2ludHMubGVuZ3RoID49IDMpIHtcbiAgICB2YXIgcDAgPSByZW1haW5pbmdQb2ludHNbMF07XG4gICAgdmFyIHAxID0gcmVtYWluaW5nUG9pbnRzWzFdO1xuICAgIHZhciBwMiA9IHJlbWFpbmluZ1BvaW50c1syXTtcbiAgICB2YXIgY29sbGluZWFyID0gbW9kdWxlLmV4cG9ydHMuYXJlUG9pbnRzQ29sbGluZWFyKHAwLCBwMSwgcDIpO1xuICAgIC8vIG9uZSBtb3JlIGNoZWNrIGlzIHRvIGVuc3VyZSB0aGF0IHBvaW50cyBhcmUgaW4gYSBsaW5lOlxuICAgIC8vIEEtPkItPkNcbiAgICAvLyBub3QgQS0+Qy0+QiBvciBzb21lIHZhcmlhbnRcbiAgICBpZiAoY29sbGluZWFyKSB7XG4gICAgICB2YXIgZGlzdEFCID0gc3F1YXJlZERpc3RhbmNlKHAwLCBwMSk7XG4gICAgICB2YXIgZGlzdEFDID0gc3F1YXJlZERpc3RhbmNlKHAwLCBwMik7XG4gICAgICBpZiAoZGlzdEFCID4gZGlzdEFDKSBjb2xsaW5lYXIgPSBmYWxzZTtcbiAgICB9XG4gICAgaWYgKGNvbGxpbmVhcikge1xuICAgICAgLy8gdGhlIGZpcnN0IDMgcG9pbnRzIGFyZSBjb2xsaW5lYXJcbiAgICAgIC8vIHJlbW92ZSB0aGUgc2Vjb25kIHBvaW50IGFzIGl0IGlzbid0IG5lZWRlZFxuICAgICAgcmVtYWluaW5nUG9pbnRzLnNwbGljZSgxLCAxKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gdGhlIDMgcG9pbnRzIGFyZSBub3QgY29sbGluZWFyXG4gICAgICAvLyBhZGQgdGhlIGZpcnN0IG9uZSBhcyB0aGUgb3RoZXJzIG1heSBzdGlsbCBiZSBjb2xsaW5lYXJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTsgaSsrKSB7XG4gICAgICAgIG5ld1BhdGgucHVzaChyZW1haW5pbmdQb2ludHMuc2hpZnQoKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8vIGFkZCBhbnkgcmVtYWluaW5nIHBvaW50c1xuICB3aGlsZSAocmVtYWluaW5nUG9pbnRzLmxlbmd0aCkge1xuICAgIG5ld1BhdGgucHVzaChyZW1haW5pbmdQb2ludHMuc2hpZnQoKSk7XG4gIH1cbiAgcmV0dXJuIG5ld1BhdGg7XG59O1xuXG5tb2R1bGUuZXhwb3J0cy5jbGlwU2VnbWVudFRvQ2lyY2xlID0gcmVxdWlyZSgnLi9saWIvY2xpcC9jbGlwLXNlZ21lbnQtdG8tY2lyY2xlJyk7XG5tb2R1bGUuZXhwb3J0cy5jbGlwTGluZVRvQ2lyY2xlID0gcmVxdWlyZSgnLi9saWIvY2xpcC9jbGlwLWxpbmUtdG8tY2lyY2xlJyk7XG5cbm1vZHVsZS5leHBvcnRzLmNsaXBQb2x5bGluZXNUb0JveCA9IGZ1bmN0aW9uIChwb2x5bGluZXMsIGJib3gsIGJvcmRlciwgY2xvc2VMaW5lcykge1xuICBpZiAoIUFycmF5LmlzQXJyYXkoYmJveCkgfHwgKGJib3gubGVuZ3RoICE9PSAyICYmIGJib3gubGVuZ3RoICE9PSA0KSkge1xuICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgYm94IHRvIGVpdGhlciBiZSBmb3JtYXQgWyBtaW5Qb2ludCwgbWF4UG9pbnQgXSBvciBbIG1pblgsIG1pblksIG1heFgsIG1heFkgXScpO1xuICB9XG4gIC8vIEV4cGFuZCBuZXN0ZWQgZm9ybWF0IHRvIGZsYXQgYm91bmRzXG4gIGlmIChiYm94Lmxlbmd0aCA9PT0gMikge1xuICAgIHZhciBtaW4gPSBiYm94WzBdO1xuICAgIHZhciBtYXggPSBiYm94WzFdO1xuICAgIGJib3ggPSBbIG1pblswXSwgbWluWzFdLCBtYXhbMF0sIG1heFsxXSBdO1xuICB9XG4gIGNsb3NlTGluZXMgPSBjbG9zZUxpbmVzICE9PSBmYWxzZTtcbiAgYm9yZGVyID0gQm9vbGVhbihib3JkZXIpO1xuXG4gIGlmIChib3JkZXIpIHtcbiAgICByZXR1cm4gcG9seWxpbmVzLm1hcChmdW5jdGlvbiAobGluZSkge1xuICAgICAgdmFyIHJlc3VsdCA9IGxpbmVjbGlwLnBvbHlnb24obGluZSwgYmJveCk7XG4gICAgICBpZiAoY2xvc2VMaW5lcyAmJiByZXN1bHQubGVuZ3RoID4gMikge1xuICAgICAgICByZXN1bHQucHVzaChyZXN1bHRbMF0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KS5maWx0ZXIoZnVuY3Rpb24gKGxpbmVzKSB7XG4gICAgICByZXR1cm4gbGluZXMubGVuZ3RoID4gMDtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gcG9seWxpbmVzLm1hcChmdW5jdGlvbiAobGluZSkge1xuICAgICAgcmV0dXJuIGxpbmVjbGlwLnBvbHlsaW5lKGxpbmUsIGJib3gpO1xuICAgIH0pLnJlZHVjZShmdW5jdGlvbiAoYSwgYikge1xuICAgICAgcmV0dXJuIGEuY29uY2F0KGIpO1xuICAgIH0sIFtdKTtcbiAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMuY3JlYXRlSGF0Y2hMaW5lcyA9IGNyZWF0ZUhhdGNoTGluZXM7XG5mdW5jdGlvbiBjcmVhdGVIYXRjaExpbmVzIChib3VuZHMsIGFuZ2xlLCBzcGFjaW5nLCBvdXQpIHtcbiAgaWYgKCFBcnJheS5pc0FycmF5KGJvdW5kcykgfHwgKGJvdW5kcy5sZW5ndGggIT09IDIgJiYgYm91bmRzLmxlbmd0aCAhPT0gNCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIGJveCB0byBlaXRoZXIgYmUgZm9ybWF0IFsgbWluUG9pbnQsIG1heFBvaW50IF0gb3IgWyBtaW5YLCBtaW5ZLCBtYXhYLCBtYXhZIF0nKTtcbiAgfVxuICAvLyBFeHBhbmQgbmVzdGVkIGZvcm1hdCB0byBmbGF0IGJvdW5kc1xuICBpZiAoYm91bmRzLmxlbmd0aCA9PT0gMikge1xuICAgIHZhciBtaW4gPSBib3VuZHNbMF07XG4gICAgdmFyIG1heCA9IGJvdW5kc1sxXTtcbiAgICBib3VuZHMgPSBbIG1pblswXSwgbWluWzFdLCBtYXhbMF0sIG1heFsxXSBdO1xuICB9XG5cbiAgaWYgKGFuZ2xlID09IG51bGwpIGFuZ2xlID0gLU1hdGguUEkgLyA0O1xuICBpZiAoc3BhY2luZyA9PSBudWxsKSBzcGFjaW5nID0gMC41O1xuICBpZiAob3V0ID09IG51bGwpIG91dCA9IFtdO1xuXG4gIC8vIFJlZmVyZW5jZTpcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2V2aWwtbWFkL0VnZ0JvdC9ibG9iL21hc3Rlci9pbmtzY2FwZV9kcml2ZXIvZWdnYm90X2hhdGNoLnB5XG4gIHNwYWNpbmcgPSBNYXRoLmFicyhzcGFjaW5nKTtcbiAgaWYgKHNwYWNpbmcgPT09IDApIHRocm93IG5ldyBFcnJvcignY2Fubm90IHVzZSBhIHNwYWNpbmcgb2YgemVybyBhcyBpdCB3aWxsIHJ1biBhbiBpbmZpbml0ZSBsb29wIScpO1xuXG4gIHZhciB4bWluID0gYm91bmRzWzBdO1xuICB2YXIgeW1pbiA9IGJvdW5kc1sxXTtcbiAgdmFyIHhtYXggPSBib3VuZHNbMl07XG4gIHZhciB5bWF4ID0gYm91bmRzWzNdO1xuXG4gIHZhciB3ID0geG1heCAtIHhtaW47XG4gIHZhciBoID0geW1heCAtIHltaW47XG4gIGlmICh3ID09PSAwIHx8IGggPT09IDApIHJldHVybiBvdXQ7XG4gIHZhciByID0gTWF0aC5zcXJ0KHcgKiB3ICsgaCAqIGgpIC8gMjtcbiAgdmFyIHJvdEFuZ2xlID0gTWF0aC5QSSAvIDIgLSBhbmdsZTtcbiAgdmFyIGNhID0gTWF0aC5jb3Mocm90QW5nbGUpO1xuICB2YXIgc2EgPSBNYXRoLnNpbihyb3RBbmdsZSk7XG4gIHZhciBjeCA9IHhtaW4gKyAodyAvIDIpO1xuICB2YXIgY3kgPSB5bWluICsgKGggLyAyKTtcbiAgdmFyIGkgPSAtcjtcbiAgd2hpbGUgKGkgPD0gcikge1xuICAgIC8vIExpbmUgc3RhcnRzIGF0IChpLCAtcikgYW5kIGdvZXMgdG8gKGksICtyKVxuICAgIHZhciB4MSA9IGN4ICsgKGkgKiBjYSkgKyAociAqIHNhKTsgLy8gIGkgKiBjYSAtICgtcikgKiBzYVxuICAgIHZhciB5MSA9IGN5ICsgKGkgKiBzYSkgLSAociAqIGNhKTsgLy8gIGkgKiBzYSArICgtcikgKiBjYVxuICAgIHZhciB4MiA9IGN4ICsgKGkgKiBjYSkgLSAociAqIHNhKTsgLy8gIGkgKiBjYSAtICgrcikgKiBzYVxuICAgIHZhciB5MiA9IGN5ICsgKGkgKiBzYSkgKyAociAqIGNhKTsgLy8gIGkgKiBzYSArICgrcikgKiBjYVxuICAgIGkgKz0gc3BhY2luZztcbiAgICAvLyBSZW1vdmUgYW55IHBvdGVudGlhbCBoYXRjaCBsaW5lcyB3aGljaCBhcmUgZW50aXJlbHlcbiAgICAvLyBvdXRzaWRlIG9mIHRoZSBib3VuZGluZyBib3hcbiAgICBpZiAoKHgxIDwgeG1pbiAmJiB4MiA8IHhtaW4pIHx8ICh4MSA+IHhtYXggJiYgeDIgPiB4bWF4KSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmICgoeTEgPCB5bWluICYmIHkyIDwgeW1pbikgfHwgKHkxID4geW1heCAmJiB5MiA+IHltYXgpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgb3V0LnB1c2goWyBbIHgxLCB5MSBdLCBbIHgyLCB5MiBdIF0pO1xuICB9XG4gIHJldHVybiBvdXQ7XG59XG5cbm1vZHVsZS5leHBvcnRzLmdldEJvdW5kcyA9IGZ1bmN0aW9uIGdldEJvdW5kcyAocG9pbnRzKSB7XG4gIHZhciBuID0gcG9pbnRzLmxlbmd0aDtcbiAgaWYgKG4gPT09IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIHBvaW50cyB0byBiZSBhIG5vbi1lbXB0eSBhcnJheScpO1xuICB9XG4gIHZhciBkID0gcG9pbnRzWzBdLmxlbmd0aDtcbiAgdmFyIGxvID0gcG9pbnRzWzBdLnNsaWNlKCk7XG4gIHZhciBoaSA9IHBvaW50c1swXS5zbGljZSgpO1xuICBmb3IgKHZhciBpID0gMTsgaSA8IG47ICsraSkge1xuICAgIHZhciBwID0gcG9pbnRzW2ldO1xuICAgIGZvciAodmFyIGogPSAwOyBqIDwgZDsgKytqKSB7XG4gICAgICB2YXIgeCA9IHBbal07XG4gICAgICBsb1tqXSA9IE1hdGgubWluKGxvW2pdLCB4KTtcbiAgICAgIGhpW2pdID0gTWF0aC5tYXgoaGlbal0sIHgpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gWyBsbywgaGkgXTtcbn07XG4iLCJ2YXIgYWxtb3N0RXF1YWwgPSByZXF1aXJlKCdhbG1vc3QtZXF1YWwnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBpbnRlcnNlY3RMaW5lQ2lyY2xlO1xuZnVuY3Rpb24gaW50ZXJzZWN0TGluZUNpcmNsZSAocDAsIHAxLCBjaXJjbGUsIGNpcmNsZVJhZGl1cywgaGl0cykge1xuICBpZiAoaGl0cyA9PSBudWxsKSBoaXRzID0gW107XG4gIHZhciBhID0gc3FyKHAxWzBdIC0gcDBbMF0pICsgc3FyKHAxWzFdIC0gcDBbMV0pO1xuICB2YXIgYiA9IDIuMCAqIChcbiAgICAocDFbMF0gLSBwMFswXSkgKiAocDBbMF0gLSBjaXJjbGVbMF0pICtcbiAgICAocDFbMV0gLSBwMFsxXSkgKiAocDBbMV0gLSBjaXJjbGVbMV0pXG4gICk7XG5cbiAgdmFyIGMgPSBzcXIoY2lyY2xlWzBdKSArIHNxcihjaXJjbGVbMV0pICsgc3FyKHAwWzBdKSArXG4gICAgc3FyKHAwWzFdKSAtIDIgKiAoY2lyY2xlWzBdICogcDBbMF0gKyBjaXJjbGVbMV0gKiBwMFsxXSkgLVxuICAgIHNxcihjaXJjbGVSYWRpdXMpO1xuXG4gIHZhciBkZXQgPSBiICogYiAtIDQuMCAqIGEgKiBjO1xuICB2YXIgZGVsdGE7XG4gIGlmIChkZXQgPCAwKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9IGVsc2UgaWYgKGFsbW9zdEVxdWFsKGRldCwgMC4wKSkge1xuICAgIGRlbHRhID0gLWIgLyAoMi4wICogYSk7XG4gICAgaGl0cy5wdXNoKFtcbiAgICAgIHAwWzBdICsgZGVsdGEgKiAocDFbMF0gLSBwMFswXSksXG4gICAgICBwMFsxXSArIGRlbHRhICogKHAxWzFdIC0gcDBbMV0pXG4gICAgXSk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gZWxzZSBpZiAoZGV0ID4gMC4wKSB7XG4gICAgdmFyIHNxcnREZXQgPSBNYXRoLnNxcnQoZGV0KTtcbiAgICBkZWx0YSA9ICgtYiArIHNxcnREZXQpIC8gKDIuMCAqIGEpO1xuXG4gICAgaGl0cy5wdXNoKFtcbiAgICAgIHAwWzBdICsgZGVsdGEgKiAocDFbMF0gLSBwMFswXSksXG4gICAgICBwMFsxXSArIGRlbHRhICogKHAxWzFdIC0gcDBbMV0pXG4gICAgXSk7XG5cbiAgICBkZWx0YSA9ICgtYiAtIHNxcnREZXQpIC8gKDIuMCAqIGEpO1xuICAgIGhpdHMucHVzaChbXG4gICAgICBwMFswXSArIGRlbHRhICogKHAxWzBdIC0gcDBbMF0pLFxuICAgICAgcDBbMV0gKyBkZWx0YSAqIChwMVsxXSAtIHAwWzFdKVxuICAgIF0pO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiBzcXIgKGEpIHtcbiAgcmV0dXJuIGEgKiBhO1xufVxuIiwidmFyIGFsbW9zdEVxdWFsID0gcmVxdWlyZSgnYWxtb3N0LWVxdWFsJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gaW50ZXJzZWN0U2VnbWVudENpcmNsZTtcbmZ1bmN0aW9uIGludGVyc2VjdFNlZ21lbnRDaXJjbGUgKHAwLCBwMSwgY2lyY2xlLCBjaXJjbGVSYWRpdXMsIGhpdHMpIHtcbiAgcmV0dXJuIGludGVyc2VjdChwMFswXSwgcDBbMV0sIHAxWzBdLCBwMVsxXSwgY2lyY2xlWzBdLCBjaXJjbGVbMV0sIGNpcmNsZVJhZGl1cywgaGl0cyk7XG59XG5cbmZ1bmN0aW9uIGludGVyc2VjdCAoeDEsIHkxLCB4MiwgeTIsIGN4LCBjeSwgcmFkaXVzLCBoaXRzKSB7XG4gIGlmIChoaXRzID09IG51bGwpIGhpdHMgPSBbXTtcbiAgdmFyIHAxSW5DaXJjbGUgPSBwb2ludEluQ2lyY2xlKHgxLCB5MSwgY3gsIGN5LCByYWRpdXMpO1xuICB2YXIgcDJJbkNpcmNsZSA9IHBvaW50SW5DaXJjbGUoeDIsIHkyLCBjeCwgY3ksIHJhZGl1cyk7XG5cbiAgaWYgKHAxSW5DaXJjbGUgJiYgcDJJbkNpcmNsZSkge1xuICAgIGhpdHMucHVzaChbIHgxLCB5MSBdKTtcbiAgICBoaXRzLnB1c2goWyB4MiwgeTIgXSk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICB2YXIgaCwgYSwgY2xvc2VzdFBvaW50LCBweCwgcHk7XG4gIGlmIChwMUluQ2lyY2xlIHx8IHAySW5DaXJjbGUpIHtcbiAgICBjbG9zZXN0UG9pbnQgPSBjbG9zZXN0UG9pbnRPbkxpbmVGcm9tUG9pbnQoeDEsIHkxLCB4MiwgeTIsIGN4LCBjeSk7XG4gICAgcHggPSBjbG9zZXN0UG9pbnRbMF07XG4gICAgcHkgPSBjbG9zZXN0UG9pbnRbMV07XG4gICAgaCA9IGRpc3RhbmNlKHB4LCBweSwgY3gsIGN5KTtcbiAgICBhID0gTWF0aC5zcXJ0KChyYWRpdXMgKiByYWRpdXMpIC0gKGggKiBoKSk7XG4gICAgdmFyIGhpdEEgPSBwMUluQ2lyY2xlID8gWyB4MSwgeTEgXSA6IFsgeDIsIHkyIF07XG4gICAgdmFyIGhpdEIgPSBwMUluQ2lyY2xlID8gcHJvamVjdFBvaW50KHB4LCBweSwgeDIsIHkyLCBhKSA6IHByb2plY3RQb2ludChweCwgcHksIHgxLCB5MSwgYSk7XG4gICAgaWYgKGFsbW9zdEVxdWFsKGhpdEFbMF0sIGhpdEJbMF0pICYmIGFsbW9zdEVxdWFsKGhpdEFbMV0sIGhpdEJbMV0pKSB7XG4gICAgICAvLyBPbmUgcG9pbnQgaW4gdGhlIHNlZ21lbnQgbGllcyBvbiB0aGUgY2lyY2xlLCB0aGUgb3RoZXIgaXMgb3V0c2lkZVxuICAgICAgaGl0cy5wdXNoKGhpdEEpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGhpdHMucHVzaChoaXRBKTtcbiAgICBoaXRzLnB1c2goaGl0Qik7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBjbG9zZXN0UG9pbnQgPSBjbG9zZXN0UG9pbnRPblNlZ21lbnRGcm9tUG9pbnQoeDEsIHkxLCB4MiwgeTIsIGN4LCBjeSk7XG4gIHB4ID0gY2xvc2VzdFBvaW50WzBdO1xuICBweSA9IGNsb3Nlc3RQb2ludFsxXTtcblxuICBpZiAoKGFsbW9zdEVxdWFsKHgxLCBweCkgJiYgYWxtb3N0RXF1YWwoeTEsIHB5KSkgfHxcbiAgICAgIChhbG1vc3RFcXVhbCh4MiwgcHgpICYmIGFsbW9zdEVxdWFsKHkyLCBweSkpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9IGVsc2Uge1xuICAgIGggPSBkaXN0YW5jZShweCwgcHksIGN4LCBjeSk7XG4gICAgaWYgKGggPiByYWRpdXMpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKGFsbW9zdEVxdWFsKGgsIHJhZGl1cykpIHtcbiAgICAgIGhpdHMucHVzaChbIHB4LCBweSBdKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSBpZiAoYWxtb3N0RXF1YWwoaCwgMC4wKSkge1xuICAgICAgaGl0cy5wdXNoKHByb2plY3RQb2ludChjeCwgY3ksIHgxLCB5MSwgcmFkaXVzKSk7XG4gICAgICBoaXRzLnB1c2gocHJvamVjdFBvaW50KGN4LCBjeSwgeDIsIHkyLCByYWRpdXMpKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBhID0gTWF0aC5zcXJ0KChyYWRpdXMgKiByYWRpdXMpIC0gKGggKiBoKSk7XG4gICAgICBoaXRzLnB1c2gocHJvamVjdFBvaW50KHB4LCBweSwgeDEsIHkxLCBhKSk7XG4gICAgICBoaXRzLnB1c2gocHJvamVjdFBvaW50KHB4LCBweSwgeDIsIHkyLCBhKSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gbGF5RGlzdGFuY2UgKHgxLCB5MSwgeDIsIHkyKSB7XG4gIHZhciBkeCA9ICh4MiAtIHgxKTtcbiAgdmFyIGR5ID0gKHkyIC0geTEpO1xuICByZXR1cm4gZHggKiBkeCArIGR5ICogZHk7XG59XG5cbmZ1bmN0aW9uIHBvaW50SW5DaXJjbGUgKHB4LCBweSwgY3gsIGN5LCByYWRpdXMpIHtcbiAgcmV0dXJuIGxheURpc3RhbmNlKHB4LCBweSwgY3gsIGN5KSA8PSAocmFkaXVzICogcmFkaXVzKTtcbn1cblxuZnVuY3Rpb24gZGlzdGFuY2UgKHgxLCB5MSwgeDIsIHkyKSB7XG4gIHZhciBkeCA9ICh4MSAtIHgyKTtcbiAgdmFyIGR5ID0gKHkxIC0geTIpO1xuICByZXR1cm4gTWF0aC5zcXJ0KGR4ICogZHggKyBkeSAqIGR5KTtcbn1cblxuZnVuY3Rpb24gcHJvamVjdFBvaW50IChzcmN4LCBzcmN5LCBkZXN0eCwgZGVzdHksIGRpc3QpIHtcbiAgdmFyIHQgPSBkaXN0IC8gZGlzdGFuY2Uoc3JjeCwgc3JjeSwgZGVzdHgsIGRlc3R5KTtcbiAgcmV0dXJuIFtcbiAgICBzcmN4ICsgdCAqIChkZXN0eCAtIHNyY3gpLFxuICAgIHNyY3kgKyB0ICogKGRlc3R5IC0gc3JjeSlcbiAgXTtcbn1cblxuZnVuY3Rpb24gY2xvc2VzdFBvaW50T25MaW5lRnJvbVBvaW50ICh4MSwgeTEsIHgyLCB5MiwgcHgsIHB5KSB7XG4gIHZhciB2eCA9IHgyIC0geDE7XG4gIHZhciB2eSA9IHkyIC0geTE7XG4gIHZhciB3eCA9IHB4IC0geDE7XG4gIHZhciB3eSA9IHB5IC0geTE7XG4gIHZhciBjMSA9IHZ4ICogd3ggKyB2eSAqIHd5O1xuICB2YXIgYzIgPSB2eCAqIHZ4ICsgdnkgKiB2eTtcbiAgdmFyIHJhdGlvID0gYzEgLyBjMjtcbiAgcmV0dXJuIFtcbiAgICB4MSArIHJhdGlvICogdngsXG4gICAgeTEgKyByYXRpbyAqIHZ5XG4gIF07XG59XG5cbmZ1bmN0aW9uIGNsb3Nlc3RQb2ludE9uU2VnbWVudEZyb21Qb2ludCAoeDEsIHkxLCB4MiwgeTIsIHB4LCBweSkge1xuICB2YXIgdnggPSB4MiAtIHgxO1xuICB2YXIgdnkgPSB5MiAtIHkxO1xuICB2YXIgd3ggPSBweCAtIHgxO1xuICB2YXIgd3kgPSBweSAtIHkxO1xuXG4gIHZhciBjMSA9IHZ4ICogd3ggKyB2eSAqIHd5O1xuXG4gIGlmIChjMSA8PSAwLjApIHtcbiAgICByZXR1cm4gWyB4MSwgeTEgXTtcbiAgfVxuXG4gIHZhciBjMiA9IHZ4ICogdnggKyB2eSAqIHZ5O1xuICBpZiAoYzIgPD0gYzEpIHtcbiAgICByZXR1cm4gWyB4MiwgeTIgXTtcbiAgfVxuXG4gIHZhciByYXRpbyA9IGMxIC8gYzI7XG4gIHJldHVybiBbXG4gICAgeDEgKyByYXRpbyAqIHZ4LFxuICAgIHkxICsgcmF0aW8gKiB2eVxuICBdO1xufVxuIiwiLy8gSSBiZWxpZXZlIHRoaXMgd2FzIG9yaWdpbmFsbHkgd3JpdHRlbiBieSBUYXlsb3IgQmFsZHdpbiAoQHRheWxvcmJhbGR3aW4gLyBAcm9seWF0bWF4KVxuLy8gSWYgdGhhdCBpcyBtaXNjcmVkaXRlZCBwbGVhc2Ugb3BlbiBhbiBpc3N1ZS5cblxudmFyIGNsb25lID0gcmVxdWlyZSgnY2xvbmUnKTtcbnZhciBzcXVhcmVkRGlzdGFuY2UgPSByZXF1aXJlKCcuL3ZlYzInKS5zcXVhcmVkRGlzdGFuY2U7XG5cbm1vZHVsZS5leHBvcnRzLnNvcnQgPSBmdW5jdGlvbiBzb3J0IChwYXRocykge1xuICBwYXRocyA9IGNsb25lKHBhdGhzKTtcblxuICBpZiAoIXBhdGhzLmxlbmd0aCkgcmV0dXJuIHBhdGhzO1xuXG4gIHZhciBuZXdQYXRocyA9IFtdO1xuICBuZXdQYXRocy5wdXNoKHBhdGhzWzBdKTtcblxuICBwYXRocyA9IHBhdGhzLnNsaWNlKDEpO1xuXG4gIHdoaWxlIChwYXRocy5sZW5ndGgpIHtcbiAgICB2YXIgbGFzdFBhdGggPSBuZXdQYXRoc1tuZXdQYXRocy5sZW5ndGggLSAxXTtcbiAgICB2YXIgY3VyUHQgPSBsYXN0UGF0aFtsYXN0UGF0aC5sZW5ndGggLSAxXTtcbiAgICB2YXIgcmVzdWx0ID0gcGF0aHMucmVkdWNlKGZ1bmN0aW9uIChjbG9zZXN0LCBwYXRoLCBpKSB7XG4gICAgICB2YXIgZmlyc3RQdCA9IHBhdGhbMF07XG4gICAgICB2YXIgbGFzdFB0ID0gcGF0aFtwYXRoLmxlbmd0aCAtIDFdO1xuICAgICAgdmFyIGRpc3RhbmNlVG9GaXJzdCA9IHNxdWFyZWREaXN0YW5jZShjdXJQdCwgZmlyc3RQdCk7XG4gICAgICB2YXIgZGlzdGFuY2VUb0xhc3QgPSBzcXVhcmVkRGlzdGFuY2UoY3VyUHQsIGxhc3RQdCk7XG4gICAgICBpZiAoIWNsb3Nlc3QpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBpZHg6IGksXG4gICAgICAgICAgZGlzdGFuY2U6IE1hdGgubWluKGRpc3RhbmNlVG9GaXJzdCwgZGlzdGFuY2VUb0xhc3QpLFxuICAgICAgICAgIHJldmVyc2U6IGRpc3RhbmNlVG9MYXN0IDwgZGlzdGFuY2VUb0ZpcnN0XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBpZiAoZGlzdGFuY2VUb0ZpcnN0IDwgY2xvc2VzdC5kaXN0YW5jZSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGlkeDogaSxcbiAgICAgICAgICBkaXN0YW5jZTogZGlzdGFuY2VUb0ZpcnN0LFxuICAgICAgICAgIHJldmVyc2U6IGZhbHNlXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBpZiAoZGlzdGFuY2VUb0xhc3QgPCBjbG9zZXN0LmRpc3RhbmNlKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaWR4OiBpLFxuICAgICAgICAgIGRpc3RhbmNlOiBkaXN0YW5jZVRvTGFzdCxcbiAgICAgICAgICByZXZlcnNlOiB0cnVlXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gY2xvc2VzdDtcbiAgICB9LCBudWxsKTtcbiAgICB2YXIgaWR4ID0gcmVzdWx0LmlkeDtcbiAgICB2YXIgcmV2ZXJzZSA9IHJlc3VsdC5yZXZlcnNlO1xuICAgIHZhciBjbG9zZXN0UGF0aCA9IHBhdGhzLnNwbGljZShpZHgsIDEpWzBdLnNsaWNlKCk7XG4gICAgaWYgKHJldmVyc2UpIHtcbiAgICAgIGNsb3Nlc3RQYXRoLnJldmVyc2UoKTtcbiAgICB9XG4gICAgbmV3UGF0aHMucHVzaChjbG9zZXN0UGF0aCk7XG4gIH1cbiAgcmV0dXJuIG5ld1BhdGhzO1xufTtcblxubW9kdWxlLmV4cG9ydHMubWVyZ2UgPSBmdW5jdGlvbiBtZXJnZSAocGF0aHMsIG1lcmdlVGhyZWhzb2xkKSB7XG4gIG1lcmdlVGhyZWhzb2xkID0gbWVyZ2VUaHJlaHNvbGQgIT0gbnVsbCA/IG1lcmdlVGhyZWhzb2xkIDogMC4wNTtcblxuICB2YXIgbWVyZ2VUaHJlaHNvbGRTcSA9IG1lcmdlVGhyZWhzb2xkICogbWVyZ2VUaHJlaHNvbGQ7XG4gIHBhdGhzID0gY2xvbmUocGF0aHMpO1xuICBmb3IgKHZhciBpID0gMTsgaSA8IHBhdGhzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGxhc3RQYXRoID0gcGF0aHNbaSAtIDFdO1xuICAgIHZhciBjdXJQYXRoID0gcGF0aHNbaV07XG4gICAgaWYgKHNxdWFyZWREaXN0YW5jZShjdXJQYXRoWzBdLCBsYXN0UGF0aFtsYXN0UGF0aC5sZW5ndGggLSAxXSkgPCBtZXJnZVRocmVoc29sZFNxKSB7XG4gICAgICBwYXRocyA9IG1lcmdlUGF0aHMocGF0aHMsIGkgLSAxLCBpKTtcbiAgICAgIGkgLT0gMTsgLy8gbm93IHRoYXQgd2UndmUgbWVyZ2VkLCB2YXIncyBjb3JyZWN0IGkgZm9yIHRoZSBuZXh0IHJvdW5kXG4gICAgfVxuICB9XG4gIHJldHVybiBwYXRocztcbn07XG5cbmZ1bmN0aW9uIG1lcmdlUGF0aHMgKHBhdGhzLCBwYXRoMUlkeCwgcGF0aDJJZHgpIHtcbiAgLy8gdGhpcyB3aWxsIGhlbHAgdXMga2VlcCB0aGluZ3MgaW4gb3JkZXIgd2hlbiB3ZSBkbyB0aGUgc3BsaWNpbmdcbiAgdmFyIG1pbklkeCA9IE1hdGgubWluKHBhdGgxSWR4LCBwYXRoMklkeCk7XG4gIHZhciBtYXhJZHggPSBNYXRoLm1heChwYXRoMUlkeCwgcGF0aDJJZHgpO1xuICBwYXRocyA9IHBhdGhzLnNsaWNlKCk7XG4gIHZhciBwYXRoMSA9IHBhdGhzW21pbklkeF07XG4gIHZhciBwYXRoMiA9IHBhdGhzW21heElkeF07XG4gIHZhciBtZXJnZWRQYXRoID0gcGF0aDEuY29uY2F0KHBhdGgyLnNsaWNlKDEpKTtcbiAgcGF0aHMuc3BsaWNlKG1heElkeCwgMSk7XG4gIHBhdGhzLnNwbGljZShtaW5JZHgsIDEsIG1lcmdlZFBhdGgpO1xuICByZXR1cm4gcGF0aHM7XG59XG5cbi8vIHRoaXMgaXMgdGhlIGRpc3RhbmNlIGJldHdlZW4gcGF0aHMgLSBmcm9tIHRoZSBlbmQgb2YgcGF0aCAxIHRvIHRoZSBzdGFydCBvZiBwYXRoIDJcbi8vIGZ1bmN0aW9uIGdldFRyYXZlbGluZ0Rpc3RhbmNlIChwYXRocykge1xuLy8gICB2YXIgdG90YWwgPSAwO1xuLy8gICB2YXIgbGFzdFB0ID0gcGF0aHNbMF1bcGF0aHNbMF0ubGVuZ3RoIC0gMV07XG4vLyAgIGZvciAodmFyIHBhdGggb2YgcGF0aHMuc2xpY2UoMSkpIHtcbi8vICAgICB2YXIgc3F1YXJlZERpc3QgPSBzcXVhcmVkRGlzdGFuY2UobGFzdFB0LCBwYXRoWzBdKTtcbi8vICAgICB0b3RhbCArPSBNYXRoLnNxcnQoc3F1YXJlZERpc3QpO1xuLy8gICAgIGxhc3RQdCA9IHBhdGhbcGF0aC5sZW5ndGggLSAxXTtcbi8vICAgfVxuLy8gICByZXR1cm4gdG90YWw7XG4vLyB9XG4iLCJtb2R1bGUuZXhwb3J0cy5zcXVhcmVkRGlzdGFuY2UgPSBzcXVhcmVkRGlzdGFuY2U7XG5mdW5jdGlvbiBzcXVhcmVkRGlzdGFuY2UgKHB0MSwgcHQyKSB7XG4gIHZhciBkeCA9IHB0MlswXSAtIHB0MVswXTtcbiAgdmFyIGR5ID0gcHQyWzFdIC0gcHQxWzFdO1xuICByZXR1cm4gZHggKiBkeCArIGR5ICogZHk7XG59XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHdyYXA7XG5mdW5jdGlvbiB3cmFwICh2YWx1ZSwgZnJvbSwgdG8pIHtcbiAgaWYgKHR5cGVvZiBmcm9tICE9PSAnbnVtYmVyJyB8fCB0eXBlb2YgdG8gIT09ICdudW1iZXInKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignTXVzdCBzcGVjaWZ5IFwidG9cIiBhbmQgXCJmcm9tXCIgYXJndW1lbnRzIGFzIG51bWJlcnMnKTtcbiAgfVxuICAvLyBhbGdvcml0aG0gZnJvbSBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vYS81ODUyNjI4LzU5OTg4NFxuICBpZiAoZnJvbSA+IHRvKSB7XG4gICAgdmFyIHQgPSBmcm9tO1xuICAgIGZyb20gPSB0bztcbiAgICB0byA9IHQ7XG4gIH1cbiAgdmFyIGN5Y2xlID0gdG8gLSBmcm9tO1xuICBpZiAoY3ljbGUgPT09IDApIHtcbiAgICByZXR1cm4gdG87XG4gIH1cbiAgcmV0dXJuIHZhbHVlIC0gY3ljbGUgKiBNYXRoLmZsb29yKCh2YWx1ZSAtIGZyb20pIC8gY3ljbGUpO1xufVxuIiwidmFyIGRlZmluZWQgPSByZXF1aXJlKCdkZWZpbmVkJyk7XG52YXIgd3JhcCA9IHJlcXVpcmUoJy4vbGliL3dyYXAnKTtcbnZhciBFUFNJTE9OID0gTnVtYmVyLkVQU0lMT047XG5cbmZ1bmN0aW9uIGNsYW1wICh2YWx1ZSwgbWluLCBtYXgpIHtcbiAgcmV0dXJuIG1pbiA8IG1heFxuICAgID8gKHZhbHVlIDwgbWluID8gbWluIDogdmFsdWUgPiBtYXggPyBtYXggOiB2YWx1ZSlcbiAgICA6ICh2YWx1ZSA8IG1heCA/IG1heCA6IHZhbHVlID4gbWluID8gbWluIDogdmFsdWUpO1xufVxuXG5mdW5jdGlvbiBjbGFtcDAxICh2KSB7XG4gIHJldHVybiBjbGFtcCh2LCAwLCAxKTtcbn1cblxuZnVuY3Rpb24gbGVycCAobWluLCBtYXgsIHQpIHtcbiAgcmV0dXJuIG1pbiAqICgxIC0gdCkgKyBtYXggKiB0O1xufVxuXG5mdW5jdGlvbiBpbnZlcnNlTGVycCAobWluLCBtYXgsIHQpIHtcbiAgaWYgKE1hdGguYWJzKG1pbiAtIG1heCkgPCBFUFNJTE9OKSByZXR1cm4gMDtcbiAgZWxzZSByZXR1cm4gKHQgLSBtaW4pIC8gKG1heCAtIG1pbik7XG59XG5cbmZ1bmN0aW9uIHNtb290aHN0ZXAgKG1pbiwgbWF4LCB0KSB7XG4gIHZhciB4ID0gY2xhbXAoaW52ZXJzZUxlcnAobWluLCBtYXgsIHQpLCAwLCAxKTtcbiAgcmV0dXJuIHggKiB4ICogKDMgLSAyICogeCk7XG59XG5cbmZ1bmN0aW9uIHRvRmluaXRlIChuLCBkZWZhdWx0VmFsdWUpIHtcbiAgZGVmYXVsdFZhbHVlID0gZGVmaW5lZChkZWZhdWx0VmFsdWUsIDApO1xuICByZXR1cm4gdHlwZW9mIG4gPT09ICdudW1iZXInICYmIGlzRmluaXRlKG4pID8gbiA6IGRlZmF1bHRWYWx1ZTtcbn1cblxuZnVuY3Rpb24gZXhwYW5kVmVjdG9yIChkaW1zKSB7XG4gIGlmICh0eXBlb2YgZGltcyAhPT0gJ251bWJlcicpIHRocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIGRpbXMgYXJndW1lbnQnKTtcbiAgcmV0dXJuIGZ1bmN0aW9uIChwLCBkZWZhdWx0VmFsdWUpIHtcbiAgICBkZWZhdWx0VmFsdWUgPSBkZWZpbmVkKGRlZmF1bHRWYWx1ZSwgMCk7XG4gICAgdmFyIHNjYWxhcjtcbiAgICBpZiAocCA9PSBudWxsKSB7XG4gICAgICAvLyBObyB2ZWN0b3IsIGNyZWF0ZSBhIGRlZmF1bHQgb25lXG4gICAgICBzY2FsYXIgPSBkZWZhdWx0VmFsdWU7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgcCA9PT0gJ251bWJlcicgJiYgaXNGaW5pdGUocCkpIHtcbiAgICAgIC8vIEV4cGFuZCBzaW5nbGUgY2hhbm5lbCB0byBtdWx0aXBsZSB2ZWN0b3JcbiAgICAgIHNjYWxhciA9IHA7XG4gICAgfVxuXG4gICAgdmFyIG91dCA9IFtdO1xuICAgIHZhciBpO1xuICAgIGlmIChzY2FsYXIgPT0gbnVsbCkge1xuICAgICAgZm9yIChpID0gMDsgaSA8IGRpbXM7IGkrKykge1xuICAgICAgICBvdXRbaV0gPSB0b0Zpbml0ZShwW2ldLCBkZWZhdWx0VmFsdWUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGkgPSAwOyBpIDwgZGltczsgaSsrKSB7XG4gICAgICAgIG91dFtpXSA9IHNjYWxhcjtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG91dDtcbiAgfTtcbn1cblxuZnVuY3Rpb24gbGVycEFycmF5IChtaW4sIG1heCwgdCwgb3V0KSB7XG4gIG91dCA9IG91dCB8fCBbXTtcbiAgaWYgKG1pbi5sZW5ndGggIT09IG1heC5sZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdtaW4gYW5kIG1heCBhcnJheSBhcmUgZXhwZWN0ZWQgdG8gaGF2ZSB0aGUgc2FtZSBsZW5ndGgnKTtcbiAgfVxuICBmb3IgKHZhciBpID0gMDsgaSA8IG1pbi5sZW5ndGg7IGkrKykge1xuICAgIG91dFtpXSA9IGxlcnAobWluW2ldLCBtYXhbaV0sIHQpO1xuICB9XG4gIHJldHVybiBvdXQ7XG59XG5cbmZ1bmN0aW9uIG5ld0FycmF5IChuLCBpbml0aWFsVmFsdWUpIHtcbiAgbiA9IGRlZmluZWQobiwgMCk7XG4gIGlmICh0eXBlb2YgbiAhPT0gJ251bWJlcicpIHRocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIG4gYXJndW1lbnQgdG8gYmUgYSBudW1iZXInKTtcbiAgdmFyIG91dCA9IFtdO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IG47IGkrKykgb3V0LnB1c2goaW5pdGlhbFZhbHVlKTtcbiAgcmV0dXJuIG91dDtcbn1cblxuZnVuY3Rpb24gbGluc3BhY2UgKG4sIG9wdHMpIHtcbiAgbiA9IGRlZmluZWQobiwgMCk7XG4gIGlmICh0eXBlb2YgbiAhPT0gJ251bWJlcicpIHRocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIG4gYXJndW1lbnQgdG8gYmUgYSBudW1iZXInKTtcbiAgb3B0cyA9IG9wdHMgfHwge307XG4gIGlmICh0eXBlb2Ygb3B0cyA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgb3B0cyA9IHsgZW5kcG9pbnQ6IHRydWUgfTtcbiAgfVxuICB2YXIgb2Zmc2V0ID0gZGVmaW5lZChvcHRzLm9mZnNldCwgMCk7XG4gIGlmIChvcHRzLmVuZHBvaW50KSB7XG4gICAgcmV0dXJuIG5ld0FycmF5KG4pLm1hcChmdW5jdGlvbiAoXywgaSkge1xuICAgICAgcmV0dXJuIG4gPD0gMSA/IDAgOiAoKGkgKyBvZmZzZXQpIC8gKG4gLSAxKSk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG5ld0FycmF5KG4pLm1hcChmdW5jdGlvbiAoXywgaSkge1xuICAgICAgcmV0dXJuIChpICsgb2Zmc2V0KSAvIG47XG4gICAgfSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gbGVycEZyYW1lcyAodmFsdWVzLCB0LCBvdXQpIHtcbiAgdCA9IGNsYW1wKHQsIDAsIDEpO1xuXG4gIHZhciBsZW4gPSB2YWx1ZXMubGVuZ3RoIC0gMTtcbiAgdmFyIHdob2xlID0gdCAqIGxlbjtcbiAgdmFyIGZyYW1lID0gTWF0aC5mbG9vcih3aG9sZSk7XG4gIHZhciBmcmFjdCA9IHdob2xlIC0gZnJhbWU7XG5cbiAgdmFyIG5leHRGcmFtZSA9IE1hdGgubWluKGZyYW1lICsgMSwgbGVuKTtcbiAgdmFyIGEgPSB2YWx1ZXNbZnJhbWUgJSB2YWx1ZXMubGVuZ3RoXTtcbiAgdmFyIGIgPSB2YWx1ZXNbbmV4dEZyYW1lICUgdmFsdWVzLmxlbmd0aF07XG4gIGlmICh0eXBlb2YgYSA9PT0gJ251bWJlcicgJiYgdHlwZW9mIGIgPT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIGxlcnAoYSwgYiwgZnJhY3QpO1xuICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoYSkgJiYgQXJyYXkuaXNBcnJheShiKSkge1xuICAgIHJldHVybiBsZXJwQXJyYXkoYSwgYiwgZnJhY3QsIG91dCk7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignTWlzbWF0Y2ggaW4gdmFsdWUgdHlwZSBvZiB0d28gYXJyYXkgZWxlbWVudHM6ICcgKyBmcmFtZSArICcgYW5kICcgKyBuZXh0RnJhbWUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIG1vZCAoYSwgYikge1xuICByZXR1cm4gKChhICUgYikgKyBiKSAlIGI7XG59XG5cbmZ1bmN0aW9uIGRlZ1RvUmFkIChuKSB7XG4gIHJldHVybiBuICogTWF0aC5QSSAvIDE4MDtcbn1cblxuZnVuY3Rpb24gcmFkVG9EZWcgKG4pIHtcbiAgcmV0dXJuIG4gKiAxODAgLyBNYXRoLlBJO1xufVxuXG5mdW5jdGlvbiBmcmFjdCAobikge1xuICByZXR1cm4gbiAtIE1hdGguZmxvb3Iobik7XG59XG5cbmZ1bmN0aW9uIHNpZ24gKG4pIHtcbiAgaWYgKG4gPiAwKSByZXR1cm4gMTtcbiAgZWxzZSBpZiAobiA8IDApIHJldHVybiAtMTtcbiAgZWxzZSByZXR1cm4gMDtcbn1cblxuLy8gU3BlY2lmaWMgZnVuY3Rpb24gZnJvbSBVbml0eSAvIG9mTWF0aCwgbm90IHN1cmUgaXRzIG5lZWRlZD9cbi8vIGZ1bmN0aW9uIGxlcnBXcmFwIChhLCBiLCB0LCBtaW4sIG1heCkge1xuLy8gICByZXR1cm4gd3JhcChhICsgd3JhcChiIC0gYSwgbWluLCBtYXgpICogdCwgbWluLCBtYXgpXG4vLyB9XG5cbmZ1bmN0aW9uIHBpbmdQb25nICh0LCBsZW5ndGgpIHtcbiAgdCA9IG1vZCh0LCBsZW5ndGggKiAyKTtcbiAgcmV0dXJuIGxlbmd0aCAtIE1hdGguYWJzKHQgLSBsZW5ndGgpO1xufVxuXG5mdW5jdGlvbiBkYW1wIChhLCBiLCBsYW1iZGEsIGR0KSB7XG4gIHJldHVybiBsZXJwKGEsIGIsIDEgLSBNYXRoLmV4cCgtbGFtYmRhICogZHQpKTtcbn1cblxuZnVuY3Rpb24gZGFtcEFycmF5IChhLCBiLCBsYW1iZGEsIGR0LCBvdXQpIHtcbiAgb3V0ID0gb3V0IHx8IFtdO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGEubGVuZ3RoOyBpKyspIHtcbiAgICBvdXRbaV0gPSBkYW1wKGFbaV0sIGJbaV0sIGxhbWJkYSwgZHQpO1xuICB9XG4gIHJldHVybiBvdXQ7XG59XG5cbmZ1bmN0aW9uIG1hcFJhbmdlICh2YWx1ZSwgaW5wdXRNaW4sIGlucHV0TWF4LCBvdXRwdXRNaW4sIG91dHB1dE1heCwgY2xhbXApIHtcbiAgLy8gUmVmZXJlbmNlOlxuICAvLyBodHRwczovL29wZW5mcmFtZXdvcmtzLmNjL2RvY3VtZW50YXRpb24vbWF0aC9vZk1hdGgvXG4gIGlmIChNYXRoLmFicyhpbnB1dE1pbiAtIGlucHV0TWF4KSA8IEVQU0lMT04pIHtcbiAgICByZXR1cm4gb3V0cHV0TWluO1xuICB9IGVsc2Uge1xuICAgIHZhciBvdXRWYWwgPSAoKHZhbHVlIC0gaW5wdXRNaW4pIC8gKGlucHV0TWF4IC0gaW5wdXRNaW4pICogKG91dHB1dE1heCAtIG91dHB1dE1pbikgKyBvdXRwdXRNaW4pO1xuICAgIGlmIChjbGFtcCkge1xuICAgICAgaWYgKG91dHB1dE1heCA8IG91dHB1dE1pbikge1xuICAgICAgICBpZiAob3V0VmFsIDwgb3V0cHV0TWF4KSBvdXRWYWwgPSBvdXRwdXRNYXg7XG4gICAgICAgIGVsc2UgaWYgKG91dFZhbCA+IG91dHB1dE1pbikgb3V0VmFsID0gb3V0cHV0TWluO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKG91dFZhbCA+IG91dHB1dE1heCkgb3V0VmFsID0gb3V0cHV0TWF4O1xuICAgICAgICBlbHNlIGlmIChvdXRWYWwgPCBvdXRwdXRNaW4pIG91dFZhbCA9IG91dHB1dE1pbjtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG91dFZhbDtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbW9kOiBtb2QsXG4gIGZyYWN0OiBmcmFjdCxcbiAgc2lnbjogc2lnbixcbiAgZGVnVG9SYWQ6IGRlZ1RvUmFkLFxuICByYWRUb0RlZzogcmFkVG9EZWcsXG4gIHdyYXA6IHdyYXAsXG4gIHBpbmdQb25nOiBwaW5nUG9uZyxcbiAgbGluc3BhY2U6IGxpbnNwYWNlLFxuICBsZXJwOiBsZXJwLFxuICBsZXJwQXJyYXk6IGxlcnBBcnJheSxcbiAgaW52ZXJzZUxlcnA6IGludmVyc2VMZXJwLFxuICBsZXJwRnJhbWVzOiBsZXJwRnJhbWVzLFxuICBjbGFtcDogY2xhbXAsXG4gIGNsYW1wMDE6IGNsYW1wMDEsXG4gIHNtb290aHN0ZXA6IHNtb290aHN0ZXAsXG4gIGRhbXA6IGRhbXAsXG4gIGRhbXBBcnJheTogZGFtcEFycmF5LFxuICBtYXBSYW5nZTogbWFwUmFuZ2UsXG4gIGV4cGFuZDJEOiBleHBhbmRWZWN0b3IoMiksXG4gIGV4cGFuZDNEOiBleHBhbmRWZWN0b3IoMyksXG4gIGV4cGFuZDREOiBleHBhbmRWZWN0b3IoNClcbn07XG4iLCJ2YXIgZGVmaW5lZCA9IHJlcXVpcmUoJ2RlZmluZWQnKTtcbnZhciBjb252ZXJ0ID0gcmVxdWlyZSgnY29udmVydC1sZW5ndGgnKTtcbnZhciBkMyA9IHJlcXVpcmUoJ2QzLXBhdGgnKTtcbnZhciBzdmdQYXRoQ29udG91cnMgPSByZXF1aXJlKCdzdmctcGF0aC1jb250b3VycycpO1xudmFyIHN2Z1BhdGhQYXJzZSA9IHJlcXVpcmUoJ3BhcnNlLXN2Zy1wYXRoJyk7XG52YXIgc3ZnUGF0aEFicyA9IHJlcXVpcmUoJ2Ficy1zdmctcGF0aCcpO1xudmFyIHN2Z1BhdGhBcmNzID0gcmVxdWlyZSgnbm9ybWFsaXplLXN2Zy1wYXRoJyk7XG52YXIgb3B0aW1pemVyID0gcmVxdWlyZSgnLi9saWIvb3B0aW1pemUtcGVucGxvdC1wYXRocycpO1xudmFyIGdlb21ldHJ5ID0gcmVxdWlyZSgnLi9nZW9tZXRyeScpO1xuXG52YXIgREVGQVVMVF9QRU5fVEhJQ0tORVNTID0gMC4wMztcbnZhciBERUZBVUxUX1BFTl9USElDS05FU1NfVU5JVCA9ICdjbSc7XG52YXIgREVGQVVMVF9QSVhFTFNfUEVSX0lOQ0ggPSA5MDtcblxuLy8gQSBQYXRoIGhlbHBlciBmb3IgYXJjcywgY3VydmVzIGFuZCBsaW5lVG8gY29tbWFuZHNcbm1vZHVsZS5leHBvcnRzLmNyZWF0ZVBhdGggPSBjcmVhdGVQYXRoO1xuZnVuY3Rpb24gY3JlYXRlUGF0aCAoZm4pIHtcbiAgdmFyIHBhdGggPSBkMy5wYXRoKCk7XG4gIGlmICh0eXBlb2YgZm4gPT09ICdmdW5jdGlvbicpIGZuKHBhdGgpO1xuICBwYXRoLmxpbmVUbyA9IHdyYXAocGF0aC5saW5lVG8pO1xuICBwYXRoLnF1YWRyYXRpY0N1cnZlVG8gPSB3cmFwKHBhdGgucXVhZHJhdGljQ3VydmVUbyk7XG4gIHBhdGguYmV6aWVyQ3VydmVUbyA9IHdyYXAocGF0aC5iZXppZXJDdXJ2ZVRvKTtcbiAgcmV0dXJuIHBhdGg7XG5cbiAgLy8gUGF0Y2ggYSBidWcgaW4gZDMtcGF0aCB0aGF0IGRvZXNuJ3QgaGFuZGxlXG4gIC8vIGxpbmVUbyBhbmQgc28gb24gd2l0aG91dCBhbiBpbml0aWFsIG1vdmVUb1xuICBmdW5jdGlvbiB3cmFwIChmbikge1xuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7XG4gICAgICBpZiAocGF0aC5feDEgPT0gbnVsbCAmJiBwYXRoLl95MSA9PSBudWxsKSB7XG4gICAgICAgIHBhdGgubW92ZVRvKGFyZ3NbMF0sIGFyZ3NbMV0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZuLmFwcGx5KHBhdGgsIGFyZ3MpO1xuICAgIH07XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMucGF0aHNUb1NWR1BhdGhzID0gcGF0aHNUb1NWR1BhdGhzO1xuZnVuY3Rpb24gcGF0aHNUb1NWR1BhdGhzIChpbnB1dHMsIG9wdCkge1xuICBvcHQgPSBvcHQgfHwge307XG5cbiAgdmFyIHN2Z1BhdGggPSBjb252ZXJ0VG9TVkdQYXRoKGlucHV0cywgb3B0KTtcbiAgdmFyIHN2Z1BhdGhzID0gQXJyYXkuaXNBcnJheShzdmdQYXRoKSA/IHN2Z1BhdGggOiBbIHN2Z1BhdGggXTtcbiAgcmV0dXJuIHN2Z1BhdGhzLmZpbHRlcihCb29sZWFuKTtcbn1cblxubW9kdWxlLmV4cG9ydHMucGF0aHNUb1BvbHlsaW5lcyA9IHBhdGhzVG9Qb2x5bGluZXM7XG5mdW5jdGlvbiBwYXRoc1RvUG9seWxpbmVzIChpbnB1dHMsIG9wdCkge1xuICBvcHQgPSBvcHQgfHwge307XG5cbiAgdmFyIHNjYWxlO1xuICBpZiAob3B0LmN1cnZlUmVzb2x1dGlvbiAhPSBudWxsICYmIGlzRmluaXRlKG9wdC5jdXJ2ZVJlc29sdXRpb24pICYmIHR5cGVvZiBvcHQuY3VydmVSZXNvbHV0aW9uID09PSAnbnVtYmVyJykge1xuICAgIHNjYWxlID0gb3B0LmN1cnZlUmVzb2x1dGlvbjtcbiAgfSBlbHNlIHtcbiAgICB2YXIgdW5pdHMgPSBvcHQudW5pdHMgfHwgJ3B4JztcbiAgICBzY2FsZSA9IE1hdGgubWF4KDEsIGNvbnZlcnQoNCwgdW5pdHMsICdweCcpKTtcbiAgfVxuXG4gIHZhciBjb250b3VycyA9IFtdO1xuICBlYWNoUGF0aChpbnB1dHMsIGZ1bmN0aW9uIChmZWF0dXJlKSB7XG4gICAgaWYgKHR5cGVvZiBmZWF0dXJlID09PSAnc3RyaW5nJykge1xuICAgICAgdmFyIGNvbW1hbmRzID0gc3ZnUGF0aFBhcnNlKGZlYXR1cmUpO1xuICAgICAgdmFyIHN1YkNvbnRvdXJzID0gc3ZnUGF0aENvbnRvdXJzKGNvbW1hbmRzLCBzY2FsZSk7XG4gICAgICBzdWJDb250b3Vycy5mb3JFYWNoKGZ1bmN0aW9uIChzdWJDb250b3VyKSB7XG4gICAgICAgIGNvbnRvdXJzLnB1c2goc3ViQ29udG91cik7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gb3V0cHV0IG9ubHkgMkQgcG9seWxpbmVzXG4gICAgICB2YXIgcG9seWxpbmUgPSBmZWF0dXJlLm1hcChmdW5jdGlvbiAocG9pbnQpIHtcbiAgICAgICAgcmV0dXJuIFsgcG9pbnRbMF0gfHwgMCwgcG9pbnRbMV0gfHwgMCBdO1xuICAgICAgfSk7XG4gICAgICBjb250b3Vycy5wdXNoKHBvbHlsaW5lKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gY29udG91cnM7XG59XG5cbm1vZHVsZS5leHBvcnRzLnBhdGhzVG9TVkcgPSBwYXRoc1RvU1ZHO1xuZnVuY3Rpb24gcGF0aHNUb1NWRyAoaW5wdXRzLCBvcHQpIHtcbiAgb3B0ID0gb3B0IHx8IHt9O1xuXG4gIHZhciB3aWR0aCA9IG9wdC53aWR0aDtcbiAgdmFyIGhlaWdodCA9IG9wdC5oZWlnaHQ7XG5cbiAgdmFyIGNvbXB1dGVCb3VuZHMgPSB0eXBlb2Ygd2lkdGggPT09ICd1bmRlZmluZWQnIHx8IHR5cGVvZiBoZWlnaHQgPT09ICd1bmRlZmluZWQnO1xuICBpZiAoY29tcHV0ZUJvdW5kcykge1xuICAgIHRocm93IG5ldyBFcnJvcignTXVzdCBzcGVjaWZ5IFwid2lkdGhcIiBhbmQgXCJoZWlnaHRcIiBvcHRpb25zJyk7XG4gIH1cblxuICB2YXIgdmlld1VuaXRzID0gJ3B4JztcbiAgdmFyIHVuaXRzID0gb3B0LnVuaXRzIHx8IHZpZXdVbml0cztcblxuICB2YXIgY29udmVydE9wdGlvbnMgPSB7XG4gICAgdW5pdHM6IHVuaXRzLFxuICAgIHZpZXdVbml0czogJ3B4JyxcbiAgICByb3VuZFBpeGVsOiBmYWxzZSxcbiAgICBwcmVjaXNpb246IGRlZmluZWQob3B0LnByZWNpc2lvbiwgNSksXG4gICAgcGl4ZWxzUGVySW5jaDogREVGQVVMVF9QSVhFTFNfUEVSX0lOQ0hcbiAgfTtcblxuICAvLyBDb252ZXJ0IGFsbCBTVkdQYXRocy9wYXRocy9ldGMgdG8gcG9seWxpbmVzXG4gIC8vIFRoaXMgd29uJ3QgY2hhbmdlIHRoZWlyIHVuaXRzIHNvIHRoZXkgYXJlIHN0aWxsIGluIHVzZXIgc3BhY2VcbiAgaW5wdXRzID0gcGF0aHNUb1BvbHlsaW5lcyhpbnB1dHMsIE9iamVjdC5hc3NpZ24oe30sIGNvbnZlcnRPcHRpb25zLCB7XG4gICAgY3VydmVSZXNvbHV0aW9uOiBvcHQuY3VydmVSZXNvbHV0aW9uIHx8IHVuZGVmaW5lZFxuICB9KSk7XG5cbiAgLy8gVE9ETzogYWxsb3cgZm9yICdyZXBlYXQnIG9wdGlvblxuICBpZiAob3B0Lm9wdGltaXplKSB7XG4gICAgdmFyIG9wdGltaXplT3B0cyA9IHR5cGVvZiBvcHQub3B0aW1pemUgPT09ICdvYmplY3QnID8gb3B0Lm9wdGltaXplIDoge1xuICAgICAgc29ydDogdHJ1ZSxcbiAgICAgIG1lcmdlOiB0cnVlLFxuICAgICAgcmVtb3ZlRHVwbGljYXRlczogdHJ1ZSxcbiAgICAgIHJlbW92ZUNvbGxpbmVhcjogdHJ1ZVxuICAgIH07XG4gICAgdmFyIHNob3VsZFNvcnQgPSBvcHRpbWl6ZU9wdHMuc29ydCAhPT0gZmFsc2U7XG4gICAgdmFyIHNob3VsZE1lcmdlID0gb3B0aW1pemVPcHRzLm1lcmdlICE9PSBmYWxzZTtcbiAgICB2YXIgc2hvdWxkUmVtb3ZlRHVwbGljYXRlID0gb3B0aW1pemVPcHRzLnJlbW92ZUR1cGxpY2F0ZXMgIT09IGZhbHNlO1xuICAgIHZhciBzaG91bGRSZW1vdmVDb2xsaW5lYXIgPSBvcHRpbWl6ZU9wdHMucmVtb3ZlQ29sbGluZWFyICE9PSBmYWxzZTtcbiAgICBpZiAoc2hvdWxkUmVtb3ZlRHVwbGljYXRlKSB7XG4gICAgICBpbnB1dHMgPSBpbnB1dHMubWFwKGZ1bmN0aW9uIChsaW5lKSB7XG4gICAgICAgIHJldHVybiBnZW9tZXRyeS5yZW1vdmVEdXBsaWNhdGVQb2ludHMobGluZSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKHNob3VsZFJlbW92ZUNvbGxpbmVhcikge1xuICAgICAgaW5wdXRzID0gaW5wdXRzLm1hcChmdW5jdGlvbiAobGluZSkge1xuICAgICAgICByZXR1cm4gZ2VvbWV0cnkucmVtb3ZlQ29sbGluZWFyUG9pbnRzKGxpbmUpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIC8vIG5vdyBkbyBzb3J0aW5nICYgbWVyZ2luZ1xuICAgIGlmIChzaG91bGRTb3J0KSBpbnB1dHMgPSBvcHRpbWl6ZXIuc29ydChpbnB1dHMpO1xuICAgIGlmIChzaG91bGRNZXJnZSkge1xuICAgICAgdmFyIG1lcmdlVGhyZXNob2xkID0gb3B0aW1pemVPcHRzLm1lcmdlVGhyZXNob2xkICE9IG51bGxcbiAgICAgICAgPyBvcHRpbWl6ZU9wdHMubWVyZ2VUaHJlc2hvbGRcbiAgICAgICAgOiBjb252ZXJ0KDAuMjUsICdtbScsIHVuaXRzLCB7XG4gICAgICAgICAgcGl4ZWxzUGVySW5jaDogREVGQVVMVF9QSVhFTFNfUEVSX0lOQ0hcbiAgICAgICAgfSk7XG4gICAgICBpbnB1dHMgPSBvcHRpbWl6ZXIubWVyZ2UoaW5wdXRzLCBtZXJnZVRocmVzaG9sZCk7XG4gICAgfVxuICB9XG5cbiAgLy8gbm93IHdlIGNvbnZlcnQgYWxsIHBvbHlsaW5lcyBpbiB1c2VyIHNwYWNlIHVuaXRzIGludG8gdmlldyB1bml0c1xuICB2YXIgc3ZnUGF0aHMgPSBwYXRoc1RvU1ZHUGF0aHMoaW5wdXRzLCBjb252ZXJ0T3B0aW9ucyk7XG5cbiAgdmFyIHZpZXdXaWR0aCA9IGNvbnZlcnQod2lkdGgsIHVuaXRzLCB2aWV3VW5pdHMsIGNvbnZlcnRPcHRpb25zKS50b1N0cmluZygpO1xuICB2YXIgdmlld0hlaWdodCA9IGNvbnZlcnQoaGVpZ2h0LCB1bml0cywgdmlld1VuaXRzLCBjb252ZXJ0T3B0aW9ucykudG9TdHJpbmcoKTtcbiAgdmFyIGZpbGxTdHlsZSA9IG9wdC5maWxsU3R5bGUgfHwgJ25vbmUnO1xuICB2YXIgc3Ryb2tlU3R5bGUgPSBvcHQuc3Ryb2tlU3R5bGUgfHwgJ2JsYWNrJztcbiAgdmFyIGxpbmVXaWR0aCA9IG9wdC5saW5lV2lkdGg7XG4gIHZhciBsaW5lSm9pbiA9IG9wdC5saW5lSm9pbjtcbiAgdmFyIGxpbmVDYXAgPSBvcHQubGluZUNhcDtcblxuICAvLyBDaG9vc2UgYSBkZWZhdWx0IGxpbmUgd2lkdGggYmFzZWQgb24gYSByZWxhdGl2ZWx5IGZpbmUtdGlwIHBlblxuICBpZiAodHlwZW9mIGxpbmVXaWR0aCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAvLyBDb252ZXJ0IHRvIHVzZXIgdW5pdHNcbiAgICBsaW5lV2lkdGggPSBjb252ZXJ0KERFRkFVTFRfUEVOX1RISUNLTkVTUywgREVGQVVMVF9QRU5fVEhJQ0tORVNTX1VOSVQsIHVuaXRzLCBjb252ZXJ0T3B0aW9ucykudG9TdHJpbmcoKTtcbiAgfVxuXG4gIHZhciBwYXRoRWxlbWVudHMgPSBzdmdQYXRocy5tYXAoZnVuY3Rpb24gKGQpIHtcbiAgICB2YXIgYXR0cnMgPSB0b0F0dHJMaXN0KFtcbiAgICAgIFsgJ2QnLCBkIF1cbiAgICBdKTtcbiAgICByZXR1cm4gJyAgICA8cGF0aCAnICsgYXR0cnMgKyAnIC8+JztcbiAgfSkuam9pbignXFxuJyk7XG5cbiAgdmFyIGdyb3VwQXR0cnMgPSB0b0F0dHJMaXN0KFtcbiAgICBbICdmaWxsJywgZmlsbFN0eWxlIF0sXG4gICAgWyAnc3Ryb2tlJywgc3Ryb2tlU3R5bGUgXSxcbiAgICBbICdzdHJva2Utd2lkdGgnLCBsaW5lV2lkdGggKyAnJyArIHVuaXRzIF0sXG4gICAgbGluZUpvaW4gPyBbICdzdHJva2UtbGluZWpvaW4nLCBsaW5lSm9pbiBdIDogZmFsc2UsXG4gICAgbGluZUNhcCA/IFsgJ3N0cm9rZS1saW5lY2FwJywgbGluZUNhcCBdIDogZmFsc2VcbiAgXSk7XG5cbiAgcmV0dXJuIFtcbiAgICAnPD94bWwgdmVyc2lvbj1cIjEuMFwiIHN0YW5kYWxvbmU9XCJub1wiPz4nLFxuICAgICc8IURPQ1RZUEUgc3ZnIFBVQkxJQyBcIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOXCIgJyxcbiAgICAnICAgIFwiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkXCI+JyxcbiAgICAnPHN2ZyB3aWR0aD1cIicgKyB3aWR0aCArIHVuaXRzICsgJ1wiIGhlaWdodD1cIicgKyBoZWlnaHQgKyB1bml0cyArICdcIicsXG4gICAgJyAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmVyc2lvbj1cIjEuMVwiIHZpZXdCb3g9XCIwIDAgJyArIHZpZXdXaWR0aCArICcgJyArIHZpZXdIZWlnaHQgKyAnXCI+JyxcbiAgICAnICA8ZyAnICsgZ3JvdXBBdHRycyArICc+JyxcbiAgICBwYXRoRWxlbWVudHMsXG4gICAgJyAgPC9nPicsXG4gICAgJzwvc3ZnPidcbiAgXS5qb2luKCdcXG4nKTtcbn1cblxuZnVuY3Rpb24gdG9BdHRyTGlzdCAoYXJncykge1xuICByZXR1cm4gYXJncy5maWx0ZXIoQm9vbGVhbikubWFwKGZ1bmN0aW9uIChhdHRyKSB7XG4gICAgcmV0dXJuIGF0dHJbMF0gKyAnPVwiJyArIGF0dHJbMV0gKyAnXCInO1xuICB9KS5qb2luKCcgJyk7XG59XG5cbm1vZHVsZS5leHBvcnRzLnJlbmRlclBhdGhzID0gcmVuZGVyUGF0aHM7XG5mdW5jdGlvbiByZW5kZXJQYXRocyAoaW5wdXRzLCBvcHQpIHtcbiAgb3B0ID0gb3B0IHx8IHt9O1xuXG4gIHZhciBjb250ZXh0ID0gb3B0LmNvbnRleHQ7XG4gIGlmICghY29udGV4dCkgdGhyb3cgbmV3IEVycm9yKCdNdXN0IHNwZWNpZnkgXCJjb250ZXh0XCIgb3B0aW9ucycpO1xuXG4gIHZhciB1bml0cyA9IG9wdC51bml0cyB8fCAncHgnO1xuXG4gIHZhciB3aWR0aCA9IG9wdC53aWR0aDtcbiAgdmFyIGhlaWdodCA9IG9wdC5oZWlnaHQ7XG4gIGlmICh0eXBlb2Ygd2lkdGggPT09ICd1bmRlZmluZWQnIHx8IHR5cGVvZiBoZWlnaHQgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNdXN0IHNwZWNpZnkgXCJ3aWR0aFwiIGFuZCBcImhlaWdodFwiIG9wdGlvbnMnKTtcbiAgfVxuXG4gIC8vIENob29zZSBhIGRlZmF1bHQgbGluZSB3aWR0aCBiYXNlZCBvbiBhIHJlbGF0aXZlbHkgZmluZS10aXAgcGVuXG4gIHZhciBsaW5lV2lkdGggPSBvcHQubGluZVdpZHRoO1xuICBpZiAodHlwZW9mIGxpbmVXaWR0aCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAvLyBDb252ZXJ0IHRvIHVzZXIgdW5pdHNcbiAgICBsaW5lV2lkdGggPSBjb252ZXJ0KERFRkFVTFRfUEVOX1RISUNLTkVTUywgREVGQVVMVF9QRU5fVEhJQ0tORVNTX1VOSVQsIHVuaXRzLCB7XG4gICAgICByb3VuZFBpeGVsOiBmYWxzZSxcbiAgICAgIHBpeGVsc1BlckluY2g6IERFRkFVTFRfUElYRUxTX1BFUl9JTkNIXG4gICAgfSk7XG4gIH1cblxuICAvLyBDbGVhciBjYW52YXNcbiAgY29udGV4dC5jbGVhclJlY3QoMCwgMCwgd2lkdGgsIGhlaWdodCk7XG5cbiAgLy8gRmlsbCB3aXRoIHdoaXRlXG4gIGNvbnRleHQuZmlsbFN0eWxlID0gb3B0LmJhY2tncm91bmQgfHwgJ3doaXRlJztcbiAgY29udGV4dC5maWxsUmVjdCgwLCAwLCB3aWR0aCwgaGVpZ2h0KTtcblxuICBjb250ZXh0LnN0cm9rZVN0eWxlID0gb3B0LmZvcmVncm91bmQgfHwgb3B0LnN0cm9rZVN0eWxlIHx8ICdibGFjayc7XG4gIGNvbnRleHQubGluZVdpZHRoID0gbGluZVdpZHRoO1xuICBjb250ZXh0LmxpbmVKb2luID0gb3B0LmxpbmVKb2luIHx8ICdtaXRlcic7XG4gIGNvbnRleHQubGluZUNhcCA9IG9wdC5saW5lQ2FwIHx8ICdidXR0JztcblxuICAvLyBEcmF3IGxpbmVzXG4gIGVhY2hQYXRoKGlucHV0cywgZnVuY3Rpb24gKGZlYXR1cmUpIHtcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xuXG4gICAgaWYgKHR5cGVvZiBmZWF0dXJlID09PSAnc3RyaW5nJykge1xuICAgICAgLy8gU1ZHIHN0cmluZyA9IGRyYXdTVkdQYXRoO1xuICAgICAgZHJhd1NWR1BhdGgoY29udGV4dCwgZmVhdHVyZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGxpc3Qgb2YgcG9pbnRzXG4gICAgICBmZWF0dXJlLmZvckVhY2goZnVuY3Rpb24gKHApIHtcbiAgICAgICAgY29udGV4dC5saW5lVG8ocFswXSwgcFsxXSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBjb250ZXh0LnN0cm9rZSgpO1xuICB9KTtcblxuICAvLyBTYXZlIGxheWVyc1xuICByZXR1cm4gW1xuICAgIC8vIEV4cG9ydCBQTkcgYXMgZmlyc3QgbGF5ZXJcbiAgICBjb250ZXh0LmNhbnZhcyxcbiAgICAvLyBFeHBvcnQgU1ZHIGZvciBwZW4gcGxvdHRlciBhcyBzZWNvbmQgbGF5ZXJcbiAgICB7XG4gICAgICBkYXRhOiBwYXRoc1RvU1ZHKGlucHV0cywgb3B0KSxcbiAgICAgIGV4dGVuc2lvbjogJy5zdmcnXG4gICAgfVxuICBdO1xufVxuXG4vLyBOb3QgZG9jdW1lbnRlZC4uLlxubW9kdWxlLmV4cG9ydHMuY29udmVydFRvU1ZHUGF0aCA9IGNvbnZlcnRUb1NWR1BhdGg7XG5mdW5jdGlvbiBjb252ZXJ0VG9TVkdQYXRoIChpbnB1dCwgb3B0KSB7XG4gIC8vIElucHV0IGNhbiBiZSBhIHNpbmdsZSAncGF0aCcgKHN0cmluZywgb2JqZWN0IG9yIHBvbHlsaW5lKSxcbiAgLy8gb3IgbmVzdGVkICdwYXRoJyBlbGVtZW50c1xuXG4gIC8vIG5vbi1wYXRoXG4gIGlmIChpc0VtcHR5KGlucHV0KSkgcmV0dXJuICcnO1xuXG4gIC8vIHN0cmluZ3MgYXJlIGp1c3QgcmV0dXJuZWQgYXMtaXNcbiAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZycpIHJldHVybiBpbnB1dDtcblxuICAvLyBhc3N1bWUgYSBwYXRoIGluc3RhbmNlXG4gIGlmIChpc1BhdGgoaW5wdXQpKSB7XG4gICAgcmV0dXJuIGlucHV0LnRvU3RyaW5nKCk7XG4gIH1cblxuICBpZiAoaXNQb2x5bGluZShpbnB1dCkpIHtcbiAgICByZXR1cm4gcG9seWxpbmVUb1NWR1BhdGgoaW5wdXQsIG9wdCk7XG4gIH1cblxuICAvLyBhc3N1bWUgYSBsaXN0IG9mICdwYXRoJyBmZWF0dXJlcyBvciBhIGxpc3Qgb2YgcG9seWxpbmVzXG4gIGlmIChBcnJheS5pc0FycmF5KGlucHV0KSkge1xuICAgIHJldHVybiBpbnB1dC5tYXAoZnVuY3Rpb24gKGZlYXR1cmUpIHtcbiAgICAgIHJldHVybiBjb252ZXJ0VG9TVkdQYXRoKGZlYXR1cmUsIG9wdCk7XG4gICAgfSkucmVkdWNlKGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICByZXR1cm4gYS5jb25jYXQoYik7XG4gICAgfSwgW10pO1xuICB9XG5cbiAgLy8gV2Fzbid0IGNsZWFyLi4uIGxldCdzIHJldHVybiBhbiBlbXB0eSBwYXRoXG4gIHJldHVybiAnJztcbn1cblxubW9kdWxlLmV4cG9ydHMuZWFjaFBhdGggPSBlYWNoUGF0aDtcbmZ1bmN0aW9uIGVhY2hQYXRoIChpbnB1dCwgY2IpIHtcbiAgaWYgKGlzRW1wdHkoaW5wdXQpKSB7XG4gICAgLy8gcGFzcy10aHJvdWdoXG4gIH0gZWxzZSBpZiAodHlwZW9mIGlucHV0ID09PSAnc3RyaW5nJyB8fCAoaXNQYXRoKGlucHV0KSkpIHtcbiAgICBjYihpbnB1dC50b1N0cmluZygpKTtcbiAgfSBlbHNlIGlmIChpc1BvbHlsaW5lKGlucHV0KSkge1xuICAgIGNiKGlucHV0KTtcbiAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGlucHV0KSkge1xuICAgIGlucHV0LmZvckVhY2goZnVuY3Rpb24gKGZlYXR1cmUpIHtcbiAgICAgIHJldHVybiBlYWNoUGF0aChmZWF0dXJlLCBjYik7XG4gICAgfSk7XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMuZHJhd1NWR1BhdGggPSBkcmF3U1ZHUGF0aDtcbmZ1bmN0aW9uIGRyYXdTVkdQYXRoIChjb250ZXh0LCBzdmdQYXRoKSB7XG4gIHZhciBjb21tYW5kcyA9IHN2Z1BhdGhBcmNzKHN2Z1BhdGhBYnMoc3ZnUGF0aFBhcnNlKHN2Z1BhdGgpKSk7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgY29tbWFuZHMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgYyA9IGNvbW1hbmRzW2ldO1xuICAgIHZhciB0eXBlID0gY1swXTtcbiAgICBpZiAodHlwZSA9PT0gJ00nKSB7XG4gICAgICBjb250ZXh0Lm1vdmVUbyhjWzFdLCBjWzJdKTtcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdDJykge1xuICAgICAgY29udGV4dC5iZXppZXJDdXJ2ZVRvKGNbMV0sIGNbMl0sIGNbM10sIGNbNF0sIGNbNV0sIGNbNl0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0lsbGVnYWwgdHlwZSBcIicgKyB0eXBlICsgJ1wiIGluIFNWRyBjb21tYW5kcycpO1xuICAgIH1cbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cy5wb2x5bGluZVRvU1ZHUGF0aCA9IHBvbHlsaW5lVG9TVkdQYXRoO1xuZnVuY3Rpb24gcG9seWxpbmVUb1NWR1BhdGggKHBvbHlsaW5lLCBvcHQpIHtcbiAgb3B0ID0gb3B0IHx8IHt9O1xuICB2YXIgdW5pdHMgPSBvcHQudW5pdHMgfHwgJ3B4JztcbiAgdmFyIHZpZXdVbml0cyA9IG9wdC52aWV3VW5pdHMgfHwgdW5pdHM7XG4gIHZhciBjb21tYW5kcyA9IFtdO1xuICB2YXIgY29udmVydE9wdGlvbnMgPSB7XG4gICAgcm91bmRQaXhlbDogZmFsc2UsXG4gICAgcHJlY2lzaW9uOiBkZWZpbmVkKG9wdC5wcmVjaXNpb24sIDUpLFxuICAgIHBpeGVsc1BlckluY2g6IERFRkFVTFRfUElYRUxTX1BFUl9JTkNIXG4gIH07XG4gIHBvbHlsaW5lLmZvckVhY2goZnVuY3Rpb24gKHBvaW50LCBqKSB7XG4gICAgdmFyIHR5cGUgPSAoaiA9PT0gMCkgPyAnTScgOiAnTCc7XG4gICAgdmFyIHggPSBjb252ZXJ0KHBvaW50WzBdLCB1bml0cywgdmlld1VuaXRzLCBjb252ZXJ0T3B0aW9ucykudG9TdHJpbmcoKTtcbiAgICB2YXIgeSA9IGNvbnZlcnQocG9pbnRbMV0sIHVuaXRzLCB2aWV3VW5pdHMsIGNvbnZlcnRPcHRpb25zKS50b1N0cmluZygpO1xuICAgIGNvbW1hbmRzLnB1c2godHlwZSArIHggKyAnICcgKyB5KTtcbiAgfSk7XG4gIHJldHVybiBjb21tYW5kcy5qb2luKCcgJyk7XG59XG5cbmZ1bmN0aW9uIGlzRW1wdHkgKGlucHV0KSB7XG4gIHJldHVybiAhaW5wdXQgfHwgKEFycmF5LmlzQXJyYXkoaW5wdXQpICYmIGlucHV0Lmxlbmd0aCA9PT0gMCk7XG59XG5cbmZ1bmN0aW9uIGlzUGF0aCAoaW5wdXQpIHtcbiAgcmV0dXJuIHR5cGVvZiBpbnB1dCA9PT0gJ29iamVjdCcgJiYgaW5wdXQgJiYgIUFycmF5LmlzQXJyYXkoaW5wdXQpO1xufVxuXG5mdW5jdGlvbiBpc1BvbHlsaW5lIChpbnB1dCkge1xuICAvLyBlbXB0eSBhcnJheSBvciBub3QgYW4gYXJyYXlcbiAgaWYgKCFpbnB1dCB8fCAhQXJyYXkuaXNBcnJheShpbnB1dCkgfHwgaW5wdXQubGVuZ3RoID09PSAwKSByZXR1cm4gZmFsc2U7XG4gIC8vIGlmIGF0IGxlYXN0IG9uZSBvZiB0aGUgaW5wdXRzIGlzIGEgcG9pbnQsIGFzc3VtZSB0aGV5IGFsbCBhcmVcbiAgcmV0dXJuIGlzUG9pbnQoaW5wdXRbMF0pO1xufVxuXG5mdW5jdGlvbiBpc1BvaW50IChwb2ludCkge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheShwb2ludCkgJiYgcG9pbnQubGVuZ3RoID49IDIgJiYgcG9pbnQuZXZlcnkoZnVuY3Rpb24gKHApIHtcbiAgICByZXR1cm4gdHlwZW9mIHAgPT09ICdudW1iZXInO1xuICB9KTtcbn1cblxuLy8gQGRlcHJlY2F0ZWRcbm1vZHVsZS5leHBvcnRzLnBvbHlsaW5lc1RvU1ZHID0gZnVuY3Rpb24gcG9seWxpbmVzVG9TVkcgKHBvbHlsaW5lcywgb3B0KSB7XG4gIGlmICghQXJyYXkuaXNBcnJheShwb2x5bGluZXMpKSB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIGFycmF5IG9mIGFycmF5cyBmb3IgcG9seWxpbmVzJyk7XG4gIGNvbnNvbGUud2FybigncG9seWxpbmVzVG9TVkcgaXMgZGVwcmVjYXRlZCwgdXNlIHBhdGhzVG9TVkcgaW5zdGVhZCB3aGljaCBoYXMgdGhlIHNhbWUgZnVuY3Rpb25hbGl0eScpO1xuICAvLyBDcmVhdGUgYSBzaW5nbGUgc3RyaW5nIGZyb20gcG9seWxpbmVzXG4gIHJldHVybiBwYXRoc1RvU1ZHKHBvbHlsaW5lcywgb3B0KTtcbn07XG5cbi8vIEBkZXByZWNhdGVkXG5tb2R1bGUuZXhwb3J0cy5yZW5kZXJQb2x5bGluZXMgPSBmdW5jdGlvbiByZW5kZXJQb2x5bGluZXMgKHBvbHlsaW5lcywgb3B0KSB7XG4gIGlmICghQXJyYXkuaXNBcnJheShwb2x5bGluZXMpKSB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIGFycmF5IG9mIGFycmF5cyBmb3IgcG9seWxpbmVzJyk7XG4gIGNvbnNvbGUud2FybigncmVuZGVyUG9seWxpbmVzIGlzIGRlcHJlY2F0ZWQsIHVzZSByZW5kZXJQYXRocyBpbnN0ZWFkIHdoaWNoIGhhcyB0aGUgc2FtZSBmdW5jdGlvbmFsaXR5Jyk7XG4gIC8vIENyZWF0ZSBhIHNpbmdsZSBzdHJpbmcgZnJvbSBwb2x5bGluZXNcbiAgcmV0dXJuIHJlbmRlclBhdGhzKHBvbHlsaW5lcywgb3B0KTtcbn07XG4iLCJ2YXIgc2VlZFJhbmRvbSA9IHJlcXVpcmUoJ3NlZWQtcmFuZG9tJyk7XG52YXIgU2ltcGxleE5vaXNlID0gcmVxdWlyZSgnc2ltcGxleC1ub2lzZScpO1xudmFyIGRlZmluZWQgPSByZXF1aXJlKCdkZWZpbmVkJyk7XG5cbmZ1bmN0aW9uIGNyZWF0ZVJhbmRvbSAoZGVmYXVsdFNlZWQpIHtcbiAgZGVmYXVsdFNlZWQgPSBkZWZpbmVkKGRlZmF1bHRTZWVkLCBudWxsKTtcbiAgdmFyIGRlZmF1bHRSYW5kb20gPSBNYXRoLnJhbmRvbTtcbiAgdmFyIGN1cnJlbnRTZWVkO1xuICB2YXIgY3VycmVudFJhbmRvbTtcbiAgdmFyIG5vaXNlR2VuZXJhdG9yO1xuICB2YXIgX25leHRHYXVzc2lhbiA9IG51bGw7XG4gIHZhciBfaGFzTmV4dEdhdXNzaWFuID0gZmFsc2U7XG5cbiAgc2V0U2VlZChkZWZhdWx0U2VlZCk7XG5cbiAgcmV0dXJuIHtcbiAgICB2YWx1ZTogdmFsdWUsXG4gICAgY3JlYXRlUmFuZG9tOiBmdW5jdGlvbiAoZGVmYXVsdFNlZWQpIHtcbiAgICAgIHJldHVybiBjcmVhdGVSYW5kb20oZGVmYXVsdFNlZWQpO1xuICAgIH0sXG4gICAgc2V0U2VlZDogc2V0U2VlZCxcbiAgICBnZXRTZWVkOiBnZXRTZWVkLFxuICAgIGdldFJhbmRvbVNlZWQ6IGdldFJhbmRvbVNlZWQsXG4gICAgdmFsdWVOb25aZXJvOiB2YWx1ZU5vblplcm8sXG4gICAgcGVybXV0ZU5vaXNlOiBwZXJtdXRlTm9pc2UsXG4gICAgbm9pc2UxRDogbm9pc2UxRCxcbiAgICBub2lzZTJEOiBub2lzZTJELFxuICAgIG5vaXNlM0Q6IG5vaXNlM0QsXG4gICAgbm9pc2U0RDogbm9pc2U0RCxcbiAgICBzaWduOiBzaWduLFxuICAgIGJvb2xlYW46IGJvb2xlYW4sXG4gICAgY2hhbmNlOiBjaGFuY2UsXG4gICAgcmFuZ2U6IHJhbmdlLFxuICAgIHJhbmdlRmxvb3I6IHJhbmdlRmxvb3IsXG4gICAgcGljazogcGljayxcbiAgICBzaHVmZmxlOiBzaHVmZmxlLFxuICAgIG9uQ2lyY2xlOiBvbkNpcmNsZSxcbiAgICBpbnNpZGVDaXJjbGU6IGluc2lkZUNpcmNsZSxcbiAgICBvblNwaGVyZTogb25TcGhlcmUsXG4gICAgaW5zaWRlU3BoZXJlOiBpbnNpZGVTcGhlcmUsXG4gICAgcXVhdGVybmlvbjogcXVhdGVybmlvbixcbiAgICB3ZWlnaHRlZDogd2VpZ2h0ZWQsXG4gICAgd2VpZ2h0ZWRTZXQ6IHdlaWdodGVkU2V0LFxuICAgIHdlaWdodGVkU2V0SW5kZXg6IHdlaWdodGVkU2V0SW5kZXgsXG4gICAgZ2F1c3NpYW46IGdhdXNzaWFuXG4gIH07XG5cbiAgZnVuY3Rpb24gc2V0U2VlZCAoc2VlZCwgb3B0KSB7XG4gICAgaWYgKHR5cGVvZiBzZWVkID09PSAnbnVtYmVyJyB8fCB0eXBlb2Ygc2VlZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGN1cnJlbnRTZWVkID0gc2VlZDtcbiAgICAgIGN1cnJlbnRSYW5kb20gPSBzZWVkUmFuZG9tKGN1cnJlbnRTZWVkLCBvcHQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjdXJyZW50U2VlZCA9IHVuZGVmaW5lZDtcbiAgICAgIGN1cnJlbnRSYW5kb20gPSBkZWZhdWx0UmFuZG9tO1xuICAgIH1cbiAgICBub2lzZUdlbmVyYXRvciA9IGNyZWF0ZU5vaXNlKCk7XG4gICAgX25leHRHYXVzc2lhbiA9IG51bGw7XG4gICAgX2hhc05leHRHYXVzc2lhbiA9IGZhbHNlO1xuICB9XG5cbiAgZnVuY3Rpb24gdmFsdWUgKCkge1xuICAgIHJldHVybiBjdXJyZW50UmFuZG9tKCk7XG4gIH1cblxuICBmdW5jdGlvbiB2YWx1ZU5vblplcm8gKCkge1xuICAgIHZhciB1ID0gMDtcbiAgICB3aGlsZSAodSA9PT0gMCkgdSA9IHZhbHVlKCk7XG4gICAgcmV0dXJuIHU7XG4gIH1cblxuICBmdW5jdGlvbiBnZXRTZWVkICgpIHtcbiAgICByZXR1cm4gY3VycmVudFNlZWQ7XG4gIH1cblxuICBmdW5jdGlvbiBnZXRSYW5kb21TZWVkICgpIHtcbiAgICB2YXIgc2VlZCA9IFN0cmluZyhNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDAwMDAwKSk7XG4gICAgcmV0dXJuIHNlZWQ7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVOb2lzZSAoKSB7XG4gICAgcmV0dXJuIG5ldyBTaW1wbGV4Tm9pc2UoY3VycmVudFJhbmRvbSk7XG4gIH1cblxuICBmdW5jdGlvbiBwZXJtdXRlTm9pc2UgKCkge1xuICAgIG5vaXNlR2VuZXJhdG9yID0gY3JlYXRlTm9pc2UoKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIG5vaXNlMUQgKHgsIGZyZXF1ZW5jeSwgYW1wbGl0dWRlKSB7XG4gICAgaWYgKCFpc0Zpbml0ZSh4KSkgdGhyb3cgbmV3IFR5cGVFcnJvcigneCBjb21wb25lbnQgZm9yIG5vaXNlKCkgbXVzdCBiZSBmaW5pdGUnKTtcbiAgICBmcmVxdWVuY3kgPSBkZWZpbmVkKGZyZXF1ZW5jeSwgMSk7XG4gICAgYW1wbGl0dWRlID0gZGVmaW5lZChhbXBsaXR1ZGUsIDEpO1xuICAgIHJldHVybiBhbXBsaXR1ZGUgKiBub2lzZUdlbmVyYXRvci5ub2lzZTJEKHggKiBmcmVxdWVuY3ksIDApO1xuICB9XG5cbiAgZnVuY3Rpb24gbm9pc2UyRCAoeCwgeSwgZnJlcXVlbmN5LCBhbXBsaXR1ZGUpIHtcbiAgICBpZiAoIWlzRmluaXRlKHgpKSB0aHJvdyBuZXcgVHlwZUVycm9yKCd4IGNvbXBvbmVudCBmb3Igbm9pc2UoKSBtdXN0IGJlIGZpbml0ZScpO1xuICAgIGlmICghaXNGaW5pdGUoeSkpIHRocm93IG5ldyBUeXBlRXJyb3IoJ3kgY29tcG9uZW50IGZvciBub2lzZSgpIG11c3QgYmUgZmluaXRlJyk7XG4gICAgZnJlcXVlbmN5ID0gZGVmaW5lZChmcmVxdWVuY3ksIDEpO1xuICAgIGFtcGxpdHVkZSA9IGRlZmluZWQoYW1wbGl0dWRlLCAxKTtcbiAgICByZXR1cm4gYW1wbGl0dWRlICogbm9pc2VHZW5lcmF0b3Iubm9pc2UyRCh4ICogZnJlcXVlbmN5LCB5ICogZnJlcXVlbmN5KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIG5vaXNlM0QgKHgsIHksIHosIGZyZXF1ZW5jeSwgYW1wbGl0dWRlKSB7XG4gICAgaWYgKCFpc0Zpbml0ZSh4KSkgdGhyb3cgbmV3IFR5cGVFcnJvcigneCBjb21wb25lbnQgZm9yIG5vaXNlKCkgbXVzdCBiZSBmaW5pdGUnKTtcbiAgICBpZiAoIWlzRmluaXRlKHkpKSB0aHJvdyBuZXcgVHlwZUVycm9yKCd5IGNvbXBvbmVudCBmb3Igbm9pc2UoKSBtdXN0IGJlIGZpbml0ZScpO1xuICAgIGlmICghaXNGaW5pdGUoeikpIHRocm93IG5ldyBUeXBlRXJyb3IoJ3ogY29tcG9uZW50IGZvciBub2lzZSgpIG11c3QgYmUgZmluaXRlJyk7XG4gICAgZnJlcXVlbmN5ID0gZGVmaW5lZChmcmVxdWVuY3ksIDEpO1xuICAgIGFtcGxpdHVkZSA9IGRlZmluZWQoYW1wbGl0dWRlLCAxKTtcbiAgICByZXR1cm4gYW1wbGl0dWRlICogbm9pc2VHZW5lcmF0b3Iubm9pc2UzRChcbiAgICAgIHggKiBmcmVxdWVuY3ksXG4gICAgICB5ICogZnJlcXVlbmN5LFxuICAgICAgeiAqIGZyZXF1ZW5jeVxuICAgICk7XG4gIH1cblxuICBmdW5jdGlvbiBub2lzZTREICh4LCB5LCB6LCB3LCBmcmVxdWVuY3ksIGFtcGxpdHVkZSkge1xuICAgIGlmICghaXNGaW5pdGUoeCkpIHRocm93IG5ldyBUeXBlRXJyb3IoJ3ggY29tcG9uZW50IGZvciBub2lzZSgpIG11c3QgYmUgZmluaXRlJyk7XG4gICAgaWYgKCFpc0Zpbml0ZSh5KSkgdGhyb3cgbmV3IFR5cGVFcnJvcigneSBjb21wb25lbnQgZm9yIG5vaXNlKCkgbXVzdCBiZSBmaW5pdGUnKTtcbiAgICBpZiAoIWlzRmluaXRlKHopKSB0aHJvdyBuZXcgVHlwZUVycm9yKCd6IGNvbXBvbmVudCBmb3Igbm9pc2UoKSBtdXN0IGJlIGZpbml0ZScpO1xuICAgIGlmICghaXNGaW5pdGUodykpIHRocm93IG5ldyBUeXBlRXJyb3IoJ3cgY29tcG9uZW50IGZvciBub2lzZSgpIG11c3QgYmUgZmluaXRlJyk7XG4gICAgZnJlcXVlbmN5ID0gZGVmaW5lZChmcmVxdWVuY3ksIDEpO1xuICAgIGFtcGxpdHVkZSA9IGRlZmluZWQoYW1wbGl0dWRlLCAxKTtcbiAgICByZXR1cm4gYW1wbGl0dWRlICogbm9pc2VHZW5lcmF0b3Iubm9pc2U0RChcbiAgICAgIHggKiBmcmVxdWVuY3ksXG4gICAgICB5ICogZnJlcXVlbmN5LFxuICAgICAgeiAqIGZyZXF1ZW5jeSxcbiAgICAgIHcgKiBmcmVxdWVuY3lcbiAgICApO1xuICB9XG5cbiAgZnVuY3Rpb24gc2lnbiAoKSB7XG4gICAgcmV0dXJuIGJvb2xlYW4oKSA/IDEgOiAtMTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGJvb2xlYW4gKCkge1xuICAgIHJldHVybiB2YWx1ZSgpID4gMC41O1xuICB9XG5cbiAgZnVuY3Rpb24gY2hhbmNlIChuKSB7XG4gICAgbiA9IGRlZmluZWQobiwgMC41KTtcbiAgICBpZiAodHlwZW9mIG4gIT09ICdudW1iZXInKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdleHBlY3RlZCBuIHRvIGJlIGEgbnVtYmVyJyk7XG4gICAgcmV0dXJuIHZhbHVlKCkgPCBuO1xuICB9XG5cbiAgZnVuY3Rpb24gcmFuZ2UgKG1pbiwgbWF4KSB7XG4gICAgaWYgKG1heCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBtYXggPSBtaW47XG4gICAgICBtaW4gPSAwO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgbWluICE9PSAnbnVtYmVyJyB8fCB0eXBlb2YgbWF4ICE9PSAnbnVtYmVyJykge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgYWxsIGFyZ3VtZW50cyB0byBiZSBudW1iZXJzJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlKCkgKiAobWF4IC0gbWluKSArIG1pbjtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJhbmdlRmxvb3IgKG1pbiwgbWF4KSB7XG4gICAgaWYgKG1heCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBtYXggPSBtaW47XG4gICAgICBtaW4gPSAwO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgbWluICE9PSAnbnVtYmVyJyB8fCB0eXBlb2YgbWF4ICE9PSAnbnVtYmVyJykge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgYWxsIGFyZ3VtZW50cyB0byBiZSBudW1iZXJzJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIE1hdGguZmxvb3IocmFuZ2UobWluLCBtYXgpKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBpY2sgKGFycmF5KSB7XG4gICAgaWYgKGFycmF5Lmxlbmd0aCA9PT0gMCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4gYXJyYXlbcmFuZ2VGbG9vcigwLCBhcnJheS5sZW5ndGgpXTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHNodWZmbGUgKGFycikge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShhcnIpKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCBBcnJheSwgZ290ICcgKyB0eXBlb2YgYXJyKTtcbiAgICB9XG5cbiAgICB2YXIgcmFuZDtcbiAgICB2YXIgdG1wO1xuICAgIHZhciBsZW4gPSBhcnIubGVuZ3RoO1xuICAgIHZhciByZXQgPSBhcnIuc2xpY2UoKTtcbiAgICB3aGlsZSAobGVuKSB7XG4gICAgICByYW5kID0gTWF0aC5mbG9vcih2YWx1ZSgpICogbGVuLS0pO1xuICAgICAgdG1wID0gcmV0W2xlbl07XG4gICAgICByZXRbbGVuXSA9IHJldFtyYW5kXTtcbiAgICAgIHJldFtyYW5kXSA9IHRtcDtcbiAgICB9XG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIGZ1bmN0aW9uIG9uQ2lyY2xlIChyYWRpdXMsIG91dCkge1xuICAgIHJhZGl1cyA9IGRlZmluZWQocmFkaXVzLCAxKTtcbiAgICBvdXQgPSBvdXQgfHwgW107XG4gICAgdmFyIHRoZXRhID0gdmFsdWUoKSAqIDIuMCAqIE1hdGguUEk7XG4gICAgb3V0WzBdID0gcmFkaXVzICogTWF0aC5jb3ModGhldGEpO1xuICAgIG91dFsxXSA9IHJhZGl1cyAqIE1hdGguc2luKHRoZXRhKTtcbiAgICByZXR1cm4gb3V0O1xuICB9XG5cbiAgZnVuY3Rpb24gaW5zaWRlQ2lyY2xlIChyYWRpdXMsIG91dCkge1xuICAgIHJhZGl1cyA9IGRlZmluZWQocmFkaXVzLCAxKTtcbiAgICBvdXQgPSBvdXQgfHwgW107XG4gICAgb25DaXJjbGUoMSwgb3V0KTtcbiAgICB2YXIgciA9IHJhZGl1cyAqIE1hdGguc3FydCh2YWx1ZSgpKTtcbiAgICBvdXRbMF0gKj0gcjtcbiAgICBvdXRbMV0gKj0gcjtcbiAgICByZXR1cm4gb3V0O1xuICB9XG5cbiAgZnVuY3Rpb24gb25TcGhlcmUgKHJhZGl1cywgb3V0KSB7XG4gICAgcmFkaXVzID0gZGVmaW5lZChyYWRpdXMsIDEpO1xuICAgIG91dCA9IG91dCB8fCBbXTtcbiAgICB2YXIgdSA9IHZhbHVlKCkgKiBNYXRoLlBJICogMjtcbiAgICB2YXIgdiA9IHZhbHVlKCkgKiAyIC0gMTtcbiAgICB2YXIgcGhpID0gdTtcbiAgICB2YXIgdGhldGEgPSBNYXRoLmFjb3Modik7XG4gICAgb3V0WzBdID0gcmFkaXVzICogTWF0aC5zaW4odGhldGEpICogTWF0aC5jb3MocGhpKTtcbiAgICBvdXRbMV0gPSByYWRpdXMgKiBNYXRoLnNpbih0aGV0YSkgKiBNYXRoLnNpbihwaGkpO1xuICAgIG91dFsyXSA9IHJhZGl1cyAqIE1hdGguY29zKHRoZXRhKTtcbiAgICByZXR1cm4gb3V0O1xuICB9XG5cbiAgZnVuY3Rpb24gaW5zaWRlU3BoZXJlIChyYWRpdXMsIG91dCkge1xuICAgIHJhZGl1cyA9IGRlZmluZWQocmFkaXVzLCAxKTtcbiAgICBvdXQgPSBvdXQgfHwgW107XG4gICAgdmFyIHUgPSB2YWx1ZSgpICogTWF0aC5QSSAqIDI7XG4gICAgdmFyIHYgPSB2YWx1ZSgpICogMiAtIDE7XG4gICAgdmFyIGsgPSB2YWx1ZSgpO1xuXG4gICAgdmFyIHBoaSA9IHU7XG4gICAgdmFyIHRoZXRhID0gTWF0aC5hY29zKHYpO1xuICAgIHZhciByID0gcmFkaXVzICogTWF0aC5jYnJ0KGspO1xuICAgIG91dFswXSA9IHIgKiBNYXRoLnNpbih0aGV0YSkgKiBNYXRoLmNvcyhwaGkpO1xuICAgIG91dFsxXSA9IHIgKiBNYXRoLnNpbih0aGV0YSkgKiBNYXRoLnNpbihwaGkpO1xuICAgIG91dFsyXSA9IHIgKiBNYXRoLmNvcyh0aGV0YSk7XG4gICAgcmV0dXJuIG91dDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHF1YXRlcm5pb24gKG91dCkge1xuICAgIG91dCA9IG91dCB8fCBbXTtcbiAgICB2YXIgdTEgPSB2YWx1ZSgpO1xuICAgIHZhciB1MiA9IHZhbHVlKCk7XG4gICAgdmFyIHUzID0gdmFsdWUoKTtcblxuICAgIHZhciBzcTEgPSBNYXRoLnNxcnQoMSAtIHUxKTtcbiAgICB2YXIgc3EyID0gTWF0aC5zcXJ0KHUxKTtcblxuICAgIHZhciB0aGV0YTEgPSBNYXRoLlBJICogMiAqIHUyO1xuICAgIHZhciB0aGV0YTIgPSBNYXRoLlBJICogMiAqIHUzO1xuXG4gICAgdmFyIHggPSBNYXRoLnNpbih0aGV0YTEpICogc3ExO1xuICAgIHZhciB5ID0gTWF0aC5jb3ModGhldGExKSAqIHNxMTtcbiAgICB2YXIgeiA9IE1hdGguc2luKHRoZXRhMikgKiBzcTI7XG4gICAgdmFyIHcgPSBNYXRoLmNvcyh0aGV0YTIpICogc3EyO1xuICAgIG91dFswXSA9IHg7XG4gICAgb3V0WzFdID0geTtcbiAgICBvdXRbMl0gPSB6O1xuICAgIG91dFszXSA9IHc7XG4gICAgcmV0dXJuIG91dDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHdlaWdodGVkU2V0IChzZXQpIHtcbiAgICBzZXQgPSBzZXQgfHwgW107XG4gICAgaWYgKHNldC5sZW5ndGggPT09IDApIHJldHVybiBudWxsO1xuICAgIHJldHVybiBzZXRbd2VpZ2h0ZWRTZXRJbmRleChzZXQpXS52YWx1ZTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHdlaWdodGVkU2V0SW5kZXggKHNldCkge1xuICAgIHNldCA9IHNldCB8fCBbXTtcbiAgICBpZiAoc2V0Lmxlbmd0aCA9PT0gMCkgcmV0dXJuIC0xO1xuICAgIHJldHVybiB3ZWlnaHRlZChzZXQubWFwKGZ1bmN0aW9uIChzKSB7XG4gICAgICByZXR1cm4gcy53ZWlnaHQ7XG4gICAgfSkpO1xuICB9XG5cbiAgZnVuY3Rpb24gd2VpZ2h0ZWQgKHdlaWdodHMpIHtcbiAgICB3ZWlnaHRzID0gd2VpZ2h0cyB8fCBbXTtcbiAgICBpZiAod2VpZ2h0cy5sZW5ndGggPT09IDApIHJldHVybiAtMTtcbiAgICB2YXIgdG90YWxXZWlnaHQgPSAwO1xuICAgIHZhciBpO1xuXG4gICAgZm9yIChpID0gMDsgaSA8IHdlaWdodHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRvdGFsV2VpZ2h0ICs9IHdlaWdodHNbaV07XG4gICAgfVxuXG4gICAgaWYgKHRvdGFsV2VpZ2h0IDw9IDApIHRocm93IG5ldyBFcnJvcignV2VpZ2h0cyBtdXN0IHN1bSB0byA+IDAnKTtcblxuICAgIHZhciByYW5kb20gPSB2YWx1ZSgpICogdG90YWxXZWlnaHQ7XG4gICAgZm9yIChpID0gMDsgaSA8IHdlaWdodHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChyYW5kb20gPCB3ZWlnaHRzW2ldKSB7XG4gICAgICAgIHJldHVybiBpO1xuICAgICAgfVxuICAgICAgcmFuZG9tIC09IHdlaWdodHNbaV07XG4gICAgfVxuICAgIHJldHVybiAwO1xuICB9XG5cbiAgZnVuY3Rpb24gZ2F1c3NpYW4gKG1lYW4sIHN0YW5kYXJkRGVyaXZhdGlvbikge1xuICAgIG1lYW4gPSBkZWZpbmVkKG1lYW4sIDApO1xuICAgIHN0YW5kYXJkRGVyaXZhdGlvbiA9IGRlZmluZWQoc3RhbmRhcmREZXJpdmF0aW9uLCAxKTtcblxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuamRrLW1pcnJvci9qZGs3dS1qZGsvYmxvYi9mNGQ4MDk1N2U4OWExOWEyOWJiOWY5ODA3ZDJhMjgzNTFlZDdmN2RmL3NyYy9zaGFyZS9jbGFzc2VzL2phdmEvdXRpbC9SYW5kb20uamF2YSNMNDk2XG4gICAgaWYgKF9oYXNOZXh0R2F1c3NpYW4pIHtcbiAgICAgIF9oYXNOZXh0R2F1c3NpYW4gPSBmYWxzZTtcbiAgICAgIHZhciByZXN1bHQgPSBfbmV4dEdhdXNzaWFuO1xuICAgICAgX25leHRHYXVzc2lhbiA9IG51bGw7XG4gICAgICByZXR1cm4gbWVhbiArIHN0YW5kYXJkRGVyaXZhdGlvbiAqIHJlc3VsdDtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIHYxID0gMDtcbiAgICAgIHZhciB2MiA9IDA7XG4gICAgICB2YXIgcyA9IDA7XG4gICAgICBkbyB7XG4gICAgICAgIHYxID0gdmFsdWUoKSAqIDIgLSAxOyAvLyBiZXR3ZWVuIC0xIGFuZCAxXG4gICAgICAgIHYyID0gdmFsdWUoKSAqIDIgLSAxOyAvLyBiZXR3ZWVuIC0xIGFuZCAxXG4gICAgICAgIHMgPSB2MSAqIHYxICsgdjIgKiB2MjtcbiAgICAgIH0gd2hpbGUgKHMgPj0gMSB8fCBzID09PSAwKTtcbiAgICAgIHZhciBtdWx0aXBsaWVyID0gTWF0aC5zcXJ0KC0yICogTWF0aC5sb2cocykgLyBzKTtcbiAgICAgIF9uZXh0R2F1c3NpYW4gPSAodjIgKiBtdWx0aXBsaWVyKTtcbiAgICAgIF9oYXNOZXh0R2F1c3NpYW4gPSB0cnVlO1xuICAgICAgcmV0dXJuIG1lYW4gKyBzdGFuZGFyZERlcml2YXRpb24gKiAodjEgKiBtdWx0aXBsaWVyKTtcbiAgICB9XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjcmVhdGVSYW5kb20oKTtcbiIsIi8qXG5vYmplY3QtYXNzaWduXG4oYykgU2luZHJlIFNvcmh1c1xuQGxpY2Vuc2UgTUlUXG4qL1xuXG4ndXNlIHN0cmljdCc7XG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xudmFyIGdldE93blByb3BlcnR5U3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7XG52YXIgaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xudmFyIHByb3BJc0VudW1lcmFibGUgPSBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlO1xuXG5mdW5jdGlvbiB0b09iamVjdCh2YWwpIHtcblx0aWYgKHZhbCA9PT0gbnVsbCB8fCB2YWwgPT09IHVuZGVmaW5lZCkge1xuXHRcdHRocm93IG5ldyBUeXBlRXJyb3IoJ09iamVjdC5hc3NpZ24gY2Fubm90IGJlIGNhbGxlZCB3aXRoIG51bGwgb3IgdW5kZWZpbmVkJyk7XG5cdH1cblxuXHRyZXR1cm4gT2JqZWN0KHZhbCk7XG59XG5cbmZ1bmN0aW9uIHNob3VsZFVzZU5hdGl2ZSgpIHtcblx0dHJ5IHtcblx0XHRpZiAoIU9iamVjdC5hc3NpZ24pIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHQvLyBEZXRlY3QgYnVnZ3kgcHJvcGVydHkgZW51bWVyYXRpb24gb3JkZXIgaW4gb2xkZXIgVjggdmVyc2lvbnMuXG5cblx0XHQvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD00MTE4XG5cdFx0dmFyIHRlc3QxID0gbmV3IFN0cmluZygnYWJjJyk7ICAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLW5ldy13cmFwcGVyc1xuXHRcdHRlc3QxWzVdID0gJ2RlJztcblx0XHRpZiAoT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGVzdDEpWzBdID09PSAnNScpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHQvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0zMDU2XG5cdFx0dmFyIHRlc3QyID0ge307XG5cdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCAxMDsgaSsrKSB7XG5cdFx0XHR0ZXN0MlsnXycgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKGkpXSA9IGk7XG5cdFx0fVxuXHRcdHZhciBvcmRlcjIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0ZXN0MikubWFwKGZ1bmN0aW9uIChuKSB7XG5cdFx0XHRyZXR1cm4gdGVzdDJbbl07XG5cdFx0fSk7XG5cdFx0aWYgKG9yZGVyMi5qb2luKCcnKSAhPT0gJzAxMjM0NTY3ODknKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9MzA1NlxuXHRcdHZhciB0ZXN0MyA9IHt9O1xuXHRcdCdhYmNkZWZnaGlqa2xtbm9wcXJzdCcuc3BsaXQoJycpLmZvckVhY2goZnVuY3Rpb24gKGxldHRlcikge1xuXHRcdFx0dGVzdDNbbGV0dGVyXSA9IGxldHRlcjtcblx0XHR9KTtcblx0XHRpZiAoT2JqZWN0LmtleXMoT2JqZWN0LmFzc2lnbih7fSwgdGVzdDMpKS5qb2luKCcnKSAhPT1cblx0XHRcdFx0J2FiY2RlZmdoaWprbG1ub3BxcnN0Jykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdHJldHVybiB0cnVlO1xuXHR9IGNhdGNoIChlcnIpIHtcblx0XHQvLyBXZSBkb24ndCBleHBlY3QgYW55IG9mIHRoZSBhYm92ZSB0byB0aHJvdywgYnV0IGJldHRlciB0byBiZSBzYWZlLlxuXHRcdHJldHVybiBmYWxzZTtcblx0fVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHNob3VsZFVzZU5hdGl2ZSgpID8gT2JqZWN0LmFzc2lnbiA6IGZ1bmN0aW9uICh0YXJnZXQsIHNvdXJjZSkge1xuXHR2YXIgZnJvbTtcblx0dmFyIHRvID0gdG9PYmplY3QodGFyZ2V0KTtcblx0dmFyIHN5bWJvbHM7XG5cblx0Zm9yICh2YXIgcyA9IDE7IHMgPCBhcmd1bWVudHMubGVuZ3RoOyBzKyspIHtcblx0XHRmcm9tID0gT2JqZWN0KGFyZ3VtZW50c1tzXSk7XG5cblx0XHRmb3IgKHZhciBrZXkgaW4gZnJvbSkge1xuXHRcdFx0aWYgKGhhc093blByb3BlcnR5LmNhbGwoZnJvbSwga2V5KSkge1xuXHRcdFx0XHR0b1trZXldID0gZnJvbVtrZXldO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmIChnZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHtcblx0XHRcdHN5bWJvbHMgPSBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZnJvbSk7XG5cdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IHN5bWJvbHMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0aWYgKHByb3BJc0VudW1lcmFibGUuY2FsbChmcm9tLCBzeW1ib2xzW2ldKSkge1xuXHRcdFx0XHRcdHRvW3N5bWJvbHNbaV1dID0gZnJvbVtzeW1ib2xzW2ldXTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiB0bztcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9XG4gIGdsb2JhbC5wZXJmb3JtYW5jZSAmJlxuICBnbG9iYWwucGVyZm9ybWFuY2Uubm93ID8gZnVuY3Rpb24gbm93KCkge1xuICAgIHJldHVybiBwZXJmb3JtYW5jZS5ub3coKVxuICB9IDogRGF0ZS5ub3cgfHwgZnVuY3Rpb24gbm93KCkge1xuICAgIHJldHVybiArbmV3IERhdGVcbiAgfVxuIiwibW9kdWxlLmV4cG9ydHMgPSBpc1Byb21pc2U7XG5cbmZ1bmN0aW9uIGlzUHJvbWlzZShvYmopIHtcbiAgcmV0dXJuICEhb2JqICYmICh0eXBlb2Ygb2JqID09PSAnb2JqZWN0JyB8fCB0eXBlb2Ygb2JqID09PSAnZnVuY3Rpb24nKSAmJiB0eXBlb2Ygb2JqLnRoZW4gPT09ICdmdW5jdGlvbic7XG59XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGlzTm9kZVxuXG5mdW5jdGlvbiBpc05vZGUgKHZhbCkge1xuICByZXR1cm4gKCF2YWwgfHwgdHlwZW9mIHZhbCAhPT0gJ29iamVjdCcpXG4gICAgPyBmYWxzZVxuICAgIDogKHR5cGVvZiB3aW5kb3cgPT09ICdvYmplY3QnICYmIHR5cGVvZiB3aW5kb3cuTm9kZSA9PT0gJ29iamVjdCcpXG4gICAgICA/ICh2YWwgaW5zdGFuY2VvZiB3aW5kb3cuTm9kZSlcbiAgICAgIDogKHR5cGVvZiB2YWwubm9kZVR5cGUgPT09ICdudW1iZXInKSAmJlxuICAgICAgICAodHlwZW9mIHZhbC5ub2RlTmFtZSA9PT0gJ3N0cmluZycpXG59XG4iLCIvLyBUT0RPOiBXZSBjYW4gcmVtb3ZlIGEgaHVnZSBjaHVuayBvZiBidW5kbGUgc2l6ZSBieSB1c2luZyBhIHNtYWxsZXJcbi8vIHV0aWxpdHkgbW9kdWxlIGZvciBjb252ZXJ0aW5nIHVuaXRzLlxuaW1wb3J0IGlzRE9NIGZyb20gJ2lzLWRvbSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDbGllbnRBUEkgKCkge1xuICByZXR1cm4gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93WydjYW52YXMtc2tldGNoLWNsaSddO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lZCAoKSB7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGFyZ3VtZW50c1tpXSAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gYXJndW1lbnRzW2ldO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNCcm93c2VyICgpIHtcbiAgcmV0dXJuIHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1dlYkdMQ29udGV4dCAoY3R4KSB7XG4gIHJldHVybiB0eXBlb2YgY3R4LmNsZWFyID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBjdHguY2xlYXJDb2xvciA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgY3R4LmJ1ZmZlckRhdGEgPT09ICdmdW5jdGlvbic7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0NhbnZhcyAoZWxlbWVudCkge1xuICByZXR1cm4gaXNET00oZWxlbWVudCkgJiYgL2NhbnZhcy9pLnRlc3QoZWxlbWVudC5ub2RlTmFtZSkgJiYgdHlwZW9mIGVsZW1lbnQuZ2V0Q29udGV4dCA9PT0gJ2Z1bmN0aW9uJztcbn1cbiIsIi8qIVxuICogcmVwZWF0LXN0cmluZyA8aHR0cHM6Ly9naXRodWIuY29tL2pvbnNjaGxpbmtlcnQvcmVwZWF0LXN0cmluZz5cbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTQtMjAxNSwgSm9uIFNjaGxpbmtlcnQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiAqIFJlc3VsdHMgY2FjaGVcbiAqL1xuXG52YXIgcmVzID0gJyc7XG52YXIgY2FjaGU7XG5cbi8qKlxuICogRXhwb3NlIGByZXBlYXRgXG4gKi9cblxubW9kdWxlLmV4cG9ydHMgPSByZXBlYXQ7XG5cbi8qKlxuICogUmVwZWF0IHRoZSBnaXZlbiBgc3RyaW5nYCB0aGUgc3BlY2lmaWVkIGBudW1iZXJgXG4gKiBvZiB0aW1lcy5cbiAqXG4gKiAqKkV4YW1wbGU6KipcbiAqXG4gKiBgYGBqc1xuICogdmFyIHJlcGVhdCA9IHJlcXVpcmUoJ3JlcGVhdC1zdHJpbmcnKTtcbiAqIHJlcGVhdCgnQScsIDUpO1xuICogLy89PiBBQUFBQVxuICogYGBgXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGBzdHJpbmdgIFRoZSBzdHJpbmcgdG8gcmVwZWF0XG4gKiBAcGFyYW0ge051bWJlcn0gYG51bWJlcmAgVGhlIG51bWJlciBvZiB0aW1lcyB0byByZXBlYXQgdGhlIHN0cmluZ1xuICogQHJldHVybiB7U3RyaW5nfSBSZXBlYXRlZCBzdHJpbmdcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZnVuY3Rpb24gcmVwZWF0KHN0ciwgbnVtKSB7XG4gIGlmICh0eXBlb2Ygc3RyICE9PSAnc3RyaW5nJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2V4cGVjdGVkIGEgc3RyaW5nJyk7XG4gIH1cblxuICAvLyBjb3ZlciBjb21tb24sIHF1aWNrIHVzZSBjYXNlc1xuICBpZiAobnVtID09PSAxKSByZXR1cm4gc3RyO1xuICBpZiAobnVtID09PSAyKSByZXR1cm4gc3RyICsgc3RyO1xuXG4gIHZhciBtYXggPSBzdHIubGVuZ3RoICogbnVtO1xuICBpZiAoY2FjaGUgIT09IHN0ciB8fCB0eXBlb2YgY2FjaGUgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgY2FjaGUgPSBzdHI7XG4gICAgcmVzID0gJyc7XG4gIH0gZWxzZSBpZiAocmVzLmxlbmd0aCA+PSBtYXgpIHtcbiAgICByZXR1cm4gcmVzLnN1YnN0cigwLCBtYXgpO1xuICB9XG5cbiAgd2hpbGUgKG1heCA+IHJlcy5sZW5ndGggJiYgbnVtID4gMSkge1xuICAgIGlmIChudW0gJiAxKSB7XG4gICAgICByZXMgKz0gc3RyO1xuICAgIH1cblxuICAgIG51bSA+Pj0gMTtcbiAgICBzdHIgKz0gc3RyO1xuICB9XG5cbiAgcmVzICs9IHN0cjtcbiAgcmVzID0gcmVzLnN1YnN0cigwLCBtYXgpO1xuICByZXR1cm4gcmVzO1xufVxuIiwiZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzID0gdHlwZW9mIE9iamVjdC5rZXlzID09PSAnZnVuY3Rpb24nXG4gID8gT2JqZWN0LmtleXMgOiBzaGltO1xuXG5leHBvcnRzLnNoaW0gPSBzaGltO1xuZnVuY3Rpb24gc2hpbSAob2JqKSB7XG4gIHZhciBrZXlzID0gW107XG4gIGZvciAodmFyIGtleSBpbiBvYmopIGtleXMucHVzaChrZXkpO1xuICByZXR1cm4ga2V5cztcbn1cbiIsInZhciBzdXBwb3J0c0FyZ3VtZW50c0NsYXNzID0gKGZ1bmN0aW9uKCl7XG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYXJndW1lbnRzKVxufSkoKSA9PSAnW29iamVjdCBBcmd1bWVudHNdJztcblxuZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzID0gc3VwcG9ydHNBcmd1bWVudHNDbGFzcyA/IHN1cHBvcnRlZCA6IHVuc3VwcG9ydGVkO1xuXG5leHBvcnRzLnN1cHBvcnRlZCA9IHN1cHBvcnRlZDtcbmZ1bmN0aW9uIHN1cHBvcnRlZChvYmplY3QpIHtcbiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmplY3QpID09ICdbb2JqZWN0IEFyZ3VtZW50c10nO1xufTtcblxuZXhwb3J0cy51bnN1cHBvcnRlZCA9IHVuc3VwcG9ydGVkO1xuZnVuY3Rpb24gdW5zdXBwb3J0ZWQob2JqZWN0KXtcbiAgcmV0dXJuIG9iamVjdCAmJlxuICAgIHR5cGVvZiBvYmplY3QgPT0gJ29iamVjdCcgJiZcbiAgICB0eXBlb2Ygb2JqZWN0Lmxlbmd0aCA9PSAnbnVtYmVyJyAmJlxuICAgIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsICdjYWxsZWUnKSAmJlxuICAgICFPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwob2JqZWN0LCAnY2FsbGVlJykgfHxcbiAgICBmYWxzZTtcbn07XG4iLCJ2YXIgcFNsaWNlID0gQXJyYXkucHJvdG90eXBlLnNsaWNlO1xudmFyIG9iamVjdEtleXMgPSByZXF1aXJlKCcuL2xpYi9rZXlzLmpzJyk7XG52YXIgaXNBcmd1bWVudHMgPSByZXF1aXJlKCcuL2xpYi9pc19hcmd1bWVudHMuanMnKTtcblxudmFyIGRlZXBFcXVhbCA9IG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGFjdHVhbCwgZXhwZWN0ZWQsIG9wdHMpIHtcbiAgaWYgKCFvcHRzKSBvcHRzID0ge307XG4gIC8vIDcuMS4gQWxsIGlkZW50aWNhbCB2YWx1ZXMgYXJlIGVxdWl2YWxlbnQsIGFzIGRldGVybWluZWQgYnkgPT09LlxuICBpZiAoYWN0dWFsID09PSBleHBlY3RlZCkge1xuICAgIHJldHVybiB0cnVlO1xuXG4gIH0gZWxzZSBpZiAoYWN0dWFsIGluc3RhbmNlb2YgRGF0ZSAmJiBleHBlY3RlZCBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICByZXR1cm4gYWN0dWFsLmdldFRpbWUoKSA9PT0gZXhwZWN0ZWQuZ2V0VGltZSgpO1xuXG4gIC8vIDcuMy4gT3RoZXIgcGFpcnMgdGhhdCBkbyBub3QgYm90aCBwYXNzIHR5cGVvZiB2YWx1ZSA9PSAnb2JqZWN0JyxcbiAgLy8gZXF1aXZhbGVuY2UgaXMgZGV0ZXJtaW5lZCBieSA9PS5cbiAgfSBlbHNlIGlmICghYWN0dWFsIHx8ICFleHBlY3RlZCB8fCB0eXBlb2YgYWN0dWFsICE9ICdvYmplY3QnICYmIHR5cGVvZiBleHBlY3RlZCAhPSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBvcHRzLnN0cmljdCA/IGFjdHVhbCA9PT0gZXhwZWN0ZWQgOiBhY3R1YWwgPT0gZXhwZWN0ZWQ7XG5cbiAgLy8gNy40LiBGb3IgYWxsIG90aGVyIE9iamVjdCBwYWlycywgaW5jbHVkaW5nIEFycmF5IG9iamVjdHMsIGVxdWl2YWxlbmNlIGlzXG4gIC8vIGRldGVybWluZWQgYnkgaGF2aW5nIHRoZSBzYW1lIG51bWJlciBvZiBvd25lZCBwcm9wZXJ0aWVzIChhcyB2ZXJpZmllZFxuICAvLyB3aXRoIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCksIHRoZSBzYW1lIHNldCBvZiBrZXlzXG4gIC8vIChhbHRob3VnaCBub3QgbmVjZXNzYXJpbHkgdGhlIHNhbWUgb3JkZXIpLCBlcXVpdmFsZW50IHZhbHVlcyBmb3IgZXZlcnlcbiAgLy8gY29ycmVzcG9uZGluZyBrZXksIGFuZCBhbiBpZGVudGljYWwgJ3Byb3RvdHlwZScgcHJvcGVydHkuIE5vdGU6IHRoaXNcbiAgLy8gYWNjb3VudHMgZm9yIGJvdGggbmFtZWQgYW5kIGluZGV4ZWQgcHJvcGVydGllcyBvbiBBcnJheXMuXG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG9iakVxdWl2KGFjdHVhbCwgZXhwZWN0ZWQsIG9wdHMpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGlzVW5kZWZpbmVkT3JOdWxsKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBpc0J1ZmZlciAoeCkge1xuICBpZiAoIXggfHwgdHlwZW9mIHggIT09ICdvYmplY3QnIHx8IHR5cGVvZiB4Lmxlbmd0aCAhPT0gJ251bWJlcicpIHJldHVybiBmYWxzZTtcbiAgaWYgKHR5cGVvZiB4LmNvcHkgIT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIHguc2xpY2UgIT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKHgubGVuZ3RoID4gMCAmJiB0eXBlb2YgeFswXSAhPT0gJ251bWJlcicpIHJldHVybiBmYWxzZTtcbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIG9iakVxdWl2KGEsIGIsIG9wdHMpIHtcbiAgdmFyIGksIGtleTtcbiAgaWYgKGlzVW5kZWZpbmVkT3JOdWxsKGEpIHx8IGlzVW5kZWZpbmVkT3JOdWxsKGIpKVxuICAgIHJldHVybiBmYWxzZTtcbiAgLy8gYW4gaWRlbnRpY2FsICdwcm90b3R5cGUnIHByb3BlcnR5LlxuICBpZiAoYS5wcm90b3R5cGUgIT09IGIucHJvdG90eXBlKSByZXR1cm4gZmFsc2U7XG4gIC8vfn5+SSd2ZSBtYW5hZ2VkIHRvIGJyZWFrIE9iamVjdC5rZXlzIHRocm91Z2ggc2NyZXd5IGFyZ3VtZW50cyBwYXNzaW5nLlxuICAvLyAgIENvbnZlcnRpbmcgdG8gYXJyYXkgc29sdmVzIHRoZSBwcm9ibGVtLlxuICBpZiAoaXNBcmd1bWVudHMoYSkpIHtcbiAgICBpZiAoIWlzQXJndW1lbnRzKGIpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGEgPSBwU2xpY2UuY2FsbChhKTtcbiAgICBiID0gcFNsaWNlLmNhbGwoYik7XG4gICAgcmV0dXJuIGRlZXBFcXVhbChhLCBiLCBvcHRzKTtcbiAgfVxuICBpZiAoaXNCdWZmZXIoYSkpIHtcbiAgICBpZiAoIWlzQnVmZmVyKGIpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChhLmxlbmd0aCAhPT0gYi5sZW5ndGgpIHJldHVybiBmYWxzZTtcbiAgICBmb3IgKGkgPSAwOyBpIDwgYS5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGFbaV0gIT09IGJbaV0pIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgdHJ5IHtcbiAgICB2YXIga2EgPSBvYmplY3RLZXlzKGEpLFxuICAgICAgICBrYiA9IG9iamVjdEtleXMoYik7XG4gIH0gY2F0Y2ggKGUpIHsvL2hhcHBlbnMgd2hlbiBvbmUgaXMgYSBzdHJpbmcgbGl0ZXJhbCBhbmQgdGhlIG90aGVyIGlzbid0XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIC8vIGhhdmluZyB0aGUgc2FtZSBudW1iZXIgb2Ygb3duZWQgcHJvcGVydGllcyAoa2V5cyBpbmNvcnBvcmF0ZXNcbiAgLy8gaGFzT3duUHJvcGVydHkpXG4gIGlmIChrYS5sZW5ndGggIT0ga2IubGVuZ3RoKVxuICAgIHJldHVybiBmYWxzZTtcbiAgLy90aGUgc2FtZSBzZXQgb2Yga2V5cyAoYWx0aG91Z2ggbm90IG5lY2Vzc2FyaWx5IHRoZSBzYW1lIG9yZGVyKSxcbiAga2Euc29ydCgpO1xuICBrYi5zb3J0KCk7XG4gIC8vfn5+Y2hlYXAga2V5IHRlc3RcbiAgZm9yIChpID0ga2EubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICBpZiAoa2FbaV0gIT0ga2JbaV0pXG4gICAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgLy9lcXVpdmFsZW50IHZhbHVlcyBmb3IgZXZlcnkgY29ycmVzcG9uZGluZyBrZXksIGFuZFxuICAvL35+fnBvc3NpYmx5IGV4cGVuc2l2ZSBkZWVwIHRlc3RcbiAgZm9yIChpID0ga2EubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICBrZXkgPSBrYVtpXTtcbiAgICBpZiAoIWRlZXBFcXVhbChhW2tleV0sIGJba2V5XSwgb3B0cykpIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gdHlwZW9mIGEgPT09IHR5cGVvZiBiO1xufVxuIiwiLypcbiAqIERhdGUgRm9ybWF0IDEuMi4zXG4gKiAoYykgMjAwNy0yMDA5IFN0ZXZlbiBMZXZpdGhhbiA8c3RldmVubGV2aXRoYW4uY29tPlxuICogTUlUIGxpY2Vuc2VcbiAqXG4gKiBJbmNsdWRlcyBlbmhhbmNlbWVudHMgYnkgU2NvdHQgVHJlbmRhIDxzY290dC50cmVuZGEubmV0PlxuICogYW5kIEtyaXMgS293YWwgPGNpeGFyLmNvbS9+a3Jpcy5rb3dhbC8+XG4gKlxuICogQWNjZXB0cyBhIGRhdGUsIGEgbWFzaywgb3IgYSBkYXRlIGFuZCBhIG1hc2suXG4gKiBSZXR1cm5zIGEgZm9ybWF0dGVkIHZlcnNpb24gb2YgdGhlIGdpdmVuIGRhdGUuXG4gKiBUaGUgZGF0ZSBkZWZhdWx0cyB0byB0aGUgY3VycmVudCBkYXRlL3RpbWUuXG4gKiBUaGUgbWFzayBkZWZhdWx0cyB0byBkYXRlRm9ybWF0Lm1hc2tzLmRlZmF1bHQuXG4gKi9cblxuKGZ1bmN0aW9uKGdsb2JhbCkge1xuICAndXNlIHN0cmljdCc7XG5cbiAgdmFyIGRhdGVGb3JtYXQgPSAoZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgdG9rZW4gPSAvZHsxLDR9fG17MSw0fXx5eSg/Onl5KT98KFtIaE1zVHRdKVxcMT98W0xsb1NaV05dfFwiW15cIl0qXCJ8J1teJ10qJy9nO1xuICAgICAgdmFyIHRpbWV6b25lID0gL1xcYig/OltQTUNFQV1bU0RQXVR8KD86UGFjaWZpY3xNb3VudGFpbnxDZW50cmFsfEVhc3Rlcm58QXRsYW50aWMpICg/OlN0YW5kYXJkfERheWxpZ2h0fFByZXZhaWxpbmcpIFRpbWV8KD86R01UfFVUQykoPzpbLStdXFxkezR9KT8pXFxiL2c7XG4gICAgICB2YXIgdGltZXpvbmVDbGlwID0gL1teLStcXGRBLVpdL2c7XG4gIFxuICAgICAgLy8gUmVnZXhlcyBhbmQgc3VwcG9ydGluZyBmdW5jdGlvbnMgYXJlIGNhY2hlZCB0aHJvdWdoIGNsb3N1cmVcbiAgICAgIHJldHVybiBmdW5jdGlvbiAoZGF0ZSwgbWFzaywgdXRjLCBnbXQpIHtcbiAgXG4gICAgICAgIC8vIFlvdSBjYW4ndCBwcm92aWRlIHV0YyBpZiB5b3Ugc2tpcCBvdGhlciBhcmdzICh1c2UgdGhlICdVVEM6JyBtYXNrIHByZWZpeClcbiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEgJiYga2luZE9mKGRhdGUpID09PSAnc3RyaW5nJyAmJiAhL1xcZC8udGVzdChkYXRlKSkge1xuICAgICAgICAgIG1hc2sgPSBkYXRlO1xuICAgICAgICAgIGRhdGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgXG4gICAgICAgIGRhdGUgPSBkYXRlIHx8IG5ldyBEYXRlO1xuICBcbiAgICAgICAgaWYoIShkYXRlIGluc3RhbmNlb2YgRGF0ZSkpIHtcbiAgICAgICAgICBkYXRlID0gbmV3IERhdGUoZGF0ZSk7XG4gICAgICAgIH1cbiAgXG4gICAgICAgIGlmIChpc05hTihkYXRlKSkge1xuICAgICAgICAgIHRocm93IFR5cGVFcnJvcignSW52YWxpZCBkYXRlJyk7XG4gICAgICAgIH1cbiAgXG4gICAgICAgIG1hc2sgPSBTdHJpbmcoZGF0ZUZvcm1hdC5tYXNrc1ttYXNrXSB8fCBtYXNrIHx8IGRhdGVGb3JtYXQubWFza3NbJ2RlZmF1bHQnXSk7XG4gIFxuICAgICAgICAvLyBBbGxvdyBzZXR0aW5nIHRoZSB1dGMvZ210IGFyZ3VtZW50IHZpYSB0aGUgbWFza1xuICAgICAgICB2YXIgbWFza1NsaWNlID0gbWFzay5zbGljZSgwLCA0KTtcbiAgICAgICAgaWYgKG1hc2tTbGljZSA9PT0gJ1VUQzonIHx8IG1hc2tTbGljZSA9PT0gJ0dNVDonKSB7XG4gICAgICAgICAgbWFzayA9IG1hc2suc2xpY2UoNCk7XG4gICAgICAgICAgdXRjID0gdHJ1ZTtcbiAgICAgICAgICBpZiAobWFza1NsaWNlID09PSAnR01UOicpIHtcbiAgICAgICAgICAgIGdtdCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gIFxuICAgICAgICB2YXIgXyA9IHV0YyA/ICdnZXRVVEMnIDogJ2dldCc7XG4gICAgICAgIHZhciBkID0gZGF0ZVtfICsgJ0RhdGUnXSgpO1xuICAgICAgICB2YXIgRCA9IGRhdGVbXyArICdEYXknXSgpO1xuICAgICAgICB2YXIgbSA9IGRhdGVbXyArICdNb250aCddKCk7XG4gICAgICAgIHZhciB5ID0gZGF0ZVtfICsgJ0Z1bGxZZWFyJ10oKTtcbiAgICAgICAgdmFyIEggPSBkYXRlW18gKyAnSG91cnMnXSgpO1xuICAgICAgICB2YXIgTSA9IGRhdGVbXyArICdNaW51dGVzJ10oKTtcbiAgICAgICAgdmFyIHMgPSBkYXRlW18gKyAnU2Vjb25kcyddKCk7XG4gICAgICAgIHZhciBMID0gZGF0ZVtfICsgJ01pbGxpc2Vjb25kcyddKCk7XG4gICAgICAgIHZhciBvID0gdXRjID8gMCA6IGRhdGUuZ2V0VGltZXpvbmVPZmZzZXQoKTtcbiAgICAgICAgdmFyIFcgPSBnZXRXZWVrKGRhdGUpO1xuICAgICAgICB2YXIgTiA9IGdldERheU9mV2VlayhkYXRlKTtcbiAgICAgICAgdmFyIGZsYWdzID0ge1xuICAgICAgICAgIGQ6ICAgIGQsXG4gICAgICAgICAgZGQ6ICAgcGFkKGQpLFxuICAgICAgICAgIGRkZDogIGRhdGVGb3JtYXQuaTE4bi5kYXlOYW1lc1tEXSxcbiAgICAgICAgICBkZGRkOiBkYXRlRm9ybWF0LmkxOG4uZGF5TmFtZXNbRCArIDddLFxuICAgICAgICAgIG06ICAgIG0gKyAxLFxuICAgICAgICAgIG1tOiAgIHBhZChtICsgMSksXG4gICAgICAgICAgbW1tOiAgZGF0ZUZvcm1hdC5pMThuLm1vbnRoTmFtZXNbbV0sXG4gICAgICAgICAgbW1tbTogZGF0ZUZvcm1hdC5pMThuLm1vbnRoTmFtZXNbbSArIDEyXSxcbiAgICAgICAgICB5eTogICBTdHJpbmcoeSkuc2xpY2UoMiksXG4gICAgICAgICAgeXl5eTogeSxcbiAgICAgICAgICBoOiAgICBIICUgMTIgfHwgMTIsXG4gICAgICAgICAgaGg6ICAgcGFkKEggJSAxMiB8fCAxMiksXG4gICAgICAgICAgSDogICAgSCxcbiAgICAgICAgICBISDogICBwYWQoSCksXG4gICAgICAgICAgTTogICAgTSxcbiAgICAgICAgICBNTTogICBwYWQoTSksXG4gICAgICAgICAgczogICAgcyxcbiAgICAgICAgICBzczogICBwYWQocyksXG4gICAgICAgICAgbDogICAgcGFkKEwsIDMpLFxuICAgICAgICAgIEw6ICAgIHBhZChNYXRoLnJvdW5kKEwgLyAxMCkpLFxuICAgICAgICAgIHQ6ICAgIEggPCAxMiA/IGRhdGVGb3JtYXQuaTE4bi50aW1lTmFtZXNbMF0gOiBkYXRlRm9ybWF0LmkxOG4udGltZU5hbWVzWzFdLFxuICAgICAgICAgIHR0OiAgIEggPCAxMiA/IGRhdGVGb3JtYXQuaTE4bi50aW1lTmFtZXNbMl0gOiBkYXRlRm9ybWF0LmkxOG4udGltZU5hbWVzWzNdLFxuICAgICAgICAgIFQ6ICAgIEggPCAxMiA/IGRhdGVGb3JtYXQuaTE4bi50aW1lTmFtZXNbNF0gOiBkYXRlRm9ybWF0LmkxOG4udGltZU5hbWVzWzVdLFxuICAgICAgICAgIFRUOiAgIEggPCAxMiA/IGRhdGVGb3JtYXQuaTE4bi50aW1lTmFtZXNbNl0gOiBkYXRlRm9ybWF0LmkxOG4udGltZU5hbWVzWzddLFxuICAgICAgICAgIFo6ICAgIGdtdCA/ICdHTVQnIDogdXRjID8gJ1VUQycgOiAoU3RyaW5nKGRhdGUpLm1hdGNoKHRpbWV6b25lKSB8fCBbJyddKS5wb3AoKS5yZXBsYWNlKHRpbWV6b25lQ2xpcCwgJycpLFxuICAgICAgICAgIG86ICAgIChvID4gMCA/ICctJyA6ICcrJykgKyBwYWQoTWF0aC5mbG9vcihNYXRoLmFicyhvKSAvIDYwKSAqIDEwMCArIE1hdGguYWJzKG8pICUgNjAsIDQpLFxuICAgICAgICAgIFM6ICAgIFsndGgnLCAnc3QnLCAnbmQnLCAncmQnXVtkICUgMTAgPiAzID8gMCA6IChkICUgMTAwIC0gZCAlIDEwICE9IDEwKSAqIGQgJSAxMF0sXG4gICAgICAgICAgVzogICAgVyxcbiAgICAgICAgICBOOiAgICBOXG4gICAgICAgIH07XG4gIFxuICAgICAgICByZXR1cm4gbWFzay5yZXBsYWNlKHRva2VuLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICBpZiAobWF0Y2ggaW4gZmxhZ3MpIHtcbiAgICAgICAgICAgIHJldHVybiBmbGFnc1ttYXRjaF07XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBtYXRjaC5zbGljZSgxLCBtYXRjaC5sZW5ndGggLSAxKTtcbiAgICAgICAgfSk7XG4gICAgICB9O1xuICAgIH0pKCk7XG5cbiAgZGF0ZUZvcm1hdC5tYXNrcyA9IHtcbiAgICAnZGVmYXVsdCc6ICAgICAgICAgICAgICAgJ2RkZCBtbW0gZGQgeXl5eSBISDpNTTpzcycsXG4gICAgJ3Nob3J0RGF0ZSc6ICAgICAgICAgICAgICdtL2QveXknLFxuICAgICdtZWRpdW1EYXRlJzogICAgICAgICAgICAnbW1tIGQsIHl5eXknLFxuICAgICdsb25nRGF0ZSc6ICAgICAgICAgICAgICAnbW1tbSBkLCB5eXl5JyxcbiAgICAnZnVsbERhdGUnOiAgICAgICAgICAgICAgJ2RkZGQsIG1tbW0gZCwgeXl5eScsXG4gICAgJ3Nob3J0VGltZSc6ICAgICAgICAgICAgICdoOk1NIFRUJyxcbiAgICAnbWVkaXVtVGltZSc6ICAgICAgICAgICAgJ2g6TU06c3MgVFQnLFxuICAgICdsb25nVGltZSc6ICAgICAgICAgICAgICAnaDpNTTpzcyBUVCBaJyxcbiAgICAnaXNvRGF0ZSc6ICAgICAgICAgICAgICAgJ3l5eXktbW0tZGQnLFxuICAgICdpc29UaW1lJzogICAgICAgICAgICAgICAnSEg6TU06c3MnLFxuICAgICdpc29EYXRlVGltZSc6ICAgICAgICAgICAneXl5eS1tbS1kZFxcJ1RcXCdISDpNTTpzc28nLFxuICAgICdpc29VdGNEYXRlVGltZSc6ICAgICAgICAnVVRDOnl5eXktbW0tZGRcXCdUXFwnSEg6TU06c3NcXCdaXFwnJyxcbiAgICAnZXhwaXJlc0hlYWRlckZvcm1hdCc6ICAgJ2RkZCwgZGQgbW1tIHl5eXkgSEg6TU06c3MgWidcbiAgfTtcblxuICAvLyBJbnRlcm5hdGlvbmFsaXphdGlvbiBzdHJpbmdzXG4gIGRhdGVGb3JtYXQuaTE4biA9IHtcbiAgICBkYXlOYW1lczogW1xuICAgICAgJ1N1bicsICdNb24nLCAnVHVlJywgJ1dlZCcsICdUaHUnLCAnRnJpJywgJ1NhdCcsXG4gICAgICAnU3VuZGF5JywgJ01vbmRheScsICdUdWVzZGF5JywgJ1dlZG5lc2RheScsICdUaHVyc2RheScsICdGcmlkYXknLCAnU2F0dXJkYXknXG4gICAgXSxcbiAgICBtb250aE5hbWVzOiBbXG4gICAgICAnSmFuJywgJ0ZlYicsICdNYXInLCAnQXByJywgJ01heScsICdKdW4nLCAnSnVsJywgJ0F1ZycsICdTZXAnLCAnT2N0JywgJ05vdicsICdEZWMnLFxuICAgICAgJ0phbnVhcnknLCAnRmVicnVhcnknLCAnTWFyY2gnLCAnQXByaWwnLCAnTWF5JywgJ0p1bmUnLCAnSnVseScsICdBdWd1c3QnLCAnU2VwdGVtYmVyJywgJ09jdG9iZXInLCAnTm92ZW1iZXInLCAnRGVjZW1iZXInXG4gICAgXSxcbiAgICB0aW1lTmFtZXM6IFtcbiAgICAgICdhJywgJ3AnLCAnYW0nLCAncG0nLCAnQScsICdQJywgJ0FNJywgJ1BNJ1xuICAgIF1cbiAgfTtcblxuZnVuY3Rpb24gcGFkKHZhbCwgbGVuKSB7XG4gIHZhbCA9IFN0cmluZyh2YWwpO1xuICBsZW4gPSBsZW4gfHwgMjtcbiAgd2hpbGUgKHZhbC5sZW5ndGggPCBsZW4pIHtcbiAgICB2YWwgPSAnMCcgKyB2YWw7XG4gIH1cbiAgcmV0dXJuIHZhbDtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIElTTyA4NjAxIHdlZWsgbnVtYmVyXG4gKiBCYXNlZCBvbiBjb21tZW50cyBmcm9tXG4gKiBodHRwOi8vdGVjaGJsb2cucHJvY3VyaW9zLm5sL2svbjYxOC9uZXdzL3ZpZXcvMzM3OTYvMTQ4NjMvQ2FsY3VsYXRlLUlTTy04NjAxLXdlZWstYW5kLXllYXItaW4tamF2YXNjcmlwdC5odG1sXG4gKlxuICogQHBhcmFtICB7T2JqZWN0fSBgZGF0ZWBcbiAqIEByZXR1cm4ge051bWJlcn1cbiAqL1xuZnVuY3Rpb24gZ2V0V2VlayhkYXRlKSB7XG4gIC8vIFJlbW92ZSB0aW1lIGNvbXBvbmVudHMgb2YgZGF0ZVxuICB2YXIgdGFyZ2V0VGh1cnNkYXkgPSBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgZGF0ZS5nZXREYXRlKCkpO1xuXG4gIC8vIENoYW5nZSBkYXRlIHRvIFRodXJzZGF5IHNhbWUgd2Vla1xuICB0YXJnZXRUaHVyc2RheS5zZXREYXRlKHRhcmdldFRodXJzZGF5LmdldERhdGUoKSAtICgodGFyZ2V0VGh1cnNkYXkuZ2V0RGF5KCkgKyA2KSAlIDcpICsgMyk7XG5cbiAgLy8gVGFrZSBKYW51YXJ5IDR0aCBhcyBpdCBpcyBhbHdheXMgaW4gd2VlayAxIChzZWUgSVNPIDg2MDEpXG4gIHZhciBmaXJzdFRodXJzZGF5ID0gbmV3IERhdGUodGFyZ2V0VGh1cnNkYXkuZ2V0RnVsbFllYXIoKSwgMCwgNCk7XG5cbiAgLy8gQ2hhbmdlIGRhdGUgdG8gVGh1cnNkYXkgc2FtZSB3ZWVrXG4gIGZpcnN0VGh1cnNkYXkuc2V0RGF0ZShmaXJzdFRodXJzZGF5LmdldERhdGUoKSAtICgoZmlyc3RUaHVyc2RheS5nZXREYXkoKSArIDYpICUgNykgKyAzKTtcblxuICAvLyBDaGVjayBpZiBkYXlsaWdodC1zYXZpbmctdGltZS1zd2l0Y2ggb2NjdXJyZWQgYW5kIGNvcnJlY3QgZm9yIGl0XG4gIHZhciBkcyA9IHRhcmdldFRodXJzZGF5LmdldFRpbWV6b25lT2Zmc2V0KCkgLSBmaXJzdFRodXJzZGF5LmdldFRpbWV6b25lT2Zmc2V0KCk7XG4gIHRhcmdldFRodXJzZGF5LnNldEhvdXJzKHRhcmdldFRodXJzZGF5LmdldEhvdXJzKCkgLSBkcyk7XG5cbiAgLy8gTnVtYmVyIG9mIHdlZWtzIGJldHdlZW4gdGFyZ2V0IFRodXJzZGF5IGFuZCBmaXJzdCBUaHVyc2RheVxuICB2YXIgd2Vla0RpZmYgPSAodGFyZ2V0VGh1cnNkYXkgLSBmaXJzdFRodXJzZGF5KSAvICg4NjQwMDAwMCo3KTtcbiAgcmV0dXJuIDEgKyBNYXRoLmZsb29yKHdlZWtEaWZmKTtcbn1cblxuLyoqXG4gKiBHZXQgSVNPLTg2MDEgbnVtZXJpYyByZXByZXNlbnRhdGlvbiBvZiB0aGUgZGF5IG9mIHRoZSB3ZWVrXG4gKiAxIChmb3IgTW9uZGF5KSB0aHJvdWdoIDcgKGZvciBTdW5kYXkpXG4gKiBcbiAqIEBwYXJhbSAge09iamVjdH0gYGRhdGVgXG4gKiBAcmV0dXJuIHtOdW1iZXJ9XG4gKi9cbmZ1bmN0aW9uIGdldERheU9mV2VlayhkYXRlKSB7XG4gIHZhciBkb3cgPSBkYXRlLmdldERheSgpO1xuICBpZihkb3cgPT09IDApIHtcbiAgICBkb3cgPSA3O1xuICB9XG4gIHJldHVybiBkb3c7XG59XG5cbi8qKlxuICoga2luZC1vZiBzaG9ydGN1dFxuICogQHBhcmFtICB7Kn0gdmFsXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGtpbmRPZih2YWwpIHtcbiAgaWYgKHZhbCA9PT0gbnVsbCkge1xuICAgIHJldHVybiAnbnVsbCc7XG4gIH1cblxuICBpZiAodmFsID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gJ3VuZGVmaW5lZCc7XG4gIH1cblxuICBpZiAodHlwZW9mIHZhbCAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gdHlwZW9mIHZhbDtcbiAgfVxuXG4gIGlmIChBcnJheS5pc0FycmF5KHZhbCkpIHtcbiAgICByZXR1cm4gJ2FycmF5JztcbiAgfVxuXG4gIHJldHVybiB7fS50b1N0cmluZy5jYWxsKHZhbClcbiAgICAuc2xpY2UoOCwgLTEpLnRvTG93ZXJDYXNlKCk7XG59O1xuXG5cblxuICBpZiAodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKSB7XG4gICAgZGVmaW5lKGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBkYXRlRm9ybWF0O1xuICAgIH0pO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0Jykge1xuICAgIG1vZHVsZS5leHBvcnRzID0gZGF0ZUZvcm1hdDtcbiAgfSBlbHNlIHtcbiAgICBnbG9iYWwuZGF0ZUZvcm1hdCA9IGRhdGVGb3JtYXQ7XG4gIH1cbn0pKHRoaXMpO1xuIiwiLyohXG4gKiBwYWQtbGVmdCA8aHR0cHM6Ly9naXRodWIuY29tL2pvbnNjaGxpbmtlcnQvcGFkLWxlZnQ+XG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDE0LTIwMTUsIEpvbiBTY2hsaW5rZXJ0LlxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIHJlcGVhdCA9IHJlcXVpcmUoJ3JlcGVhdC1zdHJpbmcnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBwYWRMZWZ0KHN0ciwgbnVtLCBjaCkge1xuICBzdHIgPSBzdHIudG9TdHJpbmcoKTtcblxuICBpZiAodHlwZW9mIG51bSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm4gc3RyO1xuICB9XG5cbiAgaWYgKGNoID09PSAwKSB7XG4gICAgY2ggPSAnMCc7XG4gIH0gZWxzZSBpZiAoY2gpIHtcbiAgICBjaCA9IGNoLnRvU3RyaW5nKCk7XG4gIH0gZWxzZSB7XG4gICAgY2ggPSAnICc7XG4gIH1cblxuICByZXR1cm4gcmVwZWF0KGNoLCBudW0gLSBzdHIubGVuZ3RoKSArIHN0cjtcbn07XG4iLCJpbXBvcnQgZGF0ZWZvcm1hdCBmcm9tICdkYXRlZm9ybWF0JztcbmltcG9ydCBhc3NpZ24gZnJvbSAnb2JqZWN0LWFzc2lnbic7XG5pbXBvcnQgcGFkTGVmdCBmcm9tICdwYWQtbGVmdCc7XG5pbXBvcnQgeyBnZXRDbGllbnRBUEkgfSBmcm9tICcuL3V0aWwnO1xuXG5jb25zdCBub29wID0gKCkgPT4ge307XG5sZXQgbGluaztcbmxldCBkZWZhdWx0RXh0cyA9IHsgZXh0ZW5zaW9uOiAnJywgcHJlZml4OiAnJywgc3VmZml4OiAnJyB9O1xuXG4vLyBBbHRlcm5hdGl2ZSBzb2x1dGlvbiBmb3Igc2F2aW5nIGZpbGVzLFxuLy8gYSBiaXQgc2xvd2VyIGFuZCBkb2VzIG5vdCB3b3JrIGluIFNhZmFyaVxuLy8gZnVuY3Rpb24gZmV0Y2hCbG9iRnJvbURhdGFVUkwgKGRhdGFVUkwpIHtcbi8vICAgcmV0dXJuIHdpbmRvdy5mZXRjaChkYXRhVVJMKS50aGVuKHJlcyA9PiByZXMuYmxvYigpKTtcbi8vIH1cblxuY29uc3Qgc3VwcG9ydGVkRW5jb2RpbmdzID0gW1xuICAnaW1hZ2UvcG5nJyxcbiAgJ2ltYWdlL2pwZWcnLFxuICAnaW1hZ2Uvd2VicCdcbl07XG5cbmZ1bmN0aW9uIHN0cmVhbSAoaXNTdGFydCwgb3B0cyA9IHt9KSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgb3B0cyA9IGFzc2lnbih7fSwgZGVmYXVsdEV4dHMsIG9wdHMpO1xuICAgIGNvbnN0IGZpbGVuYW1lID0gcmVzb2x2ZUZpbGVuYW1lKE9iamVjdC5hc3NpZ24oe30sIG9wdHMsIHtcbiAgICAgIGV4dGVuc2lvbjogJycsXG4gICAgICBmcmFtZTogdW5kZWZpbmVkXG4gICAgfSkpO1xuICAgIGNvbnN0IGZ1bmMgPSBpc1N0YXJ0ID8gJ3N0cmVhbVN0YXJ0JyA6ICdzdHJlYW1FbmQnO1xuICAgIGNvbnN0IGNsaWVudCA9IGdldENsaWVudEFQSSgpO1xuICAgIGlmIChjbGllbnQgJiYgY2xpZW50Lm91dHB1dCAmJiB0eXBlb2YgY2xpZW50W2Z1bmNdID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gY2xpZW50W2Z1bmNdKGFzc2lnbih7fSwgb3B0cywgeyBmaWxlbmFtZSB9KSlcbiAgICAgICAgLnRoZW4oZXYgPT4gcmVzb2x2ZShldikpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gcmVzb2x2ZSh7IGZpbGVuYW1lLCBjbGllbnQ6IGZhbHNlIH0pO1xuICAgIH1cbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdHJlYW1TdGFydCAob3B0cyA9IHt9KSB7XG4gIHJldHVybiBzdHJlYW0odHJ1ZSwgb3B0cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdHJlYW1FbmQgKG9wdHMgPSB7fSkge1xuICByZXR1cm4gc3RyZWFtKGZhbHNlLCBvcHRzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4cG9ydENhbnZhcyAoY2FudmFzLCBvcHQgPSB7fSkge1xuICBjb25zdCBlbmNvZGluZyA9IG9wdC5lbmNvZGluZyB8fCAnaW1hZ2UvcG5nJztcbiAgaWYgKCFzdXBwb3J0ZWRFbmNvZGluZ3MuaW5jbHVkZXMoZW5jb2RpbmcpKSB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgY2FudmFzIGVuY29kaW5nICR7ZW5jb2Rpbmd9YCk7XG4gIGxldCBleHRlbnNpb24gPSAoZW5jb2Rpbmcuc3BsaXQoJy8nKVsxXSB8fCAnJykucmVwbGFjZSgvanBlZy9pLCAnanBnJyk7XG4gIGlmIChleHRlbnNpb24pIGV4dGVuc2lvbiA9IGAuJHtleHRlbnNpb259YC50b0xvd2VyQ2FzZSgpO1xuICByZXR1cm4ge1xuICAgIGV4dGVuc2lvbixcbiAgICB0eXBlOiBlbmNvZGluZyxcbiAgICBkYXRhVVJMOiBjYW52YXMudG9EYXRhVVJMKGVuY29kaW5nLCBvcHQuZW5jb2RpbmdRdWFsaXR5KVxuICB9O1xufVxuXG5mdW5jdGlvbiBjcmVhdGVCbG9iRnJvbURhdGFVUkwgKGRhdGFVUkwpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgY29uc3Qgc3BsaXRJbmRleCA9IGRhdGFVUkwuaW5kZXhPZignLCcpO1xuICAgIGlmIChzcGxpdEluZGV4ID09PSAtMSkge1xuICAgICAgcmVzb2x2ZShuZXcgd2luZG93LkJsb2IoKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGJhc2U2NCA9IGRhdGFVUkwuc2xpY2Uoc3BsaXRJbmRleCArIDEpO1xuICAgIGNvbnN0IGJ5dGVTdHJpbmcgPSB3aW5kb3cuYXRvYihiYXNlNjQpO1xuICAgIGNvbnN0IHR5cGUgPSBkYXRhVVJMLnNsaWNlKDAsIHNwbGl0SW5kZXgpO1xuICAgIGNvbnN0IG1pbWVNYXRjaCA9IC9kYXRhOihbXjtdKykvLmV4ZWModHlwZSk7XG4gICAgY29uc3QgbWltZSA9IChtaW1lTWF0Y2ggPyBtaW1lTWF0Y2hbMV0gOiAnJykgfHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IGFiID0gbmV3IEFycmF5QnVmZmVyKGJ5dGVTdHJpbmcubGVuZ3RoKTtcbiAgICBjb25zdCBpYSA9IG5ldyBVaW50OEFycmF5KGFiKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJ5dGVTdHJpbmcubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlhW2ldID0gYnl0ZVN0cmluZy5jaGFyQ29kZUF0KGkpO1xuICAgIH1cbiAgICByZXNvbHZlKG5ldyB3aW5kb3cuQmxvYihbIGFiIF0sIHsgdHlwZTogbWltZSB9KSk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2F2ZURhdGFVUkwgKGRhdGFVUkwsIG9wdHMgPSB7fSkge1xuICByZXR1cm4gY3JlYXRlQmxvYkZyb21EYXRhVVJMKGRhdGFVUkwpXG4gICAgLnRoZW4oYmxvYiA9PiBzYXZlQmxvYihibG9iLCBvcHRzKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzYXZlQmxvYiAoYmxvYiwgb3B0cyA9IHt9KSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICBvcHRzID0gYXNzaWduKHt9LCBkZWZhdWx0RXh0cywgb3B0cyk7XG4gICAgY29uc3QgZmlsZW5hbWUgPSBvcHRzLmZpbGVuYW1lO1xuXG4gICAgY29uc3QgY2xpZW50ID0gZ2V0Q2xpZW50QVBJKCk7XG4gICAgaWYgKGNsaWVudCAmJiB0eXBlb2YgY2xpZW50LnNhdmVCbG9iID09PSAnZnVuY3Rpb24nICYmIGNsaWVudC5vdXRwdXQpIHtcbiAgICAgIC8vIG5hdGl2ZSBzYXZpbmcgdXNpbmcgYSBDTEkgdG9vbFxuICAgICAgcmV0dXJuIGNsaWVudC5zYXZlQmxvYihibG9iLCBhc3NpZ24oe30sIG9wdHMsIHsgZmlsZW5hbWUgfSkpXG4gICAgICAgIC50aGVuKGV2ID0+IHJlc29sdmUoZXYpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gZm9yY2UgZG93bmxvYWRcbiAgICAgIGlmICghbGluaykge1xuICAgICAgICBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgICAgICBsaW5rLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcbiAgICAgICAgbGluay50YXJnZXQgPSAnX2JsYW5rJztcbiAgICAgIH1cbiAgICAgIGxpbmsuZG93bmxvYWQgPSBmaWxlbmFtZTtcbiAgICAgIGxpbmsuaHJlZiA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaW5rKTtcbiAgICAgIGxpbmsub25jbGljayA9ICgpID0+IHtcbiAgICAgICAgbGluay5vbmNsaWNrID0gbm9vcDtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgd2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwoYmxvYik7XG4gICAgICAgICAgaWYgKGxpbmsucGFyZW50RWxlbWVudCkgbGluay5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKGxpbmspO1xuICAgICAgICAgIGxpbmsucmVtb3ZlQXR0cmlidXRlKCdocmVmJyk7XG4gICAgICAgICAgcmVzb2x2ZSh7IGZpbGVuYW1lLCBjbGllbnQ6IGZhbHNlIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH07XG4gICAgICBsaW5rLmNsaWNrKCk7XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNhdmVGaWxlIChkYXRhLCBvcHRzID0ge30pIHtcbiAgY29uc3QgcGFydHMgPSBBcnJheS5pc0FycmF5KGRhdGEpID8gZGF0YSA6IFsgZGF0YSBdO1xuICBjb25zdCBibG9iID0gbmV3IHdpbmRvdy5CbG9iKHBhcnRzLCB7IHR5cGU6IG9wdHMudHlwZSB8fCAnJyB9KTtcbiAgcmV0dXJuIHNhdmVCbG9iKGJsb2IsIG9wdHMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGltZVN0YW1wICgpIHtcbiAgY29uc3QgZGF0ZUZvcm1hdFN0ciA9IGB5eXl5Lm1tLmRkLUhILk1NLnNzYDtcbiAgcmV0dXJuIGRhdGVmb3JtYXQobmV3IERhdGUoKSwgZGF0ZUZvcm1hdFN0cik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0RmlsZSAocHJlZml4ID0gJycsIHN1ZmZpeCA9ICcnLCBleHQpIHtcbiAgLy8gY29uc3QgZGF0ZUZvcm1hdFN0ciA9IGB5eXl5Lm1tLmRkLUhILk1NLnNzYDtcbiAgY29uc3QgZGF0ZUZvcm1hdFN0ciA9IGB5eXl5LW1tLWRkICdhdCcgaC5NTS5zcyBUVGA7XG4gIHJldHVybiBgJHtwcmVmaXh9JHtkYXRlZm9ybWF0KG5ldyBEYXRlKCksIGRhdGVGb3JtYXRTdHIpfSR7c3VmZml4fSR7ZXh0fWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlRmlsZW5hbWUgKG9wdCA9IHt9KSB7XG4gIG9wdCA9IGFzc2lnbih7fSwgb3B0KTtcblxuICAvLyBDdXN0b20gZmlsZW5hbWUgZnVuY3Rpb25cbiAgaWYgKHR5cGVvZiBvcHQuZmlsZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBvcHQuZmlsZShvcHQpO1xuICB9IGVsc2UgaWYgKG9wdC5maWxlKSB7XG4gICAgcmV0dXJuIG9wdC5maWxlO1xuICB9XG5cbiAgbGV0IGZyYW1lID0gbnVsbDtcbiAgbGV0IGV4dGVuc2lvbiA9ICcnO1xuICBpZiAodHlwZW9mIG9wdC5leHRlbnNpb24gPT09ICdzdHJpbmcnKSBleHRlbnNpb24gPSBvcHQuZXh0ZW5zaW9uO1xuXG4gIGlmICh0eXBlb2Ygb3B0LmZyYW1lID09PSAnbnVtYmVyJykge1xuICAgIGxldCB0b3RhbEZyYW1lcztcbiAgICBpZiAodHlwZW9mIG9wdC50b3RhbEZyYW1lcyA9PT0gJ251bWJlcicpIHtcbiAgICAgIHRvdGFsRnJhbWVzID0gb3B0LnRvdGFsRnJhbWVzO1xuICAgIH0gZWxzZSB7XG4gICAgICB0b3RhbEZyYW1lcyA9IE1hdGgubWF4KDEwMDAwLCBvcHQuZnJhbWUpO1xuICAgIH1cbiAgICBmcmFtZSA9IHBhZExlZnQoU3RyaW5nKG9wdC5mcmFtZSksIFN0cmluZyh0b3RhbEZyYW1lcykubGVuZ3RoLCAnMCcpO1xuICB9XG5cbiAgY29uc3QgbGF5ZXJTdHIgPSBpc0Zpbml0ZShvcHQudG90YWxMYXllcnMpICYmIGlzRmluaXRlKG9wdC5sYXllcikgJiYgb3B0LnRvdGFsTGF5ZXJzID4gMSA/IGAke29wdC5sYXllcn1gIDogJyc7XG4gIGlmIChmcmFtZSAhPSBudWxsKSB7XG4gICAgcmV0dXJuIFsgbGF5ZXJTdHIsIGZyYW1lIF0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oJy0nKSArIGV4dGVuc2lvbjtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBkZWZhdWx0RmlsZU5hbWUgPSBvcHQudGltZVN0YW1wO1xuICAgIHJldHVybiBbIG9wdC5wcmVmaXgsIG9wdC5uYW1lIHx8IGRlZmF1bHRGaWxlTmFtZSwgbGF5ZXJTdHIsIG9wdC5oYXNoLCBvcHQuc3VmZml4IF0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oJy0nKSArIGV4dGVuc2lvbjtcbiAgfVxufVxuIiwiLy8gSGFuZGxlIHNvbWUgY29tbW9uIHR5cG9zXG5jb25zdCBjb21tb25UeXBvcyA9IHtcbiAgZGltZW5zaW9uOiAnZGltZW5zaW9ucycsXG4gIGFuaW1hdGVkOiAnYW5pbWF0ZScsXG4gIGFuaW1hdGluZzogJ2FuaW1hdGUnLFxuICB1bml0OiAndW5pdHMnLFxuICBQNTogJ3A1JyxcbiAgcGl4ZWxsYXRlZDogJ3BpeGVsYXRlZCcsXG4gIGxvb3Bpbmc6ICdsb29wJyxcbiAgcGl4ZWxQZXJJbmNoOiAncGl4ZWxzJ1xufTtcblxuLy8gSGFuZGxlIGFsbCBvdGhlciB0eXBvc1xuY29uc3QgYWxsS2V5cyA9IFtcbiAgJ2RpbWVuc2lvbnMnLCAndW5pdHMnLCAncGl4ZWxzUGVySW5jaCcsICdvcmllbnRhdGlvbicsXG4gICdzY2FsZVRvRml0JywgJ3NjYWxlVG9WaWV3JywgJ2JsZWVkJywgJ3BpeGVsUmF0aW8nLFxuICAnZXhwb3J0UGl4ZWxSYXRpbycsICdtYXhQaXhlbFJhdGlvJywgJ3NjYWxlQ29udGV4dCcsXG4gICdyZXNpemVDYW52YXMnLCAnc3R5bGVDYW52YXMnLCAnY2FudmFzJywgJ2NvbnRleHQnLCAnYXR0cmlidXRlcycsXG4gICdwYXJlbnQnLCAnZmlsZScsICduYW1lJywgJ3ByZWZpeCcsICdzdWZmaXgnLCAnYW5pbWF0ZScsICdwbGF5aW5nJyxcbiAgJ2xvb3AnLCAnZHVyYXRpb24nLCAndG90YWxGcmFtZXMnLCAnZnBzJywgJ3BsYXliYWNrUmF0ZScsICd0aW1lU2NhbGUnLFxuICAnZnJhbWUnLCAndGltZScsICdmbHVzaCcsICdwaXhlbGF0ZWQnLCAnaG90a2V5cycsICdwNScsICdpZCcsXG4gICdzY2FsZVRvRml0UGFkZGluZycsICdkYXRhJywgJ3BhcmFtcycsICdlbmNvZGluZycsICdlbmNvZGluZ1F1YWxpdHknXG5dO1xuXG4vLyBUaGlzIGlzIGZhaXJseSBvcGluaW9uYXRlZCBhbmQgZm9yY2VzIHVzZXJzIHRvIHVzZSB0aGUgJ2RhdGEnIHBhcmFtZXRlclxuLy8gaWYgdGhleSB3YW50IHRvIHBhc3MgYWxvbmcgbm9uLXNldHRpbmcgb2JqZWN0cy4uLlxuZXhwb3J0IGNvbnN0IGNoZWNrU2V0dGluZ3MgPSAoc2V0dGluZ3MpID0+IHtcbiAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHNldHRpbmdzKTtcbiAga2V5cy5mb3JFYWNoKGtleSA9PiB7XG4gICAgaWYgKGtleSBpbiBjb21tb25UeXBvcykge1xuICAgICAgY29uc3QgYWN0dWFsID0gY29tbW9uVHlwb3Nba2V5XTtcbiAgICAgIGNvbnNvbGUud2FybihgW2NhbnZhcy1za2V0Y2hdIENvdWxkIG5vdCByZWNvZ25pemUgdGhlIHNldHRpbmcgXCIke2tleX1cIiwgZGlkIHlvdSBtZWFuIFwiJHthY3R1YWx9XCI/YCk7XG4gICAgfSBlbHNlIGlmICghYWxsS2V5cy5pbmNsdWRlcyhrZXkpKSB7XG4gICAgICBjb25zb2xlLndhcm4oYFtjYW52YXMtc2tldGNoXSBDb3VsZCBub3QgcmVjb2duaXplIHRoZSBzZXR0aW5nIFwiJHtrZXl9XCJgKTtcbiAgICB9XG4gIH0pO1xufTtcbiIsImNvbnN0IGRlZmF1bHRVbml0cyA9ICdtbSc7XG5cbmNvbnN0IGRhdGEgPSBbXG4gIC8vIENvbW1vbiBQYXBlciBTaXplc1xuICAvLyAoTW9zdGx5IE5vcnRoLUFtZXJpY2FuIGJhc2VkKVxuICBbICdwb3N0Y2FyZCcsIDEwMS42LCAxNTIuNCBdLFxuICBbICdwb3N0ZXItc21hbGwnLCAyODAsIDQzMCBdLFxuICBbICdwb3N0ZXInLCA0NjAsIDYxMCBdLFxuICBbICdwb3N0ZXItbGFyZ2UnLCA2MTAsIDkxMCBdLFxuICBbICdidXNpbmVzcy1jYXJkJywgNTAuOCwgODguOSBdLFxuXG4gIC8vIFBob3RvZ3JhcGhpYyBQcmludCBQYXBlciBTaXplc1xuICBbICcycicsIDY0LCA4OSBdLFxuICBbICczcicsIDg5LCAxMjcgXSxcbiAgWyAnNHInLCAxMDIsIDE1MiBdLFxuICBbICc1cicsIDEyNywgMTc4IF0sIC8vIDXigLN4N+KAs1xuICBbICc2cicsIDE1MiwgMjAzIF0sIC8vIDbigLN4OOKAs1xuICBbICc4cicsIDIwMywgMjU0IF0sIC8vIDjigLN4MTDigLNcbiAgWyAnMTByJywgMjU0LCAzMDUgXSwgLy8gMTDigLN4MTLigLNcbiAgWyAnMTFyJywgMjc5LCAzNTYgXSwgLy8gMTHigLN4MTTigLNcbiAgWyAnMTJyJywgMzA1LCAzODEgXSxcblxuICAvLyBTdGFuZGFyZCBQYXBlciBTaXplc1xuICBbICdhMCcsIDg0MSwgMTE4OSBdLFxuICBbICdhMScsIDU5NCwgODQxIF0sXG4gIFsgJ2EyJywgNDIwLCA1OTQgXSxcbiAgWyAnYTMnLCAyOTcsIDQyMCBdLFxuICBbICdhNCcsIDIxMCwgMjk3IF0sXG4gIFsgJ2E1JywgMTQ4LCAyMTAgXSxcbiAgWyAnYTYnLCAxMDUsIDE0OCBdLFxuICBbICdhNycsIDc0LCAxMDUgXSxcbiAgWyAnYTgnLCA1MiwgNzQgXSxcbiAgWyAnYTknLCAzNywgNTIgXSxcbiAgWyAnYTEwJywgMjYsIDM3IF0sXG4gIFsgJzJhMCcsIDExODksIDE2ODIgXSxcbiAgWyAnNGEwJywgMTY4MiwgMjM3OCBdLFxuICBbICdiMCcsIDEwMDAsIDE0MTQgXSxcbiAgWyAnYjEnLCA3MDcsIDEwMDAgXSxcbiAgWyAnYjErJywgNzIwLCAxMDIwIF0sXG4gIFsgJ2IyJywgNTAwLCA3MDcgXSxcbiAgWyAnYjIrJywgNTIwLCA3MjAgXSxcbiAgWyAnYjMnLCAzNTMsIDUwMCBdLFxuICBbICdiNCcsIDI1MCwgMzUzIF0sXG4gIFsgJ2I1JywgMTc2LCAyNTAgXSxcbiAgWyAnYjYnLCAxMjUsIDE3NiBdLFxuICBbICdiNycsIDg4LCAxMjUgXSxcbiAgWyAnYjgnLCA2MiwgODggXSxcbiAgWyAnYjknLCA0NCwgNjIgXSxcbiAgWyAnYjEwJywgMzEsIDQ0IF0sXG4gIFsgJ2IxMScsIDIyLCAzMiBdLFxuICBbICdiMTInLCAxNiwgMjIgXSxcbiAgWyAnYzAnLCA5MTcsIDEyOTcgXSxcbiAgWyAnYzEnLCA2NDgsIDkxNyBdLFxuICBbICdjMicsIDQ1OCwgNjQ4IF0sXG4gIFsgJ2MzJywgMzI0LCA0NTggXSxcbiAgWyAnYzQnLCAyMjksIDMyNCBdLFxuICBbICdjNScsIDE2MiwgMjI5IF0sXG4gIFsgJ2M2JywgMTE0LCAxNjIgXSxcbiAgWyAnYzcnLCA4MSwgMTE0IF0sXG4gIFsgJ2M4JywgNTcsIDgxIF0sXG4gIFsgJ2M5JywgNDAsIDU3IF0sXG4gIFsgJ2MxMCcsIDI4LCA0MCBdLFxuICBbICdjMTEnLCAyMiwgMzIgXSxcbiAgWyAnYzEyJywgMTYsIDIyIF0sXG5cbiAgLy8gVXNlIGluY2hlcyBmb3IgTm9ydGggQW1lcmljYW4gc2l6ZXMsXG4gIC8vIGFzIGl0IHByb2R1Y2VzIGxlc3MgZmxvYXQgcHJlY2lzaW9uIGVycm9yc1xuICBbICdoYWxmLWxldHRlcicsIDUuNSwgOC41LCAnaW4nIF0sXG4gIFsgJ2xldHRlcicsIDguNSwgMTEsICdpbicgXSxcbiAgWyAnbGVnYWwnLCA4LjUsIDE0LCAnaW4nIF0sXG4gIFsgJ2p1bmlvci1sZWdhbCcsIDUsIDgsICdpbicgXSxcbiAgWyAnbGVkZ2VyJywgMTEsIDE3LCAnaW4nIF0sXG4gIFsgJ3RhYmxvaWQnLCAxMSwgMTcsICdpbicgXSxcbiAgWyAnYW5zaS1hJywgOC41LCAxMS4wLCAnaW4nIF0sXG4gIFsgJ2Fuc2ktYicsIDExLjAsIDE3LjAsICdpbicgXSxcbiAgWyAnYW5zaS1jJywgMTcuMCwgMjIuMCwgJ2luJyBdLFxuICBbICdhbnNpLWQnLCAyMi4wLCAzNC4wLCAnaW4nIF0sXG4gIFsgJ2Fuc2ktZScsIDM0LjAsIDQ0LjAsICdpbicgXSxcbiAgWyAnYXJjaC1hJywgOSwgMTIsICdpbicgXSxcbiAgWyAnYXJjaC1iJywgMTIsIDE4LCAnaW4nIF0sXG4gIFsgJ2FyY2gtYycsIDE4LCAyNCwgJ2luJyBdLFxuICBbICdhcmNoLWQnLCAyNCwgMzYsICdpbicgXSxcbiAgWyAnYXJjaC1lJywgMzYsIDQ4LCAnaW4nIF0sXG4gIFsgJ2FyY2gtZTEnLCAzMCwgNDIsICdpbicgXSxcbiAgWyAnYXJjaC1lMicsIDI2LCAzOCwgJ2luJyBdLFxuICBbICdhcmNoLWUzJywgMjcsIDM5LCAnaW4nIF1cbl07XG5cbmV4cG9ydCBkZWZhdWx0IGRhdGEucmVkdWNlKChkaWN0LCBwcmVzZXQpID0+IHtcbiAgY29uc3QgaXRlbSA9IHtcbiAgICB1bml0czogcHJlc2V0WzNdIHx8IGRlZmF1bHRVbml0cyxcbiAgICBkaW1lbnNpb25zOiBbIHByZXNldFsxXSwgcHJlc2V0WzJdIF1cbiAgfTtcbiAgZGljdFtwcmVzZXRbMF1dID0gaXRlbTtcbiAgZGljdFtwcmVzZXRbMF0ucmVwbGFjZSgvLS9nLCAnICcpXSA9IGl0ZW07XG4gIHJldHVybiBkaWN0O1xufSwge30pO1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKGFyZ3VtZW50c1tpXSAhPT0gdW5kZWZpbmVkKSByZXR1cm4gYXJndW1lbnRzW2ldO1xuICAgIH1cbn07XG4iLCJ2YXIgZGVmaW5lZCA9IHJlcXVpcmUoJ2RlZmluZWQnKTtcbnZhciB1bml0cyA9IFsgJ21tJywgJ2NtJywgJ20nLCAncGMnLCAncHQnLCAnaW4nLCAnZnQnLCAncHgnIF07XG5cbnZhciBjb252ZXJzaW9ucyA9IHtcbiAgLy8gbWV0cmljXG4gIG06IHtcbiAgICBzeXN0ZW06ICdtZXRyaWMnLFxuICAgIGZhY3RvcjogMVxuICB9LFxuICBjbToge1xuICAgIHN5c3RlbTogJ21ldHJpYycsXG4gICAgZmFjdG9yOiAxIC8gMTAwXG4gIH0sXG4gIG1tOiB7XG4gICAgc3lzdGVtOiAnbWV0cmljJyxcbiAgICBmYWN0b3I6IDEgLyAxMDAwXG4gIH0sXG4gIC8vIGltcGVyaWFsXG4gIHB0OiB7XG4gICAgc3lzdGVtOiAnaW1wZXJpYWwnLFxuICAgIGZhY3RvcjogMSAvIDcyXG4gIH0sXG4gIHBjOiB7XG4gICAgc3lzdGVtOiAnaW1wZXJpYWwnLFxuICAgIGZhY3RvcjogMSAvIDZcbiAgfSxcbiAgaW46IHtcbiAgICBzeXN0ZW06ICdpbXBlcmlhbCcsXG4gICAgZmFjdG9yOiAxXG4gIH0sXG4gIGZ0OiB7XG4gICAgc3lzdGVtOiAnaW1wZXJpYWwnLFxuICAgIGZhY3RvcjogMTJcbiAgfVxufTtcblxuY29uc3QgYW5jaG9ycyA9IHtcbiAgbWV0cmljOiB7XG4gICAgdW5pdDogJ20nLFxuICAgIHJhdGlvOiAxIC8gMC4wMjU0XG4gIH0sXG4gIGltcGVyaWFsOiB7XG4gICAgdW5pdDogJ2luJyxcbiAgICByYXRpbzogMC4wMjU0XG4gIH1cbn07XG5cbmZ1bmN0aW9uIHJvdW5kICh2YWx1ZSwgZGVjaW1hbHMpIHtcbiAgcmV0dXJuIE51bWJlcihNYXRoLnJvdW5kKHZhbHVlICsgJ2UnICsgZGVjaW1hbHMpICsgJ2UtJyArIGRlY2ltYWxzKTtcbn1cblxuZnVuY3Rpb24gY29udmVydERpc3RhbmNlICh2YWx1ZSwgZnJvbVVuaXQsIHRvVW5pdCwgb3B0cykge1xuICBpZiAodHlwZW9mIHZhbHVlICE9PSAnbnVtYmVyJyB8fCAhaXNGaW5pdGUodmFsdWUpKSB0aHJvdyBuZXcgRXJyb3IoJ1ZhbHVlIG11c3QgYmUgYSBmaW5pdGUgbnVtYmVyJyk7XG4gIGlmICghZnJvbVVuaXQgfHwgIXRvVW5pdCkgdGhyb3cgbmV3IEVycm9yKCdNdXN0IHNwZWNpZnkgZnJvbSBhbmQgdG8gdW5pdHMnKTtcblxuICBvcHRzID0gb3B0cyB8fCB7fTtcbiAgdmFyIHBpeGVsc1BlckluY2ggPSBkZWZpbmVkKG9wdHMucGl4ZWxzUGVySW5jaCwgOTYpO1xuICB2YXIgcHJlY2lzaW9uID0gb3B0cy5wcmVjaXNpb247XG4gIHZhciByb3VuZFBpeGVsID0gb3B0cy5yb3VuZFBpeGVsICE9PSBmYWxzZTtcblxuICBmcm9tVW5pdCA9IGZyb21Vbml0LnRvTG93ZXJDYXNlKCk7XG4gIHRvVW5pdCA9IHRvVW5pdC50b0xvd2VyQ2FzZSgpO1xuXG4gIGlmICh1bml0cy5pbmRleE9mKGZyb21Vbml0KSA9PT0gLTEpIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBmcm9tIHVuaXQgXCInICsgZnJvbVVuaXQgKyAnXCIsIG11c3QgYmUgb25lIG9mOiAnICsgdW5pdHMuam9pbignLCAnKSk7XG4gIGlmICh1bml0cy5pbmRleE9mKHRvVW5pdCkgPT09IC0xKSB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgZnJvbSB1bml0IFwiJyArIHRvVW5pdCArICdcIiwgbXVzdCBiZSBvbmUgb2Y6ICcgKyB1bml0cy5qb2luKCcsICcpKTtcblxuICBpZiAoZnJvbVVuaXQgPT09IHRvVW5pdCkge1xuICAgIC8vIFdlIGRvbid0IG5lZWQgdG8gY29udmVydCBmcm9tIEEgdG8gQiBzaW5jZSB0aGV5IGFyZSB0aGUgc2FtZSBhbHJlYWR5XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgdmFyIHRvRmFjdG9yID0gMTtcbiAgdmFyIGZyb21GYWN0b3IgPSAxO1xuICB2YXIgaXNUb1BpeGVsID0gZmFsc2U7XG5cbiAgaWYgKGZyb21Vbml0ID09PSAncHgnKSB7XG4gICAgZnJvbUZhY3RvciA9IDEgLyBwaXhlbHNQZXJJbmNoO1xuICAgIGZyb21Vbml0ID0gJ2luJztcbiAgfVxuICBpZiAodG9Vbml0ID09PSAncHgnKSB7XG4gICAgaXNUb1BpeGVsID0gdHJ1ZTtcbiAgICB0b0ZhY3RvciA9IHBpeGVsc1BlckluY2g7XG4gICAgdG9Vbml0ID0gJ2luJztcbiAgfVxuXG4gIHZhciBmcm9tVW5pdERhdGEgPSBjb252ZXJzaW9uc1tmcm9tVW5pdF07XG4gIHZhciB0b1VuaXREYXRhID0gY29udmVyc2lvbnNbdG9Vbml0XTtcblxuICAvLyBzb3VyY2UgdG8gYW5jaG9yIGluc2lkZSBzb3VyY2UncyBzeXN0ZW1cbiAgdmFyIGFuY2hvciA9IHZhbHVlICogZnJvbVVuaXREYXRhLmZhY3RvciAqIGZyb21GYWN0b3I7XG5cbiAgLy8gaWYgc3lzdGVtcyBkaWZmZXIsIGNvbnZlcnQgb25lIHRvIGFub3RoZXJcbiAgaWYgKGZyb21Vbml0RGF0YS5zeXN0ZW0gIT09IHRvVW5pdERhdGEuc3lzdGVtKSB7XG4gICAgLy8gcmVndWxhciAnbScgdG8gJ2luJyBhbmQgc28gZm9ydGhcbiAgICBhbmNob3IgKj0gYW5jaG9yc1tmcm9tVW5pdERhdGEuc3lzdGVtXS5yYXRpbztcbiAgfVxuXG4gIHZhciByZXN1bHQgPSBhbmNob3IgLyB0b1VuaXREYXRhLmZhY3RvciAqIHRvRmFjdG9yO1xuICBpZiAoaXNUb1BpeGVsICYmIHJvdW5kUGl4ZWwpIHtcbiAgICByZXN1bHQgPSBNYXRoLnJvdW5kKHJlc3VsdCk7XG4gIH0gZWxzZSBpZiAodHlwZW9mIHByZWNpc2lvbiA9PT0gJ251bWJlcicgJiYgaXNGaW5pdGUocHJlY2lzaW9uKSkge1xuICAgIHJlc3VsdCA9IHJvdW5kKHJlc3VsdCwgcHJlY2lzaW9uKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNvbnZlcnREaXN0YW5jZTtcbm1vZHVsZS5leHBvcnRzLnVuaXRzID0gdW5pdHM7XG4iLCJpbXBvcnQgcGFwZXJTaXplcyBmcm9tICcuL3BhcGVyLXNpemVzJztcbmltcG9ydCBjb252ZXJ0TGVuZ3RoIGZyb20gJ2NvbnZlcnQtbGVuZ3RoJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldERpbWVuc2lvbnNGcm9tUHJlc2V0IChkaW1lbnNpb25zLCB1bml0c1RvID0gJ3B4JywgcGl4ZWxzUGVySW5jaCA9IDcyKSB7XG4gIGlmICh0eXBlb2YgZGltZW5zaW9ucyA9PT0gJ3N0cmluZycpIHtcbiAgICBjb25zdCBrZXkgPSBkaW1lbnNpb25zLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKCEoa2V5IGluIHBhcGVyU2l6ZXMpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSBkaW1lbnNpb24gcHJlc2V0IFwiJHtkaW1lbnNpb25zfVwiIGlzIG5vdCBzdXBwb3J0ZWQgb3IgY291bGQgbm90IGJlIGZvdW5kOyB0cnkgdXNpbmcgYTQsIGEzLCBwb3N0Y2FyZCwgbGV0dGVyLCBldGMuYClcbiAgICB9XG4gICAgY29uc3QgcHJlc2V0ID0gcGFwZXJTaXplc1trZXldO1xuICAgIHJldHVybiBwcmVzZXQuZGltZW5zaW9ucy5tYXAoZCA9PiB7XG4gICAgICByZXR1cm4gY29udmVydERpc3RhbmNlKGQsIHByZXNldC51bml0cywgdW5pdHNUbywgcGl4ZWxzUGVySW5jaCk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGRpbWVuc2lvbnM7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnREaXN0YW5jZSAoZGltZW5zaW9uLCB1bml0c0Zyb20gPSAncHgnLCB1bml0c1RvID0gJ3B4JywgcGl4ZWxzUGVySW5jaCA9IDcyKSB7XG4gIHJldHVybiBjb252ZXJ0TGVuZ3RoKGRpbWVuc2lvbiwgdW5pdHNGcm9tLCB1bml0c1RvLCB7XG4gICAgcGl4ZWxzUGVySW5jaCxcbiAgICBwcmVjaXNpb246IDQsXG4gICAgcm91bmRQaXhlbDogdHJ1ZVxuICB9KTtcbn1cbiIsImltcG9ydCB7IGdldERpbWVuc2lvbnNGcm9tUHJlc2V0LCBjb252ZXJ0RGlzdGFuY2UgfSBmcm9tICcuLi9kaXN0YW5jZXMnO1xuaW1wb3J0IHsgaXNCcm93c2VyLCBkZWZpbmVkIH0gZnJvbSAnLi4vdXRpbCc7XG5cbmZ1bmN0aW9uIGNoZWNrSWZIYXNEaW1lbnNpb25zIChzZXR0aW5ncykge1xuICBpZiAoIXNldHRpbmdzLmRpbWVuc2lvbnMpIHJldHVybiBmYWxzZTtcbiAgaWYgKHR5cGVvZiBzZXR0aW5ncy5kaW1lbnNpb25zID09PSAnc3RyaW5nJykgcmV0dXJuIHRydWU7XG4gIGlmIChBcnJheS5pc0FycmF5KHNldHRpbmdzLmRpbWVuc2lvbnMpICYmIHNldHRpbmdzLmRpbWVuc2lvbnMubGVuZ3RoID49IDIpIHJldHVybiB0cnVlO1xuICByZXR1cm4gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIGdldFBhcmVudFNpemUgKHByb3BzLCBzZXR0aW5ncykge1xuICAvLyBXaGVuIG5vIHsgZGltZW5zaW9uIH0gaXMgcGFzc2VkIGluIG5vZGUsIHdlIGRlZmF1bHQgdG8gSFRNTCBjYW52YXMgc2l6ZVxuICBpZiAoIWlzQnJvd3NlcigpKSB7XG4gICAgcmV0dXJuIFsgMzAwLCAxNTAgXTtcbiAgfVxuXG4gIGxldCBlbGVtZW50ID0gc2V0dGluZ3MucGFyZW50IHx8IHdpbmRvdztcblxuICBpZiAoZWxlbWVudCA9PT0gd2luZG93IHx8XG4gICAgICBlbGVtZW50ID09PSBkb2N1bWVudCB8fFxuICAgICAgZWxlbWVudCA9PT0gZG9jdW1lbnQuYm9keSkge1xuICAgIHJldHVybiBbIHdpbmRvdy5pbm5lcldpZHRoLCB3aW5kb3cuaW5uZXJIZWlnaHQgXTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgcmV0dXJuIFsgd2lkdGgsIGhlaWdodCBdO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJlc2l6ZUNhbnZhcyAocHJvcHMsIHNldHRpbmdzKSB7XG4gIGxldCB3aWR0aCwgaGVpZ2h0O1xuICBsZXQgc3R5bGVXaWR0aCwgc3R5bGVIZWlnaHQ7XG4gIGxldCBjYW52YXNXaWR0aCwgY2FudmFzSGVpZ2h0O1xuXG4gIGNvbnN0IGJyb3dzZXIgPSBpc0Jyb3dzZXIoKTtcbiAgY29uc3QgZGltZW5zaW9ucyA9IHNldHRpbmdzLmRpbWVuc2lvbnM7XG4gIGNvbnN0IGhhc0RpbWVuc2lvbnMgPSBjaGVja0lmSGFzRGltZW5zaW9ucyhzZXR0aW5ncyk7XG4gIGNvbnN0IGV4cG9ydGluZyA9IHByb3BzLmV4cG9ydGluZztcbiAgbGV0IHNjYWxlVG9GaXQgPSBoYXNEaW1lbnNpb25zID8gc2V0dGluZ3Muc2NhbGVUb0ZpdCAhPT0gZmFsc2UgOiBmYWxzZTtcbiAgbGV0IHNjYWxlVG9WaWV3ID0gKCFleHBvcnRpbmcgJiYgaGFzRGltZW5zaW9ucykgPyBzZXR0aW5ncy5zY2FsZVRvVmlldyA6IHRydWU7XG4gIC8vIGluIG5vZGUsIGNhbmNlbCBib3RoIG9mIHRoZXNlIG9wdGlvbnNcbiAgaWYgKCFicm93c2VyKSBzY2FsZVRvRml0ID0gc2NhbGVUb1ZpZXcgPSBmYWxzZTtcbiAgY29uc3QgdW5pdHMgPSBzZXR0aW5ncy51bml0cztcbiAgY29uc3QgcGl4ZWxzUGVySW5jaCA9ICh0eXBlb2Ygc2V0dGluZ3MucGl4ZWxzUGVySW5jaCA9PT0gJ251bWJlcicgJiYgaXNGaW5pdGUoc2V0dGluZ3MucGl4ZWxzUGVySW5jaCkpID8gc2V0dGluZ3MucGl4ZWxzUGVySW5jaCA6IDcyO1xuICBjb25zdCBibGVlZCA9IGRlZmluZWQoc2V0dGluZ3MuYmxlZWQsIDApO1xuXG4gIGNvbnN0IGRldmljZVBpeGVsUmF0aW8gPSBicm93c2VyID8gd2luZG93LmRldmljZVBpeGVsUmF0aW8gOiAxO1xuICBjb25zdCBiYXNlUGl4ZWxSYXRpbyA9IHNjYWxlVG9WaWV3ID8gZGV2aWNlUGl4ZWxSYXRpbyA6IDE7XG5cbiAgbGV0IHBpeGVsUmF0aW8sIGV4cG9ydFBpeGVsUmF0aW87XG5cbiAgLy8gSWYgYSBwaXhlbCByYXRpbyBpcyBzcGVjaWZpZWQsIHdlIHdpbGwgdXNlIGl0LlxuICAvLyBPdGhlcndpc2U6XG4gIC8vICAtPiBJZiBkaW1lbnNpb24gaXMgc3BlY2lmaWVkLCB1c2UgYmFzZSByYXRpbyAoaS5lLiBzaXplIGZvciBleHBvcnQpXG4gIC8vICAtPiBJZiBubyBkaW1lbnNpb24gaXMgc3BlY2lmaWVkLCB1c2UgZGV2aWNlIHJhdGlvIChpLmUuIHNpemUgZm9yIHNjcmVlbilcbiAgaWYgKHR5cGVvZiBzZXR0aW5ncy5waXhlbFJhdGlvID09PSAnbnVtYmVyJyAmJiBpc0Zpbml0ZShzZXR0aW5ncy5waXhlbFJhdGlvKSkge1xuICAgIC8vIFdoZW4geyBwaXhlbFJhdGlvIH0gaXMgc3BlY2lmaWVkLCBpdCdzIGFsc28gdXNlZCBhcyBkZWZhdWx0IGV4cG9ydFBpeGVsUmF0aW8uXG4gICAgcGl4ZWxSYXRpbyA9IHNldHRpbmdzLnBpeGVsUmF0aW87XG4gICAgZXhwb3J0UGl4ZWxSYXRpbyA9IGRlZmluZWQoc2V0dGluZ3MuZXhwb3J0UGl4ZWxSYXRpbywgcGl4ZWxSYXRpbyk7XG4gIH0gZWxzZSB7XG4gICAgaWYgKGhhc0RpbWVuc2lvbnMpIHtcbiAgICAgIC8vIFdoZW4gYSBkaW1lbnNpb24gaXMgc3BlY2lmaWVkLCB1c2UgdGhlIGJhc2UgcmF0aW8gcmF0aGVyIHRoYW4gc2NyZWVuIHJhdGlvXG4gICAgICBwaXhlbFJhdGlvID0gYmFzZVBpeGVsUmF0aW87XG4gICAgICAvLyBEZWZhdWx0IHRvIGEgcGl4ZWwgcmF0aW8gb2YgMSBzbyB0aGF0IHlvdSBlbmQgdXAgd2l0aCB0aGUgc2FtZSBkaW1lbnNpb25cbiAgICAgIC8vIHlvdSBzcGVjaWZpZWQsIGkuZS4gWyA1MDAsIDUwMCBdIGlzIGV4cG9ydGVkIGFzIDUwMHg1MDAgcHhcbiAgICAgIGV4cG9ydFBpeGVsUmF0aW8gPSBkZWZpbmVkKHNldHRpbmdzLmV4cG9ydFBpeGVsUmF0aW8sIDEpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBObyBkaW1lbnNpb24gaXMgc3BlY2lmaWVkLCBhc3N1bWUgZnVsbC1zY3JlZW4gcmV0aW5hIHNpemluZ1xuICAgICAgcGl4ZWxSYXRpbyA9IGRldmljZVBpeGVsUmF0aW87XG4gICAgICAvLyBEZWZhdWx0IHRvIHNjcmVlbiBwaXhlbCByYXRpbywgc28gdGhhdCBpdCdzIGxpa2UgdGFraW5nIGEgZGV2aWNlIHNjcmVlbnNob3RcbiAgICAgIGV4cG9ydFBpeGVsUmF0aW8gPSBkZWZpbmVkKHNldHRpbmdzLmV4cG9ydFBpeGVsUmF0aW8sIHBpeGVsUmF0aW8pO1xuICAgIH1cbiAgfVxuXG4gIC8vIENsYW1wIHBpeGVsIHJhdGlvXG4gIGlmICh0eXBlb2Ygc2V0dGluZ3MubWF4UGl4ZWxSYXRpbyA9PT0gJ251bWJlcicgJiYgaXNGaW5pdGUoc2V0dGluZ3MubWF4UGl4ZWxSYXRpbykpIHtcbiAgICBwaXhlbFJhdGlvID0gTWF0aC5taW4oc2V0dGluZ3MubWF4UGl4ZWxSYXRpbywgcGl4ZWxSYXRpbyk7XG4gIH1cblxuICAvLyBIYW5kbGUgZXhwb3J0IHBpeGVsIHJhdGlvXG4gIGlmIChleHBvcnRpbmcpIHtcbiAgICBwaXhlbFJhdGlvID0gZXhwb3J0UGl4ZWxSYXRpbztcbiAgfVxuXG4gIC8vIHBhcmVudFdpZHRoID0gdHlwZW9mIHBhcmVudFdpZHRoID09PSAndW5kZWZpbmVkJyA/IGRlZmF1bHROb2RlU2l6ZVswXSA6IHBhcmVudFdpZHRoO1xuICAvLyBwYXJlbnRIZWlnaHQgPSB0eXBlb2YgcGFyZW50SGVpZ2h0ID09PSAndW5kZWZpbmVkJyA/IGRlZmF1bHROb2RlU2l6ZVsxXSA6IHBhcmVudEhlaWdodDtcblxuICBsZXQgWyBwYXJlbnRXaWR0aCwgcGFyZW50SGVpZ2h0IF0gPSBnZXRQYXJlbnRTaXplKHByb3BzLCBzZXR0aW5ncyk7XG4gIGxldCB0cmltV2lkdGgsIHRyaW1IZWlnaHQ7XG5cbiAgLy8gWW91IGNhbiBzcGVjaWZ5IGEgZGltZW5zaW9ucyBpbiBwaXhlbHMgb3IgY20vbS9pbi9ldGNcbiAgaWYgKGhhc0RpbWVuc2lvbnMpIHtcbiAgICBjb25zdCByZXN1bHQgPSBnZXREaW1lbnNpb25zRnJvbVByZXNldChkaW1lbnNpb25zLCB1bml0cywgcGl4ZWxzUGVySW5jaCk7XG4gICAgY29uc3QgaGlnaGVzdCA9IE1hdGgubWF4KHJlc3VsdFswXSwgcmVzdWx0WzFdKTtcbiAgICBjb25zdCBsb3dlc3QgPSBNYXRoLm1pbihyZXN1bHRbMF0sIHJlc3VsdFsxXSk7XG4gICAgaWYgKHNldHRpbmdzLm9yaWVudGF0aW9uKSB7XG4gICAgICBjb25zdCBsYW5kc2NhcGUgPSBzZXR0aW5ncy5vcmllbnRhdGlvbiA9PT0gJ2xhbmRzY2FwZSc7XG4gICAgICB3aWR0aCA9IGxhbmRzY2FwZSA/IGhpZ2hlc3QgOiBsb3dlc3Q7XG4gICAgICBoZWlnaHQgPSBsYW5kc2NhcGUgPyBsb3dlc3QgOiBoaWdoZXN0O1xuICAgIH0gZWxzZSB7XG4gICAgICB3aWR0aCA9IHJlc3VsdFswXTtcbiAgICAgIGhlaWdodCA9IHJlc3VsdFsxXTtcbiAgICB9XG5cbiAgICB0cmltV2lkdGggPSB3aWR0aDtcbiAgICB0cmltSGVpZ2h0ID0gaGVpZ2h0O1xuXG4gICAgLy8gQXBwbHkgYmxlZWQgd2hpY2ggaXMgYXNzdW1lZCB0byBiZSBpbiB0aGUgc2FtZSB1bml0c1xuICAgIHdpZHRoICs9IGJsZWVkICogMjtcbiAgICBoZWlnaHQgKz0gYmxlZWQgKiAyO1xuICB9IGVsc2Uge1xuICAgIHdpZHRoID0gcGFyZW50V2lkdGg7XG4gICAgaGVpZ2h0ID0gcGFyZW50SGVpZ2h0O1xuICAgIHRyaW1XaWR0aCA9IHdpZHRoO1xuICAgIHRyaW1IZWlnaHQgPSBoZWlnaHQ7XG4gIH1cblxuICAvLyBSZWFsIHNpemUgaW4gcGl4ZWxzIGFmdGVyIFBQSSBpcyB0YWtlbiBpbnRvIGFjY291bnRcbiAgbGV0IHJlYWxXaWR0aCA9IHdpZHRoO1xuICBsZXQgcmVhbEhlaWdodCA9IGhlaWdodDtcbiAgaWYgKGhhc0RpbWVuc2lvbnMgJiYgdW5pdHMpIHtcbiAgICAvLyBDb252ZXJ0IHRvIGRpZ2l0YWwvcGl4ZWwgdW5pdHMgaWYgbmVjZXNzYXJ5XG4gICAgcmVhbFdpZHRoID0gY29udmVydERpc3RhbmNlKHdpZHRoLCB1bml0cywgJ3B4JywgcGl4ZWxzUGVySW5jaCk7XG4gICAgcmVhbEhlaWdodCA9IGNvbnZlcnREaXN0YW5jZShoZWlnaHQsIHVuaXRzLCAncHgnLCBwaXhlbHNQZXJJbmNoKTtcbiAgfVxuXG4gIC8vIEhvdyBiaWcgdG8gc2V0IHRoZSAndmlldycgb2YgdGhlIGNhbnZhcyBpbiB0aGUgYnJvd3NlciAoaS5lLiBzdHlsZSlcbiAgc3R5bGVXaWR0aCA9IE1hdGgucm91bmQocmVhbFdpZHRoKTtcbiAgc3R5bGVIZWlnaHQgPSBNYXRoLnJvdW5kKHJlYWxIZWlnaHQpO1xuXG4gIC8vIElmIHdlIHdpc2ggdG8gc2NhbGUgdGhlIHZpZXcgdG8gdGhlIGJyb3dzZXIgd2luZG93XG4gIGlmIChzY2FsZVRvRml0ICYmICFleHBvcnRpbmcgJiYgaGFzRGltZW5zaW9ucykge1xuICAgIGNvbnN0IGFzcGVjdCA9IHdpZHRoIC8gaGVpZ2h0O1xuICAgIGNvbnN0IHdpbmRvd0FzcGVjdCA9IHBhcmVudFdpZHRoIC8gcGFyZW50SGVpZ2h0O1xuICAgIGNvbnN0IHNjYWxlVG9GaXRQYWRkaW5nID0gZGVmaW5lZChzZXR0aW5ncy5zY2FsZVRvRml0UGFkZGluZywgNDApO1xuICAgIGNvbnN0IG1heFdpZHRoID0gTWF0aC5yb3VuZChwYXJlbnRXaWR0aCAtIHNjYWxlVG9GaXRQYWRkaW5nICogMik7XG4gICAgY29uc3QgbWF4SGVpZ2h0ID0gTWF0aC5yb3VuZChwYXJlbnRIZWlnaHQgLSBzY2FsZVRvRml0UGFkZGluZyAqIDIpO1xuICAgIGlmIChzdHlsZVdpZHRoID4gbWF4V2lkdGggfHwgc3R5bGVIZWlnaHQgPiBtYXhIZWlnaHQpIHtcbiAgICAgIGlmICh3aW5kb3dBc3BlY3QgPiBhc3BlY3QpIHtcbiAgICAgICAgc3R5bGVIZWlnaHQgPSBtYXhIZWlnaHQ7XG4gICAgICAgIHN0eWxlV2lkdGggPSBNYXRoLnJvdW5kKHN0eWxlSGVpZ2h0ICogYXNwZWN0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN0eWxlV2lkdGggPSBtYXhXaWR0aDtcbiAgICAgICAgc3R5bGVIZWlnaHQgPSBNYXRoLnJvdW5kKHN0eWxlV2lkdGggLyBhc3BlY3QpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNhbnZhc1dpZHRoID0gc2NhbGVUb1ZpZXcgPyBNYXRoLnJvdW5kKHBpeGVsUmF0aW8gKiBzdHlsZVdpZHRoKSA6IE1hdGgucm91bmQocGl4ZWxSYXRpbyAqIHJlYWxXaWR0aCk7XG4gIGNhbnZhc0hlaWdodCA9IHNjYWxlVG9WaWV3ID8gTWF0aC5yb3VuZChwaXhlbFJhdGlvICogc3R5bGVIZWlnaHQpIDogTWF0aC5yb3VuZChwaXhlbFJhdGlvICogcmVhbEhlaWdodCk7XG5cbiAgY29uc3Qgdmlld3BvcnRXaWR0aCA9IHNjYWxlVG9WaWV3ID8gTWF0aC5yb3VuZChzdHlsZVdpZHRoKSA6IE1hdGgucm91bmQocmVhbFdpZHRoKTtcbiAgY29uc3Qgdmlld3BvcnRIZWlnaHQgPSBzY2FsZVRvVmlldyA/IE1hdGgucm91bmQoc3R5bGVIZWlnaHQpIDogTWF0aC5yb3VuZChyZWFsSGVpZ2h0KTtcblxuICBjb25zdCBzY2FsZVggPSBjYW52YXNXaWR0aCAvIHdpZHRoO1xuICBjb25zdCBzY2FsZVkgPSBjYW52YXNIZWlnaHQgLyBoZWlnaHQ7XG5cbiAgLy8gQXNzaWduIHRvIGN1cnJlbnQgcHJvcHNcbiAgcmV0dXJuIHtcbiAgICBibGVlZCxcbiAgICBwaXhlbFJhdGlvLFxuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgICBkaW1lbnNpb25zOiBbIHdpZHRoLCBoZWlnaHQgXSxcbiAgICB1bml0czogdW5pdHMgfHwgJ3B4JyxcbiAgICBzY2FsZVgsXG4gICAgc2NhbGVZLFxuICAgIHBpeGVsc1BlckluY2gsXG4gICAgdmlld3BvcnRXaWR0aCxcbiAgICB2aWV3cG9ydEhlaWdodCxcbiAgICBjYW52YXNXaWR0aCxcbiAgICBjYW52YXNIZWlnaHQsXG4gICAgdHJpbVdpZHRoLFxuICAgIHRyaW1IZWlnaHQsXG4gICAgc3R5bGVXaWR0aCxcbiAgICBzdHlsZUhlaWdodFxuICB9O1xufVxuIiwibW9kdWxlLmV4cG9ydHMgPSBnZXRDYW52YXNDb250ZXh0XG5mdW5jdGlvbiBnZXRDYW52YXNDb250ZXh0ICh0eXBlLCBvcHRzKSB7XG4gIGlmICh0eXBlb2YgdHlwZSAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdtdXN0IHNwZWNpZnkgdHlwZSBzdHJpbmcnKVxuICB9XG5cbiAgb3B0cyA9IG9wdHMgfHwge31cblxuICBpZiAodHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJyAmJiAhb3B0cy5jYW52YXMpIHtcbiAgICByZXR1cm4gbnVsbCAvLyBjaGVjayBmb3IgTm9kZVxuICB9XG5cbiAgdmFyIGNhbnZhcyA9IG9wdHMuY2FudmFzIHx8IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpXG4gIGlmICh0eXBlb2Ygb3B0cy53aWR0aCA9PT0gJ251bWJlcicpIHtcbiAgICBjYW52YXMud2lkdGggPSBvcHRzLndpZHRoXG4gIH1cbiAgaWYgKHR5cGVvZiBvcHRzLmhlaWdodCA9PT0gJ251bWJlcicpIHtcbiAgICBjYW52YXMuaGVpZ2h0ID0gb3B0cy5oZWlnaHRcbiAgfVxuXG4gIHZhciBhdHRyaWJzID0gb3B0c1xuICB2YXIgZ2xcbiAgdHJ5IHtcbiAgICB2YXIgbmFtZXMgPSBbIHR5cGUgXVxuICAgIC8vIHByZWZpeCBHTCBjb250ZXh0c1xuICAgIGlmICh0eXBlLmluZGV4T2YoJ3dlYmdsJykgPT09IDApIHtcbiAgICAgIG5hbWVzLnB1c2goJ2V4cGVyaW1lbnRhbC0nICsgdHlwZSlcbiAgICB9XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5hbWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBnbCA9IGNhbnZhcy5nZXRDb250ZXh0KG5hbWVzW2ldLCBhdHRyaWJzKVxuICAgICAgaWYgKGdsKSByZXR1cm4gZ2xcbiAgICB9XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBnbCA9IG51bGxcbiAgfVxuICByZXR1cm4gKGdsIHx8IG51bGwpIC8vIGVuc3VyZSBudWxsIG9uIGZhaWxcbn1cbiIsImltcG9ydCBhc3NpZ24gZnJvbSAnb2JqZWN0LWFzc2lnbic7XG5pbXBvcnQgZ2V0Q2FudmFzQ29udGV4dCBmcm9tICdnZXQtY2FudmFzLWNvbnRleHQnO1xuaW1wb3J0IHsgaXNCcm93c2VyIH0gZnJvbSAnLi4vdXRpbCc7XG5cbmZ1bmN0aW9uIGNyZWF0ZUNhbnZhc0VsZW1lbnQgKCkge1xuICBpZiAoIWlzQnJvd3NlcigpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJdCBhcHBlYXJzIHlvdSBhcmUgcnVuaW5nIGZyb20gTm9kZS5qcyBvciBhIG5vbi1icm93c2VyIGVudmlyb25tZW50LiBUcnkgcGFzc2luZyBpbiBhbiBleGlzdGluZyB7IGNhbnZhcyB9IGludGVyZmFjZSBpbnN0ZWFkLicpO1xuICB9XG4gIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlQ2FudmFzIChzZXR0aW5ncyA9IHt9KSB7XG4gIGxldCBjb250ZXh0LCBjYW52YXM7XG4gIGxldCBvd25zQ2FudmFzID0gZmFsc2U7XG4gIGlmIChzZXR0aW5ncy5jYW52YXMgIT09IGZhbHNlKSB7XG4gICAgLy8gRGV0ZXJtaW5lIHRoZSBjYW52YXMgYW5kIGNvbnRleHQgdG8gY3JlYXRlXG4gICAgY29udGV4dCA9IHNldHRpbmdzLmNvbnRleHQ7XG4gICAgaWYgKCFjb250ZXh0IHx8IHR5cGVvZiBjb250ZXh0ID09PSAnc3RyaW5nJykge1xuICAgICAgbGV0IG5ld0NhbnZhcyA9IHNldHRpbmdzLmNhbnZhcztcbiAgICAgIGlmICghbmV3Q2FudmFzKSB7XG4gICAgICAgIG5ld0NhbnZhcyA9IGNyZWF0ZUNhbnZhc0VsZW1lbnQoKTtcbiAgICAgICAgb3duc0NhbnZhcyA9IHRydWU7XG4gICAgICB9XG4gICAgICBjb25zdCB0eXBlID0gY29udGV4dCB8fCAnMmQnO1xuICAgICAgaWYgKHR5cGVvZiBuZXdDYW52YXMuZ2V0Q29udGV4dCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSBzcGVjaWZpZWQgeyBjYW52YXMgfSBlbGVtZW50IGRvZXMgbm90IGhhdmUgYSBnZXRDb250ZXh0KCkgZnVuY3Rpb24sIG1heWJlIGl0IGlzIG5vdCBhIDxjYW52YXM+IHRhZz9gKTtcbiAgICAgIH1cbiAgICAgIGNvbnRleHQgPSBnZXRDYW52YXNDb250ZXh0KHR5cGUsIGFzc2lnbih7fSwgc2V0dGluZ3MuYXR0cmlidXRlcywgeyBjYW52YXM6IG5ld0NhbnZhcyB9KSk7XG4gICAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgYXQgY2FudmFzLmdldENvbnRleHQoJyR7dHlwZX0nKSAtIHRoZSBicm93c2VyIG1heSBub3Qgc3VwcG9ydCB0aGlzIGNvbnRleHQsIG9yIGEgZGlmZmVyZW50IGNvbnRleHQgbWF5IGFscmVhZHkgYmUgaW4gdXNlIHdpdGggdGhpcyBjYW52YXMuYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY2FudmFzID0gY29udGV4dC5jYW52YXM7XG4gICAgLy8gRW5zdXJlIGNvbnRleHQgbWF0Y2hlcyB1c2VyJ3MgY2FudmFzIGV4cGVjdGF0aW9uc1xuICAgIGlmIChzZXR0aW5ncy5jYW52YXMgJiYgY2FudmFzICE9PSBzZXR0aW5ncy5jYW52YXMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIHsgY2FudmFzIH0gYW5kIHsgY29udGV4dCB9IHNldHRpbmdzIG11c3QgcG9pbnQgdG8gdGhlIHNhbWUgdW5kZXJseWluZyBjYW52YXMgZWxlbWVudCcpO1xuICAgIH1cblxuICAgIC8vIEFwcGx5IHBpeGVsYXRpb24gdG8gY2FudmFzIGlmIG5lY2Vzc2FyeSwgdGhpcyBpcyBtb3N0bHkgYSBjb252ZW5pZW5jZSB1dGlsaXR5XG4gICAgaWYgKHNldHRpbmdzLnBpeGVsYXRlZCkge1xuICAgICAgY29udGV4dC5pbWFnZVNtb290aGluZ0VuYWJsZWQgPSBmYWxzZTtcbiAgICAgIGNvbnRleHQubW96SW1hZ2VTbW9vdGhpbmdFbmFibGVkID0gZmFsc2U7XG4gICAgICBjb250ZXh0Lm9JbWFnZVNtb290aGluZ0VuYWJsZWQgPSBmYWxzZTtcbiAgICAgIGNvbnRleHQud2Via2l0SW1hZ2VTbW9vdGhpbmdFbmFibGVkID0gZmFsc2U7XG4gICAgICBjb250ZXh0Lm1zSW1hZ2VTbW9vdGhpbmdFbmFibGVkID0gZmFsc2U7XG4gICAgICBjYW52YXMuc3R5bGVbJ2ltYWdlLXJlbmRlcmluZyddID0gJ3BpeGVsYXRlZCc7XG4gICAgfVxuICB9XG4gIHJldHVybiB7IGNhbnZhcywgY29udGV4dCwgb3duc0NhbnZhcyB9O1xufVxuIiwiaW1wb3J0IGFzc2lnbiBmcm9tICdvYmplY3QtYXNzaWduJztcbmltcG9ydCByaWdodE5vdyBmcm9tICdyaWdodC1ub3cnO1xuaW1wb3J0IGlzUHJvbWlzZSBmcm9tICdpcy1wcm9taXNlJztcbmltcG9ydCB7IGlzQnJvd3NlciwgZGVmaW5lZCwgaXNXZWJHTENvbnRleHQsIGlzQ2FudmFzLCBnZXRDbGllbnRBUEkgfSBmcm9tICcuLi91dGlsJztcbmltcG9ydCBkZWVwRXF1YWwgZnJvbSAnZGVlcC1lcXVhbCc7XG5pbXBvcnQge1xuICByZXNvbHZlRmlsZW5hbWUsXG4gIHNhdmVGaWxlLFxuICBzYXZlRGF0YVVSTCxcbiAgZ2V0VGltZVN0YW1wLFxuICBleHBvcnRDYW52YXMsXG4gIHN0cmVhbVN0YXJ0LFxuICBzdHJlYW1FbmRcbn0gZnJvbSAnLi4vc2F2ZSc7XG5pbXBvcnQgeyBjaGVja1NldHRpbmdzIH0gZnJvbSAnLi4vYWNjZXNzaWJpbGl0eSc7XG5cbmltcG9ydCBrZXlib2FyZFNob3J0Y3V0cyBmcm9tICcuL2tleWJvYXJkU2hvcnRjdXRzJztcbmltcG9ydCByZXNpemVDYW52YXMgZnJvbSAnLi9yZXNpemVDYW52YXMnO1xuaW1wb3J0IGNyZWF0ZUNhbnZhcyBmcm9tICcuL2NyZWF0ZUNhbnZhcyc7XG5cbmNsYXNzIFNrZXRjaE1hbmFnZXIge1xuICBjb25zdHJ1Y3RvciAoKSB7XG4gICAgdGhpcy5fc2V0dGluZ3MgPSB7fTtcbiAgICB0aGlzLl9wcm9wcyA9IHt9O1xuICAgIHRoaXMuX3NrZXRjaCA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLl9yYWYgPSBudWxsO1xuICAgIHRoaXMuX3JlY29yZFRpbWVvdXQgPSBudWxsO1xuXG4gICAgLy8gU29tZSBoYWNreSB0aGluZ3MgcmVxdWlyZWQgdG8gZ2V0IGFyb3VuZCBwNS5qcyBzdHJ1Y3R1cmVcbiAgICB0aGlzLl9sYXN0UmVkcmF3UmVzdWx0ID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuX2lzUDVSZXNpemluZyA9IGZhbHNlO1xuXG4gICAgdGhpcy5fa2V5Ym9hcmRTaG9ydGN1dHMgPSBrZXlib2FyZFNob3J0Y3V0cyh7XG4gICAgICBlbmFibGVkOiAoKSA9PiB0aGlzLnNldHRpbmdzLmhvdGtleXMgIT09IGZhbHNlLFxuICAgICAgc2F2ZTogKGV2KSA9PiB7XG4gICAgICAgIGlmIChldi5zaGlmdEtleSkge1xuICAgICAgICAgIGlmICh0aGlzLnByb3BzLnJlY29yZGluZykge1xuICAgICAgICAgICAgdGhpcy5lbmRSZWNvcmQoKTtcbiAgICAgICAgICAgIHRoaXMucnVuKCk7XG4gICAgICAgICAgfSBlbHNlIHRoaXMucmVjb3JkKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoIXRoaXMucHJvcHMucmVjb3JkaW5nKSB7XG4gICAgICAgICAgdGhpcy5leHBvcnRGcmFtZSgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdG9nZ2xlUGxheTogKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5wbGF5aW5nKSB0aGlzLnBhdXNlKCk7XG4gICAgICAgIGVsc2UgdGhpcy5wbGF5KCk7XG4gICAgICB9LFxuICAgICAgY29tbWl0OiAoZXYpID0+IHtcbiAgICAgICAgdGhpcy5leHBvcnRGcmFtZSh7IGNvbW1pdDogdHJ1ZSB9KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuX2FuaW1hdGVIYW5kbGVyID0gKCkgPT4gdGhpcy5hbmltYXRlKCk7XG5cbiAgICB0aGlzLl9yZXNpemVIYW5kbGVyID0gKCkgPT4ge1xuICAgICAgY29uc3QgY2hhbmdlZCA9IHRoaXMucmVzaXplKCk7XG4gICAgICAvLyBPbmx5IHJlLXJlbmRlciB3aGVuIHNpemUgYWN0dWFsbHkgY2hhbmdlc1xuICAgICAgaWYgKGNoYW5nZWQpIHtcbiAgICAgICAgdGhpcy5yZW5kZXIoKTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgZ2V0IHNrZXRjaCAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NrZXRjaDtcbiAgfVxuXG4gIGdldCBzZXR0aW5ncyAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NldHRpbmdzO1xuICB9XG5cbiAgZ2V0IHByb3BzICgpIHtcbiAgICByZXR1cm4gdGhpcy5fcHJvcHM7XG4gIH1cblxuICBfY29tcHV0ZVBsYXloZWFkIChjdXJyZW50VGltZSwgZHVyYXRpb24pIHtcbiAgICBjb25zdCBoYXNEdXJhdGlvbiA9IHR5cGVvZiBkdXJhdGlvbiA9PT0gJ251bWJlcicgJiYgaXNGaW5pdGUoZHVyYXRpb24pO1xuICAgIHJldHVybiBoYXNEdXJhdGlvbiA/IGN1cnJlbnRUaW1lIC8gZHVyYXRpb24gOiAwO1xuICB9XG5cbiAgX2NvbXB1dGVGcmFtZSAocGxheWhlYWQsIHRpbWUsIHRvdGFsRnJhbWVzLCBmcHMpIHtcbiAgICByZXR1cm4gKGlzRmluaXRlKHRvdGFsRnJhbWVzKSAmJiB0b3RhbEZyYW1lcyA+IDEpXG4gICAgICA/IE1hdGguZmxvb3IocGxheWhlYWQgKiAodG90YWxGcmFtZXMgLSAxKSlcbiAgICAgIDogTWF0aC5mbG9vcihmcHMgKiB0aW1lKTtcbiAgfVxuXG4gIF9jb21wdXRlQ3VycmVudEZyYW1lICgpIHtcbiAgICByZXR1cm4gdGhpcy5fY29tcHV0ZUZyYW1lKFxuICAgICAgdGhpcy5wcm9wcy5wbGF5aGVhZCwgdGhpcy5wcm9wcy50aW1lLFxuICAgICAgdGhpcy5wcm9wcy50b3RhbEZyYW1lcywgdGhpcy5wcm9wcy5mcHNcbiAgICApO1xuICB9XG5cbiAgX2dldFNpemVQcm9wcyAoKSB7XG4gICAgY29uc3QgcHJvcHMgPSB0aGlzLnByb3BzO1xuICAgIHJldHVybiB7XG4gICAgICB3aWR0aDogcHJvcHMud2lkdGgsXG4gICAgICBoZWlnaHQ6IHByb3BzLmhlaWdodCxcbiAgICAgIHBpeGVsUmF0aW86IHByb3BzLnBpeGVsUmF0aW8sXG4gICAgICBjYW52YXNXaWR0aDogcHJvcHMuY2FudmFzV2lkdGgsXG4gICAgICBjYW52YXNIZWlnaHQ6IHByb3BzLmNhbnZhc0hlaWdodCxcbiAgICAgIHZpZXdwb3J0V2lkdGg6IHByb3BzLnZpZXdwb3J0V2lkdGgsXG4gICAgICB2aWV3cG9ydEhlaWdodDogcHJvcHMudmlld3BvcnRIZWlnaHRcbiAgICB9O1xuICB9XG5cbiAgcnVuICgpIHtcbiAgICBpZiAoIXRoaXMuc2tldGNoKSB0aHJvdyBuZXcgRXJyb3IoJ3Nob3VsZCB3YWl0IHVudGlsIHNrZXRjaCBpcyBsb2FkZWQgYmVmb3JlIHRyeWluZyB0byBwbGF5KCknKTtcblxuICAgIC8vIFN0YXJ0IGFuIGFuaW1hdGlvbiBmcmFtZSBsb29wIGlmIG5lY2Vzc2FyeVxuICAgIGlmICh0aGlzLnNldHRpbmdzLnBsYXlpbmcgIT09IGZhbHNlKSB7XG4gICAgICB0aGlzLnBsYXkoKTtcbiAgICB9XG5cbiAgICAvLyBMZXQncyBsZXQgdGhpcyB3YXJuaW5nIGhhbmcgYXJvdW5kIGZvciBhIGZldyB2ZXJzaW9ucy4uLlxuICAgIGlmICh0eXBlb2YgdGhpcy5za2V0Y2guZGlzcG9zZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgY29uc29sZS53YXJuKCdJbiBjYW52YXMtc2tldGNoQDAuMC4yMyB0aGUgZGlzcG9zZSgpIGV2ZW50IGhhcyBiZWVuIHJlbmFtZWQgdG8gdW5sb2FkKCknKTtcbiAgICB9XG5cbiAgICAvLyBJbiBjYXNlIHdlIGFyZW4ndCBwbGF5aW5nIG9yIGFuaW1hdGVkLCBtYWtlIHN1cmUgd2Ugc3RpbGwgdHJpZ2dlciBiZWdpbiBtZXNzYWdlLi4uXG4gICAgaWYgKCF0aGlzLnByb3BzLnN0YXJ0ZWQpIHtcbiAgICAgIHRoaXMuX3NpZ25hbEJlZ2luKCk7XG4gICAgICB0aGlzLnByb3BzLnN0YXJ0ZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIC8vIFJlbmRlciBhbiBpbml0aWFsIGZyYW1lXG4gICAgdGhpcy50aWNrKCk7XG4gICAgdGhpcy5yZW5kZXIoKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIF9jYW5jZWxUaW1lb3V0cyAoKSB7XG4gICAgaWYgKHRoaXMuX3JhZiAhPSBudWxsICYmIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiB3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9yYWYpO1xuICAgICAgdGhpcy5fcmFmID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKHRoaXMuX3JlY29yZFRpbWVvdXQgIT0gbnVsbCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX3JlY29yZFRpbWVvdXQpO1xuICAgICAgdGhpcy5fcmVjb3JkVGltZW91dCA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcGxheSAoKSB7XG4gICAgbGV0IGFuaW1hdGUgPSB0aGlzLnNldHRpbmdzLmFuaW1hdGU7XG4gICAgaWYgKCdhbmltYXRpb24nIGluIHRoaXMuc2V0dGluZ3MpIHtcbiAgICAgIGFuaW1hdGUgPSB0cnVlO1xuICAgICAgY29uc29sZS53YXJuKCdbY2FudmFzLXNrZXRjaF0geyBhbmltYXRpb24gfSBoYXMgYmVlbiByZW5hbWVkIHRvIHsgYW5pbWF0ZSB9Jyk7XG4gICAgfVxuICAgIGlmICghYW5pbWF0ZSkgcmV0dXJuO1xuICAgIGlmICghaXNCcm93c2VyKCkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1tjYW52YXMtc2tldGNoXSBXQVJOOiBVc2luZyB7IGFuaW1hdGUgfSBpbiBOb2RlLmpzIGlzIG5vdCB5ZXQgc3VwcG9ydGVkJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLnByb3BzLnBsYXlpbmcpIHJldHVybjtcbiAgICBpZiAoIXRoaXMucHJvcHMuc3RhcnRlZCkge1xuICAgICAgdGhpcy5fc2lnbmFsQmVnaW4oKTtcbiAgICAgIHRoaXMucHJvcHMuc3RhcnRlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgLy8gY29uc29sZS5sb2coJ3BsYXknLCB0aGlzLnByb3BzLnRpbWUpXG5cbiAgICAvLyBTdGFydCBhIHJlbmRlciBsb29wXG4gICAgdGhpcy5wcm9wcy5wbGF5aW5nID0gdHJ1ZTtcbiAgICB0aGlzLl9jYW5jZWxUaW1lb3V0cygpO1xuICAgIHRoaXMuX2xhc3RUaW1lID0gcmlnaHROb3coKTtcbiAgICB0aGlzLl9yYWYgPSB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMuX2FuaW1hdGVIYW5kbGVyKTtcbiAgfVxuXG4gIHBhdXNlICgpIHtcbiAgICBpZiAodGhpcy5wcm9wcy5yZWNvcmRpbmcpIHRoaXMuZW5kUmVjb3JkKCk7XG4gICAgdGhpcy5wcm9wcy5wbGF5aW5nID0gZmFsc2U7XG5cbiAgICB0aGlzLl9jYW5jZWxUaW1lb3V0cygpO1xuICB9XG5cbiAgdG9nZ2xlUGxheSAoKSB7XG4gICAgaWYgKHRoaXMucHJvcHMucGxheWluZykgdGhpcy5wYXVzZSgpO1xuICAgIGVsc2UgdGhpcy5wbGF5KCk7XG4gIH1cblxuICAvLyBTdG9wIGFuZCByZXNldCB0byBmcmFtZSB6ZXJvXG4gIHN0b3AgKCkge1xuICAgIHRoaXMucGF1c2UoKTtcbiAgICB0aGlzLnByb3BzLmZyYW1lID0gMDtcbiAgICB0aGlzLnByb3BzLnBsYXloZWFkID0gMDtcbiAgICB0aGlzLnByb3BzLnRpbWUgPSAwO1xuICAgIHRoaXMucHJvcHMuZGVsdGFUaW1lID0gMDtcbiAgICB0aGlzLnByb3BzLnN0YXJ0ZWQgPSBmYWxzZTtcbiAgICB0aGlzLnJlbmRlcigpO1xuICB9XG5cbiAgcmVjb3JkICgpIHtcbiAgICBpZiAodGhpcy5wcm9wcy5yZWNvcmRpbmcpIHJldHVybjtcbiAgICBpZiAoIWlzQnJvd3NlcigpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdbY2FudmFzLXNrZXRjaF0gV0FSTjogUmVjb3JkaW5nIGZyb20gTm9kZS5qcyBpcyBub3QgeWV0IHN1cHBvcnRlZCcpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3RvcCgpO1xuICAgIHRoaXMucHJvcHMucGxheWluZyA9IHRydWU7XG4gICAgdGhpcy5wcm9wcy5yZWNvcmRpbmcgPSB0cnVlO1xuXG4gICAgY29uc3QgZXhwb3J0T3B0cyA9IHRoaXMuX2NyZWF0ZUV4cG9ydE9wdGlvbnMoeyBzZXF1ZW5jZTogdHJ1ZSB9KTtcblxuICAgIGNvbnN0IGZyYW1lSW50ZXJ2YWwgPSAxIC8gdGhpcy5wcm9wcy5mcHM7XG4gICAgLy8gUmVuZGVyIGVhY2ggZnJhbWUgaW4gdGhlIHNlcXVlbmNlXG4gICAgdGhpcy5fY2FuY2VsVGltZW91dHMoKTtcbiAgICBjb25zdCB0aWNrID0gKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLnByb3BzLnJlY29yZGluZykgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgICAgdGhpcy5wcm9wcy5kZWx0YVRpbWUgPSBmcmFtZUludGVydmFsO1xuICAgICAgdGhpcy50aWNrKCk7XG4gICAgICByZXR1cm4gdGhpcy5leHBvcnRGcmFtZShleHBvcnRPcHRzKVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgaWYgKCF0aGlzLnByb3BzLnJlY29yZGluZykgcmV0dXJuOyAvLyB3YXMgY2FuY2VsbGVkIGJlZm9yZVxuICAgICAgICAgIHRoaXMucHJvcHMuZGVsdGFUaW1lID0gMDtcbiAgICAgICAgICB0aGlzLnByb3BzLmZyYW1lKys7XG4gICAgICAgICAgaWYgKHRoaXMucHJvcHMuZnJhbWUgPCB0aGlzLnByb3BzLnRvdGFsRnJhbWVzKSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLnRpbWUgKz0gZnJhbWVJbnRlcnZhbDtcbiAgICAgICAgICAgIHRoaXMucHJvcHMucGxheWhlYWQgPSB0aGlzLl9jb21wdXRlUGxheWhlYWQodGhpcy5wcm9wcy50aW1lLCB0aGlzLnByb3BzLmR1cmF0aW9uKTtcbiAgICAgICAgICAgIHRoaXMuX3JlY29yZFRpbWVvdXQgPSBzZXRUaW1lb3V0KHRpY2ssIDApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnRmluaXNoZWQgcmVjb3JkaW5nJyk7XG4gICAgICAgICAgICB0aGlzLl9zaWduYWxFbmQoKTtcbiAgICAgICAgICAgIHRoaXMuZW5kUmVjb3JkKCk7XG4gICAgICAgICAgICB0aGlzLnN0b3AoKTtcbiAgICAgICAgICAgIHRoaXMucnVuKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgLy8gVHJpZ2dlciBhIHN0YXJ0IGV2ZW50IGJlZm9yZSB3ZSBiZWdpbiByZWNvcmRpbmdcbiAgICBpZiAoIXRoaXMucHJvcHMuc3RhcnRlZCkge1xuICAgICAgdGhpcy5fc2lnbmFsQmVnaW4oKTtcbiAgICAgIHRoaXMucHJvcHMuc3RhcnRlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgLy8gVHJpZ2dlciAnYmVnaW4gcmVjb3JkJyBldmVudFxuICAgIGlmICh0aGlzLnNrZXRjaCAmJiB0eXBlb2YgdGhpcy5za2V0Y2guYmVnaW5SZWNvcmQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRoaXMuX3dyYXBDb250ZXh0U2NhbGUocHJvcHMgPT4gdGhpcy5za2V0Y2guYmVnaW5SZWNvcmQocHJvcHMpKTtcbiAgICB9XG5cbiAgICAvLyBJbml0aWF0ZSBhIHN0cmVhbWluZyBzdGFydCBpZiBuZWNlc3NhcnlcbiAgICBzdHJlYW1TdGFydChleHBvcnRPcHRzKVxuICAgICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICAgIH0pXG4gICAgICAudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgIHRoaXMuX3JhZiA9IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGljayk7XG4gICAgICB9KTtcbiAgfVxuXG4gIF9zaWduYWxCZWdpbiAoKSB7XG4gICAgaWYgKHRoaXMuc2tldGNoICYmIHR5cGVvZiB0aGlzLnNrZXRjaC5iZWdpbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhpcy5fd3JhcENvbnRleHRTY2FsZShwcm9wcyA9PiB0aGlzLnNrZXRjaC5iZWdpbihwcm9wcykpO1xuICAgIH1cbiAgfVxuXG4gIF9zaWduYWxFbmQgKCkge1xuICAgIGlmICh0aGlzLnNrZXRjaCAmJiB0eXBlb2YgdGhpcy5za2V0Y2guZW5kID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aGlzLl93cmFwQ29udGV4dFNjYWxlKHByb3BzID0+IHRoaXMuc2tldGNoLmVuZChwcm9wcykpO1xuICAgIH1cbiAgfVxuXG4gIGVuZFJlY29yZCAoKSB7XG4gICAgY29uc3Qgd2FzUmVjb3JkaW5nID0gdGhpcy5wcm9wcy5yZWNvcmRpbmc7XG5cbiAgICB0aGlzLl9jYW5jZWxUaW1lb3V0cygpO1xuICAgIHRoaXMucHJvcHMucmVjb3JkaW5nID0gZmFsc2U7XG4gICAgdGhpcy5wcm9wcy5kZWx0YVRpbWUgPSAwO1xuICAgIHRoaXMucHJvcHMucGxheWluZyA9IGZhbHNlO1xuXG4gICAgLy8gdGVsbCBDTEkgdGhhdCBzdHJlYW0gaGFzIGZpbmlzaGVkXG4gICAgcmV0dXJuIHN0cmVhbUVuZCgpXG4gICAgICAuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgICAgfSlcbiAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgLy8gVHJpZ2dlciAnZW5kIHJlY29yZCcgZXZlbnRcbiAgICAgICAgaWYgKHdhc1JlY29yZGluZyAmJiB0aGlzLnNrZXRjaCAmJiB0eXBlb2YgdGhpcy5za2V0Y2guZW5kUmVjb3JkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgdGhpcy5fd3JhcENvbnRleHRTY2FsZShwcm9wcyA9PiB0aGlzLnNrZXRjaC5lbmRSZWNvcmQocHJvcHMpKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBfY3JlYXRlRXhwb3J0T3B0aW9ucyAob3B0ID0ge30pIHtcbiAgICByZXR1cm4ge1xuICAgICAgc2VxdWVuY2U6IG9wdC5zZXF1ZW5jZSxcbiAgICAgIHNhdmU6IG9wdC5zYXZlLFxuICAgICAgZnBzOiB0aGlzLnByb3BzLmZwcyxcbiAgICAgIGZyYW1lOiBvcHQuc2VxdWVuY2UgPyB0aGlzLnByb3BzLmZyYW1lIDogdW5kZWZpbmVkLFxuICAgICAgZmlsZTogdGhpcy5zZXR0aW5ncy5maWxlLFxuICAgICAgbmFtZTogdGhpcy5zZXR0aW5ncy5uYW1lLFxuICAgICAgcHJlZml4OiB0aGlzLnNldHRpbmdzLnByZWZpeCxcbiAgICAgIHN1ZmZpeDogdGhpcy5zZXR0aW5ncy5zdWZmaXgsXG4gICAgICBlbmNvZGluZzogdGhpcy5zZXR0aW5ncy5lbmNvZGluZyxcbiAgICAgIGVuY29kaW5nUXVhbGl0eTogdGhpcy5zZXR0aW5ncy5lbmNvZGluZ1F1YWxpdHksXG4gICAgICB0aW1lU3RhbXA6IG9wdC50aW1lU3RhbXAgfHwgZ2V0VGltZVN0YW1wKCksXG4gICAgICB0b3RhbEZyYW1lczogaXNGaW5pdGUodGhpcy5wcm9wcy50b3RhbEZyYW1lcykgPyBNYXRoLm1heCgwLCB0aGlzLnByb3BzLnRvdGFsRnJhbWVzKSA6IDEwMDBcbiAgICB9O1xuICB9XG5cbiAgZXhwb3J0RnJhbWUgKG9wdCA9IHt9KSB7XG4gICAgaWYgKCF0aGlzLnNrZXRjaCkgcmV0dXJuIFByb21pc2UuYWxsKFtdKTtcbiAgICBpZiAodHlwZW9mIHRoaXMuc2tldGNoLnByZUV4cG9ydCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhpcy5za2V0Y2gucHJlRXhwb3J0KCk7XG4gICAgfVxuXG4gICAgLy8gT3B0aW9ucyBmb3IgZXhwb3J0IGZ1bmN0aW9uXG4gICAgbGV0IGV4cG9ydE9wdHMgPSB0aGlzLl9jcmVhdGVFeHBvcnRPcHRpb25zKG9wdCk7XG5cbiAgICBjb25zdCBjbGllbnQgPSBnZXRDbGllbnRBUEkoKTtcbiAgICBsZXQgcCA9IFByb21pc2UucmVzb2x2ZSgpO1xuICAgIGlmIChjbGllbnQgJiYgb3B0LmNvbW1pdCAmJiB0eXBlb2YgY2xpZW50LmNvbW1pdCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgY29uc3QgY29tbWl0T3B0cyA9IGFzc2lnbih7fSwgZXhwb3J0T3B0cyk7XG4gICAgICBjb25zdCBoYXNoID0gY2xpZW50LmNvbW1pdChjb21taXRPcHRzKTtcbiAgICAgIGlmIChpc1Byb21pc2UoaGFzaCkpIHAgPSBoYXNoO1xuICAgICAgZWxzZSBwID0gUHJvbWlzZS5yZXNvbHZlKGhhc2gpO1xuICAgIH1cblxuICAgIHJldHVybiBwLnRoZW4oaGFzaCA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5fZG9FeHBvcnRGcmFtZShhc3NpZ24oe30sIGV4cG9ydE9wdHMsIHsgaGFzaDogaGFzaCB8fCAnJyB9KSk7XG4gICAgfSkudGhlbihyZXN1bHQgPT4ge1xuICAgICAgLy8gTW9zdCBjb21tb24gdXNlY2FzZSBpcyB0byBleHBvcnQgYSBzaW5nbGUgbGF5ZXIsXG4gICAgICAvLyBzbyBsZXQncyBvcHRpbWl6ZSB0aGUgdXNlciBleHBlcmllbmNlIGZvciB0aGF0LlxuICAgICAgaWYgKHJlc3VsdC5sZW5ndGggPT09IDEpIHJldHVybiByZXN1bHRbMF07XG4gICAgICBlbHNlIHJldHVybiByZXN1bHQ7XG4gICAgfSk7XG4gIH1cblxuICBfZG9FeHBvcnRGcmFtZSAoZXhwb3J0T3B0cyA9IHt9KSB7XG4gICAgdGhpcy5fcHJvcHMuZXhwb3J0aW5nID0gdHJ1ZTtcblxuICAgIC8vIFJlc2l6ZSB0byBvdXRwdXQgcmVzb2x1dGlvblxuICAgIHRoaXMucmVzaXplKCk7XG5cbiAgICAvLyBEcmF3IGF0IHRoaXMgb3V0cHV0IHJlc29sdXRpb25cbiAgICBsZXQgZHJhd1Jlc3VsdCA9IHRoaXMucmVuZGVyKCk7XG5cbiAgICAvLyBUaGUgc2VsZiBvd25lZCBjYW52YXMgKG1heSBiZSB1bmRlZmluZWQuLi4hKVxuICAgIGNvbnN0IGNhbnZhcyA9IHRoaXMucHJvcHMuY2FudmFzO1xuXG4gICAgLy8gR2V0IGxpc3Qgb2YgcmVzdWx0cyBmcm9tIHJlbmRlclxuICAgIGlmICh0eXBlb2YgZHJhd1Jlc3VsdCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGRyYXdSZXN1bHQgPSBbIGNhbnZhcyBdO1xuICAgIH1cbiAgICBkcmF3UmVzdWx0ID0gW10uY29uY2F0KGRyYXdSZXN1bHQpLmZpbHRlcihCb29sZWFuKTtcblxuICAgIC8vIFRyYW5zZm9ybSB0aGUgY2FudmFzL2ZpbGUgZGVzY3JpcHRvcnMgaW50byBhIGNvbnNpc3RlbnQgZm9ybWF0LFxuICAgIC8vIGFuZCBwdWxsIG91dCBhbnkgZGF0YSBVUkxzIGZyb20gY2FudmFzIGVsZW1lbnRzXG4gICAgZHJhd1Jlc3VsdCA9IGRyYXdSZXN1bHQubWFwKHJlc3VsdCA9PiB7XG4gICAgICBjb25zdCBoYXNEYXRhT2JqZWN0ID0gdHlwZW9mIHJlc3VsdCA9PT0gJ29iamVjdCcgJiYgcmVzdWx0ICYmICgnZGF0YScgaW4gcmVzdWx0IHx8ICdkYXRhVVJMJyBpbiByZXN1bHQpO1xuICAgICAgY29uc3QgZGF0YSA9IGhhc0RhdGFPYmplY3QgPyByZXN1bHQuZGF0YSA6IHJlc3VsdDtcbiAgICAgIGNvbnN0IG9wdHMgPSBoYXNEYXRhT2JqZWN0ID8gYXNzaWduKHt9LCByZXN1bHQsIHsgZGF0YSB9KSA6IHsgZGF0YSB9O1xuICAgICAgaWYgKGlzQ2FudmFzKGRhdGEpKSB7XG4gICAgICAgIGNvbnN0IGVuY29kaW5nID0gb3B0cy5lbmNvZGluZyB8fCBleHBvcnRPcHRzLmVuY29kaW5nO1xuICAgICAgICBjb25zdCBlbmNvZGluZ1F1YWxpdHkgPSBkZWZpbmVkKG9wdHMuZW5jb2RpbmdRdWFsaXR5LCBleHBvcnRPcHRzLmVuY29kaW5nUXVhbGl0eSwgMC45NSk7XG4gICAgICAgIGNvbnN0IHsgZGF0YVVSTCwgZXh0ZW5zaW9uLCB0eXBlIH0gPSBleHBvcnRDYW52YXMoZGF0YSwgeyBlbmNvZGluZywgZW5jb2RpbmdRdWFsaXR5IH0pO1xuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihvcHRzLCB7IGRhdGFVUkwsIGV4dGVuc2lvbiwgdHlwZSB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBvcHRzO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gTm93IHJldHVybiB0byByZWd1bGFyIHJlbmRlcmluZyBtb2RlXG4gICAgdGhpcy5fcHJvcHMuZXhwb3J0aW5nID0gZmFsc2U7XG4gICAgdGhpcy5yZXNpemUoKTtcbiAgICB0aGlzLnJlbmRlcigpO1xuXG4gICAgLy8gQW5kIG5vdyB3ZSBjYW4gc2F2ZSBlYWNoIHJlc3VsdFxuICAgIHJldHVybiBQcm9taXNlLmFsbChkcmF3UmVzdWx0Lm1hcCgocmVzdWx0LCBpLCBsYXllckxpc3QpID0+IHtcbiAgICAgIC8vIEJ5IGRlZmF1bHQsIGlmIHJlbmRlcmluZyBtdWx0aXBsZSBsYXllcnMgd2Ugd2lsbCBnaXZlIHRoZW0gaW5kaWNlc1xuICAgICAgY29uc3QgY3VyT3B0ID0gYXNzaWduKHtcbiAgICAgICAgZXh0ZW5zaW9uOiAnJyxcbiAgICAgICAgcHJlZml4OiAnJyxcbiAgICAgICAgc3VmZml4OiAnJ1xuICAgICAgfSwgZXhwb3J0T3B0cywgcmVzdWx0LCB7XG4gICAgICAgIGxheWVyOiBpLFxuICAgICAgICB0b3RhbExheWVyczogbGF5ZXJMaXN0Lmxlbmd0aFxuICAgICAgfSk7XG5cbiAgICAgIC8vIElmIGV4cG9ydCBpcyBleHBsaWNpdGx5IG5vdCBzYXZpbmcsIG1ha2Ugc3VyZSBub3RoaW5nIHNhdmVzXG4gICAgICAvLyBPdGhlcndpc2UgZGVmYXVsdCB0byB0aGUgbGF5ZXIgc2F2ZSBvcHRpb24sIG9yIGZhbGxiYWNrIHRvIHRydWVcbiAgICAgIGNvbnN0IHNhdmVQYXJhbSA9IGV4cG9ydE9wdHMuc2F2ZSA9PT0gZmFsc2UgPyBmYWxzZSA6IHJlc3VsdC5zYXZlO1xuICAgICAgY3VyT3B0LnNhdmUgPSBzYXZlUGFyYW0gIT09IGZhbHNlO1xuXG4gICAgICAvLyBSZXNvbHZlIGEgZnVsbCBmaWxlbmFtZSBmcm9tIGFsbCB0aGUgb3B0aW9uc1xuICAgICAgY3VyT3B0LmZpbGVuYW1lID0gcmVzb2x2ZUZpbGVuYW1lKGN1ck9wdCk7XG5cbiAgICAgIC8vIENsZWFuIHVwIHNvbWUgcGFyYW1ldGVycyB0aGF0IG1heSBiZSBhbWJpZ3VvdXMgdG8gdGhlIHVzZXJcbiAgICAgIGRlbGV0ZSBjdXJPcHQuZW5jb2Rpbmc7XG4gICAgICBkZWxldGUgY3VyT3B0LmVuY29kaW5nUXVhbGl0eTtcblxuICAgICAgLy8gQ2xlYW4gaXQgdXAgZnVydGhlciBieSBqdXN0IHJlbW92aW5nIHVuZGVmaW5lZCB2YWx1ZXNcbiAgICAgIGZvciAobGV0IGsgaW4gY3VyT3B0KSB7XG4gICAgICAgIGlmICh0eXBlb2YgY3VyT3B0W2tdID09PSAndW5kZWZpbmVkJykgZGVsZXRlIGN1ck9wdFtrXTtcbiAgICAgIH1cblxuICAgICAgbGV0IHNhdmVQcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKHt9KTtcbiAgICAgIGlmIChjdXJPcHQuc2F2ZSkge1xuICAgICAgICAvLyBXaGV0aGVyIHRvIGFjdHVhbGx5IHNhdmUgKGRvd25sb2FkKSB0aGlzIGZyYWdtZW50XG4gICAgICAgIGNvbnN0IGRhdGEgPSBjdXJPcHQuZGF0YTtcbiAgICAgICAgaWYgKGN1ck9wdC5kYXRhVVJMKSB7XG4gICAgICAgICAgY29uc3QgZGF0YVVSTCA9IGN1ck9wdC5kYXRhVVJMO1xuICAgICAgICAgIHNhdmVQcm9taXNlID0gc2F2ZURhdGFVUkwoZGF0YVVSTCwgY3VyT3B0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzYXZlUHJvbWlzZSA9IHNhdmVGaWxlKGRhdGEsIGN1ck9wdCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBzYXZlUHJvbWlzZS50aGVuKHNhdmVSZXN1bHQgPT4ge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgY3VyT3B0LCBzYXZlUmVzdWx0KTtcbiAgICAgIH0pO1xuICAgIH0pKS50aGVuKGV2ID0+IHtcbiAgICAgIGNvbnN0IHNhdmVkRXZlbnRzID0gZXYuZmlsdGVyKGUgPT4gZS5zYXZlKTtcbiAgICAgIGlmIChzYXZlZEV2ZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgIC8vIExvZyB0aGUgc2F2ZWQgZXhwb3J0c1xuICAgICAgICBjb25zdCBldmVudFdpdGhPdXRwdXQgPSBzYXZlZEV2ZW50cy5maW5kKGUgPT4gZS5vdXRwdXROYW1lKTtcbiAgICAgICAgY29uc3QgaXNDbGllbnQgPSBzYXZlZEV2ZW50cy5zb21lKGUgPT4gZS5jbGllbnQpO1xuICAgICAgICBjb25zdCBpc1N0cmVhbWluZyA9IHNhdmVkRXZlbnRzLnNvbWUoZSA9PiBlLnN0cmVhbSk7XG4gICAgICAgIGxldCBpdGVtO1xuICAgICAgICAvLyBtYW55IGZpbGVzLCBqdXN0IGxvZyBob3cgbWFueSB3ZXJlIGV4cG9ydGVkXG4gICAgICAgIGlmIChzYXZlZEV2ZW50cy5sZW5ndGggPiAxKSBpdGVtID0gc2F2ZWRFdmVudHMubGVuZ3RoO1xuICAgICAgICAvLyBpbiBDTEksIHdlIGtub3cgZXhhY3QgcGF0aCBkaXJuYW1lXG4gICAgICAgIGVsc2UgaWYgKGV2ZW50V2l0aE91dHB1dCkgaXRlbSA9IGAke2V2ZW50V2l0aE91dHB1dC5vdXRwdXROYW1lfS8ke3NhdmVkRXZlbnRzWzBdLmZpbGVuYW1lfWA7XG4gICAgICAgIC8vIGluIGJyb3dzZXIsIHdlIGNhbiBvbmx5IGtub3cgaXQgd2VudCB0byBcImJyb3dzZXIgZG93bmxvYWQgZm9sZGVyXCJcbiAgICAgICAgZWxzZSBpdGVtID0gYCR7c2F2ZWRFdmVudHNbMF0uZmlsZW5hbWV9YDtcbiAgICAgICAgbGV0IG9mU2VxID0gJyc7XG4gICAgICAgIGlmIChleHBvcnRPcHRzLnNlcXVlbmNlKSB7XG4gICAgICAgICAgY29uc3QgaGFzVG90YWxGcmFtZXMgPSBpc0Zpbml0ZSh0aGlzLnByb3BzLnRvdGFsRnJhbWVzKTtcbiAgICAgICAgICBvZlNlcSA9IGhhc1RvdGFsRnJhbWVzID8gYCAoZnJhbWUgJHtleHBvcnRPcHRzLmZyYW1lICsgMX0gLyAke3RoaXMucHJvcHMudG90YWxGcmFtZXN9KWAgOiBgIChmcmFtZSAke2V4cG9ydE9wdHMuZnJhbWV9KWA7XG4gICAgICAgIH0gZWxzZSBpZiAoc2F2ZWRFdmVudHMubGVuZ3RoID4gMSkge1xuICAgICAgICAgIG9mU2VxID0gYCBmaWxlc2A7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2xpZW50ID0gaXNDbGllbnQgPyAnY2FudmFzLXNrZXRjaC1jbGknIDogJ2NhbnZhcy1za2V0Y2gnO1xuICAgICAgICBjb25zdCBhY3Rpb24gPSBpc1N0cmVhbWluZyA/ICdTdHJlYW1pbmcgaW50bycgOiAnRXhwb3J0ZWQnO1xuICAgICAgICBjb25zb2xlLmxvZyhgJWNbJHtjbGllbnR9XSVjICR7YWN0aW9ufSAlYyR7aXRlbX0lYyR7b2ZTZXF9YCwgJ2NvbG9yOiAjOGU4ZThlOycsICdjb2xvcjogaW5pdGlhbDsnLCAnZm9udC13ZWlnaHQ6IGJvbGQ7JywgJ2ZvbnQtd2VpZ2h0OiBpbml0aWFsOycpO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiB0aGlzLnNrZXRjaC5wb3N0RXhwb3J0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRoaXMuc2tldGNoLnBvc3RFeHBvcnQoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBldjtcbiAgICB9KTtcbiAgfVxuXG4gIF93cmFwQ29udGV4dFNjYWxlIChjYikge1xuICAgIHRoaXMuX3ByZVJlbmRlcigpO1xuICAgIGNiKHRoaXMucHJvcHMpO1xuICAgIHRoaXMuX3Bvc3RSZW5kZXIoKTtcbiAgfVxuXG4gIF9wcmVSZW5kZXIgKCkge1xuICAgIGNvbnN0IHByb3BzID0gdGhpcy5wcm9wcztcblxuICAgIC8vIFNjYWxlIGNvbnRleHQgZm9yIHVuaXQgc2l6aW5nXG4gICAgaWYgKCF0aGlzLnByb3BzLmdsICYmIHByb3BzLmNvbnRleHQgJiYgIXByb3BzLnA1KSB7XG4gICAgICBwcm9wcy5jb250ZXh0LnNhdmUoKTtcbiAgICAgIGlmICh0aGlzLnNldHRpbmdzLnNjYWxlQ29udGV4dCAhPT0gZmFsc2UpIHtcbiAgICAgICAgcHJvcHMuY29udGV4dC5zY2FsZShwcm9wcy5zY2FsZVgsIHByb3BzLnNjYWxlWSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChwcm9wcy5wNSkge1xuICAgICAgcHJvcHMucDUuc2NhbGUocHJvcHMuc2NhbGVYIC8gcHJvcHMucGl4ZWxSYXRpbywgcHJvcHMuc2NhbGVZIC8gcHJvcHMucGl4ZWxSYXRpbyk7XG4gICAgfVxuICB9XG5cbiAgX3Bvc3RSZW5kZXIgKCkge1xuICAgIGNvbnN0IHByb3BzID0gdGhpcy5wcm9wcztcblxuICAgIGlmICghdGhpcy5wcm9wcy5nbCAmJiBwcm9wcy5jb250ZXh0ICYmICFwcm9wcy5wNSkge1xuICAgICAgcHJvcHMuY29udGV4dC5yZXN0b3JlKCk7XG4gICAgfVxuXG4gICAgLy8gRmx1c2ggYnkgZGVmYXVsdCwgdGhpcyBtYXkgYmUgcmV2aXNpdGVkIGF0IGEgbGF0ZXIgcG9pbnQuXG4gICAgLy8gV2UgZG8gdGhpcyB0byBlbnN1cmUgdG9EYXRhVVJMIGNhbiBiZSBjYWxsZWQgaW1tZWRpYXRlbHkgYWZ0ZXIuXG4gICAgLy8gTW9zdCBsaWtlbHkgYnJvd3NlcnMgYWxyZWFkeSBoYW5kbGUgdGhpcywgc28gd2UgbWF5IHJldmlzaXQgdGhpcyBhbmRcbiAgICAvLyByZW1vdmUgaXQgaWYgaXQgaW1wcm92ZXMgcGVyZm9ybWFuY2Ugd2l0aG91dCBhbnkgdXNhYmlsaXR5IGlzc3Vlcy5cbiAgICBpZiAocHJvcHMuZ2wgJiYgdGhpcy5zZXR0aW5ncy5mbHVzaCAhPT0gZmFsc2UgJiYgIXByb3BzLnA1KSB7XG4gICAgICBwcm9wcy5nbC5mbHVzaCgpO1xuICAgIH1cbiAgfVxuXG4gIHRpY2sgKCkge1xuICAgIGlmICh0aGlzLnNrZXRjaCAmJiB0eXBlb2YgdGhpcy5za2V0Y2gudGljayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhpcy5fcHJlUmVuZGVyKCk7XG4gICAgICB0aGlzLnNrZXRjaC50aWNrKHRoaXMucHJvcHMpO1xuICAgICAgdGhpcy5fcG9zdFJlbmRlcigpO1xuICAgIH1cbiAgfVxuXG4gIHJlbmRlciAoKSB7XG4gICAgaWYgKHRoaXMucHJvcHMucDUpIHtcbiAgICAgIHRoaXMuX2xhc3RSZWRyYXdSZXN1bHQgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLnByb3BzLnA1LnJlZHJhdygpO1xuICAgICAgcmV0dXJuIHRoaXMuX2xhc3RSZWRyYXdSZXN1bHQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnN1Ym1pdERyYXdDYWxsKCk7XG4gICAgfVxuICB9XG5cbiAgc3VibWl0RHJhd0NhbGwgKCkge1xuICAgIGlmICghdGhpcy5za2V0Y2gpIHJldHVybjtcblxuICAgIGNvbnN0IHByb3BzID0gdGhpcy5wcm9wcztcbiAgICB0aGlzLl9wcmVSZW5kZXIoKTtcblxuICAgIGxldCBkcmF3UmVzdWx0O1xuXG4gICAgaWYgKHR5cGVvZiB0aGlzLnNrZXRjaCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgZHJhd1Jlc3VsdCA9IHRoaXMuc2tldGNoKHByb3BzKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB0aGlzLnNrZXRjaC5yZW5kZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGRyYXdSZXN1bHQgPSB0aGlzLnNrZXRjaC5yZW5kZXIocHJvcHMpO1xuICAgIH1cblxuICAgIHRoaXMuX3Bvc3RSZW5kZXIoKTtcblxuICAgIHJldHVybiBkcmF3UmVzdWx0O1xuICB9XG5cbiAgdXBkYXRlIChvcHQgPSB7fSkge1xuICAgIC8vIEN1cnJlbnRseSB1cGRhdGUoKSBpcyBvbmx5IGZvY3VzZWQgb24gcmVzaXppbmcsXG4gICAgLy8gYnV0IGxhdGVyIHdlIHdpbGwgc3VwcG9ydCBvdGhlciBvcHRpb25zIGxpa2Ugc3dpdGNoaW5nXG4gICAgLy8gZnJhbWVzIGFuZCBzdWNoLlxuICAgIGNvbnN0IG5vdFlldFN1cHBvcnRlZCA9IFtcbiAgICAgICdhbmltYXRlJ1xuICAgIF07XG5cbiAgICBPYmplY3Qua2V5cyhvcHQpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIGlmIChub3RZZXRTdXBwb3J0ZWQuaW5kZXhPZihrZXkpID49IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBTb3JyeSwgdGhlIHsgJHtrZXl9IH0gb3B0aW9uIGlzIG5vdCB5ZXQgc3VwcG9ydGVkIHdpdGggdXBkYXRlKCkuYCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCBvbGRDYW52YXMgPSB0aGlzLl9zZXR0aW5ncy5jYW52YXM7XG4gICAgY29uc3Qgb2xkQ29udGV4dCA9IHRoaXMuX3NldHRpbmdzLmNvbnRleHQ7XG5cbiAgICAvLyBNZXJnZSBuZXcgb3B0aW9ucyBpbnRvIHNldHRpbmdzXG4gICAgZm9yIChsZXQga2V5IGluIG9wdCkge1xuICAgICAgY29uc3QgdmFsdWUgPSBvcHRba2V5XTtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICd1bmRlZmluZWQnKSB7IC8vIGlnbm9yZSB1bmRlZmluZWRcbiAgICAgICAgdGhpcy5fc2V0dGluZ3Nba2V5XSA9IHZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE1lcmdlIGluIHRpbWUgcHJvcHNcbiAgICBjb25zdCB0aW1lT3B0cyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuX3NldHRpbmdzLCBvcHQpO1xuICAgIGlmICgndGltZScgaW4gb3B0ICYmICdmcmFtZScgaW4gb3B0KSB0aHJvdyBuZXcgRXJyb3IoJ1lvdSBzaG91bGQgc3BlY2lmeSB7IHRpbWUgfSBvciB7IGZyYW1lIH0gYnV0IG5vdCBib3RoJyk7XG4gICAgZWxzZSBpZiAoJ3RpbWUnIGluIG9wdCkgZGVsZXRlIHRpbWVPcHRzLmZyYW1lO1xuICAgIGVsc2UgaWYgKCdmcmFtZScgaW4gb3B0KSBkZWxldGUgdGltZU9wdHMudGltZTtcbiAgICBpZiAoJ2R1cmF0aW9uJyBpbiBvcHQgJiYgJ3RvdGFsRnJhbWVzJyBpbiBvcHQpIHRocm93IG5ldyBFcnJvcignWW91IHNob3VsZCBzcGVjaWZ5IHsgZHVyYXRpb24gfSBvciB7IHRvdGFsRnJhbWVzIH0gYnV0IG5vdCBib3RoJyk7XG4gICAgZWxzZSBpZiAoJ2R1cmF0aW9uJyBpbiBvcHQpIGRlbGV0ZSB0aW1lT3B0cy50b3RhbEZyYW1lcztcbiAgICBlbHNlIGlmICgndG90YWxGcmFtZXMnIGluIG9wdCkgZGVsZXRlIHRpbWVPcHRzLmR1cmF0aW9uO1xuXG4gICAgLy8gTWVyZ2UgaW4gdXNlciBkYXRhIHdpdGhvdXQgY29weWluZ1xuICAgIGlmICgnZGF0YScgaW4gb3B0KSB0aGlzLl9wcm9wcy5kYXRhID0gb3B0LmRhdGE7XG5cbiAgICBjb25zdCB0aW1lUHJvcHMgPSB0aGlzLmdldFRpbWVQcm9wcyh0aW1lT3B0cyk7XG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLl9wcm9wcywgdGltZVByb3BzKTtcblxuICAgIC8vIElmIGVpdGhlciBjYW52YXMgb3IgY29udGV4dCBpcyBjaGFuZ2VkLCB3ZSBzaG91bGQgcmUtdXBkYXRlXG4gICAgaWYgKG9sZENhbnZhcyAhPT0gdGhpcy5fc2V0dGluZ3MuY2FudmFzIHx8IG9sZENvbnRleHQgIT09IHRoaXMuX3NldHRpbmdzLmNvbnRleHQpIHtcbiAgICAgIGNvbnN0IHsgY2FudmFzLCBjb250ZXh0IH0gPSBjcmVhdGVDYW52YXModGhpcy5fc2V0dGluZ3MpO1xuXG4gICAgICB0aGlzLnByb3BzLmNhbnZhcyA9IGNhbnZhcztcbiAgICAgIHRoaXMucHJvcHMuY29udGV4dCA9IGNvbnRleHQ7XG5cbiAgICAgIC8vIERlbGV0ZSBvciBhZGQgYSAnZ2wnIHByb3AgZm9yIGNvbnZlbmllbmNlXG4gICAgICB0aGlzLl9zZXR1cEdMS2V5KCk7XG5cbiAgICAgIC8vIFJlLW1vdW50IHRoZSBuZXcgY2FudmFzIGlmIGl0IGhhcyBubyBwYXJlbnRcbiAgICAgIHRoaXMuX2FwcGVuZENhbnZhc0lmTmVlZGVkKCk7XG4gICAgfVxuXG4gICAgLy8gU3BlY2lhbCBjYXNlIHRvIHN1cHBvcnQgUDUuanNcbiAgICBpZiAob3B0LnA1ICYmIHR5cGVvZiBvcHQucDUgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRoaXMucHJvcHMucDUgPSBvcHQucDU7XG4gICAgICB0aGlzLnByb3BzLnA1LmRyYXcgPSAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLl9pc1A1UmVzaXppbmcpIHJldHVybjtcbiAgICAgICAgdGhpcy5fbGFzdFJlZHJhd1Jlc3VsdCA9IHRoaXMuc3VibWl0RHJhd0NhbGwoKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gVXBkYXRlIHBsYXlpbmcgc3RhdGUgaWYgbmVjZXNzYXJ5XG4gICAgaWYgKCdwbGF5aW5nJyBpbiBvcHQpIHtcbiAgICAgIGlmIChvcHQucGxheWluZykgdGhpcy5wbGF5KCk7XG4gICAgICBlbHNlIHRoaXMucGF1c2UoKTtcbiAgICB9XG5cbiAgICBjaGVja1NldHRpbmdzKHRoaXMuX3NldHRpbmdzKTtcblxuICAgIC8vIERyYXcgbmV3IGZyYW1lXG4gICAgdGhpcy5yZXNpemUoKTtcbiAgICB0aGlzLnJlbmRlcigpO1xuICAgIHJldHVybiB0aGlzLnByb3BzO1xuICB9XG5cbiAgcmVzaXplICgpIHtcbiAgICBjb25zdCBvbGRTaXplcyA9IHRoaXMuX2dldFNpemVQcm9wcygpO1xuXG4gICAgY29uc3Qgc2V0dGluZ3MgPSB0aGlzLnNldHRpbmdzO1xuICAgIGNvbnN0IHByb3BzID0gdGhpcy5wcm9wcztcblxuICAgIC8vIFJlY29tcHV0ZSBuZXcgcHJvcGVydGllcyBiYXNlZCBvbiBjdXJyZW50IHNldHVwXG4gICAgY29uc3QgbmV3UHJvcHMgPSByZXNpemVDYW52YXMocHJvcHMsIHNldHRpbmdzKTtcblxuICAgIC8vIEFzc2lnbiB0byBjdXJyZW50IHByb3BzXG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLl9wcm9wcywgbmV3UHJvcHMpO1xuXG4gICAgLy8gTm93IHdlIGFjdHVhbGx5IHVwZGF0ZSB0aGUgY2FudmFzIHdpZHRoL2hlaWdodCBhbmQgc3R5bGUgcHJvcHNcbiAgICBjb25zdCB7XG4gICAgICBwaXhlbFJhdGlvLFxuICAgICAgY2FudmFzV2lkdGgsXG4gICAgICBjYW52YXNIZWlnaHQsXG4gICAgICBzdHlsZVdpZHRoLFxuICAgICAgc3R5bGVIZWlnaHRcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIC8vIFVwZGF0ZSBjYW52YXMgc2V0dGluZ3NcbiAgICBjb25zdCBjYW52YXMgPSB0aGlzLnByb3BzLmNhbnZhcztcbiAgICBpZiAoY2FudmFzICYmIHNldHRpbmdzLnJlc2l6ZUNhbnZhcyAhPT0gZmFsc2UpIHtcbiAgICAgIGlmIChwcm9wcy5wNSkge1xuICAgICAgICAvLyBQNS5qcyBzcGVjaWZpYyBlZGdlIGNhc2VcbiAgICAgICAgaWYgKGNhbnZhcy53aWR0aCAhPT0gY2FudmFzV2lkdGggfHwgY2FudmFzLmhlaWdodCAhPT0gY2FudmFzSGVpZ2h0KSB7XG4gICAgICAgICAgdGhpcy5faXNQNVJlc2l6aW5nID0gdHJ1ZTtcbiAgICAgICAgICAvLyBUaGlzIGNhdXNlcyBhIHJlLWRyYXcgOlxcIHNvIHdlIGlnbm9yZSBkcmF3cyBpbiB0aGUgbWVhbiB0aW1lLi4uIHNvcnRhIGhhY2t5XG4gICAgICAgICAgcHJvcHMucDUucGl4ZWxEZW5zaXR5KHBpeGVsUmF0aW8pO1xuICAgICAgICAgIHByb3BzLnA1LnJlc2l6ZUNhbnZhcyhjYW52YXNXaWR0aCAvIHBpeGVsUmF0aW8sIGNhbnZhc0hlaWdodCAvIHBpeGVsUmF0aW8sIGZhbHNlKTtcbiAgICAgICAgICB0aGlzLl9pc1A1UmVzaXppbmcgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gRm9yY2UgY2FudmFzIHNpemVcbiAgICAgICAgaWYgKGNhbnZhcy53aWR0aCAhPT0gY2FudmFzV2lkdGgpIGNhbnZhcy53aWR0aCA9IGNhbnZhc1dpZHRoO1xuICAgICAgICBpZiAoY2FudmFzLmhlaWdodCAhPT0gY2FudmFzSGVpZ2h0KSBjYW52YXMuaGVpZ2h0ID0gY2FudmFzSGVpZ2h0O1xuICAgICAgfVxuICAgICAgLy8gVXBkYXRlIGNhbnZhcyBzdHlsZVxuICAgICAgaWYgKGlzQnJvd3NlcigpICYmIHNldHRpbmdzLnN0eWxlQ2FudmFzICE9PSBmYWxzZSkge1xuICAgICAgICBjYW52YXMuc3R5bGUud2lkdGggPSBgJHtzdHlsZVdpZHRofXB4YDtcbiAgICAgICAgY2FudmFzLnN0eWxlLmhlaWdodCA9IGAke3N0eWxlSGVpZ2h0fXB4YDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBuZXdTaXplcyA9IHRoaXMuX2dldFNpemVQcm9wcygpO1xuICAgIGxldCBjaGFuZ2VkID0gIWRlZXBFcXVhbChvbGRTaXplcywgbmV3U2l6ZXMpO1xuICAgIGlmIChjaGFuZ2VkKSB7XG4gICAgICB0aGlzLl9zaXplQ2hhbmdlZCgpO1xuICAgIH1cbiAgICByZXR1cm4gY2hhbmdlZDtcbiAgfVxuXG4gIF9zaXplQ2hhbmdlZCAoKSB7XG4gICAgLy8gU2VuZCByZXNpemUgZXZlbnQgdG8gc2tldGNoXG4gICAgaWYgKHRoaXMuc2tldGNoICYmIHR5cGVvZiB0aGlzLnNrZXRjaC5yZXNpemUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRoaXMuc2tldGNoLnJlc2l6ZSh0aGlzLnByb3BzKTtcbiAgICB9XG4gIH1cblxuICBhbmltYXRlICgpIHtcbiAgICBpZiAoIXRoaXMucHJvcHMucGxheWluZykgcmV0dXJuO1xuICAgIGlmICghaXNCcm93c2VyKCkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1tjYW52YXMtc2tldGNoXSBXQVJOOiBBbmltYXRpb24gaW4gTm9kZS5qcyBpcyBub3QgeWV0IHN1cHBvcnRlZCcpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9yYWYgPSB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMuX2FuaW1hdGVIYW5kbGVyKTtcblxuICAgIGxldCBub3cgPSByaWdodE5vdygpO1xuXG4gICAgY29uc3QgZnBzID0gdGhpcy5wcm9wcy5mcHM7XG4gICAgY29uc3QgZnJhbWVJbnRlcnZhbE1TID0gMTAwMCAvIGZwcztcbiAgICBsZXQgZGVsdGFUaW1lTVMgPSBub3cgLSB0aGlzLl9sYXN0VGltZTtcblxuICAgIGNvbnN0IGR1cmF0aW9uID0gdGhpcy5wcm9wcy5kdXJhdGlvbjtcbiAgICBjb25zdCBoYXNEdXJhdGlvbiA9IHR5cGVvZiBkdXJhdGlvbiA9PT0gJ251bWJlcicgJiYgaXNGaW5pdGUoZHVyYXRpb24pO1xuXG4gICAgbGV0IGlzTmV3RnJhbWUgPSB0cnVlO1xuICAgIGNvbnN0IHBsYXliYWNrUmF0ZSA9IHRoaXMuc2V0dGluZ3MucGxheWJhY2tSYXRlO1xuICAgIGlmIChwbGF5YmFja1JhdGUgPT09ICdmaXhlZCcpIHtcbiAgICAgIGRlbHRhVGltZU1TID0gZnJhbWVJbnRlcnZhbE1TO1xuICAgIH0gZWxzZSBpZiAocGxheWJhY2tSYXRlID09PSAndGhyb3R0bGUnKSB7XG4gICAgICBpZiAoZGVsdGFUaW1lTVMgPiBmcmFtZUludGVydmFsTVMpIHtcbiAgICAgICAgbm93ID0gbm93IC0gKGRlbHRhVGltZU1TICUgZnJhbWVJbnRlcnZhbE1TKTtcbiAgICAgICAgdGhpcy5fbGFzdFRpbWUgPSBub3c7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpc05ld0ZyYW1lID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2xhc3RUaW1lID0gbm93O1xuICAgIH1cblxuICAgIGNvbnN0IGRlbHRhVGltZSA9IGRlbHRhVGltZU1TIC8gMTAwMDtcbiAgICBsZXQgbmV3VGltZSA9IHRoaXMucHJvcHMudGltZSArIGRlbHRhVGltZSAqIHRoaXMucHJvcHMudGltZVNjYWxlO1xuXG4gICAgLy8gSGFuZGxlIHJldmVyc2UgdGltZSBzY2FsZVxuICAgIGlmIChuZXdUaW1lIDwgMCAmJiBoYXNEdXJhdGlvbikge1xuICAgICAgbmV3VGltZSA9IGR1cmF0aW9uICsgbmV3VGltZTtcbiAgICB9XG5cbiAgICAvLyBSZS1zdGFydCBhbmltYXRpb25cbiAgICBsZXQgaXNGaW5pc2hlZCA9IGZhbHNlO1xuICAgIGxldCBpc0xvb3BTdGFydCA9IGZhbHNlO1xuXG4gICAgY29uc3QgbG9vcGluZyA9IHRoaXMuc2V0dGluZ3MubG9vcCAhPT0gZmFsc2U7XG5cbiAgICBpZiAoaGFzRHVyYXRpb24gJiYgbmV3VGltZSA+PSBkdXJhdGlvbikge1xuICAgICAgLy8gUmUtc3RhcnQgYW5pbWF0aW9uXG4gICAgICBpZiAobG9vcGluZykge1xuICAgICAgICBpc05ld0ZyYW1lID0gdHJ1ZTtcbiAgICAgICAgbmV3VGltZSA9IG5ld1RpbWUgJSBkdXJhdGlvbjtcbiAgICAgICAgaXNMb29wU3RhcnQgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaXNOZXdGcmFtZSA9IGZhbHNlO1xuICAgICAgICBuZXdUaW1lID0gZHVyYXRpb247XG4gICAgICAgIGlzRmluaXNoZWQgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9zaWduYWxFbmQoKTtcbiAgICB9XG5cbiAgICBpZiAoaXNOZXdGcmFtZSkge1xuICAgICAgdGhpcy5wcm9wcy5kZWx0YVRpbWUgPSBkZWx0YVRpbWU7XG4gICAgICB0aGlzLnByb3BzLnRpbWUgPSBuZXdUaW1lO1xuICAgICAgdGhpcy5wcm9wcy5wbGF5aGVhZCA9IHRoaXMuX2NvbXB1dGVQbGF5aGVhZChuZXdUaW1lLCBkdXJhdGlvbik7XG4gICAgICBjb25zdCBsYXN0RnJhbWUgPSB0aGlzLnByb3BzLmZyYW1lO1xuICAgICAgdGhpcy5wcm9wcy5mcmFtZSA9IHRoaXMuX2NvbXB1dGVDdXJyZW50RnJhbWUoKTtcbiAgICAgIGlmIChpc0xvb3BTdGFydCkgdGhpcy5fc2lnbmFsQmVnaW4oKTtcbiAgICAgIGlmIChsYXN0RnJhbWUgIT09IHRoaXMucHJvcHMuZnJhbWUpIHRoaXMudGljaygpO1xuICAgICAgdGhpcy5yZW5kZXIoKTtcbiAgICAgIHRoaXMucHJvcHMuZGVsdGFUaW1lID0gMDtcbiAgICB9XG5cbiAgICBpZiAoaXNGaW5pc2hlZCkge1xuICAgICAgdGhpcy5wYXVzZSgpO1xuICAgIH1cbiAgfVxuXG4gIGRpc3BhdGNoIChjYikge1xuICAgIGlmICh0eXBlb2YgY2IgIT09ICdmdW5jdGlvbicpIHRocm93IG5ldyBFcnJvcignbXVzdCBwYXNzIGZ1bmN0aW9uIGludG8gZGlzcGF0Y2goKScpO1xuICAgIGNiKHRoaXMucHJvcHMpO1xuICAgIHRoaXMucmVuZGVyKCk7XG4gIH1cblxuICBtb3VudCAoKSB7XG4gICAgdGhpcy5fYXBwZW5kQ2FudmFzSWZOZWVkZWQoKTtcbiAgfVxuXG4gIHVubW91bnQgKCkge1xuICAgIGlmIChpc0Jyb3dzZXIoKSkge1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMuX3Jlc2l6ZUhhbmRsZXIpO1xuICAgICAgdGhpcy5fa2V5Ym9hcmRTaG9ydGN1dHMuZGV0YWNoKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnByb3BzLmNhbnZhcy5wYXJlbnRFbGVtZW50KSB7XG4gICAgICB0aGlzLnByb3BzLmNhbnZhcy5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMucHJvcHMuY2FudmFzKTtcbiAgICB9XG4gIH1cblxuICBfYXBwZW5kQ2FudmFzSWZOZWVkZWQgKCkge1xuICAgIGlmICghaXNCcm93c2VyKCkpIHJldHVybjtcbiAgICBpZiAodGhpcy5zZXR0aW5ncy5wYXJlbnQgIT09IGZhbHNlICYmICh0aGlzLnByb3BzLmNhbnZhcyAmJiAhdGhpcy5wcm9wcy5jYW52YXMucGFyZW50RWxlbWVudCkpIHtcbiAgICAgIGNvbnN0IGRlZmF1bHRQYXJlbnQgPSB0aGlzLnNldHRpbmdzLnBhcmVudCB8fCBkb2N1bWVudC5ib2R5O1xuICAgICAgZGVmYXVsdFBhcmVudC5hcHBlbmRDaGlsZCh0aGlzLnByb3BzLmNhbnZhcyk7XG4gICAgfVxuICB9XG5cbiAgX3NldHVwR0xLZXkgKCkge1xuICAgIGlmICh0aGlzLnByb3BzLmNvbnRleHQpIHtcbiAgICAgIGlmIChpc1dlYkdMQ29udGV4dCh0aGlzLnByb3BzLmNvbnRleHQpKSB7XG4gICAgICAgIHRoaXMuX3Byb3BzLmdsID0gdGhpcy5wcm9wcy5jb250ZXh0O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGVsZXRlIHRoaXMuX3Byb3BzLmdsO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldFRpbWVQcm9wcyAoc2V0dGluZ3MgPSB7fSkge1xuICAgIC8vIEdldCB0aW1pbmcgZGF0YVxuICAgIGxldCBkdXJhdGlvbiA9IHNldHRpbmdzLmR1cmF0aW9uO1xuICAgIGxldCB0b3RhbEZyYW1lcyA9IHNldHRpbmdzLnRvdGFsRnJhbWVzO1xuICAgIGNvbnN0IHRpbWVTY2FsZSA9IGRlZmluZWQoc2V0dGluZ3MudGltZVNjYWxlLCAxKTtcbiAgICBjb25zdCBmcHMgPSBkZWZpbmVkKHNldHRpbmdzLmZwcywgMjQpO1xuICAgIGNvbnN0IGhhc0R1cmF0aW9uID0gdHlwZW9mIGR1cmF0aW9uID09PSAnbnVtYmVyJyAmJiBpc0Zpbml0ZShkdXJhdGlvbik7XG4gICAgY29uc3QgaGFzVG90YWxGcmFtZXMgPSB0eXBlb2YgdG90YWxGcmFtZXMgPT09ICdudW1iZXInICYmIGlzRmluaXRlKHRvdGFsRnJhbWVzKTtcblxuICAgIGNvbnN0IHRvdGFsRnJhbWVzRnJvbUR1cmF0aW9uID0gaGFzRHVyYXRpb24gPyBNYXRoLmZsb29yKGZwcyAqIGR1cmF0aW9uKSA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBkdXJhdGlvbkZyb21Ub3RhbEZyYW1lcyA9IGhhc1RvdGFsRnJhbWVzID8gKHRvdGFsRnJhbWVzIC8gZnBzKSA6IHVuZGVmaW5lZDtcbiAgICBpZiAoaGFzRHVyYXRpb24gJiYgaGFzVG90YWxGcmFtZXMgJiYgdG90YWxGcmFtZXNGcm9tRHVyYXRpb24gIT09IHRvdGFsRnJhbWVzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1lvdSBzaG91bGQgc3BlY2lmeSBlaXRoZXIgZHVyYXRpb24gb3IgdG90YWxGcmFtZXMsIGJ1dCBub3QgYm90aC4gT3IsIHRoZXkgbXVzdCBtYXRjaCBleGFjdGx5LicpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2Ygc2V0dGluZ3MuZGltZW5zaW9ucyA9PT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIHNldHRpbmdzLnVuaXRzICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgY29uc29sZS53YXJuKGBZb3UndmUgc3BlY2lmaWVkIGEgeyB1bml0cyB9IHNldHRpbmcgYnV0IG5vIHsgZGltZW5zaW9uIH0sIHNvIHRoZSB1bml0cyB3aWxsIGJlIGlnbm9yZWQuYCk7XG4gICAgfVxuXG4gICAgdG90YWxGcmFtZXMgPSBkZWZpbmVkKHRvdGFsRnJhbWVzLCB0b3RhbEZyYW1lc0Zyb21EdXJhdGlvbiwgSW5maW5pdHkpO1xuICAgIGR1cmF0aW9uID0gZGVmaW5lZChkdXJhdGlvbiwgZHVyYXRpb25Gcm9tVG90YWxGcmFtZXMsIEluZmluaXR5KTtcblxuICAgIGNvbnN0IHN0YXJ0VGltZSA9IHNldHRpbmdzLnRpbWU7XG4gICAgY29uc3Qgc3RhcnRGcmFtZSA9IHNldHRpbmdzLmZyYW1lO1xuICAgIGNvbnN0IGhhc1N0YXJ0VGltZSA9IHR5cGVvZiBzdGFydFRpbWUgPT09ICdudW1iZXInICYmIGlzRmluaXRlKHN0YXJ0VGltZSk7XG4gICAgY29uc3QgaGFzU3RhcnRGcmFtZSA9IHR5cGVvZiBzdGFydEZyYW1lID09PSAnbnVtYmVyJyAmJiBpc0Zpbml0ZShzdGFydEZyYW1lKTtcblxuICAgIC8vIHN0YXJ0IGF0IHplcm8gdW5sZXNzIHVzZXIgc3BlY2lmaWVzIGZyYW1lIG9yIHRpbWUgKGJ1dCBub3QgYm90aCBtaXNtYXRjaGVkKVxuICAgIGxldCB0aW1lID0gMDtcbiAgICBsZXQgZnJhbWUgPSAwO1xuICAgIGxldCBwbGF5aGVhZCA9IDA7XG4gICAgaWYgKGhhc1N0YXJ0VGltZSAmJiBoYXNTdGFydEZyYW1lKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1lvdSBzaG91bGQgc3BlY2lmeSBlaXRoZXIgc3RhcnQgZnJhbWUgb3IgdGltZSwgYnV0IG5vdCBib3RoLicpO1xuICAgIH0gZWxzZSBpZiAoaGFzU3RhcnRUaW1lKSB7XG4gICAgICAvLyBVc2VyIHNwZWNpZmllcyB0aW1lLCB3ZSBpbmZlciBmcmFtZXMgZnJvbSBGUFNcbiAgICAgIHRpbWUgPSBzdGFydFRpbWU7XG4gICAgICBwbGF5aGVhZCA9IHRoaXMuX2NvbXB1dGVQbGF5aGVhZCh0aW1lLCBkdXJhdGlvbik7XG4gICAgICBmcmFtZSA9IHRoaXMuX2NvbXB1dGVGcmFtZShcbiAgICAgICAgcGxheWhlYWQsIHRpbWUsXG4gICAgICAgIHRvdGFsRnJhbWVzLCBmcHNcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChoYXNTdGFydEZyYW1lKSB7XG4gICAgICAvLyBVc2VyIHNwZWNpZmllcyBmcmFtZSBudW1iZXIsIHdlIGluZmVyIHRpbWUgZnJvbSBGUFNcbiAgICAgIGZyYW1lID0gc3RhcnRGcmFtZTtcbiAgICAgIHRpbWUgPSBmcmFtZSAvIGZwcztcbiAgICAgIHBsYXloZWFkID0gdGhpcy5fY29tcHV0ZVBsYXloZWFkKHRpbWUsIGR1cmF0aW9uKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgcGxheWhlYWQsXG4gICAgICB0aW1lLFxuICAgICAgZnJhbWUsXG4gICAgICBkdXJhdGlvbixcbiAgICAgIHRvdGFsRnJhbWVzLFxuICAgICAgZnBzLFxuICAgICAgdGltZVNjYWxlXG4gICAgfTtcbiAgfVxuXG4gIHNldHVwIChzZXR0aW5ncyA9IHt9KSB7XG4gICAgaWYgKHRoaXMuc2tldGNoKSB0aHJvdyBuZXcgRXJyb3IoJ011bHRpcGxlIHNldHVwKCkgY2FsbHMgbm90IHlldCBzdXBwb3J0ZWQuJyk7XG5cbiAgICB0aGlzLl9zZXR0aW5ncyA9IE9iamVjdC5hc3NpZ24oe30sIHNldHRpbmdzLCB0aGlzLl9zZXR0aW5ncyk7XG5cbiAgICBjaGVja1NldHRpbmdzKHRoaXMuX3NldHRpbmdzKTtcblxuICAgIC8vIEdldCBpbml0aWFsIGNhbnZhcyAmIGNvbnRleHRcbiAgICBjb25zdCB7IGNvbnRleHQsIGNhbnZhcyB9ID0gY3JlYXRlQ2FudmFzKHRoaXMuX3NldHRpbmdzKTtcblxuICAgIGNvbnN0IHRpbWVQcm9wcyA9IHRoaXMuZ2V0VGltZVByb3BzKHRoaXMuX3NldHRpbmdzKTtcblxuICAgIC8vIEluaXRpYWwgcmVuZGVyIHN0YXRlIGZlYXR1cmVzXG4gICAgdGhpcy5fcHJvcHMgPSB7XG4gICAgICAuLi50aW1lUHJvcHMsXG4gICAgICBjYW52YXMsXG4gICAgICBjb250ZXh0LFxuICAgICAgZGVsdGFUaW1lOiAwLFxuICAgICAgc3RhcnRlZDogZmFsc2UsXG4gICAgICBleHBvcnRpbmc6IGZhbHNlLFxuICAgICAgcGxheWluZzogZmFsc2UsXG4gICAgICByZWNvcmRpbmc6IGZhbHNlLFxuICAgICAgc2V0dGluZ3M6IHRoaXMuc2V0dGluZ3MsXG4gICAgICBkYXRhOiB0aGlzLnNldHRpbmdzLmRhdGEsXG5cbiAgICAgIC8vIEV4cG9ydCBzb21lIHNwZWNpZmljIGFjdGlvbnMgdG8gdGhlIHNrZXRjaFxuICAgICAgcmVuZGVyOiAoKSA9PiB0aGlzLnJlbmRlcigpLFxuICAgICAgdG9nZ2xlUGxheTogKCkgPT4gdGhpcy50b2dnbGVQbGF5KCksXG4gICAgICBkaXNwYXRjaDogKGNiKSA9PiB0aGlzLmRpc3BhdGNoKGNiKSxcbiAgICAgIHRpY2s6ICgpID0+IHRoaXMudGljaygpLFxuICAgICAgcmVzaXplOiAoKSA9PiB0aGlzLnJlc2l6ZSgpLFxuICAgICAgdXBkYXRlOiAob3B0KSA9PiB0aGlzLnVwZGF0ZShvcHQpLFxuICAgICAgZXhwb3J0RnJhbWU6IG9wdCA9PiB0aGlzLmV4cG9ydEZyYW1lKG9wdCksXG4gICAgICByZWNvcmQ6ICgpID0+IHRoaXMucmVjb3JkKCksXG4gICAgICBwbGF5OiAoKSA9PiB0aGlzLnBsYXkoKSxcbiAgICAgIHBhdXNlOiAoKSA9PiB0aGlzLnBhdXNlKCksXG4gICAgICBzdG9wOiAoKSA9PiB0aGlzLnN0b3AoKVxuICAgIH07XG5cbiAgICAvLyBGb3IgV2ViR0wgc2tldGNoZXMsIGEgZ2wgdmFyaWFibGUgcmVhZHMgYSBiaXQgYmV0dGVyXG4gICAgdGhpcy5fc2V0dXBHTEtleSgpO1xuXG4gICAgLy8gVHJpZ2dlciBpbml0aWFsIHJlc2l6ZSBub3cgc28gdGhhdCBjYW52YXMgaXMgYWxyZWFkeSBzaXplZFxuICAgIC8vIGJ5IHRoZSB0aW1lIHdlIGxvYWQgdGhlIHNrZXRjaFxuICAgIHRoaXMucmVzaXplKCk7XG4gIH1cblxuICBsb2FkQW5kUnVuIChjYW52YXNTa2V0Y2gsIG5ld1NldHRpbmdzKSB7XG4gICAgcmV0dXJuIHRoaXMubG9hZChjYW52YXNTa2V0Y2gsIG5ld1NldHRpbmdzKS50aGVuKCgpID0+IHtcbiAgICAgIHRoaXMucnVuKCk7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9KTtcbiAgfVxuXG4gIHVubG9hZCAoKSB7XG4gICAgdGhpcy5wYXVzZSgpO1xuICAgIGlmICghdGhpcy5za2V0Y2gpIHJldHVybjtcbiAgICBpZiAodHlwZW9mIHRoaXMuc2tldGNoLnVubG9hZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhpcy5fd3JhcENvbnRleHRTY2FsZShwcm9wcyA9PiB0aGlzLnNrZXRjaC51bmxvYWQocHJvcHMpKTtcbiAgICB9XG4gICAgdGhpcy5fc2tldGNoID0gbnVsbDtcbiAgfVxuXG4gIGRlc3Ryb3kgKCkge1xuICAgIHRoaXMudW5sb2FkKCk7XG4gICAgdGhpcy51bm1vdW50KCk7XG4gIH1cblxuICBsb2FkIChjcmVhdGVTa2V0Y2gsIG5ld1NldHRpbmdzKSB7XG4gICAgLy8gVXNlciBkaWRuJ3Qgc3BlY2lmeSBhIGZ1bmN0aW9uXG4gICAgaWYgKHR5cGVvZiBjcmVhdGVTa2V0Y2ggIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIGZ1bmN0aW9uIG11c3QgdGFrZSBpbiBhIGZ1bmN0aW9uIGFzIHRoZSBmaXJzdCBwYXJhbWV0ZXIuIEV4YW1wbGU6XFxuICBjYW52YXNTa2V0Y2hlcigoKSA9PiB7IC4uLiB9LCBzZXR0aW5ncyknKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5za2V0Y2gpIHtcbiAgICAgIHRoaXMudW5sb2FkKCk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBuZXdTZXR0aW5ncyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHRoaXMudXBkYXRlKG5ld1NldHRpbmdzKTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIGlzIGEgYml0IG9mIGEgdHJpY2t5IGNhc2U7IHdlIHNldCB1cCB0aGUgYXV0by1zY2FsaW5nIGhlcmVcbiAgICAvLyBpbiBjYXNlIHRoZSB1c2VyIGRlY2lkZXMgdG8gcmVuZGVyIGFueXRoaW5nIHRvIHRoZSBjb250ZXh0ICpiZWZvcmUqIHRoZVxuICAgIC8vIHJlbmRlcigpIGZ1bmN0aW9uLi4uIEhvd2V2ZXIsIHVzZXJzIHNob3VsZCBpbnN0ZWFkIHVzZSBiZWdpbigpIGZ1bmN0aW9uIGZvciB0aGF0LlxuICAgIHRoaXMuX3ByZVJlbmRlcigpO1xuXG4gICAgbGV0IHByZWxvYWQgPSBQcm9taXNlLnJlc29sdmUoKTtcblxuICAgIC8vIEJlY2F1c2Ugb2YgUDUuanMncyB1bnVzdWFsIHN0cnVjdHVyZSwgd2UgaGF2ZSB0byBkbyBhIGJpdCBvZlxuICAgIC8vIGxpYnJhcnktc3BlY2lmaWMgY2hhbmdlcyB0byBzdXBwb3J0IGl0IHByb3Blcmx5LlxuICAgIGlmICh0aGlzLnNldHRpbmdzLnA1KSB7XG4gICAgICBpZiAoIWlzQnJvd3NlcigpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignW2NhbnZhcy1za2V0Y2hdIEVSUk9SOiBVc2luZyBwNS5qcyBpbiBOb2RlLmpzIGlzIG5vdCBzdXBwb3J0ZWQnKTtcbiAgICAgIH1cbiAgICAgIHByZWxvYWQgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICAgICAgbGV0IFA1Q29uc3RydWN0b3IgPSB0aGlzLnNldHRpbmdzLnA1O1xuICAgICAgICBsZXQgcHJlbG9hZDtcbiAgICAgICAgaWYgKFA1Q29uc3RydWN0b3IucDUpIHtcbiAgICAgICAgICBwcmVsb2FkID0gUDVDb25zdHJ1Y3Rvci5wcmVsb2FkO1xuICAgICAgICAgIFA1Q29uc3RydWN0b3IgPSBQNUNvbnN0cnVjdG9yLnA1O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGhlIHNrZXRjaCBzZXR1cDsgZGlzYWJsZSBsb29wLCBzZXQgc2l6aW5nLCBldGMuXG4gICAgICAgIGNvbnN0IHA1U2tldGNoID0gcDUgPT4ge1xuICAgICAgICAgIC8vIEhvb2sgaW4gcHJlbG9hZCBpZiBuZWNlc3NhcnlcbiAgICAgICAgICBpZiAocHJlbG9hZCkgcDUucHJlbG9hZCA9ICgpID0+IHByZWxvYWQocDUpO1xuICAgICAgICAgIHA1LnNldHVwID0gKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJvcHMgPSB0aGlzLnByb3BzO1xuICAgICAgICAgICAgY29uc3QgaXNHTCA9IHRoaXMuc2V0dGluZ3MuY29udGV4dCA9PT0gJ3dlYmdsJztcbiAgICAgICAgICAgIGNvbnN0IHJlbmRlcmVyID0gaXNHTCA/IHA1LldFQkdMIDogcDUuUDJEO1xuICAgICAgICAgICAgcDUubm9Mb29wKCk7XG4gICAgICAgICAgICBwNS5waXhlbERlbnNpdHkocHJvcHMucGl4ZWxSYXRpbyk7XG4gICAgICAgICAgICBwNS5jcmVhdGVDYW52YXMocHJvcHMudmlld3BvcnRXaWR0aCwgcHJvcHMudmlld3BvcnRIZWlnaHQsIHJlbmRlcmVyKTtcbiAgICAgICAgICAgIGlmIChpc0dMICYmIHRoaXMuc2V0dGluZ3MuYXR0cmlidXRlcykge1xuICAgICAgICAgICAgICBwNS5zZXRBdHRyaWJ1dGVzKHRoaXMuc2V0dGluZ3MuYXR0cmlidXRlcyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMudXBkYXRlKHsgcDUsIGNhbnZhczogcDUuY2FudmFzLCBjb250ZXh0OiBwNS5fcmVuZGVyZXIuZHJhd2luZ0NvbnRleHQgfSk7XG4gICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgfTtcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBTdXBwb3J0IGdsb2JhbCBhbmQgaW5zdGFuY2UgUDUuanMgbW9kZXNcbiAgICAgICAgaWYgKHR5cGVvZiBQNUNvbnN0cnVjdG9yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgbmV3IFA1Q29uc3RydWN0b3IocDVTa2V0Y2gpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICh0eXBlb2Ygd2luZG93LmNyZWF0ZUNhbnZhcyAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwieyBwNSB9IHNldHRpbmcgaXMgcGFzc2VkIGJ1dCBjYW4ndCBmaW5kIHA1LmpzIGluIGdsb2JhbCAod2luZG93KSBzY29wZS4gTWF5YmUgeW91IGRpZCBub3QgY3JlYXRlIGl0IGdsb2JhbGx5P1xcbm5ldyBwNSgpOyAvLyA8LS0gYXR0YWNoZXMgdG8gZ2xvYmFsIHNjb3BlXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBwNVNrZXRjaCh3aW5kb3cpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcHJlbG9hZC50aGVuKCgpID0+IHtcbiAgICAgIC8vIExvYWQgdGhlIHVzZXIncyBza2V0Y2hcbiAgICAgIGxldCBsb2FkZXIgPSBjcmVhdGVTa2V0Y2godGhpcy5wcm9wcyk7XG4gICAgICBpZiAoIWlzUHJvbWlzZShsb2FkZXIpKSB7XG4gICAgICAgIGxvYWRlciA9IFByb21pc2UucmVzb2x2ZShsb2FkZXIpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGxvYWRlcjtcbiAgICB9KS50aGVuKHNrZXRjaCA9PiB7XG4gICAgICBpZiAoIXNrZXRjaCkgc2tldGNoID0ge307XG4gICAgICB0aGlzLl9za2V0Y2ggPSBza2V0Y2g7XG5cbiAgICAgIC8vIE9uY2UgdGhlIHNrZXRjaCBpcyBsb2FkZWQgd2UgY2FuIGFkZCB0aGUgZXZlbnRzXG4gICAgICBpZiAoaXNCcm93c2VyKCkpIHtcbiAgICAgICAgdGhpcy5fa2V5Ym9hcmRTaG9ydGN1dHMuYXR0YWNoKCk7XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLl9yZXNpemVIYW5kbGVyKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5fcG9zdFJlbmRlcigpO1xuXG4gICAgICAvLyBUaGUgaW5pdGlhbCByZXNpemUoKSBpbiB0aGUgY29uc3RydWN0b3Igd2lsbCBub3QgaGF2ZVxuICAgICAgLy8gdHJpZ2dlcmVkIGEgcmVzaXplKCkgZXZlbnQgb24gdGhlIHNrZXRjaCwgc2luY2UgaXQgd2FzIGJlZm9yZVxuICAgICAgLy8gdGhlIHNrZXRjaCB3YXMgbG9hZGVkLiBTbyB3ZSBzZW5kIHRoZSBzaWduYWwgaGVyZSwgYWxsb3dpbmdcbiAgICAgIC8vIHVzZXJzIHRvIHJlYWN0IHRvIHRoZSBpbml0aWFsIHNpemUgYmVmb3JlIGZpcnN0IHJlbmRlci5cbiAgICAgIHRoaXMuX3NpemVDaGFuZ2VkKCk7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9KS5jYXRjaChlcnIgPT4ge1xuICAgICAgY29uc29sZS53YXJuKCdDb3VsZCBub3Qgc3RhcnQgc2tldGNoLCB0aGUgYXN5bmMgbG9hZGluZyBmdW5jdGlvbiByZWplY3RlZCB3aXRoIGFuIGVycm9yOlxcbiAgICBFcnJvcjogJyArIGVyci5tZXNzYWdlKTtcbiAgICAgIHRocm93IGVycjtcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBTa2V0Y2hNYW5hZ2VyO1xuIiwiaW1wb3J0IHsgZ2V0Q2xpZW50QVBJIH0gZnJvbSAnLi4vdXRpbCc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIChvcHQgPSB7fSkge1xuICBjb25zdCBoYW5kbGVyID0gZXYgPT4ge1xuICAgIGlmICghb3B0LmVuYWJsZWQoKSkgcmV0dXJuO1xuXG4gICAgY29uc3QgY2xpZW50ID0gZ2V0Q2xpZW50QVBJKCk7XG4gICAgaWYgKGV2LmtleUNvZGUgPT09IDgzICYmICFldi5hbHRLZXkgJiYgKGV2Lm1ldGFLZXkgfHwgZXYuY3RybEtleSkpIHtcbiAgICAgIC8vIENtZCArIFNcbiAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBvcHQuc2F2ZShldik7XG4gICAgfSBlbHNlIGlmIChldi5rZXlDb2RlID09PSAzMikge1xuICAgICAgLy8gU3BhY2VcbiAgICAgIC8vIFRPRE86IHdoYXQgdG8gZG8gd2l0aCB0aGlzPyBrZWVwIGl0LCBvciByZW1vdmUgaXQ/XG4gICAgICBvcHQudG9nZ2xlUGxheShldik7XG4gICAgfSBlbHNlIGlmIChjbGllbnQgJiYgIWV2LmFsdEtleSAmJiBldi5rZXlDb2RlID09PSA3NSAmJiAoZXYubWV0YUtleSB8fCBldi5jdHJsS2V5KSkge1xuICAgICAgLy8gQ21kICsgSywgb25seSB3aGVuIGNhbnZhcy1za2V0Y2gtY2xpIGlzIHVzZWRcbiAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBvcHQuY29tbWl0KGV2KTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgYXR0YWNoID0gKCkgPT4ge1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgaGFuZGxlcik7XG4gIH07XG5cbiAgY29uc3QgZGV0YWNoID0gKCkgPT4ge1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgaGFuZGxlcik7XG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBhdHRhY2gsXG4gICAgZGV0YWNoXG4gIH07XG59XG4iLCJpbXBvcnQgU2tldGNoTWFuYWdlciBmcm9tICcuL2NvcmUvU2tldGNoTWFuYWdlcic7XG5pbXBvcnQgUGFwZXJTaXplcyBmcm9tICcuL3BhcGVyLXNpemVzJztcbmltcG9ydCB7IGdldENsaWVudEFQSSwgZGVmaW5lZCB9IGZyb20gJy4vdXRpbCc7XG5cbmNvbnN0IENBQ0hFID0gJ2hvdC1pZC1jYWNoZSc7XG5jb25zdCBydW50aW1lQ29sbGlzaW9ucyA9IFtdO1xuXG5mdW5jdGlvbiBpc0hvdFJlbG9hZCAoKSB7XG4gIGNvbnN0IGNsaWVudCA9IGdldENsaWVudEFQSSgpO1xuICByZXR1cm4gY2xpZW50ICYmIGNsaWVudC5ob3Q7XG59XG5cbmZ1bmN0aW9uIGNhY2hlR2V0IChpZCkge1xuICBjb25zdCBjbGllbnQgPSBnZXRDbGllbnRBUEkoKTtcbiAgaWYgKCFjbGllbnQpIHJldHVybiB1bmRlZmluZWQ7XG4gIGNsaWVudFtDQUNIRV0gPSBjbGllbnRbQ0FDSEVdIHx8IHt9O1xuICByZXR1cm4gY2xpZW50W0NBQ0hFXVtpZF07XG59XG5cbmZ1bmN0aW9uIGNhY2hlUHV0IChpZCwgZGF0YSkge1xuICBjb25zdCBjbGllbnQgPSBnZXRDbGllbnRBUEkoKTtcbiAgaWYgKCFjbGllbnQpIHJldHVybiB1bmRlZmluZWQ7XG4gIGNsaWVudFtDQUNIRV0gPSBjbGllbnRbQ0FDSEVdIHx8IHt9O1xuICBjbGllbnRbQ0FDSEVdW2lkXSA9IGRhdGE7XG59XG5cbmZ1bmN0aW9uIGdldFRpbWVQcm9wIChvbGRNYW5hZ2VyLCBuZXdTZXR0aW5ncykge1xuICAvLyBTdGF0aWMgc2tldGNoZXMgaWdub3JlIHRoZSB0aW1lIHBlcnNpc3RlbmN5XG4gIHJldHVybiBuZXdTZXR0aW5ncy5hbmltYXRlID8geyB0aW1lOiBvbGRNYW5hZ2VyLnByb3BzLnRpbWUgfSA6IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gY2FudmFzU2tldGNoIChza2V0Y2gsIHNldHRpbmdzID0ge30pIHtcbiAgaWYgKHNldHRpbmdzLnA1KSB7XG4gICAgaWYgKHNldHRpbmdzLmNhbnZhcyB8fCAoc2V0dGluZ3MuY29udGV4dCAmJiB0eXBlb2Ygc2V0dGluZ3MuY29udGV4dCAhPT0gJ3N0cmluZycpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEluIHsgcDUgfSBtb2RlLCB5b3UgY2FuJ3QgcGFzcyB5b3VyIG93biBjYW52YXMgb3IgY29udGV4dCwgdW5sZXNzIHRoZSBjb250ZXh0IGlzIGEgXCJ3ZWJnbFwiIG9yIFwiMmRcIiBzdHJpbmdgKTtcbiAgICB9XG5cbiAgICAvLyBEbyBub3QgY3JlYXRlIGEgY2FudmFzIG9uIHN0YXJ0dXAsIHNpbmNlIFA1LmpzIGRvZXMgdGhhdCBmb3IgdXNcbiAgICBjb25zdCBjb250ZXh0ID0gdHlwZW9mIHNldHRpbmdzLmNvbnRleHQgPT09ICdzdHJpbmcnID8gc2V0dGluZ3MuY29udGV4dCA6IGZhbHNlO1xuICAgIHNldHRpbmdzID0gT2JqZWN0LmFzc2lnbih7fSwgc2V0dGluZ3MsIHsgY2FudmFzOiBmYWxzZSwgY29udGV4dCB9KTtcbiAgfVxuXG4gIGNvbnN0IGlzSG90ID0gaXNIb3RSZWxvYWQoKTtcbiAgbGV0IGhvdElEO1xuICBpZiAoaXNIb3QpIHtcbiAgICAvLyBVc2UgYSBtYWdpYyBuYW1lIGJ5IGRlZmF1bHQsIGZvcmNlIHVzZXIgdG8gZGVmaW5lIGVhY2ggc2tldGNoIGlmIHRoZXlcbiAgICAvLyByZXF1aXJlIG1vcmUgdGhhbiBvbmUgaW4gYW4gYXBwbGljYXRpb24uIE9wZW4gdG8gb3RoZXIgaWRlYXMgb24gaG93IHRvIHRhY2tsZVxuICAgIC8vIHRoaXMgYXMgd2VsbC4uLlxuICAgIGhvdElEID0gZGVmaW5lZChzZXR0aW5ncy5pZCwgJyRfX0RFRkFVTFRfQ0FOVkFTX1NLRVRDSF9JRF9fJCcpO1xuICB9XG4gIGxldCBpc0luamVjdGluZyA9IGlzSG90ICYmIHR5cGVvZiBob3RJRCA9PT0gJ3N0cmluZyc7XG5cbiAgaWYgKGlzSW5qZWN0aW5nICYmIHJ1bnRpbWVDb2xsaXNpb25zLmluY2x1ZGVzKGhvdElEKSkge1xuICAgIGNvbnNvbGUud2FybihgV2FybmluZzogWW91IGhhdmUgbXVsdGlwbGUgY2FsbHMgdG8gY2FudmFzU2tldGNoKCkgaW4gLS1ob3QgbW9kZS4gWW91IG11c3QgcGFzcyB1bmlxdWUgeyBpZCB9IHN0cmluZ3MgaW4gc2V0dGluZ3MgdG8gZW5hYmxlIGhvdCByZWxvYWQgYWNyb3NzIG11bHRpcGxlIHNrZXRjaGVzLiBgLCBob3RJRCk7XG4gICAgaXNJbmplY3RpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIGxldCBwcmVsb2FkID0gUHJvbWlzZS5yZXNvbHZlKCk7XG5cbiAgaWYgKGlzSW5qZWN0aW5nKSB7XG4gICAgLy8gTWFyayB0aGlzIGFzIGFscmVhZHkgc3BvdHRlZCBpbiB0aGlzIHJ1bnRpbWUgaW5zdGFuY2VcbiAgICBydW50aW1lQ29sbGlzaW9ucy5wdXNoKGhvdElEKTtcblxuICAgIGNvbnN0IHByZXZpb3VzRGF0YSA9IGNhY2hlR2V0KGhvdElEKTtcbiAgICBpZiAocHJldmlvdXNEYXRhKSB7XG4gICAgICBjb25zdCBuZXh0ID0gKCkgPT4ge1xuICAgICAgICAvLyBHcmFiIG5ldyBwcm9wcyBmcm9tIG9sZCBza2V0Y2ggaW5zdGFuY2VcbiAgICAgICAgY29uc3QgbmV3UHJvcHMgPSBnZXRUaW1lUHJvcChwcmV2aW91c0RhdGEubWFuYWdlciwgc2V0dGluZ3MpO1xuICAgICAgICAvLyBEZXN0cm95IHRoZSBvbGQgaW5zdGFuY2VcbiAgICAgICAgcHJldmlvdXNEYXRhLm1hbmFnZXIuZGVzdHJveSgpO1xuICAgICAgICAvLyBQYXNzIGFsb25nIG5ldyBwcm9wc1xuICAgICAgICByZXR1cm4gbmV3UHJvcHM7XG4gICAgICB9O1xuXG4gICAgICAvLyBNb3ZlIGFsb25nIHRoZSBuZXh0IGRhdGEuLi5cbiAgICAgIHByZWxvYWQgPSBwcmV2aW91c0RhdGEubG9hZC50aGVuKG5leHQpLmNhdGNoKG5leHQpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBwcmVsb2FkLnRoZW4obmV3UHJvcHMgPT4ge1xuICAgIGNvbnN0IG1hbmFnZXIgPSBuZXcgU2tldGNoTWFuYWdlcigpO1xuICAgIGxldCByZXN1bHQ7XG4gICAgaWYgKHNrZXRjaCkge1xuICAgICAgLy8gTWVyZ2Ugd2l0aCBpbmNvbWluZyBkYXRhXG4gICAgICBzZXR0aW5ncyA9IE9iamVjdC5hc3NpZ24oe30sIHNldHRpbmdzLCBuZXdQcm9wcyk7XG5cbiAgICAgIC8vIEFwcGx5IHNldHRpbmdzIGFuZCBjcmVhdGUgYSBjYW52YXNcbiAgICAgIG1hbmFnZXIuc2V0dXAoc2V0dGluZ3MpO1xuXG4gICAgICAvLyBNb3VudCB0byBET01cbiAgICAgIG1hbmFnZXIubW91bnQoKTtcblxuICAgICAgLy8gbG9hZCB0aGUgc2tldGNoIGZpcnN0XG4gICAgICByZXN1bHQgPSBtYW5hZ2VyLmxvYWRBbmRSdW4oc2tldGNoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0ID0gUHJvbWlzZS5yZXNvbHZlKG1hbmFnZXIpO1xuICAgIH1cbiAgICBpZiAoaXNJbmplY3RpbmcpIHtcbiAgICAgIGNhY2hlUHV0KGhvdElELCB7IGxvYWQ6IHJlc3VsdCwgbWFuYWdlciB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSk7XG59XG5cbi8vIFRPRE86IEZpZ3VyZSBvdXQgYSBuaWNlIHdheSB0byBleHBvcnQgdGhpbmdzLlxuY2FudmFzU2tldGNoLmNhbnZhc1NrZXRjaCA9IGNhbnZhc1NrZXRjaDtcbmNhbnZhc1NrZXRjaC5QYXBlclNpemVzID0gUGFwZXJTaXplcztcblxuZXhwb3J0IGRlZmF1bHQgY2FudmFzU2tldGNoO1xuIiwidmFyIGNsb25lID0gKGZ1bmN0aW9uKCkge1xuJ3VzZSBzdHJpY3QnO1xuXG5mdW5jdGlvbiBfaW5zdGFuY2VvZihvYmosIHR5cGUpIHtcbiAgcmV0dXJuIHR5cGUgIT0gbnVsbCAmJiBvYmogaW5zdGFuY2VvZiB0eXBlO1xufVxuXG52YXIgbmF0aXZlTWFwO1xudHJ5IHtcbiAgbmF0aXZlTWFwID0gTWFwO1xufSBjYXRjaChfKSB7XG4gIC8vIG1heWJlIGEgcmVmZXJlbmNlIGVycm9yIGJlY2F1c2Ugbm8gYE1hcGAuIEdpdmUgaXQgYSBkdW1teSB2YWx1ZSB0aGF0IG5vXG4gIC8vIHZhbHVlIHdpbGwgZXZlciBiZSBhbiBpbnN0YW5jZW9mLlxuICBuYXRpdmVNYXAgPSBmdW5jdGlvbigpIHt9O1xufVxuXG52YXIgbmF0aXZlU2V0O1xudHJ5IHtcbiAgbmF0aXZlU2V0ID0gU2V0O1xufSBjYXRjaChfKSB7XG4gIG5hdGl2ZVNldCA9IGZ1bmN0aW9uKCkge307XG59XG5cbnZhciBuYXRpdmVQcm9taXNlO1xudHJ5IHtcbiAgbmF0aXZlUHJvbWlzZSA9IFByb21pc2U7XG59IGNhdGNoKF8pIHtcbiAgbmF0aXZlUHJvbWlzZSA9IGZ1bmN0aW9uKCkge307XG59XG5cbi8qKlxuICogQ2xvbmVzIChjb3BpZXMpIGFuIE9iamVjdCB1c2luZyBkZWVwIGNvcHlpbmcuXG4gKlxuICogVGhpcyBmdW5jdGlvbiBzdXBwb3J0cyBjaXJjdWxhciByZWZlcmVuY2VzIGJ5IGRlZmF1bHQsIGJ1dCBpZiB5b3UgYXJlIGNlcnRhaW5cbiAqIHRoZXJlIGFyZSBubyBjaXJjdWxhciByZWZlcmVuY2VzIGluIHlvdXIgb2JqZWN0LCB5b3UgY2FuIHNhdmUgc29tZSBDUFUgdGltZVxuICogYnkgY2FsbGluZyBjbG9uZShvYmosIGZhbHNlKS5cbiAqXG4gKiBDYXV0aW9uOiBpZiBgY2lyY3VsYXJgIGlzIGZhbHNlIGFuZCBgcGFyZW50YCBjb250YWlucyBjaXJjdWxhciByZWZlcmVuY2VzLFxuICogeW91ciBwcm9ncmFtIG1heSBlbnRlciBhbiBpbmZpbml0ZSBsb29wIGFuZCBjcmFzaC5cbiAqXG4gKiBAcGFyYW0gYHBhcmVudGAgLSB0aGUgb2JqZWN0IHRvIGJlIGNsb25lZFxuICogQHBhcmFtIGBjaXJjdWxhcmAgLSBzZXQgdG8gdHJ1ZSBpZiB0aGUgb2JqZWN0IHRvIGJlIGNsb25lZCBtYXkgY29udGFpblxuICogICAgY2lyY3VsYXIgcmVmZXJlbmNlcy4gKG9wdGlvbmFsIC0gdHJ1ZSBieSBkZWZhdWx0KVxuICogQHBhcmFtIGBkZXB0aGAgLSBzZXQgdG8gYSBudW1iZXIgaWYgdGhlIG9iamVjdCBpcyBvbmx5IHRvIGJlIGNsb25lZCB0b1xuICogICAgYSBwYXJ0aWN1bGFyIGRlcHRoLiAob3B0aW9uYWwgLSBkZWZhdWx0cyB0byBJbmZpbml0eSlcbiAqIEBwYXJhbSBgcHJvdG90eXBlYCAtIHNldHMgdGhlIHByb3RvdHlwZSB0byBiZSB1c2VkIHdoZW4gY2xvbmluZyBhbiBvYmplY3QuXG4gKiAgICAob3B0aW9uYWwgLSBkZWZhdWx0cyB0byBwYXJlbnQgcHJvdG90eXBlKS5cbiAqIEBwYXJhbSBgaW5jbHVkZU5vbkVudW1lcmFibGVgIC0gc2V0IHRvIHRydWUgaWYgdGhlIG5vbi1lbnVtZXJhYmxlIHByb3BlcnRpZXNcbiAqICAgIHNob3VsZCBiZSBjbG9uZWQgYXMgd2VsbC4gTm9uLWVudW1lcmFibGUgcHJvcGVydGllcyBvbiB0aGUgcHJvdG90eXBlXG4gKiAgICBjaGFpbiB3aWxsIGJlIGlnbm9yZWQuIChvcHRpb25hbCAtIGZhbHNlIGJ5IGRlZmF1bHQpXG4qL1xuZnVuY3Rpb24gY2xvbmUocGFyZW50LCBjaXJjdWxhciwgZGVwdGgsIHByb3RvdHlwZSwgaW5jbHVkZU5vbkVudW1lcmFibGUpIHtcbiAgaWYgKHR5cGVvZiBjaXJjdWxhciA9PT0gJ29iamVjdCcpIHtcbiAgICBkZXB0aCA9IGNpcmN1bGFyLmRlcHRoO1xuICAgIHByb3RvdHlwZSA9IGNpcmN1bGFyLnByb3RvdHlwZTtcbiAgICBpbmNsdWRlTm9uRW51bWVyYWJsZSA9IGNpcmN1bGFyLmluY2x1ZGVOb25FbnVtZXJhYmxlO1xuICAgIGNpcmN1bGFyID0gY2lyY3VsYXIuY2lyY3VsYXI7XG4gIH1cbiAgLy8gbWFpbnRhaW4gdHdvIGFycmF5cyBmb3IgY2lyY3VsYXIgcmVmZXJlbmNlcywgd2hlcmUgY29ycmVzcG9uZGluZyBwYXJlbnRzXG4gIC8vIGFuZCBjaGlsZHJlbiBoYXZlIHRoZSBzYW1lIGluZGV4XG4gIHZhciBhbGxQYXJlbnRzID0gW107XG4gIHZhciBhbGxDaGlsZHJlbiA9IFtdO1xuXG4gIHZhciB1c2VCdWZmZXIgPSB0eXBlb2YgQnVmZmVyICE9ICd1bmRlZmluZWQnO1xuXG4gIGlmICh0eXBlb2YgY2lyY3VsYXIgPT0gJ3VuZGVmaW5lZCcpXG4gICAgY2lyY3VsYXIgPSB0cnVlO1xuXG4gIGlmICh0eXBlb2YgZGVwdGggPT0gJ3VuZGVmaW5lZCcpXG4gICAgZGVwdGggPSBJbmZpbml0eTtcblxuICAvLyByZWN1cnNlIHRoaXMgZnVuY3Rpb24gc28gd2UgZG9uJ3QgcmVzZXQgYWxsUGFyZW50cyBhbmQgYWxsQ2hpbGRyZW5cbiAgZnVuY3Rpb24gX2Nsb25lKHBhcmVudCwgZGVwdGgpIHtcbiAgICAvLyBjbG9uaW5nIG51bGwgYWx3YXlzIHJldHVybnMgbnVsbFxuICAgIGlmIChwYXJlbnQgPT09IG51bGwpXG4gICAgICByZXR1cm4gbnVsbDtcblxuICAgIGlmIChkZXB0aCA9PT0gMClcbiAgICAgIHJldHVybiBwYXJlbnQ7XG5cbiAgICB2YXIgY2hpbGQ7XG4gICAgdmFyIHByb3RvO1xuICAgIGlmICh0eXBlb2YgcGFyZW50ICE9ICdvYmplY3QnKSB7XG4gICAgICByZXR1cm4gcGFyZW50O1xuICAgIH1cblxuICAgIGlmIChfaW5zdGFuY2VvZihwYXJlbnQsIG5hdGl2ZU1hcCkpIHtcbiAgICAgIGNoaWxkID0gbmV3IG5hdGl2ZU1hcCgpO1xuICAgIH0gZWxzZSBpZiAoX2luc3RhbmNlb2YocGFyZW50LCBuYXRpdmVTZXQpKSB7XG4gICAgICBjaGlsZCA9IG5ldyBuYXRpdmVTZXQoKTtcbiAgICB9IGVsc2UgaWYgKF9pbnN0YW5jZW9mKHBhcmVudCwgbmF0aXZlUHJvbWlzZSkpIHtcbiAgICAgIGNoaWxkID0gbmV3IG5hdGl2ZVByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBwYXJlbnQudGhlbihmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgICAgIHJlc29sdmUoX2Nsb25lKHZhbHVlLCBkZXB0aCAtIDEpKTtcbiAgICAgICAgfSwgZnVuY3Rpb24oZXJyKSB7XG4gICAgICAgICAgcmVqZWN0KF9jbG9uZShlcnIsIGRlcHRoIC0gMSkpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoY2xvbmUuX19pc0FycmF5KHBhcmVudCkpIHtcbiAgICAgIGNoaWxkID0gW107XG4gICAgfSBlbHNlIGlmIChjbG9uZS5fX2lzUmVnRXhwKHBhcmVudCkpIHtcbiAgICAgIGNoaWxkID0gbmV3IFJlZ0V4cChwYXJlbnQuc291cmNlLCBfX2dldFJlZ0V4cEZsYWdzKHBhcmVudCkpO1xuICAgICAgaWYgKHBhcmVudC5sYXN0SW5kZXgpIGNoaWxkLmxhc3RJbmRleCA9IHBhcmVudC5sYXN0SW5kZXg7XG4gICAgfSBlbHNlIGlmIChjbG9uZS5fX2lzRGF0ZShwYXJlbnQpKSB7XG4gICAgICBjaGlsZCA9IG5ldyBEYXRlKHBhcmVudC5nZXRUaW1lKCkpO1xuICAgIH0gZWxzZSBpZiAodXNlQnVmZmVyICYmIEJ1ZmZlci5pc0J1ZmZlcihwYXJlbnQpKSB7XG4gICAgICBpZiAoQnVmZmVyLmFsbG9jVW5zYWZlKSB7XG4gICAgICAgIC8vIE5vZGUuanMgPj0gNC41LjBcbiAgICAgICAgY2hpbGQgPSBCdWZmZXIuYWxsb2NVbnNhZmUocGFyZW50Lmxlbmd0aCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBPbGRlciBOb2RlLmpzIHZlcnNpb25zXG4gICAgICAgIGNoaWxkID0gbmV3IEJ1ZmZlcihwYXJlbnQubGVuZ3RoKTtcbiAgICAgIH1cbiAgICAgIHBhcmVudC5jb3B5KGNoaWxkKTtcbiAgICAgIHJldHVybiBjaGlsZDtcbiAgICB9IGVsc2UgaWYgKF9pbnN0YW5jZW9mKHBhcmVudCwgRXJyb3IpKSB7XG4gICAgICBjaGlsZCA9IE9iamVjdC5jcmVhdGUocGFyZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHR5cGVvZiBwcm90b3R5cGUgPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgcHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YocGFyZW50KTtcbiAgICAgICAgY2hpbGQgPSBPYmplY3QuY3JlYXRlKHByb3RvKTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICBjaGlsZCA9IE9iamVjdC5jcmVhdGUocHJvdG90eXBlKTtcbiAgICAgICAgcHJvdG8gPSBwcm90b3R5cGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNpcmN1bGFyKSB7XG4gICAgICB2YXIgaW5kZXggPSBhbGxQYXJlbnRzLmluZGV4T2YocGFyZW50KTtcblxuICAgICAgaWYgKGluZGV4ICE9IC0xKSB7XG4gICAgICAgIHJldHVybiBhbGxDaGlsZHJlbltpbmRleF07XG4gICAgICB9XG4gICAgICBhbGxQYXJlbnRzLnB1c2gocGFyZW50KTtcbiAgICAgIGFsbENoaWxkcmVuLnB1c2goY2hpbGQpO1xuICAgIH1cblxuICAgIGlmIChfaW5zdGFuY2VvZihwYXJlbnQsIG5hdGl2ZU1hcCkpIHtcbiAgICAgIHBhcmVudC5mb3JFYWNoKGZ1bmN0aW9uKHZhbHVlLCBrZXkpIHtcbiAgICAgICAgdmFyIGtleUNoaWxkID0gX2Nsb25lKGtleSwgZGVwdGggLSAxKTtcbiAgICAgICAgdmFyIHZhbHVlQ2hpbGQgPSBfY2xvbmUodmFsdWUsIGRlcHRoIC0gMSk7XG4gICAgICAgIGNoaWxkLnNldChrZXlDaGlsZCwgdmFsdWVDaGlsZCk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKF9pbnN0YW5jZW9mKHBhcmVudCwgbmF0aXZlU2V0KSkge1xuICAgICAgcGFyZW50LmZvckVhY2goZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgICAgdmFyIGVudHJ5Q2hpbGQgPSBfY2xvbmUodmFsdWUsIGRlcHRoIC0gMSk7XG4gICAgICAgIGNoaWxkLmFkZChlbnRyeUNoaWxkKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGZvciAodmFyIGkgaW4gcGFyZW50KSB7XG4gICAgICB2YXIgYXR0cnM7XG4gICAgICBpZiAocHJvdG8pIHtcbiAgICAgICAgYXR0cnMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHByb3RvLCBpKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGF0dHJzICYmIGF0dHJzLnNldCA9PSBudWxsKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgY2hpbGRbaV0gPSBfY2xvbmUocGFyZW50W2ldLCBkZXB0aCAtIDEpO1xuICAgIH1cblxuICAgIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG4gICAgICB2YXIgc3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocGFyZW50KTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3ltYm9scy5sZW5ndGg7IGkrKykge1xuICAgICAgICAvLyBEb24ndCBuZWVkIHRvIHdvcnJ5IGFib3V0IGNsb25pbmcgYSBzeW1ib2wgYmVjYXVzZSBpdCBpcyBhIHByaW1pdGl2ZSxcbiAgICAgICAgLy8gbGlrZSBhIG51bWJlciBvciBzdHJpbmcuXG4gICAgICAgIHZhciBzeW1ib2wgPSBzeW1ib2xzW2ldO1xuICAgICAgICB2YXIgZGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocGFyZW50LCBzeW1ib2wpO1xuICAgICAgICBpZiAoZGVzY3JpcHRvciAmJiAhZGVzY3JpcHRvci5lbnVtZXJhYmxlICYmICFpbmNsdWRlTm9uRW51bWVyYWJsZSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGNoaWxkW3N5bWJvbF0gPSBfY2xvbmUocGFyZW50W3N5bWJvbF0sIGRlcHRoIC0gMSk7XG4gICAgICAgIGlmICghZGVzY3JpcHRvci5lbnVtZXJhYmxlKSB7XG4gICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNoaWxkLCBzeW1ib2wsIHtcbiAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaW5jbHVkZU5vbkVudW1lcmFibGUpIHtcbiAgICAgIHZhciBhbGxQcm9wZXJ0eU5hbWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMocGFyZW50KTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsUHJvcGVydHlOYW1lcy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgcHJvcGVydHlOYW1lID0gYWxsUHJvcGVydHlOYW1lc1tpXTtcbiAgICAgICAgdmFyIGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHBhcmVudCwgcHJvcGVydHlOYW1lKTtcbiAgICAgICAgaWYgKGRlc2NyaXB0b3IgJiYgZGVzY3JpcHRvci5lbnVtZXJhYmxlKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgY2hpbGRbcHJvcGVydHlOYW1lXSA9IF9jbG9uZShwYXJlbnRbcHJvcGVydHlOYW1lXSwgZGVwdGggLSAxKTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNoaWxkLCBwcm9wZXJ0eU5hbWUsIHtcbiAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gY2hpbGQ7XG4gIH1cblxuICByZXR1cm4gX2Nsb25lKHBhcmVudCwgZGVwdGgpO1xufVxuXG4vKipcbiAqIFNpbXBsZSBmbGF0IGNsb25lIHVzaW5nIHByb3RvdHlwZSwgYWNjZXB0cyBvbmx5IG9iamVjdHMsIHVzZWZ1bGwgZm9yIHByb3BlcnR5XG4gKiBvdmVycmlkZSBvbiBGTEFUIGNvbmZpZ3VyYXRpb24gb2JqZWN0IChubyBuZXN0ZWQgcHJvcHMpLlxuICpcbiAqIFVTRSBXSVRIIENBVVRJT04hIFRoaXMgbWF5IG5vdCBiZWhhdmUgYXMgeW91IHdpc2ggaWYgeW91IGRvIG5vdCBrbm93IGhvdyB0aGlzXG4gKiB3b3Jrcy5cbiAqL1xuY2xvbmUuY2xvbmVQcm90b3R5cGUgPSBmdW5jdGlvbiBjbG9uZVByb3RvdHlwZShwYXJlbnQpIHtcbiAgaWYgKHBhcmVudCA9PT0gbnVsbClcbiAgICByZXR1cm4gbnVsbDtcblxuICB2YXIgYyA9IGZ1bmN0aW9uICgpIHt9O1xuICBjLnByb3RvdHlwZSA9IHBhcmVudDtcbiAgcmV0dXJuIG5ldyBjKCk7XG59O1xuXG4vLyBwcml2YXRlIHV0aWxpdHkgZnVuY3Rpb25zXG5cbmZ1bmN0aW9uIF9fb2JqVG9TdHIobykge1xuICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pO1xufVxuY2xvbmUuX19vYmpUb1N0ciA9IF9fb2JqVG9TdHI7XG5cbmZ1bmN0aW9uIF9faXNEYXRlKG8pIHtcbiAgcmV0dXJuIHR5cGVvZiBvID09PSAnb2JqZWN0JyAmJiBfX29ialRvU3RyKG8pID09PSAnW29iamVjdCBEYXRlXSc7XG59XG5jbG9uZS5fX2lzRGF0ZSA9IF9faXNEYXRlO1xuXG5mdW5jdGlvbiBfX2lzQXJyYXkobykge1xuICByZXR1cm4gdHlwZW9mIG8gPT09ICdvYmplY3QnICYmIF9fb2JqVG9TdHIobykgPT09ICdbb2JqZWN0IEFycmF5XSc7XG59XG5jbG9uZS5fX2lzQXJyYXkgPSBfX2lzQXJyYXk7XG5cbmZ1bmN0aW9uIF9faXNSZWdFeHAobykge1xuICByZXR1cm4gdHlwZW9mIG8gPT09ICdvYmplY3QnICYmIF9fb2JqVG9TdHIobykgPT09ICdbb2JqZWN0IFJlZ0V4cF0nO1xufVxuY2xvbmUuX19pc1JlZ0V4cCA9IF9faXNSZWdFeHA7XG5cbmZ1bmN0aW9uIF9fZ2V0UmVnRXhwRmxhZ3MocmUpIHtcbiAgdmFyIGZsYWdzID0gJyc7XG4gIGlmIChyZS5nbG9iYWwpIGZsYWdzICs9ICdnJztcbiAgaWYgKHJlLmlnbm9yZUNhc2UpIGZsYWdzICs9ICdpJztcbiAgaWYgKHJlLm11bHRpbGluZSkgZmxhZ3MgKz0gJ20nO1xuICByZXR1cm4gZmxhZ3M7XG59XG5jbG9uZS5fX2dldFJlZ0V4cEZsYWdzID0gX19nZXRSZWdFeHBGbGFncztcblxucmV0dXJuIGNsb25lO1xufSkoKTtcblxuaWYgKHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnICYmIG1vZHVsZS5leHBvcnRzKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gY2xvbmU7XG59XG4iLCJ2YXIgZGVmaW5lZCA9IHJlcXVpcmUoJ2RlZmluZWQnKTtcbnZhciB1bml0cyA9IFsgJ21tJywgJ2NtJywgJ20nLCAncGMnLCAncHQnLCAnaW4nLCAnZnQnLCAncHgnIF07XG5cbnZhciBjb252ZXJzaW9ucyA9IHtcbiAgLy8gbWV0cmljXG4gIG06IHtcbiAgICBzeXN0ZW06ICdtZXRyaWMnLFxuICAgIGZhY3RvcjogMVxuICB9LFxuICBjbToge1xuICAgIHN5c3RlbTogJ21ldHJpYycsXG4gICAgZmFjdG9yOiAxIC8gMTAwXG4gIH0sXG4gIG1tOiB7XG4gICAgc3lzdGVtOiAnbWV0cmljJyxcbiAgICBmYWN0b3I6IDEgLyAxMDAwXG4gIH0sXG4gIC8vIGltcGVyaWFsXG4gIHB0OiB7XG4gICAgc3lzdGVtOiAnaW1wZXJpYWwnLFxuICAgIGZhY3RvcjogMSAvIDcyXG4gIH0sXG4gIHBjOiB7XG4gICAgc3lzdGVtOiAnaW1wZXJpYWwnLFxuICAgIGZhY3RvcjogMSAvIDZcbiAgfSxcbiAgaW46IHtcbiAgICBzeXN0ZW06ICdpbXBlcmlhbCcsXG4gICAgZmFjdG9yOiAxXG4gIH0sXG4gIGZ0OiB7XG4gICAgc3lzdGVtOiAnaW1wZXJpYWwnLFxuICAgIGZhY3RvcjogMTJcbiAgfVxufTtcblxuY29uc3QgYW5jaG9ycyA9IHtcbiAgbWV0cmljOiB7XG4gICAgdW5pdDogJ20nLFxuICAgIHJhdGlvOiAxIC8gMC4wMjU0XG4gIH0sXG4gIGltcGVyaWFsOiB7XG4gICAgdW5pdDogJ2luJyxcbiAgICByYXRpbzogMC4wMjU0XG4gIH1cbn07XG5cbmZ1bmN0aW9uIHJvdW5kICh2YWx1ZSwgZGVjaW1hbHMpIHtcbiAgcmV0dXJuIE51bWJlcihNYXRoLnJvdW5kKHZhbHVlICsgJ2UnICsgZGVjaW1hbHMpICsgJ2UtJyArIGRlY2ltYWxzKTtcbn1cblxuZnVuY3Rpb24gY29udmVydERpc3RhbmNlICh2YWx1ZSwgZnJvbVVuaXQsIHRvVW5pdCwgb3B0cykge1xuICBpZiAodHlwZW9mIHZhbHVlICE9PSAnbnVtYmVyJyB8fCAhaXNGaW5pdGUodmFsdWUpKSB0aHJvdyBuZXcgRXJyb3IoJ1ZhbHVlIG11c3QgYmUgYSBmaW5pdGUgbnVtYmVyJyk7XG4gIGlmICghZnJvbVVuaXQgfHwgIXRvVW5pdCkgdGhyb3cgbmV3IEVycm9yKCdNdXN0IHNwZWNpZnkgZnJvbSBhbmQgdG8gdW5pdHMnKTtcblxuICBvcHRzID0gb3B0cyB8fCB7fTtcbiAgdmFyIHBpeGVsc1BlckluY2ggPSBkZWZpbmVkKG9wdHMucGl4ZWxzUGVySW5jaCwgOTYpO1xuICB2YXIgcHJlY2lzaW9uID0gb3B0cy5wcmVjaXNpb247XG4gIHZhciByb3VuZFBpeGVsID0gb3B0cy5yb3VuZFBpeGVsICE9PSBmYWxzZTtcblxuICBmcm9tVW5pdCA9IGZyb21Vbml0LnRvTG93ZXJDYXNlKCk7XG4gIHRvVW5pdCA9IHRvVW5pdC50b0xvd2VyQ2FzZSgpO1xuXG4gIGlmICh1bml0cy5pbmRleE9mKGZyb21Vbml0KSA9PT0gLTEpIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBmcm9tIHVuaXQgXCInICsgZnJvbVVuaXQgKyAnXCIsIG11c3QgYmUgb25lIG9mOiAnICsgdW5pdHMuam9pbignLCAnKSk7XG4gIGlmICh1bml0cy5pbmRleE9mKHRvVW5pdCkgPT09IC0xKSB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgZnJvbSB1bml0IFwiJyArIHRvVW5pdCArICdcIiwgbXVzdCBiZSBvbmUgb2Y6ICcgKyB1bml0cy5qb2luKCcsICcpKTtcblxuICBpZiAoZnJvbVVuaXQgPT09IHRvVW5pdCkge1xuICAgIC8vIFdlIGRvbid0IG5lZWQgdG8gY29udmVydCBmcm9tIEEgdG8gQiBzaW5jZSB0aGV5IGFyZSB0aGUgc2FtZSBhbHJlYWR5XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgdmFyIHRvRmFjdG9yID0gMTtcbiAgdmFyIGZyb21GYWN0b3IgPSAxO1xuICB2YXIgaXNUb1BpeGVsID0gZmFsc2U7XG5cbiAgaWYgKGZyb21Vbml0ID09PSAncHgnKSB7XG4gICAgZnJvbUZhY3RvciA9IDEgLyBwaXhlbHNQZXJJbmNoO1xuICAgIGZyb21Vbml0ID0gJ2luJztcbiAgfVxuICBpZiAodG9Vbml0ID09PSAncHgnKSB7XG4gICAgaXNUb1BpeGVsID0gdHJ1ZTtcbiAgICB0b0ZhY3RvciA9IHBpeGVsc1BlckluY2g7XG4gICAgdG9Vbml0ID0gJ2luJztcbiAgfVxuXG4gIHZhciBmcm9tVW5pdERhdGEgPSBjb252ZXJzaW9uc1tmcm9tVW5pdF07XG4gIHZhciB0b1VuaXREYXRhID0gY29udmVyc2lvbnNbdG9Vbml0XTtcblxuICAvLyBzb3VyY2UgdG8gYW5jaG9yIGluc2lkZSBzb3VyY2UncyBzeXN0ZW1cbiAgdmFyIGFuY2hvciA9IHZhbHVlICogZnJvbVVuaXREYXRhLmZhY3RvciAqIGZyb21GYWN0b3I7XG5cbiAgLy8gaWYgc3lzdGVtcyBkaWZmZXIsIGNvbnZlcnQgb25lIHRvIGFub3RoZXJcbiAgaWYgKGZyb21Vbml0RGF0YS5zeXN0ZW0gIT09IHRvVW5pdERhdGEuc3lzdGVtKSB7XG4gICAgLy8gcmVndWxhciAnbScgdG8gJ2luJyBhbmQgc28gZm9ydGhcbiAgICBhbmNob3IgKj0gYW5jaG9yc1tmcm9tVW5pdERhdGEuc3lzdGVtXS5yYXRpbztcbiAgfVxuXG4gIHZhciByZXN1bHQgPSBhbmNob3IgLyB0b1VuaXREYXRhLmZhY3RvciAqIHRvRmFjdG9yO1xuICBpZiAoaXNUb1BpeGVsICYmIHJvdW5kUGl4ZWwpIHtcbiAgICByZXN1bHQgPSBNYXRoLnJvdW5kKHJlc3VsdCk7XG4gIH0gZWxzZSBpZiAodHlwZW9mIHByZWNpc2lvbiA9PT0gJ251bWJlcicgJiYgaXNGaW5pdGUocHJlY2lzaW9uKSkge1xuICAgIHJlc3VsdCA9IHJvdW5kKHJlc3VsdCwgcHJlY2lzaW9uKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNvbnZlcnREaXN0YW5jZTtcbm1vZHVsZS5leHBvcnRzLnVuaXRzID0gdW5pdHM7XG4iLCIvLyBodHRwczovL2QzanMub3JnL2QzLXBhdGgvIHYxLjAuOSBDb3B5cmlnaHQgMjAxOSBNaWtlIEJvc3RvY2tcbihmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG50eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcgPyBmYWN0b3J5KGV4cG9ydHMpIDpcbnR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJ2V4cG9ydHMnXSwgZmFjdG9yeSkgOlxuKGdsb2JhbCA9IGdsb2JhbCB8fCBzZWxmLCBmYWN0b3J5KGdsb2JhbC5kMyA9IGdsb2JhbC5kMyB8fCB7fSkpO1xufSh0aGlzLCBmdW5jdGlvbiAoZXhwb3J0cykgeyAndXNlIHN0cmljdCc7XG5cbnZhciBwaSA9IE1hdGguUEksXG4gICAgdGF1ID0gMiAqIHBpLFxuICAgIGVwc2lsb24gPSAxZS02LFxuICAgIHRhdUVwc2lsb24gPSB0YXUgLSBlcHNpbG9uO1xuXG5mdW5jdGlvbiBQYXRoKCkge1xuICB0aGlzLl94MCA9IHRoaXMuX3kwID0gLy8gc3RhcnQgb2YgY3VycmVudCBzdWJwYXRoXG4gIHRoaXMuX3gxID0gdGhpcy5feTEgPSBudWxsOyAvLyBlbmQgb2YgY3VycmVudCBzdWJwYXRoXG4gIHRoaXMuXyA9IFwiXCI7XG59XG5cbmZ1bmN0aW9uIHBhdGgoKSB7XG4gIHJldHVybiBuZXcgUGF0aDtcbn1cblxuUGF0aC5wcm90b3R5cGUgPSBwYXRoLnByb3RvdHlwZSA9IHtcbiAgY29uc3RydWN0b3I6IFBhdGgsXG4gIG1vdmVUbzogZnVuY3Rpb24oeCwgeSkge1xuICAgIHRoaXMuXyArPSBcIk1cIiArICh0aGlzLl94MCA9IHRoaXMuX3gxID0gK3gpICsgXCIsXCIgKyAodGhpcy5feTAgPSB0aGlzLl95MSA9ICt5KTtcbiAgfSxcbiAgY2xvc2VQYXRoOiBmdW5jdGlvbigpIHtcbiAgICBpZiAodGhpcy5feDEgIT09IG51bGwpIHtcbiAgICAgIHRoaXMuX3gxID0gdGhpcy5feDAsIHRoaXMuX3kxID0gdGhpcy5feTA7XG4gICAgICB0aGlzLl8gKz0gXCJaXCI7XG4gICAgfVxuICB9LFxuICBsaW5lVG86IGZ1bmN0aW9uKHgsIHkpIHtcbiAgICB0aGlzLl8gKz0gXCJMXCIgKyAodGhpcy5feDEgPSAreCkgKyBcIixcIiArICh0aGlzLl95MSA9ICt5KTtcbiAgfSxcbiAgcXVhZHJhdGljQ3VydmVUbzogZnVuY3Rpb24oeDEsIHkxLCB4LCB5KSB7XG4gICAgdGhpcy5fICs9IFwiUVwiICsgKCt4MSkgKyBcIixcIiArICgreTEpICsgXCIsXCIgKyAodGhpcy5feDEgPSAreCkgKyBcIixcIiArICh0aGlzLl95MSA9ICt5KTtcbiAgfSxcbiAgYmV6aWVyQ3VydmVUbzogZnVuY3Rpb24oeDEsIHkxLCB4MiwgeTIsIHgsIHkpIHtcbiAgICB0aGlzLl8gKz0gXCJDXCIgKyAoK3gxKSArIFwiLFwiICsgKCt5MSkgKyBcIixcIiArICgreDIpICsgXCIsXCIgKyAoK3kyKSArIFwiLFwiICsgKHRoaXMuX3gxID0gK3gpICsgXCIsXCIgKyAodGhpcy5feTEgPSAreSk7XG4gIH0sXG4gIGFyY1RvOiBmdW5jdGlvbih4MSwgeTEsIHgyLCB5Miwgcikge1xuICAgIHgxID0gK3gxLCB5MSA9ICt5MSwgeDIgPSAreDIsIHkyID0gK3kyLCByID0gK3I7XG4gICAgdmFyIHgwID0gdGhpcy5feDEsXG4gICAgICAgIHkwID0gdGhpcy5feTEsXG4gICAgICAgIHgyMSA9IHgyIC0geDEsXG4gICAgICAgIHkyMSA9IHkyIC0geTEsXG4gICAgICAgIHgwMSA9IHgwIC0geDEsXG4gICAgICAgIHkwMSA9IHkwIC0geTEsXG4gICAgICAgIGwwMV8yID0geDAxICogeDAxICsgeTAxICogeTAxO1xuXG4gICAgLy8gSXMgdGhlIHJhZGl1cyBuZWdhdGl2ZT8gRXJyb3IuXG4gICAgaWYgKHIgPCAwKSB0aHJvdyBuZXcgRXJyb3IoXCJuZWdhdGl2ZSByYWRpdXM6IFwiICsgcik7XG5cbiAgICAvLyBJcyB0aGlzIHBhdGggZW1wdHk/IE1vdmUgdG8gKHgxLHkxKS5cbiAgICBpZiAodGhpcy5feDEgPT09IG51bGwpIHtcbiAgICAgIHRoaXMuXyArPSBcIk1cIiArICh0aGlzLl94MSA9IHgxKSArIFwiLFwiICsgKHRoaXMuX3kxID0geTEpO1xuICAgIH1cblxuICAgIC8vIE9yLCBpcyAoeDEseTEpIGNvaW5jaWRlbnQgd2l0aCAoeDAseTApPyBEbyBub3RoaW5nLlxuICAgIGVsc2UgaWYgKCEobDAxXzIgPiBlcHNpbG9uKSk7XG5cbiAgICAvLyBPciwgYXJlICh4MCx5MCksICh4MSx5MSkgYW5kICh4Mix5MikgY29sbGluZWFyP1xuICAgIC8vIEVxdWl2YWxlbnRseSwgaXMgKHgxLHkxKSBjb2luY2lkZW50IHdpdGggKHgyLHkyKT9cbiAgICAvLyBPciwgaXMgdGhlIHJhZGl1cyB6ZXJvPyBMaW5lIHRvICh4MSx5MSkuXG4gICAgZWxzZSBpZiAoIShNYXRoLmFicyh5MDEgKiB4MjEgLSB5MjEgKiB4MDEpID4gZXBzaWxvbikgfHwgIXIpIHtcbiAgICAgIHRoaXMuXyArPSBcIkxcIiArICh0aGlzLl94MSA9IHgxKSArIFwiLFwiICsgKHRoaXMuX3kxID0geTEpO1xuICAgIH1cblxuICAgIC8vIE90aGVyd2lzZSwgZHJhdyBhbiBhcmMhXG4gICAgZWxzZSB7XG4gICAgICB2YXIgeDIwID0geDIgLSB4MCxcbiAgICAgICAgICB5MjAgPSB5MiAtIHkwLFxuICAgICAgICAgIGwyMV8yID0geDIxICogeDIxICsgeTIxICogeTIxLFxuICAgICAgICAgIGwyMF8yID0geDIwICogeDIwICsgeTIwICogeTIwLFxuICAgICAgICAgIGwyMSA9IE1hdGguc3FydChsMjFfMiksXG4gICAgICAgICAgbDAxID0gTWF0aC5zcXJ0KGwwMV8yKSxcbiAgICAgICAgICBsID0gciAqIE1hdGgudGFuKChwaSAtIE1hdGguYWNvcygobDIxXzIgKyBsMDFfMiAtIGwyMF8yKSAvICgyICogbDIxICogbDAxKSkpIC8gMiksXG4gICAgICAgICAgdDAxID0gbCAvIGwwMSxcbiAgICAgICAgICB0MjEgPSBsIC8gbDIxO1xuXG4gICAgICAvLyBJZiB0aGUgc3RhcnQgdGFuZ2VudCBpcyBub3QgY29pbmNpZGVudCB3aXRoICh4MCx5MCksIGxpbmUgdG8uXG4gICAgICBpZiAoTWF0aC5hYnModDAxIC0gMSkgPiBlcHNpbG9uKSB7XG4gICAgICAgIHRoaXMuXyArPSBcIkxcIiArICh4MSArIHQwMSAqIHgwMSkgKyBcIixcIiArICh5MSArIHQwMSAqIHkwMSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuXyArPSBcIkFcIiArIHIgKyBcIixcIiArIHIgKyBcIiwwLDAsXCIgKyAoKyh5MDEgKiB4MjAgPiB4MDEgKiB5MjApKSArIFwiLFwiICsgKHRoaXMuX3gxID0geDEgKyB0MjEgKiB4MjEpICsgXCIsXCIgKyAodGhpcy5feTEgPSB5MSArIHQyMSAqIHkyMSk7XG4gICAgfVxuICB9LFxuICBhcmM6IGZ1bmN0aW9uKHgsIHksIHIsIGEwLCBhMSwgY2N3KSB7XG4gICAgeCA9ICt4LCB5ID0gK3ksIHIgPSArciwgY2N3ID0gISFjY3c7XG4gICAgdmFyIGR4ID0gciAqIE1hdGguY29zKGEwKSxcbiAgICAgICAgZHkgPSByICogTWF0aC5zaW4oYTApLFxuICAgICAgICB4MCA9IHggKyBkeCxcbiAgICAgICAgeTAgPSB5ICsgZHksXG4gICAgICAgIGN3ID0gMSBeIGNjdyxcbiAgICAgICAgZGEgPSBjY3cgPyBhMCAtIGExIDogYTEgLSBhMDtcblxuICAgIC8vIElzIHRoZSByYWRpdXMgbmVnYXRpdmU/IEVycm9yLlxuICAgIGlmIChyIDwgMCkgdGhyb3cgbmV3IEVycm9yKFwibmVnYXRpdmUgcmFkaXVzOiBcIiArIHIpO1xuXG4gICAgLy8gSXMgdGhpcyBwYXRoIGVtcHR5PyBNb3ZlIHRvICh4MCx5MCkuXG4gICAgaWYgKHRoaXMuX3gxID09PSBudWxsKSB7XG4gICAgICB0aGlzLl8gKz0gXCJNXCIgKyB4MCArIFwiLFwiICsgeTA7XG4gICAgfVxuXG4gICAgLy8gT3IsIGlzICh4MCx5MCkgbm90IGNvaW5jaWRlbnQgd2l0aCB0aGUgcHJldmlvdXMgcG9pbnQ/IExpbmUgdG8gKHgwLHkwKS5cbiAgICBlbHNlIGlmIChNYXRoLmFicyh0aGlzLl94MSAtIHgwKSA+IGVwc2lsb24gfHwgTWF0aC5hYnModGhpcy5feTEgLSB5MCkgPiBlcHNpbG9uKSB7XG4gICAgICB0aGlzLl8gKz0gXCJMXCIgKyB4MCArIFwiLFwiICsgeTA7XG4gICAgfVxuXG4gICAgLy8gSXMgdGhpcyBhcmMgZW1wdHk/IFdl4oCZcmUgZG9uZS5cbiAgICBpZiAoIXIpIHJldHVybjtcblxuICAgIC8vIERvZXMgdGhlIGFuZ2xlIGdvIHRoZSB3cm9uZyB3YXk/IEZsaXAgdGhlIGRpcmVjdGlvbi5cbiAgICBpZiAoZGEgPCAwKSBkYSA9IGRhICUgdGF1ICsgdGF1O1xuXG4gICAgLy8gSXMgdGhpcyBhIGNvbXBsZXRlIGNpcmNsZT8gRHJhdyB0d28gYXJjcyB0byBjb21wbGV0ZSB0aGUgY2lyY2xlLlxuICAgIGlmIChkYSA+IHRhdUVwc2lsb24pIHtcbiAgICAgIHRoaXMuXyArPSBcIkFcIiArIHIgKyBcIixcIiArIHIgKyBcIiwwLDEsXCIgKyBjdyArIFwiLFwiICsgKHggLSBkeCkgKyBcIixcIiArICh5IC0gZHkpICsgXCJBXCIgKyByICsgXCIsXCIgKyByICsgXCIsMCwxLFwiICsgY3cgKyBcIixcIiArICh0aGlzLl94MSA9IHgwKSArIFwiLFwiICsgKHRoaXMuX3kxID0geTApO1xuICAgIH1cblxuICAgIC8vIElzIHRoaXMgYXJjIG5vbi1lbXB0eT8gRHJhdyBhbiBhcmMhXG4gICAgZWxzZSBpZiAoZGEgPiBlcHNpbG9uKSB7XG4gICAgICB0aGlzLl8gKz0gXCJBXCIgKyByICsgXCIsXCIgKyByICsgXCIsMCxcIiArICgrKGRhID49IHBpKSkgKyBcIixcIiArIGN3ICsgXCIsXCIgKyAodGhpcy5feDEgPSB4ICsgciAqIE1hdGguY29zKGExKSkgKyBcIixcIiArICh0aGlzLl95MSA9IHkgKyByICogTWF0aC5zaW4oYTEpKTtcbiAgICB9XG4gIH0sXG4gIHJlY3Q6IGZ1bmN0aW9uKHgsIHksIHcsIGgpIHtcbiAgICB0aGlzLl8gKz0gXCJNXCIgKyAodGhpcy5feDAgPSB0aGlzLl94MSA9ICt4KSArIFwiLFwiICsgKHRoaXMuX3kwID0gdGhpcy5feTEgPSAreSkgKyBcImhcIiArICgrdykgKyBcInZcIiArICgraCkgKyBcImhcIiArICgtdykgKyBcIlpcIjtcbiAgfSxcbiAgdG9TdHJpbmc6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLl87XG4gIH1cbn07XG5cbmV4cG9ydHMucGF0aCA9IHBhdGg7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG5cbn0pKTtcbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKCkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChhcmd1bWVudHNbaV0gIT09IHVuZGVmaW5lZCkgcmV0dXJuIGFyZ3VtZW50c1tpXTtcbiAgICB9XG59O1xuIiwiKGZ1bmN0aW9uKGEsYil7aWYoXCJmdW5jdGlvblwiPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kKWRlZmluZShbXSxiKTtlbHNlIGlmKFwidW5kZWZpbmVkXCIhPXR5cGVvZiBleHBvcnRzKWIoKTtlbHNle2IoKSxhLkZpbGVTYXZlcj17ZXhwb3J0czp7fX0uZXhwb3J0c319KSh0aGlzLGZ1bmN0aW9uKCl7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gYihhLGIpe3JldHVyblwidW5kZWZpbmVkXCI9PXR5cGVvZiBiP2I9e2F1dG9Cb206ITF9Olwib2JqZWN0XCIhPXR5cGVvZiBiJiYoY29uc29sZS53YXJuKFwiRGVwcmVjYXRlZDogRXhwZWN0ZWQgdGhpcmQgYXJndW1lbnQgdG8gYmUgYSBvYmplY3RcIiksYj17YXV0b0JvbTohYn0pLGIuYXV0b0JvbSYmL15cXHMqKD86dGV4dFxcL1xcUyp8YXBwbGljYXRpb25cXC94bWx8XFxTKlxcL1xcUypcXCt4bWwpXFxzKjsuKmNoYXJzZXRcXHMqPVxccyp1dGYtOC9pLnRlc3QoYS50eXBlKT9uZXcgQmxvYihbXCJcXHVGRUZGXCIsYV0se3R5cGU6YS50eXBlfSk6YX1mdW5jdGlvbiBjKGEsYixjKXt2YXIgZD1uZXcgWE1MSHR0cFJlcXVlc3Q7ZC5vcGVuKFwiR0VUXCIsYSksZC5yZXNwb25zZVR5cGU9XCJibG9iXCIsZC5vbmxvYWQ9ZnVuY3Rpb24oKXtnKGQucmVzcG9uc2UsYixjKX0sZC5vbmVycm9yPWZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcihcImNvdWxkIG5vdCBkb3dubG9hZCBmaWxlXCIpfSxkLnNlbmQoKX1mdW5jdGlvbiBkKGEpe3ZhciBiPW5ldyBYTUxIdHRwUmVxdWVzdDtiLm9wZW4oXCJIRUFEXCIsYSwhMSk7dHJ5e2Iuc2VuZCgpfWNhdGNoKGEpe31yZXR1cm4gMjAwPD1iLnN0YXR1cyYmMjk5Pj1iLnN0YXR1c31mdW5jdGlvbiBlKGEpe3RyeXthLmRpc3BhdGNoRXZlbnQobmV3IE1vdXNlRXZlbnQoXCJjbGlja1wiKSl9Y2F0Y2goYyl7dmFyIGI9ZG9jdW1lbnQuY3JlYXRlRXZlbnQoXCJNb3VzZUV2ZW50c1wiKTtiLmluaXRNb3VzZUV2ZW50KFwiY2xpY2tcIiwhMCwhMCx3aW5kb3csMCwwLDAsODAsMjAsITEsITEsITEsITEsMCxudWxsKSxhLmRpc3BhdGNoRXZlbnQoYil9fXZhciBmPVwib2JqZWN0XCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdy53aW5kb3c9PT13aW5kb3c/d2luZG93Olwib2JqZWN0XCI9PXR5cGVvZiBzZWxmJiZzZWxmLnNlbGY9PT1zZWxmP3NlbGY6XCJvYmplY3RcIj09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsLmdsb2JhbD09PWdsb2JhbD9nbG9iYWw6dm9pZCAwLGE9Zi5uYXZpZ2F0b3ImJi9NYWNpbnRvc2gvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkmJi9BcHBsZVdlYktpdC8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSYmIS9TYWZhcmkvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksZz1mLnNhdmVBc3x8KFwib2JqZWN0XCIhPXR5cGVvZiB3aW5kb3d8fHdpbmRvdyE9PWY/ZnVuY3Rpb24oKXt9OlwiZG93bmxvYWRcImluIEhUTUxBbmNob3JFbGVtZW50LnByb3RvdHlwZSYmIWE/ZnVuY3Rpb24oYixnLGgpe3ZhciBpPWYuVVJMfHxmLndlYmtpdFVSTCxqPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJhXCIpO2c9Z3x8Yi5uYW1lfHxcImRvd25sb2FkXCIsai5kb3dubG9hZD1nLGoucmVsPVwibm9vcGVuZXJcIixcInN0cmluZ1wiPT10eXBlb2YgYj8oai5ocmVmPWIsai5vcmlnaW49PT1sb2NhdGlvbi5vcmlnaW4/ZShqKTpkKGouaHJlZik/YyhiLGcsaCk6ZShqLGoudGFyZ2V0PVwiX2JsYW5rXCIpKTooai5ocmVmPWkuY3JlYXRlT2JqZWN0VVJMKGIpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtpLnJldm9rZU9iamVjdFVSTChqLmhyZWYpfSw0RTQpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtlKGopfSwwKSl9OlwibXNTYXZlT3JPcGVuQmxvYlwiaW4gbmF2aWdhdG9yP2Z1bmN0aW9uKGYsZyxoKXtpZihnPWd8fGYubmFtZXx8XCJkb3dubG9hZFwiLFwic3RyaW5nXCIhPXR5cGVvZiBmKW5hdmlnYXRvci5tc1NhdmVPck9wZW5CbG9iKGIoZixoKSxnKTtlbHNlIGlmKGQoZikpYyhmLGcsaCk7ZWxzZXt2YXIgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiYVwiKTtpLmhyZWY9ZixpLnRhcmdldD1cIl9ibGFua1wiLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtlKGkpfSl9fTpmdW5jdGlvbihiLGQsZSxnKXtpZihnPWd8fG9wZW4oXCJcIixcIl9ibGFua1wiKSxnJiYoZy5kb2N1bWVudC50aXRsZT1nLmRvY3VtZW50LmJvZHkuaW5uZXJUZXh0PVwiZG93bmxvYWRpbmcuLi5cIiksXCJzdHJpbmdcIj09dHlwZW9mIGIpcmV0dXJuIGMoYixkLGUpO3ZhciBoPVwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtXCI9PT1iLnR5cGUsaT0vY29uc3RydWN0b3IvaS50ZXN0KGYuSFRNTEVsZW1lbnQpfHxmLnNhZmFyaSxqPS9DcmlPU1xcL1tcXGRdKy8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTtpZigoanx8aCYmaXx8YSkmJlwidW5kZWZpbmVkXCIhPXR5cGVvZiBGaWxlUmVhZGVyKXt2YXIgaz1uZXcgRmlsZVJlYWRlcjtrLm9ubG9hZGVuZD1mdW5jdGlvbigpe3ZhciBhPWsucmVzdWx0O2E9aj9hOmEucmVwbGFjZSgvXmRhdGE6W147XSo7LyxcImRhdGE6YXR0YWNobWVudC9maWxlO1wiKSxnP2cubG9jYXRpb24uaHJlZj1hOmxvY2F0aW9uPWEsZz1udWxsfSxrLnJlYWRBc0RhdGFVUkwoYil9ZWxzZXt2YXIgbD1mLlVSTHx8Zi53ZWJraXRVUkwsbT1sLmNyZWF0ZU9iamVjdFVSTChiKTtnP2cubG9jYXRpb249bTpsb2NhdGlvbi5ocmVmPW0sZz1udWxsLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtsLnJldm9rZU9iamVjdFVSTChtKX0sNEU0KX19KTtmLnNhdmVBcz1nLnNhdmVBcz1nLFwidW5kZWZpbmVkXCIhPXR5cGVvZiBtb2R1bGUmJihtb2R1bGUuZXhwb3J0cz1nKX0pO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1GaWxlU2F2ZXIubWluLmpzLm1hcCIsIid1c2Ugc3RyaWN0JztcblxubW9kdWxlLmV4cG9ydHMgPSBsaW5lY2xpcDtcblxubGluZWNsaXAucG9seWxpbmUgPSBsaW5lY2xpcDtcbmxpbmVjbGlwLnBvbHlnb24gPSBwb2x5Z29uY2xpcDtcblxuXG4vLyBDb2hlbi1TdXRoZXJsYW5kIGxpbmUgY2xpcHBpZ24gYWxnb3JpdGhtLCBhZGFwdGVkIHRvIGVmZmljaWVudGx5XG4vLyBoYW5kbGUgcG9seWxpbmVzIHJhdGhlciB0aGFuIGp1c3Qgc2VnbWVudHNcblxuZnVuY3Rpb24gbGluZWNsaXAocG9pbnRzLCBiYm94LCByZXN1bHQpIHtcblxuICAgIHZhciBsZW4gPSBwb2ludHMubGVuZ3RoLFxuICAgICAgICBjb2RlQSA9IGJpdENvZGUocG9pbnRzWzBdLCBiYm94KSxcbiAgICAgICAgcGFydCA9IFtdLFxuICAgICAgICBpLCBhLCBiLCBjb2RlQiwgbGFzdENvZGU7XG5cbiAgICBpZiAoIXJlc3VsdCkgcmVzdWx0ID0gW107XG5cbiAgICBmb3IgKGkgPSAxOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgYSA9IHBvaW50c1tpIC0gMV07XG4gICAgICAgIGIgPSBwb2ludHNbaV07XG4gICAgICAgIGNvZGVCID0gbGFzdENvZGUgPSBiaXRDb2RlKGIsIGJib3gpO1xuXG4gICAgICAgIHdoaWxlICh0cnVlKSB7XG5cbiAgICAgICAgICAgIGlmICghKGNvZGVBIHwgY29kZUIpKSB7IC8vIGFjY2VwdFxuICAgICAgICAgICAgICAgIHBhcnQucHVzaChhKTtcblxuICAgICAgICAgICAgICAgIGlmIChjb2RlQiAhPT0gbGFzdENvZGUpIHsgLy8gc2VnbWVudCB3ZW50IG91dHNpZGVcbiAgICAgICAgICAgICAgICAgICAgcGFydC5wdXNoKGIpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChpIDwgbGVuIC0gMSkgeyAvLyBzdGFydCBhIG5ldyBsaW5lXG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaChwYXJ0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcnQgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaSA9PT0gbGVuIC0gMSkge1xuICAgICAgICAgICAgICAgICAgICBwYXJ0LnB1c2goYik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNvZGVBICYgY29kZUIpIHsgLy8gdHJpdmlhbCByZWplY3RcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgfSBlbHNlIGlmIChjb2RlQSkgeyAvLyBhIG91dHNpZGUsIGludGVyc2VjdCB3aXRoIGNsaXAgZWRnZVxuICAgICAgICAgICAgICAgIGEgPSBpbnRlcnNlY3QoYSwgYiwgY29kZUEsIGJib3gpO1xuICAgICAgICAgICAgICAgIGNvZGVBID0gYml0Q29kZShhLCBiYm94KTtcblxuICAgICAgICAgICAgfSBlbHNlIHsgLy8gYiBvdXRzaWRlXG4gICAgICAgICAgICAgICAgYiA9IGludGVyc2VjdChhLCBiLCBjb2RlQiwgYmJveCk7XG4gICAgICAgICAgICAgICAgY29kZUIgPSBiaXRDb2RlKGIsIGJib3gpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29kZUEgPSBsYXN0Q29kZTtcbiAgICB9XG5cbiAgICBpZiAocGFydC5sZW5ndGgpIHJlc3VsdC5wdXNoKHBhcnQpO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLy8gU3V0aGVybGFuZC1Ib2RnZW1hbiBwb2x5Z29uIGNsaXBwaW5nIGFsZ29yaXRobVxuXG5mdW5jdGlvbiBwb2x5Z29uY2xpcChwb2ludHMsIGJib3gpIHtcblxuICAgIHZhciByZXN1bHQsIGVkZ2UsIHByZXYsIHByZXZJbnNpZGUsIGksIHAsIGluc2lkZTtcblxuICAgIC8vIGNsaXAgYWdhaW5zdCBlYWNoIHNpZGUgb2YgdGhlIGNsaXAgcmVjdGFuZ2xlXG4gICAgZm9yIChlZGdlID0gMTsgZWRnZSA8PSA4OyBlZGdlICo9IDIpIHtcbiAgICAgICAgcmVzdWx0ID0gW107XG4gICAgICAgIHByZXYgPSBwb2ludHNbcG9pbnRzLmxlbmd0aCAtIDFdO1xuICAgICAgICBwcmV2SW5zaWRlID0gIShiaXRDb2RlKHByZXYsIGJib3gpICYgZWRnZSk7XG5cbiAgICAgICAgZm9yIChpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgcCA9IHBvaW50c1tpXTtcbiAgICAgICAgICAgIGluc2lkZSA9ICEoYml0Q29kZShwLCBiYm94KSAmIGVkZ2UpO1xuXG4gICAgICAgICAgICAvLyBpZiBzZWdtZW50IGdvZXMgdGhyb3VnaCB0aGUgY2xpcCB3aW5kb3csIGFkZCBhbiBpbnRlcnNlY3Rpb25cbiAgICAgICAgICAgIGlmIChpbnNpZGUgIT09IHByZXZJbnNpZGUpIHJlc3VsdC5wdXNoKGludGVyc2VjdChwcmV2LCBwLCBlZGdlLCBiYm94KSk7XG5cbiAgICAgICAgICAgIGlmIChpbnNpZGUpIHJlc3VsdC5wdXNoKHApOyAvLyBhZGQgYSBwb2ludCBpZiBpdCdzIGluc2lkZVxuXG4gICAgICAgICAgICBwcmV2ID0gcDtcbiAgICAgICAgICAgIHByZXZJbnNpZGUgPSBpbnNpZGU7XG4gICAgICAgIH1cblxuICAgICAgICBwb2ludHMgPSByZXN1bHQ7XG5cbiAgICAgICAgaWYgKCFwb2ludHMubGVuZ3RoKSBicmVhaztcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuXG4vLyBpbnRlcnNlY3QgYSBzZWdtZW50IGFnYWluc3Qgb25lIG9mIHRoZSA0IGxpbmVzIHRoYXQgbWFrZSB1cCB0aGUgYmJveFxuXG5mdW5jdGlvbiBpbnRlcnNlY3QoYSwgYiwgZWRnZSwgYmJveCkge1xuICAgIHJldHVybiBlZGdlICYgOCA/IFthWzBdICsgKGJbMF0gLSBhWzBdKSAqIChiYm94WzNdIC0gYVsxXSkgLyAoYlsxXSAtIGFbMV0pLCBiYm94WzNdXSA6IC8vIHRvcFxuICAgICAgICAgICBlZGdlICYgNCA/IFthWzBdICsgKGJbMF0gLSBhWzBdKSAqIChiYm94WzFdIC0gYVsxXSkgLyAoYlsxXSAtIGFbMV0pLCBiYm94WzFdXSA6IC8vIGJvdHRvbVxuICAgICAgICAgICBlZGdlICYgMiA/IFtiYm94WzJdLCBhWzFdICsgKGJbMV0gLSBhWzFdKSAqIChiYm94WzJdIC0gYVswXSkgLyAoYlswXSAtIGFbMF0pXSA6IC8vIHJpZ2h0XG4gICAgICAgICAgIGVkZ2UgJiAxID8gW2Jib3hbMF0sIGFbMV0gKyAoYlsxXSAtIGFbMV0pICogKGJib3hbMF0gLSBhWzBdKSAvIChiWzBdIC0gYVswXSldIDogLy8gbGVmdFxuICAgICAgICAgICBudWxsO1xufVxuXG4vLyBiaXQgY29kZSByZWZsZWN0cyB0aGUgcG9pbnQgcG9zaXRpb24gcmVsYXRpdmUgdG8gdGhlIGJib3g6XG5cbi8vICAgICAgICAgbGVmdCAgbWlkICByaWdodFxuLy8gICAgdG9wICAxMDAxICAxMDAwICAxMDEwXG4vLyAgICBtaWQgIDAwMDEgIDAwMDAgIDAwMTBcbi8vIGJvdHRvbSAgMDEwMSAgMDEwMCAgMDExMFxuXG5mdW5jdGlvbiBiaXRDb2RlKHAsIGJib3gpIHtcbiAgICB2YXIgY29kZSA9IDA7XG5cbiAgICBpZiAocFswXSA8IGJib3hbMF0pIGNvZGUgfD0gMTsgLy8gbGVmdFxuICAgIGVsc2UgaWYgKHBbMF0gPiBiYm94WzJdKSBjb2RlIHw9IDI7IC8vIHJpZ2h0XG5cbiAgICBpZiAocFsxXSA8IGJib3hbMV0pIGNvZGUgfD0gNDsgLy8gYm90dG9tXG4gICAgZWxzZSBpZiAocFsxXSA+IGJib3hbM10pIGNvZGUgfD0gODsgLy8gdG9wXG5cbiAgICByZXR1cm4gY29kZTtcbn1cbiIsIid1c2Ugc3RyaWN0J1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBub3JtYWxpemVcclxuXHJcbnZhciBhcmNUb0N1cnZlID0gcmVxdWlyZSgnc3ZnLWFyYy10by1jdWJpYy1iZXppZXInKVxyXG5cclxuZnVuY3Rpb24gbm9ybWFsaXplKHBhdGgpe1xyXG4gIC8vIGluaXQgc3RhdGVcclxuICB2YXIgcHJldlxyXG4gIHZhciByZXN1bHQgPSBbXVxyXG4gIHZhciBiZXppZXJYID0gMFxyXG4gIHZhciBiZXppZXJZID0gMFxyXG4gIHZhciBzdGFydFggPSAwXHJcbiAgdmFyIHN0YXJ0WSA9IDBcclxuICB2YXIgcXVhZFggPSBudWxsXHJcbiAgdmFyIHF1YWRZID0gbnVsbFxyXG4gIHZhciB4ID0gMFxyXG4gIHZhciB5ID0gMFxyXG5cclxuICBmb3IgKHZhciBpID0gMCwgbGVuID0gcGF0aC5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xyXG4gICAgdmFyIHNlZyA9IHBhdGhbaV1cclxuICAgIHZhciBjb21tYW5kID0gc2VnWzBdXHJcblxyXG4gICAgc3dpdGNoIChjb21tYW5kKSB7XHJcbiAgICAgIGNhc2UgJ00nOlxyXG4gICAgICAgIHN0YXJ0WCA9IHNlZ1sxXVxyXG4gICAgICAgIHN0YXJ0WSA9IHNlZ1syXVxyXG4gICAgICAgIGJyZWFrXHJcbiAgICAgIGNhc2UgJ0EnOlxyXG4gICAgICAgIHZhciBjdXJ2ZXMgPSBhcmNUb0N1cnZlKHtcclxuICAgICAgICAgIHB4OiB4LFxyXG4gICAgICAgICAgcHk6IHksXHJcbiAgICAgICAgICBjeDogc2VnWzZdLFxyXG4gICAgICAgICAgY3k6ICBzZWdbN10sXHJcbiAgICAgICAgICByeDogc2VnWzFdLFxyXG4gICAgICAgICAgcnk6IHNlZ1syXSxcclxuICAgICAgICAgIHhBeGlzUm90YXRpb246IHNlZ1szXSxcclxuICAgICAgICAgIGxhcmdlQXJjRmxhZzogc2VnWzRdLFxyXG4gICAgICAgICAgc3dlZXBGbGFnOiBzZWdbNV1cclxuICAgICAgICB9KVxyXG5cclxuICAgICAgICAvLyBudWxsLWN1cnZlc1xyXG4gICAgICAgIGlmICghY3VydmVzLmxlbmd0aCkgY29udGludWVcclxuXHJcbiAgICAgICAgZm9yICh2YXIgaiA9IDAsIGM7IGogPCBjdXJ2ZXMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgIGMgPSBjdXJ2ZXNbal1cclxuICAgICAgICAgIHNlZyA9IFsnQycsIGMueDEsIGMueTEsIGMueDIsIGMueTIsIGMueCwgYy55XVxyXG4gICAgICAgICAgaWYgKGogPCBjdXJ2ZXMubGVuZ3RoIC0gMSkgcmVzdWx0LnB1c2goc2VnKVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgYnJlYWtcclxuICAgICAgY2FzZSAnUyc6XHJcbiAgICAgICAgLy8gZGVmYXVsdCBjb250cm9sIHBvaW50XHJcbiAgICAgICAgdmFyIGN4ID0geFxyXG4gICAgICAgIHZhciBjeSA9IHlcclxuICAgICAgICBpZiAocHJldiA9PSAnQycgfHwgcHJldiA9PSAnUycpIHtcclxuICAgICAgICAgIGN4ICs9IGN4IC0gYmV6aWVyWCAvLyByZWZsZWN0IHRoZSBwcmV2aW91cyBjb21tYW5kJ3MgY29udHJvbFxyXG4gICAgICAgICAgY3kgKz0gY3kgLSBiZXppZXJZIC8vIHBvaW50IHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHBvaW50XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNlZyA9IFsnQycsIGN4LCBjeSwgc2VnWzFdLCBzZWdbMl0sIHNlZ1szXSwgc2VnWzRdXVxyXG4gICAgICAgIGJyZWFrXHJcbiAgICAgIGNhc2UgJ1QnOlxyXG4gICAgICAgIGlmIChwcmV2ID09ICdRJyB8fCBwcmV2ID09ICdUJykge1xyXG4gICAgICAgICAgcXVhZFggPSB4ICogMiAtIHF1YWRYIC8vIGFzIHdpdGggJ1MnIHJlZmxlY3QgcHJldmlvdXMgY29udHJvbCBwb2ludFxyXG4gICAgICAgICAgcXVhZFkgPSB5ICogMiAtIHF1YWRZXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHF1YWRYID0geFxyXG4gICAgICAgICAgcXVhZFkgPSB5XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNlZyA9IHF1YWRyYXRpYyh4LCB5LCBxdWFkWCwgcXVhZFksIHNlZ1sxXSwgc2VnWzJdKVxyXG4gICAgICAgIGJyZWFrXHJcbiAgICAgIGNhc2UgJ1EnOlxyXG4gICAgICAgIHF1YWRYID0gc2VnWzFdXHJcbiAgICAgICAgcXVhZFkgPSBzZWdbMl1cclxuICAgICAgICBzZWcgPSBxdWFkcmF0aWMoeCwgeSwgc2VnWzFdLCBzZWdbMl0sIHNlZ1szXSwgc2VnWzRdKVxyXG4gICAgICAgIGJyZWFrXHJcbiAgICAgIGNhc2UgJ0wnOlxyXG4gICAgICAgIHNlZyA9IGxpbmUoeCwgeSwgc2VnWzFdLCBzZWdbMl0pXHJcbiAgICAgICAgYnJlYWtcclxuICAgICAgY2FzZSAnSCc6XHJcbiAgICAgICAgc2VnID0gbGluZSh4LCB5LCBzZWdbMV0sIHkpXHJcbiAgICAgICAgYnJlYWtcclxuICAgICAgY2FzZSAnVic6XHJcbiAgICAgICAgc2VnID0gbGluZSh4LCB5LCB4LCBzZWdbMV0pXHJcbiAgICAgICAgYnJlYWtcclxuICAgICAgY2FzZSAnWic6XHJcbiAgICAgICAgc2VnID0gbGluZSh4LCB5LCBzdGFydFgsIHN0YXJ0WSlcclxuICAgICAgICBicmVha1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHVwZGF0ZSBzdGF0ZVxyXG4gICAgcHJldiA9IGNvbW1hbmRcclxuICAgIHggPSBzZWdbc2VnLmxlbmd0aCAtIDJdXHJcbiAgICB5ID0gc2VnW3NlZy5sZW5ndGggLSAxXVxyXG4gICAgaWYgKHNlZy5sZW5ndGggPiA0KSB7XHJcbiAgICAgIGJlemllclggPSBzZWdbc2VnLmxlbmd0aCAtIDRdXHJcbiAgICAgIGJlemllclkgPSBzZWdbc2VnLmxlbmd0aCAtIDNdXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBiZXppZXJYID0geFxyXG4gICAgICBiZXppZXJZID0geVxyXG4gICAgfVxyXG4gICAgcmVzdWx0LnB1c2goc2VnKVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHJlc3VsdFxyXG59XHJcblxyXG5mdW5jdGlvbiBsaW5lKHgxLCB5MSwgeDIsIHkyKXtcclxuICByZXR1cm4gWydDJywgeDEsIHkxLCB4MiwgeTIsIHgyLCB5Ml1cclxufVxyXG5cclxuZnVuY3Rpb24gcXVhZHJhdGljKHgxLCB5MSwgY3gsIGN5LCB4MiwgeTIpe1xyXG4gIHJldHVybiBbXHJcbiAgICAnQycsXHJcbiAgICB4MS8zICsgKDIvMykgKiBjeCxcclxuICAgIHkxLzMgKyAoMi8zKSAqIGN5LFxyXG4gICAgeDIvMyArICgyLzMpICogY3gsXHJcbiAgICB5Mi8zICsgKDIvMykgKiBjeSxcclxuICAgIHgyLFxyXG4gICAgeTJcclxuICBdXHJcbn1cclxuIiwiXG5tb2R1bGUuZXhwb3J0cyA9IHBhcnNlXG5cbi8qKlxuICogZXhwZWN0ZWQgYXJndW1lbnQgbGVuZ3Roc1xuICogQHR5cGUge09iamVjdH1cbiAqL1xuXG52YXIgbGVuZ3RoID0ge2E6IDcsIGM6IDYsIGg6IDEsIGw6IDIsIG06IDIsIHE6IDQsIHM6IDQsIHQ6IDIsIHY6IDEsIHo6IDB9XG5cbi8qKlxuICogc2VnbWVudCBwYXR0ZXJuXG4gKiBAdHlwZSB7UmVnRXhwfVxuICovXG5cbnZhciBzZWdtZW50ID0gLyhbYXN0dnpxbWhsY10pKFteYXN0dnpxbWhsY10qKS9pZ1xuXG4vKipcbiAqIHBhcnNlIGFuIHN2ZyBwYXRoIGRhdGEgc3RyaW5nLiBHZW5lcmF0ZXMgYW4gQXJyYXlcbiAqIG9mIGNvbW1hbmRzIHdoZXJlIGVhY2ggY29tbWFuZCBpcyBhbiBBcnJheSBvZiB0aGVcbiAqIGZvcm0gYFtjb21tYW5kLCBhcmcxLCBhcmcyLCAuLi5dYFxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBwYXRoXG4gKiBAcmV0dXJuIHtBcnJheX1cbiAqL1xuXG5mdW5jdGlvbiBwYXJzZShwYXRoKSB7XG5cdHZhciBkYXRhID0gW11cblx0cGF0aC5yZXBsYWNlKHNlZ21lbnQsIGZ1bmN0aW9uKF8sIGNvbW1hbmQsIGFyZ3Mpe1xuXHRcdHZhciB0eXBlID0gY29tbWFuZC50b0xvd2VyQ2FzZSgpXG5cdFx0YXJncyA9IHBhcnNlVmFsdWVzKGFyZ3MpXG5cblx0XHQvLyBvdmVybG9hZGVkIG1vdmVUb1xuXHRcdGlmICh0eXBlID09ICdtJyAmJiBhcmdzLmxlbmd0aCA+IDIpIHtcblx0XHRcdGRhdGEucHVzaChbY29tbWFuZF0uY29uY2F0KGFyZ3Muc3BsaWNlKDAsIDIpKSlcblx0XHRcdHR5cGUgPSAnbCdcblx0XHRcdGNvbW1hbmQgPSBjb21tYW5kID09ICdtJyA/ICdsJyA6ICdMJ1xuXHRcdH1cblxuXHRcdHdoaWxlICh0cnVlKSB7XG5cdFx0XHRpZiAoYXJncy5sZW5ndGggPT0gbGVuZ3RoW3R5cGVdKSB7XG5cdFx0XHRcdGFyZ3MudW5zaGlmdChjb21tYW5kKVxuXHRcdFx0XHRyZXR1cm4gZGF0YS5wdXNoKGFyZ3MpXG5cdFx0XHR9XG5cdFx0XHRpZiAoYXJncy5sZW5ndGggPCBsZW5ndGhbdHlwZV0pIHRocm93IG5ldyBFcnJvcignbWFsZm9ybWVkIHBhdGggZGF0YScpXG5cdFx0XHRkYXRhLnB1c2goW2NvbW1hbmRdLmNvbmNhdChhcmdzLnNwbGljZSgwLCBsZW5ndGhbdHlwZV0pKSlcblx0XHR9XG5cdH0pXG5cdHJldHVybiBkYXRhXG59XG5cbnZhciBudW1iZXIgPSAvLT9bMC05XSpcXC4/WzAtOV0rKD86ZVstK10/XFxkKyk/L2lnXG5cbmZ1bmN0aW9uIHBhcnNlVmFsdWVzKGFyZ3MpIHtcblx0dmFyIG51bWJlcnMgPSBhcmdzLm1hdGNoKG51bWJlcilcblx0cmV0dXJuIG51bWJlcnMgPyBudW1iZXJzLm1hcChOdW1iZXIpIDogW11cbn1cbiIsIid1c2Ugc3RyaWN0JztcclxuXHJcbnZhciB3aWR0aCA9IDI1NjsvLyBlYWNoIFJDNCBvdXRwdXQgaXMgMCA8PSB4IDwgMjU2XHJcbnZhciBjaHVua3MgPSA2Oy8vIGF0IGxlYXN0IHNpeCBSQzQgb3V0cHV0cyBmb3IgZWFjaCBkb3VibGVcclxudmFyIGRpZ2l0cyA9IDUyOy8vIHRoZXJlIGFyZSA1MiBzaWduaWZpY2FudCBkaWdpdHMgaW4gYSBkb3VibGVcclxudmFyIHBvb2wgPSBbXTsvLyBwb29sOiBlbnRyb3B5IHBvb2wgc3RhcnRzIGVtcHR5XHJcbnZhciBHTE9CQUwgPSB0eXBlb2YgZ2xvYmFsID09PSAndW5kZWZpbmVkJyA/IHdpbmRvdyA6IGdsb2JhbDtcclxuXHJcbi8vXHJcbi8vIFRoZSBmb2xsb3dpbmcgY29uc3RhbnRzIGFyZSByZWxhdGVkIHRvIElFRUUgNzU0IGxpbWl0cy5cclxuLy9cclxudmFyIHN0YXJ0ZGVub20gPSBNYXRoLnBvdyh3aWR0aCwgY2h1bmtzKSxcclxuICAgIHNpZ25pZmljYW5jZSA9IE1hdGgucG93KDIsIGRpZ2l0cyksXHJcbiAgICBvdmVyZmxvdyA9IHNpZ25pZmljYW5jZSAqIDIsXHJcbiAgICBtYXNrID0gd2lkdGggLSAxO1xyXG5cclxuXHJcbnZhciBvbGRSYW5kb20gPSBNYXRoLnJhbmRvbTtcclxuXHJcbi8vXHJcbi8vIHNlZWRyYW5kb20oKVxyXG4vLyBUaGlzIGlzIHRoZSBzZWVkcmFuZG9tIGZ1bmN0aW9uIGRlc2NyaWJlZCBhYm92ZS5cclxuLy9cclxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihzZWVkLCBvcHRpb25zKSB7XHJcbiAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5nbG9iYWwgPT09IHRydWUpIHtcclxuICAgIG9wdGlvbnMuZ2xvYmFsID0gZmFsc2U7XHJcbiAgICBNYXRoLnJhbmRvbSA9IG1vZHVsZS5leHBvcnRzKHNlZWQsIG9wdGlvbnMpO1xyXG4gICAgb3B0aW9ucy5nbG9iYWwgPSB0cnVlO1xyXG4gICAgcmV0dXJuIE1hdGgucmFuZG9tO1xyXG4gIH1cclxuICB2YXIgdXNlX2VudHJvcHkgPSAob3B0aW9ucyAmJiBvcHRpb25zLmVudHJvcHkpIHx8IGZhbHNlO1xyXG4gIHZhciBrZXkgPSBbXTtcclxuXHJcbiAgLy8gRmxhdHRlbiB0aGUgc2VlZCBzdHJpbmcgb3IgYnVpbGQgb25lIGZyb20gbG9jYWwgZW50cm9weSBpZiBuZWVkZWQuXHJcbiAgdmFyIHNob3J0c2VlZCA9IG1peGtleShmbGF0dGVuKFxyXG4gICAgdXNlX2VudHJvcHkgPyBbc2VlZCwgdG9zdHJpbmcocG9vbCldIDpcclxuICAgIDAgaW4gYXJndW1lbnRzID8gc2VlZCA6IGF1dG9zZWVkKCksIDMpLCBrZXkpO1xyXG5cclxuICAvLyBVc2UgdGhlIHNlZWQgdG8gaW5pdGlhbGl6ZSBhbiBBUkM0IGdlbmVyYXRvci5cclxuICB2YXIgYXJjNCA9IG5ldyBBUkM0KGtleSk7XHJcblxyXG4gIC8vIE1peCB0aGUgcmFuZG9tbmVzcyBpbnRvIGFjY3VtdWxhdGVkIGVudHJvcHkuXHJcbiAgbWl4a2V5KHRvc3RyaW5nKGFyYzQuUyksIHBvb2wpO1xyXG5cclxuICAvLyBPdmVycmlkZSBNYXRoLnJhbmRvbVxyXG5cclxuICAvLyBUaGlzIGZ1bmN0aW9uIHJldHVybnMgYSByYW5kb20gZG91YmxlIGluIFswLCAxKSB0aGF0IGNvbnRhaW5zXHJcbiAgLy8gcmFuZG9tbmVzcyBpbiBldmVyeSBiaXQgb2YgdGhlIG1hbnRpc3NhIG9mIHRoZSBJRUVFIDc1NCB2YWx1ZS5cclxuXHJcbiAgcmV0dXJuIGZ1bmN0aW9uKCkgeyAgICAgICAgIC8vIENsb3N1cmUgdG8gcmV0dXJuIGEgcmFuZG9tIGRvdWJsZTpcclxuICAgIHZhciBuID0gYXJjNC5nKGNodW5rcyksICAgICAgICAgICAgIC8vIFN0YXJ0IHdpdGggYSBudW1lcmF0b3IgbiA8IDIgXiA0OFxyXG4gICAgICAgIGQgPSBzdGFydGRlbm9tLCAgICAgICAgICAgICAgICAgLy8gICBhbmQgZGVub21pbmF0b3IgZCA9IDIgXiA0OC5cclxuICAgICAgICB4ID0gMDsgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgYW5kIG5vICdleHRyYSBsYXN0IGJ5dGUnLlxyXG4gICAgd2hpbGUgKG4gPCBzaWduaWZpY2FuY2UpIHsgICAgICAgICAgLy8gRmlsbCB1cCBhbGwgc2lnbmlmaWNhbnQgZGlnaXRzIGJ5XHJcbiAgICAgIG4gPSAobiArIHgpICogd2lkdGg7ICAgICAgICAgICAgICAvLyAgIHNoaWZ0aW5nIG51bWVyYXRvciBhbmRcclxuICAgICAgZCAqPSB3aWR0aDsgICAgICAgICAgICAgICAgICAgICAgIC8vICAgZGVub21pbmF0b3IgYW5kIGdlbmVyYXRpbmcgYVxyXG4gICAgICB4ID0gYXJjNC5nKDEpOyAgICAgICAgICAgICAgICAgICAgLy8gICBuZXcgbGVhc3Qtc2lnbmlmaWNhbnQtYnl0ZS5cclxuICAgIH1cclxuICAgIHdoaWxlIChuID49IG92ZXJmbG93KSB7ICAgICAgICAgICAgIC8vIFRvIGF2b2lkIHJvdW5kaW5nIHVwLCBiZWZvcmUgYWRkaW5nXHJcbiAgICAgIG4gLz0gMjsgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIGxhc3QgYnl0ZSwgc2hpZnQgZXZlcnl0aGluZ1xyXG4gICAgICBkIC89IDI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICByaWdodCB1c2luZyBpbnRlZ2VyIE1hdGggdW50aWxcclxuICAgICAgeCA+Pj49IDE7ICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgd2UgaGF2ZSBleGFjdGx5IHRoZSBkZXNpcmVkIGJpdHMuXHJcbiAgICB9XHJcbiAgICByZXR1cm4gKG4gKyB4KSAvIGQ7ICAgICAgICAgICAgICAgICAvLyBGb3JtIHRoZSBudW1iZXIgd2l0aGluIFswLCAxKS5cclxuICB9O1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMucmVzZXRHbG9iYWwgPSBmdW5jdGlvbiAoKSB7XHJcbiAgTWF0aC5yYW5kb20gPSBvbGRSYW5kb207XHJcbn07XHJcblxyXG4vL1xyXG4vLyBBUkM0XHJcbi8vXHJcbi8vIEFuIEFSQzQgaW1wbGVtZW50YXRpb24uICBUaGUgY29uc3RydWN0b3IgdGFrZXMgYSBrZXkgaW4gdGhlIGZvcm0gb2ZcclxuLy8gYW4gYXJyYXkgb2YgYXQgbW9zdCAod2lkdGgpIGludGVnZXJzIHRoYXQgc2hvdWxkIGJlIDAgPD0geCA8ICh3aWR0aCkuXHJcbi8vXHJcbi8vIFRoZSBnKGNvdW50KSBtZXRob2QgcmV0dXJucyBhIHBzZXVkb3JhbmRvbSBpbnRlZ2VyIHRoYXQgY29uY2F0ZW5hdGVzXHJcbi8vIHRoZSBuZXh0IChjb3VudCkgb3V0cHV0cyBmcm9tIEFSQzQuICBJdHMgcmV0dXJuIHZhbHVlIGlzIGEgbnVtYmVyIHhcclxuLy8gdGhhdCBpcyBpbiB0aGUgcmFuZ2UgMCA8PSB4IDwgKHdpZHRoIF4gY291bnQpLlxyXG4vL1xyXG4vKiogQGNvbnN0cnVjdG9yICovXHJcbmZ1bmN0aW9uIEFSQzQoa2V5KSB7XHJcbiAgdmFyIHQsIGtleWxlbiA9IGtleS5sZW5ndGgsXHJcbiAgICAgIG1lID0gdGhpcywgaSA9IDAsIGogPSBtZS5pID0gbWUuaiA9IDAsIHMgPSBtZS5TID0gW107XHJcblxyXG4gIC8vIFRoZSBlbXB0eSBrZXkgW10gaXMgdHJlYXRlZCBhcyBbMF0uXHJcbiAgaWYgKCFrZXlsZW4pIHsga2V5ID0gW2tleWxlbisrXTsgfVxyXG5cclxuICAvLyBTZXQgdXAgUyB1c2luZyB0aGUgc3RhbmRhcmQga2V5IHNjaGVkdWxpbmcgYWxnb3JpdGhtLlxyXG4gIHdoaWxlIChpIDwgd2lkdGgpIHtcclxuICAgIHNbaV0gPSBpKys7XHJcbiAgfVxyXG4gIGZvciAoaSA9IDA7IGkgPCB3aWR0aDsgaSsrKSB7XHJcbiAgICBzW2ldID0gc1tqID0gbWFzayAmIChqICsga2V5W2kgJSBrZXlsZW5dICsgKHQgPSBzW2ldKSldO1xyXG4gICAgc1tqXSA9IHQ7XHJcbiAgfVxyXG5cclxuICAvLyBUaGUgXCJnXCIgbWV0aG9kIHJldHVybnMgdGhlIG5leHQgKGNvdW50KSBvdXRwdXRzIGFzIG9uZSBudW1iZXIuXHJcbiAgKG1lLmcgPSBmdW5jdGlvbihjb3VudCkge1xyXG4gICAgLy8gVXNpbmcgaW5zdGFuY2UgbWVtYmVycyBpbnN0ZWFkIG9mIGNsb3N1cmUgc3RhdGUgbmVhcmx5IGRvdWJsZXMgc3BlZWQuXHJcbiAgICB2YXIgdCwgciA9IDAsXHJcbiAgICAgICAgaSA9IG1lLmksIGogPSBtZS5qLCBzID0gbWUuUztcclxuICAgIHdoaWxlIChjb3VudC0tKSB7XHJcbiAgICAgIHQgPSBzW2kgPSBtYXNrICYgKGkgKyAxKV07XHJcbiAgICAgIHIgPSByICogd2lkdGggKyBzW21hc2sgJiAoKHNbaV0gPSBzW2ogPSBtYXNrICYgKGogKyB0KV0pICsgKHNbal0gPSB0KSldO1xyXG4gICAgfVxyXG4gICAgbWUuaSA9IGk7IG1lLmogPSBqO1xyXG4gICAgcmV0dXJuIHI7XHJcbiAgICAvLyBGb3Igcm9idXN0IHVucHJlZGljdGFiaWxpdHkgZGlzY2FyZCBhbiBpbml0aWFsIGJhdGNoIG9mIHZhbHVlcy5cclxuICAgIC8vIFNlZSBodHRwOi8vd3d3LnJzYS5jb20vcnNhbGFicy9ub2RlLmFzcD9pZD0yMDA5XHJcbiAgfSkod2lkdGgpO1xyXG59XHJcblxyXG4vL1xyXG4vLyBmbGF0dGVuKClcclxuLy8gQ29udmVydHMgYW4gb2JqZWN0IHRyZWUgdG8gbmVzdGVkIGFycmF5cyBvZiBzdHJpbmdzLlxyXG4vL1xyXG5mdW5jdGlvbiBmbGF0dGVuKG9iaiwgZGVwdGgpIHtcclxuICB2YXIgcmVzdWx0ID0gW10sIHR5cCA9ICh0eXBlb2Ygb2JqKVswXSwgcHJvcDtcclxuICBpZiAoZGVwdGggJiYgdHlwID09ICdvJykge1xyXG4gICAgZm9yIChwcm9wIGluIG9iaikge1xyXG4gICAgICB0cnkgeyByZXN1bHQucHVzaChmbGF0dGVuKG9ialtwcm9wXSwgZGVwdGggLSAxKSk7IH0gY2F0Y2ggKGUpIHt9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiAocmVzdWx0Lmxlbmd0aCA/IHJlc3VsdCA6IHR5cCA9PSAncycgPyBvYmogOiBvYmogKyAnXFwwJyk7XHJcbn1cclxuXHJcbi8vXHJcbi8vIG1peGtleSgpXHJcbi8vIE1peGVzIGEgc3RyaW5nIHNlZWQgaW50byBhIGtleSB0aGF0IGlzIGFuIGFycmF5IG9mIGludGVnZXJzLCBhbmRcclxuLy8gcmV0dXJucyBhIHNob3J0ZW5lZCBzdHJpbmcgc2VlZCB0aGF0IGlzIGVxdWl2YWxlbnQgdG8gdGhlIHJlc3VsdCBrZXkuXHJcbi8vXHJcbmZ1bmN0aW9uIG1peGtleShzZWVkLCBrZXkpIHtcclxuICB2YXIgc3RyaW5nc2VlZCA9IHNlZWQgKyAnJywgc21lYXIsIGogPSAwO1xyXG4gIHdoaWxlIChqIDwgc3RyaW5nc2VlZC5sZW5ndGgpIHtcclxuICAgIGtleVttYXNrICYgal0gPVxyXG4gICAgICBtYXNrICYgKChzbWVhciBePSBrZXlbbWFzayAmIGpdICogMTkpICsgc3RyaW5nc2VlZC5jaGFyQ29kZUF0KGorKykpO1xyXG4gIH1cclxuICByZXR1cm4gdG9zdHJpbmcoa2V5KTtcclxufVxyXG5cclxuLy9cclxuLy8gYXV0b3NlZWQoKVxyXG4vLyBSZXR1cm5zIGFuIG9iamVjdCBmb3IgYXV0b3NlZWRpbmcsIHVzaW5nIHdpbmRvdy5jcnlwdG8gaWYgYXZhaWxhYmxlLlxyXG4vL1xyXG4vKiogQHBhcmFtIHtVaW50OEFycmF5PX0gc2VlZCAqL1xyXG5mdW5jdGlvbiBhdXRvc2VlZChzZWVkKSB7XHJcbiAgdHJ5IHtcclxuICAgIEdMT0JBTC5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKHNlZWQgPSBuZXcgVWludDhBcnJheSh3aWR0aCkpO1xyXG4gICAgcmV0dXJuIHRvc3RyaW5nKHNlZWQpO1xyXG4gIH0gY2F0Y2ggKGUpIHtcclxuICAgIHJldHVybiBbK25ldyBEYXRlLCBHTE9CQUwsIEdMT0JBTC5uYXZpZ2F0b3IgJiYgR0xPQkFMLm5hdmlnYXRvci5wbHVnaW5zLFxyXG4gICAgICAgICAgICBHTE9CQUwuc2NyZWVuLCB0b3N0cmluZyhwb29sKV07XHJcbiAgfVxyXG59XHJcblxyXG4vL1xyXG4vLyB0b3N0cmluZygpXHJcbi8vIENvbnZlcnRzIGFuIGFycmF5IG9mIGNoYXJjb2RlcyB0byBhIHN0cmluZ1xyXG4vL1xyXG5mdW5jdGlvbiB0b3N0cmluZyhhKSB7XHJcbiAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoMCwgYSk7XHJcbn1cclxuXHJcbi8vXHJcbi8vIFdoZW4gc2VlZHJhbmRvbS5qcyBpcyBsb2FkZWQsIHdlIGltbWVkaWF0ZWx5IG1peCBhIGZldyBiaXRzXHJcbi8vIGZyb20gdGhlIGJ1aWx0LWluIFJORyBpbnRvIHRoZSBlbnRyb3B5IHBvb2wuICBCZWNhdXNlIHdlIGRvXHJcbi8vIG5vdCB3YW50IHRvIGludGVmZXJlIHdpdGggZGV0ZXJtaW5zdGljIFBSTkcgc3RhdGUgbGF0ZXIsXHJcbi8vIHNlZWRyYW5kb20gd2lsbCBub3QgY2FsbCBNYXRoLnJhbmRvbSBvbiBpdHMgb3duIGFnYWluIGFmdGVyXHJcbi8vIGluaXRpYWxpemF0aW9uLlxyXG4vL1xyXG5taXhrZXkoTWF0aC5yYW5kb20oKSwgcG9vbCk7XHJcbiIsIi8qXG4gKiBBIGZhc3QgamF2YXNjcmlwdCBpbXBsZW1lbnRhdGlvbiBvZiBzaW1wbGV4IG5vaXNlIGJ5IEpvbmFzIFdhZ25lclxuXG5CYXNlZCBvbiBhIHNwZWVkLWltcHJvdmVkIHNpbXBsZXggbm9pc2UgYWxnb3JpdGhtIGZvciAyRCwgM0QgYW5kIDREIGluIEphdmEuXG5XaGljaCBpcyBiYXNlZCBvbiBleGFtcGxlIGNvZGUgYnkgU3RlZmFuIEd1c3RhdnNvbiAoc3RlZ3VAaXRuLmxpdS5zZSkuXG5XaXRoIE9wdGltaXNhdGlvbnMgYnkgUGV0ZXIgRWFzdG1hbiAocGVhc3RtYW5AZHJpenpsZS5zdGFuZm9yZC5lZHUpLlxuQmV0dGVyIHJhbmsgb3JkZXJpbmcgbWV0aG9kIGJ5IFN0ZWZhbiBHdXN0YXZzb24gaW4gMjAxMi5cblxuXG4gQ29weXJpZ2h0IChjKSAyMDE4IEpvbmFzIFdhZ25lclxuXG4gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG5cbiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbiBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuXG4gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFXG4gU09GVFdBUkUuXG4gKi9cbihmdW5jdGlvbigpIHtcbiAgJ3VzZSBzdHJpY3QnO1xuXG4gIHZhciBGMiA9IDAuNSAqIChNYXRoLnNxcnQoMy4wKSAtIDEuMCk7XG4gIHZhciBHMiA9ICgzLjAgLSBNYXRoLnNxcnQoMy4wKSkgLyA2LjA7XG4gIHZhciBGMyA9IDEuMCAvIDMuMDtcbiAgdmFyIEczID0gMS4wIC8gNi4wO1xuICB2YXIgRjQgPSAoTWF0aC5zcXJ0KDUuMCkgLSAxLjApIC8gNC4wO1xuICB2YXIgRzQgPSAoNS4wIC0gTWF0aC5zcXJ0KDUuMCkpIC8gMjAuMDtcblxuICBmdW5jdGlvbiBTaW1wbGV4Tm9pc2UocmFuZG9tT3JTZWVkKSB7XG4gICAgdmFyIHJhbmRvbTtcbiAgICBpZiAodHlwZW9mIHJhbmRvbU9yU2VlZCA9PSAnZnVuY3Rpb24nKSB7XG4gICAgICByYW5kb20gPSByYW5kb21PclNlZWQ7XG4gICAgfVxuICAgIGVsc2UgaWYgKHJhbmRvbU9yU2VlZCkge1xuICAgICAgcmFuZG9tID0gYWxlYShyYW5kb21PclNlZWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByYW5kb20gPSBNYXRoLnJhbmRvbTtcbiAgICB9XG4gICAgdGhpcy5wID0gYnVpbGRQZXJtdXRhdGlvblRhYmxlKHJhbmRvbSk7XG4gICAgdGhpcy5wZXJtID0gbmV3IFVpbnQ4QXJyYXkoNTEyKTtcbiAgICB0aGlzLnBlcm1Nb2QxMiA9IG5ldyBVaW50OEFycmF5KDUxMik7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCA1MTI7IGkrKykge1xuICAgICAgdGhpcy5wZXJtW2ldID0gdGhpcy5wW2kgJiAyNTVdO1xuICAgICAgdGhpcy5wZXJtTW9kMTJbaV0gPSB0aGlzLnBlcm1baV0gJSAxMjtcbiAgICB9XG5cbiAgfVxuICBTaW1wbGV4Tm9pc2UucHJvdG90eXBlID0ge1xuICAgIGdyYWQzOiBuZXcgRmxvYXQzMkFycmF5KFsxLCAxLCAwLFxuICAgICAgLTEsIDEsIDAsXG4gICAgICAxLCAtMSwgMCxcblxuICAgICAgLTEsIC0xLCAwLFxuICAgICAgMSwgMCwgMSxcbiAgICAgIC0xLCAwLCAxLFxuXG4gICAgICAxLCAwLCAtMSxcbiAgICAgIC0xLCAwLCAtMSxcbiAgICAgIDAsIDEsIDEsXG5cbiAgICAgIDAsIC0xLCAxLFxuICAgICAgMCwgMSwgLTEsXG4gICAgICAwLCAtMSwgLTFdKSxcbiAgICBncmFkNDogbmV3IEZsb2F0MzJBcnJheShbMCwgMSwgMSwgMSwgMCwgMSwgMSwgLTEsIDAsIDEsIC0xLCAxLCAwLCAxLCAtMSwgLTEsXG4gICAgICAwLCAtMSwgMSwgMSwgMCwgLTEsIDEsIC0xLCAwLCAtMSwgLTEsIDEsIDAsIC0xLCAtMSwgLTEsXG4gICAgICAxLCAwLCAxLCAxLCAxLCAwLCAxLCAtMSwgMSwgMCwgLTEsIDEsIDEsIDAsIC0xLCAtMSxcbiAgICAgIC0xLCAwLCAxLCAxLCAtMSwgMCwgMSwgLTEsIC0xLCAwLCAtMSwgMSwgLTEsIDAsIC0xLCAtMSxcbiAgICAgIDEsIDEsIDAsIDEsIDEsIDEsIDAsIC0xLCAxLCAtMSwgMCwgMSwgMSwgLTEsIDAsIC0xLFxuICAgICAgLTEsIDEsIDAsIDEsIC0xLCAxLCAwLCAtMSwgLTEsIC0xLCAwLCAxLCAtMSwgLTEsIDAsIC0xLFxuICAgICAgMSwgMSwgMSwgMCwgMSwgMSwgLTEsIDAsIDEsIC0xLCAxLCAwLCAxLCAtMSwgLTEsIDAsXG4gICAgICAtMSwgMSwgMSwgMCwgLTEsIDEsIC0xLCAwLCAtMSwgLTEsIDEsIDAsIC0xLCAtMSwgLTEsIDBdKSxcbiAgICBub2lzZTJEOiBmdW5jdGlvbih4aW4sIHlpbikge1xuICAgICAgdmFyIHBlcm1Nb2QxMiA9IHRoaXMucGVybU1vZDEyO1xuICAgICAgdmFyIHBlcm0gPSB0aGlzLnBlcm07XG4gICAgICB2YXIgZ3JhZDMgPSB0aGlzLmdyYWQzO1xuICAgICAgdmFyIG4wID0gMDsgLy8gTm9pc2UgY29udHJpYnV0aW9ucyBmcm9tIHRoZSB0aHJlZSBjb3JuZXJzXG4gICAgICB2YXIgbjEgPSAwO1xuICAgICAgdmFyIG4yID0gMDtcbiAgICAgIC8vIFNrZXcgdGhlIGlucHV0IHNwYWNlIHRvIGRldGVybWluZSB3aGljaCBzaW1wbGV4IGNlbGwgd2UncmUgaW5cbiAgICAgIHZhciBzID0gKHhpbiArIHlpbikgKiBGMjsgLy8gSGFpcnkgZmFjdG9yIGZvciAyRFxuICAgICAgdmFyIGkgPSBNYXRoLmZsb29yKHhpbiArIHMpO1xuICAgICAgdmFyIGogPSBNYXRoLmZsb29yKHlpbiArIHMpO1xuICAgICAgdmFyIHQgPSAoaSArIGopICogRzI7XG4gICAgICB2YXIgWDAgPSBpIC0gdDsgLy8gVW5za2V3IHRoZSBjZWxsIG9yaWdpbiBiYWNrIHRvICh4LHkpIHNwYWNlXG4gICAgICB2YXIgWTAgPSBqIC0gdDtcbiAgICAgIHZhciB4MCA9IHhpbiAtIFgwOyAvLyBUaGUgeCx5IGRpc3RhbmNlcyBmcm9tIHRoZSBjZWxsIG9yaWdpblxuICAgICAgdmFyIHkwID0geWluIC0gWTA7XG4gICAgICAvLyBGb3IgdGhlIDJEIGNhc2UsIHRoZSBzaW1wbGV4IHNoYXBlIGlzIGFuIGVxdWlsYXRlcmFsIHRyaWFuZ2xlLlxuICAgICAgLy8gRGV0ZXJtaW5lIHdoaWNoIHNpbXBsZXggd2UgYXJlIGluLlxuICAgICAgdmFyIGkxLCBqMTsgLy8gT2Zmc2V0cyBmb3Igc2Vjb25kIChtaWRkbGUpIGNvcm5lciBvZiBzaW1wbGV4IGluIChpLGopIGNvb3Jkc1xuICAgICAgaWYgKHgwID4geTApIHtcbiAgICAgICAgaTEgPSAxO1xuICAgICAgICBqMSA9IDA7XG4gICAgICB9IC8vIGxvd2VyIHRyaWFuZ2xlLCBYWSBvcmRlcjogKDAsMCktPigxLDApLT4oMSwxKVxuICAgICAgZWxzZSB7XG4gICAgICAgIGkxID0gMDtcbiAgICAgICAgajEgPSAxO1xuICAgICAgfSAvLyB1cHBlciB0cmlhbmdsZSwgWVggb3JkZXI6ICgwLDApLT4oMCwxKS0+KDEsMSlcbiAgICAgIC8vIEEgc3RlcCBvZiAoMSwwKSBpbiAoaSxqKSBtZWFucyBhIHN0ZXAgb2YgKDEtYywtYykgaW4gKHgseSksIGFuZFxuICAgICAgLy8gYSBzdGVwIG9mICgwLDEpIGluIChpLGopIG1lYW5zIGEgc3RlcCBvZiAoLWMsMS1jKSBpbiAoeCx5KSwgd2hlcmVcbiAgICAgIC8vIGMgPSAoMy1zcXJ0KDMpKS82XG4gICAgICB2YXIgeDEgPSB4MCAtIGkxICsgRzI7IC8vIE9mZnNldHMgZm9yIG1pZGRsZSBjb3JuZXIgaW4gKHgseSkgdW5za2V3ZWQgY29vcmRzXG4gICAgICB2YXIgeTEgPSB5MCAtIGoxICsgRzI7XG4gICAgICB2YXIgeDIgPSB4MCAtIDEuMCArIDIuMCAqIEcyOyAvLyBPZmZzZXRzIGZvciBsYXN0IGNvcm5lciBpbiAoeCx5KSB1bnNrZXdlZCBjb29yZHNcbiAgICAgIHZhciB5MiA9IHkwIC0gMS4wICsgMi4wICogRzI7XG4gICAgICAvLyBXb3JrIG91dCB0aGUgaGFzaGVkIGdyYWRpZW50IGluZGljZXMgb2YgdGhlIHRocmVlIHNpbXBsZXggY29ybmVyc1xuICAgICAgdmFyIGlpID0gaSAmIDI1NTtcbiAgICAgIHZhciBqaiA9IGogJiAyNTU7XG4gICAgICAvLyBDYWxjdWxhdGUgdGhlIGNvbnRyaWJ1dGlvbiBmcm9tIHRoZSB0aHJlZSBjb3JuZXJzXG4gICAgICB2YXIgdDAgPSAwLjUgLSB4MCAqIHgwIC0geTAgKiB5MDtcbiAgICAgIGlmICh0MCA+PSAwKSB7XG4gICAgICAgIHZhciBnaTAgPSBwZXJtTW9kMTJbaWkgKyBwZXJtW2pqXV0gKiAzO1xuICAgICAgICB0MCAqPSB0MDtcbiAgICAgICAgbjAgPSB0MCAqIHQwICogKGdyYWQzW2dpMF0gKiB4MCArIGdyYWQzW2dpMCArIDFdICogeTApOyAvLyAoeCx5KSBvZiBncmFkMyB1c2VkIGZvciAyRCBncmFkaWVudFxuICAgICAgfVxuICAgICAgdmFyIHQxID0gMC41IC0geDEgKiB4MSAtIHkxICogeTE7XG4gICAgICBpZiAodDEgPj0gMCkge1xuICAgICAgICB2YXIgZ2kxID0gcGVybU1vZDEyW2lpICsgaTEgKyBwZXJtW2pqICsgajFdXSAqIDM7XG4gICAgICAgIHQxICo9IHQxO1xuICAgICAgICBuMSA9IHQxICogdDEgKiAoZ3JhZDNbZ2kxXSAqIHgxICsgZ3JhZDNbZ2kxICsgMV0gKiB5MSk7XG4gICAgICB9XG4gICAgICB2YXIgdDIgPSAwLjUgLSB4MiAqIHgyIC0geTIgKiB5MjtcbiAgICAgIGlmICh0MiA+PSAwKSB7XG4gICAgICAgIHZhciBnaTIgPSBwZXJtTW9kMTJbaWkgKyAxICsgcGVybVtqaiArIDFdXSAqIDM7XG4gICAgICAgIHQyICo9IHQyO1xuICAgICAgICBuMiA9IHQyICogdDIgKiAoZ3JhZDNbZ2kyXSAqIHgyICsgZ3JhZDNbZ2kyICsgMV0gKiB5Mik7XG4gICAgICB9XG4gICAgICAvLyBBZGQgY29udHJpYnV0aW9ucyBmcm9tIGVhY2ggY29ybmVyIHRvIGdldCB0aGUgZmluYWwgbm9pc2UgdmFsdWUuXG4gICAgICAvLyBUaGUgcmVzdWx0IGlzIHNjYWxlZCB0byByZXR1cm4gdmFsdWVzIGluIHRoZSBpbnRlcnZhbCBbLTEsMV0uXG4gICAgICByZXR1cm4gNzAuMCAqIChuMCArIG4xICsgbjIpO1xuICAgIH0sXG4gICAgLy8gM0Qgc2ltcGxleCBub2lzZVxuICAgIG5vaXNlM0Q6IGZ1bmN0aW9uKHhpbiwgeWluLCB6aW4pIHtcbiAgICAgIHZhciBwZXJtTW9kMTIgPSB0aGlzLnBlcm1Nb2QxMjtcbiAgICAgIHZhciBwZXJtID0gdGhpcy5wZXJtO1xuICAgICAgdmFyIGdyYWQzID0gdGhpcy5ncmFkMztcbiAgICAgIHZhciBuMCwgbjEsIG4yLCBuMzsgLy8gTm9pc2UgY29udHJpYnV0aW9ucyBmcm9tIHRoZSBmb3VyIGNvcm5lcnNcbiAgICAgIC8vIFNrZXcgdGhlIGlucHV0IHNwYWNlIHRvIGRldGVybWluZSB3aGljaCBzaW1wbGV4IGNlbGwgd2UncmUgaW5cbiAgICAgIHZhciBzID0gKHhpbiArIHlpbiArIHppbikgKiBGMzsgLy8gVmVyeSBuaWNlIGFuZCBzaW1wbGUgc2tldyBmYWN0b3IgZm9yIDNEXG4gICAgICB2YXIgaSA9IE1hdGguZmxvb3IoeGluICsgcyk7XG4gICAgICB2YXIgaiA9IE1hdGguZmxvb3IoeWluICsgcyk7XG4gICAgICB2YXIgayA9IE1hdGguZmxvb3IoemluICsgcyk7XG4gICAgICB2YXIgdCA9IChpICsgaiArIGspICogRzM7XG4gICAgICB2YXIgWDAgPSBpIC0gdDsgLy8gVW5za2V3IHRoZSBjZWxsIG9yaWdpbiBiYWNrIHRvICh4LHkseikgc3BhY2VcbiAgICAgIHZhciBZMCA9IGogLSB0O1xuICAgICAgdmFyIFowID0gayAtIHQ7XG4gICAgICB2YXIgeDAgPSB4aW4gLSBYMDsgLy8gVGhlIHgseSx6IGRpc3RhbmNlcyBmcm9tIHRoZSBjZWxsIG9yaWdpblxuICAgICAgdmFyIHkwID0geWluIC0gWTA7XG4gICAgICB2YXIgejAgPSB6aW4gLSBaMDtcbiAgICAgIC8vIEZvciB0aGUgM0QgY2FzZSwgdGhlIHNpbXBsZXggc2hhcGUgaXMgYSBzbGlnaHRseSBpcnJlZ3VsYXIgdGV0cmFoZWRyb24uXG4gICAgICAvLyBEZXRlcm1pbmUgd2hpY2ggc2ltcGxleCB3ZSBhcmUgaW4uXG4gICAgICB2YXIgaTEsIGoxLCBrMTsgLy8gT2Zmc2V0cyBmb3Igc2Vjb25kIGNvcm5lciBvZiBzaW1wbGV4IGluIChpLGosaykgY29vcmRzXG4gICAgICB2YXIgaTIsIGoyLCBrMjsgLy8gT2Zmc2V0cyBmb3IgdGhpcmQgY29ybmVyIG9mIHNpbXBsZXggaW4gKGksaixrKSBjb29yZHNcbiAgICAgIGlmICh4MCA+PSB5MCkge1xuICAgICAgICBpZiAoeTAgPj0gejApIHtcbiAgICAgICAgICBpMSA9IDE7XG4gICAgICAgICAgajEgPSAwO1xuICAgICAgICAgIGsxID0gMDtcbiAgICAgICAgICBpMiA9IDE7XG4gICAgICAgICAgajIgPSAxO1xuICAgICAgICAgIGsyID0gMDtcbiAgICAgICAgfSAvLyBYIFkgWiBvcmRlclxuICAgICAgICBlbHNlIGlmICh4MCA+PSB6MCkge1xuICAgICAgICAgIGkxID0gMTtcbiAgICAgICAgICBqMSA9IDA7XG4gICAgICAgICAgazEgPSAwO1xuICAgICAgICAgIGkyID0gMTtcbiAgICAgICAgICBqMiA9IDA7XG4gICAgICAgICAgazIgPSAxO1xuICAgICAgICB9IC8vIFggWiBZIG9yZGVyXG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGkxID0gMDtcbiAgICAgICAgICBqMSA9IDA7XG4gICAgICAgICAgazEgPSAxO1xuICAgICAgICAgIGkyID0gMTtcbiAgICAgICAgICBqMiA9IDA7XG4gICAgICAgICAgazIgPSAxO1xuICAgICAgICB9IC8vIFogWCBZIG9yZGVyXG4gICAgICB9XG4gICAgICBlbHNlIHsgLy8geDA8eTBcbiAgICAgICAgaWYgKHkwIDwgejApIHtcbiAgICAgICAgICBpMSA9IDA7XG4gICAgICAgICAgajEgPSAwO1xuICAgICAgICAgIGsxID0gMTtcbiAgICAgICAgICBpMiA9IDA7XG4gICAgICAgICAgajIgPSAxO1xuICAgICAgICAgIGsyID0gMTtcbiAgICAgICAgfSAvLyBaIFkgWCBvcmRlclxuICAgICAgICBlbHNlIGlmICh4MCA8IHowKSB7XG4gICAgICAgICAgaTEgPSAwO1xuICAgICAgICAgIGoxID0gMTtcbiAgICAgICAgICBrMSA9IDA7XG4gICAgICAgICAgaTIgPSAwO1xuICAgICAgICAgIGoyID0gMTtcbiAgICAgICAgICBrMiA9IDE7XG4gICAgICAgIH0gLy8gWSBaIFggb3JkZXJcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgaTEgPSAwO1xuICAgICAgICAgIGoxID0gMTtcbiAgICAgICAgICBrMSA9IDA7XG4gICAgICAgICAgaTIgPSAxO1xuICAgICAgICAgIGoyID0gMTtcbiAgICAgICAgICBrMiA9IDA7XG4gICAgICAgIH0gLy8gWSBYIFogb3JkZXJcbiAgICAgIH1cbiAgICAgIC8vIEEgc3RlcCBvZiAoMSwwLDApIGluIChpLGosaykgbWVhbnMgYSBzdGVwIG9mICgxLWMsLWMsLWMpIGluICh4LHkseiksXG4gICAgICAvLyBhIHN0ZXAgb2YgKDAsMSwwKSBpbiAoaSxqLGspIG1lYW5zIGEgc3RlcCBvZiAoLWMsMS1jLC1jKSBpbiAoeCx5LHopLCBhbmRcbiAgICAgIC8vIGEgc3RlcCBvZiAoMCwwLDEpIGluIChpLGosaykgbWVhbnMgYSBzdGVwIG9mICgtYywtYywxLWMpIGluICh4LHkseiksIHdoZXJlXG4gICAgICAvLyBjID0gMS82LlxuICAgICAgdmFyIHgxID0geDAgLSBpMSArIEczOyAvLyBPZmZzZXRzIGZvciBzZWNvbmQgY29ybmVyIGluICh4LHkseikgY29vcmRzXG4gICAgICB2YXIgeTEgPSB5MCAtIGoxICsgRzM7XG4gICAgICB2YXIgejEgPSB6MCAtIGsxICsgRzM7XG4gICAgICB2YXIgeDIgPSB4MCAtIGkyICsgMi4wICogRzM7IC8vIE9mZnNldHMgZm9yIHRoaXJkIGNvcm5lciBpbiAoeCx5LHopIGNvb3Jkc1xuICAgICAgdmFyIHkyID0geTAgLSBqMiArIDIuMCAqIEczO1xuICAgICAgdmFyIHoyID0gejAgLSBrMiArIDIuMCAqIEczO1xuICAgICAgdmFyIHgzID0geDAgLSAxLjAgKyAzLjAgKiBHMzsgLy8gT2Zmc2V0cyBmb3IgbGFzdCBjb3JuZXIgaW4gKHgseSx6KSBjb29yZHNcbiAgICAgIHZhciB5MyA9IHkwIC0gMS4wICsgMy4wICogRzM7XG4gICAgICB2YXIgejMgPSB6MCAtIDEuMCArIDMuMCAqIEczO1xuICAgICAgLy8gV29yayBvdXQgdGhlIGhhc2hlZCBncmFkaWVudCBpbmRpY2VzIG9mIHRoZSBmb3VyIHNpbXBsZXggY29ybmVyc1xuICAgICAgdmFyIGlpID0gaSAmIDI1NTtcbiAgICAgIHZhciBqaiA9IGogJiAyNTU7XG4gICAgICB2YXIga2sgPSBrICYgMjU1O1xuICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBjb250cmlidXRpb24gZnJvbSB0aGUgZm91ciBjb3JuZXJzXG4gICAgICB2YXIgdDAgPSAwLjYgLSB4MCAqIHgwIC0geTAgKiB5MCAtIHowICogejA7XG4gICAgICBpZiAodDAgPCAwKSBuMCA9IDAuMDtcbiAgICAgIGVsc2Uge1xuICAgICAgICB2YXIgZ2kwID0gcGVybU1vZDEyW2lpICsgcGVybVtqaiArIHBlcm1ba2tdXV0gKiAzO1xuICAgICAgICB0MCAqPSB0MDtcbiAgICAgICAgbjAgPSB0MCAqIHQwICogKGdyYWQzW2dpMF0gKiB4MCArIGdyYWQzW2dpMCArIDFdICogeTAgKyBncmFkM1tnaTAgKyAyXSAqIHowKTtcbiAgICAgIH1cbiAgICAgIHZhciB0MSA9IDAuNiAtIHgxICogeDEgLSB5MSAqIHkxIC0gejEgKiB6MTtcbiAgICAgIGlmICh0MSA8IDApIG4xID0gMC4wO1xuICAgICAgZWxzZSB7XG4gICAgICAgIHZhciBnaTEgPSBwZXJtTW9kMTJbaWkgKyBpMSArIHBlcm1bamogKyBqMSArIHBlcm1ba2sgKyBrMV1dXSAqIDM7XG4gICAgICAgIHQxICo9IHQxO1xuICAgICAgICBuMSA9IHQxICogdDEgKiAoZ3JhZDNbZ2kxXSAqIHgxICsgZ3JhZDNbZ2kxICsgMV0gKiB5MSArIGdyYWQzW2dpMSArIDJdICogejEpO1xuICAgICAgfVxuICAgICAgdmFyIHQyID0gMC42IC0geDIgKiB4MiAtIHkyICogeTIgLSB6MiAqIHoyO1xuICAgICAgaWYgKHQyIDwgMCkgbjIgPSAwLjA7XG4gICAgICBlbHNlIHtcbiAgICAgICAgdmFyIGdpMiA9IHBlcm1Nb2QxMltpaSArIGkyICsgcGVybVtqaiArIGoyICsgcGVybVtrayArIGsyXV1dICogMztcbiAgICAgICAgdDIgKj0gdDI7XG4gICAgICAgIG4yID0gdDIgKiB0MiAqIChncmFkM1tnaTJdICogeDIgKyBncmFkM1tnaTIgKyAxXSAqIHkyICsgZ3JhZDNbZ2kyICsgMl0gKiB6Mik7XG4gICAgICB9XG4gICAgICB2YXIgdDMgPSAwLjYgLSB4MyAqIHgzIC0geTMgKiB5MyAtIHozICogejM7XG4gICAgICBpZiAodDMgPCAwKSBuMyA9IDAuMDtcbiAgICAgIGVsc2Uge1xuICAgICAgICB2YXIgZ2kzID0gcGVybU1vZDEyW2lpICsgMSArIHBlcm1bamogKyAxICsgcGVybVtrayArIDFdXV0gKiAzO1xuICAgICAgICB0MyAqPSB0MztcbiAgICAgICAgbjMgPSB0MyAqIHQzICogKGdyYWQzW2dpM10gKiB4MyArIGdyYWQzW2dpMyArIDFdICogeTMgKyBncmFkM1tnaTMgKyAyXSAqIHozKTtcbiAgICAgIH1cbiAgICAgIC8vIEFkZCBjb250cmlidXRpb25zIGZyb20gZWFjaCBjb3JuZXIgdG8gZ2V0IHRoZSBmaW5hbCBub2lzZSB2YWx1ZS5cbiAgICAgIC8vIFRoZSByZXN1bHQgaXMgc2NhbGVkIHRvIHN0YXkganVzdCBpbnNpZGUgWy0xLDFdXG4gICAgICByZXR1cm4gMzIuMCAqIChuMCArIG4xICsgbjIgKyBuMyk7XG4gICAgfSxcbiAgICAvLyA0RCBzaW1wbGV4IG5vaXNlLCBiZXR0ZXIgc2ltcGxleCByYW5rIG9yZGVyaW5nIG1ldGhvZCAyMDEyLTAzLTA5XG4gICAgbm9pc2U0RDogZnVuY3Rpb24oeCwgeSwgeiwgdykge1xuICAgICAgdmFyIHBlcm0gPSB0aGlzLnBlcm07XG4gICAgICB2YXIgZ3JhZDQgPSB0aGlzLmdyYWQ0O1xuXG4gICAgICB2YXIgbjAsIG4xLCBuMiwgbjMsIG40OyAvLyBOb2lzZSBjb250cmlidXRpb25zIGZyb20gdGhlIGZpdmUgY29ybmVyc1xuICAgICAgLy8gU2tldyB0aGUgKHgseSx6LHcpIHNwYWNlIHRvIGRldGVybWluZSB3aGljaCBjZWxsIG9mIDI0IHNpbXBsaWNlcyB3ZSdyZSBpblxuICAgICAgdmFyIHMgPSAoeCArIHkgKyB6ICsgdykgKiBGNDsgLy8gRmFjdG9yIGZvciA0RCBza2V3aW5nXG4gICAgICB2YXIgaSA9IE1hdGguZmxvb3IoeCArIHMpO1xuICAgICAgdmFyIGogPSBNYXRoLmZsb29yKHkgKyBzKTtcbiAgICAgIHZhciBrID0gTWF0aC5mbG9vcih6ICsgcyk7XG4gICAgICB2YXIgbCA9IE1hdGguZmxvb3IodyArIHMpO1xuICAgICAgdmFyIHQgPSAoaSArIGogKyBrICsgbCkgKiBHNDsgLy8gRmFjdG9yIGZvciA0RCB1bnNrZXdpbmdcbiAgICAgIHZhciBYMCA9IGkgLSB0OyAvLyBVbnNrZXcgdGhlIGNlbGwgb3JpZ2luIGJhY2sgdG8gKHgseSx6LHcpIHNwYWNlXG4gICAgICB2YXIgWTAgPSBqIC0gdDtcbiAgICAgIHZhciBaMCA9IGsgLSB0O1xuICAgICAgdmFyIFcwID0gbCAtIHQ7XG4gICAgICB2YXIgeDAgPSB4IC0gWDA7IC8vIFRoZSB4LHkseix3IGRpc3RhbmNlcyBmcm9tIHRoZSBjZWxsIG9yaWdpblxuICAgICAgdmFyIHkwID0geSAtIFkwO1xuICAgICAgdmFyIHowID0geiAtIFowO1xuICAgICAgdmFyIHcwID0gdyAtIFcwO1xuICAgICAgLy8gRm9yIHRoZSA0RCBjYXNlLCB0aGUgc2ltcGxleCBpcyBhIDREIHNoYXBlIEkgd29uJ3QgZXZlbiB0cnkgdG8gZGVzY3JpYmUuXG4gICAgICAvLyBUbyBmaW5kIG91dCB3aGljaCBvZiB0aGUgMjQgcG9zc2libGUgc2ltcGxpY2VzIHdlJ3JlIGluLCB3ZSBuZWVkIHRvXG4gICAgICAvLyBkZXRlcm1pbmUgdGhlIG1hZ25pdHVkZSBvcmRlcmluZyBvZiB4MCwgeTAsIHowIGFuZCB3MC5cbiAgICAgIC8vIFNpeCBwYWlyLXdpc2UgY29tcGFyaXNvbnMgYXJlIHBlcmZvcm1lZCBiZXR3ZWVuIGVhY2ggcG9zc2libGUgcGFpclxuICAgICAgLy8gb2YgdGhlIGZvdXIgY29vcmRpbmF0ZXMsIGFuZCB0aGUgcmVzdWx0cyBhcmUgdXNlZCB0byByYW5rIHRoZSBudW1iZXJzLlxuICAgICAgdmFyIHJhbmt4ID0gMDtcbiAgICAgIHZhciByYW5reSA9IDA7XG4gICAgICB2YXIgcmFua3ogPSAwO1xuICAgICAgdmFyIHJhbmt3ID0gMDtcbiAgICAgIGlmICh4MCA+IHkwKSByYW5reCsrO1xuICAgICAgZWxzZSByYW5reSsrO1xuICAgICAgaWYgKHgwID4gejApIHJhbmt4Kys7XG4gICAgICBlbHNlIHJhbmt6Kys7XG4gICAgICBpZiAoeDAgPiB3MCkgcmFua3grKztcbiAgICAgIGVsc2UgcmFua3crKztcbiAgICAgIGlmICh5MCA+IHowKSByYW5reSsrO1xuICAgICAgZWxzZSByYW5reisrO1xuICAgICAgaWYgKHkwID4gdzApIHJhbmt5Kys7XG4gICAgICBlbHNlIHJhbmt3Kys7XG4gICAgICBpZiAoejAgPiB3MCkgcmFua3orKztcbiAgICAgIGVsc2UgcmFua3crKztcbiAgICAgIHZhciBpMSwgajEsIGsxLCBsMTsgLy8gVGhlIGludGVnZXIgb2Zmc2V0cyBmb3IgdGhlIHNlY29uZCBzaW1wbGV4IGNvcm5lclxuICAgICAgdmFyIGkyLCBqMiwgazIsIGwyOyAvLyBUaGUgaW50ZWdlciBvZmZzZXRzIGZvciB0aGUgdGhpcmQgc2ltcGxleCBjb3JuZXJcbiAgICAgIHZhciBpMywgajMsIGszLCBsMzsgLy8gVGhlIGludGVnZXIgb2Zmc2V0cyBmb3IgdGhlIGZvdXJ0aCBzaW1wbGV4IGNvcm5lclxuICAgICAgLy8gc2ltcGxleFtjXSBpcyBhIDQtdmVjdG9yIHdpdGggdGhlIG51bWJlcnMgMCwgMSwgMiBhbmQgMyBpbiBzb21lIG9yZGVyLlxuICAgICAgLy8gTWFueSB2YWx1ZXMgb2YgYyB3aWxsIG5ldmVyIG9jY3VyLCBzaW5jZSBlLmcuIHg+eT56PncgbWFrZXMgeDx6LCB5PHcgYW5kIHg8d1xuICAgICAgLy8gaW1wb3NzaWJsZS4gT25seSB0aGUgMjQgaW5kaWNlcyB3aGljaCBoYXZlIG5vbi16ZXJvIGVudHJpZXMgbWFrZSBhbnkgc2Vuc2UuXG4gICAgICAvLyBXZSB1c2UgYSB0aHJlc2hvbGRpbmcgdG8gc2V0IHRoZSBjb29yZGluYXRlcyBpbiB0dXJuIGZyb20gdGhlIGxhcmdlc3QgbWFnbml0dWRlLlxuICAgICAgLy8gUmFuayAzIGRlbm90ZXMgdGhlIGxhcmdlc3QgY29vcmRpbmF0ZS5cbiAgICAgIGkxID0gcmFua3ggPj0gMyA/IDEgOiAwO1xuICAgICAgajEgPSByYW5reSA+PSAzID8gMSA6IDA7XG4gICAgICBrMSA9IHJhbmt6ID49IDMgPyAxIDogMDtcbiAgICAgIGwxID0gcmFua3cgPj0gMyA/IDEgOiAwO1xuICAgICAgLy8gUmFuayAyIGRlbm90ZXMgdGhlIHNlY29uZCBsYXJnZXN0IGNvb3JkaW5hdGUuXG4gICAgICBpMiA9IHJhbmt4ID49IDIgPyAxIDogMDtcbiAgICAgIGoyID0gcmFua3kgPj0gMiA/IDEgOiAwO1xuICAgICAgazIgPSByYW5reiA+PSAyID8gMSA6IDA7XG4gICAgICBsMiA9IHJhbmt3ID49IDIgPyAxIDogMDtcbiAgICAgIC8vIFJhbmsgMSBkZW5vdGVzIHRoZSBzZWNvbmQgc21hbGxlc3QgY29vcmRpbmF0ZS5cbiAgICAgIGkzID0gcmFua3ggPj0gMSA/IDEgOiAwO1xuICAgICAgajMgPSByYW5reSA+PSAxID8gMSA6IDA7XG4gICAgICBrMyA9IHJhbmt6ID49IDEgPyAxIDogMDtcbiAgICAgIGwzID0gcmFua3cgPj0gMSA/IDEgOiAwO1xuICAgICAgLy8gVGhlIGZpZnRoIGNvcm5lciBoYXMgYWxsIGNvb3JkaW5hdGUgb2Zmc2V0cyA9IDEsIHNvIG5vIG5lZWQgdG8gY29tcHV0ZSB0aGF0LlxuICAgICAgdmFyIHgxID0geDAgLSBpMSArIEc0OyAvLyBPZmZzZXRzIGZvciBzZWNvbmQgY29ybmVyIGluICh4LHkseix3KSBjb29yZHNcbiAgICAgIHZhciB5MSA9IHkwIC0gajEgKyBHNDtcbiAgICAgIHZhciB6MSA9IHowIC0gazEgKyBHNDtcbiAgICAgIHZhciB3MSA9IHcwIC0gbDEgKyBHNDtcbiAgICAgIHZhciB4MiA9IHgwIC0gaTIgKyAyLjAgKiBHNDsgLy8gT2Zmc2V0cyBmb3IgdGhpcmQgY29ybmVyIGluICh4LHkseix3KSBjb29yZHNcbiAgICAgIHZhciB5MiA9IHkwIC0gajIgKyAyLjAgKiBHNDtcbiAgICAgIHZhciB6MiA9IHowIC0gazIgKyAyLjAgKiBHNDtcbiAgICAgIHZhciB3MiA9IHcwIC0gbDIgKyAyLjAgKiBHNDtcbiAgICAgIHZhciB4MyA9IHgwIC0gaTMgKyAzLjAgKiBHNDsgLy8gT2Zmc2V0cyBmb3IgZm91cnRoIGNvcm5lciBpbiAoeCx5LHosdykgY29vcmRzXG4gICAgICB2YXIgeTMgPSB5MCAtIGozICsgMy4wICogRzQ7XG4gICAgICB2YXIgejMgPSB6MCAtIGszICsgMy4wICogRzQ7XG4gICAgICB2YXIgdzMgPSB3MCAtIGwzICsgMy4wICogRzQ7XG4gICAgICB2YXIgeDQgPSB4MCAtIDEuMCArIDQuMCAqIEc0OyAvLyBPZmZzZXRzIGZvciBsYXN0IGNvcm5lciBpbiAoeCx5LHosdykgY29vcmRzXG4gICAgICB2YXIgeTQgPSB5MCAtIDEuMCArIDQuMCAqIEc0O1xuICAgICAgdmFyIHo0ID0gejAgLSAxLjAgKyA0LjAgKiBHNDtcbiAgICAgIHZhciB3NCA9IHcwIC0gMS4wICsgNC4wICogRzQ7XG4gICAgICAvLyBXb3JrIG91dCB0aGUgaGFzaGVkIGdyYWRpZW50IGluZGljZXMgb2YgdGhlIGZpdmUgc2ltcGxleCBjb3JuZXJzXG4gICAgICB2YXIgaWkgPSBpICYgMjU1O1xuICAgICAgdmFyIGpqID0gaiAmIDI1NTtcbiAgICAgIHZhciBrayA9IGsgJiAyNTU7XG4gICAgICB2YXIgbGwgPSBsICYgMjU1O1xuICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBjb250cmlidXRpb24gZnJvbSB0aGUgZml2ZSBjb3JuZXJzXG4gICAgICB2YXIgdDAgPSAwLjYgLSB4MCAqIHgwIC0geTAgKiB5MCAtIHowICogejAgLSB3MCAqIHcwO1xuICAgICAgaWYgKHQwIDwgMCkgbjAgPSAwLjA7XG4gICAgICBlbHNlIHtcbiAgICAgICAgdmFyIGdpMCA9IChwZXJtW2lpICsgcGVybVtqaiArIHBlcm1ba2sgKyBwZXJtW2xsXV1dXSAlIDMyKSAqIDQ7XG4gICAgICAgIHQwICo9IHQwO1xuICAgICAgICBuMCA9IHQwICogdDAgKiAoZ3JhZDRbZ2kwXSAqIHgwICsgZ3JhZDRbZ2kwICsgMV0gKiB5MCArIGdyYWQ0W2dpMCArIDJdICogejAgKyBncmFkNFtnaTAgKyAzXSAqIHcwKTtcbiAgICAgIH1cbiAgICAgIHZhciB0MSA9IDAuNiAtIHgxICogeDEgLSB5MSAqIHkxIC0gejEgKiB6MSAtIHcxICogdzE7XG4gICAgICBpZiAodDEgPCAwKSBuMSA9IDAuMDtcbiAgICAgIGVsc2Uge1xuICAgICAgICB2YXIgZ2kxID0gKHBlcm1baWkgKyBpMSArIHBlcm1bamogKyBqMSArIHBlcm1ba2sgKyBrMSArIHBlcm1bbGwgKyBsMV1dXV0gJSAzMikgKiA0O1xuICAgICAgICB0MSAqPSB0MTtcbiAgICAgICAgbjEgPSB0MSAqIHQxICogKGdyYWQ0W2dpMV0gKiB4MSArIGdyYWQ0W2dpMSArIDFdICogeTEgKyBncmFkNFtnaTEgKyAyXSAqIHoxICsgZ3JhZDRbZ2kxICsgM10gKiB3MSk7XG4gICAgICB9XG4gICAgICB2YXIgdDIgPSAwLjYgLSB4MiAqIHgyIC0geTIgKiB5MiAtIHoyICogejIgLSB3MiAqIHcyO1xuICAgICAgaWYgKHQyIDwgMCkgbjIgPSAwLjA7XG4gICAgICBlbHNlIHtcbiAgICAgICAgdmFyIGdpMiA9IChwZXJtW2lpICsgaTIgKyBwZXJtW2pqICsgajIgKyBwZXJtW2trICsgazIgKyBwZXJtW2xsICsgbDJdXV1dICUgMzIpICogNDtcbiAgICAgICAgdDIgKj0gdDI7XG4gICAgICAgIG4yID0gdDIgKiB0MiAqIChncmFkNFtnaTJdICogeDIgKyBncmFkNFtnaTIgKyAxXSAqIHkyICsgZ3JhZDRbZ2kyICsgMl0gKiB6MiArIGdyYWQ0W2dpMiArIDNdICogdzIpO1xuICAgICAgfVxuICAgICAgdmFyIHQzID0gMC42IC0geDMgKiB4MyAtIHkzICogeTMgLSB6MyAqIHozIC0gdzMgKiB3MztcbiAgICAgIGlmICh0MyA8IDApIG4zID0gMC4wO1xuICAgICAgZWxzZSB7XG4gICAgICAgIHZhciBnaTMgPSAocGVybVtpaSArIGkzICsgcGVybVtqaiArIGozICsgcGVybVtrayArIGszICsgcGVybVtsbCArIGwzXV1dXSAlIDMyKSAqIDQ7XG4gICAgICAgIHQzICo9IHQzO1xuICAgICAgICBuMyA9IHQzICogdDMgKiAoZ3JhZDRbZ2kzXSAqIHgzICsgZ3JhZDRbZ2kzICsgMV0gKiB5MyArIGdyYWQ0W2dpMyArIDJdICogejMgKyBncmFkNFtnaTMgKyAzXSAqIHczKTtcbiAgICAgIH1cbiAgICAgIHZhciB0NCA9IDAuNiAtIHg0ICogeDQgLSB5NCAqIHk0IC0gejQgKiB6NCAtIHc0ICogdzQ7XG4gICAgICBpZiAodDQgPCAwKSBuNCA9IDAuMDtcbiAgICAgIGVsc2Uge1xuICAgICAgICB2YXIgZ2k0ID0gKHBlcm1baWkgKyAxICsgcGVybVtqaiArIDEgKyBwZXJtW2trICsgMSArIHBlcm1bbGwgKyAxXV1dXSAlIDMyKSAqIDQ7XG4gICAgICAgIHQ0ICo9IHQ0O1xuICAgICAgICBuNCA9IHQ0ICogdDQgKiAoZ3JhZDRbZ2k0XSAqIHg0ICsgZ3JhZDRbZ2k0ICsgMV0gKiB5NCArIGdyYWQ0W2dpNCArIDJdICogejQgKyBncmFkNFtnaTQgKyAzXSAqIHc0KTtcbiAgICAgIH1cbiAgICAgIC8vIFN1bSB1cCBhbmQgc2NhbGUgdGhlIHJlc3VsdCB0byBjb3ZlciB0aGUgcmFuZ2UgWy0xLDFdXG4gICAgICByZXR1cm4gMjcuMCAqIChuMCArIG4xICsgbjIgKyBuMyArIG40KTtcbiAgICB9XG4gIH07XG5cbiAgZnVuY3Rpb24gYnVpbGRQZXJtdXRhdGlvblRhYmxlKHJhbmRvbSkge1xuICAgIHZhciBpO1xuICAgIHZhciBwID0gbmV3IFVpbnQ4QXJyYXkoMjU2KTtcbiAgICBmb3IgKGkgPSAwOyBpIDwgMjU2OyBpKyspIHtcbiAgICAgIHBbaV0gPSBpO1xuICAgIH1cbiAgICBmb3IgKGkgPSAwOyBpIDwgMjU1OyBpKyspIHtcbiAgICAgIHZhciByID0gaSArIH5+KHJhbmRvbSgpICogKDI1NiAtIGkpKTtcbiAgICAgIHZhciBhdXggPSBwW2ldO1xuICAgICAgcFtpXSA9IHBbcl07XG4gICAgICBwW3JdID0gYXV4O1xuICAgIH1cbiAgICByZXR1cm4gcDtcbiAgfVxuICBTaW1wbGV4Tm9pc2UuX2J1aWxkUGVybXV0YXRpb25UYWJsZSA9IGJ1aWxkUGVybXV0YXRpb25UYWJsZTtcblxuICBmdW5jdGlvbiBhbGVhKCkge1xuICAgIC8vIEpvaGFubmVzIEJhYWfDuGUgPGJhYWdvZUBiYWFnb2UuY29tPiwgMjAxMFxuICAgIHZhciBzMCA9IDA7XG4gICAgdmFyIHMxID0gMDtcbiAgICB2YXIgczIgPSAwO1xuICAgIHZhciBjID0gMTtcblxuICAgIHZhciBtYXNoID0gbWFzaGVyKCk7XG4gICAgczAgPSBtYXNoKCcgJyk7XG4gICAgczEgPSBtYXNoKCcgJyk7XG4gICAgczIgPSBtYXNoKCcgJyk7XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgczAgLT0gbWFzaChhcmd1bWVudHNbaV0pO1xuICAgICAgaWYgKHMwIDwgMCkge1xuICAgICAgICBzMCArPSAxO1xuICAgICAgfVxuICAgICAgczEgLT0gbWFzaChhcmd1bWVudHNbaV0pO1xuICAgICAgaWYgKHMxIDwgMCkge1xuICAgICAgICBzMSArPSAxO1xuICAgICAgfVxuICAgICAgczIgLT0gbWFzaChhcmd1bWVudHNbaV0pO1xuICAgICAgaWYgKHMyIDwgMCkge1xuICAgICAgICBzMiArPSAxO1xuICAgICAgfVxuICAgIH1cbiAgICBtYXNoID0gbnVsbDtcbiAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgdCA9IDIwOTE2MzkgKiBzMCArIGMgKiAyLjMyODMwNjQzNjUzODY5NjNlLTEwOyAvLyAyXi0zMlxuICAgICAgczAgPSBzMTtcbiAgICAgIHMxID0gczI7XG4gICAgICByZXR1cm4gczIgPSB0IC0gKGMgPSB0IHwgMCk7XG4gICAgfTtcbiAgfVxuICBmdW5jdGlvbiBtYXNoZXIoKSB7XG4gICAgdmFyIG4gPSAweGVmYzgyNDlkO1xuICAgIHJldHVybiBmdW5jdGlvbihkYXRhKSB7XG4gICAgICBkYXRhID0gZGF0YS50b1N0cmluZygpO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIG4gKz0gZGF0YS5jaGFyQ29kZUF0KGkpO1xuICAgICAgICB2YXIgaCA9IDAuMDI1MTk2MDMyODI0MTY5MzggKiBuO1xuICAgICAgICBuID0gaCA+Pj4gMDtcbiAgICAgICAgaCAtPSBuO1xuICAgICAgICBoICo9IG47XG4gICAgICAgIG4gPSBoID4+PiAwO1xuICAgICAgICBoIC09IG47XG4gICAgICAgIG4gKz0gaCAqIDB4MTAwMDAwMDAwOyAvLyAyXjMyXG4gICAgICB9XG4gICAgICByZXR1cm4gKG4gPj4+IDApICogMi4zMjgzMDY0MzY1Mzg2OTYzZS0xMDsgLy8gMl4tMzJcbiAgICB9O1xuICB9XG5cbiAgLy8gYW1kXG4gIGlmICh0eXBlb2YgZGVmaW5lICE9PSAndW5kZWZpbmVkJyAmJiBkZWZpbmUuYW1kKSBkZWZpbmUoZnVuY3Rpb24oKSB7cmV0dXJuIFNpbXBsZXhOb2lzZTt9KTtcbiAgLy8gY29tbW9uIGpzXG4gIGlmICh0eXBlb2YgZXhwb3J0cyAhPT0gJ3VuZGVmaW5lZCcpIGV4cG9ydHMuU2ltcGxleE5vaXNlID0gU2ltcGxleE5vaXNlO1xuICAvLyBicm93c2VyXG4gIGVsc2UgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB3aW5kb3cuU2ltcGxleE5vaXNlID0gU2ltcGxleE5vaXNlO1xuICAvLyBub2RlanNcbiAgaWYgKHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBTaW1wbGV4Tm9pc2U7XG4gIH1cblxufSkoKTtcbiIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuXG52YXIgX3NsaWNlZFRvQXJyYXkgPSBmdW5jdGlvbiAoKSB7IGZ1bmN0aW9uIHNsaWNlSXRlcmF0b3IoYXJyLCBpKSB7IHZhciBfYXJyID0gW107IHZhciBfbiA9IHRydWU7IHZhciBfZCA9IGZhbHNlOyB2YXIgX2UgPSB1bmRlZmluZWQ7IHRyeSB7IGZvciAodmFyIF9pID0gYXJyW1N5bWJvbC5pdGVyYXRvcl0oKSwgX3M7ICEoX24gPSAoX3MgPSBfaS5uZXh0KCkpLmRvbmUpOyBfbiA9IHRydWUpIHsgX2Fyci5wdXNoKF9zLnZhbHVlKTsgaWYgKGkgJiYgX2Fyci5sZW5ndGggPT09IGkpIGJyZWFrOyB9IH0gY2F0Y2ggKGVycikgeyBfZCA9IHRydWU7IF9lID0gZXJyOyB9IGZpbmFsbHkgeyB0cnkgeyBpZiAoIV9uICYmIF9pW1wicmV0dXJuXCJdKSBfaVtcInJldHVyblwiXSgpOyB9IGZpbmFsbHkgeyBpZiAoX2QpIHRocm93IF9lOyB9IH0gcmV0dXJuIF9hcnI7IH0gcmV0dXJuIGZ1bmN0aW9uIChhcnIsIGkpIHsgaWYgKEFycmF5LmlzQXJyYXkoYXJyKSkgeyByZXR1cm4gYXJyOyB9IGVsc2UgaWYgKFN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QoYXJyKSkgeyByZXR1cm4gc2xpY2VJdGVyYXRvcihhcnIsIGkpOyB9IGVsc2UgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZVwiKTsgfSB9OyB9KCk7XG5cbnZhciBUQVUgPSBNYXRoLlBJICogMjtcblxudmFyIG1hcFRvRWxsaXBzZSA9IGZ1bmN0aW9uIG1hcFRvRWxsaXBzZShfcmVmLCByeCwgcnksIGNvc3BoaSwgc2lucGhpLCBjZW50ZXJ4LCBjZW50ZXJ5KSB7XG4gIHZhciB4ID0gX3JlZi54LFxuICAgICAgeSA9IF9yZWYueTtcblxuICB4ICo9IHJ4O1xuICB5ICo9IHJ5O1xuXG4gIHZhciB4cCA9IGNvc3BoaSAqIHggLSBzaW5waGkgKiB5O1xuICB2YXIgeXAgPSBzaW5waGkgKiB4ICsgY29zcGhpICogeTtcblxuICByZXR1cm4ge1xuICAgIHg6IHhwICsgY2VudGVyeCxcbiAgICB5OiB5cCArIGNlbnRlcnlcbiAgfTtcbn07XG5cbnZhciBhcHByb3hVbml0QXJjID0gZnVuY3Rpb24gYXBwcm94VW5pdEFyYyhhbmcxLCBhbmcyKSB7XG4gIC8vIElmIDkwIGRlZ3JlZSBjaXJjdWxhciBhcmMsIHVzZSBhIGNvbnN0YW50XG4gIC8vIGFzIGRlcml2ZWQgZnJvbSBodHRwOi8vc3BlbmNlcm1vcnRlbnNlbi5jb20vYXJ0aWNsZXMvYmV6aWVyLWNpcmNsZVxuICB2YXIgYSA9IGFuZzIgPT09IDEuNTcwNzk2MzI2Nzk0ODk2NiA/IDAuNTUxOTE1MDI0NDk0IDogYW5nMiA9PT0gLTEuNTcwNzk2MzI2Nzk0ODk2NiA/IC0wLjU1MTkxNTAyNDQ5NCA6IDQgLyAzICogTWF0aC50YW4oYW5nMiAvIDQpO1xuXG4gIHZhciB4MSA9IE1hdGguY29zKGFuZzEpO1xuICB2YXIgeTEgPSBNYXRoLnNpbihhbmcxKTtcbiAgdmFyIHgyID0gTWF0aC5jb3MoYW5nMSArIGFuZzIpO1xuICB2YXIgeTIgPSBNYXRoLnNpbihhbmcxICsgYW5nMik7XG5cbiAgcmV0dXJuIFt7XG4gICAgeDogeDEgLSB5MSAqIGEsXG4gICAgeTogeTEgKyB4MSAqIGFcbiAgfSwge1xuICAgIHg6IHgyICsgeTIgKiBhLFxuICAgIHk6IHkyIC0geDIgKiBhXG4gIH0sIHtcbiAgICB4OiB4MixcbiAgICB5OiB5MlxuICB9XTtcbn07XG5cbnZhciB2ZWN0b3JBbmdsZSA9IGZ1bmN0aW9uIHZlY3RvckFuZ2xlKHV4LCB1eSwgdngsIHZ5KSB7XG4gIHZhciBzaWduID0gdXggKiB2eSAtIHV5ICogdnggPCAwID8gLTEgOiAxO1xuXG4gIHZhciBkb3QgPSB1eCAqIHZ4ICsgdXkgKiB2eTtcblxuICBpZiAoZG90ID4gMSkge1xuICAgIGRvdCA9IDE7XG4gIH1cblxuICBpZiAoZG90IDwgLTEpIHtcbiAgICBkb3QgPSAtMTtcbiAgfVxuXG4gIHJldHVybiBzaWduICogTWF0aC5hY29zKGRvdCk7XG59O1xuXG52YXIgZ2V0QXJjQ2VudGVyID0gZnVuY3Rpb24gZ2V0QXJjQ2VudGVyKHB4LCBweSwgY3gsIGN5LCByeCwgcnksIGxhcmdlQXJjRmxhZywgc3dlZXBGbGFnLCBzaW5waGksIGNvc3BoaSwgcHhwLCBweXApIHtcbiAgdmFyIHJ4c3EgPSBNYXRoLnBvdyhyeCwgMik7XG4gIHZhciByeXNxID0gTWF0aC5wb3cocnksIDIpO1xuICB2YXIgcHhwc3EgPSBNYXRoLnBvdyhweHAsIDIpO1xuICB2YXIgcHlwc3EgPSBNYXRoLnBvdyhweXAsIDIpO1xuXG4gIHZhciByYWRpY2FudCA9IHJ4c3EgKiByeXNxIC0gcnhzcSAqIHB5cHNxIC0gcnlzcSAqIHB4cHNxO1xuXG4gIGlmIChyYWRpY2FudCA8IDApIHtcbiAgICByYWRpY2FudCA9IDA7XG4gIH1cblxuICByYWRpY2FudCAvPSByeHNxICogcHlwc3EgKyByeXNxICogcHhwc3E7XG4gIHJhZGljYW50ID0gTWF0aC5zcXJ0KHJhZGljYW50KSAqIChsYXJnZUFyY0ZsYWcgPT09IHN3ZWVwRmxhZyA/IC0xIDogMSk7XG5cbiAgdmFyIGNlbnRlcnhwID0gcmFkaWNhbnQgKiByeCAvIHJ5ICogcHlwO1xuICB2YXIgY2VudGVyeXAgPSByYWRpY2FudCAqIC1yeSAvIHJ4ICogcHhwO1xuXG4gIHZhciBjZW50ZXJ4ID0gY29zcGhpICogY2VudGVyeHAgLSBzaW5waGkgKiBjZW50ZXJ5cCArIChweCArIGN4KSAvIDI7XG4gIHZhciBjZW50ZXJ5ID0gc2lucGhpICogY2VudGVyeHAgKyBjb3NwaGkgKiBjZW50ZXJ5cCArIChweSArIGN5KSAvIDI7XG5cbiAgdmFyIHZ4MSA9IChweHAgLSBjZW50ZXJ4cCkgLyByeDtcbiAgdmFyIHZ5MSA9IChweXAgLSBjZW50ZXJ5cCkgLyByeTtcbiAgdmFyIHZ4MiA9ICgtcHhwIC0gY2VudGVyeHApIC8gcng7XG4gIHZhciB2eTIgPSAoLXB5cCAtIGNlbnRlcnlwKSAvIHJ5O1xuXG4gIHZhciBhbmcxID0gdmVjdG9yQW5nbGUoMSwgMCwgdngxLCB2eTEpO1xuICB2YXIgYW5nMiA9IHZlY3RvckFuZ2xlKHZ4MSwgdnkxLCB2eDIsIHZ5Mik7XG5cbiAgaWYgKHN3ZWVwRmxhZyA9PT0gMCAmJiBhbmcyID4gMCkge1xuICAgIGFuZzIgLT0gVEFVO1xuICB9XG5cbiAgaWYgKHN3ZWVwRmxhZyA9PT0gMSAmJiBhbmcyIDwgMCkge1xuICAgIGFuZzIgKz0gVEFVO1xuICB9XG5cbiAgcmV0dXJuIFtjZW50ZXJ4LCBjZW50ZXJ5LCBhbmcxLCBhbmcyXTtcbn07XG5cbnZhciBhcmNUb0JlemllciA9IGZ1bmN0aW9uIGFyY1RvQmV6aWVyKF9yZWYyKSB7XG4gIHZhciBweCA9IF9yZWYyLnB4LFxuICAgICAgcHkgPSBfcmVmMi5weSxcbiAgICAgIGN4ID0gX3JlZjIuY3gsXG4gICAgICBjeSA9IF9yZWYyLmN5LFxuICAgICAgcnggPSBfcmVmMi5yeCxcbiAgICAgIHJ5ID0gX3JlZjIucnksXG4gICAgICBfcmVmMiR4QXhpc1JvdGF0aW9uID0gX3JlZjIueEF4aXNSb3RhdGlvbixcbiAgICAgIHhBeGlzUm90YXRpb24gPSBfcmVmMiR4QXhpc1JvdGF0aW9uID09PSB1bmRlZmluZWQgPyAwIDogX3JlZjIkeEF4aXNSb3RhdGlvbixcbiAgICAgIF9yZWYyJGxhcmdlQXJjRmxhZyA9IF9yZWYyLmxhcmdlQXJjRmxhZyxcbiAgICAgIGxhcmdlQXJjRmxhZyA9IF9yZWYyJGxhcmdlQXJjRmxhZyA9PT0gdW5kZWZpbmVkID8gMCA6IF9yZWYyJGxhcmdlQXJjRmxhZyxcbiAgICAgIF9yZWYyJHN3ZWVwRmxhZyA9IF9yZWYyLnN3ZWVwRmxhZyxcbiAgICAgIHN3ZWVwRmxhZyA9IF9yZWYyJHN3ZWVwRmxhZyA9PT0gdW5kZWZpbmVkID8gMCA6IF9yZWYyJHN3ZWVwRmxhZztcblxuICB2YXIgY3VydmVzID0gW107XG5cbiAgaWYgKHJ4ID09PSAwIHx8IHJ5ID09PSAwKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgdmFyIHNpbnBoaSA9IE1hdGguc2luKHhBeGlzUm90YXRpb24gKiBUQVUgLyAzNjApO1xuICB2YXIgY29zcGhpID0gTWF0aC5jb3MoeEF4aXNSb3RhdGlvbiAqIFRBVSAvIDM2MCk7XG5cbiAgdmFyIHB4cCA9IGNvc3BoaSAqIChweCAtIGN4KSAvIDIgKyBzaW5waGkgKiAocHkgLSBjeSkgLyAyO1xuICB2YXIgcHlwID0gLXNpbnBoaSAqIChweCAtIGN4KSAvIDIgKyBjb3NwaGkgKiAocHkgLSBjeSkgLyAyO1xuXG4gIGlmIChweHAgPT09IDAgJiYgcHlwID09PSAwKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgcnggPSBNYXRoLmFicyhyeCk7XG4gIHJ5ID0gTWF0aC5hYnMocnkpO1xuXG4gIHZhciBsYW1iZGEgPSBNYXRoLnBvdyhweHAsIDIpIC8gTWF0aC5wb3cocngsIDIpICsgTWF0aC5wb3cocHlwLCAyKSAvIE1hdGgucG93KHJ5LCAyKTtcblxuICBpZiAobGFtYmRhID4gMSkge1xuICAgIHJ4ICo9IE1hdGguc3FydChsYW1iZGEpO1xuICAgIHJ5ICo9IE1hdGguc3FydChsYW1iZGEpO1xuICB9XG5cbiAgdmFyIF9nZXRBcmNDZW50ZXIgPSBnZXRBcmNDZW50ZXIocHgsIHB5LCBjeCwgY3ksIHJ4LCByeSwgbGFyZ2VBcmNGbGFnLCBzd2VlcEZsYWcsIHNpbnBoaSwgY29zcGhpLCBweHAsIHB5cCksXG4gICAgICBfZ2V0QXJjQ2VudGVyMiA9IF9zbGljZWRUb0FycmF5KF9nZXRBcmNDZW50ZXIsIDQpLFxuICAgICAgY2VudGVyeCA9IF9nZXRBcmNDZW50ZXIyWzBdLFxuICAgICAgY2VudGVyeSA9IF9nZXRBcmNDZW50ZXIyWzFdLFxuICAgICAgYW5nMSA9IF9nZXRBcmNDZW50ZXIyWzJdLFxuICAgICAgYW5nMiA9IF9nZXRBcmNDZW50ZXIyWzNdO1xuXG4gIC8vIElmICdhbmcyJyA9PSA5MC4wMDAwMDAwMDAxLCB0aGVuIGByYXRpb2Agd2lsbCBldmFsdWF0ZSB0b1xuICAvLyAxLjAwMDAwMDAwMDEuIFRoaXMgY2F1c2VzIGBzZWdtZW50c2AgdG8gYmUgZ3JlYXRlciB0aGFuIG9uZSwgd2hpY2ggaXMgYW5cbiAgLy8gdW5lY2Vzc2FyeSBzcGxpdCwgYW5kIGFkZHMgZXh0cmEgcG9pbnRzIHRvIHRoZSBiZXppZXIgY3VydmUuIFRvIGFsbGV2aWF0ZVxuICAvLyB0aGlzIGlzc3VlLCB3ZSByb3VuZCB0byAxLjAgd2hlbiB0aGUgcmF0aW8gaXMgY2xvc2UgdG8gMS4wLlxuXG5cbiAgdmFyIHJhdGlvID0gTWF0aC5hYnMoYW5nMikgLyAoVEFVIC8gNCk7XG4gIGlmIChNYXRoLmFicygxLjAgLSByYXRpbykgPCAwLjAwMDAwMDEpIHtcbiAgICByYXRpbyA9IDEuMDtcbiAgfVxuXG4gIHZhciBzZWdtZW50cyA9IE1hdGgubWF4KE1hdGguY2VpbChyYXRpbyksIDEpO1xuXG4gIGFuZzIgLz0gc2VnbWVudHM7XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWdtZW50czsgaSsrKSB7XG4gICAgY3VydmVzLnB1c2goYXBwcm94VW5pdEFyYyhhbmcxLCBhbmcyKSk7XG4gICAgYW5nMSArPSBhbmcyO1xuICB9XG5cbiAgcmV0dXJuIGN1cnZlcy5tYXAoZnVuY3Rpb24gKGN1cnZlKSB7XG4gICAgdmFyIF9tYXBUb0VsbGlwc2UgPSBtYXBUb0VsbGlwc2UoY3VydmVbMF0sIHJ4LCByeSwgY29zcGhpLCBzaW5waGksIGNlbnRlcngsIGNlbnRlcnkpLFxuICAgICAgICB4MSA9IF9tYXBUb0VsbGlwc2UueCxcbiAgICAgICAgeTEgPSBfbWFwVG9FbGxpcHNlLnk7XG5cbiAgICB2YXIgX21hcFRvRWxsaXBzZTIgPSBtYXBUb0VsbGlwc2UoY3VydmVbMV0sIHJ4LCByeSwgY29zcGhpLCBzaW5waGksIGNlbnRlcngsIGNlbnRlcnkpLFxuICAgICAgICB4MiA9IF9tYXBUb0VsbGlwc2UyLngsXG4gICAgICAgIHkyID0gX21hcFRvRWxsaXBzZTIueTtcblxuICAgIHZhciBfbWFwVG9FbGxpcHNlMyA9IG1hcFRvRWxsaXBzZShjdXJ2ZVsyXSwgcngsIHJ5LCBjb3NwaGksIHNpbnBoaSwgY2VudGVyeCwgY2VudGVyeSksXG4gICAgICAgIHggPSBfbWFwVG9FbGxpcHNlMy54LFxuICAgICAgICB5ID0gX21hcFRvRWxsaXBzZTMueTtcblxuICAgIHJldHVybiB7IHgxOiB4MSwgeTE6IHkxLCB4MjogeDIsIHkyOiB5MiwgeDogeCwgeTogeSB9O1xuICB9KTtcbn07XG5cbmV4cG9ydHMuZGVmYXVsdCA9IGFyY1RvQmV6aWVyO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzLmRlZmF1bHQ7IiwidmFyIGJlemllciA9IHJlcXVpcmUoJ2FkYXB0aXZlLWJlemllci1jdXJ2ZScpXG52YXIgYWJzID0gcmVxdWlyZSgnYWJzLXN2Zy1wYXRoJylcbnZhciBub3JtID0gcmVxdWlyZSgnbm9ybWFsaXplLXN2Zy1wYXRoJylcbnZhciBjb3B5ID0gcmVxdWlyZSgndmVjMi1jb3B5JylcblxuZnVuY3Rpb24gc2V0KG91dCwgeCwgeSkge1xuICAgIG91dFswXSA9IHhcbiAgICBvdXRbMV0gPSB5XG4gICAgcmV0dXJuIG91dFxufVxuXG52YXIgdG1wMSA9IFswLDBdLFxuICAgIHRtcDIgPSBbMCwwXSxcbiAgICB0bXAzID0gWzAsMF1cblxuZnVuY3Rpb24gYmV6aWVyVG8ocG9pbnRzLCBzY2FsZSwgc3RhcnQsIHNlZykge1xuICAgIGJlemllcihzdGFydCwgXG4gICAgICAgIHNldCh0bXAxLCBzZWdbMV0sIHNlZ1syXSksIFxuICAgICAgICBzZXQodG1wMiwgc2VnWzNdLCBzZWdbNF0pLFxuICAgICAgICBzZXQodG1wMywgc2VnWzVdLCBzZWdbNl0pLCBzY2FsZSwgcG9pbnRzKVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNvbnRvdXJzKHN2Zywgc2NhbGUpIHtcbiAgICB2YXIgcGF0aHMgPSBbXVxuXG4gICAgdmFyIHBvaW50cyA9IFtdXG4gICAgdmFyIHBlbiA9IFswLCAwXVxuICAgIG5vcm0oYWJzKHN2ZykpLmZvckVhY2goZnVuY3Rpb24oc2VnbWVudCwgaSwgc2VsZikge1xuICAgICAgICBpZiAoc2VnbWVudFswXSA9PT0gJ00nKSB7XG4gICAgICAgICAgICBjb3B5KHBlbiwgc2VnbWVudC5zbGljZSgxKSlcbiAgICAgICAgICAgIGlmIChwb2ludHMubGVuZ3RoPjApIHtcbiAgICAgICAgICAgICAgICBwYXRocy5wdXNoKHBvaW50cylcbiAgICAgICAgICAgICAgICBwb2ludHMgPSBbXVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHNlZ21lbnRbMF0gPT09ICdDJykge1xuICAgICAgICAgICAgYmV6aWVyVG8ocG9pbnRzLCBzY2FsZSwgcGVuLCBzZWdtZW50KVxuICAgICAgICAgICAgc2V0KHBlbiwgc2VnbWVudFs1XSwgc2VnbWVudFs2XSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignaWxsZWdhbCB0eXBlIGluIFNWRzogJytzZWdtZW50WzBdKVxuICAgICAgICB9XG4gICAgfSlcbiAgICBpZiAocG9pbnRzLmxlbmd0aD4wKVxuICAgICAgICBwYXRocy5wdXNoKHBvaW50cylcbiAgICByZXR1cm4gcGF0aHNcbn0iLCJcbnZhciDPgCA9IE1hdGguUElcbnZhciBfMTIwID0gcmFkaWFucygxMjApXG5cbm1vZHVsZS5leHBvcnRzID0gbm9ybWFsaXplXG5cbi8qKlxuICogZGVzY3JpYmUgYHBhdGhgIGluIHRlcm1zIG9mIGN1YmljIGLDqXppZXIgXG4gKiBjdXJ2ZXMgYW5kIG1vdmUgY29tbWFuZHNcbiAqXG4gKiBAcGFyYW0ge0FycmF5fSBwYXRoXG4gKiBAcmV0dXJuIHtBcnJheX1cbiAqL1xuXG5mdW5jdGlvbiBub3JtYWxpemUocGF0aCl7XG5cdC8vIGluaXQgc3RhdGVcblx0dmFyIHByZXZcblx0dmFyIHJlc3VsdCA9IFtdXG5cdHZhciBiZXppZXJYID0gMFxuXHR2YXIgYmV6aWVyWSA9IDBcblx0dmFyIHN0YXJ0WCA9IDBcblx0dmFyIHN0YXJ0WSA9IDBcblx0dmFyIHF1YWRYID0gbnVsbFxuXHR2YXIgcXVhZFkgPSBudWxsXG5cdHZhciB4ID0gMFxuXHR2YXIgeSA9IDBcblxuXHRmb3IgKHZhciBpID0gMCwgbGVuID0gcGF0aC5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuXHRcdHZhciBzZWcgPSBwYXRoW2ldXG5cdFx0dmFyIGNvbW1hbmQgPSBzZWdbMF1cblx0XHRzd2l0Y2ggKGNvbW1hbmQpIHtcblx0XHRcdGNhc2UgJ00nOlxuXHRcdFx0XHRzdGFydFggPSBzZWdbMV1cblx0XHRcdFx0c3RhcnRZID0gc2VnWzJdXG5cdFx0XHRcdGJyZWFrXG5cdFx0XHRjYXNlICdBJzpcblx0XHRcdFx0c2VnID0gYXJjKHgsIHksc2VnWzFdLHNlZ1syXSxyYWRpYW5zKHNlZ1szXSksc2VnWzRdLHNlZ1s1XSxzZWdbNl0sc2VnWzddKVxuXHRcdFx0XHQvLyBzcGxpdCBtdWx0aSBwYXJ0XG5cdFx0XHRcdHNlZy51bnNoaWZ0KCdDJylcblx0XHRcdFx0aWYgKHNlZy5sZW5ndGggPiA3KSB7XG5cdFx0XHRcdFx0cmVzdWx0LnB1c2goc2VnLnNwbGljZSgwLCA3KSlcblx0XHRcdFx0XHRzZWcudW5zaGlmdCgnQycpXG5cdFx0XHRcdH1cblx0XHRcdFx0YnJlYWtcblx0XHRcdGNhc2UgJ1MnOlxuXHRcdFx0XHQvLyBkZWZhdWx0IGNvbnRyb2wgcG9pbnRcblx0XHRcdFx0dmFyIGN4ID0geFxuXHRcdFx0XHR2YXIgY3kgPSB5XG5cdFx0XHRcdGlmIChwcmV2ID09ICdDJyB8fCBwcmV2ID09ICdTJykge1xuXHRcdFx0XHRcdGN4ICs9IGN4IC0gYmV6aWVyWCAvLyByZWZsZWN0IHRoZSBwcmV2aW91cyBjb21tYW5kJ3MgY29udHJvbFxuXHRcdFx0XHRcdGN5ICs9IGN5IC0gYmV6aWVyWSAvLyBwb2ludCByZWxhdGl2ZSB0byB0aGUgY3VycmVudCBwb2ludFxuXHRcdFx0XHR9XG5cdFx0XHRcdHNlZyA9IFsnQycsIGN4LCBjeSwgc2VnWzFdLCBzZWdbMl0sIHNlZ1szXSwgc2VnWzRdXVxuXHRcdFx0XHRicmVha1xuXHRcdFx0Y2FzZSAnVCc6XG5cdFx0XHRcdGlmIChwcmV2ID09ICdRJyB8fCBwcmV2ID09ICdUJykge1xuXHRcdFx0XHRcdHF1YWRYID0geCAqIDIgLSBxdWFkWCAvLyBhcyB3aXRoICdTJyByZWZsZWN0IHByZXZpb3VzIGNvbnRyb2wgcG9pbnRcblx0XHRcdFx0XHRxdWFkWSA9IHkgKiAyIC0gcXVhZFlcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRxdWFkWCA9IHhcblx0XHRcdFx0XHRxdWFkWSA9IHlcblx0XHRcdFx0fVxuXHRcdFx0XHRzZWcgPSBxdWFkcmF0aWMoeCwgeSwgcXVhZFgsIHF1YWRZLCBzZWdbMV0sIHNlZ1syXSlcblx0XHRcdFx0YnJlYWtcblx0XHRcdGNhc2UgJ1EnOlxuXHRcdFx0XHRxdWFkWCA9IHNlZ1sxXVxuXHRcdFx0XHRxdWFkWSA9IHNlZ1syXVxuXHRcdFx0XHRzZWcgPSBxdWFkcmF0aWMoeCwgeSwgc2VnWzFdLCBzZWdbMl0sIHNlZ1szXSwgc2VnWzRdKVxuXHRcdFx0XHRicmVha1xuXHRcdFx0Y2FzZSAnTCc6XG5cdFx0XHRcdHNlZyA9IGxpbmUoeCwgeSwgc2VnWzFdLCBzZWdbMl0pXG5cdFx0XHRcdGJyZWFrXG5cdFx0XHRjYXNlICdIJzpcblx0XHRcdFx0c2VnID0gbGluZSh4LCB5LCBzZWdbMV0sIHkpXG5cdFx0XHRcdGJyZWFrXG5cdFx0XHRjYXNlICdWJzpcblx0XHRcdFx0c2VnID0gbGluZSh4LCB5LCB4LCBzZWdbMV0pXG5cdFx0XHRcdGJyZWFrXG5cdFx0XHRjYXNlICdaJzpcblx0XHRcdFx0c2VnID0gbGluZSh4LCB5LCBzdGFydFgsIHN0YXJ0WSlcblx0XHRcdFx0YnJlYWtcblx0XHR9XG5cblx0XHQvLyB1cGRhdGUgc3RhdGVcblx0XHRwcmV2ID0gY29tbWFuZFxuXHRcdHggPSBzZWdbc2VnLmxlbmd0aCAtIDJdXG5cdFx0eSA9IHNlZ1tzZWcubGVuZ3RoIC0gMV1cblx0XHRpZiAoc2VnLmxlbmd0aCA+IDQpIHtcblx0XHRcdGJlemllclggPSBzZWdbc2VnLmxlbmd0aCAtIDRdXG5cdFx0XHRiZXppZXJZID0gc2VnW3NlZy5sZW5ndGggLSAzXVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRiZXppZXJYID0geFxuXHRcdFx0YmV6aWVyWSA9IHlcblx0XHR9XG5cdFx0cmVzdWx0LnB1c2goc2VnKVxuXHR9XG5cblx0cmV0dXJuIHJlc3VsdFxufVxuXG5mdW5jdGlvbiBsaW5lKHgxLCB5MSwgeDIsIHkyKXtcblx0cmV0dXJuIFsnQycsIHgxLCB5MSwgeDIsIHkyLCB4MiwgeTJdXG59XG5cbmZ1bmN0aW9uIHF1YWRyYXRpYyh4MSwgeTEsIGN4LCBjeSwgeDIsIHkyKXtcblx0cmV0dXJuIFtcblx0XHQnQycsXG5cdFx0eDEvMyArICgyLzMpICogY3gsXG5cdFx0eTEvMyArICgyLzMpICogY3ksXG5cdFx0eDIvMyArICgyLzMpICogY3gsXG5cdFx0eTIvMyArICgyLzMpICogY3ksXG5cdFx0eDIsXG5cdFx0eTJcblx0XVxufVxuXG4vLyBUaGlzIGZ1bmN0aW9uIGlzIHJpcHBlZCBmcm9tIFxuLy8gZ2l0aHViLmNvbS9EbWl0cnlCYXJhbm92c2tpeS9yYXBoYWVsL2Jsb2IvNGQ5N2Q0L3JhcGhhZWwuanMjTDIyMTYtTDIzMDQgXG4vLyB3aGljaCByZWZlcmVuY2VzIHczLm9yZy9UUi9TVkcxMS9pbXBsbm90ZS5odG1sI0FyY0ltcGxlbWVudGF0aW9uTm90ZXNcbi8vIFRPRE86IG1ha2UgaXQgaHVtYW4gcmVhZGFibGVcblxuZnVuY3Rpb24gYXJjKHgxLCB5MSwgcngsIHJ5LCBhbmdsZSwgbGFyZ2VfYXJjX2ZsYWcsIHN3ZWVwX2ZsYWcsIHgyLCB5MiwgcmVjdXJzaXZlKSB7XG5cdGlmICghcmVjdXJzaXZlKSB7XG5cdFx0dmFyIHh5ID0gcm90YXRlKHgxLCB5MSwgLWFuZ2xlKVxuXHRcdHgxID0geHkueFxuXHRcdHkxID0geHkueVxuXHRcdHh5ID0gcm90YXRlKHgyLCB5MiwgLWFuZ2xlKVxuXHRcdHgyID0geHkueFxuXHRcdHkyID0geHkueVxuXHRcdHZhciB4ID0gKHgxIC0geDIpIC8gMlxuXHRcdHZhciB5ID0gKHkxIC0geTIpIC8gMlxuXHRcdHZhciBoID0gKHggKiB4KSAvIChyeCAqIHJ4KSArICh5ICogeSkgLyAocnkgKiByeSlcblx0XHRpZiAoaCA+IDEpIHtcblx0XHRcdGggPSBNYXRoLnNxcnQoaClcblx0XHRcdHJ4ID0gaCAqIHJ4XG5cdFx0XHRyeSA9IGggKiByeVxuXHRcdH1cblx0XHR2YXIgcngyID0gcnggKiByeFxuXHRcdHZhciByeTIgPSByeSAqIHJ5XG5cdFx0dmFyIGsgPSAobGFyZ2VfYXJjX2ZsYWcgPT0gc3dlZXBfZmxhZyA/IC0xIDogMSlcblx0XHRcdCogTWF0aC5zcXJ0KE1hdGguYWJzKChyeDIgKiByeTIgLSByeDIgKiB5ICogeSAtIHJ5MiAqIHggKiB4KSAvIChyeDIgKiB5ICogeSArIHJ5MiAqIHggKiB4KSkpXG5cdFx0aWYgKGsgPT0gSW5maW5pdHkpIGsgPSAxIC8vIG5ldXRyYWxpemVcblx0XHR2YXIgY3ggPSBrICogcnggKiB5IC8gcnkgKyAoeDEgKyB4MikgLyAyXG5cdFx0dmFyIGN5ID0gayAqIC1yeSAqIHggLyByeCArICh5MSArIHkyKSAvIDJcblx0XHR2YXIgZjEgPSBNYXRoLmFzaW4oKCh5MSAtIGN5KSAvIHJ5KS50b0ZpeGVkKDkpKVxuXHRcdHZhciBmMiA9IE1hdGguYXNpbigoKHkyIC0gY3kpIC8gcnkpLnRvRml4ZWQoOSkpXG5cblx0XHRmMSA9IHgxIDwgY3ggPyDPgCAtIGYxIDogZjFcblx0XHRmMiA9IHgyIDwgY3ggPyDPgCAtIGYyIDogZjJcblx0XHRpZiAoZjEgPCAwKSBmMSA9IM+AICogMiArIGYxXG5cdFx0aWYgKGYyIDwgMCkgZjIgPSDPgCAqIDIgKyBmMlxuXHRcdGlmIChzd2VlcF9mbGFnICYmIGYxID4gZjIpIGYxID0gZjEgLSDPgCAqIDJcblx0XHRpZiAoIXN3ZWVwX2ZsYWcgJiYgZjIgPiBmMSkgZjIgPSBmMiAtIM+AICogMlxuXHR9IGVsc2Uge1xuXHRcdGYxID0gcmVjdXJzaXZlWzBdXG5cdFx0ZjIgPSByZWN1cnNpdmVbMV1cblx0XHRjeCA9IHJlY3Vyc2l2ZVsyXVxuXHRcdGN5ID0gcmVjdXJzaXZlWzNdXG5cdH1cblx0Ly8gZ3JlYXRlciB0aGFuIDEyMCBkZWdyZWVzIHJlcXVpcmVzIG11bHRpcGxlIHNlZ21lbnRzXG5cdGlmIChNYXRoLmFicyhmMiAtIGYxKSA+IF8xMjApIHtcblx0XHR2YXIgZjJvbGQgPSBmMlxuXHRcdHZhciB4Mm9sZCA9IHgyXG5cdFx0dmFyIHkyb2xkID0geTJcblx0XHRmMiA9IGYxICsgXzEyMCAqIChzd2VlcF9mbGFnICYmIGYyID4gZjEgPyAxIDogLTEpXG5cdFx0eDIgPSBjeCArIHJ4ICogTWF0aC5jb3MoZjIpXG5cdFx0eTIgPSBjeSArIHJ5ICogTWF0aC5zaW4oZjIpXG5cdFx0dmFyIHJlcyA9IGFyYyh4MiwgeTIsIHJ4LCByeSwgYW5nbGUsIDAsIHN3ZWVwX2ZsYWcsIHgyb2xkLCB5Mm9sZCwgW2YyLCBmMm9sZCwgY3gsIGN5XSlcblx0fVxuXHR2YXIgdCA9IE1hdGgudGFuKChmMiAtIGYxKSAvIDQpXG5cdHZhciBoeCA9IDQgLyAzICogcnggKiB0XG5cdHZhciBoeSA9IDQgLyAzICogcnkgKiB0XG5cdHZhciBjdXJ2ZSA9IFtcblx0XHQyICogeDEgLSAoeDEgKyBoeCAqIE1hdGguc2luKGYxKSksXG5cdFx0MiAqIHkxIC0gKHkxIC0gaHkgKiBNYXRoLmNvcyhmMSkpLFxuXHRcdHgyICsgaHggKiBNYXRoLnNpbihmMiksXG5cdFx0eTIgLSBoeSAqIE1hdGguY29zKGYyKSxcblx0XHR4Mixcblx0XHR5MlxuXHRdXG5cdGlmIChyZWN1cnNpdmUpIHJldHVybiBjdXJ2ZVxuXHRpZiAocmVzKSBjdXJ2ZSA9IGN1cnZlLmNvbmNhdChyZXMpXG5cdGZvciAodmFyIGkgPSAwOyBpIDwgY3VydmUubGVuZ3RoOykge1xuXHRcdHZhciByb3QgPSByb3RhdGUoY3VydmVbaV0sIGN1cnZlW2krMV0sIGFuZ2xlKVxuXHRcdGN1cnZlW2krK10gPSByb3QueFxuXHRcdGN1cnZlW2krK10gPSByb3QueVxuXHR9XG5cdHJldHVybiBjdXJ2ZVxufVxuXG5mdW5jdGlvbiByb3RhdGUoeCwgeSwgcmFkKXtcblx0cmV0dXJuIHtcblx0XHR4OiB4ICogTWF0aC5jb3MocmFkKSAtIHkgKiBNYXRoLnNpbihyYWQpLFxuXHRcdHk6IHggKiBNYXRoLnNpbihyYWQpICsgeSAqIE1hdGguY29zKHJhZClcblx0fVxufVxuXG5mdW5jdGlvbiByYWRpYW5zKGRlZ3Jlc3Mpe1xuXHRyZXR1cm4gZGVncmVzcyAqICjPgCAvIDE4MClcbn1cbiIsIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFtdLCBmYWN0b3J5KTtcblx0ZWxzZSBpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpXG5cdFx0ZXhwb3J0c1tcInR3ZWFrcGFuZVwiXSA9IGZhY3RvcnkoKTtcblx0ZWxzZVxuXHRcdHJvb3RbXCJUd2Vha3BhbmVcIl0gPSBmYWN0b3J5KCk7XG59KSh0eXBlb2Ygc2VsZiAhPT0gJ3VuZGVmaW5lZCcgPyBzZWxmIDogdGhpcywgZnVuY3Rpb24oKSB7XG5yZXR1cm4gLyoqKioqKi8gKGZ1bmN0aW9uKG1vZHVsZXMpIHsgLy8gd2VicGFja0Jvb3RzdHJhcFxuLyoqKioqKi8gXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4vKioqKioqLyBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuLyoqKioqKi8gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG4vKioqKioqL1xuLyoqKioqKi8gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuLyoqKioqKi8gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKSB7XG4vKioqKioqLyBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcbi8qKioqKiovIFx0XHR9XG4vKioqKioqLyBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbi8qKioqKiovIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4vKioqKioqLyBcdFx0XHRpOiBtb2R1bGVJZCxcbi8qKioqKiovIFx0XHRcdGw6IGZhbHNlLFxuLyoqKioqKi8gXHRcdFx0ZXhwb3J0czoge31cbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi9cbi8qKioqKiovIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbi8qKioqKiovIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcbi8qKioqKiovXG4vKioqKioqLyBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuLyoqKioqKi8gXHRcdG1vZHVsZS5sID0gdHJ1ZTtcbi8qKioqKiovXG4vKioqKioqLyBcdFx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcbi8qKioqKiovIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4vKioqKioqLyBcdH1cbi8qKioqKiovXG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBtb2R1bGVzO1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5jID0gaW5zdGFsbGVkTW9kdWxlcztcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb24gZm9yIGhhcm1vbnkgZXhwb3J0c1xuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihleHBvcnRzLCBuYW1lLCBnZXR0ZXIpIHtcbi8qKioqKiovIFx0XHRpZighX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIG5hbWUpKSB7XG4vKioqKioqLyBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGdldHRlciB9KTtcbi8qKioqKiovIFx0XHR9XG4vKioqKioqLyBcdH07XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18uciA9IGZ1bmN0aW9uKGV4cG9ydHMpIHtcbi8qKioqKiovIFx0XHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcbi8qKioqKiovIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuLyoqKioqKi8gXHRcdH1cbi8qKioqKiovIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuLyoqKioqKi8gXHR9O1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gY3JlYXRlIGEgZmFrZSBuYW1lc3BhY2Ugb2JqZWN0XG4vKioqKioqLyBcdC8vIG1vZGUgJiAxOiB2YWx1ZSBpcyBhIG1vZHVsZSBpZCwgcmVxdWlyZSBpdFxuLyoqKioqKi8gXHQvLyBtb2RlICYgMjogbWVyZ2UgYWxsIHByb3BlcnRpZXMgb2YgdmFsdWUgaW50byB0aGUgbnNcbi8qKioqKiovIFx0Ly8gbW9kZSAmIDQ6IHJldHVybiB2YWx1ZSB3aGVuIGFscmVhZHkgbnMgb2JqZWN0XG4vKioqKioqLyBcdC8vIG1vZGUgJiA4fDE6IGJlaGF2ZSBsaWtlIHJlcXVpcmVcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy50ID0gZnVuY3Rpb24odmFsdWUsIG1vZGUpIHtcbi8qKioqKiovIFx0XHRpZihtb2RlICYgMSkgdmFsdWUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKHZhbHVlKTtcbi8qKioqKiovIFx0XHRpZihtb2RlICYgOCkgcmV0dXJuIHZhbHVlO1xuLyoqKioqKi8gXHRcdGlmKChtb2RlICYgNCkgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAmJiB2YWx1ZS5fX2VzTW9kdWxlKSByZXR1cm4gdmFsdWU7XG4vKioqKioqLyBcdFx0dmFyIG5zID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIobnMpO1xuLyoqKioqKi8gXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShucywgJ2RlZmF1bHQnLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2YWx1ZSB9KTtcbi8qKioqKiovIFx0XHRpZihtb2RlICYgMiAmJiB0eXBlb2YgdmFsdWUgIT0gJ3N0cmluZycpIGZvcih2YXIga2V5IGluIHZhbHVlKSBfX3dlYnBhY2tfcmVxdWlyZV9fLmQobnMsIGtleSwgZnVuY3Rpb24oa2V5KSB7IHJldHVybiB2YWx1ZVtrZXldOyB9LmJpbmQobnVsbCwga2V5KSk7XG4vKioqKioqLyBcdFx0cmV0dXJuIG5zO1xuLyoqKioqKi8gXHR9O1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5uID0gZnVuY3Rpb24obW9kdWxlKSB7XG4vKioqKioqLyBcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4vKioqKioqLyBcdFx0XHRmdW5jdGlvbiBnZXREZWZhdWx0KCkgeyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOlxuLyoqKioqKi8gXHRcdFx0ZnVuY3Rpb24gZ2V0TW9kdWxlRXhwb3J0cygpIHsgcmV0dXJuIG1vZHVsZTsgfTtcbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7XG4vKioqKioqLyBcdFx0cmV0dXJuIGdldHRlcjtcbi8qKioqKiovIFx0fTtcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbFxuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5jdGlvbihvYmplY3QsIHByb3BlcnR5KSB7IHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwcm9wZXJ0eSk7IH07XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIlwiO1xuLyoqKioqKi9cbi8qKioqKiovXG4vKioqKioqLyBcdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuLyoqKioqKi8gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSBcIi4vc3JjL21haW4vanMvaW5kZXgudHNcIik7XG4vKioqKioqLyB9KVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKiovICh7XG5cbi8qKiovIFwiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9saWIvY3NzLWJhc2UuanNcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9saWIvY3NzLWJhc2UuanMgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiEgbm8gc3RhdGljIGV4cG9ydHMgZm91bmQgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMpIHtcblxuLypcblx0TUlUIExpY2Vuc2UgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHBcblx0QXV0aG9yIFRvYmlhcyBLb3BwZXJzIEBzb2tyYVxuKi9cbi8vIGNzcyBiYXNlIGNvZGUsIGluamVjdGVkIGJ5IHRoZSBjc3MtbG9hZGVyXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKHVzZVNvdXJjZU1hcCkge1xuXHR2YXIgbGlzdCA9IFtdO1xuXG5cdC8vIHJldHVybiB0aGUgbGlzdCBvZiBtb2R1bGVzIGFzIGNzcyBzdHJpbmdcblx0bGlzdC50b1N0cmluZyA9IGZ1bmN0aW9uIHRvU3RyaW5nKCkge1xuXHRcdHJldHVybiB0aGlzLm1hcChmdW5jdGlvbiAoaXRlbSkge1xuXHRcdFx0dmFyIGNvbnRlbnQgPSBjc3NXaXRoTWFwcGluZ1RvU3RyaW5nKGl0ZW0sIHVzZVNvdXJjZU1hcCk7XG5cdFx0XHRpZihpdGVtWzJdKSB7XG5cdFx0XHRcdHJldHVybiBcIkBtZWRpYSBcIiArIGl0ZW1bMl0gKyBcIntcIiArIGNvbnRlbnQgKyBcIn1cIjtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHJldHVybiBjb250ZW50O1xuXHRcdFx0fVxuXHRcdH0pLmpvaW4oXCJcIik7XG5cdH07XG5cblx0Ly8gaW1wb3J0IGEgbGlzdCBvZiBtb2R1bGVzIGludG8gdGhlIGxpc3Rcblx0bGlzdC5pID0gZnVuY3Rpb24obW9kdWxlcywgbWVkaWFRdWVyeSkge1xuXHRcdGlmKHR5cGVvZiBtb2R1bGVzID09PSBcInN0cmluZ1wiKVxuXHRcdFx0bW9kdWxlcyA9IFtbbnVsbCwgbW9kdWxlcywgXCJcIl1dO1xuXHRcdHZhciBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzID0ge307XG5cdFx0Zm9yKHZhciBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpKyspIHtcblx0XHRcdHZhciBpZCA9IHRoaXNbaV1bMF07XG5cdFx0XHRpZih0eXBlb2YgaWQgPT09IFwibnVtYmVyXCIpXG5cdFx0XHRcdGFscmVhZHlJbXBvcnRlZE1vZHVsZXNbaWRdID0gdHJ1ZTtcblx0XHR9XG5cdFx0Zm9yKGkgPSAwOyBpIDwgbW9kdWxlcy5sZW5ndGg7IGkrKykge1xuXHRcdFx0dmFyIGl0ZW0gPSBtb2R1bGVzW2ldO1xuXHRcdFx0Ly8gc2tpcCBhbHJlYWR5IGltcG9ydGVkIG1vZHVsZVxuXHRcdFx0Ly8gdGhpcyBpbXBsZW1lbnRhdGlvbiBpcyBub3QgMTAwJSBwZXJmZWN0IGZvciB3ZWlyZCBtZWRpYSBxdWVyeSBjb21iaW5hdGlvbnNcblx0XHRcdC8vICB3aGVuIGEgbW9kdWxlIGlzIGltcG9ydGVkIG11bHRpcGxlIHRpbWVzIHdpdGggZGlmZmVyZW50IG1lZGlhIHF1ZXJpZXMuXG5cdFx0XHQvLyAgSSBob3BlIHRoaXMgd2lsbCBuZXZlciBvY2N1ciAoSGV5IHRoaXMgd2F5IHdlIGhhdmUgc21hbGxlciBidW5kbGVzKVxuXHRcdFx0aWYodHlwZW9mIGl0ZW1bMF0gIT09IFwibnVtYmVyXCIgfHwgIWFscmVhZHlJbXBvcnRlZE1vZHVsZXNbaXRlbVswXV0pIHtcblx0XHRcdFx0aWYobWVkaWFRdWVyeSAmJiAhaXRlbVsyXSkge1xuXHRcdFx0XHRcdGl0ZW1bMl0gPSBtZWRpYVF1ZXJ5O1xuXHRcdFx0XHR9IGVsc2UgaWYobWVkaWFRdWVyeSkge1xuXHRcdFx0XHRcdGl0ZW1bMl0gPSBcIihcIiArIGl0ZW1bMl0gKyBcIikgYW5kIChcIiArIG1lZGlhUXVlcnkgKyBcIilcIjtcblx0XHRcdFx0fVxuXHRcdFx0XHRsaXN0LnB1c2goaXRlbSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9O1xuXHRyZXR1cm4gbGlzdDtcbn07XG5cbmZ1bmN0aW9uIGNzc1dpdGhNYXBwaW5nVG9TdHJpbmcoaXRlbSwgdXNlU291cmNlTWFwKSB7XG5cdHZhciBjb250ZW50ID0gaXRlbVsxXSB8fCAnJztcblx0dmFyIGNzc01hcHBpbmcgPSBpdGVtWzNdO1xuXHRpZiAoIWNzc01hcHBpbmcpIHtcblx0XHRyZXR1cm4gY29udGVudDtcblx0fVxuXG5cdGlmICh1c2VTb3VyY2VNYXAgJiYgdHlwZW9mIGJ0b2EgPT09ICdmdW5jdGlvbicpIHtcblx0XHR2YXIgc291cmNlTWFwcGluZyA9IHRvQ29tbWVudChjc3NNYXBwaW5nKTtcblx0XHR2YXIgc291cmNlVVJMcyA9IGNzc01hcHBpbmcuc291cmNlcy5tYXAoZnVuY3Rpb24gKHNvdXJjZSkge1xuXHRcdFx0cmV0dXJuICcvKiMgc291cmNlVVJMPScgKyBjc3NNYXBwaW5nLnNvdXJjZVJvb3QgKyBzb3VyY2UgKyAnICovJ1xuXHRcdH0pO1xuXG5cdFx0cmV0dXJuIFtjb250ZW50XS5jb25jYXQoc291cmNlVVJMcykuY29uY2F0KFtzb3VyY2VNYXBwaW5nXSkuam9pbignXFxuJyk7XG5cdH1cblxuXHRyZXR1cm4gW2NvbnRlbnRdLmpvaW4oJ1xcbicpO1xufVxuXG4vLyBBZGFwdGVkIGZyb20gY29udmVydC1zb3VyY2UtbWFwIChNSVQpXG5mdW5jdGlvbiB0b0NvbW1lbnQoc291cmNlTWFwKSB7XG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlZlxuXHR2YXIgYmFzZTY0ID0gYnRvYSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoc291cmNlTWFwKSkpKTtcblx0dmFyIGRhdGEgPSAnc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsJyArIGJhc2U2NDtcblxuXHRyZXR1cm4gJy8qIyAnICsgZGF0YSArICcgKi8nO1xufVxuXG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4vbm9kZV9tb2R1bGVzL3Byb2Nlc3MvYnJvd3Nlci5qc1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi9ub2RlX21vZHVsZXMvcHJvY2Vzcy9icm93c2VyLmpzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qISBubyBzdGF0aWMgZXhwb3J0cyBmb3VuZCAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cykge1xuXG4vLyBzaGltIGZvciB1c2luZyBwcm9jZXNzIGluIGJyb3dzZXJcbnZhciBwcm9jZXNzID0gbW9kdWxlLmV4cG9ydHMgPSB7fTtcblxuLy8gY2FjaGVkIGZyb20gd2hhdGV2ZXIgZ2xvYmFsIGlzIHByZXNlbnQgc28gdGhhdCB0ZXN0IHJ1bm5lcnMgdGhhdCBzdHViIGl0XG4vLyBkb24ndCBicmVhayB0aGluZ3MuICBCdXQgd2UgbmVlZCB0byB3cmFwIGl0IGluIGEgdHJ5IGNhdGNoIGluIGNhc2UgaXQgaXNcbi8vIHdyYXBwZWQgaW4gc3RyaWN0IG1vZGUgY29kZSB3aGljaCBkb2Vzbid0IGRlZmluZSBhbnkgZ2xvYmFscy4gIEl0J3MgaW5zaWRlIGFcbi8vIGZ1bmN0aW9uIGJlY2F1c2UgdHJ5L2NhdGNoZXMgZGVvcHRpbWl6ZSBpbiBjZXJ0YWluIGVuZ2luZXMuXG5cbnZhciBjYWNoZWRTZXRUaW1lb3V0O1xudmFyIGNhY2hlZENsZWFyVGltZW91dDtcblxuZnVuY3Rpb24gZGVmYXVsdFNldFRpbW91dCgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3NldFRpbWVvdXQgaGFzIG5vdCBiZWVuIGRlZmluZWQnKTtcbn1cbmZ1bmN0aW9uIGRlZmF1bHRDbGVhclRpbWVvdXQgKCkge1xuICAgIHRocm93IG5ldyBFcnJvcignY2xlYXJUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkJyk7XG59XG4oZnVuY3Rpb24gKCkge1xuICAgIHRyeSB7XG4gICAgICAgIGlmICh0eXBlb2Ygc2V0VGltZW91dCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgY2FjaGVkU2V0VGltZW91dCA9IHNldFRpbWVvdXQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjYWNoZWRTZXRUaW1lb3V0ID0gZGVmYXVsdFNldFRpbW91dDtcbiAgICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY2FjaGVkU2V0VGltZW91dCA9IGRlZmF1bHRTZXRUaW1vdXQ7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIGlmICh0eXBlb2YgY2xlYXJUaW1lb3V0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBjYWNoZWRDbGVhclRpbWVvdXQgPSBjbGVhclRpbWVvdXQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjYWNoZWRDbGVhclRpbWVvdXQgPSBkZWZhdWx0Q2xlYXJUaW1lb3V0O1xuICAgICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjYWNoZWRDbGVhclRpbWVvdXQgPSBkZWZhdWx0Q2xlYXJUaW1lb3V0O1xuICAgIH1cbn0gKCkpXG5mdW5jdGlvbiBydW5UaW1lb3V0KGZ1bikge1xuICAgIGlmIChjYWNoZWRTZXRUaW1lb3V0ID09PSBzZXRUaW1lb3V0KSB7XG4gICAgICAgIC8vbm9ybWFsIGVudmlyb21lbnRzIGluIHNhbmUgc2l0dWF0aW9uc1xuICAgICAgICByZXR1cm4gc2V0VGltZW91dChmdW4sIDApO1xuICAgIH1cbiAgICAvLyBpZiBzZXRUaW1lb3V0IHdhc24ndCBhdmFpbGFibGUgYnV0IHdhcyBsYXR0ZXIgZGVmaW5lZFxuICAgIGlmICgoY2FjaGVkU2V0VGltZW91dCA9PT0gZGVmYXVsdFNldFRpbW91dCB8fCAhY2FjaGVkU2V0VGltZW91dCkgJiYgc2V0VGltZW91dCkge1xuICAgICAgICBjYWNoZWRTZXRUaW1lb3V0ID0gc2V0VGltZW91dDtcbiAgICAgICAgcmV0dXJuIHNldFRpbWVvdXQoZnVuLCAwKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgLy8gd2hlbiB3aGVuIHNvbWVib2R5IGhhcyBzY3Jld2VkIHdpdGggc2V0VGltZW91dCBidXQgbm8gSS5FLiBtYWRkbmVzc1xuICAgICAgICByZXR1cm4gY2FjaGVkU2V0VGltZW91dChmdW4sIDApO1xuICAgIH0gY2F0Y2goZSl7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBXaGVuIHdlIGFyZSBpbiBJLkUuIGJ1dCB0aGUgc2NyaXB0IGhhcyBiZWVuIGV2YWxlZCBzbyBJLkUuIGRvZXNuJ3QgdHJ1c3QgdGhlIGdsb2JhbCBvYmplY3Qgd2hlbiBjYWxsZWQgbm9ybWFsbHlcbiAgICAgICAgICAgIHJldHVybiBjYWNoZWRTZXRUaW1lb3V0LmNhbGwobnVsbCwgZnVuLCAwKTtcbiAgICAgICAgfSBjYXRjaChlKXtcbiAgICAgICAgICAgIC8vIHNhbWUgYXMgYWJvdmUgYnV0IHdoZW4gaXQncyBhIHZlcnNpb24gb2YgSS5FLiB0aGF0IG11c3QgaGF2ZSB0aGUgZ2xvYmFsIG9iamVjdCBmb3IgJ3RoaXMnLCBob3BmdWxseSBvdXIgY29udGV4dCBjb3JyZWN0IG90aGVyd2lzZSBpdCB3aWxsIHRocm93IGEgZ2xvYmFsIGVycm9yXG4gICAgICAgICAgICByZXR1cm4gY2FjaGVkU2V0VGltZW91dC5jYWxsKHRoaXMsIGZ1biwgMCk7XG4gICAgICAgIH1cbiAgICB9XG5cblxufVxuZnVuY3Rpb24gcnVuQ2xlYXJUaW1lb3V0KG1hcmtlcikge1xuICAgIGlmIChjYWNoZWRDbGVhclRpbWVvdXQgPT09IGNsZWFyVGltZW91dCkge1xuICAgICAgICAvL25vcm1hbCBlbnZpcm9tZW50cyBpbiBzYW5lIHNpdHVhdGlvbnNcbiAgICAgICAgcmV0dXJuIGNsZWFyVGltZW91dChtYXJrZXIpO1xuICAgIH1cbiAgICAvLyBpZiBjbGVhclRpbWVvdXQgd2Fzbid0IGF2YWlsYWJsZSBidXQgd2FzIGxhdHRlciBkZWZpbmVkXG4gICAgaWYgKChjYWNoZWRDbGVhclRpbWVvdXQgPT09IGRlZmF1bHRDbGVhclRpbWVvdXQgfHwgIWNhY2hlZENsZWFyVGltZW91dCkgJiYgY2xlYXJUaW1lb3V0KSB7XG4gICAgICAgIGNhY2hlZENsZWFyVGltZW91dCA9IGNsZWFyVGltZW91dDtcbiAgICAgICAgcmV0dXJuIGNsZWFyVGltZW91dChtYXJrZXIpO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICAvLyB3aGVuIHdoZW4gc29tZWJvZHkgaGFzIHNjcmV3ZWQgd2l0aCBzZXRUaW1lb3V0IGJ1dCBubyBJLkUuIG1hZGRuZXNzXG4gICAgICAgIHJldHVybiBjYWNoZWRDbGVhclRpbWVvdXQobWFya2VyKTtcbiAgICB9IGNhdGNoIChlKXtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIC8vIFdoZW4gd2UgYXJlIGluIEkuRS4gYnV0IHRoZSBzY3JpcHQgaGFzIGJlZW4gZXZhbGVkIHNvIEkuRS4gZG9lc24ndCAgdHJ1c3QgdGhlIGdsb2JhbCBvYmplY3Qgd2hlbiBjYWxsZWQgbm9ybWFsbHlcbiAgICAgICAgICAgIHJldHVybiBjYWNoZWRDbGVhclRpbWVvdXQuY2FsbChudWxsLCBtYXJrZXIpO1xuICAgICAgICB9IGNhdGNoIChlKXtcbiAgICAgICAgICAgIC8vIHNhbWUgYXMgYWJvdmUgYnV0IHdoZW4gaXQncyBhIHZlcnNpb24gb2YgSS5FLiB0aGF0IG11c3QgaGF2ZSB0aGUgZ2xvYmFsIG9iamVjdCBmb3IgJ3RoaXMnLCBob3BmdWxseSBvdXIgY29udGV4dCBjb3JyZWN0IG90aGVyd2lzZSBpdCB3aWxsIHRocm93IGEgZ2xvYmFsIGVycm9yLlxuICAgICAgICAgICAgLy8gU29tZSB2ZXJzaW9ucyBvZiBJLkUuIGhhdmUgZGlmZmVyZW50IHJ1bGVzIGZvciBjbGVhclRpbWVvdXQgdnMgc2V0VGltZW91dFxuICAgICAgICAgICAgcmV0dXJuIGNhY2hlZENsZWFyVGltZW91dC5jYWxsKHRoaXMsIG1hcmtlcik7XG4gICAgICAgIH1cbiAgICB9XG5cblxuXG59XG52YXIgcXVldWUgPSBbXTtcbnZhciBkcmFpbmluZyA9IGZhbHNlO1xudmFyIGN1cnJlbnRRdWV1ZTtcbnZhciBxdWV1ZUluZGV4ID0gLTE7XG5cbmZ1bmN0aW9uIGNsZWFuVXBOZXh0VGljaygpIHtcbiAgICBpZiAoIWRyYWluaW5nIHx8ICFjdXJyZW50UXVldWUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBkcmFpbmluZyA9IGZhbHNlO1xuICAgIGlmIChjdXJyZW50UXVldWUubGVuZ3RoKSB7XG4gICAgICAgIHF1ZXVlID0gY3VycmVudFF1ZXVlLmNvbmNhdChxdWV1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcXVldWVJbmRleCA9IC0xO1xuICAgIH1cbiAgICBpZiAocXVldWUubGVuZ3RoKSB7XG4gICAgICAgIGRyYWluUXVldWUoKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGRyYWluUXVldWUoKSB7XG4gICAgaWYgKGRyYWluaW5nKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmFyIHRpbWVvdXQgPSBydW5UaW1lb3V0KGNsZWFuVXBOZXh0VGljayk7XG4gICAgZHJhaW5pbmcgPSB0cnVlO1xuXG4gICAgdmFyIGxlbiA9IHF1ZXVlLmxlbmd0aDtcbiAgICB3aGlsZShsZW4pIHtcbiAgICAgICAgY3VycmVudFF1ZXVlID0gcXVldWU7XG4gICAgICAgIHF1ZXVlID0gW107XG4gICAgICAgIHdoaWxlICgrK3F1ZXVlSW5kZXggPCBsZW4pIHtcbiAgICAgICAgICAgIGlmIChjdXJyZW50UXVldWUpIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50UXVldWVbcXVldWVJbmRleF0ucnVuKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcXVldWVJbmRleCA9IC0xO1xuICAgICAgICBsZW4gPSBxdWV1ZS5sZW5ndGg7XG4gICAgfVxuICAgIGN1cnJlbnRRdWV1ZSA9IG51bGw7XG4gICAgZHJhaW5pbmcgPSBmYWxzZTtcbiAgICBydW5DbGVhclRpbWVvdXQodGltZW91dCk7XG59XG5cbnByb2Nlc3MubmV4dFRpY2sgPSBmdW5jdGlvbiAoZnVuKSB7XG4gICAgdmFyIGFyZ3MgPSBuZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aCAtIDEpO1xuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID4gMSkge1xuICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgYXJnc1tpIC0gMV0gPSBhcmd1bWVudHNbaV07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcXVldWUucHVzaChuZXcgSXRlbShmdW4sIGFyZ3MpKTtcbiAgICBpZiAocXVldWUubGVuZ3RoID09PSAxICYmICFkcmFpbmluZykge1xuICAgICAgICBydW5UaW1lb3V0KGRyYWluUXVldWUpO1xuICAgIH1cbn07XG5cbi8vIHY4IGxpa2VzIHByZWRpY3RpYmxlIG9iamVjdHNcbmZ1bmN0aW9uIEl0ZW0oZnVuLCBhcnJheSkge1xuICAgIHRoaXMuZnVuID0gZnVuO1xuICAgIHRoaXMuYXJyYXkgPSBhcnJheTtcbn1cbkl0ZW0ucHJvdG90eXBlLnJ1biA9IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLmZ1bi5hcHBseShudWxsLCB0aGlzLmFycmF5KTtcbn07XG5wcm9jZXNzLnRpdGxlID0gJ2Jyb3dzZXInO1xucHJvY2Vzcy5icm93c2VyID0gdHJ1ZTtcbnByb2Nlc3MuZW52ID0ge307XG5wcm9jZXNzLmFyZ3YgPSBbXTtcbnByb2Nlc3MudmVyc2lvbiA9ICcnOyAvLyBlbXB0eSBzdHJpbmcgdG8gYXZvaWQgcmVnZXhwIGlzc3Vlc1xucHJvY2Vzcy52ZXJzaW9ucyA9IHt9O1xuXG5mdW5jdGlvbiBub29wKCkge31cblxucHJvY2Vzcy5vbiA9IG5vb3A7XG5wcm9jZXNzLmFkZExpc3RlbmVyID0gbm9vcDtcbnByb2Nlc3Mub25jZSA9IG5vb3A7XG5wcm9jZXNzLm9mZiA9IG5vb3A7XG5wcm9jZXNzLnJlbW92ZUxpc3RlbmVyID0gbm9vcDtcbnByb2Nlc3MucmVtb3ZlQWxsTGlzdGVuZXJzID0gbm9vcDtcbnByb2Nlc3MuZW1pdCA9IG5vb3A7XG5wcm9jZXNzLnByZXBlbmRMaXN0ZW5lciA9IG5vb3A7XG5wcm9jZXNzLnByZXBlbmRPbmNlTGlzdGVuZXIgPSBub29wO1xuXG5wcm9jZXNzLmxpc3RlbmVycyA9IGZ1bmN0aW9uIChuYW1lKSB7IHJldHVybiBbXSB9XG5cbnByb2Nlc3MuYmluZGluZyA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdwcm9jZXNzLmJpbmRpbmcgaXMgbm90IHN1cHBvcnRlZCcpO1xufTtcblxucHJvY2Vzcy5jd2QgPSBmdW5jdGlvbiAoKSB7IHJldHVybiAnLycgfTtcbnByb2Nlc3MuY2hkaXIgPSBmdW5jdGlvbiAoZGlyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdwcm9jZXNzLmNoZGlyIGlzIG5vdCBzdXBwb3J0ZWQnKTtcbn07XG5wcm9jZXNzLnVtYXNrID0gZnVuY3Rpb24oKSB7IHJldHVybiAwOyB9O1xuXG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4vc3JjL21haW4vanMvYXBpL2J1dHRvbi50c1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi9zcmMvbWFpbi9qcy9hcGkvYnV0dG9uLnRzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qISBubyBzdGF0aWMgZXhwb3J0cyBmb3VuZCAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5CdXR0b25BcGkgPSB2b2lkIDA7XG52YXIgQnV0dG9uQXBpID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBCdXR0b25BcGkoYnV0dG9uQ29udHJvbGxlcikge1xuICAgICAgICB0aGlzLmNvbnRyb2xsZXIgPSBidXR0b25Db250cm9sbGVyO1xuICAgIH1cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQnV0dG9uQXBpLnByb3RvdHlwZSwgXCJoaWRkZW5cIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2xsZXIudmlld01vZGVsLmhpZGRlbjtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAoaGlkZGVuKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2xsZXIudmlld01vZGVsLmhpZGRlbiA9IGhpZGRlbjtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIEJ1dHRvbkFwaS5wcm90b3R5cGUuZGlzcG9zZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5jb250cm9sbGVyLnZpZXdNb2RlbC5kaXNwb3NlKCk7XG4gICAgfTtcbiAgICBCdXR0b25BcGkucHJvdG90eXBlLm9uID0gZnVuY3Rpb24gKGV2ZW50TmFtZSwgaGFuZGxlcikge1xuICAgICAgICB2YXIgZW1pdHRlciA9IHRoaXMuY29udHJvbGxlci5idXR0b24uZW1pdHRlcjtcbiAgICAgICAgZW1pdHRlci5vbihldmVudE5hbWUsIGhhbmRsZXIuYmluZCh0aGlzKSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG4gICAgcmV0dXJuIEJ1dHRvbkFwaTtcbn0oKSk7XG5leHBvcnRzLkJ1dHRvbkFwaSA9IEJ1dHRvbkFwaTtcblxuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuL3NyYy9tYWluL2pzL2FwaS9ldmVudC1oYW5kbGVyLWFkYXB0ZXJzLnRzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi9zcmMvbWFpbi9qcy9hcGkvZXZlbnQtaGFuZGxlci1hZGFwdGVycy50cyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohIG5vIHN0YXRpYyBleHBvcnRzIGZvdW5kICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmZvbGRlciA9IGV4cG9ydHMubW9uaXRvciA9IGV4cG9ydHMuaW5wdXQgPSB2b2lkIDA7XG4vKipcbiAqIEBoaWRkZW5cbiAqL1xuZnVuY3Rpb24gaW5wdXQoX2EpIHtcbiAgICB2YXIgYmluZGluZyA9IF9hLmJpbmRpbmcsIGV2ZW50TmFtZSA9IF9hLmV2ZW50TmFtZSwgaGFuZGxlciA9IF9hLmhhbmRsZXI7XG4gICAgaWYgKGV2ZW50TmFtZSA9PT0gJ2NoYW5nZScpIHtcbiAgICAgICAgdmFyIGVtaXR0ZXIgPSBiaW5kaW5nLmVtaXR0ZXI7XG4gICAgICAgIGVtaXR0ZXIub24oJ2NoYW5nZScsIGZ1bmN0aW9uIChldikge1xuICAgICAgICAgICAgaGFuZGxlcihldi5zZW5kZXIuZ2V0VmFsdWVUb1dyaXRlKGV2LnJhd1ZhbHVlKSk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbmV4cG9ydHMuaW5wdXQgPSBpbnB1dDtcbi8qKlxuICogQGhpZGRlblxuICovXG5mdW5jdGlvbiBtb25pdG9yKF9hKSB7XG4gICAgdmFyIGJpbmRpbmcgPSBfYS5iaW5kaW5nLCBldmVudE5hbWUgPSBfYS5ldmVudE5hbWUsIGhhbmRsZXIgPSBfYS5oYW5kbGVyO1xuICAgIGlmIChldmVudE5hbWUgPT09ICd1cGRhdGUnKSB7XG4gICAgICAgIHZhciBlbWl0dGVyID0gYmluZGluZy5lbWl0dGVyO1xuICAgICAgICBlbWl0dGVyLm9uKCd1cGRhdGUnLCBmdW5jdGlvbiAoZXYpIHtcbiAgICAgICAgICAgIGhhbmRsZXIoZXYuc2VuZGVyLnRhcmdldC5yZWFkKCkpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5leHBvcnRzLm1vbml0b3IgPSBtb25pdG9yO1xuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbmZ1bmN0aW9uIGZvbGRlcihfYSkge1xuICAgIHZhciBldmVudE5hbWUgPSBfYS5ldmVudE5hbWUsIGZvbGRlciA9IF9hLmZvbGRlciwgaGFuZGxlciA9IF9hLmhhbmRsZXIsIHVpQ29udGFpbmVyID0gX2EudWlDb250YWluZXI7XG4gICAgaWYgKGV2ZW50TmFtZSA9PT0gJ2NoYW5nZScpIHtcbiAgICAgICAgdmFyIGVtaXR0ZXIgPSB1aUNvbnRhaW5lci5lbWl0dGVyO1xuICAgICAgICBlbWl0dGVyLm9uKCdpbnB1dGNoYW5nZScsIGZ1bmN0aW9uIChldikge1xuICAgICAgICAgICAgLy8gVE9ETzogRmluZCBtb3JlIHR5cGUtc2FmZSB3YXlcbiAgICAgICAgICAgIGhhbmRsZXIoZXYuaW5wdXRCaW5kaW5nLmdldFZhbHVlVG9Xcml0ZShldi52YWx1ZSkpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgaWYgKGV2ZW50TmFtZSA9PT0gJ3VwZGF0ZScpIHtcbiAgICAgICAgdmFyIGVtaXR0ZXIgPSB1aUNvbnRhaW5lci5lbWl0dGVyO1xuICAgICAgICBlbWl0dGVyLm9uKCdtb25pdG9ydXBkYXRlJywgZnVuY3Rpb24gKGV2KSB7XG4gICAgICAgICAgICBoYW5kbGVyKGV2Lm1vbml0b3JCaW5kaW5nLnRhcmdldC5yZWFkKCkpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgaWYgKGV2ZW50TmFtZSA9PT0gJ2ZvbGQnKSB7XG4gICAgICAgIHVpQ29udGFpbmVyLmVtaXR0ZXIub24oJ2l0ZW1mb2xkJywgZnVuY3Rpb24gKGV2KSB7XG4gICAgICAgICAgICBoYW5kbGVyKGV2LmV4cGFuZGVkKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGZvbGRlciA9PT0gbnVsbCB8fCBmb2xkZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGZvbGRlci5lbWl0dGVyLm9uKCdjaGFuZ2UnLCBmdW5jdGlvbiAoZXYpIHtcbiAgICAgICAgICAgIGlmIChldi5wcm9wZXJ0eU5hbWUgIT09ICdleHBhbmRlZCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBoYW5kbGVyKGV2LnNlbmRlci5leHBhbmRlZCk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbmV4cG9ydHMuZm9sZGVyID0gZm9sZGVyO1xuXG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4vc3JjL21haW4vanMvYXBpL2ZvbGRlci50c1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi9zcmMvbWFpbi9qcy9hcGkvZm9sZGVyLnRzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qISBubyBzdGF0aWMgZXhwb3J0cyBmb3VuZCAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcblxudmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuRm9sZGVyQXBpID0gdm9pZCAwO1xudmFyIElucHV0QmluZGluZ0NvbnRyb2xsZXJDcmVhdG9ycyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2NvbnRyb2xsZXIvYmluZGluZy1jcmVhdG9ycy9pbnB1dCAqLyBcIi4vc3JjL21haW4vanMvY29udHJvbGxlci9iaW5kaW5nLWNyZWF0b3JzL2lucHV0LnRzXCIpO1xudmFyIE1vbml0b3JCaW5kaW5nQ29udHJvbGxlckNyZWF0b3JzID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vY29udHJvbGxlci9iaW5kaW5nLWNyZWF0b3JzL21vbml0b3IgKi8gXCIuL3NyYy9tYWluL2pzL2NvbnRyb2xsZXIvYmluZGluZy1jcmVhdG9ycy9tb25pdG9yLnRzXCIpO1xudmFyIGJ1dHRvbl8xID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vY29udHJvbGxlci9idXR0b24gKi8gXCIuL3NyYy9tYWluL2pzL2NvbnRyb2xsZXIvYnV0dG9uLnRzXCIpO1xudmFyIGZvbGRlcl8xID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vY29udHJvbGxlci9mb2xkZXIgKi8gXCIuL3NyYy9tYWluL2pzL2NvbnRyb2xsZXIvZm9sZGVyLnRzXCIpO1xudmFyIHNlcGFyYXRvcl8xID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vY29udHJvbGxlci9zZXBhcmF0b3IgKi8gXCIuL3NyYy9tYWluL2pzL2NvbnRyb2xsZXIvc2VwYXJhdG9yLnRzXCIpO1xudmFyIHRhcmdldF8xID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vbW9kZWwvdGFyZ2V0ICovIFwiLi9zcmMvbWFpbi9qcy9tb2RlbC90YXJnZXQudHNcIik7XG52YXIgdmlld19tb2RlbF8xID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vbW9kZWwvdmlldy1tb2RlbCAqLyBcIi4vc3JjL21haW4vanMvbW9kZWwvdmlldy1tb2RlbC50c1wiKTtcbnZhciBidXR0b25fMiA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vYnV0dG9uICovIFwiLi9zcmMvbWFpbi9qcy9hcGkvYnV0dG9uLnRzXCIpO1xudmFyIEV2ZW50SGFuZGxlckFkYXB0ZXJzID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9ldmVudC1oYW5kbGVyLWFkYXB0ZXJzICovIFwiLi9zcmMvbWFpbi9qcy9hcGkvZXZlbnQtaGFuZGxlci1hZGFwdGVycy50c1wiKTtcbnZhciBpbnB1dF9iaW5kaW5nXzEgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL2lucHV0LWJpbmRpbmcgKi8gXCIuL3NyYy9tYWluL2pzL2FwaS9pbnB1dC1iaW5kaW5nLnRzXCIpO1xudmFyIG1vbml0b3JfYmluZGluZ18xID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9tb25pdG9yLWJpbmRpbmcgKi8gXCIuL3NyYy9tYWluL2pzL2FwaS9tb25pdG9yLWJpbmRpbmcudHNcIik7XG52YXIgc2VwYXJhdG9yXzIgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL3NlcGFyYXRvciAqLyBcIi4vc3JjL21haW4vanMvYXBpL3NlcGFyYXRvci50c1wiKTtcbnZhciBGb2xkZXJBcGkgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIGZ1bmN0aW9uIEZvbGRlckFwaShmb2xkZXJDb250cm9sbGVyKSB7XG4gICAgICAgIHRoaXMuY29udHJvbGxlciA9IGZvbGRlckNvbnRyb2xsZXI7XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGb2xkZXJBcGkucHJvdG90eXBlLCBcImV4cGFuZGVkXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sbGVyLmZvbGRlci5leHBhbmRlZDtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAoZXhwYW5kZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbGxlci5mb2xkZXIuZXhwYW5kZWQgPSBleHBhbmRlZDtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGb2xkZXJBcGkucHJvdG90eXBlLCBcImhpZGRlblwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbGxlci52aWV3TW9kZWwuaGlkZGVuO1xuICAgICAgICB9LFxuICAgICAgICBzZXQ6IGZ1bmN0aW9uIChoaWRkZW4pIHtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbGxlci52aWV3TW9kZWwuaGlkZGVuID0gaGlkZGVuO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgRm9sZGVyQXBpLnByb3RvdHlwZS5kaXNwb3NlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLmNvbnRyb2xsZXIudmlld01vZGVsLmRpc3Bvc2UoKTtcbiAgICB9O1xuICAgIEZvbGRlckFwaS5wcm90b3R5cGUuYWRkSW5wdXQgPSBmdW5jdGlvbiAob2JqZWN0LCBrZXksIG9wdF9wYXJhbXMpIHtcbiAgICAgICAgdmFyIHBhcmFtcyA9IG9wdF9wYXJhbXMgfHwge307XG4gICAgICAgIHZhciB1YyA9IElucHV0QmluZGluZ0NvbnRyb2xsZXJDcmVhdG9ycy5jcmVhdGUodGhpcy5jb250cm9sbGVyLmRvY3VtZW50LCBuZXcgdGFyZ2V0XzEuVGFyZ2V0KG9iamVjdCwga2V5LCBwYXJhbXMucHJlc2V0S2V5KSwgcGFyYW1zKTtcbiAgICAgICAgdGhpcy5jb250cm9sbGVyLnVpQ29udGFpbmVyLmFkZCh1YywgcGFyYW1zLmluZGV4KTtcbiAgICAgICAgcmV0dXJuIG5ldyBpbnB1dF9iaW5kaW5nXzEuSW5wdXRCaW5kaW5nQXBpKHVjKTtcbiAgICB9O1xuICAgIEZvbGRlckFwaS5wcm90b3R5cGUuYWRkTW9uaXRvciA9IGZ1bmN0aW9uIChvYmplY3QsIGtleSwgb3B0X3BhcmFtcykge1xuICAgICAgICB2YXIgcGFyYW1zID0gb3B0X3BhcmFtcyB8fCB7fTtcbiAgICAgICAgdmFyIHVjID0gTW9uaXRvckJpbmRpbmdDb250cm9sbGVyQ3JlYXRvcnMuY3JlYXRlKHRoaXMuY29udHJvbGxlci5kb2N1bWVudCwgbmV3IHRhcmdldF8xLlRhcmdldChvYmplY3QsIGtleSksIHBhcmFtcyk7XG4gICAgICAgIHRoaXMuY29udHJvbGxlci51aUNvbnRhaW5lci5hZGQodWMsIHBhcmFtcy5pbmRleCk7XG4gICAgICAgIHJldHVybiBuZXcgbW9uaXRvcl9iaW5kaW5nXzEuTW9uaXRvckJpbmRpbmdBcGkodWMpO1xuICAgIH07XG4gICAgRm9sZGVyQXBpLnByb3RvdHlwZS5hZGRGb2xkZXIgPSBmdW5jdGlvbiAocGFyYW1zKSB7XG4gICAgICAgIHZhciB1YyA9IG5ldyBmb2xkZXJfMS5Gb2xkZXJDb250cm9sbGVyKHRoaXMuY29udHJvbGxlci5kb2N1bWVudCwgX19hc3NpZ24oX19hc3NpZ24oe30sIHBhcmFtcyksIHsgdmlld01vZGVsOiBuZXcgdmlld19tb2RlbF8xLlZpZXdNb2RlbCgpIH0pKTtcbiAgICAgICAgdGhpcy5jb250cm9sbGVyLnVpQ29udGFpbmVyLmFkZCh1YywgcGFyYW1zLmluZGV4KTtcbiAgICAgICAgcmV0dXJuIG5ldyBGb2xkZXJBcGkodWMpO1xuICAgIH07XG4gICAgRm9sZGVyQXBpLnByb3RvdHlwZS5hZGRCdXR0b24gPSBmdW5jdGlvbiAocGFyYW1zKSB7XG4gICAgICAgIHZhciB1YyA9IG5ldyBidXR0b25fMS5CdXR0b25Db250cm9sbGVyKHRoaXMuY29udHJvbGxlci5kb2N1bWVudCwgX19hc3NpZ24oX19hc3NpZ24oe30sIHBhcmFtcyksIHsgdmlld01vZGVsOiBuZXcgdmlld19tb2RlbF8xLlZpZXdNb2RlbCgpIH0pKTtcbiAgICAgICAgdGhpcy5jb250cm9sbGVyLnVpQ29udGFpbmVyLmFkZCh1YywgcGFyYW1zLmluZGV4KTtcbiAgICAgICAgcmV0dXJuIG5ldyBidXR0b25fMi5CdXR0b25BcGkodWMpO1xuICAgIH07XG4gICAgRm9sZGVyQXBpLnByb3RvdHlwZS5hZGRTZXBhcmF0b3IgPSBmdW5jdGlvbiAob3B0X3BhcmFtcykge1xuICAgICAgICB2YXIgcGFyYW1zID0gb3B0X3BhcmFtcyB8fCB7fTtcbiAgICAgICAgdmFyIHVjID0gbmV3IHNlcGFyYXRvcl8xLlNlcGFyYXRvckNvbnRyb2xsZXIodGhpcy5jb250cm9sbGVyLmRvY3VtZW50LCB7XG4gICAgICAgICAgICB2aWV3TW9kZWw6IG5ldyB2aWV3X21vZGVsXzEuVmlld01vZGVsKCksXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNvbnRyb2xsZXIudWlDb250YWluZXIuYWRkKHVjLCBwYXJhbXMuaW5kZXgpO1xuICAgICAgICByZXR1cm4gbmV3IHNlcGFyYXRvcl8yLlNlcGFyYXRvckFwaSh1Yyk7XG4gICAgfTtcbiAgICBGb2xkZXJBcGkucHJvdG90eXBlLm9uID0gZnVuY3Rpb24gKGV2ZW50TmFtZSwgaGFuZGxlcikge1xuICAgICAgICBFdmVudEhhbmRsZXJBZGFwdGVycy5mb2xkZXIoe1xuICAgICAgICAgICAgZXZlbnROYW1lOiBldmVudE5hbWUsXG4gICAgICAgICAgICBmb2xkZXI6IHRoaXMuY29udHJvbGxlci5mb2xkZXIsXG4gICAgICAgICAgICBoYW5kbGVyOiBoYW5kbGVyLmJpbmQodGhpcyksXG4gICAgICAgICAgICB1aUNvbnRhaW5lcjogdGhpcy5jb250cm9sbGVyLnVpQ29udGFpbmVyLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcbiAgICByZXR1cm4gRm9sZGVyQXBpO1xufSgpKTtcbmV4cG9ydHMuRm9sZGVyQXBpID0gRm9sZGVyQXBpO1xuXG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4vc3JjL21haW4vanMvYXBpL2lucHV0LWJpbmRpbmcudHNcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuL3NyYy9tYWluL2pzL2FwaS9pbnB1dC1iaW5kaW5nLnRzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiEgbm8gc3RhdGljIGV4cG9ydHMgZm91bmQgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuSW5wdXRCaW5kaW5nQXBpID0gdm9pZCAwO1xudmFyIEhhbmRsZXJBZGFwdGVycyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vZXZlbnQtaGFuZGxlci1hZGFwdGVycyAqLyBcIi4vc3JjL21haW4vanMvYXBpL2V2ZW50LWhhbmRsZXItYWRhcHRlcnMudHNcIik7XG4vKipcbiAqIFRoZSBBUEkgZm9yIHRoZSBpbnB1dCBiaW5kaW5nIGJldHdlZW4gdGhlIHBhcmFtZXRlciBhbmQgdGhlIHBhbmUuXG4gKiBAcGFyYW0gSW4gVGhlIHR5cGUgaW5uZXIgVHdlYWtwYW5lLlxuICogQHBhcmFtIE91dCBUaGUgdHlwZSBvdXRlciBUd2Vha3BhbmUgKD0gcGFyYW1ldGVyIG9iamVjdCkuXG4gKi9cbnZhciBJbnB1dEJpbmRpbmdBcGkgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIGZ1bmN0aW9uIElucHV0QmluZGluZ0FwaShiaW5kaW5nQ29udHJvbGxlcikge1xuICAgICAgICB0aGlzLmNvbnRyb2xsZXIgPSBiaW5kaW5nQ29udHJvbGxlcjtcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KElucHV0QmluZGluZ0FwaS5wcm90b3R5cGUsIFwiaGlkZGVuXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sbGVyLnZpZXdNb2RlbC5oaWRkZW47XG4gICAgICAgIH0sXG4gICAgICAgIHNldDogZnVuY3Rpb24gKGhpZGRlbikge1xuICAgICAgICAgICAgdGhpcy5jb250cm9sbGVyLnZpZXdNb2RlbC5oaWRkZW4gPSBoaWRkZW47XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBJbnB1dEJpbmRpbmdBcGkucHJvdG90eXBlLmRpc3Bvc2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRoaXMuY29udHJvbGxlci52aWV3TW9kZWwuZGlzcG9zZSgpO1xuICAgIH07XG4gICAgSW5wdXRCaW5kaW5nQXBpLnByb3RvdHlwZS5vbiA9IGZ1bmN0aW9uIChldmVudE5hbWUsIGhhbmRsZXIpIHtcbiAgICAgICAgSGFuZGxlckFkYXB0ZXJzLmlucHV0KHtcbiAgICAgICAgICAgIGJpbmRpbmc6IHRoaXMuY29udHJvbGxlci5iaW5kaW5nLFxuICAgICAgICAgICAgZXZlbnROYW1lOiBldmVudE5hbWUsXG4gICAgICAgICAgICBoYW5kbGVyOiBoYW5kbGVyLmJpbmQodGhpcyksXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuICAgIElucHV0QmluZGluZ0FwaS5wcm90b3R5cGUucmVmcmVzaCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5jb250cm9sbGVyLmJpbmRpbmcucmVhZCgpO1xuICAgIH07XG4gICAgcmV0dXJuIElucHV0QmluZGluZ0FwaTtcbn0oKSk7XG5leHBvcnRzLklucHV0QmluZGluZ0FwaSA9IElucHV0QmluZGluZ0FwaTtcblxuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuL3NyYy9tYWluL2pzL2FwaS9tb25pdG9yLWJpbmRpbmcudHNcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4vc3JjL21haW4vanMvYXBpL21vbml0b3ItYmluZGluZy50cyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiEgbm8gc3RhdGljIGV4cG9ydHMgZm91bmQgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuTW9uaXRvckJpbmRpbmdBcGkgPSB2b2lkIDA7XG52YXIgRXZlbnRIYW5kbGVyQWRhcHRlcnMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL2V2ZW50LWhhbmRsZXItYWRhcHRlcnMgKi8gXCIuL3NyYy9tYWluL2pzL2FwaS9ldmVudC1oYW5kbGVyLWFkYXB0ZXJzLnRzXCIpO1xuLyoqXG4gKiBUaGUgQVBJIGZvciB0aGUgbW9uaXRvciBiaW5kaW5nIGJldHdlZW4gdGhlIHBhcmFtZXRlciBhbmQgdGhlIHBhbmUuXG4gKi9cbnZhciBNb25pdG9yQmluZGluZ0FwaSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgZnVuY3Rpb24gTW9uaXRvckJpbmRpbmdBcGkoYmluZGluZ0NvbnRyb2xsZXIpIHtcbiAgICAgICAgdGhpcy5jb250cm9sbGVyID0gYmluZGluZ0NvbnRyb2xsZXI7XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShNb25pdG9yQmluZGluZ0FwaS5wcm90b3R5cGUsIFwiaGlkZGVuXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sbGVyLnZpZXdNb2RlbC5oaWRkZW47XG4gICAgICAgIH0sXG4gICAgICAgIHNldDogZnVuY3Rpb24gKGhpZGRlbikge1xuICAgICAgICAgICAgdGhpcy5jb250cm9sbGVyLnZpZXdNb2RlbC5oaWRkZW4gPSBoaWRkZW47XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBNb25pdG9yQmluZGluZ0FwaS5wcm90b3R5cGUuZGlzcG9zZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5jb250cm9sbGVyLnZpZXdNb2RlbC5kaXNwb3NlKCk7XG4gICAgfTtcbiAgICBNb25pdG9yQmluZGluZ0FwaS5wcm90b3R5cGUub24gPSBmdW5jdGlvbiAoZXZlbnROYW1lLCBoYW5kbGVyKSB7XG4gICAgICAgIEV2ZW50SGFuZGxlckFkYXB0ZXJzLm1vbml0b3Ioe1xuICAgICAgICAgICAgYmluZGluZzogdGhpcy5jb250cm9sbGVyLmJpbmRpbmcsXG4gICAgICAgICAgICBldmVudE5hbWU6IGV2ZW50TmFtZSxcbiAgICAgICAgICAgIGhhbmRsZXI6IGhhbmRsZXIuYmluZCh0aGlzKSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG4gICAgTW9uaXRvckJpbmRpbmdBcGkucHJvdG90eXBlLnJlZnJlc2ggPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRoaXMuY29udHJvbGxlci5iaW5kaW5nLnJlYWQoKTtcbiAgICB9O1xuICAgIHJldHVybiBNb25pdG9yQmluZGluZ0FwaTtcbn0oKSk7XG5leHBvcnRzLk1vbml0b3JCaW5kaW5nQXBpID0gTW9uaXRvckJpbmRpbmdBcGk7XG5cblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi9zcmMvbWFpbi9qcy9hcGkvcHJlc2V0LnRzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuL3NyYy9tYWluL2pzL2FwaS9wcmVzZXQudHMgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohIG5vIHN0YXRpYyBleHBvcnRzIGZvdW5kICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmltcG9ydEpzb24gPSBleHBvcnRzLmV4cG9ydEpzb24gPSB2b2lkIDA7XG4vKipcbiAqIEBoaWRkZW5cbiAqL1xuZnVuY3Rpb24gZXhwb3J0SnNvbih0YXJnZXRzKSB7XG4gICAgcmV0dXJuIHRhcmdldHMucmVkdWNlKGZ1bmN0aW9uIChyZXN1bHQsIHRhcmdldCkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHJlc3VsdCwgKF9hID0ge30sXG4gICAgICAgICAgICBfYVt0YXJnZXQucHJlc2V0S2V5XSA9IHRhcmdldC5yZWFkKCksXG4gICAgICAgICAgICBfYSkpO1xuICAgIH0sIHt9KTtcbn1cbmV4cG9ydHMuZXhwb3J0SnNvbiA9IGV4cG9ydEpzb247XG4vKipcbiAqIEBoaWRkZW5cbiAqL1xuZnVuY3Rpb24gaW1wb3J0SnNvbih0YXJnZXRzLCBwcmVzZXQpIHtcbiAgICB0YXJnZXRzLmZvckVhY2goZnVuY3Rpb24gKHRhcmdldCkge1xuICAgICAgICB2YXIgdmFsdWUgPSBwcmVzZXRbdGFyZ2V0LnByZXNldEtleV07XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0YXJnZXQud3JpdGUodmFsdWUpO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5leHBvcnRzLmltcG9ydEpzb24gPSBpbXBvcnRKc29uO1xuXG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4vc3JjL21haW4vanMvYXBpL3Jvb3QudHNcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuL3NyYy9tYWluL2pzL2FwaS9yb290LnRzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiEgbm8gc3RhdGljIGV4cG9ydHMgZm91bmQgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBfX2Fzc2lnbiA9ICh0aGlzICYmIHRoaXMuX19hc3NpZ24pIHx8IGZ1bmN0aW9uICgpIHtcbiAgICBfX2Fzc2lnbiA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24odCkge1xuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpXG4gICAgICAgICAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHQ7XG4gICAgfTtcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlJvb3RBcGkgPSB2b2lkIDA7XG52YXIgSW5wdXRCaW5kaW5nQ29udHJvbGxlckNyZWF0b3JzID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vY29udHJvbGxlci9iaW5kaW5nLWNyZWF0b3JzL2lucHV0ICovIFwiLi9zcmMvbWFpbi9qcy9jb250cm9sbGVyL2JpbmRpbmctY3JlYXRvcnMvaW5wdXQudHNcIik7XG52YXIgTW9uaXRvckJpbmRpbmdDb250cm9sbGVyQ3JlYXRvcnMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9jb250cm9sbGVyL2JpbmRpbmctY3JlYXRvcnMvbW9uaXRvciAqLyBcIi4vc3JjL21haW4vanMvY29udHJvbGxlci9iaW5kaW5nLWNyZWF0b3JzL21vbml0b3IudHNcIik7XG52YXIgYnV0dG9uXzEgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9jb250cm9sbGVyL2J1dHRvbiAqLyBcIi4vc3JjL21haW4vanMvY29udHJvbGxlci9idXR0b24udHNcIik7XG52YXIgZm9sZGVyXzEgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9jb250cm9sbGVyL2ZvbGRlciAqLyBcIi4vc3JjL21haW4vanMvY29udHJvbGxlci9mb2xkZXIudHNcIik7XG52YXIgaW5wdXRfYmluZGluZ18xID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vY29udHJvbGxlci9pbnB1dC1iaW5kaW5nICovIFwiLi9zcmMvbWFpbi9qcy9jb250cm9sbGVyL2lucHV0LWJpbmRpbmcudHNcIik7XG52YXIgbW9uaXRvcl9iaW5kaW5nXzEgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9jb250cm9sbGVyL21vbml0b3ItYmluZGluZyAqLyBcIi4vc3JjL21haW4vanMvY29udHJvbGxlci9tb25pdG9yLWJpbmRpbmcudHNcIik7XG52YXIgc2VwYXJhdG9yXzEgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9jb250cm9sbGVyL3NlcGFyYXRvciAqLyBcIi4vc3JjL21haW4vanMvY29udHJvbGxlci9zZXBhcmF0b3IudHNcIik7XG52YXIgVWlVdGlsID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vY29udHJvbGxlci91aS11dGlsICovIFwiLi9zcmMvbWFpbi9qcy9jb250cm9sbGVyL3VpLXV0aWwudHNcIik7XG52YXIgdGFyZ2V0XzEgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9tb2RlbC90YXJnZXQgKi8gXCIuL3NyYy9tYWluL2pzL21vZGVsL3RhcmdldC50c1wiKTtcbnZhciB2aWV3X21vZGVsXzEgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9tb2RlbC92aWV3LW1vZGVsICovIFwiLi9zcmMvbWFpbi9qcy9tb2RlbC92aWV3LW1vZGVsLnRzXCIpO1xudmFyIGJ1dHRvbl8yID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9idXR0b24gKi8gXCIuL3NyYy9tYWluL2pzL2FwaS9idXR0b24udHNcIik7XG52YXIgRXZlbnRIYW5kbGVyQWRhcHRlcnMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL2V2ZW50LWhhbmRsZXItYWRhcHRlcnMgKi8gXCIuL3NyYy9tYWluL2pzL2FwaS9ldmVudC1oYW5kbGVyLWFkYXB0ZXJzLnRzXCIpO1xudmFyIGZvbGRlcl8yID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9mb2xkZXIgKi8gXCIuL3NyYy9tYWluL2pzL2FwaS9mb2xkZXIudHNcIik7XG52YXIgaW5wdXRfYmluZGluZ18yID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9pbnB1dC1iaW5kaW5nICovIFwiLi9zcmMvbWFpbi9qcy9hcGkvaW5wdXQtYmluZGluZy50c1wiKTtcbnZhciBtb25pdG9yX2JpbmRpbmdfMiA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vbW9uaXRvci1iaW5kaW5nICovIFwiLi9zcmMvbWFpbi9qcy9hcGkvbW9uaXRvci1iaW5kaW5nLnRzXCIpO1xudmFyIFByZXNldCA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vcHJlc2V0ICovIFwiLi9zcmMvbWFpbi9qcy9hcGkvcHJlc2V0LnRzXCIpO1xudmFyIHNlcGFyYXRvcl8yID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9zZXBhcmF0b3IgKi8gXCIuL3NyYy9tYWluL2pzL2FwaS9zZXBhcmF0b3IudHNcIik7XG4vKipcbiAqIFRoZSBUd2Vha3BhbmUgaW50ZXJmYWNlLlxuICpcbiAqIGBgYFxuICogbmV3IFR3ZWFrcGFuZShvcHRpb25zOiBUd2Vha3BhbmVDb25maWcpOiBSb290QXBpXG4gKiBgYGBcbiAqXG4gKiBTZWUgW1tUd2Vha3BhbmVDb25maWddXSBpbnRlcmZhY2UgZm9yIGF2YWlsYWJsZSBvcHRpb25zLlxuICovXG52YXIgUm9vdEFwaSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgZnVuY3Rpb24gUm9vdEFwaShyb290Q29udHJvbGxlcikge1xuICAgICAgICB0aGlzLmNvbnRyb2xsZXIgPSByb290Q29udHJvbGxlcjtcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFJvb3RBcGkucHJvdG90eXBlLCBcImVsZW1lbnRcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2xsZXIudmlldy5lbGVtZW50O1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFJvb3RBcGkucHJvdG90eXBlLCBcImV4cGFuZGVkXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgZm9sZGVyID0gdGhpcy5jb250cm9sbGVyLmZvbGRlcjtcbiAgICAgICAgICAgIHJldHVybiBmb2xkZXIgPyBmb2xkZXIuZXhwYW5kZWQgOiB0cnVlO1xuICAgICAgICB9LFxuICAgICAgICBzZXQ6IGZ1bmN0aW9uIChleHBhbmRlZCkge1xuICAgICAgICAgICAgdmFyIGZvbGRlciA9IHRoaXMuY29udHJvbGxlci5mb2xkZXI7XG4gICAgICAgICAgICBpZiAoZm9sZGVyKSB7XG4gICAgICAgICAgICAgICAgZm9sZGVyLmV4cGFuZGVkID0gZXhwYW5kZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoUm9vdEFwaS5wcm90b3R5cGUsIFwiaGlkZGVuXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sbGVyLnZpZXdNb2RlbC5oaWRkZW47XG4gICAgICAgIH0sXG4gICAgICAgIHNldDogZnVuY3Rpb24gKGhpZGRlbikge1xuICAgICAgICAgICAgdGhpcy5jb250cm9sbGVyLnZpZXdNb2RlbC5oaWRkZW4gPSBoaWRkZW47XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBSb290QXBpLnByb3RvdHlwZS5kaXNwb3NlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLmNvbnRyb2xsZXIudmlld01vZGVsLmRpc3Bvc2UoKTtcbiAgICB9O1xuICAgIFJvb3RBcGkucHJvdG90eXBlLmFkZElucHV0ID0gZnVuY3Rpb24gKG9iamVjdCwga2V5LCBvcHRfcGFyYW1zKSB7XG4gICAgICAgIHZhciBwYXJhbXMgPSBvcHRfcGFyYW1zIHx8IHt9O1xuICAgICAgICB2YXIgdWMgPSBJbnB1dEJpbmRpbmdDb250cm9sbGVyQ3JlYXRvcnMuY3JlYXRlKHRoaXMuY29udHJvbGxlci5kb2N1bWVudCwgbmV3IHRhcmdldF8xLlRhcmdldChvYmplY3QsIGtleSwgcGFyYW1zLnByZXNldEtleSksIHBhcmFtcyk7XG4gICAgICAgIHRoaXMuY29udHJvbGxlci51aUNvbnRhaW5lci5hZGQodWMsIHBhcmFtcy5pbmRleCk7XG4gICAgICAgIHJldHVybiBuZXcgaW5wdXRfYmluZGluZ18yLklucHV0QmluZGluZ0FwaSh1Yyk7XG4gICAgfTtcbiAgICBSb290QXBpLnByb3RvdHlwZS5hZGRNb25pdG9yID0gZnVuY3Rpb24gKG9iamVjdCwga2V5LCBvcHRfcGFyYW1zKSB7XG4gICAgICAgIHZhciBwYXJhbXMgPSBvcHRfcGFyYW1zIHx8IHt9O1xuICAgICAgICB2YXIgdWMgPSBNb25pdG9yQmluZGluZ0NvbnRyb2xsZXJDcmVhdG9ycy5jcmVhdGUodGhpcy5jb250cm9sbGVyLmRvY3VtZW50LCBuZXcgdGFyZ2V0XzEuVGFyZ2V0KG9iamVjdCwga2V5KSwgcGFyYW1zKTtcbiAgICAgICAgdGhpcy5jb250cm9sbGVyLnVpQ29udGFpbmVyLmFkZCh1YywgcGFyYW1zLmluZGV4KTtcbiAgICAgICAgcmV0dXJuIG5ldyBtb25pdG9yX2JpbmRpbmdfMi5Nb25pdG9yQmluZGluZ0FwaSh1Yyk7XG4gICAgfTtcbiAgICBSb290QXBpLnByb3RvdHlwZS5hZGRCdXR0b24gPSBmdW5jdGlvbiAocGFyYW1zKSB7XG4gICAgICAgIHZhciB1YyA9IG5ldyBidXR0b25fMS5CdXR0b25Db250cm9sbGVyKHRoaXMuY29udHJvbGxlci5kb2N1bWVudCwgX19hc3NpZ24oX19hc3NpZ24oe30sIHBhcmFtcyksIHsgdmlld01vZGVsOiBuZXcgdmlld19tb2RlbF8xLlZpZXdNb2RlbCgpIH0pKTtcbiAgICAgICAgdGhpcy5jb250cm9sbGVyLnVpQ29udGFpbmVyLmFkZCh1YywgcGFyYW1zLmluZGV4KTtcbiAgICAgICAgcmV0dXJuIG5ldyBidXR0b25fMi5CdXR0b25BcGkodWMpO1xuICAgIH07XG4gICAgUm9vdEFwaS5wcm90b3R5cGUuYWRkRm9sZGVyID0gZnVuY3Rpb24gKHBhcmFtcykge1xuICAgICAgICB2YXIgdWMgPSBuZXcgZm9sZGVyXzEuRm9sZGVyQ29udHJvbGxlcih0aGlzLmNvbnRyb2xsZXIuZG9jdW1lbnQsIF9fYXNzaWduKF9fYXNzaWduKHt9LCBwYXJhbXMpLCB7IHZpZXdNb2RlbDogbmV3IHZpZXdfbW9kZWxfMS5WaWV3TW9kZWwoKSB9KSk7XG4gICAgICAgIHRoaXMuY29udHJvbGxlci51aUNvbnRhaW5lci5hZGQodWMsIHBhcmFtcy5pbmRleCk7XG4gICAgICAgIHJldHVybiBuZXcgZm9sZGVyXzIuRm9sZGVyQXBpKHVjKTtcbiAgICB9O1xuICAgIFJvb3RBcGkucHJvdG90eXBlLmFkZFNlcGFyYXRvciA9IGZ1bmN0aW9uIChvcHRfcGFyYW1zKSB7XG4gICAgICAgIHZhciBwYXJhbXMgPSBvcHRfcGFyYW1zIHx8IHt9O1xuICAgICAgICB2YXIgdWMgPSBuZXcgc2VwYXJhdG9yXzEuU2VwYXJhdG9yQ29udHJvbGxlcih0aGlzLmNvbnRyb2xsZXIuZG9jdW1lbnQsIHtcbiAgICAgICAgICAgIHZpZXdNb2RlbDogbmV3IHZpZXdfbW9kZWxfMS5WaWV3TW9kZWwoKSxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY29udHJvbGxlci51aUNvbnRhaW5lci5hZGQodWMsIHBhcmFtcy5pbmRleCk7XG4gICAgICAgIHJldHVybiBuZXcgc2VwYXJhdG9yXzIuU2VwYXJhdG9yQXBpKHVjKTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEltcG9ydCBhIHByZXNldCBvZiBhbGwgaW5wdXRzLlxuICAgICAqIEBwYXJhbSBwcmVzZXQgVGhlIHByZXNldCBvYmplY3QgdG8gaW1wb3J0LlxuICAgICAqL1xuICAgIFJvb3RBcGkucHJvdG90eXBlLmltcG9ydFByZXNldCA9IGZ1bmN0aW9uIChwcmVzZXQpIHtcbiAgICAgICAgdmFyIHRhcmdldHMgPSBVaVV0aWwuZmluZENvbnRyb2xsZXJzKHRoaXMuY29udHJvbGxlci51aUNvbnRhaW5lci5pdGVtcywgaW5wdXRfYmluZGluZ18xLklucHV0QmluZGluZ0NvbnRyb2xsZXIpLm1hcChmdW5jdGlvbiAoaWJjKSB7XG4gICAgICAgICAgICByZXR1cm4gaWJjLmJpbmRpbmcudGFyZ2V0O1xuICAgICAgICB9KTtcbiAgICAgICAgUHJlc2V0LmltcG9ydEpzb24odGFyZ2V0cywgcHJlc2V0KTtcbiAgICAgICAgdGhpcy5yZWZyZXNoKCk7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBFeHBvcnQgYSBwcmVzZXQgb2YgYWxsIGlucHV0cy5cbiAgICAgKiBAcmV0dXJuIFRoZSBleHBvcnRlZCBwcmVzZXQgb2JqZWN0LlxuICAgICAqL1xuICAgIFJvb3RBcGkucHJvdG90eXBlLmV4cG9ydFByZXNldCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHRhcmdldHMgPSBVaVV0aWwuZmluZENvbnRyb2xsZXJzKHRoaXMuY29udHJvbGxlci51aUNvbnRhaW5lci5pdGVtcywgaW5wdXRfYmluZGluZ18xLklucHV0QmluZGluZ0NvbnRyb2xsZXIpLm1hcChmdW5jdGlvbiAoaWJjKSB7XG4gICAgICAgICAgICByZXR1cm4gaWJjLmJpbmRpbmcudGFyZ2V0O1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIFByZXNldC5leHBvcnRKc29uKHRhcmdldHMpO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQWRkcyBhIGdsb2JhbCBldmVudCBsaXN0ZW5lci4gSXQgaGFuZGxlcyBhbGwgZXZlbnRzIG9mIGNoaWxkIGlucHV0cy9tb25pdG9ycy5cbiAgICAgKiBAcGFyYW0gZXZlbnROYW1lIFRoZSBldmVudCBuYW1lIHRvIGxpc3Rlbi5cbiAgICAgKiBAcmV0dXJuIFRoZSBBUEkgb2JqZWN0IGl0c2VsZi5cbiAgICAgKi9cbiAgICBSb290QXBpLnByb3RvdHlwZS5vbiA9IGZ1bmN0aW9uIChldmVudE5hbWUsIGhhbmRsZXIpIHtcbiAgICAgICAgRXZlbnRIYW5kbGVyQWRhcHRlcnMuZm9sZGVyKHtcbiAgICAgICAgICAgIGV2ZW50TmFtZTogZXZlbnROYW1lLFxuICAgICAgICAgICAgZm9sZGVyOiB0aGlzLmNvbnRyb2xsZXIuZm9sZGVyLFxuICAgICAgICAgICAgaGFuZGxlcjogaGFuZGxlci5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgdWlDb250YWluZXI6IHRoaXMuY29udHJvbGxlci51aUNvbnRhaW5lcixcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogUmVmcmVzaGVzIGFsbCBiaW5kaW5ncyBvZiB0aGUgcGFuZS5cbiAgICAgKi9cbiAgICBSb290QXBpLnByb3RvdHlwZS5yZWZyZXNoID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAvLyBGb3JjZS1yZWFkIGFsbCBpbnB1dCBiaW5kaW5nc1xuICAgICAgICBVaVV0aWwuZmluZENvbnRyb2xsZXJzKHRoaXMuY29udHJvbGxlci51aUNvbnRhaW5lci5pdGVtcywgaW5wdXRfYmluZGluZ18xLklucHV0QmluZGluZ0NvbnRyb2xsZXIpLmZvckVhY2goZnVuY3Rpb24gKGliYykge1xuICAgICAgICAgICAgaWJjLmJpbmRpbmcucmVhZCgpO1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gRm9yY2UtcmVhZCBhbGwgbW9uaXRvciBiaW5kaW5nc1xuICAgICAgICBVaVV0aWwuZmluZENvbnRyb2xsZXJzKHRoaXMuY29udHJvbGxlci51aUNvbnRhaW5lci5pdGVtcywgbW9uaXRvcl9iaW5kaW5nXzEuTW9uaXRvckJpbmRpbmdDb250cm9sbGVyKS5mb3JFYWNoKGZ1bmN0aW9uIChtYmMpIHtcbiAgICAgICAgICAgIG1iYy5iaW5kaW5nLnJlYWQoKTtcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICByZXR1cm4gUm9vdEFwaTtcbn0oKSk7XG5leHBvcnRzLlJvb3RBcGkgPSBSb290QXBpO1xuXG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4vc3JjL21haW4vanMvYXBpL3NlcGFyYXRvci50c1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi9zcmMvbWFpbi9qcy9hcGkvc2VwYXJhdG9yLnRzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qISBubyBzdGF0aWMgZXhwb3J0cyBmb3VuZCAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5TZXBhcmF0b3JBcGkgPSB2b2lkIDA7XG52YXIgU2VwYXJhdG9yQXBpID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBTZXBhcmF0b3JBcGkoY29udHJvbGxlcikge1xuICAgICAgICB0aGlzLmNvbnRyb2xsZXIgPSBjb250cm9sbGVyO1xuICAgIH1cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoU2VwYXJhdG9yQXBpLnByb3RvdHlwZSwgXCJoaWRkZW5cIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2xsZXIudmlld01vZGVsLmhpZGRlbjtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAoaGlkZGVuKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2xsZXIudmlld01vZGVsLmhpZGRlbiA9IGhpZGRlbjtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIFNlcGFyYXRvckFwaS5wcm90b3R5cGUuZGlzcG9zZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5jb250cm9sbGVyLnZpZXdNb2RlbC5kaXNwb3NlKCk7XG4gICAgfTtcbiAgICByZXR1cm4gU2VwYXJhdG9yQXBpO1xufSgpKTtcbmV4cG9ydHMuU2VwYXJhdG9yQXBpID0gU2VwYXJhdG9yQXBpO1xuXG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4vc3JjL21haW4vanMvYmluZGluZy9pbnB1dC50c1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi9zcmMvbWFpbi9qcy9iaW5kaW5nL2lucHV0LnRzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qISBubyBzdGF0aWMgZXhwb3J0cyBmb3VuZCAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5JbnB1dEJpbmRpbmcgPSB2b2lkIDA7XG52YXIgZW1pdHRlcl8xID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vbWlzYy9lbWl0dGVyICovIFwiLi9zcmMvbWFpbi9qcy9taXNjL2VtaXR0ZXIudHNcIik7XG4vKipcbiAqIEBoaWRkZW5cbiAqL1xudmFyIElucHV0QmluZGluZyA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBJbnB1dEJpbmRpbmcoY29uZmlnKSB7XG4gICAgICAgIHRoaXMub25WYWx1ZUNoYW5nZV8gPSB0aGlzLm9uVmFsdWVDaGFuZ2VfLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMucmVhZGVyXyA9IGNvbmZpZy5yZWFkZXI7XG4gICAgICAgIHRoaXMud3JpdGVyXyA9IGNvbmZpZy53cml0ZXI7XG4gICAgICAgIHRoaXMuZW1pdHRlciA9IG5ldyBlbWl0dGVyXzEuRW1pdHRlcigpO1xuICAgICAgICB0aGlzLnZhbHVlID0gY29uZmlnLnZhbHVlO1xuICAgICAgICB0aGlzLnZhbHVlLmVtaXR0ZXIub24oJ2NoYW5nZScsIHRoaXMub25WYWx1ZUNoYW5nZV8pO1xuICAgICAgICB0aGlzLnRhcmdldCA9IGNvbmZpZy50YXJnZXQ7XG4gICAgICAgIHRoaXMucmVhZCgpO1xuICAgIH1cbiAgICBJbnB1dEJpbmRpbmcucHJvdG90eXBlLnJlYWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciB0YXJnZXRWYWx1ZSA9IHRoaXMudGFyZ2V0LnJlYWQoKTtcbiAgICAgICAgaWYgKHRhcmdldFZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUucmF3VmFsdWUgPSB0aGlzLnJlYWRlcl8odGFyZ2V0VmFsdWUpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBJbnB1dEJpbmRpbmcucHJvdG90eXBlLmdldFZhbHVlVG9Xcml0ZSA9IGZ1bmN0aW9uIChyYXdWYWx1ZSkge1xuICAgICAgICByZXR1cm4gdGhpcy53cml0ZXJfKHJhd1ZhbHVlKTtcbiAgICB9O1xuICAgIElucHV0QmluZGluZy5wcm90b3R5cGUud3JpdGVfID0gZnVuY3Rpb24gKHJhd1ZhbHVlKSB7XG4gICAgICAgIHRoaXMudGFyZ2V0LndyaXRlKHRoaXMuZ2V0VmFsdWVUb1dyaXRlKHJhd1ZhbHVlKSk7XG4gICAgfTtcbiAgICBJbnB1dEJpbmRpbmcucHJvdG90eXBlLm9uVmFsdWVDaGFuZ2VfID0gZnVuY3Rpb24gKGV2KSB7XG4gICAgICAgIHRoaXMud3JpdGVfKGV2LnJhd1ZhbHVlKTtcbiAgICAgICAgdGhpcy5lbWl0dGVyLmVtaXQoJ2NoYW5nZScsIHtcbiAgICAgICAgICAgIHJhd1ZhbHVlOiBldi5yYXdWYWx1ZSxcbiAgICAgICAgICAgIHNlbmRlcjogdGhpcyxcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICByZXR1cm4gSW5wdXRCaW5kaW5nO1xufSgpKTtcbmV4cG9ydHMuSW5wdXRCaW5kaW5nID0gSW5wdXRCaW5kaW5nO1xuXG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4vc3JjL21haW4vanMvYmluZGluZy9tb25pdG9yLnRzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4vc3JjL21haW4vanMvYmluZGluZy9tb25pdG9yLnRzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohIG5vIHN0YXRpYyBleHBvcnRzIGZvdW5kICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLk1vbml0b3JCaW5kaW5nID0gdm9pZCAwO1xudmFyIGVtaXR0ZXJfMSA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL21pc2MvZW1pdHRlciAqLyBcIi4vc3JjL21haW4vanMvbWlzYy9lbWl0dGVyLnRzXCIpO1xuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBNb25pdG9yQmluZGluZyA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBNb25pdG9yQmluZGluZyhjb25maWcpIHtcbiAgICAgICAgdGhpcy5vblRpY2tfID0gdGhpcy5vblRpY2tfLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMub25WYWx1ZVVwZGF0ZV8gPSB0aGlzLm9uVmFsdWVVcGRhdGVfLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMucmVhZGVyXyA9IGNvbmZpZy5yZWFkZXI7XG4gICAgICAgIHRoaXMudGFyZ2V0ID0gY29uZmlnLnRhcmdldDtcbiAgICAgICAgdGhpcy5lbWl0dGVyID0gbmV3IGVtaXR0ZXJfMS5FbWl0dGVyKCk7XG4gICAgICAgIHRoaXMudmFsdWUgPSBjb25maWcudmFsdWU7XG4gICAgICAgIHRoaXMudmFsdWUuZW1pdHRlci5vbigndXBkYXRlJywgdGhpcy5vblZhbHVlVXBkYXRlXyk7XG4gICAgICAgIHRoaXMudGlja2VyID0gY29uZmlnLnRpY2tlcjtcbiAgICAgICAgdGhpcy50aWNrZXIuZW1pdHRlci5vbigndGljaycsIHRoaXMub25UaWNrXyk7XG4gICAgICAgIHRoaXMucmVhZCgpO1xuICAgIH1cbiAgICBNb25pdG9yQmluZGluZy5wcm90b3R5cGUuZGlzcG9zZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy50aWNrZXIuZGlzcG9zYWJsZS5kaXNwb3NlKCk7XG4gICAgfTtcbiAgICBNb25pdG9yQmluZGluZy5wcm90b3R5cGUucmVhZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHRhcmdldFZhbHVlID0gdGhpcy50YXJnZXQucmVhZCgpO1xuICAgICAgICBpZiAodGFyZ2V0VmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZS5hcHBlbmQodGhpcy5yZWFkZXJfKHRhcmdldFZhbHVlKSk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIE1vbml0b3JCaW5kaW5nLnByb3RvdHlwZS5vblRpY2tfID0gZnVuY3Rpb24gKF8pIHtcbiAgICAgICAgdGhpcy5yZWFkKCk7XG4gICAgfTtcbiAgICBNb25pdG9yQmluZGluZy5wcm90b3R5cGUub25WYWx1ZVVwZGF0ZV8gPSBmdW5jdGlvbiAoZXYpIHtcbiAgICAgICAgdGhpcy5lbWl0dGVyLmVtaXQoJ3VwZGF0ZScsIHtcbiAgICAgICAgICAgIHJhd1ZhbHVlOiBldi5yYXdWYWx1ZSxcbiAgICAgICAgICAgIHNlbmRlcjogdGhpcyxcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICByZXR1cm4gTW9uaXRvckJpbmRpbmc7XG59KCkpO1xuZXhwb3J0cy5Nb25pdG9yQmluZGluZyA9IE1vbml0b3JCaW5kaW5nO1xuXG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4vc3JjL21haW4vanMvY29uc3RyYWludC9jb21wb3NpdGUudHNcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuL3NyYy9tYWluL2pzL2NvbnN0cmFpbnQvY29tcG9zaXRlLnRzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiEgbm8gc3RhdGljIGV4cG9ydHMgZm91bmQgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuQ29tcG9zaXRlQ29uc3RyYWludCA9IHZvaWQgMDtcbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgQ29tcG9zaXRlQ29uc3RyYWludCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBDb21wb3NpdGVDb25zdHJhaW50KGNvbmZpZykge1xuICAgICAgICB0aGlzLmNvbnN0cmFpbnRzXyA9IGNvbmZpZy5jb25zdHJhaW50cztcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KENvbXBvc2l0ZUNvbnN0cmFpbnQucHJvdG90eXBlLCBcImNvbnN0cmFpbnRzXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb25zdHJhaW50c187XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBDb21wb3NpdGVDb25zdHJhaW50LnByb3RvdHlwZS5jb25zdHJhaW4gPSBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uc3RyYWludHNfLnJlZHVjZShmdW5jdGlvbiAocmVzdWx0LCBjKSB7XG4gICAgICAgICAgICByZXR1cm4gYy5jb25zdHJhaW4ocmVzdWx0KTtcbiAgICAgICAgfSwgdmFsdWUpO1xuICAgIH07XG4gICAgcmV0dXJuIENvbXBvc2l0ZUNvbnN0cmFpbnQ7XG59KCkpO1xuZXhwb3J0cy5Db21wb3NpdGVDb25zdHJhaW50ID0gQ29tcG9zaXRlQ29uc3RyYWludDtcblxuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuL3NyYy9tYWluL2pzL2NvbnN0cmFpbnQvbGlzdC50c1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuL3NyYy9tYWluL2pzL2NvbnN0cmFpbnQvbGlzdC50cyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qISBubyBzdGF0aWMgZXhwb3J0cyBmb3VuZCAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5MaXN0Q29uc3RyYWludCA9IHZvaWQgMDtcbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgTGlzdENvbnN0cmFpbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gTGlzdENvbnN0cmFpbnQoY29uZmlnKSB7XG4gICAgICAgIHRoaXMub3B0c18gPSBjb25maWcub3B0aW9ucztcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KExpc3RDb25zdHJhaW50LnByb3RvdHlwZSwgXCJvcHRpb25zXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5vcHRzXztcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIExpc3RDb25zdHJhaW50LnByb3RvdHlwZS5jb25zdHJhaW4gPSBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgdmFyIG9wdHMgPSB0aGlzLm9wdHNfO1xuICAgICAgICBpZiAob3B0cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgbWF0Y2hlZCA9IG9wdHMuZmlsdGVyKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICAgICAgICByZXR1cm4gaXRlbS52YWx1ZSA9PT0gdmFsdWU7XG4gICAgICAgIH0pLmxlbmd0aCA+IDA7XG4gICAgICAgIHJldHVybiBtYXRjaGVkID8gdmFsdWUgOiBvcHRzWzBdLnZhbHVlO1xuICAgIH07XG4gICAgcmV0dXJuIExpc3RDb25zdHJhaW50O1xufSgpKTtcbmV4cG9ydHMuTGlzdENvbnN0cmFpbnQgPSBMaXN0Q29uc3RyYWludDtcblxuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuL3NyYy9tYWluL2pzL2NvbnN0cmFpbnQvcG9pbnQtMmQudHNcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4vc3JjL21haW4vanMvY29uc3RyYWludC9wb2ludC0yZC50cyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiEgbm8gc3RhdGljIGV4cG9ydHMgZm91bmQgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuUG9pbnQyZENvbnN0cmFpbnQgPSB2b2lkIDA7XG52YXIgcG9pbnRfMmRfMSA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL21vZGVsL3BvaW50LTJkICovIFwiLi9zcmMvbWFpbi9qcy9tb2RlbC9wb2ludC0yZC50c1wiKTtcbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgUG9pbnQyZENvbnN0cmFpbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gUG9pbnQyZENvbnN0cmFpbnQoY29uZmlnKSB7XG4gICAgICAgIHRoaXMueENvbnN0cmFpbnQgPSBjb25maWcueDtcbiAgICAgICAgdGhpcy55Q29uc3RyYWludCA9IGNvbmZpZy55O1xuICAgIH1cbiAgICBQb2ludDJkQ29uc3RyYWludC5wcm90b3R5cGUuY29uc3RyYWluID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgIHJldHVybiBuZXcgcG9pbnRfMmRfMS5Qb2ludDJkKHRoaXMueENvbnN0cmFpbnQgPyB0aGlzLnhDb25zdHJhaW50LmNvbnN0cmFpbih2YWx1ZS54KSA6IHZhbHVlLngsIHRoaXMueUNvbnN0cmFpbnQgPyB0aGlzLnlDb25zdHJhaW50LmNvbnN0cmFpbih2YWx1ZS55KSA6IHZhbHVlLnkpO1xuICAgIH07XG4gICAgcmV0dXJuIFBvaW50MmRDb25zdHJhaW50O1xufSgpKTtcbmV4cG9ydHMuUG9pbnQyZENvbnN0cmFpbnQgPSBQb2ludDJkQ29uc3RyYWludDtcblxuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuL3NyYy9tYWluL2pzL2NvbnN0cmFpbnQvcmFuZ2UudHNcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcXFxuICAhKioqIC4vc3JjL21haW4vanMvY29uc3RyYWludC9yYW5nZS50cyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiEgbm8gc3RhdGljIGV4cG9ydHMgZm91bmQgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuUmFuZ2VDb25zdHJhaW50ID0gdm9pZCAwO1xudmFyIHR5cGVfdXRpbF8xID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vbWlzYy90eXBlLXV0aWwgKi8gXCIuL3NyYy9tYWluL2pzL21pc2MvdHlwZS11dGlsLnRzXCIpO1xuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbnZhciBSYW5nZUNvbnN0cmFpbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gUmFuZ2VDb25zdHJhaW50KGNvbmZpZykge1xuICAgICAgICB0aGlzLm1heFZhbHVlID0gY29uZmlnLm1heDtcbiAgICAgICAgdGhpcy5taW5WYWx1ZSA9IGNvbmZpZy5taW47XG4gICAgfVxuICAgIFJhbmdlQ29uc3RyYWludC5wcm90b3R5cGUuY29uc3RyYWluID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgIHZhciByZXN1bHQgPSB2YWx1ZTtcbiAgICAgICAgaWYgKCF0eXBlX3V0aWxfMS5UeXBlVXRpbC5pc0VtcHR5KHRoaXMubWluVmFsdWUpKSB7XG4gICAgICAgICAgICByZXN1bHQgPSBNYXRoLm1heChyZXN1bHQsIHRoaXMubWluVmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdHlwZV91dGlsXzEuVHlwZVV0aWwuaXNFbXB0eSh0aGlzLm1heFZhbHVlKSkge1xuICAgICAgICAgICAgcmVzdWx0ID0gTWF0aC5taW4ocmVzdWx0LCB0aGlzLm1heFZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH07XG4gICAgcmV0dXJuIFJhbmdlQ29uc3RyYWludDtcbn0oKSk7XG5leHBvcnRzLlJhbmdlQ29uc3RyYWludCA9IFJhbmdlQ29uc3RyYWludDtcblxuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuL3NyYy9tYWluL2pzL2NvbnN0cmFpbnQvc3RlcC50c1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuL3NyYy9tYWluL2pzL2NvbnN0cmFpbnQvc3RlcC50cyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qISBubyBzdGF0aWMgZXhwb3J0cyBmb3VuZCAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5TdGVwQ29uc3RyYWludCA9IHZvaWQgMDtcbi8qKlxuICogQGhpZGRlblxuICovXG52YXIgU3RlcENvbnN0cmFpbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gU3RlcENvbnN0cmFpbnQoY29uZmlnKSB7XG4gICAgICAgIHRoaXMuc3RlcCA9IGNvbmZpZy5zdGVwO1xuICAgIH1cbiAgICBTdGVwQ29uc3RyYWludC5wcm90b3R5cGUuY29uc3RyYWluID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgIHZhciByID0gdmFsdWUgPCAwXG4gICAgICAgICAgICA/IC1NYXRoLnJvdW5kKC12YWx1ZSAvIHRoaXMuc3RlcClcbiAgICAgICAgICAgIDogTWF0aC5yb3VuZCh2YWx1ZSAvIHRoaXMuc3RlcCk7XG4gICAgICAgIHJldHVybiByICogdGhpcy5zdGVwO1xuICAgIH07XG4gICAgcmV0dXJuIFN0ZXBDb25zdHJhaW50O1xufSgpKTtcbmV4cG9ydHMuU3RlcENvbnN0cmFpbnQgPSBTdGVwQ29uc3RyYWludDtcblxuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuL3NyYy9tYWluL2pzL2NvbnN0cmFpbnQvdXRpbC50c1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuL3NyYy9tYWluL2pzL2NvbnN0cmFpbnQvdXRpbC50cyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qISBubyBzdGF0aWMgZXhwb3J0cyBmb3VuZCAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Db25zdHJhaW50VXRpbCA9IHZvaWQgMDtcbnZhciBjb21wb3NpdGVfMSA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vY29tcG9zaXRlICovIFwiLi9zcmMvbWFpbi9qcy9jb25zdHJhaW50L2NvbXBvc2l0ZS50c1wiKTtcbi8qKlxuICogQGhpZGRlblxuICovXG5leHBvcnRzLkNvbnN0cmFpbnRVdGlsID0ge1xuICAgIGZpbmRDb25zdHJhaW50OiBmdW5jdGlvbiAoYywgY29uc3RyYWludENsYXNzKSB7XG4gICAgICAgIGlmIChjIGluc3RhbmNlb2YgY29uc3RyYWludENsYXNzKSB7XG4gICAgICAgICAgICByZXR1cm4gYztcbiAgICAgICAgfVxuICAgICAgICBpZiAoYyBpbnN0YW5jZW9mIGNvbXBvc2l0ZV8xLkNvbXBvc2l0ZUNvbnN0cmFpbnQpIHtcbiAgICAgICAgICAgIHZhciByZXN1bHQgPSBjLmNvbnN0cmFpbnRzLnJlZHVjZShmdW5jdGlvbiAodG1wUmVzdWx0LCBzYykge1xuICAgICAgICAgICAgICAgIGlmICh0bXBSZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRtcFJlc3VsdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNjIGluc3RhbmNlb2YgY29uc3RyYWludENsYXNzID8gc2MgOiBudWxsO1xuICAgICAgICAgICAgfSwgbnVsbCk7XG4gICAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9LFxufTtcblxuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuL3NyYy9tYWluL2pzL2NvbnRyb2xsZXIvYmluZGluZy1jcmVhdG9ycy9ib29sZWFuLWlucHV0LnRzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi9zcmMvbWFpbi9qcy9jb250cm9sbGVyL2JpbmRpbmctY3JlYXRvcnMvYm9vbGVhbi1pbnB1dC50cyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohIG5vIHN0YXRpYyBleHBvcnRzIGZvdW5kICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmNyZWF0ZSA9IHZvaWQgMDtcbnZhciBpbnB1dF8xID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vLi4vYmluZGluZy9pbnB1dCAqLyBcIi4vc3JjL21haW4vanMvYmluZGluZy9pbnB1dC50c1wiKTtcbnZhciBjb21wb3NpdGVfMSA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uLy4uL2NvbnN0cmFpbnQvY29tcG9zaXRlICovIFwiLi9zcmMvbWFpbi9qcy9jb25zdHJhaW50L2NvbXBvc2l0ZS50c1wiKTtcbnZhciBsaXN0XzEgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi8uLi9jb25zdHJhaW50L2xpc3QgKi8gXCIuL3NyYy9tYWluL2pzL2NvbnN0cmFpbnQvbGlzdC50c1wiKTtcbnZhciB1dGlsXzEgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi8uLi9jb25zdHJhaW50L3V0aWwgKi8gXCIuL3NyYy9tYWluL2pzL2NvbnN0cmFpbnQvdXRpbC50c1wiKTtcbnZhciBCb29sZWFuQ29udmVydGVyID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vLi4vY29udmVydGVyL2Jvb2xlYW4gKi8gXCIuL3NyYy9tYWluL2pzL2NvbnZlcnRlci9ib29sZWFuLnRzXCIpO1xudmFyIGlucHV0X3ZhbHVlXzEgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi8uLi9tb2RlbC9pbnB1dC12YWx1ZSAqLyBcIi4vc3JjL21haW4vanMvbW9kZWwvaW5wdXQtdmFsdWUudHNcIik7XG52YXIgdmlld19tb2RlbF8xID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vLi4vbW9kZWwvdmlldy1tb2RlbCAqLyBcIi4vc3JjL21haW4vanMvbW9kZWwvdmlldy1tb2RlbC50c1wiKTtcbnZhciBpbnB1dF9iaW5kaW5nXzEgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9pbnB1dC1iaW5kaW5nICovIFwiLi9zcmMvbWFpbi9qcy9jb250cm9sbGVyL2lucHV0LWJpbmRpbmcudHNcIik7XG52YXIgY2hlY2tib3hfMSA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2lucHV0L2NoZWNrYm94ICovIFwiLi9zcmMvbWFpbi9qcy9jb250cm9sbGVyL2lucHV0L2NoZWNrYm94LnRzXCIpO1xudmFyIGxpc3RfMiA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2lucHV0L2xpc3QgKi8gXCIuL3NyYy9tYWluL2pzL2NvbnRyb2xsZXIvaW5wdXQvbGlzdC50c1wiKTtcbnZhciBVaVV0aWwgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi91aS11dGlsICovIFwiLi9zcmMvbWFpbi9qcy9jb250cm9sbGVyL3VpLXV0aWwudHNcIik7XG5mdW5jdGlvbiBjcmVhdGVDb25zdHJhaW50KHBhcmFtcykge1xuICAgIHZhciBjb25zdHJhaW50cyA9IFtdO1xuICAgIGlmICgnb3B0aW9ucycgaW4gcGFyYW1zICYmIHBhcmFtcy5vcHRpb25zICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29uc3RyYWludHMucHVzaChuZXcgbGlzdF8xLkxpc3RDb25zdHJhaW50KHtcbiAgICAgICAgICAgIG9wdGlvbnM6IFVpVXRpbC5ub3JtYWxpemVJbnB1dFBhcmFtc09wdGlvbnMocGFyYW1zLm9wdGlvbnMsIEJvb2xlYW5Db252ZXJ0ZXIuZnJvbU1peGVkKSxcbiAgICAgICAgfSkpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IGNvbXBvc2l0ZV8xLkNvbXBvc2l0ZUNvbnN0cmFpbnQoe1xuICAgICAgICBjb25zdHJhaW50czogY29uc3RyYWludHMsXG4gICAgfSk7XG59XG5mdW5jdGlvbiBjcmVhdGVDb250cm9sbGVyKGRvY3VtZW50LCB2YWx1ZSkge1xuICAgIHZhciBjID0gdmFsdWUuY29uc3RyYWludDtcbiAgICBpZiAoYyAmJiB1dGlsXzEuQ29uc3RyYWludFV0aWwuZmluZENvbnN0cmFpbnQoYywgbGlzdF8xLkxpc3RDb25zdHJhaW50KSkge1xuICAgICAgICByZXR1cm4gbmV3IGxpc3RfMi5MaXN0SW5wdXRDb250cm9sbGVyKGRvY3VtZW50LCB7XG4gICAgICAgICAgICB2aWV3TW9kZWw6IG5ldyB2aWV3X21vZGVsXzEuVmlld01vZGVsKCksXG4gICAgICAgICAgICBzdHJpbmdpZnlWYWx1ZTogQm9vbGVhbkNvbnZlcnRlci50b1N0cmluZyxcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgY2hlY2tib3hfMS5DaGVja2JveElucHV0Q29udHJvbGxlcihkb2N1bWVudCwge1xuICAgICAgICB2aWV3TW9kZWw6IG5ldyB2aWV3X21vZGVsXzEuVmlld01vZGVsKCksXG4gICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICB9KTtcbn1cbi8qKlxuICogQGhpZGRlblxuICovXG5mdW5jdGlvbiBjcmVhdGUoZG9jdW1lbnQsIHRhcmdldCwgcGFyYW1zKSB7XG4gICAgdmFyIGluaXRpYWxWYWx1ZSA9IHRhcmdldC5yZWFkKCk7XG4gICAgaWYgKHR5cGVvZiBpbml0aWFsVmFsdWUgIT09ICdib29sZWFuJykge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgdmFyIHZhbHVlID0gbmV3IGlucHV0X3ZhbHVlXzEuSW5wdXRWYWx1ZShmYWxzZSwgY3JlYXRlQ29uc3RyYWludChwYXJhbXMpKTtcbiAgICB2YXIgYmluZGluZyA9IG5ldyBpbnB1dF8xLklucHV0QmluZGluZyh7XG4gICAgICAgIHJlYWRlcjogQm9vbGVhbkNvbnZlcnRlci5mcm9tTWl4ZWQsXG4gICAgICAgIHRhcmdldDogdGFyZ2V0LFxuICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAgIHdyaXRlcjogZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHY7IH0sXG4gICAgfSk7XG4gICAgcmV0dXJuIG5ldyBpbnB1dF9iaW5kaW5nXzEuSW5wdXRCaW5kaW5nQ29udHJvbGxlcihkb2N1bWVudCwge1xuICAgICAgICBiaW5kaW5nOiBiaW5kaW5nLFxuICAgICAgICBjb250cm9sbGVyOiBjcmVhdGVDb250cm9sbGVyKGRvY3VtZW50LCB2YWx1ZSksXG4gICAgICAgIGxhYmVsOiBwYXJhbXMubGFiZWwgfHwgdGFyZ2V0LmtleSxcbiAgICB9KTtcbn1cbmV4cG9ydHMuY3JlYXRlID0gY3JlYXRlO1xuXG5cbi8qKiovIH0pLFxuXG4vKioqLyBcIi4vc3JjL21haW4vanMvY29udHJvbGxlci9iaW5kaW5nLWNyZWF0b3JzL2Jvb2xlYW4tbW9uaXRvci50c1wiOlxuLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi9zcmMvbWFpbi9qcy9jb250cm9sbGVyL2JpbmRpbmctY3JlYXRvcnMvYm9vbGVhbi1tb25pdG9yLnRzICoqKiFcbiAgXFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qISBubyBzdGF0aWMgZXhwb3J0cyBmb3VuZCAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5jcmVhdGUgPSB2b2lkIDA7XG52YXIgbW9uaXRvcl8xID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vLi4vYmluZGluZy9tb25pdG9yICovIFwiLi9zcmMvbWFpbi9qcy9iaW5kaW5nL21vbml0b3IudHNcIik7XG52YXIgQm9vbGVhbkNvbnZlcnRlciA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uLy4uL2NvbnZlcnRlci9ib29sZWFuICovIFwiLi9zcmMvbWFpbi9qcy9jb252ZXJ0ZXIvYm9vbGVhbi50c1wiKTtcbnZhciBib29sZWFuXzEgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi8uLi9mb3JtYXR0ZXIvYm9vbGVhbiAqLyBcIi4vc3JjL21haW4vanMvZm9ybWF0dGVyL2Jvb2xlYW4udHNcIik7XG52YXIgdHlwZV91dGlsXzEgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi8uLi9taXNjL3R5cGUtdXRpbCAqLyBcIi4vc3JjL21haW4vanMvbWlzYy90eXBlLXV0aWwudHNcIik7XG52YXIgbW9uaXRvcl92YWx1ZV8xID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vLi4vbW9kZWwvbW9uaXRvci12YWx1ZSAqLyBcIi4vc3JjL21haW4vanMvbW9kZWwvbW9uaXRvci12YWx1ZS50c1wiKTtcbnZhciB2aWV3X21vZGVsXzEgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi8uLi9tb2RlbC92aWV3LW1vZGVsICovIFwiLi9zcmMvbWFpbi9qcy9tb2RlbC92aWV3LW1vZGVsLnRzXCIpO1xudmFyIG1vbml0b3JfYmluZGluZ18xID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vbW9uaXRvci1iaW5kaW5nICovIFwiLi9zcmMvbWFpbi9qcy9jb250cm9sbGVyL21vbml0b3ItYmluZGluZy50c1wiKTtcbnZhciBtdWx0aV9sb2dfMSA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL21vbml0b3IvbXVsdGktbG9nICovIFwiLi9zcmMvbWFpbi9qcy9jb250cm9sbGVyL21vbml0b3IvbXVsdGktbG9nLnRzXCIpO1xudmFyIHNpbmdsZV9sb2dfMSA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL21vbml0b3Ivc2luZ2xlLWxvZyAqLyBcIi4vc3JjL21haW4vanMvY29udHJvbGxlci9tb25pdG9yL3NpbmdsZS1sb2cudHNcIik7XG52YXIgdXRpbF8xID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi91dGlsICovIFwiLi9zcmMvbWFpbi9qcy9jb250cm9sbGVyL2JpbmRpbmctY3JlYXRvcnMvdXRpbC50c1wiKTtcbi8qKlxuICogQGhpZGRlblxuICovXG5mdW5jdGlvbiBjcmVhdGUoZG9jdW1lbnQsIHRhcmdldCwgcGFyYW1zKSB7XG4gICAgdmFyIGluaXRpYWxWYWx1ZSA9IHRhcmdldC5yZWFkKCk7XG4gICAgaWYgKHR5cGVvZiBpbml0aWFsVmFsdWUgIT09ICdib29sZWFuJykge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgdmFyIHZhbHVlID0gbmV3IG1vbml0b3JfdmFsdWVfMS5Nb25pdG9yVmFsdWUodHlwZV91dGlsXzEuVHlwZVV0aWwuZ2V0T3JEZWZhdWx0KHBhcmFtcy5jb3VudCwgMSkpO1xuICAgIHZhciBjb250cm9sbGVyID0gdmFsdWUudG90YWxDb3VudCA9PT0gMVxuICAgICAgICA/IG5ldyBzaW5nbGVfbG9nXzEuU2luZ2xlTG9nTW9uaXRvckNvbnRyb2xsZXIoZG9jdW1lbnQsIHtcbiAgICAgICAgICAgIHZpZXdNb2RlbDogbmV3IHZpZXdfbW9kZWxfMS5WaWV3TW9kZWwoKSxcbiAgICAgICAgICAgIGZvcm1hdHRlcjogbmV3IGJvb2xlYW5fMS5Cb29sZWFuRm9ybWF0dGVyKCksXG4gICAgICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAgIH0pXG4gICAgICAgIDogbmV3IG11bHRpX2xvZ18xLk11bHRpTG9nTW9uaXRvckNvbnRyb2xsZXIoZG9jdW1lbnQsIHtcbiAgICAgICAgICAgIHZpZXdNb2RlbDogbmV3IHZpZXdfbW9kZWxfMS5WaWV3TW9kZWwoKSxcbiAgICAgICAgICAgIGZvcm1hdHRlcjogbmV3IGJvb2xlYW5fMS5Cb29sZWFuRm9ybWF0dGVyKCksXG4gICAgICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAgIH0pO1xuICAgIHJldHVybiBuZXcgbW9uaXRvcl9iaW5kaW5nXzEuTW9uaXRvckJpbmRpbmdDb250cm9sbGVyKGRvY3VtZW50LCB7XG4gICAgICAgIGJpbmRpbmc6IG5ldyBtb25pdG9yXzEuTW9uaXRvckJpbmRpbmcoe1xuICAgICAgICAgICAgcmVhZGVyOiBCb29sZWFuQ29udmVydGVyLmZyb21NaXhlZCxcbiAgICAgICAgICAgIHRhcmdldDogdGFyZ2V0LFxuICAgICAgICAgICAgdGlja2VyOiB1dGlsXzEuY3JlYXRlVGlja2VyKGRvY3VtZW50LCBwYXJhbXMuaW50ZXJ2YWwpLFxuICAgICAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICB9KSxcbiAgICAgICAgY29udHJvbGxlcjogY29udHJvbGxlcixcbiAgICAgICAgbGFiZWw6IHBhcmFtcy5sYWJlbCB8fCB0YXJnZXQua2V5LFxuICAgIH0pO1xufVxuZXhwb3J0cy5jcmVhdGUgPSBjcmVhdGU7XG5cblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi9zcmMvbWFpbi9qcy9jb250cm9sbGVyL2JpbmRpbmctY3JlYXRvcnMvY29sb3ItaW5wdXQudHNcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi9zcmMvbWFpbi9qcy9jb250cm9sbGVyL2JpbmRpbmctY3JlYXRvcnMvY29sb3ItaW5wdXQudHMgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiEgbm8gc3RhdGljIGV4cG9ydHMgZm91bmQgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuY3JlYXRlV2l0aE9iamVjdCA9IGV4cG9ydHMuY3JlYXRlV2l0aE51bWJlciA9IGV4cG9ydHMuY3JlYXRlV2l0aFN0cmluZyA9IHZvaWQgMDtcbnZhciBpbnB1dF8xID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vLi4vYmluZGluZy9pbnB1dCAqLyBcIi4vc3JjL21haW4vanMvYmluZGluZy9pbnB1dC50c1wiKTtcbnZhciBDb2xvckNvbnZlcnRlciA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uLy4uL2NvbnZlcnRlci9jb2xvciAqLyBcIi4vc3JjL21haW4vanMvY29udmVydGVyL2NvbG9yLnRzXCIpO1xudmFyIGNvbG9yXzEgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi8uLi9mb3JtYXR0ZXIvY29sb3IgKi8gXCIuL3NyYy9tYWluL2pzL2Zvcm1hdHRlci9jb2xvci50c1wiKTtcbnZhciBjb2xvcl8yID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vLi4vbW9kZWwvY29sb3IgKi8gXCIuL3NyYy9tYWluL2pzL21vZGVsL2NvbG9yLnRzXCIpO1xudmFyIGlucHV0X3ZhbHVlXzEgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi8uLi9tb2RlbC9pbnB1dC12YWx1ZSAqLyBcIi4vc3JjL21haW4vanMvbW9kZWwvaW5wdXQtdmFsdWUudHNcIik7XG52YXIgdmlld19tb2RlbF8xID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vLi4vbW9kZWwvdmlldy1tb2RlbCAqLyBcIi4vc3JjL21haW4vanMvbW9kZWwvdmlldy1tb2RlbC50c1wiKTtcbnZhciBOdW1iZXJDb2xvclBhcnNlciA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uLy4uL3BhcnNlci9udW1iZXItY29sb3IgKi8gXCIuL3NyYy9tYWluL2pzL3BhcnNlci9udW1iZXItY29sb3IudHNcIik7XG52YXIgU3RyaW5nQ29sb3JQYXJzZXIgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi8uLi9wYXJzZXIvc3RyaW5nLWNvbG9yICovIFwiLi9zcmMvbWFpbi9qcy9wYXJzZXIvc3RyaW5nLWNvbG9yLnRzXCIpO1xudmFyIGlucHV0X2JpbmRpbmdfMSA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2lucHV0LWJpbmRpbmcgKi8gXCIuL3NyYy9tYWluL2pzL2NvbnRyb2xsZXIvaW5wdXQtYmluZGluZy50c1wiKTtcbnZhciBjb2xvcl9zd2F0Y2hfdGV4dF8xID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vaW5wdXQvY29sb3Itc3dhdGNoLXRleHQgKi8gXCIuL3NyYy9tYWluL2pzL2NvbnRyb2xsZXIvaW5wdXQvY29sb3Itc3dhdGNoLXRleHQudHNcIik7XG4vKipcbiAqIEBoaWRkZW5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlV2l0aFN0cmluZyhkb2N1bWVudCwgdGFyZ2V0LCBwYXJhbXMpIHtcbiAgICB2YXIgaW5pdGlhbFZhbHVlID0gdGFyZ2V0LnJlYWQoKTtcbiAgICBpZiAodHlwZW9mIGluaXRpYWxWYWx1ZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGlmICgnaW5wdXQnIGluIHBhcmFtcyAmJiBwYXJhbXMuaW5wdXQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICB2YXIgbm90YXRpb24gPSBTdHJpbmdDb2xvclBhcnNlci5nZXROb3RhdGlvbihpbml0aWFsVmFsdWUpO1xuICAgIGlmICghbm90YXRpb24pIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHZhciBjb252ZXJ0ZXIgPSBDb2xvckNvbnZlcnRlci5mcm9tU3RyaW5nO1xuICAgIHZhciBjb2xvciA9IGNvbnZlcnRlcihpbml0aWFsVmFsdWUpO1xuICAgIHZhciB2YWx1ZSA9IG5ldyBpbnB1dF92YWx1ZV8xLklucHV0VmFsdWUoY29sb3IpO1xuICAgIHZhciB3cml0ZXIgPSBDb2xvckNvbnZlcnRlci5nZXRTdHJpbmdpZmllcihub3RhdGlvbik7XG4gICAgcmV0dXJuIG5ldyBpbnB1dF9iaW5kaW5nXzEuSW5wdXRCaW5kaW5nQ29udHJvbGxlcihkb2N1bWVudCwge1xuICAgICAgICBiaW5kaW5nOiBuZXcgaW5wdXRfMS5JbnB1dEJpbmRpbmcoe1xuICAgICAgICAgICAgcmVhZGVyOiBjb252ZXJ0ZXIsXG4gICAgICAgICAgICB0YXJnZXQ6IHRhcmdldCxcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICAgIHdyaXRlcjogd3JpdGVyLFxuICAgICAgICB9KSxcbiAgICAgICAgY29udHJvbGxlcjogbmV3IGNvbG9yX3N3YXRjaF90ZXh0XzEuQ29sb3JTd2F0Y2hUZXh0SW5wdXRDb250cm9sbGVyKGRvY3VtZW50LCB7XG4gICAgICAgICAgICBmb3JtYXR0ZXI6IG5ldyBjb2xvcl8xLkNvbG9yRm9ybWF0dGVyKHdyaXRlciksXG4gICAgICAgICAgICBwYXJzZXI6IFN0cmluZ0NvbG9yUGFyc2VyLkNvbXBvc2l0ZVBhcnNlcixcbiAgICAgICAgICAgIHN1cHBvcnRzQWxwaGE6IFN0cmluZ0NvbG9yUGFyc2VyLmhhc0FscGhhQ29tcG9uZW50KG5vdGF0aW9uKSxcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICAgIHZpZXdNb2RlbDogbmV3IHZpZXdfbW9kZWxfMS5WaWV3TW9kZWwoKSxcbiAgICAgICAgfSksXG4gICAgICAgIGxhYmVsOiBwYXJhbXMubGFiZWwgfHwgdGFyZ2V0LmtleSxcbiAgICB9KTtcbn1cbmV4cG9ydHMuY3JlYXRlV2l0aFN0cmluZyA9IGNyZWF0ZVdpdGhTdHJpbmc7XG4vKipcbiAqIEBoaWRkZW5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlV2l0aE51bWJlcihkb2N1bWVudCwgdGFyZ2V0LCBwYXJhbXMpIHtcbiAgICB2YXIgaW5pdGlhbFZhbHVlID0gdGFyZ2V0LnJlYWQoKTtcbiAgICBpZiAodHlwZW9mIGluaXRpYWxWYWx1ZSAhPT0gJ251bWJlcicpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGlmICghKCdpbnB1dCcgaW4gcGFyYW1zKSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgaWYgKHBhcmFtcy5pbnB1dCAhPT0gJ2NvbG9yJyAmJlxuICAgICAgICBwYXJhbXMuaW5wdXQgIT09ICdjb2xvci5yZ2InICYmXG4gICAgICAgIHBhcmFtcy5pbnB1dCAhPT0gJ2NvbG9yLnJnYmEnKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICB2YXIgc3VwcG9ydHNBbHBoYSA9IHBhcmFtcy5pbnB1dCA9PT0gJ2NvbG9yLnJnYmEnO1xuICAgIHZhciBwYXJzZXIgPSBzdXBwb3J0c0FscGhhXG4gICAgICAgID8gTnVtYmVyQ29sb3JQYXJzZXIuUmdiYVBhcnNlclxuICAgICAgICA6IE51bWJlckNvbG9yUGFyc2VyLlJnYlBhcnNlcjtcbiAgICB2YXIgY29sb3IgPSBwYXJzZXIoaW5pdGlhbFZhbHVlKTtcbiAgICBpZiAoIWNvbG9yKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICB2YXIgZm9ybWF0dGVyID0gc3VwcG9ydHNBbHBoYVxuICAgICAgICA/IG5ldyBjb2xvcl8xLkNvbG9yRm9ybWF0dGVyKENvbG9yQ29udmVydGVyLnRvSGV4UmdiYVN0cmluZylcbiAgICAgICAgOiBuZXcgY29sb3JfMS5Db2xvckZvcm1hdHRlcihDb2xvckNvbnZlcnRlci50b0hleFJnYlN0cmluZyk7XG4gICAgdmFyIHJlYWRlciA9IHN1cHBvcnRzQWxwaGFcbiAgICAgICAgPyBDb2xvckNvbnZlcnRlci5mcm9tTnVtYmVyVG9SZ2JhXG4gICAgICAgIDogQ29sb3JDb252ZXJ0ZXIuZnJvbU51bWJlclRvUmdiO1xuICAgIHZhciB3cml0ZXIgPSBzdXBwb3J0c0FscGhhXG4gICAgICAgID8gQ29sb3JDb252ZXJ0ZXIudG9SZ2JhTnVtYmVyXG4gICAgICAgIDogQ29sb3JDb252ZXJ0ZXIudG9SZ2JOdW1iZXI7XG4gICAgdmFyIHZhbHVlID0gbmV3IGlucHV0X3ZhbHVlXzEuSW5wdXRWYWx1ZShjb2xvcik7XG4gICAgcmV0dXJuIG5ldyBpbnB1dF9iaW5kaW5nXzEuSW5wdXRCaW5kaW5nQ29udHJvbGxlcihkb2N1bWVudCwge1xuICAgICAgICBiaW5kaW5nOiBuZXcgaW5wdXRfMS5JbnB1dEJpbmRpbmcoe1xuICAgICAgICAgICAgcmVhZGVyOiByZWFkZXIsXG4gICAgICAgICAgICB0YXJnZXQ6IHRhcmdldCxcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICAgIHdyaXRlcjogd3JpdGVyLFxuICAgICAgICB9KSxcbiAgICAgICAgY29udHJvbGxlcjogbmV3IGNvbG9yX3N3YXRjaF90ZXh0XzEuQ29sb3JTd2F0Y2hUZXh0SW5wdXRDb250cm9sbGVyKGRvY3VtZW50LCB7XG4gICAgICAgICAgICBmb3JtYXR0ZXI6IGZvcm1hdHRlcixcbiAgICAgICAgICAgIHBhcnNlcjogU3RyaW5nQ29sb3JQYXJzZXIuQ29tcG9zaXRlUGFyc2VyLFxuICAgICAgICAgICAgc3VwcG9ydHNBbHBoYTogc3VwcG9ydHNBbHBoYSxcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICAgIHZpZXdNb2RlbDogbmV3IHZpZXdfbW9kZWxfMS5WaWV3TW9kZWwoKSxcbiAgICAgICAgfSksXG4gICAgICAgIGxhYmVsOiBwYXJhbXMubGFiZWwgfHwgdGFyZ2V0LmtleSxcbiAgICB9KTtcbn1cbmV4cG9ydHMuY3JlYXRlV2l0aE51bWJlciA9IGNyZWF0ZVdpdGhOdW1iZXI7XG4vKipcbiAqIEBoaWRkZW5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlV2l0aE9iamVjdChkb2N1bWVudCwgdGFyZ2V0LCBwYXJhbXMpIHtcbiAgICB2YXIgaW5pdGlhbFZhbHVlID0gdGFyZ2V0LnJlYWQoKTtcbiAgICBpZiAoIWNvbG9yXzIuQ29sb3IuaXNDb2xvck9iamVjdChpbml0aWFsVmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICB2YXIgY29sb3IgPSBjb2xvcl8yLkNvbG9yLmZyb21PYmplY3QoaW5pdGlhbFZhbHVlKTtcbiAgICB2YXIgc3VwcG9ydHNBbHBoYSA9IGNvbG9yXzIuQ29sb3IuaXNSZ2JhQ29sb3JPYmplY3QoaW5pdGlhbFZhbHVlKTtcbiAgICB2YXIgZm9ybWF0dGVyID0gc3VwcG9ydHNBbHBoYVxuICAgICAgICA/IG5ldyBjb2xvcl8xLkNvbG9yRm9ybWF0dGVyKENvbG9yQ29udmVydGVyLnRvSGV4UmdiYVN0cmluZylcbiAgICAgICAgOiBuZXcgY29sb3JfMS5Db2xvckZvcm1hdHRlcihDb2xvckNvbnZlcnRlci50b0hleFJnYlN0cmluZyk7XG4gICAgdmFyIHZhbHVlID0gbmV3IGlucHV0X3ZhbHVlXzEuSW5wdXRWYWx1ZShjb2xvcik7XG4gICAgcmV0dXJuIG5ldyBpbnB1dF9iaW5kaW5nXzEuSW5wdXRCaW5kaW5nQ29udHJvbGxlcihkb2N1bWVudCwge1xuICAgICAgICBiaW5kaW5nOiBuZXcgaW5wdXRfMS5JbnB1dEJpbmRpbmcoe1xuICAgICAgICAgICAgcmVhZGVyOiBDb2xvckNvbnZlcnRlci5mcm9tT2JqZWN0LFxuICAgICAgICAgICAgdGFyZ2V0OiB0YXJnZXQsXG4gICAgICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAgICAgICB3cml0ZXI6IGNvbG9yXzIuQ29sb3IudG9SZ2JhT2JqZWN0LFxuICAgICAgICB9KSxcbiAgICAgICAgY29udHJvbGxlcjogbmV3IGNvbG9yX3N3YXRjaF90ZXh0XzEuQ29sb3JTd2F0Y2hUZXh0SW5wdXRDb250cm9sbGVyKGRvY3VtZW50LCB7XG4gICAgICAgICAgICB2aWV3TW9kZWw6IG5ldyB2aWV3X21vZGVsXzEuVmlld01vZGVsKCksXG4gICAgICAgICAgICBmb3JtYXR0ZXI6IGZvcm1hdHRlcixcbiAgICAgICAgICAgIHBhcnNlcjogU3RyaW5nQ29sb3JQYXJzZXIuQ29tcG9zaXRlUGFyc2VyLFxuICAgICAgICAgICAgc3VwcG9ydHNBbHBoYTogc3VwcG9ydHNBbHBoYSxcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgfSksXG4gICAgICAgIGxhYmVsOiBwYXJhbXMubGFiZWwgfHwgdGFyZ2V0LmtleSxcbiAgICB9KTtcbn1cbmV4cG9ydHMuY3JlYXRlV2l0aE9iamVjdCA9IGNyZWF0ZVdpdGhPYmplY3Q7XG5cblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi9zcmMvbWFpbi9qcy9jb250cm9sbGVyL2JpbmRpbmctY3JlYXRvcnMvaW5wdXQudHNcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi9zcmMvbWFpbi9qcy9jb250cm9sbGVyL2JpbmRpbmctY3JlYXRvcnMvaW5wdXQudHMgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiEgbm8gc3RhdGljIGV4cG9ydHMgZm91bmQgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuY3JlYXRlID0gdm9pZCAwO1xudmFyIHBhbmVfZXJyb3JfMSA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uLy4uL21pc2MvcGFuZS1lcnJvciAqLyBcIi4vc3JjL21haW4vanMvbWlzYy9wYW5lLWVycm9yLnRzXCIpO1xudmFyIHR5cGVfdXRpbF8xID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vLi4vbWlzYy90eXBlLXV0aWwgKi8gXCIuL3NyYy9tYWluL2pzL21pc2MvdHlwZS11dGlsLnRzXCIpO1xudmFyIEJvb2xlYW5JbnB1dEJpbmRpbmdDb250cm9sbGVyQ3JlYXRvcnMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL2Jvb2xlYW4taW5wdXQgKi8gXCIuL3NyYy9tYWluL2pzL2NvbnRyb2xsZXIvYmluZGluZy1jcmVhdG9ycy9ib29sZWFuLWlucHV0LnRzXCIpO1xudmFyIENvbG9ySW5wdXRCaW5kaW5nQ29udHJvbGxlckNyZWF0b3JzID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9jb2xvci1pbnB1dCAqLyBcIi4vc3JjL21haW4vanMvY29udHJvbGxlci9iaW5kaW5nLWNyZWF0b3JzL2NvbG9yLWlucHV0LnRzXCIpO1xudmFyIE51bWJlcklucHV0QmluZGluZ0NvbnRyb2xsZXJDcmVhdG9ycyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vbnVtYmVyLWlucHV0ICovIFwiLi9zcmMvbWFpbi9qcy9jb250cm9sbGVyL2JpbmRpbmctY3JlYXRvcnMvbnVtYmVyLWlucHV0LnRzXCIpO1xudmFyIFBvaW50MmRJbnB1dEJpbmRpbmdDb250cm9sbGVyQ3JlYXRvcnMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL3BvaW50LTJkLWlucHV0ICovIFwiLi9zcmMvbWFpbi9qcy9jb250cm9sbGVyL2JpbmRpbmctY3JlYXRvcnMvcG9pbnQtMmQtaW5wdXQudHNcIik7XG52YXIgU3RyaW5nSW5wdXRCaW5kaW5nQ29udHJvbGxlckNyZWF0b3JzID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi9zdHJpbmctaW5wdXQgKi8gXCIuL3NyYy9tYWluL2pzL2NvbnRyb2xsZXIvYmluZGluZy1jcmVhdG9ycy9zdHJpbmctaW5wdXQudHNcIik7XG4vKipcbiAqIEBoaWRkZW5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlKGRvY3VtZW50LCB0YXJnZXQsIHBhcmFtcykge1xuICAgIHZhciBpbml0aWFsVmFsdWUgPSB0YXJnZXQucmVhZCgpO1xuICAgIGlmICh0eXBlX3V0aWxfMS5UeXBlVXRpbC5pc0VtcHR5KGluaXRpYWxWYWx1ZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IHBhbmVfZXJyb3JfMS5QYW5lRXJyb3Ioe1xuICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgIGtleTogdGFyZ2V0LmtleSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0eXBlOiAnZW1wdHl2YWx1ZScsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICB2YXIgYmMgPSBbXG4gICAgICAgIEJvb2xlYW5JbnB1dEJpbmRpbmdDb250cm9sbGVyQ3JlYXRvcnMuY3JlYXRlLFxuICAgICAgICBDb2xvcklucHV0QmluZGluZ0NvbnRyb2xsZXJDcmVhdG9ycy5jcmVhdGVXaXRoTnVtYmVyLFxuICAgICAgICBDb2xvcklucHV0QmluZGluZ0NvbnRyb2xsZXJDcmVhdG9ycy5jcmVhdGVXaXRoT2JqZWN0LFxuICAgICAgICBDb2xvcklucHV0QmluZGluZ0NvbnRyb2xsZXJDcmVhdG9ycy5jcmVhdGVXaXRoU3RyaW5nLFxuICAgICAgICBOdW1iZXJJbnB1dEJpbmRpbmdDb250cm9sbGVyQ3JlYXRvcnMuY3JlYXRlLFxuICAgICAgICBTdHJpbmdJbnB1dEJpbmRpbmdDb250cm9sbGVyQ3JlYXRvcnMuY3JlYXRlLFxuICAgICAgICBQb2ludDJkSW5wdXRCaW5kaW5nQ29udHJvbGxlckNyZWF0b3JzLmNyZWF0ZSxcbiAgICBdLnJlZHVjZShmdW5jdGlvbiAocmVzdWx0LCBjcmVhdGVCaW5kaW5nQ29udHJvbGxlcikge1xuICAgICAgICByZXR1cm4gcmVzdWx0IHx8IGNyZWF0ZUJpbmRpbmdDb250cm9sbGVyKGRvY3VtZW50LCB0YXJnZXQsIHBhcmFtcyk7XG4gICAgfSwgbnVsbCk7XG4gICAgaWYgKGJjKSB7XG4gICAgICAgIHJldHVybiBiYztcbiAgICB9XG4gICAgdGhyb3cgbmV3IHBhbmVfZXJyb3JfMS5QYW5lRXJyb3Ioe1xuICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICBrZXk6IHRhcmdldC5rZXksXG4gICAgICAgIH0sXG4gICAgICAgIHR5cGU6ICdub21hdGNoaW5nY29udHJvbGxlcicsXG4gICAgfSk7XG59XG5leHBvcnRzLmNyZWF0ZSA9IGNyZWF0ZTtcblxuXG4vKioqLyB9KSxcblxuLyoqKi8gXCIuL3NyYy9tYWluL2pzL2NvbnRyb2xsZXIvYmluZGluZy1jcmVhdG9ycy9tb25pdG9yLnRzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi9zcmMvbWFpbi9qcy9jb250cm9sbGVyL2JpbmRpbmctY3JlYXRvcnMvbW9uaXRvci50cyAqKiohXG4gIFxcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohIG5vIHN0YXRpYyBleHBvcnRzIGZvdW5kICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmNyZWF0ZSA9IHZvaWQgMDtcbnZhciBwYW5lX2Vycm9yXzEgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi8uLi9taXNjL3BhbmUtZXJyb3IgKi8gXCIuL3NyYy9tYWluL2pzL21pc2MvcGFuZS1lcnJvci50c1wiKTtcbnZhciB0eXBlX3V0aWxfMSA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uLy4uL21pc2MvdHlwZS11dGlsICovIFwiLi9zcmMvbWFpbi9qcy9taXNjL3R5cGUtdXRpbC50c1wiKTtcbnZhciBCb29sZWFuTW9uaXRvckJpbmRpbmdDb250cm9sbGVyQ3JlYXRvcnMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuL2Jvb2xlYW4tbW9uaXRvciAqLyBcIi4vc3JjL21haW4vanMvY29udHJvbGxlci9iaW5kaW5nLWNyZWF0b3JzL2Jvb2xlYW4tbW9uaXRvci50c1wiKTtcbnZhciBOdW1iZXJNb25pdG9yQmluZGluZ0NvbnRyb2xsZXJDcmVhdG9ycyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vbnVtYmVyLW1vbml0b3IgKi8gXCIuL3NyYy9tYWluL2pzL2NvbnRyb2xsZXIvYmluZGluZy1jcmVhdG9ycy9udW1iZXItbW9uaXRvci50c1wiKTtcbnZhciBTdHJpbmdNb25pdG9yQmluZGluZ0NvbnRyb2xsZXJDcmVhdG9ycyA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4vc3RyaW5nLW1vbml0b3IgKi8gXCIuL3NyYy9tYWluL2pzL2NvbnRyb2xsZXIvYmluZGluZy1jcmVhdG9ycy9zdHJpbmctbW9uaXRvci50c1wiKTtcbi8qKlxuICogQGhpZGRlblxuICovXG5mdW5jdGlvbiBjcmVhdGUoZG9jdW1lbnQsIHRhcmdldCwgcGFyYW1zKSB7XG4gICAgdmFyIGluaXRpYWxWYWx1ZSA9IHRhcmdldC5yZWFkKCk7XG4gICAgaWYgKHR5cGVfdXRpbF8xLlR5cGVVdGlsLmlzRW1wdHkoaW5pdGlhbFZhbHVlKSkge1xuICAgICAgICB0aHJvdyBuZXcgcGFuZV9lcnJvcl8xLlBhbmVFcnJvcih7XG4gICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAga2V5OiB0YXJnZXQua2V5LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHR5cGU6ICdlbXB0eXZhbHVlJyxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHZhciBiYyA9IFtcbiAgICAgICAgTnVtYmVyTW9uaXRvckJpbmRpbmdDb250cm9sbGVyQ3JlYXRvcnMuY3JlYXRlLFxuICAgICAgICBTdHJpbmdNb25pdG9yQmluZGluZ0NvbnRyb2xsZXJDcmVhdG9ycy5jcmVhdGUsXG4gICAgICAgIEJvb2xlYW5Nb25pdG9yQmluZGluZ0NvbnRyb2xsZXJDcmVhdG9ycy5jcmVhdGUsXG4gICAgXS5yZWR1Y2UoZnVuY3Rpb24gKHJlc3VsdCwgY3JlYXRlQmluZGluZ0NvbnRyb2xsZXIpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdCB8fCBjcmVhdGVCaW5kaW5nQ29udHJvbGxlcihkb2N1bWVudCwgdGFyZ2V0LCBwYXJhbXMpO1xuICAgIH0sIG51bGwpO1xuICAgIGlmIChiYykge1xuICAgICAgICByZXR1cm4gYmM7XG4gICAgfVxuICAgIHRocm93IG5ldyBwYW5lX2Vycm9yXzEuUGFuZUVycm9yKHtcbiAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAga2V5OiB0YXJnZXQua2V5LFxuICAgICAgICB9LFxuICAgICAgICB0eXBlOiAnbm9tYXRjaGluZ2NvbnRyb2xsZXInLFxuICAgIH0pO1xufVxuZXhwb3J0cy5jcmVhdGUgPSBjcmVhdGU7XG5cblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi9zcmMvbWFpbi9qcy9jb250cm9sbGVyL2JpbmRpbmctY3JlYXRvcnMvbnVtYmVyLWlucHV0LnRzXCI6XG4vKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXFxcbiAgISoqKiAuL3NyYy9tYWluL2pzL2NvbnRyb2xsZXIvYmluZGluZy1jcmVhdG9ycy9udW1iZXItaW5wdXQudHMgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohIG5vIHN0YXRpYyBleHBvcnRzIGZvdW5kICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmNyZWF0ZSA9IHZvaWQgMDtcbnZhciBpbnB1dF8xID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vLi4vYmluZGluZy9pbnB1dCAqLyBcIi4vc3JjL21haW4vanMvYmluZGluZy9pbnB1dC50c1wiKTtcbnZhciBjb21wb3NpdGVfMSA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uLy4uL2NvbnN0cmFpbnQvY29tcG9zaXRlICovIFwiLi9zcmMvbWFpbi9qcy9jb25zdHJhaW50L2NvbXBvc2l0ZS50c1wiKTtcbnZhciBsaXN0XzEgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi8uLi9jb25zdHJhaW50L2xpc3QgKi8gXCIuL3NyYy9tYWluL2pzL2NvbnN0cmFpbnQvbGlzdC50c1wiKTtcbnZhciByYW5nZV8xID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vLi4vY29uc3RyYWludC9yYW5nZSAqLyBcIi4vc3JjL21haW4vanMvY29uc3RyYWludC9yYW5nZS50c1wiKTtcbnZhciBzdGVwXzEgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi8uLi9jb25zdHJhaW50L3N0ZXAgKi8gXCIuL3NyYy9tYWluL2pzL2NvbnN0cmFpbnQvc3RlcC50c1wiKTtcbnZhciB1dGlsXzEgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi8uLi9jb25zdHJhaW50L3V0aWwgKi8gXCIuL3NyYy9tYWluL2pzL2NvbnN0cmFpbnQvdXRpbC50c1wiKTtcbnZhciBOdW1iZXJDb252ZXJ0ZXIgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi8uLi9jb252ZXJ0ZXIvbnVtYmVyICovIFwiLi9zcmMvbWFpbi9qcy9jb252ZXJ0ZXIvbnVtYmVyLnRzXCIpO1xudmFyIG51bWJlcl8xID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vLi4vZm9ybWF0dGVyL251bWJlciAqLyBcIi4vc3JjL21haW4vanMvZm9ybWF0dGVyL251bWJlci50c1wiKTtcbnZhciB0eXBlX3V0aWxfMSA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uLy4uL21pc2MvdHlwZS11dGlsICovIFwiLi9zcmMvbWFpbi9qcy9taXNjL3R5cGUtdXRpbC50c1wiKTtcbnZhciBpbnB1dF92YWx1ZV8xID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vLi4vbW9kZWwvaW5wdXQtdmFsdWUgKi8gXCIuL3NyYy9tYWluL2pzL21vZGVsL2lucHV0LXZhbHVlLnRzXCIpO1xudmFyIHZpZXdfbW9kZWxfMSA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uLy4uL21vZGVsL3ZpZXctbW9kZWwgKi8gXCIuL3NyYy9tYWluL2pzL21vZGVsL3ZpZXctbW9kZWwudHNcIik7XG52YXIgc3RyaW5nX251bWJlcl8xID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vLi4vcGFyc2VyL3N0cmluZy1udW1iZXIgKi8gXCIuL3NyYy9tYWluL2pzL3BhcnNlci9zdHJpbmctbnVtYmVyLnRzXCIpO1xudmFyIGlucHV0X2JpbmRpbmdfMSA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2lucHV0LWJpbmRpbmcgKi8gXCIuL3NyYy9tYWluL2pzL2NvbnRyb2xsZXIvaW5wdXQtYmluZGluZy50c1wiKTtcbnZhciBsaXN0XzIgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9pbnB1dC9saXN0ICovIFwiLi9zcmMvbWFpbi9qcy9jb250cm9sbGVyL2lucHV0L2xpc3QudHNcIik7XG52YXIgbnVtYmVyX3RleHRfMSA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL2lucHV0L251bWJlci10ZXh0ICovIFwiLi9zcmMvbWFpbi9qcy9jb250cm9sbGVyL2lucHV0L251bWJlci10ZXh0LnRzXCIpO1xudmFyIHNsaWRlcl90ZXh0XzEgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi9pbnB1dC9zbGlkZXItdGV4dCAqLyBcIi4vc3JjL21haW4vanMvY29udHJvbGxlci9pbnB1dC9zbGlkZXItdGV4dC50c1wiKTtcbnZhciBVaVV0aWwgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi91aS11dGlsICovIFwiLi9zcmMvbWFpbi9qcy9jb250cm9sbGVyL3VpLXV0aWwudHNcIik7XG5mdW5jdGlvbiBjcmVhdGVDb25zdHJhaW50KHBhcmFtcykge1xuICAgIHZhciBjb25zdHJhaW50cyA9IFtdO1xuICAgIGlmICgnc3RlcCcgaW4gcGFyYW1zICYmICF0eXBlX3V0aWxfMS5UeXBlVXRpbC5pc0VtcHR5KHBhcmFtcy5zdGVwKSkge1xuICAgICAgICBjb25zdHJhaW50cy5wdXNoKG5ldyBzdGVwXzEuU3RlcENvbnN0cmFpbnQoe1xuICAgICAgICAgICAgc3RlcDogcGFyYW1zLnN0ZXAsXG4gICAgICAgIH0pKTtcbiAgICB9XG4gICAgaWYgKCgnbWF4JyBpbiBwYXJhbXMgJiYgIXR5cGVfdXRpbF8xLlR5cGVVdGlsLmlzRW1wdHkocGFyYW1zLm1heCkpIHx8XG4gICAgICAgICgnbWluJyBpbiBwYXJhbXMgJiYgIXR5cGVfdXRpbF8xLlR5cGVVdGlsLmlzRW1wdHkocGFyYW1zLm1pbikpKSB7XG4gICAgICAgIGNvbnN0cmFpbnRzLnB1c2gobmV3IHJhbmdlXzEuUmFuZ2VDb25zdHJhaW50KHtcbiAgICAgICAgICAgIG1heDogcGFyYW1zLm1heCxcbiAgICAgICAgICAgIG1pbjogcGFyYW1zLm1pbixcbiAgICAgICAgfSkpO1xuICAgIH1cbiAgICBpZiAoJ29wdGlvbnMnIGluIHBhcmFtcyAmJiBwYXJhbXMub3B0aW9ucyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnN0cmFpbnRzLnB1c2gobmV3IGxpc3RfMS5MaXN0Q29uc3RyYWludCh7XG4gICAgICAgICAgICBvcHRpb25zOiBVaVV0aWwubm9ybWFsaXplSW5wdXRQYXJhbXNPcHRpb25zKHBhcmFtcy5vcHRpb25zLCBOdW1iZXJDb252ZXJ0ZXIuZnJvbU1peGVkKSxcbiAgICAgICAgfSkpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IGNvbXBvc2l0ZV8xLkNvbXBvc2l0ZUNvbnN0cmFpbnQoe1xuICAgICAgICBjb25zdHJhaW50czogY29uc3RyYWludHMsXG4gICAgfSk7XG59XG5mdW5jdGlvbiBjcmVhdGVDb250cm9sbGVyKGRvY3VtZW50LCB2YWx1ZSkge1xuICAgIHZhciBjID0gdmFsdWUuY29uc3RyYWludDtcbiAgICBpZiAoYyAmJiB1dGlsXzEuQ29uc3RyYWludFV0aWwuZmluZENvbnN0cmFpbnQoYywgbGlzdF8xLkxpc3RDb25zdHJhaW50KSkge1xuICAgICAgICByZXR1cm4gbmV3IGxpc3RfMi5MaXN0SW5wdXRDb250cm9sbGVyKGRvY3VtZW50LCB7XG4gICAgICAgICAgICBzdHJpbmdpZnlWYWx1ZTogTnVtYmVyQ29udmVydGVyLnRvU3RyaW5nLFxuICAgICAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICAgICAgdmlld01vZGVsOiBuZXcgdmlld19tb2RlbF8xLlZpZXdNb2RlbCgpLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgaWYgKGMgJiYgdXRpbF8xLkNvbnN0cmFpbnRVdGlsLmZpbmRDb25zdHJhaW50KGMsIHJhbmdlXzEuUmFuZ2VDb25zdHJhaW50KSkge1xuICAgICAgICByZXR1cm4gbmV3IHNsaWRlcl90ZXh0XzEuU2xpZGVyVGV4dElucHV0Q29udHJvbGxlcihkb2N1bWVudCwge1xuICAgICAgICAgICAgZm9ybWF0dGVyOiBuZXcgbnVtYmVyXzEuTnVtYmVyRm9ybWF0dGVyKFVpVXRpbC5nZXRTdWl0YWJsZURlY2ltYWxEaWdpdHModmFsdWUuY29uc3RyYWludCwgdmFsdWUucmF3VmFsdWUpKSxcbiAgICAgICAgICAgIHBhcnNlcjogc3RyaW5nX251bWJlcl8xLlN0cmluZ051bWJlclBhcnNlcixcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICAgIHZpZXdNb2RlbDogbmV3IHZpZXdfbW9kZWxfMS5WaWV3TW9kZWwoKSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgbnVtYmVyX3RleHRfMS5OdW1iZXJUZXh0SW5wdXRDb250cm9sbGVyKGRvY3VtZW50LCB7XG4gICAgICAgIGZvcm1hdHRlcjogbmV3IG51bWJlcl8xLk51bWJlckZvcm1hdHRlcihVaVV0aWwuZ2V0U3VpdGFibGVEZWNpbWFsRGlnaXRzKHZhbHVlLmNvbnN0cmFpbnQsIHZhbHVlLnJhd1ZhbHVlKSksXG4gICAgICAgIHBhcnNlcjogc3RyaW5nX251bWJlcl8xLlN0cmluZ051bWJlclBhcnNlcixcbiAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICB2aWV3TW9kZWw6IG5ldyB2aWV3X21vZGVsXzEuVmlld01vZGVsKCksXG4gICAgfSk7XG59XG4vKipcbiAqIEBoaWRkZW5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlKGRvY3VtZW50LCB0YXJnZXQsIHBhcmFtcykge1xuICAgIHZhciBpbml0aWFsVmFsdWUgPSB0YXJnZXQucmVhZCgpO1xuICAgIGlmICh0eXBlb2YgaW5pdGlhbFZhbHVlICE9PSAnbnVtYmVyJykge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgdmFyIHZhbHVlID0gbmV3IGlucHV0X3ZhbHVlXzEuSW5wdXRWYWx1ZSgwLCBjcmVhdGVDb25zdHJhaW50KHBhcmFtcykpO1xuICAgIHZhciBiaW5kaW5nID0gbmV3IGlucHV0XzEuSW5wdXRCaW5kaW5nKHtcbiAgICAgICAgcmVhZGVyOiBOdW1iZXJDb252ZXJ0ZXIuZnJvbU1peGVkLFxuICAgICAgICB0YXJnZXQ6IHRhcmdldCxcbiAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICB3cml0ZXI6IGZ1bmN0aW9uICh2KSB7IHJldHVybiB2OyB9LFxuICAgIH0pO1xuICAgIHZhciBjb250cm9sbGVyID0gY3JlYXRlQ29udHJvbGxlcihkb2N1bWVudCwgdmFsdWUpO1xuICAgIHJldHVybiBuZXcgaW5wdXRfYmluZGluZ18xLklucHV0QmluZGluZ0NvbnRyb2xsZXIoZG9jdW1lbnQsIHtcbiAgICAgICAgYmluZGluZzogYmluZGluZyxcbiAgICAgICAgY29udHJvbGxlcjogY29udHJvbGxlcixcbiAgICAgICAgbGFiZWw6IHBhcmFtcy5sYWJlbCB8fCB0YXJnZXQua2V5LFxuICAgIH0pO1xufVxuZXhwb3J0cy5jcmVhdGUgPSBjcmVhdGU7XG5cblxuLyoqKi8gfSksXG5cbi8qKiovIFwiLi9zcmMvbWFpbi9qcy9jb250cm9sbGVyL2JpbmRpbmctY3JlYXRvcnMvbnVtYmVyLW1vbml0b3IudHNcIjpcbi8qISoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlxcXG4gICEqKiogLi9zcmMvbWFpbi9qcy9jb250cm9sbGVyL2JpbmRpbmctY3JlYXRvcnMvbnVtYmVyLW1vbml0b3IudHMgKioqIVxuICBcXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiEgbm8gc3RhdGljIGV4cG9ydHMgZm91bmQgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuY3JlYXRlID0gdm9pZCAwO1xudmFyIG1vbml0b3JfMSA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uLy4uL2JpbmRpbmcvbW9uaXRvciAqLyBcIi4vc3JjL21haW4vanMvYmluZGluZy9tb25pdG9yLnRzXCIpO1xudmFyIE51bWJlckNvbnZlcnRlciA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uLy4uL2NvbnZlcnRlci9udW1iZXIgKi8gXCIuL3NyYy9tYWluL2pzL2NvbnZlcnRlci9udW1iZXIudHNcIik7XG52YXIgbnVtYmVyXzEgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKC8qISAuLi8uLi9mb3JtYXR0ZXIvbnVtYmVyICovIFwiLi9zcmMvbWFpbi9qcy9mb3JtYXR0ZXIvbnVtYmVyLnRzXCIpO1xudmFyIHR5cGVfdXRpbF8xID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vLi4vbWlzYy90eXBlLXV0aWwgKi8gXCIuL3NyYy9tYWluL2pzL21pc2MvdHlwZS11dGlsLnRzXCIpO1xudmFyIG1vbml0b3JfdmFsdWVfMSA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uLy4uL21vZGVsL21vbml0b3ItdmFsdWUgKi8gXCIuL3NyYy9tYWluL2pzL21vZGVsL21vbml0b3ItdmFsdWUudHNcIik7XG52YXIgdmlld19tb2RlbF8xID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi4vLi4vbW9kZWwvdmlldy1tb2RlbCAqLyBcIi4vc3JjL21haW4vanMvbW9kZWwvdmlldy1tb2RlbC50c1wiKTtcbnZhciBtb25pdG9yX2JpbmRpbmdfMSA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL21vbml0b3ItYmluZGluZyAqLyBcIi4vc3JjL21haW4vanMvY29udHJvbGxlci9tb25pdG9yLWJpbmRpbmcudHNcIik7XG52YXIgZ3JhcGhfMSA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL21vbml0b3IvZ3JhcGggKi8gXCIuL3NyYy9tYWluL2pzL2NvbnRyb2xsZXIvbW9uaXRvci9ncmFwaC50c1wiKTtcbnZhciBtdWx0aV9sb2dfMSA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL21vbml0b3IvbXVsdGktbG9nICovIFwiLi9zcmMvbWFpbi9qcy9jb250cm9sbGVyL21vbml0b3IvbXVsdGktbG9nLnRzXCIpO1xudmFyIHNpbmdsZV9sb2dfMSA9IF9fd2VicGFja19yZXF1aXJlX18oLyohIC4uL21vbml0b3Ivc2luZ2xlLWxvZyAqLyBcIi4vc3JjL21haW4vanMvY29udHJvbGxlci9tb25pdG9yL3NpbmdsZS1sb2cudHNcIik7XG52YXIgdXRpbF8xID0gX193ZWJwYWNrX3JlcXVpcmVfXygvKiEgLi91dGlsICovIFwiLi9zcmMvbWFpbi9qcy9jb250cm9sbGVyL2JpbmRpbmctY3JlYXRvcnMvdXRpbC50c1wiKTtcbmZ1bmN0aW9uIGNyZWF0ZUZvcm1hdHRlcigpIHtcbiAgICAvLyBUT0RPOiBmb3JtYXR0ZXIgcHJlY2lzaW9uXG4gICAgcmV0dXJuIG5ldyBudW1iZXJfMS5OdW1iZXJGb3JtYXR0ZXIoMik7XG59XG5mdW5jdGlvbiBjcmVhdGVUZXh0TW9uaXRvcihkb2N1bWVudCwgdGFyZ2V0LCBwYXJhbXMpIHtcbiAgICB2YXIgdmFsdWUgPSBuZXcgbW9uaXRvcl92YWx1ZV8xLk1vbml0b3JWYWx1ZSh0eXBlX3V0aWxfMS5UeXBlVXRpbC5nZXRPckRlZmF1bHQocGFyYW1zLmNvdW50LCAxKSk7XG4gICAgdmFyIGNvbnRyb2xsZXIgPSB2YWx1ZS50b3RhbENvdW50ID09PSAxXG4gICAgICAgID8gbmV3IHNpbmdsZV9sb2dfMS5TaW5nbGVMb2dNb25pdG9yQ29udHJvbGxlcihkb2N1bWVudCwge1xuICAgICAgICAgICAgZm9ybWF0dGVyOiBjcmVhdGVGb3JtYXR0ZXIoKSxcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICAgIHZpZXdNb2RlbDogbmV3IHZpZXdfbW9kZWxfMS5WaWV3TW9kZWwoKSxcbiAgICAgICAgfSlcbiAgICAgICAgOiBuZXcgbXVsdGlfbG9nXzEuTXVsdGlMb2dNb25pdG9yQ29udHJvbGxlcihkb2N1bWVudCwge1xuICAgICAgICAgICAgZm9ybWF0dGVyOiBjcmVhdGVGb3JtYXR0ZXIoKSxcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICAgIHZpZXdNb2RlbDogbmV3IHZpZXdfbW9kZWxfMS5WaWV3TW9kZWwoKSxcbiAgICAgICAgfSk7XG4gICAgcmV0dXJuIG5ldyBtb25pdG9yX2JpbmRpbmdfMS5Nb25pdG9yQmluZGluZ0NvbnRyb2xsZXIoZG9jdW1lbnQsIHtcbiAgICAgICAgYmluZGluZzogbmV3IG1vbml0b3JfMS5Nb25pdG9yQmluZGluZyh7XG4gICAgICAgICAgICByZWFkZXI6IE51bWJlckNvbnZlcnRlci5mcm9tTWl4ZWQsXG4gICAgICAgICAgICB0YXJnZXQ6IHRhcmdldCxcbiAgICAgICAgICAgIHRpY2tlcjogdXRpbF8xLmNyZWF0ZVRpY2tlcihkb2N1bWVudCwgcGFyYW1zLmludGVydmFsKSxcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgfSksXG4gICAgICAgIGNvbnRyb2xsZXI6IGNvbnRyb2xsZXIsXG4gICAgICAgIGxhYmVsOiBwYXJhbXMubGFiZWwgfHwgdGFyZ2V0LmtleSxcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUdyYXBoTW9uaXRvcihkb2N1bWVudCwgdGFyZ2V0LCBwYXJhbXMpIHtcbiAgICB2YXIgdmFsdWUgPSBuZXcgbW9uaXRvcl92YWx1ZV8xLk1vbml0b3JWYWx1ZSh0eXBlX3V0aWxfMS5UeXBlVXRpbC5nZXRPckRlZmF1bHQocGFyYW1zLmNvdW50LCA2NCkpO1xuICAgIHZhciBjb250cm9sbGVyID0gbmV3IGdyYXBoXzEuR3JhcGhNb25pdG9yQ29udHJvbGxlcihkb2N1bWVudCwge1xuICAgICAgICBmb3JtYXR0ZXI6IGNyZWF0ZUZvcm1hdHRlcigpLFxuICAgICAgICBtYXhWYWx1ZTogdHlwZV91dGlsXzEuVHlwZVV0aWwuZ2V0T3JEZWZhdWx0KCdtYXgnIGluIHBhcmFtcyA/IHBhcmFtcy5tYXggOiBudWxsLCAxMDApLFxuICAgICAgICBtaW5WYWx1ZTogdHlwZV91dGlsXzEuVHlwZVV0aWwuZ2V0T3JEZWZhdWx0KCdtaW4nIGluIHBhcmFtcyA/IHBhcmFtcy5taW4gOiBudWxsLCAwKSxcbiAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICB2aWV3TW9kZWw6IG5ldyB2aWV3X21vZGVsXzEuVmlld01vZGVsKCksXG4gICAgfSk7XG4gICAgcmV0dXJuIG5ldyBtb25pdG9yX2JpbmRpbmdfMS5Nb25pdG9yQmluZGluZ0NvbnRyb2xsZXIoZG9jdW1lbnQsIHtcbiAgICAgICAgYmluZGluZzogbmV3IG1vbml0b3JfMS5Nb25pdG9yQmluZGluZyh7XG4gICAgICAgICAgICByZWFkZXI6IE51bWJlckNvbnZlcnRlci5mcm9tTWl4ZWQsXG4gICAgICAgICAgICB0YXJnZXQ6IHRhcmdldCxcbiAgICAgICAgICAgIHRpY2tlcjogdXRpbF8xLmNyZWF0ZVRpY2tlcihkb2N1bWVudCwgcGFyYW1zLmludGVydmFsKSxcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgfSksXG4gICAgICAgIGNvbnRyb2xsZXI6IGNvbnRyb2xsZXIsXG4gICAgICAgIGxhYmVsOiBwYXJhbXMubGFiZWwgfHwgdGFyZ2V0LmtleSxcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZShkb2N1bWVudCwgdGFyZ2V0LCBwYXJhbX