/home/ryakenya/www/wp-content__4727f99/plugins/feeds-for-youtube/js/sb-youtube.min.js
/*! For license information please see sb-youtube.min.js.LICENSE.txt */
(()=>{var t={473:(t,e,i)=>{var s=i(43),n=i(323);function a(t){return null==t}function o(t){(t=function(t){var e={};for(var i in t)e[i]=t[i];return e}(t||{})).whiteList=t.whiteList||s.whiteList,t.onAttr=t.onAttr||s.onAttr,t.onIgnoreAttr=t.onIgnoreAttr||s.onIgnoreAttr,t.safeAttrValue=t.safeAttrValue||s.safeAttrValue,this.options=t}i(100),o.prototype.process=function(t){if(!(t=(t=t||"").toString()))return"";var e=this.options,i=e.whiteList,s=e.onAttr,o=e.onIgnoreAttr,r=e.safeAttrValue;return n(t,(function(t,e,n,l,d){var h=i[n],c=!1;if(!0===h?c=h:"function"==typeof h?c=h(l):h instanceof RegExp&&(c=h.test(l)),!0!==c&&(c=!1),l=r(n,l)){var u,g={position:e,sourcePosition:t,source:d,isWhite:c};return c?a(u=s(n,l,g))?n+":"+l:u:a(u=o(n,l,g))?void 0:u}}))},t.exports=o},43:(t,e)=>{function i(){return{"align-content":!1,"align-items":!1,"align-self":!1,"alignment-adjust":!1,"alignment-baseline":!1,all:!1,"anchor-point":!1,animation:!1,"animation-delay":!1,"animation-direction":!1,"animation-duration":!1,"animation-fill-mode":!1,"animation-iteration-count":!1,"animation-name":!1,"animation-play-state":!1,"animation-timing-function":!1,azimuth:!1,"backface-visibility":!1,background:!0,"background-attachment":!0,"background-clip":!0,"background-color":!0,"background-image":!0,"background-origin":!0,"background-position":!0,"background-repeat":!0,"background-size":!0,"baseline-shift":!1,binding:!1,bleed:!1,"bookmark-label":!1,"bookmark-level":!1,"bookmark-state":!1,border:!0,"border-bottom":!0,"border-bottom-color":!0,"border-bottom-left-radius":!0,"border-bottom-right-radius":!0,"border-bottom-style":!0,"border-bottom-width":!0,"border-collapse":!0,"border-color":!0,"border-image":!0,"border-image-outset":!0,"border-image-repeat":!0,"border-image-slice":!0,"border-image-source":!0,"border-image-width":!0,"border-left":!0,"border-left-color":!0,"border-left-style":!0,"border-left-width":!0,"border-radius":!0,"border-right":!0,"border-right-color":!0,"border-right-style":!0,"border-right-width":!0,"border-spacing":!0,"border-style":!0,"border-top":!0,"border-top-color":!0,"border-top-left-radius":!0,"border-top-right-radius":!0,"border-top-style":!0,"border-top-width":!0,"border-width":!0,bottom:!1,"box-decoration-break":!0,"box-shadow":!0,"box-sizing":!0,"box-snap":!0,"box-suppress":!0,"break-after":!0,"break-before":!0,"break-inside":!0,"caption-side":!1,chains:!1,clear:!0,clip:!1,"clip-path":!1,"clip-rule":!1,color:!0,"color-interpolation-filters":!0,"column-count":!1,"column-fill":!1,"column-gap":!1,"column-rule":!1,"column-rule-color":!1,"column-rule-style":!1,"column-rule-width":!1,"column-span":!1,"column-width":!1,columns:!1,contain:!1,content:!1,"counter-increment":!1,"counter-reset":!1,"counter-set":!1,crop:!1,cue:!1,"cue-after":!1,"cue-before":!1,cursor:!1,direction:!1,display:!0,"display-inside":!0,"display-list":!0,"display-outside":!0,"dominant-baseline":!1,elevation:!1,"empty-cells":!1,filter:!1,flex:!1,"flex-basis":!1,"flex-direction":!1,"flex-flow":!1,"flex-grow":!1,"flex-shrink":!1,"flex-wrap":!1,float:!1,"float-offset":!1,"flood-color":!1,"flood-opacity":!1,"flow-from":!1,"flow-into":!1,font:!0,"font-family":!0,"font-feature-settings":!0,"font-kerning":!0,"font-language-override":!0,"font-size":!0,"font-size-adjust":!0,"font-stretch":!0,"font-style":!0,"font-synthesis":!0,"font-variant":!0,"font-variant-alternates":!0,"font-variant-caps":!0,"font-variant-east-asian":!0,"font-variant-ligatures":!0,"font-variant-numeric":!0,"font-variant-position":!0,"font-weight":!0,grid:!1,"grid-area":!1,"grid-auto-columns":!1,"grid-auto-flow":!1,"grid-auto-rows":!1,"grid-column":!1,"grid-column-end":!1,"grid-column-start":!1,"grid-row":!1,"grid-row-end":!1,"grid-row-start":!1,"grid-template":!1,"grid-template-areas":!1,"grid-template-columns":!1,"grid-template-rows":!1,"hanging-punctuation":!1,height:!0,hyphens:!1,icon:!1,"image-orientation":!1,"image-resolution":!1,"ime-mode":!1,"initial-letters":!1,"inline-box-align":!1,"justify-content":!1,"justify-items":!1,"justify-self":!1,left:!1,"letter-spacing":!0,"lighting-color":!0,"line-box-contain":!1,"line-break":!1,"line-grid":!1,"line-height":!1,"line-snap":!1,"line-stacking":!1,"line-stacking-ruby":!1,"line-stacking-shift":!1,"line-stacking-strategy":!1,"list-style":!0,"list-style-image":!0,"list-style-position":!0,"list-style-type":!0,margin:!0,"margin-bottom":!0,"margin-left":!0,"margin-right":!0,"margin-top":!0,"marker-offset":!1,"marker-side":!1,marks:!1,mask:!1,"mask-box":!1,"mask-box-outset":!1,"mask-box-repeat":!1,"mask-box-slice":!1,"mask-box-source":!1,"mask-box-width":!1,"mask-clip":!1,"mask-image":!1,"mask-origin":!1,"mask-position":!1,"mask-repeat":!1,"mask-size":!1,"mask-source-type":!1,"mask-type":!1,"max-height":!0,"max-lines":!1,"max-width":!0,"min-height":!0,"min-width":!0,"move-to":!1,"nav-down":!1,"nav-index":!1,"nav-left":!1,"nav-right":!1,"nav-up":!1,"object-fit":!1,"object-position":!1,opacity:!1,order:!1,orphans:!1,outline:!1,"outline-color":!1,"outline-offset":!1,"outline-style":!1,"outline-width":!1,overflow:!1,"overflow-wrap":!1,"overflow-x":!1,"overflow-y":!1,padding:!0,"padding-bottom":!0,"padding-left":!0,"padding-right":!0,"padding-top":!0,page:!1,"page-break-after":!1,"page-break-before":!1,"page-break-inside":!1,"page-policy":!1,pause:!1,"pause-after":!1,"pause-before":!1,perspective:!1,"perspective-origin":!1,pitch:!1,"pitch-range":!1,"play-during":!1,position:!1,"presentation-level":!1,quotes:!1,"region-fragment":!1,resize:!1,rest:!1,"rest-after":!1,"rest-before":!1,richness:!1,right:!1,rotation:!1,"rotation-point":!1,"ruby-align":!1,"ruby-merge":!1,"ruby-position":!1,"shape-image-threshold":!1,"shape-outside":!1,"shape-margin":!1,size:!1,speak:!1,"speak-as":!1,"speak-header":!1,"speak-numeral":!1,"speak-punctuation":!1,"speech-rate":!1,stress:!1,"string-set":!1,"tab-size":!1,"table-layout":!1,"text-align":!0,"text-align-last":!0,"text-combine-upright":!0,"text-decoration":!0,"text-decoration-color":!0,"text-decoration-line":!0,"text-decoration-skip":!0,"text-decoration-style":!0,"text-emphasis":!0,"text-emphasis-color":!0,"text-emphasis-position":!0,"text-emphasis-style":!0,"text-height":!0,"text-indent":!0,"text-justify":!0,"text-orientation":!0,"text-overflow":!0,"text-shadow":!0,"text-space-collapse":!0,"text-transform":!0,"text-underline-position":!0,"text-wrap":!0,top:!1,transform:!1,"transform-origin":!1,"transform-style":!1,transition:!1,"transition-delay":!1,"transition-duration":!1,"transition-property":!1,"transition-timing-function":!1,"unicode-bidi":!1,"vertical-align":!1,visibility:!1,"voice-balance":!1,"voice-duration":!1,"voice-family":!1,"voice-pitch":!1,"voice-range":!1,"voice-rate":!1,"voice-stress":!1,"voice-volume":!1,volume:!1,"white-space":!1,widows:!1,width:!0,"will-change":!1,"word-break":!0,"word-spacing":!0,"word-wrap":!0,"wrap-flow":!1,"wrap-through":!1,"writing-mode":!1,"z-index":!1}}var s=/javascript\s*\:/gim;e.whiteList={"align-content":!1,"align-items":!1,"align-self":!1,"alignment-adjust":!1,"alignment-baseline":!1,all:!1,"anchor-point":!1,animation:!1,"animation-delay":!1,"animation-direction":!1,"animation-duration":!1,"animation-fill-mode":!1,"animation-iteration-count":!1,"animation-name":!1,"animation-play-state":!1,"animation-timing-function":!1,azimuth:!1,"backface-visibility":!1,background:!0,"background-attachment":!0,"background-clip":!0,"background-color":!0,"background-image":!0,"background-origin":!0,"background-position":!0,"background-repeat":!0,"background-size":!0,"baseline-shift":!1,binding:!1,bleed:!1,"bookmark-label":!1,"bookmark-level":!1,"bookmark-state":!1,border:!0,"border-bottom":!0,"border-bottom-color":!0,"border-bottom-left-radius":!0,"border-bottom-right-radius":!0,"border-bottom-style":!0,"border-bottom-width":!0,"border-collapse":!0,"border-color":!0,"border-image":!0,"border-image-outset":!0,"border-image-repeat":!0,"border-image-slice":!0,"border-image-source":!0,"border-image-width":!0,"border-left":!0,"border-left-color":!0,"border-left-style":!0,"border-left-width":!0,"border-radius":!0,"border-right":!0,"border-right-color":!0,"border-right-style":!0,"border-right-width":!0,"border-spacing":!0,"border-style":!0,"border-top":!0,"border-top-color":!0,"border-top-left-radius":!0,"border-top-right-radius":!0,"border-top-style":!0,"border-top-width":!0,"border-width":!0,bottom:!1,"box-decoration-break":!0,"box-shadow":!0,"box-sizing":!0,"box-snap":!0,"box-suppress":!0,"break-after":!0,"break-before":!0,"break-inside":!0,"caption-side":!1,chains:!1,clear:!0,clip:!1,"clip-path":!1,"clip-rule":!1,color:!0,"color-interpolation-filters":!0,"column-count":!1,"column-fill":!1,"column-gap":!1,"column-rule":!1,"column-rule-color":!1,"column-rule-style":!1,"column-rule-width":!1,"column-span":!1,"column-width":!1,columns:!1,contain:!1,content:!1,"counter-increment":!1,"counter-reset":!1,"counter-set":!1,crop:!1,cue:!1,"cue-after":!1,"cue-before":!1,cursor:!1,direction:!1,display:!0,"display-inside":!0,"display-list":!0,"display-outside":!0,"dominant-baseline":!1,elevation:!1,"empty-cells":!1,filter:!1,flex:!1,"flex-basis":!1,"flex-direction":!1,"flex-flow":!1,"flex-grow":!1,"flex-shrink":!1,"flex-wrap":!1,float:!1,"float-offset":!1,"flood-color":!1,"flood-opacity":!1,"flow-from":!1,"flow-into":!1,font:!0,"font-family":!0,"font-feature-settings":!0,"font-kerning":!0,"font-language-override":!0,"font-size":!0,"font-size-adjust":!0,"font-stretch":!0,"font-style":!0,"font-synthesis":!0,"font-variant":!0,"font-variant-alternates":!0,"font-variant-caps":!0,"font-variant-east-asian":!0,"font-variant-ligatures":!0,"font-variant-numeric":!0,"font-variant-position":!0,"font-weight":!0,grid:!1,"grid-area":!1,"grid-auto-columns":!1,"grid-auto-flow":!1,"grid-auto-rows":!1,"grid-column":!1,"grid-column-end":!1,"grid-column-start":!1,"grid-row":!1,"grid-row-end":!1,"grid-row-start":!1,"grid-template":!1,"grid-template-areas":!1,"grid-template-columns":!1,"grid-template-rows":!1,"hanging-punctuation":!1,height:!0,hyphens:!1,icon:!1,"image-orientation":!1,"image-resolution":!1,"ime-mode":!1,"initial-letters":!1,"inline-box-align":!1,"justify-content":!1,"justify-items":!1,"justify-self":!1,left:!1,"letter-spacing":!0,"lighting-color":!0,"line-box-contain":!1,"line-break":!1,"line-grid":!1,"line-height":!1,"line-snap":!1,"line-stacking":!1,"line-stacking-ruby":!1,"line-stacking-shift":!1,"line-stacking-strategy":!1,"list-style":!0,"list-style-image":!0,"list-style-position":!0,"list-style-type":!0,margin:!0,"margin-bottom":!0,"margin-left":!0,"margin-right":!0,"margin-top":!0,"marker-offset":!1,"marker-side":!1,marks:!1,mask:!1,"mask-box":!1,"mask-box-outset":!1,"mask-box-repeat":!1,"mask-box-slice":!1,"mask-box-source":!1,"mask-box-width":!1,"mask-clip":!1,"mask-image":!1,"mask-origin":!1,"mask-position":!1,"mask-repeat":!1,"mask-size":!1,"mask-source-type":!1,"mask-type":!1,"max-height":!0,"max-lines":!1,"max-width":!0,"min-height":!0,"min-width":!0,"move-to":!1,"nav-down":!1,"nav-index":!1,"nav-left":!1,"nav-right":!1,"nav-up":!1,"object-fit":!1,"object-position":!1,opacity:!1,order:!1,orphans:!1,outline:!1,"outline-color":!1,"outline-offset":!1,"outline-style":!1,"outline-width":!1,overflow:!1,"overflow-wrap":!1,"overflow-x":!1,"overflow-y":!1,padding:!0,"padding-bottom":!0,"padding-left":!0,"padding-right":!0,"padding-top":!0,page:!1,"page-break-after":!1,"page-break-before":!1,"page-break-inside":!1,"page-policy":!1,pause:!1,"pause-after":!1,"pause-before":!1,perspective:!1,"perspective-origin":!1,pitch:!1,"pitch-range":!1,"play-during":!1,position:!1,"presentation-level":!1,quotes:!1,"region-fragment":!1,resize:!1,rest:!1,"rest-after":!1,"rest-before":!1,richness:!1,right:!1,rotation:!1,"rotation-point":!1,"ruby-align":!1,"ruby-merge":!1,"ruby-position":!1,"shape-image-threshold":!1,"shape-outside":!1,"shape-margin":!1,size:!1,speak:!1,"speak-as":!1,"speak-header":!1,"speak-numeral":!1,"speak-punctuation":!1,"speech-rate":!1,stress:!1,"string-set":!1,"tab-size":!1,"table-layout":!1,"text-align":!0,"text-align-last":!0,"text-combine-upright":!0,"text-decoration":!0,"text-decoration-color":!0,"text-decoration-line":!0,"text-decoration-skip":!0,"text-decoration-style":!0,"text-emphasis":!0,"text-emphasis-color":!0,"text-emphasis-position":!0,"text-emphasis-style":!0,"text-height":!0,"text-indent":!0,"text-justify":!0,"text-orientation":!0,"text-overflow":!0,"text-shadow":!0,"text-space-collapse":!0,"text-transform":!0,"text-underline-position":!0,"text-wrap":!0,top:!1,transform:!1,"transform-origin":!1,"transform-style":!1,transition:!1,"transition-delay":!1,"transition-duration":!1,"transition-property":!1,"transition-timing-function":!1,"unicode-bidi":!1,"vertical-align":!1,visibility:!1,"voice-balance":!1,"voice-duration":!1,"voice-family":!1,"voice-pitch":!1,"voice-range":!1,"voice-rate":!1,"voice-stress":!1,"voice-volume":!1,volume:!1,"white-space":!1,widows:!1,width:!0,"will-change":!1,"word-break":!0,"word-spacing":!0,"word-wrap":!0,"wrap-flow":!1,"wrap-through":!1,"writing-mode":!1,"z-index":!1},e.getDefaultWhiteList=i,e.onAttr=function(t,e,i){},e.onIgnoreAttr=function(t,e,i){},e.safeAttrValue=function(t,e){return s.test(e)?"":e}},18:(t,e,i)=>{var s=i(43),n=i(473);for(var a in(e=t.exports=function(t,e){return new n(e).process(t)}).FilterCSS=n,s)e[a]=s[a];"undefined"!=typeof window&&(window.filterCSS=t.exports)},323:(t,e,i)=>{var s=i(100);t.exports=function(t,e){";"!==(t=s.trimRight(t))[t.length-1]&&(t+=";");var i=t.length,n=!1,a=0,o=0,r="";function l(){if(!n){var i=s.trim(t.slice(a,o)),l=i.indexOf(":");if(-1!==l){var d=s.trim(i.slice(0,l)),h=s.trim(i.slice(l+1));if(d){var c=e(a,r.length,d,h,i);c&&(r+=c+"; ")}}}a=o+1}for(;o<i;o++){var d=t[o];if("/"===d&&"*"===t[o+1]){var h=t.indexOf("*/",o+2);if(-1===h)break;a=(o=h+1)+1,n=!1}else"("===d?n=!0:")"===d?n=!1:";"===d?n||l():"\n"===d&&l()}return s.trim(r)}},100:t=>{t.exports={indexOf:function(t,e){var i,s;if(Array.prototype.indexOf)return t.indexOf(e);for(i=0,s=t.length;i<s;i++)if(t[i]===e)return i;return-1},forEach:function(t,e,i){var s,n;if(Array.prototype.forEach)return t.forEach(e,i);for(s=0,n=t.length;s<n;s++)e.call(i,t[s],s,t)},trim:function(t){return String.prototype.trim?t.trim():t.replace(/(^\s*)|(\s*$)/g,"")},trimRight:function(t){return String.prototype.trimRight?t.trimRight():t.replace(/(\s*$)/g,"")}}},48:(t,e,i)=>{var s=i(18).FilterCSS,n=i(18).getDefaultWhiteList,a=i(349);var o=new s;function r(t){return t.replace(l,"<").replace(d,">")}var l=/</g,d=/>/g,h=/"/g,c=/"/g,u=/&#([a-zA-Z0-9]*);?/gim,g=/:?/gim,p=/&newline;?/gim,y=/((j\s*a\s*v\s*a|v\s*b|l\s*i\s*v\s*e)\s*s\s*c\s*r\s*i\s*p\s*t\s*|m\s*o\s*c\s*h\s*a):/gi,f=/e\s*x\s*p\s*r\s*e\s*s\s*s\s*i\s*o\s*n\s*\(.*/gi,b=/u\s*r\s*l\s*\(.*/gi;function m(t){return t.replace(h,""")}function _(t){return t.replace(c,'"')}function v(t){return t.replace(u,(function(t,e){return"x"===e[0]||"X"===e[0]?String.fromCharCode(parseInt(e.substr(1),16)):String.fromCharCode(parseInt(e,10))}))}function w(t){return t.replace(g,":").replace(p," ")}function x(t){for(var e="",i=0,s=t.length;i<s;i++)e+=t.charCodeAt(i)<32?" ":t.charAt(i);return a.trim(e)}function C(t){return x(t=w(t=v(t=_(t))))}function I(t){return r(t=m(t))}e.whiteList={a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","crossorigin","loop","muted","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],figcaption:[],figure:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height","loading"],ins:["datetime"],kbd:[],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],summary:[],sup:[],strong:[],strike:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","crossorigin","loop","muted","playsinline","poster","preload","src","height","width"]},e.getDefaultWhiteList=function(){return{a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","crossorigin","loop","muted","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],figcaption:[],figure:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height","loading"],ins:["datetime"],kbd:[],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],summary:[],sup:[],strong:[],strike:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","crossorigin","loop","muted","playsinline","poster","preload","src","height","width"]}},e.onTag=function(t,e,i){},e.onIgnoreTag=function(t,e,i){},e.onTagAttr=function(t,e,i){},e.onIgnoreTagAttr=function(t,e,i){},e.safeAttrValue=function(t,e,i,s){if(i=C(i),"href"===e||"src"===e){if("#"===(i=a.trim(i)))return"#";if("http://"!==i.substr(0,7)&&"https://"!==i.substr(0,8)&&"mailto:"!==i.substr(0,7)&&"tel:"!==i.substr(0,4)&&"data:image/"!==i.substr(0,11)&&"ftp://"!==i.substr(0,6)&&"./"!==i.substr(0,2)&&"../"!==i.substr(0,3)&&"#"!==i[0]&&"/"!==i[0])return""}else if("background"===e){if(y.lastIndex=0,y.test(i))return""}else if("style"===e){if(f.lastIndex=0,f.test(i))return"";if(b.lastIndex=0,b.test(i)&&(y.lastIndex=0,y.test(i)))return"";!1!==s&&(i=(s=s||o).process(i))}return I(i)},e.escapeHtml=r,e.escapeQuote=m,e.unescapeQuote=_,e.escapeHtmlEntities=v,e.escapeDangerHtml5Entities=w,e.clearNonPrintableCharacter=x,e.friendlyAttrValue=C,e.escapeAttrValue=I,e.onIgnoreTagStripAll=function(){return""},e.StripTagBody=function(t,e){"function"!=typeof e&&(e=function(){});var i=!Array.isArray(t),s=[],n=!1;return{onIgnoreTag:function(o,r,l){if(function(e){return!!i||-1!==a.indexOf(t,e)}(o)){if(l.isClosing){var d=l.position+10;return s.push([!1!==n?n:l.position,d]),n=!1,"[/removed]"}return n||(n=l.position),"[removed]"}return e(o,r,l)},remove:function(t){var e="",i=0;return a.forEach(s,(function(s){e+=t.slice(i,s[0]),i=s[1]})),e+=t.slice(i)}}},e.stripCommentTag=function(t){for(var e="",i=0;i<t.length;){var s=t.indexOf("\x3c!--",i);if(-1===s){e+=t.slice(i);break}e+=t.slice(i,s);var n=t.indexOf("--\x3e",s);if(-1===n)break;i=n+3}return e},e.stripBlankChar=function(t){var e=t.split("");return(e=e.filter((function(t){var e=t.charCodeAt(0);return!(127===e||e<=31&&10!==e&&13!==e)}))).join("")},e.attributeWrapSign='"',e.cssFilter=o,e.getDefaultCSSWhiteList=n},5:(t,e,i)=>{var s=i(48),n=i(930),a=i(327);function o(t,e){return new a(e).process(t)}(e=t.exports=o).filterXSS=o,e.FilterXSS=a,function(){for(var t in s)e[t]=s[t];for(var i in n)e[i]=n[i]}(),"undefined"!=typeof window&&(window.filterXSS=t.exports),"undefined"!=typeof self&&"undefined"!=typeof DedicatedWorkerGlobalScope&&self instanceof DedicatedWorkerGlobalScope&&(self.filterXSS=t.exports)},930:(t,e,i)=>{var s=i(349);function n(t){var e,i=s.spaceIndex(t);return e=-1===i?t.slice(1,-1):t.slice(1,i+1),"/"===(e=s.trim(e).toLowerCase()).slice(0,1)&&(e=e.slice(1)),"/"===e.slice(-1)&&(e=e.slice(0,-1)),e}function a(t){return"</"===t.slice(0,2)}var o=/[^a-zA-Z0-9\\_:.-]/gim;function r(t,e){for(;e<t.length;e++){var i=t[e];if(" "!==i)return"="===i?e:-1}}function l(t,e){for(;e<t.length;e++){var i=t[e];if(" "!==i)return"'"===i||'"'===i?e:-1}}function d(t,e){for(;e>0;e--){var i=t[e];if(" "!==i)return"="===i?e:-1}}function h(t){return function(t){return'"'===t[0]&&'"'===t[t.length-1]||"'"===t[0]&&"'"===t[t.length-1]}(t)?t.substr(1,t.length-2):t}e.parseTag=function(t,e,i){"use strict";var s="",o=0,r=!1,l=!1,d=0,h=t.length,c="",u="";t:for(d=0;d<h;d++){var g=t.charAt(d);if(!1===r){if("<"===g){r=d;continue}}else if(!1===l){if("<"===g){s+=i(t.slice(o,d)),r=d,o=d;continue}if(">"===g||d===h-1){s+=i(t.slice(o,r)),c=n(u=t.slice(r,d+1)),s+=e(r,s.length,c,u,a(u)),o=d+1,r=!1;continue}if('"'===g||"'"===g)for(var p=1,y=t.charAt(d-p);""===y.trim()||"="===y;){if("="===y){l=g;continue t}y=t.charAt(d-++p)}}else if(g===l){l=!1;continue}}return o<h&&(s+=i(t.substr(o))),s},e.parseAttr=function(t,e){"use strict";var i=0,n=0,a=[],c=!1,u=t.length;function g(t,i){if(!((t=(t=s.trim(t)).replace(o,"").toLowerCase()).length<1)){var n=e(t,i||"");n&&a.push(n)}}for(var p=0;p<u;p++){var y,f=t.charAt(p);if(!1!==c||"="!==f)if(!1===c||p!==n){if(/\s|\n|\t/.test(f)){if(t=t.replace(/\s|\n|\t/g," "),!1===c){if(-1===(y=r(t,p))){g(s.trim(t.slice(i,p))),c=!1,i=p+1;continue}p=y-1;continue}if(-1===(y=d(t,p-1))){g(c,h(s.trim(t.slice(i,p)))),c=!1,i=p+1;continue}}}else{if(-1===(y=t.indexOf(f,p+1)))break;g(c,s.trim(t.slice(n+1,y))),c=!1,i=(p=y)+1}else c=t.slice(i,p),i=p+1,n='"'===t.charAt(i)||"'"===t.charAt(i)?i:l(t,p+1)}return i<t.length&&(!1===c?g(t.slice(i)):g(c,h(s.trim(t.slice(i))))),s.trim(a.join(" "))}},349:t=>{t.exports={indexOf:function(t,e){var i,s;if(Array.prototype.indexOf)return t.indexOf(e);for(i=0,s=t.length;i<s;i++)if(t[i]===e)return i;return-1},forEach:function(t,e,i){var s,n;if(Array.prototype.forEach)return t.forEach(e,i);for(s=0,n=t.length;s<n;s++)e.call(i,t[s],s,t)},trim:function(t){return String.prototype.trim?t.trim():t.replace(/(^\s*)|(\s*$)/g,"")},spaceIndex:function(t){var e=/\s|\n|\t/.exec(t);return e?e.index:-1}}},327:(t,e,i)=>{var s=i(18).FilterCSS,n=i(48),a=i(930),o=a.parseTag,r=a.parseAttr,l=i(349);function d(t){return null==t}function h(t){(t=function(t){var e={};for(var i in t)e[i]=t[i];return e}(t||{})).stripIgnoreTag&&(t.onIgnoreTag&&console.error('Notes: cannot use these two options "stripIgnoreTag" and "onIgnoreTag" at the same time'),t.onIgnoreTag=n.onIgnoreTagStripAll),t.whiteList||t.allowList?t.whiteList=function(t){var e={};for(var i in t)Array.isArray(t[i])?e[i.toLowerCase()]=t[i].map((function(t){return t.toLowerCase()})):e[i.toLowerCase()]=t[i];return e}(t.whiteList||t.allowList):t.whiteList=n.whiteList,this.attributeWrapSign=!0===t.singleQuotedAttributeValue?"'":n.attributeWrapSign,t.onTag=t.onTag||n.onTag,t.onTagAttr=t.onTagAttr||n.onTagAttr,t.onIgnoreTag=t.onIgnoreTag||n.onIgnoreTag,t.onIgnoreTagAttr=t.onIgnoreTagAttr||n.onIgnoreTagAttr,t.safeAttrValue=t.safeAttrValue||n.safeAttrValue,t.escapeHtml=t.escapeHtml||n.escapeHtml,this.options=t,!1===t.css?this.cssFilter=!1:(t.css=t.css||{},this.cssFilter=new s(t.css))}h.prototype.process=function(t){if(!(t=(t=t||"").toString()))return"";var e=this,i=e.options,s=i.whiteList,a=i.onTag,h=i.onIgnoreTag,c=i.onTagAttr,u=i.onIgnoreTagAttr,g=i.safeAttrValue,p=i.escapeHtml,y=e.attributeWrapSign,f=e.cssFilter;i.stripBlankChar&&(t=n.stripBlankChar(t)),i.allowCommentTag||(t=n.stripCommentTag(t));var b=!1;i.stripIgnoreTagBody&&(b=n.StripTagBody(i.stripIgnoreTagBody,h),h=b.onIgnoreTag);var m=o(t,(function(t,e,i,n,o){var b={sourcePosition:t,position:e,isClosing:o,isWhite:Object.prototype.hasOwnProperty.call(s,i)},m=a(i,n,b);if(!d(m))return m;if(b.isWhite){if(b.isClosing)return"</"+i+">";var _=function(t){var e=l.spaceIndex(t);if(-1===e)return{html:"",closing:"/"===t[t.length-2]};var i="/"===(t=l.trim(t.slice(e+1,-1)))[t.length-1];return i&&(t=l.trim(t.slice(0,-1))),{html:t,closing:i}}(n),v=s[i],w=r(_.html,(function(t,e){var s=-1!==l.indexOf(v,t),n=c(i,t,e,s);return d(n)?s?(e=g(i,t,e,f))?t+"="+y+e+y:t:d(n=u(i,t,e,s))?void 0:n:n}));return n="<"+i,w&&(n+=" "+w),_.closing&&(n+=" /"),n+">"}return d(m=h(i,n,b))?p(n):m}),p);return b&&(m=b.remove(m)),m},t.exports=h}},e={};function i(t){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i(t)}var s,n,a,o,r,l,d,h,c,u=function i(s){var n=e[s];if(void 0!==n)return n.exports;var a=e[s]={exports:{}};return t[s](a,a.exports,i),a.exports}(5),g=void 0!==g;if(!g){var p=function(t){return u(t)},y=function(){return!!document.createElement("video").canPlayType};if(window.sbyLinkify=(n="[a-z\\d.-]+://",a="(?:(?:(?:[^\\s!@#$%^&*()_=+[\\]{}\\\\|;:'\",.<>/?]+)\\.)+(?:ac|ad|aero|ae|af|ag|ai|al|am|an|ao|aq|arpa|ar|asia|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|biz|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|cat|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|coop|com|co|cr|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|info|int|in|io|iq|ir|is|it|je|jm|jobs|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mil|mk|ml|mm|mn|mobi|mo|mp|mq|mr|ms|mt|museum|mu|mv|mw|mx|my|mz|name|na|nc|net|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pro|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tel|tf|tg|th|tj|tk|tl|tm|tn|to|tp|travel|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|xn--0zwm56d|xn--11b5bs3a9aj6g|xn--80akhbyknj4f|xn--9t4b11yi5a|xn--deba0ad|xn--g6w251d|xn--hgbk6aj7f53bba|xn--hlcj6aya9esc7a|xn--jxalpdlp|xn--kgbechtv|xn--zckzah|ye|yt|yu|za|zm|zw)|(?:(?:[0-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])\\.){3}(?:[0-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5]))",o="(?:\\?[^#<>\\s]*)?(?:#[^<>\\s]*)?",r="mailto:",l=new RegExp("(?:\\b"+n+"[^<>\\s]+|\\b"+a+"(?:[;/][^#?<>\\s]*)?"+o+"(?!\\w)|(?:"+r+")?[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@"+a+o+"(?!\\w))","ig"),d=new RegExp("^"+n,"i"),h={"'":"`",">":"<",")":"(","]":"[","}":"{","B;":"B+","b:":"b9"},c={callback:function(t,e){return e?'<a href="'+e+'" title="'+e+'" target="_blank" rel="noopener">'+t+"</a>":t},punct_regexp:/(?:[!?.,:;'"]|(?:&|&)(?:lt|gt|quot|apos|raquo|laquo|rsaquo|lsaquo);)$/},function(t,e){e=e||{};var i,s,n,a,o,u,g,p,y,f,b,m,_="",v=[];for(s in c)void 0===e[s]&&(e[s]=c[s]);for(;i=l.exec(t);)if(n=i[0],g=(u=l.lastIndex)-n.length,!/[\/:]/.test(t.charAt(g-1))){do{p=n,m=n.substr(-1),(b=h[m])&&(y=n.match(new RegExp("\\"+b+"(?!$)","g")),f=n.match(new RegExp("\\"+m,"g")),(y?y.length:0)<(f?f.length:0)&&(n=n.substr(0,n.length-1),u--)),e.punct_regexp&&(n=n.replace(e.punct_regexp,(function(t){return u-=t.length,""})))}while(n.length&&n!==p);a=n,d.test(a)||(a=(-1!==a.indexOf("@")?a.indexOf(r)?r:"":a.indexOf("irc.")?a.indexOf("ftp.")?"http://":"ftp://":"irc://")+a),o!=g&&(v.push([t.slice(o,g)]),o=u),v.push([n,a])}for(v.push([t.substr(o)]),s=0;s<v.length;s++)_+=e.callback.apply(window,v[s]);return _||t}),function(t,e,s,n){function a(e,i){this.settings=null,this.options=t.extend({},a.Defaults,i),this.$element=t(e),this._handlers={},this._plugins={},this._supress={},this._current=null,this._speed=null,this._coordinates=[],this._breakpoint=null,this._width=null,this._items=[],this._clones=[],this._mergers=[],this._widths=[],this._invalidated={},this._pipe=[],this._drag={time:null,target:null,pointer:null,stage:{start:null,current:null},direction:null},this._states={current:{},tags:{initializing:["busy"],animating:["busy"],dragging:["interacting"]}},t.each(["onResize","onThrottledResize"],t.proxy((function(e,i){this._handlers[i]=t.proxy(this[i],this)}),this)),t.each(a.Plugins,t.proxy((function(t,e){this._plugins[t.charAt(0).toLowerCase()+t.slice(1)]=new e(this)}),this)),t.each(a.Workers,t.proxy((function(e,i){this._pipe.push({filter:i.filter,run:t.proxy(i.run,this)})}),this)),this.setup(),this.initialize()}a.Defaults={items:3,loop:!1,center:!1,rewind:!1,mouseDrag:!0,touchDrag:!0,pullDrag:!0,freeDrag:!1,margin:0,stagePadding:0,merge:!1,mergeFit:!0,autoWidth:!1,startPosition:0,rtl:!1,smartSpeed:250,fluidSpeed:!1,dragEndSpeed:!1,responsive:{},responsiveRefreshRate:200,responsiveBaseElement:e,fallbackEasing:"swing",info:!1,nestedItemSelector:!1,itemElement:"div",stageElement:"div",refreshClass:"sby-owl-refresh",loadedClass:"sby-owl-loaded",loadingClass:"sby-owl-loading",rtlClass:"sby-owl-rtl",responsiveClass:"sby-owl-responsive",dragClass:"sby-owl-drag",itemClass:"sby-owl-item",stageClass:"sby-owl-stage",stageOuterClass:"sby-owl-stage-outer",grabClass:"sby-owl-grab"},a.Width={Default:"default",Inner:"inner",Outer:"outer"},a.Type={Event:"event",State:"state"},a.Plugins={},a.Workers=[{filter:["width","settings"],run:function(){this._width=this.$element.width()}},{filter:["width","items","settings"],run:function(t){t.current=this._items&&this._items[this.relative(this._current)]}},{filter:["items","settings"],run:function(){this.$stage.children(".cloned").remove()}},{filter:["width","items","settings"],run:function(t){var e=this.settings.margin||"",i=!this.settings.autoWidth,s=this.settings.rtl,n={width:"auto","margin-left":s?e:"","margin-right":s?"":e};!i&&this.$stage.children().css(n),t.css=n}},{filter:["width","items","settings"],run:function(t){var e=(this.width()/this.settings.items).toFixed(3)-this.settings.margin,i=null,s=this._items.length,n=!this.settings.autoWidth,a=[];for(t.items={merge:!1,width:e};s--;)i=this._mergers[s],i=this.settings.mergeFit&&Math.min(i,this.settings.items)||i,t.items.merge=i>1||t.items.merge,a[s]=n?e*i:this._items[s].width();this._widths=a}},{filter:["items","settings"],run:function(){var e=[],i=this._items,s=this.settings,n=Math.max(2*s.items,4),a=2*Math.ceil(i.length/2),o=s.loop&&i.length?s.rewind?n:Math.max(n,a):0,r="",l="";for(o/=2;o--;)e.push(this.normalize(e.length/2,!0)),r+=i[e[e.length-1]][0].outerHTML,e.push(this.normalize(i.length-1-(e.length-1)/2,!0)),l=i[e[e.length-1]][0].outerHTML+l;this._clones=e,t(r).addClass("cloned").appendTo(this.$stage),t(l).addClass("cloned").prependTo(this.$stage)}},{filter:["width","items","settings"],run:function(){for(var t=this.settings.rtl?1:-1,e=this._clones.length+this._items.length,i=-1,s=0,n=0,a=[];++i<e;)s=a[i-1]||0,n=this._widths[this.relative(i)]+this.settings.margin,a.push(s+n*t);this._coordinates=a}},{filter:["width","items","settings"],run:function(){var t=this.settings.stagePadding,e=this._coordinates,i={width:Math.ceil(Math.abs(e[e.length-1]))+2*t,"padding-left":t||"","padding-right":t||""};this.$stage.css(i)}},{filter:["width","items","settings"],run:function(t){var e=this._coordinates.length,i=!this.settings.autoWidth,s=this.$stage.children();if(i&&t.items.merge)for(;e--;)t.css.width=this._widths[this.relative(e)],s.eq(e).css(t.css);else i&&(t.css.width=t.items.width,s.css(t.css))}},{filter:["items"],run:function(){this._coordinates.length<1&&this.$stage.removeAttr("style")}},{filter:["width","items","settings"],run:function(t){t.current=t.current?this.$stage.children().index(t.current):0,t.current=Math.max(this.minimum(),Math.min(this.maximum(),t.current)),this.reset(t.current)}},{filter:["position"],run:function(){this.animate(this.coordinates(this._current))}},{filter:["width","position","items","settings"],run:function(){var t,e,i,s,n=this.settings.rtl?1:-1,a=2*this.settings.stagePadding,o=this.coordinates(this.current())+a,r=o+this.width()*n,l=[];for(i=0,s=this._coordinates.length;i<s;i++)t=this._coordinates[i-1]||0,e=Math.abs(this._coordinates[i])+a*n,(this.op(t,"<=",o)&&this.op(t,">",r)||this.op(e,"<",o)&&this.op(e,">",r))&&l.push(i);this.$stage.children(".active").removeClass("active"),this.$stage.children(":eq("+l.join("), :eq(")+")").addClass("active"),this.settings.center&&(this.$stage.children(".center").removeClass("center"),this.$stage.children().eq(this.current()).addClass("center"))}}],a.prototype.initialize=function(){var e,i,s;this.enter("initializing"),this.trigger("initialize"),this.$element.toggleClass(this.settings.rtlClass,this.settings.rtl),this.settings.autoWidth&&!this.is("pre-loading")&&(e=this.$element.find("img"),i=this.settings.nestedItemSelector?"."+this.settings.nestedItemSelector:n,s=this.$element.children(i).width(),e.length&&s<=0&&this.preloadAutoWidthImages(e)),this.$element.addClass(this.options.loadingClass),this.$stage=t("<"+this.settings.stageElement+' class="'+this.settings.stageClass+'"/>').wrap('<div class="'+this.settings.stageOuterClass+'"/>'),this.$element.append(this.$stage.parent()),this.replace(this.$element.children().not(this.$stage.parent())),this.$element.is(":visible")?this.refresh():this.invalidate("width"),this.$element.removeClass(this.options.loadingClass).addClass(this.options.loadedClass),this.registerEventHandlers(),this.leave("initializing"),this.trigger("initialized")},a.prototype.setup=function(){var e=this.viewport(),i=this.options.responsive,s=-1,n=null;i?(t.each(i,(function(t){t<=e&&t>s&&(s=Number(t))})),"function"==typeof(n=t.extend({},this.options,i[s])).stagePadding&&(n.stagePadding=n.stagePadding()),delete n.responsive,n.responsiveClass&&this.$element.attr("class",this.$element.attr("class").replace(new RegExp("("+this.options.responsiveClass+"-)\\S+\\s","g"),"$1"+s))):n=t.extend({},this.options),this.trigger("change",{property:{name:"settings",value:n}}),this._breakpoint=s,this.settings=n,this.invalidate("settings"),this.trigger("changed",{property:{name:"settings",value:this.settings}})},a.prototype.optionsLogic=function(){this.settings.autoWidth&&(this.settings.stagePadding=!1,this.settings.merge=!1)},a.prototype.prepare=function(e){var i=this.trigger("prepare",{content:e});return i.data||(i.data=t("<"+this.settings.itemElement+"/>").addClass(this.options.itemClass).append(e)),this.trigger("prepared",{content:i.data}),i.data},a.prototype.update=function(){for(var e=0,i=this._pipe.length,s=t.proxy((function(t){return this[t]}),this._invalidated),n={};e<i;)(this._invalidated.all||t.grep(this._pipe[e].filter,s).length>0)&&this._pipe[e].run(n),e++;this._invalidated={},!this.is("valid")&&this.enter("valid")},a.prototype.width=function(t){switch(t=t||a.Width.Default){case a.Width.Inner:case a.Width.Outer:return this._width;default:return this._width-2*this.settings.stagePadding+this.settings.margin}},a.prototype.refresh=function(){this.enter("refreshing"),this.trigger("refresh"),this.setup(),this.optionsLogic(),this.$element.addClass(this.options.refreshClass),this.update(),this.$element.removeClass(this.options.refreshClass),this.leave("refreshing"),this.trigger("refreshed")},a.prototype.onThrottledResize=function(){e.clearTimeout(this.resizeTimer),this.resizeTimer=e.setTimeout(this._handlers.onResize,this.settings.responsiveRefreshRate)},a.prototype.onResize=function(){return!!this._items.length&&this._width!==this.$element.width()&&!!this.$element.is(":visible")&&(this.enter("resizing"),this.trigger("resize").isDefaultPrevented()?(this.leave("resizing"),!1):(this.invalidate("width"),this.refresh(),this.leave("resizing"),void this.trigger("resized")))},a.prototype.registerEventHandlers=function(){t.support.transition&&this.$stage.on(t.support.transition.end+".owl.core",t.proxy(this.onTransitionEnd,this)),!1!==this.settings.responsive&&this.on(e,"resize",this._handlers.onThrottledResize),this.settings.mouseDrag&&(this.$element.addClass(this.options.dragClass),this.$stage.on("mousedown.owl.core",t.proxy(this.onDragStart,this)),this.$stage.on("dragstart.owl.core selectstart.owl.core",(function(){return!1}))),this.settings.touchDrag&&(this.$stage.on("touchstart.owl.core",t.proxy(this.onDragStart,this)),this.$stage.on("touchcancel.owl.core",t.proxy(this.onDragEnd,this)))},a.prototype.onDragStart=function(e){var i=null;3!==e.which&&(t.support.transform?i={x:(i=this.$stage.css("transform").replace(/.*\(|\)| /g,"").split(","))[16===i.length?12:4],y:i[16===i.length?13:5]}:(i=this.$stage.position(),i={x:this.settings.rtl?i.left+this.$stage.width()-this.width()+this.settings.margin:i.left,y:i.top}),this.is("animating")&&(t.support.transform?this.animate(i.x):this.$stage.stop(),this.invalidate("position")),this.$element.toggleClass(this.options.grabClass,"mousedown"===e.type),this.speed(0),this._drag.time=(new Date).getTime(),this._drag.target=t(e.target),this._drag.stage.start=i,this._drag.stage.current=i,this._drag.pointer=this.pointer(e),t(s).on("mouseup.owl.core touchend.owl.core",t.proxy(this.onDragEnd,this)),t(s).one("mousemove.owl.core touchmove.owl.core",t.proxy((function(e){var i=this.difference(this._drag.pointer,this.pointer(e));t(s).on("mousemove.owl.core touchmove.owl.core",t.proxy(this.onDragMove,this)),Math.abs(i.x)<Math.abs(i.y)&&this.is("valid")||(e.preventDefault(),this.enter("dragging"),this.trigger("drag"))}),this)))},a.prototype.onDragMove=function(t){var e=null,i=null,s=null,n=this.difference(this._drag.pointer,this.pointer(t)),a=this.difference(this._drag.stage.start,n);this.is("dragging")&&(t.preventDefault(),this.settings.loop?(e=this.coordinates(this.minimum()),i=this.coordinates(this.maximum()+1)-e,a.x=((a.x-e)%i+i)%i+e):(e=this.settings.rtl?this.coordinates(this.maximum()):this.coordinates(this.minimum()),i=this.settings.rtl?this.coordinates(this.minimum()):this.coordinates(this.maximum()),s=this.settings.pullDrag?-1*n.x/5:0,a.x=Math.max(Math.min(a.x,e+s),i+s)),this._drag.stage.current=a,this.animate(a.x))},a.prototype.onDragEnd=function(e){var i=this.difference(this._drag.pointer,this.pointer(e)),n=this._drag.stage.current,a=i.x>0^this.settings.rtl?"left":"right";t(s).off(".owl.core"),this.$element.removeClass(this.options.grabClass),(0!==i.x&&this.is("dragging")||!this.is("valid"))&&(this.speed(this.settings.dragEndSpeed||this.settings.smartSpeed),this.current(this.closest(n.x,0!==i.x?a:this._drag.direction)),this.invalidate("position"),this.update(),this._drag.direction=a,(Math.abs(i.x)>3||(new Date).getTime()-this._drag.time>300)&&this._drag.target.one("click.owl.core",(function(){return!1}))),this.is("dragging")&&(this.leave("dragging"),this.trigger("dragged"))},a.prototype.closest=function(e,i){var s=-1,n=this.width(),a=this.coordinates();return this.settings.freeDrag||t.each(a,t.proxy((function(t,o){return"left"===i&&e>o-30&&e<o+30?s=t:"right"===i&&e>o-n-30&&e<o-n+30?s=t+1:this.op(e,"<",o)&&this.op(e,">",a[t+1]||o-n)&&(s="left"===i?t+1:t),-1===s}),this)),this.settings.loop||(this.op(e,">",a[this.minimum()])?s=e=this.minimum():this.op(e,"<",a[this.maximum()])&&(s=e=this.maximum())),s},a.prototype.animate=function(e){var i=this.speed()>0;this.is("animating")&&this.onTransitionEnd(),i&&(this.enter("animating"),this.trigger("translate")),t.support.transform3d&&t.support.transition?this.$stage.css({transform:"translate3d("+e+"px,0px,0px)",transition:this.speed()/1e3+"s"}):i?this.$stage.animate({left:e+"px"},this.speed(),this.settings.fallbackEasing,t.proxy(this.onTransitionEnd,this)):this.$stage.css({left:e+"px"})},a.prototype.is=function(t){return this._states.current[t]&&this._states.current[t]>0},a.prototype.current=function(t){if(t===n)return this._current;if(0===this._items.length)return n;if(t=this.normalize(t),this._current!==t){var e=this.trigger("change",{property:{name:"position",value:t}});e.data!==n&&(t=this.normalize(e.data)),this._current=t,this.invalidate("position"),this.trigger("changed",{property:{name:"position",value:this._current}})}return this._current},a.prototype.invalidate=function(e){return"string"===t.type(e)&&(this._invalidated[e]=!0,this.is("valid")&&this.leave("valid")),t.map(this._invalidated,(function(t,e){return e}))},a.prototype.reset=function(t){(t=this.normalize(t))!==n&&(this._speed=0,this._current=t,this.suppress(["translate","translated"]),this.animate(this.coordinates(t)),this.release(["translate","translated"]))},a.prototype.normalize=function(t,e){var i=this._items.length,s=e?0:this._clones.length;return!this.isNumeric(t)||i<1?t=n:(t<0||t>=i+s)&&(t=((t-s/2)%i+i)%i+s/2),t},a.prototype.relative=function(t){return t-=this._clones.length/2,this.normalize(t,!0)},a.prototype.maximum=function(t){var e,i,s,n=this.settings,a=this._coordinates.length;if(n.loop)a=this._clones.length/2+this._items.length-1;else if(n.autoWidth||n.merge){for(e=this._items.length,i=this._items[--e].width(),s=this.$element.width();e--&&!((i+=this._items[e].width()+this.settings.margin)>s););a=e+1}else a=n.center?this._items.length-1:this._items.length-n.items;return t&&(a-=this._clones.length/2),Math.max(a,0)},a.prototype.minimum=function(t){return t?0:this._clones.length/2},a.prototype.items=function(t){return t===n?this._items.slice():(t=this.normalize(t,!0),this._items[t])},a.prototype.mergers=function(t){return t===n?this._mergers.slice():(t=this.normalize(t,!0),this._mergers[t])},a.prototype.clones=function(e){var i=this._clones.length/2,s=i+this._items.length,a=function(t){return t%2==0?s+t/2:i-(t+1)/2};return e===n?t.map(this._clones,(function(t,e){return a(e)})):t.map(this._clones,(function(t,i){return t===e?a(i):null}))},a.prototype.speed=function(t){return t!==n&&(this._speed=t),this._speed},a.prototype.coordinates=function(e){var i,s=1,a=e-1;return e===n?t.map(this._coordinates,t.proxy((function(t,e){return this.coordinates(e)}),this)):(this.settings.center?(this.settings.rtl&&(s=-1,a=e+1),i=this._coordinates[e],i+=(this.width()-i+(this._coordinates[a]||0))/2*s):i=this._coordinates[a]||0,i=Math.ceil(i))},a.prototype.duration=function(t,e,i){return 0===i?0:Math.min(Math.max(Math.abs(e-t),1),6)*Math.abs(i||this.settings.smartSpeed)},a.prototype.to=function(t,e){var i=this.current(),s=null,n=t-this.relative(i),a=(n>0)-(n<0),o=this._items.length,r=this.minimum(),l=this.maximum();this.settings.loop?(!this.settings.rewind&&Math.abs(n)>o/2&&(n+=-1*a*o),(s=(((t=i+n)-r)%o+o)%o+r)!==t&&s-n<=l&&s-n>0&&(i=s-n,t=s,this.reset(i))):t=this.settings.rewind?(t%(l+=1)+l)%l:Math.max(r,Math.min(l,t)),this.speed(this.duration(i,t,e)),this.current(t),this.$element.is(":visible")&&this.update()},a.prototype.next=function(t){t=t||!1,this.to(this.relative(this.current())+1,t)},a.prototype.prev=function(t){t=t||!1,this.to(this.relative(this.current())-1,t)},a.prototype.onTransitionEnd=function(t){if(t!==n&&(t.stopPropagation(),(t.target||t.srcElement||t.originalTarget)!==this.$stage.get(0)))return!1;this.leave("animating"),this.trigger("translated")},a.prototype.viewport=function(){var i;return this.options.responsiveBaseElement!==e?i=t(this.options.responsiveBaseElement).width():e.innerWidth?i=e.innerWidth:s.documentElement&&s.documentElement.clientWidth?i=s.documentElement.clientWidth:console.warn("Can not detect viewport width."),i},a.prototype.replace=function(e){this.$stage.empty(),this._items=[],e&&(e=e instanceof jQuery?e:t(e)),this.settings.nestedItemSelector&&(e=e.find("."+this.settings.nestedItemSelector)),e.filter((function(){return 1===this.nodeType})).each(t.proxy((function(t,e){e=this.prepare(e),this.$stage.append(e),this._items.push(e),this._mergers.push(1*e.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)}),this)),this.reset(this.isNumeric(this.settings.startPosition)?this.settings.startPosition:0),this.invalidate("items")},a.prototype.add=function(e,i){var s=this.relative(this._current);i=i===n?this._items.length:this.normalize(i,!0),e=e instanceof jQuery?e:t(e),this.trigger("add",{content:e,position:i}),e=this.prepare(e),0===this._items.length||i===this._items.length?(0===this._items.length&&this.$stage.append(e),0!==this._items.length&&this._items[i-1].after(e),this._items.push(e),this._mergers.push(1*e.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)):(this._items[i].before(e),this._items.splice(i,0,e),this._mergers.splice(i,0,1*e.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)),this._items[s]&&this.reset(this._items[s].index()),this.invalidate("items"),this.trigger("added",{content:e,position:i})},a.prototype.remove=function(t){(t=this.normalize(t,!0))!==n&&(this.trigger("remove",{content:this._items[t],position:t}),this._items[t].remove(),this._items.splice(t,1),this._mergers.splice(t,1),this.invalidate("items"),this.trigger("removed",{content:null,position:t}))},a.prototype.preloadAutoWidthImages=function(e){e.each(t.proxy((function(e,i){this.enter("pre-loading"),i=t(i),t(new Image).one("load",t.proxy((function(t){i.attr("src",t.target.src),i.css("opacity",1),this.leave("pre-loading"),!this.is("pre-loading")&&!this.is("initializing")&&this.refresh()}),this)).attr("src",i.attr("src")||i.attr("data-src")||i.attr("data-src-retina"))}),this))},a.prototype.destroy=function(){for(var i in this.$element.off(".owl.core"),this.$stage.off(".owl.core"),t(s).off(".owl.core"),!1!==this.settings.responsive&&(e.clearTimeout(this.resizeTimer),this.off(e,"resize",this._handlers.onThrottledResize)),this._plugins)this._plugins[i].destroy();this.$stage.children(".cloned").remove(),this.$stage.unwrap(),this.$stage.children().contents().unwrap(),this.$stage.children().unwrap(),this.$element.removeClass(this.options.refreshClass).removeClass(this.options.loadingClass).removeClass(this.options.loadedClass).removeClass(this.options.rtlClass).removeClass(this.options.dragClass).removeClass(this.options.grabClass).attr("class",this.$element.attr("class").replace(new RegExp(this.options.responsiveClass+"-\\S+\\s","g"),"")).removeData("owl.carousel")},a.prototype.op=function(t,e,i){var s=this.settings.rtl;switch(e){case"<":return s?t>i:t<i;case">":return s?t<i:t>i;case">=":return s?t<=i:t>=i;case"<=":return s?t>=i:t<=i}},a.prototype.on=function(t,e,i,s){t.addEventListener?t.addEventListener(e,i,s):t.attachEvent&&t.attachEvent("on"+e,i)},a.prototype.off=function(t,e,i,s){t.removeEventListener?t.removeEventListener(e,i,s):t.detachEvent&&t.detachEvent("on"+e,i)},a.prototype.trigger=function(e,i,s,n,o){var r={item:{count:this._items.length,index:this.current()}},l=t.camelCase(t.grep(["on",e,s],(function(t){return t})).join("-").toLowerCase()),d=t.Event([e,"owl",s||"carousel"].join(".").toLowerCase(),t.extend({relatedTarget:this},r,i));return this._supress[e]||(t.each(this._plugins,(function(t,e){e.onTrigger&&e.onTrigger(d)})),this.register({type:a.Type.Event,name:e}),this.$element.trigger(d),this.settings&&"function"==typeof this.settings[l]&&this.settings[l].call(this,d)),d},a.prototype.enter=function(e){t.each([e].concat(this._states.tags[e]||[]),t.proxy((function(t,e){this._states.current[e]===n&&(this._states.current[e]=0),this._states.current[e]++}),this))},a.prototype.leave=function(e){t.each([e].concat(this._states.tags[e]||[]),t.proxy((function(t,e){this._states.current[e]--}),this))},a.prototype.register=function(e){if(e.type===a.Type.Event){if(t.event.special[e.name]||(t.event.special[e.name]={}),!t.event.special[e.name].owl){var i=t.event.special[e.name]._default;t.event.special[e.name]._default=function(t){return!i||!i.apply||t.namespace&&-1!==t.namespace.indexOf("owl")?t.namespace&&t.namespace.indexOf("owl")>-1:i.apply(this,arguments)},t.event.special[e.name].owl=!0}}else e.type===a.Type.State&&(this._states.tags[e.name]?this._states.tags[e.name]=this._states.tags[e.name].concat(e.tags):this._states.tags[e.name]=e.tags,this._states.tags[e.name]=t.grep(this._states.tags[e.name],t.proxy((function(i,s){return t.inArray(i,this._states.tags[e.name])===s}),this)))},a.prototype.suppress=function(e){t.each(e,t.proxy((function(t,e){this._supress[e]=!0}),this))},a.prototype.release=function(e){t.each(e,t.proxy((function(t,e){delete this._supress[e]}),this))},a.prototype.pointer=function(t){var i={x:null,y:null};return(t=(t=t.originalEvent||t||e.event).touches&&t.touches.length?t.touches[0]:t.changedTouches&&t.changedTouches.length?t.changedTouches[0]:t).pageX?(i.x=t.pageX,i.y=t.pageY):(i.x=t.clientX,i.y=t.clientY),i},a.prototype.isNumeric=function(t){return!isNaN(parseFloat(t))},a.prototype.difference=function(t,e){return{x:t.x-e.x,y:t.y-e.y}},t.fn.sbyOwlCarousel=function(e){var s=Array.prototype.slice.call(arguments,1);return this.each((function(){var n=t(this),o=n.data("owl.carousel");o||(o=new a(this,"object"==i(e)&&e),n.data("owl.carousel",o),t.each(["next","prev","to","destroy","refresh","replace","add","remove"],(function(e,i){o.register({type:a.Type.Event,name:i}),o.$element.on(i+".owl.carousel.core",t.proxy((function(t){t.namespace&&t.relatedTarget!==this&&(this.suppress([i]),o[i].apply(this,[].slice.call(arguments,1)),this.release([i]))}),o))}))),"string"==typeof e&&"_"!==e.charAt(0)&&o[e].apply(o,s)}))},t.fn.sbyOwlCarousel.Constructor=a}(window.Zepto||window.jQuery,window,document),function(t,e,i,s){var n=function e(i){this._core=i,this._interval=null,this._visible=null,this._handlers={"initialized.owl.carousel":t.proxy((function(t){t.namespace&&this._core.settings.autoRefresh&&this.watch()}),this)},this._core.options=t.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers)};n.Defaults={autoRefresh:!0,autoRefreshInterval:500},n.prototype.watch=function(){this._interval||(this._visible=this._core.$element.is(":visible"),this._interval=e.setInterval(t.proxy(this.refresh,this),this._core.settings.autoRefreshInterval))},n.prototype.refresh=function(){this._core.$element.is(":visible")!==this._visible&&(this._visible=!this._visible,this._core.$element.toggleClass("sby-owl-hidden",!this._visible),this._visible&&this._core.invalidate("width")&&this._core.refresh())},n.prototype.destroy=function(){var t,i;for(t in e.clearInterval(this._interval),this._handlers)this._core.$element.off(t,this._handlers[t]);for(i in Object.getOwnPropertyNames(this))"function"!=typeof this[i]&&(this[i]=null)},t.fn.sbyOwlCarousel.Constructor.Plugins.AutoRefresh=n}(window.Zepto||window.jQuery,window,document),function(t,e,i,s){var n=function e(i){this._core=i,this._loaded=[],this._handlers={"initialized.owl.carousel change.owl.carousel resized.owl.carousel":t.proxy((function(e){if(e.namespace&&this._core.settings&&this._core.settings.lazyLoad&&(e.property&&"position"==e.property.name||"initialized"==e.type))for(var i=this._core.settings,s=i.center&&Math.ceil(i.items/2)||i.items,n=i.center&&-1*s||0,a=(e.property&&void 0!==e.property.value?e.property.value:this._core.current())+n,o=this._core.clones().length,r=t.proxy((function(t,e){this.load(e)}),this);n++<s;)this.load(o/2+this._core.relative(a)),o&&t.each(this._core.clones(this._core.relative(a)),r),a++}),this)},this._core.options=t.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers)};n.Defaults={lazyLoad:!1},n.prototype.load=function(i){var s=this._core.$stage.children().eq(i),n=s&&s.find(".sby-owl-lazy");!n||t.inArray(s.get(0),this._loaded)>-1||(n.each(t.proxy((function(i,s){var n,a=t(s),o=e.devicePixelRatio>1&&a.attr("data-src-retina")||a.attr("data-src");this._core.trigger("load",{element:a,url:o},"lazy"),a.is("img")?a.one("load.owl.lazy",t.proxy((function(){a.css("opacity",1),this._core.trigger("loaded",{element:a,url:o},"lazy")}),this)).attr("src",o):((n=new Image).onload=t.proxy((function(){a.css({"background-image":'url("'+o+'")',opacity:"1"}),this._core.trigger("loaded",{element:a,url:o},"lazy")}),this),n.src=o)}),this)),this._loaded.push(s.get(0)))},n.prototype.destroy=function(){var t,e;for(t in this.handlers)this._core.$element.off(t,this.handlers[t]);for(e in Object.getOwnPropertyNames(this))"function"!=typeof this[e]&&(this[e]=null)},t.fn.sbyOwlCarousel.Constructor.Plugins.Lazy=n}(window.Zepto||window.jQuery,window,document),function(t,e,i,s){var n=function e(i){this._core=i,this._handlers={"initialized.owl.carousel refreshed.owl.carousel":t.proxy((function(t){t.namespace&&this._core.settings.autoHeight&&this.update()}),this),"changed.owl.carousel":t.proxy((function(t){t.namespace&&this._core.settings.autoHeight&&"position"==t.property.name&&this.update()}),this),"loaded.owl.lazy":t.proxy((function(t){t.namespace&&this._core.settings.autoHeight&&t.element.closest("."+this._core.settings.itemClass).index()===this._core.current()&&this.update()}),this)},this._core.options=t.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers)};n.Defaults={autoHeight:!1,autoHeightClass:"sby-owl-height"},n.prototype.update=function(){var e,i=this._core._current,s=i+this._core.settings.items,n=this._core.$stage.children().toArray().slice(i,s),a=[];t.each(n,(function(e,i){a.push(t(i).height())})),e=Math.max.apply(null,a),this._core.$stage.parent().height(e).addClass(this._core.settings.autoHeightClass)},n.prototype.destroy=function(){var t,e;for(t in this._handlers)this._core.$element.off(t,this._handlers[t]);for(e in Object.getOwnPropertyNames(this))"function"!=typeof this[e]&&(this[e]=null)},t.fn.sbyOwlCarousel.Constructor.Plugins.AutoHeight=n}(window.Zepto||window.jQuery,window,document),function(t,e,i,s){var n=function e(i){this._core=i,this._videos={},this._playing=null,this._handlers={"initialized.owl.carousel":t.proxy((function(t){t.namespace&&this._core.register({type:"state",name:"playing",tags:["interacting"]})}),this),"resize.owl.carousel":t.proxy((function(t){t.namespace&&this._core.settings.video&&this.isInFullScreen()&&t.preventDefault()}),this),"refreshed.owl.carousel":t.proxy((function(t){t.namespace&&this._core.is("resizing")&&this._core.$stage.find(".cloned .sby-owl-video-frame").remove()}),this),"changed.owl.carousel":t.proxy((function(t){t.namespace&&"position"===t.property.name&&this._playing&&this.stop()}),this),"prepared.owl.carousel":t.proxy((function(e){if(e.namespace){var i=t(e.content).find(".sby-owl-video");i.length&&(i.css("display","none"),this.fetch(i,t(e.content)))}}),this)},this._core.options=t.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers),this._core.$element.on("click.owl.video",".sby-owl-video-play-icon",t.proxy((function(t){this.play(t)}),this))};n.Defaults={video:!1,videoHeight:!1,videoWidth:!1},n.prototype.fetch=function(t,e){var i=t.attr("data-vimeo-id")?"vimeo":t.attr("data-vzaar-id")?"vzaar":"youtube",s=t.attr("data-vimeo-id")||t.attr("data-youtube-id")||t.attr("data-vzaar-id"),n=t.attr("data-width")||this._core.settings.videoWidth,a=t.attr("data-height")||this._core.settings.videoHeight,o=t.attr("href");if(!o)throw new Error("Missing video URL.");if((s=o.match(/(http:|https:|)\/\/(player.|www.|app.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com)|vzaar\.com)\/(video\/|videos\/|embed\/|channels\/.+\/|groups\/.+\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/))[3].indexOf("youtu")>-1)i="youtube";else if(s[3].indexOf("vimeo")>-1)i="vimeo";else{if(!(s[3].indexOf("vzaar")>-1))throw new Error("Video URL not supported.");i="vzaar"}s=s[6],this._videos[o]={type:i,id:s,width:n,height:a},e.attr("data-video",o),this.thumbnail(t,this._videos[o])},n.prototype.thumbnail=function(e,i){var s,n,a=i.width&&i.height?'style="width:'+i.width+"px;height:"+i.height+'px;"':"",o=e.find("img"),r="src",l="",d=this._core.settings,h=function(t){s=d.lazyLoad?'<div class="sby-owl-video-tn '+l+'" '+r+'="'+t+'"></div>':'<div class="sby-owl-video-tn" style="opacity:1;background-image:url('+t+')"></div>',e.after(s),e.after('<div class="sby-owl-video-play-icon"></div>')};if(e.wrap('<div class="sby-owl-video-wrapper"'+a+"></div>"),this._core.settings.lazyLoad&&(r="data-src",l="sby-owl-lazy"),o.length)return h(o.attr(r)),o.remove(),!1;"youtube"===i.type?(n="//img.youtube.com/vi/"+i.id+"/hqdefault.jpg",h(n)):"vimeo"===i.type?t.ajax({type:"GET",url:"//vimeo.com/api/v2/video/"+i.id+".json",jsonp:"callback",dataType:"jsonp",success:function(t){n=t[0].thumbnail_large,h(n)}}):"vzaar"===i.type&&t.ajax({type:"GET",url:"//vzaar.com/api/videos/"+i.id+".json",jsonp:"callback",dataType:"jsonp",success:function(t){n=t.framegrab_url,h(n)}})},n.prototype.stop=function(){this._core.trigger("stop",null,"video"),this._playing.find(".sby-owl-video-frame").remove(),this._playing.removeClass("sby-owl-video-playing"),this._playing=null,this._core.leave("playing"),this._core.trigger("stopped",null,"video")},n.prototype.play=function(e){var i,s=t(e.target).closest("."+this._core.settings.itemClass),n=this._videos[s.attr("data-video")],a=n.width||"100%",o=n.height||this._core.$stage.height();this._playing||(this._core.enter("playing"),this._core.trigger("play",null,"video"),s=this._core.items(this._core.relative(s.index())),this._core.reset(s.index()),"youtube"===n.type?i='<iframe width="'+a+'" height="'+o+'" src="//www.youtube.com/embed/'+n.id+"?autoplay=1&rel=0&v="+n.id+'" frameborder="0" allowfullscreen></iframe>':"vimeo"===n.type?i='<iframe src="//player.vimeo.com/video/'+n.id+'?autoplay=1" width="'+a+'" height="'+o+'" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>':"vzaar"===n.type&&(i='<iframe frameborder="0"height="'+o+'"width="'+a+'" allowfullscreen mozallowfullscreen webkitAllowFullScreen src="//view.vzaar.com/'+n.id+'/player?autoplay=true"></iframe>'),t('<div class="sby-owl-video-frame">'+i+"</div>").insertAfter(s.find(".sby-owl-video")),this._playing=s.addClass("sby-owl-video-playing"))},n.prototype.isInFullScreen=function(){var e=i.fullscreenElement||i.mozFullScreenElement||i.webkitFullscreenElement;return e&&t(e).parent().hasClass("sby-owl-video-frame")},n.prototype.destroy=function(){var t,e;for(t in this._core.$element.off("click.owl.video"),this._handlers)this._core.$element.off(t,this._handlers[t]);for(e in Object.getOwnPropertyNames(this))"function"!=typeof this[e]&&(this[e]=null)},t.fn.sbyOwlCarousel.Constructor.Plugins.Video=n}(window.Zepto||window.jQuery,window,document),function(t,e,i,s){var n=function e(i){this.core=i,this.core.options=t.extend({},e.Defaults,this.core.options),this.swapping=!0,this.previous=s,this.next=s,this.handlers={"change.owl.carousel":t.proxy((function(t){t.namespace&&"position"==t.property.name&&(this.previous=this.core.current(),this.next=t.property.value)}),this),"drag.owl.carousel dragged.owl.carousel translated.owl.carousel":t.proxy((function(t){t.namespace&&(this.swapping="translated"==t.type)}),this),"translate.owl.carousel":t.proxy((function(t){t.namespace&&this.swapping&&(this.core.options.animateOut||this.core.options.animateIn)&&this.swap()}),this)},this.core.$element.on(this.handlers)};n.Defaults={animateOut:!1,animateIn:!1},n.prototype.swap=function(){if(1===this.core.settings.items&&t.support.animation&&t.support.transition){this.core.speed(0);var e,i=t.proxy(this.clear,this),s=this.core.$stage.children().eq(this.previous),n=this.core.$stage.children().eq(this.next),a=this.core.settings.animateIn,o=this.core.settings.animateOut;this.core.current()!==this.previous&&(o&&(e=this.core.coordinates(this.previous)-this.core.coordinates(this.next),s.one(t.support.animation.end,i).css({left:e+"px"}).addClass("animated sby-owl-animated-out").addClass(o)),a&&n.one(t.support.animation.end,i).addClass("animated sby-owl-animated-in").addClass(a))}},n.prototype.clear=function(e){t(e.target).css({left:""}).removeClass("animated sby-owl-animated-out sby-owl-animated-in").removeClass(this.core.settings.animateIn).removeClass(this.core.settings.animateOut),this.core.onTransitionEnd()},n.prototype.destroy=function(){var t,e;for(t in this.handlers)this.core.$element.off(t,this.handlers[t]);for(e in Object.getOwnPropertyNames(this))"function"!=typeof this[e]&&(this[e]=null)},t.fn.sbyOwlCarousel.Constructor.Plugins.Animate=n}(window.Zepto||window.jQuery,window,document),function(t,e,i,s){var n=function e(i){this._core=i,this._timeout=null,this._paused=!1,this._handlers={"changed.owl.carousel":t.proxy((function(t){t.namespace&&"settings"===t.property.name?this._core.settings.autoplay?this.play():this.stop():t.namespace&&"position"===t.property.name&&this._core.settings.autoplay&&this._setAutoPlayInterval()}),this),"initialized.owl.carousel":t.proxy((function(t){t.namespace&&this._core.settings.autoplay&&this.play()}),this),"play.owl.autoplay":t.proxy((function(t,e,i){t.namespace&&this.play(e,i)}),this),"stop.owl.autoplay":t.proxy((function(t){t.namespace&&this.stop()}),this),"mouseover.owl.autoplay":t.proxy((function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.pause()}),this),"mouseleave.owl.autoplay":t.proxy((function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.play()}),this),"touchstart.owl.core":t.proxy((function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.pause()}),this),"touchend.owl.core":t.proxy((function(){this._core.settings.autoplayHoverPause&&this.play()}),this)},this._core.$element.on(this._handlers),this._core.options=t.extend({},e.Defaults,this._core.options)};n.Defaults={autoplay:!1,autoplayTimeout:5e3,autoplayHoverPause:!1,autoplaySpeed:!1},n.prototype.play=function(t,e){this._paused=!1,this._core.is("rotating")||(this._core.enter("rotating"),this._setAutoPlayInterval())},n.prototype._getNextTimeout=function(s,n){return this._timeout&&e.clearTimeout(this._timeout),e.setTimeout(t.proxy((function(){this._paused||this._core.is("busy")||this._core.is("interacting")||i.hidden||this._core.next(n||this._core.settings.autoplaySpeed)}),this),s||this._core.settings.autoplayTimeout)},n.prototype._setAutoPlayInterval=function(){this._timeout=this._getNextTimeout()},n.prototype.stop=function(){this._core.is("rotating")&&(e.clearTimeout(this._timeout),this._core.leave("rotating"))},n.prototype.pause=function(){this._core.is("rotating")&&(this._paused=!0)},n.prototype.destroy=function(){var t,e;for(t in this.stop(),this._handlers)this._core.$element.off(t,this._handlers[t]);for(e in Object.getOwnPropertyNames(this))"function"!=typeof this[e]&&(this[e]=null)},t.fn.sbyOwlCarousel.Constructor.Plugins.autoplay=n}(window.Zepto||window.jQuery,window,document),function(t,e,i,s){"use strict";var n=function e(i){this._core=i,this._initialized=!1,this._pages=[],this._controls={},this._templates=[],this.$element=this._core.$element,this._overrides={next:this._core.next,prev:this._core.prev,to:this._core.to},this._handlers={"prepared.owl.carousel":t.proxy((function(e){e.namespace&&this._core.settings.dotsData&&this._templates.push('<div class="'+this._core.settings.dotClass+'">'+t(e.content).find("[data-dot]").addBack("[data-dot]").attr("data-dot")+"</div>")}),this),"added.owl.carousel":t.proxy((function(t){t.namespace&&this._core.settings.dotsData&&this._templates.splice(t.position,0,this._templates.pop())}),this),"remove.owl.carousel":t.proxy((function(t){t.namespace&&this._core.settings.dotsData&&this._templates.splice(t.position,1)}),this),"changed.owl.carousel":t.proxy((function(t){t.namespace&&"position"==t.property.name&&this.draw()}),this),"initialized.owl.carousel":t.proxy((function(t){t.namespace&&!this._initialized&&(this._core.trigger("initialize",null,"navigation"),this.initialize(),this.update(),this.draw(),this._initialized=!0,this._core.trigger("initialized",null,"navigation"))}),this),"refreshed.owl.carousel":t.proxy((function(t){t.namespace&&this._initialized&&(this._core.trigger("refresh",null,"navigation"),this.update(),this.draw(),this._core.trigger("refreshed",null,"navigation"))}),this)},this._core.options=t.extend({},e.Defaults,this._core.options),this.$element.on(this._handlers)};n.Defaults={nav:!1,navText:["prev","next"],navSpeed:!1,navElement:"div",navContainer:!1,navContainerClass:"sby-owl-nav",navClass:["sby-owl-prev","sby-owl-next"],slideBy:1,dotClass:"sby-owl-dot",dotsClass:"sby-owl-dots",dots:!0,dotsEach:!1,dotsData:!1,dotsSpeed:!1,dotsContainer:!1},n.prototype.initialize=function(){var e,i=this._core.settings;for(e in this._controls.$relative=(i.navContainer?t(i.navContainer):t("<div>").addClass(i.navContainerClass).appendTo(this.$element)).addClass("disabled"),this._controls.$previous=t("<"+i.navElement+">").addClass(i.navClass[0]).html(i.navText[0]).prependTo(this._controls.$relative).on("click",t.proxy((function(t){this.prev(i.navSpeed)}),this)),this._controls.$next=t("<"+i.navElement+">").addClass(i.navClass[1]).html(i.navText[1]).appendTo(this._controls.$relative).on("click",t.proxy((function(t){this.next(i.navSpeed)}),this)),i.dotsData||(this._templates=[t("<div>").addClass(i.dotClass).append(t("<span>")).prop("outerHTML")]),this._controls.$absolute=(i.dotsContainer?t(i.dotsContainer):t("<div>").addClass(i.dotsClass).appendTo(this.$element)).addClass("disabled"),this._controls.$absolute.on("click","div",t.proxy((function(e){var s=t(e.target).parent().is(this._controls.$absolute)?t(e.target).index():t(e.target).parent().index();e.preventDefault(),this.to(s,i.dotsSpeed)}),this)),this._overrides)this._core[e]=t.proxy(this[e],this)},n.prototype.destroy=function(){var t,e,i,s;for(t in this._handlers)this.$element.off(t,this._handlers[t]);for(e in this._controls)this._controls[e].remove();for(s in this.overides)this._core[s]=this._overrides[s];for(i in Object.getOwnPropertyNames(this))"function"!=typeof this[i]&&(this[i]=null)},n.prototype.update=function(){var t,e,i=this._core.clones().length/2,s=i+this._core.items().length,n=this._core.maximum(!0),a=this._core.settings,o=a.center||a.autoWidth||a.dotsData?1:a.dotsEach||a.items;if("page"!==a.slideBy&&(a.slideBy=Math.min(a.slideBy,a.items)),a.dots||"page"==a.slideBy)for(this._pages=[],t=i,e=0;t<s;t++){if(e>=o||0===e){if(this._pages.push({start:Math.min(n,t-i),end:t-i+o-1}),Math.min(n,t-i)===n)break;e=0}e+=this._core.mergers(this._core.relative(t))}},n.prototype.draw=function(){var e,i=this._core.settings,s=this._core.items().length<=i.items,n=this._core.relative(this._core.current()),a=i.loop||i.rewind;this._controls.$relative.toggleClass("disabled",!i.nav||s),i.nav&&(this._controls.$previous.toggleClass("disabled",!a&&n<=this._core.minimum(!0)),this._controls.$next.toggleClass("disabled",!a&&n>=this._core.maximum(!0))),this._controls.$absolute.toggleClass("disabled",!i.dots||s),i.dots&&(e=this._pages.length-this._controls.$absolute.children().length,i.dotsData&&0!==e?this._controls.$absolute.html(this._templates.join("")):e>0?this._controls.$absolute.append(new Array(e+1).join(this._templates[0])):e<0&&this._controls.$absolute.children().slice(e).remove(),this._controls.$absolute.find(".active").removeClass("active"),this._controls.$absolute.children().eq(t.inArray(this.current(),this._pages)).addClass("active"))},n.prototype.onTrigger=function(e){var i=this._core.settings;e.page={index:t.inArray(this.current(),this._pages),count:this._pages.length,size:i&&(i.center||i.autoWidth||i.dotsData?1:i.dotsEach||i.items)}},n.prototype.current=function(){var e=this._core.relative(this._core.current());return t.grep(this._pages,t.proxy((function(t,i){return t.start<=e&&t.end>=e}),this)).pop()},n.prototype.getPosition=function(e){var i,s,n=this._core.settings;return"page"==n.slideBy?(i=t.inArray(this.current(),this._pages),s=this._pages.length,e?++i:--i,i=this._pages[(i%s+s)%s].start):(i=this._core.relative(this._core.current()),s=this._core.items().length,e?i+=n.slideBy:i-=n.slideBy),i},n.prototype.next=function(e){t.proxy(this._overrides.to,this._core)(this.getPosition(!0),e)},n.prototype.prev=function(e){t.proxy(this._overrides.to,this._core)(this.getPosition(!1),e)},n.prototype.to=function(e,i,s){var n;!s&&this._pages.length?(n=this._pages.length,t.proxy(this._overrides.to,this._core)(this._pages[(e%n+n)%n].start,i)):t.proxy(this._overrides.to,this._core)(e,i)},t.fn.sbyOwlCarousel.Constructor.Plugins.Navigation=n}(window.Zepto||window.jQuery,window,document),function(t,e,i,s){"use strict";var n=function i(s){this._core=s,this._hashes={},this.$element=this._core.$element,this._handlers={"initialized.owl.carousel":t.proxy((function(i){i.namespace&&"URLHash"===this._core.settings.startPosition&&t(e).trigger("hashchange.owl.navigation")}),this),"prepared.owl.carousel":t.proxy((function(e){if(e.namespace){var i=t(e.content).find("[data-hash]").addBack("[data-hash]").attr("data-hash");if(!i)return;this._hashes[i]=e.content}}),this),"changed.owl.carousel":t.proxy((function(i){if(i.namespace&&"position"===i.property.name){var s=this._core.items(this._core.relative(this._core.current())),n=t.map(this._hashes,(function(t,e){return t===s?e:null})).join();if(!n||e.location.hash.slice(1)===n)return;e.location.hash=n}}),this)},this._core.options=t.extend({},i.Defaults,this._core.options),this.$element.on(this._handlers),t(e).on("hashchange.owl.navigation",t.proxy((function(t){var i=e.location.hash.substring(1),s=this._core.$stage.children(),n=this._hashes[i]&&s.index(this._hashes[i]);void 0!==n&&n!==this._core.current()&&this._core.to(this._core.relative(n),!1,!0)}),this))};n.Defaults={URLhashListener:!1},n.prototype.destroy=function(){var i,s;for(i in t(e).off("hashchange.owl.navigation"),this._handlers)this._core.$element.off(i,this._handlers[i]);for(s in Object.getOwnPropertyNames(this))"function"!=typeof this[s]&&(this[s]=null)},t.fn.sbyOwlCarousel.Constructor.Plugins.Hash=n}(window.Zepto||window.jQuery,window,document),function(t,e,i,s){function n(e,i){var n=!1,a=e.charAt(0).toUpperCase()+e.slice(1);return t.each((e+" "+r.join(a+" ")+a).split(" "),(function(t,e){if(o[e]!==s)return n=!i||e,!1})),n}function a(t){return n(t,!0)}var o=t("<support>").get(0).style,r="Webkit Moz O ms".split(" "),l={transition:{end:{WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",transition:"transitionend"}},animation:{end:{WebkitAnimation:"webkitAnimationEnd",MozAnimation:"animationend",OAnimation:"oAnimationEnd",animation:"animationend"}}};!!n("transition")&&(t.support.transition=new String(a("transition")),t.support.transition.end=l.transition.end[t.support.transition]),!!n("animation")&&(t.support.animation=new String(a("animation")),t.support.animation.end=l.animation.end[t.support.animation]),n("transform")&&(t.support.transform=new String(a("transform")),t.support.transform3d=!!n("perspective"))}(window.Zepto||window.jQuery,window,document),s=window.Zepto||window.jQuery,window,document,Owl2row=function(t){function e(e){return t.apply(this,arguments)}return e.toString=function(){return t.toString()},e}((function(t){this.owl=t,this.owl.options=s.extend({},Owl2row.Defaults,this.owl.options),this.handlers={"initialize.owl.carousel":s.proxy((function(t){this.owl.settings.owl2row&&this.build2row(this)}),this)},this.owl.$element.on(this.handlers)})),Owl2row.Defaults={owl2row:!1,owl2rowTarget:"sby_item",owl2rowContainer:"sby_owl2row-item",owl2rowDirection:"utd"},Owl2row.prototype.build2row=function(t){var e=s(t.owl.$element),i=e.find("."+t.owl.options.owl2rowTarget),n=[],a=[];s.each(i,(function(t,e){t%2==0?n.push(e):a.push(e)})),"ltr"===t.owl.options.owl2rowDirection?t.leftToright(t,e,i):t.upTodown(t,n,a,e)},Owl2row.prototype.leftToright=function(t,e,i){var n=t.owl.options.owl2rowContainer,a=t.owl.options.margin,o=i.length,r=[],l=[];o%2==1?o=(o-1)/2+1:o/=2,s.each(i,(function(t,e){t<o?r.push(e):l.push(e)})),s.each(r,(function(t,i){var o=s('<div class="'+n+'"/>'),d=r[t];d.style.marginBottom=a+"px",o.append(d).append(l[t]),e.append(o)}))},Owl2row.prototype.upTodown=function(t,e,i,n){var a=t.owl.options.owl2rowContainer,o=t.owl.options.margin;s.each(e,(function(t,r){var l=s('<div class="'+a+'"/>'),d=e[t];d.style.marginBottom=o+"px",l.append(d).append(i[t]),n.append(l)}))},Owl2row.prototype.destroy=function(){},s.fn.sbyOwlCarousel.Constructor.Plugins.owl2row=Owl2row,function(t){function e(){this.feeds={},this.ctas={},this.options=sbyOptions,this.isTouch="ontouchstart"in document.documentElement}function i(t,e,i){this.el=t,this.index=e,this.settings=i,this.placeholderURL=window.sby.options.placeholder,i.narrowPlayer&&(this.placeholderURL=window.sby.options.placeholderNarrow),this.playerAPIReady=!1,this.consentGiven=i.consentGiven,this.players={},this.minImageWidth=0,this.imageResolution=150,this.resizedImages={},this.needsResizing=[],this.outOfPages=!1,this.isInitialized=!1,this.mostRecentlyLoadedPosts=[],this.embedURL="//www.youtube-nocookie.com",i.allowCookies&&(this.embedURL="//www.youtube.com")}function s(e,s,n){i.call(this,e,s,n),this.CTA={},this.initLayout=function(){this.initGalleryLayout(),this.initGrid(),this.initCarousels();var t=jQuery.Event("sbyafterlayoutinit");t.feed=this,jQuery(window).trigger(t),P()},this.initGrid=function(){if(window.sbySemiEagerLoading&&jQuery("#sby_lightbox").length){var e=this;playerID="sby_lb-player",jQuery("#sby_lightbox").addClass("sby_video_lightbox"),window.sbyOptions.isPro||jQuery("#sby_lightbox").addClass("sby_lightbox_free");var i=t(this.el).find("sby_item").first().attr("data-video-id"),s=sbyOptions.autoplay;if(void 0===window.sbyLightboxPlayer){var n={host:window.location.protocol+e.embedURL,videoId:i,playerVars:{modestbranding:1,rel:0,autoplay:s},events:{onStateChange:function(i){var s=i.target.getVideoData().video_id;e.afterStateChange(playerID,s,i,t("#"+playerID).closest(".sby_video_thumbnail_wrap"))}}};e.maybeAddCTA(playerID),window.sbyLightboxPlayer=new window.YT.Player(playerID,n)}}},this.initCarousels=function(){var e=this,i=t(this.el);if(void 0!==this.settings.general.carousel){var s=this.settings.cols,n=this.settings.colsmobile;i.find(".sby_items_wrap").addClass("sby_carousel"),i.find(".sby_load_btn").remove(),i.find(".sby_item").css({"padding-top":i.find(".sby_items_wrap").css("padding-top"),"padding-right":i.find(".sby_items_wrap").css("padding-top"),"padding-bottom":i.find(".sby_items_wrap").css("padding-top"),"padding-left":i.find(".sby_items_wrap").css("padding-top")}),i.find(".sby_item").each((function(){t(this).attr("style",t(this).attr("style").replace("padding: "+i.find(".sby_items_wrap").css("padding-top"),"padding: "+i.find(".sby_items_wrap").css("padding-top")+" !important"))}));var a=e.settings.general.carousel[0],o=e.settings.general.carousel[1],r=e.settings.general.carousel[2],l=e.settings.general.carousel[3],d=e.settings.general.carousel[4],h=e.settings.general.carousel[5];r||(l=!1);var c=s,u=s,g=(a=a?"onhover":"hide",r=!1!==l,2==h);d=!d,i.hasClass("sby_mob_col_auto")?(c=2,2!=parseInt(s)&&(u=1),2==parseInt(s)&&(u=2)):u=n,this.carouselArgs={items:s,loop:d,rewind:!d,autoplay:r,autoplayTimeout:Math.max(l,2e3),autoplayHoverPause:!0,nav:!0,navText:['<svg class="svg-inline--fa fa-chevron-left fa-w-10" aria-hidden="true" data-fa-processed="" data-prefix="fa" data-icon="chevron-left" role="presentation" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path fill="currentColor" d="M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z"></path></svg>','<svg class="svg-inline--fa fa-chevron-right fa-w-10" aria-hidden="true" data-fa-processed="" data-prefix="fa" data-icon="chevron-right" role="presentation" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path fill="currentColor" d="M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z"></path></svg>'],dots:o,owl2row:g,responsive:{0:{items:u},480:{items:c},640:{items:s}},onChange:function(){setTimeout((function(){e.afterResize()}),1)},onInitialize:function(){var t=jQuery(e.el);t.find(".sby_items_wrap.sby_carousel").fadeIn(),setTimeout((function(){t.find(".sby_items_wrap.sby_carousel .sby_info, .sby_owl2row-item,.sby_items_wrap.sby_carousel").fadeIn()}),1),setTimeout((function(){var e=t.find(".sby-owl-nav");if("onhover"===a);else if("below"===a){var i=t.find(".sby-owl-dots"),s=t.find(".sby-owl-prev"),n=t.find(".sby-owl-next"),o=t.find(".sby-owl-nav"),r=t.find(".sby-owl-dot"),l=r.length*r.innerWidth();t.innerWidth(),s.after(i),o.css("position","relative"),n.css("position","absolute").css("top","-6px").css("right",Math.max(.5*o.innerWidth()-.5*l-n.innerWidth()-6,0)),s.css("position","absolute").css("top","-6px").css("left",Math.max(.5*o.innerWidth()-.5*l-s.innerWidth()-6,0))}else"hide"===a&&e.addClass("hide").hide()}),1)}}}},this.stripEmojihtml=function(e){return e.find(".emoji").each((function(){t(this).replaceWith(t(this).attr("alt"))})),e.html()},this.afterItemRevealed=function(t){var e=this;if(t.find(".sby_caption").length&&!t.find(".sby_caption").hasClass("sby_full_caption")){var i=t.find(".sby_item_caption_wrap .sby_caption"),s=t.find(".sby_item_video_thumbnail .sby_caption"),n=void 0!==e.settings.general.descriptionlength?parseInt(e.settings.general.descriptionlength):150;n<1&&(n=99999);var a=this.stripEmojihtml(t.find(".sby_caption").first()),o=((a.match(/<br>/g)||[]).length,void 0===sbyOptions.brAdjust||"1"===sbyOptions.brAdjust||sbyOptions.brAdjust,a.substring(0,n));if(o=a.length>n?o.substr(0,Math.min(o.length,o.lastIndexOf(" "))):o,i.length&&(i.html(sbyLinkify(o)),o===a&&i.next(".sby_expand").remove()),s.length){var r=o;o!==a&&(r+='<span class="sby_more">...</span>'),s.html(r)}a.length>n&&t.find(".sby_expand").show(),t.find(".sby_expand a").off("click").on("click",(function(s){s.preventDefault(),jQuery(this),i=void 0!==i?i:t.find(".sby_info .sby_caption"),a="undefined"!=typeof captiontext?a:p(t.find(".sby_item_video_thumbnail").attr("data-title")),t.hasClass("sby_caption_full")&&void 0!==o?(i.html(o),t.removeClass("sby_caption_full")):(i.html(sbyLinkify(a)),t.addClass("sby_caption_full")),e.afterResize()}))}this.setUpCTA(t);var l=void 0!==e.settings.general.disablelightbox&&e.settings.general.disablelightbox,d=void 0!==e.settings.general.captionlinks&&e.settings.general.captionlinks;if(l||d){if(d){var h="";void 0!==t.find("img").attr("alt")?h=t.find("img").attr("alt"):void 0!==t.find("video").attr("alt")&&(h=t.find("video").attr("alt"));var c=h.match(/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/g);c&&t.find("a").attr("href",c)}t.find(".sby_link").addClass("sby_disable_lightbox")}else{var u=t.find(".sby_photo_wrap"),g=u.find(".sby_link");feedOptions={hovereffect:"true"},"none"==feedOptions.hovereffect?(g.css("background","none").show(),g.find("*").hide().end().find(".sby_link_area").show()):u.on("mouseenter mouseleave",(function(e){switch(e.type){case"mouseenter":t.addClass("sby_animate");break;case"mouseleave":t.removeClass("sby_animate")}}))}var y=void 0!==t.attr("data-video-id")?t.attr("data-video-id"):t.find(".sby_video_thumbnail").attr("data-video-id");this.mostRecentlyLoadedPosts.push(y)},this.afterFeedSet=function(){void 0!==this.carouselArgs&&(t(this.el).find(".sby_carousel").sbyOwlCarousel(this.carouselArgs),2===parseInt(this.settings.general.carousel[5])&&t(this.el).addClass("sby_carousel_2_row"))},this.setUpCTA=function(t,e){e=void 0!==e?e:t.find(".sby_item_video_thumbnail").attr("data-video-id");var i=p(void 0!==t.find(".sby_item_video_thumbnail").attr("data-title")?t.find(".sby_item_video_thumbnail").attr("data-title"):""),s=window.sby.ctaDetect(i);window.sby.ctas[e]=s||this.getDefaultCTA()},this.getDefaultCTA=function(){return void 0!==this.settings.general.cta&&"default"!==this.settings.general.cta.type&&("link"===this.settings.general.cta.type?{callback:"link",url:this.settings.general.cta.defaultLink,text:this.settings.general.cta.defaultText}:{callback:"related",related:this.settings.general.cta.defaultPosts})},this.afterResize=function(){this.setImageHeight(),this.setImageResolution(),this.maybeRaiseImageResolution(),this.setImageSizeClass(),this.setAllCTADimensions(),this.sizePlayer(),this.sizeItems()},this.setAllCTADimensions=function(){t.each(this.CTA,(function(t,e){e.isInitialized&&e.setCTAStyles()}))},this.afterSendCheckWPPostsToServer=function(e){var i=t(this.el);i.find(".sby_item").each((function(){if(void 0!==e[t(this).attr("data-video-id")]){var i=e[t(this).attr("data-video-id")];t(this).find(".sby_view_count").text(i.sby_view_count),t(this).find(".sby_comment_count").text(i.sby_comment_count),t(this).find(".sby_like_count").text(i.sby_like_count),t(this).find(".sby_video_thumbnail").attr("data-views",i.sby_view_count),t(this).find(".sby_video_thumbnail").attr("data-comment-count",i.sby_comment_count),"none"!==i.sby_live_broadcast.broadcast_type&&(t(this).find(".sby_ls_message").text(i.sby_live_broadcast.live_streaming_string),t(this).find(".sby_date").html(i.sby_live_broadcast.live_streaming_date)),void 0!==i.sby_live_broadcast.live_streaming_timestamp&&t(this).attr("data-live-date",i.sby_live_broadcast.live_streaming_timestamp),void 0!==i.sby_description&&t(this).find(".sby_item_video_thumbnail").attr("data-title",p(i.sby_description))}})),i.find(".sby_player_item").each((function(){if(void 0!==e[t(this).find(".sby_video_thumbnail").attr("data-video-id")]){var i=e[t(this).find(".sby_video_thumbnail").attr("data-video-id")];t(this).find(".sby_view_count").text(i.sby_view_count),t(this).find(".sby_comment_count").text(i.sby_comment_count),t(this).find(".sby_like_count").text(i.sby_like_count),"none"!==i.sby_live_broadcast.broadcast_type&&(t(this).find(".sby_ls_message").text(i.sby_live_broadcast.live_streaming_string),t(this).find(".sby_date").html(i.sby_live_broadcast.live_streaming_date)),void 0!==i.sby_live_broadcast.live_streaming_timestamp&&t(this).attr("data-live-date",i.sby_live_broadcast.live_streaming_timestamp)}}));var n=jQuery.Event("sbyaftercheckposts");n.feed=window.sby.feeds[s],n.response=e,jQuery(window).trigger(n)},this.afterStateChange=function(t,e,i,s){this.CTA[t].toggleCTA(e,i.data,s)},this.changePlayerInfo=function(e){var i=t(this.el);i.find(".sby_player_item").find(".sby_info").replaceWith(e.find(".sby_info").clone(!0,!0));var s=j(e.attr("data-video-title")),n=j(e.find(".sby_video_thumbnail").attr("data-formatted-published-date"));i.find(".sby-player-info .sby-video-header-info .sby-video-info-header h5").text(s),i.find(".sby-player-info .sby-video-header-meta .sby-video-date").text(n),O(i),P()},this.maybeAddCTA=function(t,e){void 0===this.CTA[t]&&(this.CTA[t]=new o(t,this))}}function n(){}function a(){n.call(this),this.getData=function(t){var e=t.closest(".sb_youtube"),i=parseInt(e.attr("data-sby-index")-1),s=e.attr("data-subscribe-btn-text"),n=e.attr("data-subscribe-btn"),a=e.hasClass("sby_palette_dark")?"dark":"light",o=e.attr("data-shortcode-atts"),r=t.closest(".sby_item").attr("data-live-date"),l=e.attr("data_channel_header_colors")?JSON.parse(e.attr("data_channel_header_colors")):"";return{feedIndex:i,link:t.attr("href"),video:t.attr("data-video-id"),title:p(t.attr("data-title")),videoTitle:void 0!==t.attr("data-video-title")?p(t.attr("data-video-title")):"YouTube Video",avatar:t.attr("data-avatar"),user:p(t.attr("data-user")),channelURL:t.attr("data-url"),channelID:t.attr("data-channel-id"),channelSubscribers:t.closest(".sb_youtube").attr("data-channel-subscribers"),subscribeBtn:n,subscribeBtnText:s,colorScheme:a,publishedDate:t.attr("data-published-date"),commentCount:t.attr("data-comment-count"),views:t.attr("data-views"),liveData:r,channelHeaderColors:l,atts:o}},this.template=function(){return"\n <div id='sby_lightboxOverlay' class='sby_lightboxOverlay'></div>\n <div id='sby_lightbox' class='sby_lightbox'>\n <div class='sby_lb-header'></div>\n <div class='sby_lb-outerContainer'>\n <a class='sby_lb-close'></a>\n <div class='sby_lb-container'>\n <div class='sby_lb_video_thumbnail_wrap'>\n <span class='sby_lb_video_thumbnail'>\n <img class='sby_lb-image' alt='Lightbox image placeholder' src='' />\n <div class='sby_lb-player' id='sby_lb-player'></div>\n </span>\n </div>\n <div class='sby_lb-nav'>\n <a class='sby_lb-prev' href='#'>\n <p class='sby-screenreader'>Previous Slide</p>\n <span></span>\n </a>\n <a class='sby_lb-next' href='#'>\n <p class='sby-screenreader'>Next Slide</p>\n <span></span>\n </a>\n </div>\n <div class='sby_lb-loader'>\n <a class='sby_lb-cancel'></a>\n </div>\n </div>\n </div>\n <div class='sby_lb-dataContainer'>\n <div class='sby_lb-data'>\n <div class='sby_lb-details'>\n <div class='sby_lb-caption'>\n </div>\n <div class='sby_lb-info'>\n <div class='sby_lb-number'></div>\n </div>\n </div>\n </div>\n </div>\n </div>"},this.beforePlayerSetup=function(e,i,s,n,a){t("body").css("overflow","hidden"),e.find(".sby_cta_items_wraps").length?e.find(".sby_cta_items_wraps").replaceWith(t(a.el).find(".sby_cta_items_wraps").clone()):e.find(".sby_lb_video_thumbnail_wrap").append(t(a.el).find(".sby_cta_items_wraps").clone())},this.afterPlayerSetup=function(t,e,i,s){this.availableAvatarUrls={};var n=!(null==e||!e.subscribeBtn)&&e.subscribeBtn,a=null!=e&&e.subscribeBtnText?e.subscribeBtnText:"",o=n?"sby_lb-channel-info":"sby_lb-no-channel-info";"function"==typeof sbyLightboxAction&&setTimeout((function(){sbyLightboxAction()}),100),null!=e&&e.colorScheme&&"dark"===e.colorScheme&&z(e.colorScheme,!0);var r="",l=n?'<a class="sby-lb-subscribe-btn" href="http://www.youtube.com/channel/'+e.channelID+'?sub_confirmation=1&feature=subscribe-embed-click" target="_blank" rel="noopener noreferrer">'+w("youtube")+" <p>"+a+"</p></a>":"";void 0!==e.avatar&&""!==e.avatar&&void 0!==e.user?r="undefined"!==e.avatar?e.avatar:"":void 0!==e.user&&jQuery.each(window.sby.feeds,(function(){void 0!==this.availableAvatarUrls&&void 0!==this.availableAvatarUrls[e.user]&&"undefined"!==this.availableAvatarUrls[e.user]&&(r=this.availableAvatarUrls[e.user])}));var d,h,c=r?'<img src="'+r+'" referrerPolicy="no-referrer"/>':w("profile-picture"),u=n?'<div class="sby-lb-channel-header"><a class="sby_lightbox_username" href="'+e.channelURL+'" target="_blank" rel="noopener">'+c+'<p class="sby-lb-channel-name-with-subs"><span>@'+e.user+"</span><span>"+e.channelSubscribers+"</span></p></a> "+l+"</div>":"";if(window.sbyOptions.isPro){var g=null!=e&&e.title?(h=e.title)?(h=h.replace(/(>#)/g,"> #"),sbyLinkify(h)):"":"",p=null!=e&&e.publishedDate?I((d=e.publishedDate)?new Date(1e3*parseInt(d)):""):"",y=null!=e&&e.views?e.views:"",f='\n <div class="sby_lb-video-heading">\n <h3>'.concat(e.videoTitle,'</h3>\n <div class="sby_lb-video-info">\n <span>').concat(y,'</span>\n <span class="sby_lb-spacer">·</span>\n <span>').concat(p,"</span>\n </div>\n </div>\n "),b='\n <div class="sby_lb-video-description-wrap">\n <div class="sby_lb-description sby-read-more-target">\n '.concat(g,'\n </div>\n <button class="sby_lb-more-info-btn sby-read-more-trigger">Description').concat(w("angle-down"),"</button>\n </div>\n "),m=g?b:"";if(t.find(".sby_lb-caption").html('<div class="sby_lb-caption-inner '.concat(o,'">')+f+u+m+'\n <div class="sby-comments-wrap">\n </div>\n </div>').fadeIn("fast"),null!=e&&e.liveData&&"0"===e.liveData){var _=null!=e&&e.video?e.video:"",v=null!=e&&e.atts?e.atts:"",x=null!=e&&e.commentCount?e.commentCount:"";A(_,v,t.find(".sby-comments-wrap"),x)}else k();null!=e&&e.channelHeaderColors&&function(t){var e=t.channelName,i=t.subscribeCount,s=t.buttonBackground,n=t.buttonText,a=jQuery(".sby_lb-dataContainer .sby-lb-channel-header");if(!a)return!1;e&&a.find(".sby-lb-channel-name-with-subs span:first-child").css("color",e),i&&a.find(".sby-lb-channel-name-with-subs span:nth-child(2)").css("color",i),s&&a.find(".sby-lb-subscribe-btn").css("background",s),n&&a.find(".sby-lb-subscribe-btn").css("color",n)}(e.channelHeaderColors)}}}function o(t,e){this.isInitialized=!1,this.videoID=t,this.callback=this.related,this.callbackArgs={},this.feedObjInContext=e,this.state=1,this.numItems=4,this.numItemColumns=2,this.$player=!1}e.prototype={createPage:function(e,i){void 0!==window.sbyajaxurl&&-1!==window.sbyajaxurl.indexOf(window.location.hostname)||(window.sbyajaxurl=window.location.hostname+"/wp-admin/admin-ajax.php"),t(".sby_no_js_error_message").remove(),t(".sby_no_js").removeClass("sby_no_js"),e(i)},maybeAddYTAPI:function(){var t="sby-youtube-api";if(null===document.getElementById(t)){var e=document.createElement("script"),i=document.getElementsByTagName("script")[0];e.src="https://www.youtube.com/iframe_api",e.id=t,i.parentNode.insertBefore(e,i)}},createLightbox:function(){var e,i=new a,s=(e=0,function(t,i){clearTimeout(e),e=setTimeout(t,i)});jQuery(window).on("resize",(function(){s((function(){i.afterResize()}),200)})),function(){var e=jQuery,s=function(){function t(){this.fadeDuration=500,this.fitImagesInViewport=!0,this.resizeDuration=700,this.positionFromTop=50,this.showImageNumberLabel=!0,this.alwaysShowNavOnTouchDevices=!1,this.wrapAround=!1}return t.prototype.albumLabel=function(t,e){return t+" / "+e},t}(),n=function(){function s(t){this.options=t,this.album=[],this.currentImageIndex=void 0,this.init()}return s.prototype.init=function(){this.enable(),this.build()},s.prototype.enable=function(){var t=this;e("body").on("click","a[data-sby-lightbox]",(function(i){return t.start(e(i.currentTarget)),!1}))},s.prototype.build=function(){var t=this;e(""+i.template()).appendTo(e("body")),this.$lightbox=e("#sby_lightbox"),this.$overlay=e("#sby_lightboxOverlay"),this.$outerContainer=this.$lightbox.find(".sby_lb-outerContainer"),this.$container=this.$lightbox.find(".sby_lb-container"),this.containerTopPadding=parseInt(this.$container.css("padding-top"),10),this.containerRightPadding=parseInt(this.$container.css("padding-right"),10),this.containerBottomPadding=parseInt(this.$container.css("padding-bottom"),10),this.containerLeftPadding=parseInt(this.$container.css("padding-left"),10),this.$overlay.hide().on("click",(function(){return t.end(),!1})),jQuery(document).on("click",(function(t,e,s){jQuery(t.target).closest(".sby_lb-outerContainer").length||jQuery(t.target).closest(".sby_lb-dataContainer").length||(T(),i.pausePlayer(),jQuery("#sby_lightboxOverlay, #sby_lightbox").fadeOut())})),this.$lightbox.hide(),jQuery("#sby_lightboxOverlay").on("click",(function(s){return i.pausePlayer(),"sby_lightbox"===e(s.target).attr("id")&&t.end(),!1})),this.$lightbox.find(".sby_lb-prev").on("click",(function(){return i.pausePlayer(),t.changeImage(0===t.currentImageIndex?t.album.length-1:t.currentImageIndex-1),!1})),this.$lightbox.find(".sby_lb-container").on("swiperight",(function(){return i.pausePlayer(),t.changeImage(0===t.currentImageIndex?t.album.length-1:t.currentImageIndex-1),!1})),this.$lightbox.find(".sby_lb-next").on("click",(function(){return i.pausePlayer(),t.changeImage(t.currentImageIndex===t.album.length-1?0:t.currentImageIndex+1),!1})),this.$lightbox.find(".sby_lb-container").on("swipeleft",(function(){return i.pausePlayer(),t.changeImage(t.currentImageIndex===t.album.length-1?0:t.currentImageIndex+1),!1})),this.$lightbox.find(".sby_lb-loader, .sby_lb-close").on("click",(function(){return T(),i.pausePlayer(),t.end(),!1}))},s.prototype.start=function(t){function s(t){n.album.push(i.getData(t))}var n=this,a=e(window);a.on("resize",e.proxy(this.sizeOverlay,this)),e("select, object, embed").css({visibility:"hidden"}),this.sizeOverlay(),this.album=[];var o,r=0,l=t.attr("data-sby-lightbox");if(l){o=e(t.prop("tagName")+'[data-sby-lightbox="'+l+'"]');for(var d=0;d<o.length;d=++d)s(e(o[d])),o[d]===t[0]&&(r=d)}else if("lightbox"===t.attr("rel"))s(t);else{o=e(t.prop("tagName")+'[rel="'+t.attr("rel")+'"]');for(var h=0;h<o.length;h=++h)s(e(o[h])),o[h]===t[0]&&(r=h)}var c=a.scrollTop()+this.options.positionFromTop-50,u=a.scrollLeft();this.$lightbox.css({top:c+"px",left:u+"px"}).fadeIn(this.options.fadeDuration),this.changeImage(r)},s.prototype.changeImage=function(t){var i=this;this.disableKeyboardNav();var s=this.$lightbox.find(".sby_lb-image");this.$overlay.fadeIn(this.options.fadeDuration),e(".sby_lb-loader").fadeIn("slow"),this.$lightbox.find(".sby_lb-image, .sby_lb-nav, .sby_lb-prev, .sby_lb-next, .sby_lb-dataContainer, .sby_lb-numbers, .sby_lb-caption").hide(),this.$outerContainer.addClass("animating");var n=new Image;n.onload=function(){var a,o,r,l,d,h;s.attr("src",i.album[t].link),e(n),s.width(n.width),s.height(n.height),i.options.fitImagesInViewport&&(h=e(window).width(),d=e(window).height(),l=h-i.containerLeftPadding-i.containerRightPadding-20-100,r=d-i.containerTopPadding-i.containerBottomPadding-150,(n.width>l||n.height>r)&&(n.width/l>n.height/r?(o=l,a=parseInt(n.height/(n.width/o),10),s.width(o),s.height(a)):(a=r,o=parseInt(n.width/(n.height/a),10),s.width(o),s.height(a)))),i.sizeContainer(s.width(),s.height())},n.src=this.album[t].link,this.currentImageIndex=t},s.prototype.sizeOverlay=function(){this.$overlay.width(e(window).width()).height(e(document).height())},s.prototype.sizeContainer=function(t,e){function i(){s.$lightbox.find(".sby_lb-dataContainer").width(o),s.$lightbox.find(".sby_lb-prevLink").height(r),s.$lightbox.find(".sby_lb-nextLink").height(r),s.showImage()}var s=this,n=this.$outerContainer.outerWidth(),a=this.$outerContainer.outerHeight(),o=t+this.containerLeftPadding+this.containerRightPadding,r=e+this.containerTopPadding+this.containerBottomPadding;n!==o||a!==r?this.$outerContainer.animate({width:o,height:r},this.options.resizeDuration,"swing",(function(){i()})):i()},s.prototype.showImage=function(){this.$lightbox.find(".sby_lb-loader").hide(),this.$lightbox.find(".sby_lb-image").fadeIn("slow"),this.updateNav(),this.updateDetails(),this.preloadNeighboringImages(),this.enableKeyboardNav()},s.prototype.updateNav=function(){var t=!1;try{document.createEvent("TouchEvent"),t=!!this.options.alwaysShowNavOnTouchDevices}catch(t){}this.$lightbox.find(".sby_lb-nav").show(),this.album.length>1&&(this.options.wrapAround?(t&&this.$lightbox.find(".sby_lb-prev, .sby_lb-next").css("opacity","1"),this.$lightbox.find(".sby_lb-prev, .sby_lb-next").show()):(this.currentImageIndex>0&&(this.$lightbox.find(".sby_lb-prev").show(),t&&this.$lightbox.find(".sby_lb-prev").css("opacity","1")),this.currentImageIndex<this.album.length-1&&(this.$lightbox.find(".sby_lb-next").show(),t&&this.$lightbox.find(".sby_lb-next").css("opacity","1"))))},s.prototype.updateDetails=function(){var e=this;jQuery("iframe.sby_lb-player-loaded").length&&(jQuery(".sby_lb-player-placeholder").replaceWith(jQuery("iframe.sby_lb-player-loaded")),jQuery("iframe.sby_lb-player-loaded").removeClass("sby_lb-player-loaded").show());var s=window.sby.feeds[this.album[this.currentImageIndex].feedIndex];if(i.beforePlayerSetup(this.$lightbox,this.album[this.currentImageIndex],this.currentImageIndex,this.album,s),y()){if(jQuery("#sby_lightbox").removeClass("sby_video_lightbox"),s.settings.consentGiven&&this.album[this.currentImageIndex].video.length){jQuery(".sby_gdpr_notice").remove();var n="sby_lb-player";jQuery("#sby_lightbox").addClass("sby_video_lightbox"),window.sbyOptions.isPro||jQuery("#sby_lightbox").addClass("sby_lightbox_free");var a=this.album[this.currentImageIndex].video,o=sbyOptions.autoplay;if(void 0===window.sbyLightboxPlayer){var r={host:window.location.protocol+s.embedURL,videoId:a,playerVars:{modestbranding:1,rel:0,autoplay:o},events:{onStateChange:function(e){var i=e.target.getVideoData().video_id;s.afterStateChange(n,i,e,t("#"+n).closest(".sby_video_thumbnail_wrap"))}}};s.maybeAddCTA(n),window.sbyLightboxPlayer=new window.YT.Player(n,r)}else window.sbyLightboxPlayer.loadVideoById(a);this.$outerContainer.removeClass("animating"),this.$lightbox.find(".sby_lb-dataContainer").fadeIn(this.options.resizeDuration,(function(){return e.sizeOverlay()})),setTimeout((function(){t("#sby_lightbox .sby_lb-player").css({height:t("#sby_lightbox .sby_lb-outerContainer").height()+"px",width:t("#sby_lightbox .sby_lb-outerContainer").width()+"px",top:0})}),1),this.$lightbox.find("iframe").length&&this.$lightbox.find("iframe").attr("title",this.album[this.currentImageIndex].videoTitle)}else{var l=t(".sby_item[data-video-id="+this.album[this.currentImageIndex].video+"]").find(".sby_video_thumbnail").attr("data-full-res");t(".sby_lb-image").attr("src",l),this.$outerContainer.removeClass("animating"),this.$lightbox.find(".sby_lb-dataContainer").fadeIn(this.options.resizeDuration,(function(){return e.sizeOverlay()})),jQuery(".sby_lb-container").prepend('<a href="https://www.youtube.com/watch?v='+this.album[this.currentImageIndex].video+'" target="_blank" rel="noopener noreferrer" class="sby_gdpr_notice"><svg style="color: rgba(255,255,255,1)" class="svg-inline--fa fa-play fa-w-14 sby_playbtn" aria-label="Play" aria-hidden="true" data-fa-processed="" data-prefix="fa" data-icon="play" role="presentation" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z"></path></svg></a>')}i.afterPlayerSetup(this.$lightbox,this.album[this.currentImageIndex],this.currentImageIndex,this.album),this.album.length>1&&this.options.showImageNumberLabel?this.$lightbox.find(".sby_lb-number").text(this.options.albumLabel(this.currentImageIndex+1,this.album.length)).fadeIn("fast"):this.$lightbox.find(".sby_lb-number").hide()}},s.prototype.preloadNeighboringImages=function(){this.album.length>this.currentImageIndex+1&&((new Image).src=this.album[this.currentImageIndex+1].link),this.currentImageIndex>0&&((new Image).src=this.album[this.currentImageIndex-1].link)},s.prototype.enableKeyboardNav=function(){e(document).on("keyup.keyboard",e.proxy(this.keyboardAction,this))},s.prototype.disableKeyboardNav=function(){e(document).off(".keyboard")},s.prototype.keyboardAction=function(e){var s=event.keyCode,n=String.fromCharCode(s).toLowerCase();27===s||n.match(/x|o|c/)?(y()&&t("#sby_lightbox video.sby_video")[0].pause(),t("#sby_lightbox iframe").attr("src",""),this.end()):"p"===n||37===s?(0!==this.currentImageIndex?this.changeImage(this.currentImageIndex-1):this.options.wrapAround&&this.album.length>1&&this.changeImage(this.album.length-1),y()&&t("#sby_lightbox video.sby_video")[0].pause(),t("#sby_lightbox iframe").attr("src","")):"n"!==n&&39!==s||(this.currentImageIndex!==this.album.length-1?this.changeImage(this.currentImageIndex+1):this.options.wrapAround&&this.album.length>1&&this.changeImage(0),i.pausePlayer())},s.prototype.end=function(){this.disableKeyboardNav(),e(window).off("resize",this.sizeOverlay),this.$lightbox.fadeOut(this.options.fadeDuration),this.$overlay.fadeOut(this.options.fadeDuration),e("select, object, embed").css({visibility:"visible"})},s}();e((function(){var e=new s;new n(e),t(".sby_lightbox_action a").off().on("click",(function(){t(this).parent().find(".sby_lightbox_tooltip").toggle()}))}))}.call(this),window.sbyOptions.lightboxCreated=!0},createFeeds:function(e){sbyOptions.isAdmin||void 0!==sbyOptions.lightboxCreated||window.sby.createLightbox(),e.whenFeedsCreated(t(".sb_youtube").each((function(e){t(this).attr("data-sby-index",e+1),t(this).find(".sby_player").replaceWith('<div id="sby_player'+e+'"></div>');var i=t(this),n=void 0!==i.attr("data-sby-flags")?i.attr("data-sby-flags").split(","):[],a=void 0!==i.attr("data-options")?JSON.parse(i.attr("data-options")):{};n.indexOf("testAjax")>-1&&(window.sby.triggeredTest=!0,$({action:"sby_on_ajax_test_trigger"},(function(t){console.log("did test")})));var o={cols:i.attr("data-cols"),colsmobile:"same"!==i.attr("data-colsmobile")?i.attr("data-colsmobile"):i.attr("data-cols"),num:i.attr("data-num"),imgRes:i.attr("data-res"),feedID:i.attr("data-feedid"),postID:void 0!==i.attr("data-postid")?i.attr("data-postid"):"unknown",shortCodeAtts:i.attr("data-shortcode-atts"),resizingEnabled:-1===n.indexOf("resizeDisable"),imageLoadEnabled:-1===n.indexOf("imageLoadDisable"),debugEnabled:n.indexOf("debug")>-1,favorLocal:n.indexOf("favorLocal")>-1,ajaxPostLoad:n.indexOf("ajaxPostLoad")>-1,checkWPPosts:n.indexOf("checkWPPosts")>-1,singleCheckPosts:n.indexOf("singleCheckPosts")>-1,narrowPlayer:n.indexOf("narrowPlayer")>-1,gdpr:n.indexOf("gdpr")>-1,consentGiven:-1===n.indexOf("gdpr"),noCDN:n.indexOf("disablecdn")>-1,allowCookies:n.indexOf("allowcookies")>-1,lightboxEnabled:void 0!==i.attr("data-sby-supports-lightbox"),locator:n.indexOf("locator")>-1,autoMinRes:1,general:a,subscribeBarEnabled:!0};window.sby.feeds[e]=function(t,e,i){return new s(t,e,i)}(this,e,o),void 0!==window.sbyAPIReady&&(window.sby.feeds[e].playerAPIReady=!0),window.sby.feeds[e].setResizedImages(),window.sby.feeds[e].init();var r=jQuery.Event("sbyafterfeedcreate");r.feed=window.sby.feeds[e],jQuery(window).trigger(r)})))},afterFeedsCreated:function(){if(t(".sb_youtube_header").each((function(){var e=t(this);e.find(".sby_header_link").on("mouseenter mouseleave",(function(t){switch(t.type){case"mouseenter":e.find(".sby_header_img_hover").addClass("sby_fade_in");break;case"mouseleave":e.find(".sby_header_img_hover").removeClass("sby_fade_in")}}))})),window.sbyAPIReady){var e=jQuery.Event("sbyfeedandytready");jQuery(window).trigger(e)}},encodeHTML:function(t){return void 0===t?"":t.replace(/(>)/g,">").replace(/(<)/g,"<").replace(/(<br\/>)/g,"<br>").replace(/(<br>)/g,"<br>")},urlDetect:function(t){return t.match(/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/g)},ctaDetect:function(t){var e=t.match(/{Link:(.*)}/g),i=!1;if(null!==e){var s=window.sby.urlDetect(e[0]);if(null!==s){var n=s[0].trim();i={callback:"link",url:n,text:e[0].replace("{Link:","").replace("}","").replace(n,"").replace(" "," ").trim()}}else console.log("CTA found but no URL")}return i},shuffle:function(t){for(var e,i,s=t.length;0!==s;)i=Math.floor(Math.random()*s),e=t[s-=1],t[s]=t[i],t[i]=e;return t}},i.prototype={init:function(){var e=this;e.settings.consentGiven=e.checkConsent(),e.settings.consentGiven&&window.sby.maybeAddYTAPI(),e.settings.noCDN&&!e.settings.consentGiven&&(t(this.el).find(".sb_youtube_header").length?t(this.el).find(".sb_youtube_header").addClass("sby_no_consent"):t(this.el).prev(".sb_youtube_header").length&&t(this.el).prev(".sb_youtube_header").addClass("sby_no_consent")),t(this.el).find("#sby_mod_error").length&&t(this.el).prepend(t(this.el).find("#sby_mod_error")),this.settings.ajaxPostLoad?this.getNewPostSet():this.afterInitialImagesLoaded();var i,s=(i=0,function(t,e){clearTimeout(i),i=setTimeout(t,e)});jQuery(window).on("resize",(function(){s((function(){e.afterResize()}),1)}))},initLayout:function(){this.initGalleryLayout()},initGalleryLayout:function(){var e=t(this.el),i=this;e.hasClass("sby_layout_gallery")&&e.find(".sby_player_outer_wrap").length&&(this.maybeRaiseSingleImageResolution(e.find(".sby_player_outer_wrap"),0,!0),e.find(".sby_player_outer_wrap .sby_video_thumbnail").off().on("click",(function(e){!(!i.settings.lightboxEnabled||i.settings.lightboxEnabled&&i.settings.noCDN)||!i.settings.noCDN&&i.settings.consentGiven?(e.preventDefault(),i.onThumbnailClick(t(this),!0)):t(this).closest(".sby_item").length&&void 0!==t(this).closest(".sby_item").attr("data-video-id")&&t(this).attr("href","https://www.youtube.com/watch?v="+t(this).closest(".sby_item").attr("data-video-id"))})),e.find(".sby_item").first().addClass("sby_current"),e.on("mouseenter",(function(){i.canCreatePlayer()&&(e.find(".sby_player_outer_wrap iframe").length?void 0===i.player&&i.playerEagerLoaded()&&i.createPlayer("sby_player"+i.index):(e.addClass("sby_player_added").find(".sby_player_outer_wrap").addClass("sby_player_loading"),e.find(".sby_player_outer_wrap .sby_video_thumbnail").find(".sby_loader").show().removeClass("sby_hidden"),i.createPlayer("sby_player"+i.index)))})),window.sbySemiEagerLoading&&i.createPlayer("sby_player"+i.index),i.settings.noCDN&&e.find(".sby_player_outer_wrap").append('<div class="sby_play_btn">\n <span class="sby_play_btn_bg"></span>\n <svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="youtube" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512" class="svg-inline--fa fa-youtube fa-w-18"><path fill="currentColor" d="M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z" class=""></path></svg> </div>'))},createPlayer:function(e,i,s,n){var a=t(this.el),o=this;if(i=void 0!==i?i:this.getVideoID(a.find(".sby_item").first()),s=void 0!==s?s:0,void 0===sbyOptions.isCustomizer||!sbyOptions.isCustomizer){if(void 0===n&&(n={host:window.location.protocol+o.embedURL,videoId:i,playerVars:{modestbranding:1,rel:0,autoplay:s}}),void 0===n.events&&(n.events={onReady:function(){a.find(".sby_player_outer_wrap").removeClass("sby_player_loading").find(".sby_video_thumbnail").css("z-index",-1).find(".sby_loader").hide().addClass("sby_hidden"),t("#"+e).length&&t("#"+e).closest(".sby_video_thumbnail_wrap").find(".sby_video_thumbnail").length&&t("#"+e).closest(".sby_video_thumbnail_wrap").find(".sby_video_thumbnail").fadeTo(0,"slow",(function(){t(this).css("z-index",-1),t(this).find(".sby_loader").hide().addClass("sby_hidden"),t(this).closest(".sby_item").removeClass("sby_player_loading")}));var i=jQuery.Event("sbyafterplayerready");i.feed=o,i.player=this,jQuery(window).trigger(i)},onStateChange:function(s){a.find(".sby_player_outer_wrap").removeClass("sby_player_loading").find(".sby_video_thumbnail").css("z-index",-1).find(".sby_loader").hide().addClass("sby_hidden"),o.afterStateChange(e,i,s,t("#"+e).closest(".sby_video_thumbnail_wrap")),1===s.data&&void 0!==o.players&&a.find(".sby_item").each((function(){var e=o.getVideoID(t(this));t(this).find("iframe").length&&e!==i&&void 0!==o.players[e]&&"function"==typeof o.players[e].pauseVideo&&o.players[e].pauseVideo()}))}}),window.sbyEagerLoading)var r=YT.get(e);else r=new window.YT.Player(e,n);this.maybeAddCTA(e),a.hasClass("sby_layout_list")&&void 0===this.players[i]?this.players[i]=r:void 0===this.player&&(this.player=r);var l=jQuery.Event("sbyafterplayercreated");return l.feed=this,jQuery(window).trigger(l),a.find(".sby_player_outer_wrap .sby_play_btn").remove(),r}},afterStateChange:function(t,e,i,s){},afterInitialImagesLoaded:function(){this.initLayout(),this.loadMoreButtonInit(),this.hideExtraItemsForWidth(),this.beforeNewImagesRevealed(),this.revealNewImages(),this.afterNewImagesRevealed(),this.afterFeedSet(),this.sizePlayer(),this.sizeItems(),this.settings.consentGiven?this.applyFullFeatures():this.removeFeatures()},afterResize:function(){this.setImageHeight(),this.setImageResolution(),this.maybeRaiseImageResolution(),this.setImageSizeClass()},afterLoadMoreClicked:function(t){t.find(".sby_loader").removeClass("sby_hidden"),t.find(".sby_btn_text").addClass("sby_hidden"),t.closest(".sb_youtube").find(".sby_num_diff_hide").addClass("sby_transition").removeClass("sby_num_diff_hide")},afterNewImagesLoaded:function(){var e=t(this.el),i=this;this.beforeNewImagesRevealed(),this.revealNewImages(),this.afterNewImagesRevealed(),this.sizePlayer(),this.sizeItems(),setTimeout((function(){e.find(".sby_loader").addClass("sby_hidden"),e.find(".sby_btn_text").removeClass("sby_hidden"),i.maybeRaiseImageResolution()}),1),this.settings.consentGiven?this.applyFullFeatures():this.removeFeatures()},beforeNewImagesRevealed:function(){this.setImageHeight(),this.maybeRaiseImageResolution(!0),this.setImageSizeClass()},afterFeedSet:function(){},sizePlayer:function(){var e=t(this.el),i=this;if(e.hasClass("sby_layout_gallery")){$playerThumbnail=e.find(".sby_player_item").find(".sby_player_video_thumbnail");var s=$playerThumbnail.innerWidth(),n=Math.floor(9*s/16);i.settings.narrowPlayer&&(n=Math.floor(3*s/4)),$playerThumbnail.css("height",n+"px").css("overflow","hidden")}else e.hasClass("sby_layout_list")&&e.find(".sby_item").each((function(){$playerThumbnail=t(this).find(".sby_item_video_thumbnail");var e=$playerThumbnail.innerWidth(),s=Math.floor(9*e/16);i.settings.narrowPlayer&&(s=Math.floor(3*e/4)),$playerThumbnail.css("height",s+"px").css("overflow","hidden")}))},sizeItems:function(){var e=t(this.el);e.hasClass("sby_layout_list")||e.find(".sby_item").find(".sby_item_video_thumbnail").each((function(){if(t(this).hasClass("sby_imgLiquid_ready")){var e=t(this).innerWidth(),i=Math.floor(9*e/16);t(this).css("height",i+"px").css("overflow","hidden")}}))},revealNewImages:function(){var e=t(this.el),i=this;this.applyImageLiquid(),"function"==typeof sbyCustomJS&&setTimeout((function(){sbyCustomJS()}),100),e.find(".sby-screenreader").find("img").remove(),e.find(".sby_item.sby_new").each((function(e){var s=jQuery(this);videoID=s.attr("data-video-id"),window.sbyEagerLoading&&i.canCreatePlayer()&&t("#sby_player_"+videoID).length&&(player=new YT.Player("sby_player_"+videoID,{height:"100",width:"100",videoId:videoID,playerVars:{modestbranding:1,rel:0,autoplay:0},events:{onStateChange:function(t){t.target.getVideoData().video_id,1===t.data&&s.find(".sby_item").each((function(){var e=jQuery(this).attr("data-video-id");jQuery(this).find("iframe").length&&jQuery(t.target.a).attr("id")!==jQuery(this).find("iframe").attr("id")&&YT.get("sby_player_"+e).pauseVideo()}))}}})),s.find(".sby_video_thumbnail").on("mouseenter",(function(){i.onThumbnailEnter(t(this),!1)})),s.find(".sby_player_wrap").on("mouseleave",(function(){i.onThumbnailLeave(t(this),!1)})),s.find(".sby_video_thumbnail").on("click",(function(e){!(!i.settings.lightboxEnabled||i.settings.lightboxEnabled&&i.settings.noCDN)||!i.settings.noCDN&&i.settings.consentGiven?(e.preventDefault(),i.onThumbnailClick(t(this),!1)):t(this).closest(".sby_item").length&&void 0!==t(this).closest(".sby_item").attr("data-video-id")&&t(this).attr("href","https://www.youtube.com/watch?v="+t(this).closest(".sby_item").attr("data-video-id"))})),i.settings.lightboxEnabled&&(s.find(".sby_video_thumbnail").attr("data-sby-lightbox",i.index),"undefined"!=typeof sbyOptions&&void 0!==sbyOptions.lightboxPlaceholder&&(i.settings.narrowPlayer?s.find(".sby_video_thumbnail").attr("href",sbyOptions.lightboxPlaceholderNarrow):s.find(".sby_video_thumbnail").attr("href",sbyOptions.lightboxPlaceholder))),i.afterItemRevealed(s),""===s.find(".sby_info_item").text().trim()&&s.find(".sby_info_item").addClass("sby_no_space")})),e.find(".sby_player_item").each((function(t){var e=jQuery(this);i.afterItemRevealed(e)})),setTimeout((function(){e.find(".sby_item.sby_new").removeClass("sby_new"),e.find(".sby_transition").length,e.find(".sby_transition").each((function(t){var e=jQuery(this);setTimeout((function(){e.removeClass("sby_transition")}),1)}))}),1)},afterItemRevealed:function(){},afterNewImagesRevealed:function(){this.listenForVisibilityChange(),this.sendNeedsResizingToServer(),this.sendCheckWPPostsToServer(),this.settings.imageLoadEnabled||t(".sby_no_resraise").removeClass("sby_no_resraise");var e=t.Event("sbyafterimagesloaded");e.el=t(this.el),t(window).trigger(e)},setResizedImages:function(){t(this.el).find(".sby_resized_image_data").length&&void 0!==t(this.el).find(".sby_resized_image_data").attr("data-resized")&&0===t(this.el).find(".sby_resized_image_data").attr("data-resized").indexOf('{"')&&(this.resizedImages=JSON.parse(t(this.el).find(".sby_resized_image_data").attr("data-resized")),t(this.el).find(".sby_resized_image_data").remove())},sendNeedsResizingToServer:function(){var e=this;if(e.needsResizing.length>0&&e.settings.resizingEnabled){var i=t(this.el).find(".sby_item").length;$({action:"sby_resized_images_submit",needs_resizing:e.needsResizing,offset:i,feed_id:e.settings.feedID,location:e.locationGuess(),post_id:e.settings.postID,atts:e.settings.shortCodeAtts},(function(t){if(0===t.trim().indexOf("{")){var i=JSON.parse(t);e.settings.debugEnabled&&console.log(i)}}))}},sendCheckWPPostsToServer:function(){var e=this;if(e.settings.checkWPPosts||e.settings.singleCheckPosts){var i=void 0!==e.settings.feedID?e.settings.feedID:"sby_single",s=e.mostRecentlyLoadedPosts;e.mostRecentlyLoadedPosts=[],$({action:"sby_check_wp_submit",feed_id:i,atts:e.settings.shortCodeAtts,location:e.locationGuess(),post_id:e.settings.postID,offset:t(this.el).hasClass("sby_layout_carousel")?Math.floor(t(this.el).find(".sby_item").length/2-1):t(this.el).find(".sby_item").length,posts:s},(function(t){if(0===t.trim().indexOf("{")){var i=JSON.parse(t);e.settings.debugEnabled&&console.log(i),e.afterSendCheckWPPostsToServer(i)}}))}},afterSendCheckWPPostsToServer:function(t){},loadMoreButtonInit:function(){var e=t(this.el),i=this;e.find(".sby_footer .sby_load_btn").off().on("click",(function(){i.afterLoadMoreClicked(jQuery(this)),i.getNewPostSet()}))},getNewPostSet:function(){var e=t(this.el),i=this;$({action:"sby_load_more_clicked",offset:e.find(".sby_item").length,feed_id:i.settings.feedID,atts:i.settings.shortCodeAtts,location:i.locationGuess(),post_id:i.settings.postID,current_resolution:i.imageResolution},(function(s){if(0===s.trim().indexOf("{")){var n=JSON.parse(s),a=void 0!==n.feedStatus.checkWPPosts&&n.feedStatus.checkWPPosts;i.settings.debugEnabled&&console.log(n),i.settings.checkWPPosts=!!a,i.appendNewPosts(n.html),i.addResizedImages(n.resizedImages),i.settings.ajaxPostLoad?(i.settings.ajaxPostLoad=!1,i.afterInitialImagesLoaded()):i.afterNewImagesLoaded(),n.feedStatus.shouldPaginate?i.outOfPages=!1:(i.outOfPages=!0,e.find(".sby_load_btn").hide()),t(".sby_no_js").removeClass("sby_no_js"),P()}}))},appendNewPosts:function(e){var i=t(this.el);i.find(".sby_items_wrap .sby_item").length?i.find(".sby_items_wrap .sby_item").last().after(e):i.find(".sby_items_wrap").append(e)},addResizedImages:function(t){for(var e in t)this.resizedImages[e]=t[e]},setImageHeight:function(){},maybeRaiseSingleImageResolution:function(e,i,s){var n=this,a=n.getImageUrls(e),o=e.find(".sby_video_thumbnail > img").attr("src"),r=150;if(s=void 0!==s&&s,!(e.hasClass("sby_no_resraise")||!n.settings.consentGiven&&n.settings.noCDN)){t.each(a,(function(t,e){e===o&&(r=parseInt(t),s=!1)}));var l=640;switch(n.settings.imgRes){case"thumb":l=120;break;case"medium":l=320;break;case"large":l=480;break;case"full":l=640;break;default:var d=Math.max(n.settings.autoMinRes,e.find(".sby_video_thumbnail").innerWidth());switch(n.getBestResolutionForAuto(d,1,t(this.el).find("sby_item").first())){case 480:l=480;break;case 320:l=320;break;case 120:l=120}}if(l>r||o===n.placeholderURL||s){if(n.settings.debugEnabled){var h=o===n.placeholderURL?"was placeholder":"too small";console.log("rais res for "+o,h)}var c=a[l];e.find(".sby_video_thumbnail > img").attr("src",c),e.find(".sby_video_thumbnail").hasClass("sby_imgLiquid_ready")&&e.find(".sby_video_thumbnail").css("background-image",'url("'+c+'")')}e.find("img").on("error",(function(){if(t(this).hasClass("sby_img_error"))console.log("unfixed error "+t(this).attr("src"));else{if(t(this).addClass("sby_img_error"),t(this).attr("src").indexOf("i.ytimg.com")>-1){n.settings.favorLocal=!0;var e=n.getImageUrls(t(this).closest(".sby_item"));void 0!==e[640]&&(t(this).attr("src",e[640]),t(this).closest(".sby_video_thumbnail").css("background-image","url("+e[640]+")"))}else void 0!==t(this).closest(".sby_video_thumbnail").attr("data-full-res")?(t(this).attr("src",t(this).closest(".sby_video_thumbnail").attr("data-full-res")),t(this).closest(".sby_video_thumbnail").css("background-image","url("+t(this).closest(".sby_video_thumbnail").attr("data-full-res")+")")):"undefined"!==t(this).closest(".sby_video_thumbnail").attr("href")&&(t(this).attr("src",t(this).closest(".sby_video_thumbnail").attr("href")+"media?size=l"),t(this).closest(".sby_video_thumbnail").css("background-image","url("+t(this).closest(".sby_video_thumbnail").attr("href")+"media?size=l)"));setTimeout((function(){n.afterResize()}),1)}}))}},maybeRaiseImageResolution:function(e){var i=this,s=void 0!==e&&!0===e?".sby_item.sby_new":".sby_item",n=!i.isInitialized;t(i.el).find(s).each((function(e){!t(this).hasClass("sby_num_diff_hide")&&t(this).find(".sby_video_thumbnail").length&&void 0!==t(this).find(".sby_video_thumbnail").attr("data-img-src-set")&&i.maybeRaiseSingleImageResolution(t(this),e,n)})),i.isInitialized=!0},getBestResolutionForAuto:function(e,i,s){(isNaN(i)||i<1)&&(i=1);var n=e*i,a=10*Math.ceil(n/10),o=[120,320,480,640];if(s.hasClass("sby_highlighted")&&(a*=2),-1===o.indexOf(parseInt(a))){var r=!1;t.each(o,(function(t,e){e>parseInt(a)&&!r&&(a=e,r=!0)}))}return a},hideExtraItemsForWidth:function(){if("carousel"!==this.layout){var e=t(this.el),i=void 0!==e.attr("data-num")&&""!==e.attr("data-num")?parseInt(e.attr("data-num")):1,s=void 0!==e.attr("data-nummobile")&&""!==e.attr("data-nummobile")?parseInt(e.attr("data-nummobile")):i;e.hasClass(".sby_layout_carousel")||(t(window).width()<480?s<e.find(".sby_item").length&&e.find(".sby_item").slice(s-e.find(".sby_item").length).addClass("sby_num_diff_hide"):i<e.find(".sby_item").length&&e.find(".sby_item").slice(i-e.find(".sby_item").length).addClass("sby_num_diff_hide"))}},setImageSizeClass:function(){var e=t(this.el);e.removeClass("sby_small sby_medium");var i=e.innerWidth(),s=parseInt(e.find(".sby_items_wrap").outerWidth()-e.find(".sby_items_wrap").width())/2,n=this.getColumnCount(),a=(i-s*(n+2))/n;a>140&&a<240?e.addClass("sby_medium"):a<=140&&e.addClass("sby_small")},setMinImageWidth:function(){t(this.el).find(".sby_item .sby_video_thumbnail").first().length?this.minImageWidth=t(this.el).find(".sby_item .sby_video_thumbnail").first().innerWidth():this.minImageWidth=150},setImageResolution:function(){if("auto"===this.settings.imgRes)this.imageResolution="auto";else switch(this.settings.imgRes){case"thumb":this.imageResolution=150;break;case"medium":this.imageResolution=320;break;default:this.imageResolution=640}},getImageUrls:function(t){var e=JSON.parse(t.find(".sby_video_thumbnail").attr("data-img-src-set").replace(/\\\//g,"/")),i=t.attr("id").replace("sby_","").replace("player_","");if(void 0!==this.resizedImages[i]&&"video"!==this.resizedImages[i]&&"pending"!==this.resizedImages[i]&&"error"!==this.resizedImages[i].id&&"video"!==this.resizedImages[i].id&&"pending"!==this.resizedImages[i].id){if(void 0!==this.resizedImages[i].sizes){var s=[];void 0!==this.resizedImages[i].sizes.full&&(s.push(640),e[640]=sbyOptions.resized_url+this.resizedImages[i].id+"full.jpg",t.find(".sby_link_area").attr("href",sbyOptions.resized_url+this.resizedImages[i].id+"full.jpg"),t.find(".sby_video_thumbnail").attr("data-full-res",sbyOptions.resized_url+this.resizedImages[i].id+"full.jpg")),void 0!==this.resizedImages[i].sizes.low&&(s.push(320),e[320]=sbyOptions.resized_url+this.resizedImages[i].id+"low.jpg",this.settings.favorLocal&&void 0===this.resizedImages[i].sizes.full&&(t.find(".sby_link_area").attr("href",sbyOptions.resized_url+this.resizedImages[i].id+"low.jpg"),t.find(".sby_video_thumbnail").attr("data-full-res",sbyOptions.resized_url+this.resizedImages[i].id+"low.jpg"))),void 0!==this.resizedImages[i].sizes.thumb&&(s.push(150),e[150]=sbyOptions.resized_url+this.resizedImages[i].id+"thumb.jpg"),this.settings.favorLocal&&(-1===s.indexOf(640)&&s.indexOf(320)>-1&&(e[640]=sbyOptions.resized_url+this.resizedImages[i].id+"low.jpg"),-1===s.indexOf(320)&&(s.indexOf(640)>-1?e[320]=sbyOptions.resized_url+this.resizedImages[i].id+"full.jpg":s.indexOf(150)>-1&&(e[320]=sbyOptions.resized_url+this.resizedImages[i].id+"thumb.jpg")),-1===s.indexOf(150)&&(s.indexOf(320)>-1?e[150]=sbyOptions.resized_url+this.resizedImages[i].id+"low.jpg":s.indexOf(640)>-1&&(e[150]=sbyOptions.resized_url+this.resizedImages[i].id+"full.jpg")))}}else(void 0===this.resizedImages[i]||void 0!==this.resizedImages[i].id&&"pending"!==this.resizedImages[i].id&&"error"!==this.resizedImages[i].id)&&this.addToNeedsResizing(i);return e},getVideoID:function(e){if(e.hasClass("sby_item")||e.hasClass("sby_player_item")){if(void 0!==e.find(".sby_video_thumbnail").attr("data-video-id"))return e.find(".sby_video_thumbnail").attr("data-video-id")}else if(e.closest("sby_item").length||e.closest("sby_player_item").length){var i=e.closest("sby_item").length?e.closest("sby_item"):e.closest("sby_player_item");if(void 0!==i.find(".sby_video_thumbnail").attr("data-video-id"))return i.find(".sby_video_thumbnail").attr("data-video-id")}else{if(e.hasClass("sb_youtube"))return e.find(".sby_item").first().find(".sby_video_thumbnail").attr("data-video-id");if(t(this.el).find(".sby_video_thumbnail").first().length&&void 0!==t(this.el).find(".sby_video_thumbnail").first().attr("data-video-id"))return t(this.el).find(".sby_video_thumbnail").first().attr("data-video-id")}return""},getAvatarUrl:function(t,e){if(""===t)return"";var i=this.settings.general.avatars;return"local"===(e=void 0!==e?e:"local")?void 0!==i["LCL"+t]&&1===parseInt(i["LCL"+t])?sbyOptions.resized_url+t+".jpg":void 0!==i[t]?i[t]:"":void 0!==i[t]?i[t]:void 0!==i["LCL"+t]&&1===parseInt(i["LCL"+t])?sbyOptions.resized_url+t+".jpg":""},addToNeedsResizing:function(t){-1===this.needsResizing.indexOf(t)&&this.needsResizing.push(t)},applyImageLiquid:function(){var e=t(this.el);(function(){var t,e,i,s,n=n||{VER:"0.9.944"};n.bgs_Available=!1,n.bgs_CheckRunned=!1,(t=jQuery).fn.extend({sby_imgLiquid:function(e){this.defaults={fill:!0,verticalAlign:"center",horizontalAlign:"center",useBackgroundSize:!0,useDataHtmlAttr:!0,responsive:!0,delay:0,fadeInTime:0,removeBoxBackground:!0,hardPixels:!0,responsiveCheckTime:500,timecheckvisibility:500,onStart:null,onFinish:null,onItemStart:null,onItemFinish:null,onItemError:null},function(){if(!n.bgs_CheckRunned){n.bgs_CheckRunned=!0;var e=t('<span style="background-size:cover" />');t("body").append(e),function(){var t=e[0];if(t&&window.getComputedStyle){var i=window.getComputedStyle(t,null);i&&i.backgroundSize&&(n.bgs_Available="cover"===i.backgroundSize)}}(),e.remove()}}();var i=this;return this.options=e,this.settings=t.extend({},this.defaults,this.options),this.settings.onStart&&this.settings.onStart(),this.each((function(e){function s(){(l.responsive||h.data("sby_imgLiquid_oldProcessed"))&&h.data("sby_imgLiquid_settings")&&(l=h.data("sby_imgLiquid_settings"),d.actualSize=d.get(0).offsetWidth+d.get(0).offsetHeight/1e4,d.sizeOld&&d.actualSize!==d.sizeOld&&o(),d.sizeOld=d.actualSize,setTimeout(s,l.responsiveCheckTime))}function a(){h.data("sby_imgLiquid_error",!0),d.addClass("sby_imgLiquid_error"),l.onItemError&&l.onItemError(e,d,h),r()}function o(){var t,i,s,n,a,o,c,u,g=0,p=0,y=d.width(),f=d.height();void 0===h.data("owidth")&&h.data("owidth",h[0].width),void 0===h.data("oheight")&&h.data("oheight",h[0].height),l.fill===y/f>=h.data("owidth")/h.data("oheight")?(t="100%",i="auto",s=Math.floor(y),n=Math.floor(y*(h.data("oheight")/h.data("owidth")))):(t="auto",i="100%",s=Math.floor(f*(h.data("owidth")/h.data("oheight"))),n=Math.floor(f)),c=y-s,"left"===(a=l.horizontalAlign.toLowerCase())&&(p=0),"center"===a&&(p=.5*c),"right"===a&&(p=c),-1!==a.indexOf("%")&&(a=parseInt(a.replace("%",""),10))>0&&(p=c*a*.01),u=f-n,"left"===(o=l.verticalAlign.toLowerCase())&&(g=0),"center"===o&&(g=.5*u),"bottom"===o&&(g=u),-1!==o.indexOf("%")&&(o=parseInt(o.replace("%",""),10))>0&&(g=u*o*.01),l.hardPixels&&(t=s,i=n),h.css({width:t,height:i,"margin-left":Math.floor(p),"margin-top":Math.floor(g)}),h.data("sby_imgLiquid_oldProcessed")||(h.fadeTo(l.fadeInTime,1),h.data("sby_imgLiquid_oldProcessed",!0),l.removeBoxBackground&&d.css("background-image","none"),d.addClass("sby_imgLiquid_nobgSize"),d.addClass("sby_imgLiquid_ready")),l.onItemFinish&&l.onItemFinish(e,d,h),r()}function r(){e===i.length-1&&i.settings.onFinish&&i.settings.onFinish()}var l=i.settings,d=t(this),h=t("img:first",d);return h.length?(h.data("sby_imgLiquid_settings")?(d.removeClass("sby_imgLiquid_error").removeClass("sby_imgLiquid_ready"),l=t.extend({},h.data("sby_imgLiquid_settings"),i.options)):l=t.extend({},i.settings,function(){var t={};if(i.settings.useDataHtmlAttr){var e=d.attr("data-sby_imgLiquid-fill"),s=d.attr("data-sby_imgLiquid-horizontalAlign"),a=d.attr("data-sby_imgLiquid-verticalAlign");("true"===e||"false"===e)&&(t.fill=Boolean("true"===e)),void 0===s||"left"!==s&&"center"!==s&&"right"!==s&&-1===s.indexOf("%")||(t.horizontalAlign=s),void 0===a||"top"!==a&&"bottom"!==a&&"center"!==a&&-1===a.indexOf("%")||(t.verticalAlign=a)}return n.isIE&&i.settings.ieFadeInDisabled&&(t.fadeInTime=0),t}()),h.data("sby_imgLiquid_settings",l),l.onItemStart&&l.onItemStart(e,d,h),void(n.bgs_Available&&l.useBackgroundSize?(-1===d.css("background-image").indexOf(encodeURI(h.attr("src")))&&d.css({"background-image":'url("'+encodeURI(h.attr("src"))+'")'}),d.css({"background-size":l.fill?"cover":"contain","background-position":(l.horizontalAlign+" "+l.verticalAlign).toLowerCase(),"background-repeat":"no-repeat"}),t("a:first",d).css({display:"block",width:"100%",height:"100%"}),t("img",d).css({display:"none"}),l.onItemFinish&&l.onItemFinish(e,d,h),d.addClass("sby_imgLiquid_bgSize"),d.addClass("sby_imgLiquid_ready"),r()):function i(){if(h.data("oldSrc")&&h.data("oldSrc")!==h.attr("src")){var n=h.clone().removeAttr("style");return n.data("sby_imgLiquid_settings",h.data("sby_imgLiquid_settings")),h.parent().prepend(n),h.remove(),(h=n)[0].width=0,void setTimeout(i,10)}return h.data("sby_imgLiquid_oldProcessed")?void o():(h.data("sby_imgLiquid_oldProcessed",!1),h.data("oldSrc",h.attr("src")),t("img:not(:first)",d).css("display","none"),d.css({overflow:"hidden"}),h.fadeTo(0,0).removeAttr("width").removeAttr("height").css({visibility:"visible","max-width":"none","max-height":"none",width:"auto",height:"auto",display:"block"}),h.on("error",a),h[0].onerror=a,function t(){h.data("sby_imgLiquid_error")||h.data("sby_imgLiquid_loaded")||h.data("sby_imgLiquid_oldProcessed")||(d.is(":visible")&&h[0].complete&&h[0].width>0&&h[0].height>0?(h.data("sby_imgLiquid_loaded",!0),setTimeout(o,e*l.delay)):setTimeout(t,l.timecheckvisibility))}(),void s())}())):void a()}))}}),e=n.injectCss,i=document.getElementsByTagName("head")[0],(s=document.createElement("style")).type="text/css",s.styleSheet?s.styleSheet.cssText=e:s.appendChild(document.createTextNode(e)),i.appendChild(s)})(),"function"==typeof e.find(".sby_player_item").sby_imgLiquid&&(e.find(".sby_player_item").length&&e.find(".sby_player_item .sby_player_video_thumbnail").sby_imgLiquid({fill:!0}),e.find(".sby_item .sby_item_video_thumbnail").sby_imgLiquid({fill:!0}))},listenForVisibilityChange:function(){var e=this;!function(t){var e={callback:function(){},runOnLoad:!0,frequency:100,sbyPreviousVisibility:null},i={sbyCheckVisibility:function(t,e){if(jQuery.contains(document,t[0])){var s=e.sbyPreviousVisibility,n=t.is(":visible");e.sbyPreviousVisibility=n,null==s?e.runOnLoad&&e.callback(t,n):s!==n&&e.callback(t,n),setTimeout((function(){i.sbyCheckVisibility(t,e)}),e.frequency)}}};t.fn.sbyVisibilityChanged=function(s){var n=t.extend({},e,s);return this.each((function(){i.sbyCheckVisibility(t(this),n)}))}}(jQuery),"function"==typeof t(this.el).filter(":hidden").sbyVisibilityChanged&&t(this.el).filter(":hidden").sbyVisibilityChanged({callback:function(t,i){e.afterResize()},runOnLoad:!1})},getColumnCount:function(){var e=t(this.el),i=this.settings.cols,s=this.settings.colsmobile,n=i;return sbyWindowWidth=window.innerWidth,e.hasClass("sby_mob_col_auto")?(sbyWindowWidth<640&&parseInt(i)>2&&parseInt(i)<7&&(n=2),sbyWindowWidth<640&&parseInt(i)>6&&parseInt(i)<11&&(n=4),sbyWindowWidth<=480&&parseInt(i)>2&&(n=1)):sbyWindowWidth<=480&&(n=s),parseInt(n)},onThumbnailClick:function(e,i,s){if(this.canCreatePlayer()){var n=t(this.el);if(n.hasClass("sby_layout_gallery")){if(n.find(".sby_current").removeClass("sby_current"),e.closest(".sby_item").addClass("sby_current"),e.closest(".sby_item").addClass("sby_current"),n.addClass("sby_player_added").find(".sby_player_outer_wrap").addClass("sby_player_loading"),n.find(".sby_player_outer_wrap .sby_video_thumbnail").find(".sby_loader").show().removeClass("sby_hidden"),n.find(".sby_player_outer_wrap iframe").length)i?(s=void 0===s?this.getVideoID(n.find(".sby_item").first()):s,this.playVideoInPlayer(s)):(s=void 0===s?this.getVideoID(e.closest(".sby_item")):s,this.changePlayerInfo(e.closest(".sby_item")),this.playVideoInPlayer(s),this.afterVideoChanged());else if(i)this.createPlayer("sby_player"+this.index);else{s=void 0===s?this.getVideoID(e.closest(".sby_item")):s;this.createPlayer("sby_player"+this.index,s)}this.updateGalleryPlayerSubscribeBtn(e)}else if(t(this.el).hasClass("sby_layout_grid")||t(this.el).hasClass("sby_layout_carousel")){var a=e.closest(".sby_item");s=void 0===s?this.getVideoID(a):s,this.playVideoInPlayer(s),this.afterVideoChanged()}else t(this.el).hasClass("sby_layout_list")&&(a=e.closest(".sby_item"),s=void 0===s?this.getVideoID(a):s,a.length&&!a.find("iframe").length?(a.find(".sby_loader").show().removeClass("sby_hidden"),a.addClass("sby_player_loading sby_player_loaded"),this.createPlayer("sby_player_"+s,s)):(this.playVideoInPlayer(s,a.attr("data-video-id")),this.afterVideoChanged()))}},onThumbnailEnter:function(e){if(this.canCreatePlayer()&&t(this.el).hasClass("sby_layout_list")){var i=e.closest(".sby_item"),s=this.getVideoID(i);i.find("iframe").length||(i.find(".sby_loader").show().removeClass("sby_hidden"),i.addClass("sby_player_loading sby_player_loaded"),this.createPlayer("sby_player_"+s,s,0))}},onThumbnailLeave:function(t){},changePlayerInfo:function(t){},playerEagerLoaded:function(){if(void 0!==this.player||t(this.el).hasClass("sby_player_loaded"))return!0},canCreatePlayer:function(){return!t(this.el).find("#sby_blank").length&&(this.playerEagerLoaded()||this.playerAPIReady&&this.settings.consentGiven||window.sbyAPIReady&&this.settings.consentGiven)},playVideoInPlayer:function(t,e){void 0!==this.player&&void 0!==this.player.loadVideoById?this.player.loadVideoById(t):void 0!==window.sbyLightboxPlayer&&void 0!==window.sbyLightboxPlayer.loadVideoById?window.sbyLightboxPlayer.loadVideoById(t):void 0!==e&&void 0!==this.players&&void 0!==this.players[e]&&void 0!==this.players[e].loadVideoById&&this.players[e].loadVideoById(t)},afterVideoChanged:function(){t(this.el).hasClass("sby_layout_gallery")&&(t(this.el).find(".sby_player_outer_wrap").removeClass("sby_player_loading"),t(this.el).find(".sby_player_outer_wrap .sby_video_thumbnail").find(".sby_loader").hide().addClass("sby_hidden"),t("html, body").animate({scrollTop:t(this.el).find(".sby_player_outer_wrap").offset().top},300))},updateGalleryPlayerSubscribeBtn:function(e){var i=e.attr("href").match(/channel\/(.*)$/);if(i){var s="http://www.youtube.com/channel/"+i[1]+"?sub_confirmation=1&feature=subscribe-embed-click";t(".sby-channel-subscribe-btn a").attr("href",s)}},checkConsent:function(){if(this.settings.consentGiven||!this.settings.gdpr)return this.settings.noCDN=!1,!0;if("undefined"!=typeof CLI_Cookie)null!==CLI_Cookie.read(CLI_ACCEPT_COOKIE_NAME)&&("null"!==CLI_Cookie.read("cookielawinfo-checkbox-non-necessary")&&(this.settings.consentGiven="yes"===CLI_Cookie.read("cookielawinfo-checkbox-non-necessary")),"null"!==CLI_Cookie.read("cookielawinfo-checkbox-necessary")&&(this.settings.consentGiven="yes"===CLI_Cookie.read("cookielawinfo-checkbox-necessary")));else if(void 0!==window.cnArgs){var t=("; "+document.cookie).split("; cookie_notice_accepted=");if(2===t.length){var e=t.pop().split(";").shift();this.settings.consentGiven="true"===e}}else void 0!==window.complianz?this.settings.consentGiven="allow"===function(t){for(var e="cmplz_marketing=",i=window.document.cookie.split(";"),s=0;s<i.length;s++){var n=i[s].trim();if(0==n.indexOf(e))return n.substring(16,n.length)}return""}()||jQuery("body").hasClass("cmplz-status-marketing"):void 0!==window.Cookiebot?this.settings.consentGiven=Cookiebot.consented:void 0!==window.BorlabsCookie&&(this.settings.consentGiven=void 0!==window.BorlabsCookie.Consents?window.BorlabsCookie.Consents.hasConsent("youtube"):window.BorlabsCookie.checkCookieConsent("youtube"));var i=jQuery.Event("sbycheckconsent");return i.feed=this,jQuery(window).trigger(i),this.settings.consentGiven&&(this.settings.noCDN=!1),this.settings.consentGiven},afterConsentToggled:function(){if(this.checkConsent()){var t=this;window.sby.maybeAddYTAPI(),t.maybeRaiseImageResolution(),t.applyFullFeatures(),setTimeout((function(){t.afterResize()}),500)}},removeFeatures:function(){this.settings.noCDN&&t(this.el).find(".sby_video_thumbnail").each((function(){t(this).removeAttr("data-sby-lightbox")}))},applyFullFeatures:function(){var e=this;t(e.el).find(".sby_header_img img").attr("src",t(e.el).find(".sby_header_img").attr("data-avatar-url")),void 0===t(e.el).find(".sby_video_thumbnail").first().attr("data-sby-lightbox")&&e.settings.lightboxEnabled&&t(e.el).find(".sby_video_thumbnail").each((function(){t(this).attr("data-sby-lightbox",e.index)}));var i=t(e.el);if(i.find(".sby_no_consent").removeClass("sby_no_consent"),i.hasClass("sby_layout_gallery")&&i.find(".sby_player_outer_wrap").length){if(this.maybeRaiseSingleImageResolution(i.find(".sby_player_outer_wrap"),0,!0),i.find(".sby_item").first().addClass("sby_current"),!e.canCreatePlayer())return;i.find(".sby_player_outer_wrap iframe").length||e.createPlayer("sby_player"+e.index)}},locationGuess:function(){var e=t(this.el),i="content";return e.closest("footer").length?i="footer":e.closest(".header").length||e.closest("header").length?i="header":(e.closest(".sidebar").length||e.closest("aside").length)&&(i="sidebar"),i}},s.prototype=Object.create(i.prototype),n.prototype={getData:function(t){return{feedIndex:parseInt(t.closest(".sb_youtube").attr("data-sby-index")-1),link:t.attr("href"),videoTitle:void 0!==t.attr("data-video-title")?p(t.attr("data-video-title")):"YouTube Video",video:t.attr("data-video-id"),channelID:t.attr("data-channel-id")}},template:function(){return"<div id='sby_lightboxOverlay' class='sby_lightboxOverlay'></div><div id='sby_lightbox' class='sby_lightbox'><div class='sby_lb-outerContainer'><div class='sby_lb-container'><img class='sby_lb-image' alt='Lightbox image placeholder' src='' /><div class='sby_lb-player sby_lb-player-placeholder' id='sby_lb-player'></div><div class='sby_lb-nav'><a class='sby_lb-prev' href='#' ><p class='sby-screenreader'>Previous Slide</p><span></span></a><a class='sby_lb-next' href='#' ><p class='sby-screenreader'>Next Slide</p><span></span></a></div><div class='sby_lb-loader'><a class='sby_lb-cancel'></a></div></div></div><div class='sby_lb-dataContainer'><div class='sby_lb-data'><div class='sby_lb-details'><div class='sby_lb-caption'></div><div class='sby_lb-info'><div class='sby_lb-number'></div></div></div><div class='sby_lb-closeContainer'><a class='sby_lb-close'></a></div></div></div></div>"},beforePlayerSetup:function(t,e,i,s,n){},afterPlayerSetup:function(t,e,i,s){},afterResize:function(){var e=t("#sby_lightbox .sby_lb-player").height();if(e>100){var i=t("#sby_lightbox .sby_lb-outerContainer").height()-e;i>10&&t("#sby_lightbox .sby_lb-player").css("top",i/2)}},pausePlayer:function(){void 0===window.sbyLightboxPlayer&&"undefined"==typeof YT||(void 0!==YT.get("sby_lb-player")&&"function"==typeof YT.get("sby_lb-player").pauseVideo?YT.get("sby_lb-player").pauseVideo():void 0!==window.sbyLightboxPlayer&&"function"==typeof window.sbyLightboxPlayer.pauseVideo&&window.sbyLightboxPlayer.pauseVideo())}},a.prototype=Object.create(n.prototype),o.prototype={toggleCTA:function(e,i,s){this.$player=s.length?s:t(".sby_lb-container"),this.state=i,this.videoID=e,this.isInitialized=!0,this.resetCTA(),void 0!==window.sby.ctas[e]&&(this.callbackArgs=window.sby.ctas[e]);var n=this.callbackArgs.callback;if("link"===n)this.callback=this.link;else{if("related"!==n)return;this.callback=this.related}2===i||0===i?(this.$player.find(".sby_cta_items_wraps").addClass("sby_cta_is_open"),2===i?this.$player.find(".sby_cta_items_wraps").addClass("sby_cta_state_paused"):this.$player.find(".sby_cta_items_wraps").addClass("sby_cta_state_ended"),this.$player.find(".sby_cta_items_wraps").show(),this.callback(),this.setCTAStyles()):(this.$player.find(".sby_cta_items_wraps").removeClass("sby_cta_is_open"),this.$player.find(".sby_cta_items_wraps").hide().removeClass("sby_cta_state_paused").removeClass("sby_cta_state_ended").removeClass("sby_cta_is_open"))},related:function(e){var i=this,s=this.feedObjInContext,n=window.sby.shuffle(this.getRelated(s)),a=0,o=this.videoID,r=this.$player;this.$player.find(".sby_cta_items_wraps").removeClass("sby_cta_cols_"+this.numItemColumns),this.numItems=4,this.numItemColumns=2,r.width()<480&&(this.numItems=1,this.numItemColumns=1);var l=this.numItems;t.each(n,(function(t,e){e.videoID!==o&&a<l&&(r.find(".sby_cta_items_wraps .sby_cta_inner_wrap").append('<div class="sby_cta_item"><div class="sby_video_thumbnail_wrap"><a class="sby_video_thumbnail" href="javascript:void(0);" target="_blank" rel="noopener" data-video-id="'+e.videoID+'"><div class="sby_thumbnail_hover"><div class="sby_thumbnail_hover_inner"><span class="sby_video_title">'+e.title+'</span></div></div><span class="sby-screenreader">Play</span><img src="'+e.thumbnail+'" alt="'+e.title+'"><span class="sby_loader sby_hidden" style="background-color: rgb(255, 255, 255);"></span></a></div></div>'),a++)})),r.find(".sby_cta_items_wraps .sby_video_thumbnail").each((function(){t(this).off().on("click",(function(e){e.preventDefault();var n=t(this).attr("data-video-id");s.onThumbnailClick(t(this),!0,n),i.videoID=n}))}))},getRelated:function(e){if(void 0===e.settings.general.cta.defaultPosts[0]){var i=t(e.el),s=[];return i.find(".sby_item").each((function(){if(void 0!==t(this).find(".sby_item_video_thumbnail").attr("data-full-res")){var e={videoID:t(this).attr("data-video-id"),title:p(t(this).attr("data-video-title")),thumbnail:t(this).find(".sby_item_video_thumbnail").attr("data-full-res")};s.push(e)}})),s}return e.settings.general.cta.defaultPosts},link:function(t){var e=this.$player,i=this.feedObjInContext;this.$player.find(".sby_cta_items_wraps").removeClass("sby_cta_cols_"+this.numItemColumns),this.numItems=1,this.numItemColumns=1;var s="",n="";""===i.settings.general.cta.color&&""===i.settings.general.cta.textColor||(s=' style="',n=" sby_custom",""!==i.settings.general.cta.color&&(s+="background: rgb("+i.settings.general.cta.color+");"),""!==i.settings.general.cta.textColor&&(s+="color: rgb("+i.settings.general.cta.textColor+");"),s+='"');var a="";"newwindow"===i.settings.general.cta.openType&&(a=' target="_blank" rel="noopener"'),e.find(".sby_cta_items_wraps .sby_cta_inner_wrap").append('<div class="sby_cta_item"><div class="sby_btn_wrap"><div class="sby_btn'+n+'"><a class="sby_cta_button" href="'+this.callbackArgs.url+'"'+a+' data-video-id="'+this.videoID+'"'+s+">"+this.callbackArgs.text+"</a></div></div></div>")},setCTAStyles:function(){var t=Math.max(90,this.$player.height()-60-49);this.$player.find(".sby_cta_items_wraps").css("height",t+"px").css("width",this.$player.find("iframe").width()-20+"px").addClass("sby_cta_cols_"+this.numItemColumns);var e=Math.max(1,this.numItems/this.numItemColumns),i=2*parseInt(this.$player.find(".sby_cta_items_wraps").css("padding-top").replace("px","")),s=Math.max(90,(t-i)/e);this.$player.find(".sby_cta_item").css("max-height",s+"px").find("img").css({"max-height":s+"px",width:"auto",margin:"auto"}),this.$player.find(".sby_btn_wrap").css("height",s+"px")},resetCTA:function(){this.$player.find(".sby_cta_items_wraps .sby_cta_inner_wrap").empty()}},window.sby_init=function(){window.sby=new e,window.sby.createPage(window.sby.createFeeds,{whenFeedsCreated:window.sby.afterFeedsCreated})},window.sby_carousel_init=function(){console.log("log")}}(jQuery),void 0===window.sbyEagerLoading){if(window.sbyEagerLoading=void 0!==window.sbyOptions&&window.sbyOptions.eagerload,jQuery(".elementor-widget-video").length){var f=void 0!==jQuery(".elementor-widget-video").attr("data-settings")&&JSON.parse(jQuery(".elementor-widget-video").attr("data-settings"));f&&void 0!==f.youtube_url&&(window.sbyEagerLoading=!0)}jQuery("div[data-vc-video-bg]").length&&(window.sbyEagerLoading=!0)}void 0===window.sbySemiEagerLoading&&(window.sbySemiEagerLoading=void 0!==window.sbyOptions&&window.sbyOptions.semiEagerload,(jQuery("div[data-vc-video-bg]").length||window.sbyEagerLoading)&&(window.sbySemiEagerLoading=!1)),jQuery(document).ready((function(t){window.sbySemiEagerLoading||sby_init(),t("#cookie-notice a").on("click",(function(){setTimeout((function(){t.each(window.sby.feeds,(function(t){window.sby.feeds[t].afterConsentToggled()}))}),1e3)})),t("#cookie-law-info-bar a").on("click",(function(){setTimeout((function(){t.each(window.sby.feeds,(function(t){window.sby.feeds[t].afterConsentToggled()}))}),1e3)})),t(".cli-user-preference-checkbox").on("click",(function(){setTimeout((function(){t.each(window.sby.feeds,(function(t){window.sby.feeds[t].settings.consentGiven=!1,window.sby.feeds[t].afterConsentToggled()}))}),1e3)})),t(window).on("CookiebotOnAccept",(function(e){t.each(window.sby.feeds,(function(t){window.sby.feeds[t].settings.consentGiven=!0,window.sby.feeds[t].afterConsentToggled()}))})),document.addEventListener("cmplz_status_change",(function(e){"marketing"===e.detail.category&&"allow"===e.detail.value&&t.each(window.sby.feeds,(function(t){window.sby.feeds[t].settings.consentGiven=!0,window.sby.feeds[t].afterConsentToggled()}))})),t(document).on("cmplzFireCategories",(function(e){"marketing"===e.detail.category&&t.each(window.sby.feeds,(function(t){window.sby.feeds[t].settings.consentGiven=!0,window.sby.feeds[t].afterConsentToggled()}))})),t(document).on("borlabs-cookie-consent-saved",(function(e){t.each(window.sby.feeds,(function(t){window.sby.feeds[t].settings.consentGiven=!1,window.sby.feeds[t].afterConsentToggled()}))})),t("#sby-frce-hide-license-error").on("click",(function(){t("#sby-fr-ce-license-error").slideUp(),jQuery.ajax({url:sbyOptions.adminAjaxUrl,type:"post",data:{action:"sby_hide_frontend_license_error",nonce:sbyOptions.nonce},success:function(t){console.log(t)}})}))}))}if(window.sbySemiEagerLoading){var b="sby-youtube-api";if(null===document.getElementById(b)){var m=document.createElement("script"),_=document.getElementsByTagName("script")[0];m.src="https://www.youtube.com/iframe_api",m.id=b,_.parentNode.insertBefore(m,_)}}function v(t,e){var i,s,n,a,o,r;switch(e){case"authorProfileImageUrl":return null!=t&&null!==(i=t.snippet)&&void 0!==i&&i.authorProfileImageUrl?t.snippet.authorProfileImageUrl:"";case"authorDisplayName":return null!=t&&null!==(s=t.snippet)&&void 0!==s&&s.authorDisplayName?t.snippet.authorDisplayName:"";case"authorChannelUrl":return null!=t&&null!==(n=t.snippet)&&void 0!==n&&n.authorChannelUrl?t.snippet.authorChannelUrl:"";case"textDisplay":return null!=t&&null!==(a=t.snippet)&&void 0!==a&&a.textDisplay?t.snippet.textDisplay:"";case"likeCount":return null!=t&&null!==(o=t.snippet)&&void 0!==o&&o.likeCount?t.snippet.likeCount:"";case"publishedAt":return null!=t&&null!==(r=t.snippet)&&void 0!==r&&r.publishedAt?t.snippet.publishedAt:"";case"totalReplyCount":return null!=t&&t.totalReplyCount?t.totalReplyCount:"";default:return!1}}function w(t){switch(t){case"profile-picture":return'<svg fill="currentColor" width="800px" height="800px" viewBox="0 0 512 512" id="_x30_1" version="1.1" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M256,0C114.615,0,0,114.615,0,256s114.615,256,256,256s256-114.615,256-256S397.385,0,256,0z M256,90 c37.02,0,67.031,35.468,67.031,79.219S293.02,248.438,256,248.438s-67.031-35.468-67.031-79.219S218.98,90,256,90z M369.46,402 H142.54c-11.378,0-20.602-9.224-20.602-20.602C121.938,328.159,181.959,285,256,285s134.062,43.159,134.062,96.398 C390.062,392.776,380.839,402,369.46,402z"/></svg>';case"thumbs-up":return'<svg width="15" height="13" viewBox="0 0 15 13" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M13.4159 4.18027C13.761 4.18027 14.0778 4.32177 14.3664 4.60477C14.6549 4.88777 14.7992 5.20738 14.7992 5.5636V6.2706C14.7992 6.36471 14.7902 6.45188 14.7722 6.5321C14.7542 6.61232 14.7272 6.69266 14.6912 6.7731L12.684 11.4908C12.5845 11.7449 12.4181 11.9486 12.1849 12.1019C11.9517 12.2552 11.69 12.3318 11.3999 12.3318H5.15938C4.77282 12.3318 4.44566 12.2006 4.17788 11.9383C3.90999 11.6759 3.77604 11.346 3.77604 10.9484V4.7561C3.77604 4.56277 3.81332 4.38049 3.88788 4.20927C3.96254 4.03804 4.06477 3.88754 4.19454 3.75777L7.28938 0.662932C7.5186 0.431043 7.79427 0.281321 8.11638 0.213765C8.43849 0.146321 8.71416 0.178988 8.94338 0.311765C9.22549 0.46421 9.40932 0.695932 9.49488 1.00693C9.58032 1.31793 9.58999 1.62804 9.52388 1.93727L9.09554 4.18027H13.4159ZM1.34404 12.3318C1.01393 12.3318 0.726767 12.2097 0.482544 11.9654C0.238322 11.7212 0.116211 11.434 0.116211 11.1039V5.40827C0.116211 5.07804 0.236989 4.79082 0.478544 4.5466C0.7201 4.30238 1.00466 4.18027 1.33221 4.18027H1.34804C1.67827 4.18027 1.96549 4.30238 2.20971 4.5466C2.45393 4.79082 2.57604 5.07804 2.57604 5.40827V11.1039C2.57604 11.434 2.45393 11.7212 2.20971 11.9654C1.96549 12.2097 1.67827 12.3318 1.34804 12.3318H1.34404Z" fill="currentColor"/></svg>';case"angle-down":return'<svg width="8" height="6" viewBox="0 0 8 6" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0.94 0.726654L4 3.77999L7.06 0.726654L8 1.66665L4 5.66665L0 1.66665L0.94 0.726654Z" fill="currentColor"/></svg>';case"youtube":return'<svg width="14" height="11" viewBox="0 0 14 11" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M5.66671 7.5L9.12671 5.5L5.66671 3.5V7.5ZM13.3734 2.28C13.46 2.59334 13.52 3.01334 13.56 3.54667C13.6067 4.08 13.6267 4.54 13.6267 4.94L13.6667 5.5C13.6667 6.96 13.56 8.03334 13.3734 8.72C13.2067 9.32 12.82 9.70667 12.22 9.87334C11.9067 9.96 11.3334 10.02 10.4534 10.06C9.58671 10.1067 8.79337 10.1267 8.06004 10.1267L7.00004 10.1667C4.20671 10.1667 2.46671 10.06 1.78004 9.87334C1.18004 9.70667 0.793374 9.32 0.626707 8.72C0.540041 8.40667 0.480041 7.98667 0.440041 7.45334C0.393374 6.92 0.373374 6.46 0.373374 6.06L0.333374 5.5C0.333374 4.04 0.440041 2.96667 0.626707 2.28C0.793374 1.68 1.18004 1.29334 1.78004 1.12667C2.09337 1.04 2.66671 0.980002 3.54671 0.940002C4.41337 0.893336 5.20671 0.873336 5.94004 0.873336L7.00004 0.833336C9.79337 0.833336 11.5334 0.940003 12.22 1.12667C12.82 1.29334 13.2067 1.68 13.3734 2.28Z" fill="currentColor"/></svg>';case"cross":return'<svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M14.25 1.41L12.84 0L7.25 5.59L1.66 0L0.25 1.41L5.84 7L0.25 12.59L1.66 14L7.25 8.41L12.84 14L14.25 12.59L8.66 7L14.25 1.41Z" fill="currentColor"/></svg>';case"message":return'<svg width="28" height="26" viewBox="0 0 28 26" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M3.33341 22C2.60008 22 1.9723 21.7389 1.45008 21.2167C0.927859 20.6944 0.666748 20.0667 0.666748 19.3333V3.33334C0.666748 2.6 0.927859 1.97223 1.45008 1.45001C1.9723 0.927783 2.60008 0.666672 3.33341 0.666672H24.6667C25.4001 0.666672 26.0279 0.927783 26.5501 1.45001C27.0723 1.97223 27.3334 2.6 27.3334 3.33334V24.1C27.3334 24.7 27.0612 25.1167 26.5167 25.35C25.9723 25.5833 25.489 25.4889 25.0667 25.0667L22.0001 22H3.33341ZM23.1334 19.3333L24.6667 20.8333V3.33334H3.33341V19.3333H23.1334Z" fill="currentColor"/></svg>';default:return!1}}function x(t,e,i,s,n,a,o){var r,l=t?"<img src=".concat(t,' loading="lazy" referrerPolicy="no-referrer"/>'):w("profile-picture"),d=o?'<button class="sby-replies">'.concat(o||0," Replies ").concat(w("angle-down"),"</button>"):"";return'\n <div class="sby-comment-profile-pic">\n '.concat(l,'\n </div>\n <div class="sby-comment-heading">\n <a href="').concat(i,'" target="_blank" class="sby-comment-user-name">').concat(e,"</a>\n <span>").concat(I(a),'</span>\n </div>\n <div class="sby-comment-text">\n <p class="sby-read-more-target">').concat(s,'</p>\n <div class="sby-read-more-trigger">\n <button class="sby-read-more-text">Read More</button>\n <button class="sby-read-less-text">Read Less</button>\n </div>\n </div>\n <div class="sby-comment-bottom">\n <span class="sby-comment-likes">\n ').concat(w("thumbs-up")," ").concat(n?(r=n,r>=1e9?(r/1e9).toFixed(1)+"B":r>=1e6?(r/1e6).toFixed(1)+"M":r>=1e3?(r/1e3).toFixed(1)+"K":r):0,"\n </span>\n ").concat(d,"\n </div>\n ")}function C(t){return'\n <h4 class="sby-comments-sub-heading">Comments</h4>\n <div class="sby-no-comments">\n <p>'.concat(t,"</p>\n </div>")}function I(t){var e=new Date-new Date(t),i=Math.floor(e/1e3),s=Math.floor(i/60),n=Math.floor(s/60),a=Math.floor(n/24),o=Math.floor(a/30),r=Math.floor(o/12);return r>0?"".concat(r," year").concat(r>1?"s":""," ago"):o>0?"".concat(o," month").concat(o>1?"s":""," ago"):a>0?"".concat(a," day").concat(a>1?"s":""," ago"):n>0?"".concat(n," hour").concat(n>1?"s":""," ago"):s>0?"".concat(s," minute").concat(s>1?"s":""," ago"):i>0?"".concat(i," second").concat(i>1?"s":""," ago"):"just now"}function k(){var t=jQuery(".sby-read-more-target"),e=".sby-read-more-trigger";t.each((function(t){var i=jQuery(this)[0],s=i.scrollHeight,n=i.offsetHeight;if(s>n&&s>n+1){var a=jQuery(this).parent().find(e);a.unbind("click"),a.click((function(){jQuery(this).toggleClass("sby-read-more-trigger-active"),jQuery(this).parent().find(".sby-read-more-target").toggleClass("sby-read-more-target-active")}))}else jQuery(this).parent().find(e).hide()}))}function z(t,e){var i=jQuery(".sby_lb-caption"),s="sby-lb-dark-scheme";return!1===e?(i.removeClass(s),!1):"dark"===t&&!0===e?(i.addClass(s),!1):void 0}function T(){jQuery("body").css("overflow","auto"),z("",!1)}function L(t){var e=t.closest(".sb_youtube");return e.hasClass("sby_layout_list")?"list":e.hasClass("sby_layout_grid")?"grid":e.hasClass("sby_layout_carousel")?"carousel":!!e.hasClass("sby_layout_gallery")&&"gallery"}function P(){if(!window.sbyOptions.isPro)return!1;var t=jQuery(".sby-comments-trigger");t.unbind("click"),t.click((function(){var t=".sby-comments-wrap",e=jQuery(this).closest(".sby-comment-container"),i=e.find(t),s=L(jQuery(this));if(i.text().length<=0){var n,a,o;if("gallery"===s){var r=jQuery(this).closest(".sb_youtube"),l=r.find(".sby_item.sby_current");r&&l&&(a=j(l.attr("data-video-id")),n=j(l.find("a").attr("data-comment-count")),o=r.find(t))}if("list"===s){var d=jQuery(this).closest(".sby_item");d&&(a=j(d.attr("data-video-id")),n=j(d.find("a").attr("data-comment-count")),o=d.find(t)),O(jQuery(this).closest(".sb_youtube"))}A(a,j(jQuery(this).closest(".sb_youtube").attr("data-shortcode-atts")),o,n),i.addClass("sby-comments-active")}else i.toggle(),i.toggleClass("sby-comments-active");var h=e.find(".sby-comments-trigger p");h&&function(t,e,i){if(t&&e&&i){var s=e===t.text()?i:e;t.text(s)}}(h,"Show Comments","Hide Comments")}))}function j(t){return t||""}function $(t,e){jQuery.ajax({url:sbyOptions.adminAjaxUrl,type:"post",data:t,success:e})}function A(t,e,i,s){submitData={action:"sby_get_comments",video_id:t,atts:e},k(),$(submitData,(function(e){var n;if(!e)return!1;if(!1===e.success)return i.html(C(e.data)),!1;var a=JSON.parse(e);if(!a)return!1;if(null!=a&&a.success&&!1===a.success)return i.html(C(a.data)),!1;if(null!=a&&a.error&&null!=a&&null!==(n=a.error)&&void 0!==n&&n.message){var o=a.error.message;return o.includes("disabled comments")&&(o="Comments are turned off"),i.html(C(o)),!1}var r=null!=a&&a.items&&null!=a&&a.items.length?a.items.length:"",l=t?"https://www.youtube.com/watch?v=".concat(t):"";if(!r)return i.html('\n <h4 class="sby-comments-sub-heading">Comments</h4>\n <div class="sby-no-comments">\n '.concat(w("message"),"\n <p>There are no comments to display</p>\n </div>")),k(),!1;currentCommentCount=s?"( ".concat(s," )"):"";var d='<h4 class="sby-comments-sub-heading">Comments '.concat(currentCommentCount,'</h4><ul class="sby-comments">');jQuery.each(a.items,(function(t,e){var i,s,n=null==e||null===(i=e.snippet)||void 0===i?void 0:i.topLevelComment,a=null==e?void 0:e.snippet;d+='<li class="sby-comment">'.concat(x(v(n,"authorProfileImageUrl"),v(n,"authorDisplayName"),v(n,"authorChannelUrl"),v(n,"textDisplay"),v(n,"likeCount"),v(n,"publishedAt"),v(a,"totalReplyCount")),'\n <ul class="sby-reply-comments">'),null!=e&&null!==(s=e.replies)&&void 0!==s&&s.comments&&jQuery.each(e.replies.comments,(function(t,e){d+='<li class="sby-reply-comment" >'.concat(x(v(e,"authorProfileImageUrl"),v(e,"authorDisplayName"),v(e,"authorChannelUrl"),v(e,"textDisplay"),v(e,"likeCount"),v(e,"publishedAt")),"</li>")})),d+="</ul></li>"})),d+="</ul>",d+='<a href="'.concat(l,'" target="_blank" class="sby-view-all-button ">View all comments on YouTube</a>'),i.html(d).fadeIn("fast"),k(),function(t,e,i,s){jQuery(s).css("display","none"),jQuery(e).unbind("click"),jQuery(e).click((function(){jQuery(this).toggleClass("sby-active-trigger"),jQuery(this).closest(".sby-comment").find(s).toggle()}))}(0,".sby-replies",0,".sby-reply-comments")}))}function O(t){"gallery"!==L(t)&&"list"!==L(t)||(t.find(".sby-comments-trigger").find("p").text("Show Comments"),t.find(".sby-comments-wrap").html(""))}window.onYouTubeIframeAPIReady=function(){var t=document.getElementsByClassName("sb_youtube").length;if(t>0){if(window.sbySemiEagerLoading){if(void 0!==window.sby)for(var e=0;e<t;e++)window.sby.feeds[e].playerAPIReady=!0;else window.sbyAPIReady=!0;sby_init()}else if(window.sbyEagerLoading){var i=!1,s=!1;jQuery(".sb_youtube").each((function(t){var e=jQuery(this);e.hasClass("sby_layout_list")?(jQuery(this).addClass("sby_player_loaded"),e.find(".sby_item").each((function(){videoID=jQuery(this).attr("data-video-id"),player=new YT.Player("sby_player_"+videoID,{height:"100",width:"100",videoId:videoID,playerVars:{modestbranding:1,rel:0,autoplay:s},events:{onStateChange:function(t){t.target.getVideoData().video_id,1===t.data&&e.find(".sby_item").each((function(){var e=jQuery(this).attr("data-video-id");jQuery(this).find("iframe").length&&jQuery(t.target.a).attr("id")!==jQuery(this).find("iframe").attr("id")&&YT.get("sby_player_"+e).pauseVideo()}))}}})}))):e.hasClass("sby_layout_gallery")?(jQuery(this).addClass("sby_player_loaded"),player=new YT.Player("sby_player"+t,{height:"100",width:"100",videoId:jQuery(this).find(".sby_item").first().attr("data-video-id"),playerVars:{modestbranding:1,rel:0,autoplay:s},events:{onStateChange:function(t){t.target.getVideoData().video_id,1===t.data&&e.find(".sby_item").each((function(){var e=jQuery(this).attr("data-video-id");jQuery(this).find("iframe").length&&jQuery(t.target.a).attr("id")!==jQuery(this).find("iframe").attr("id")&&YT.get("sby_player_"+e).pauseVideo()}))}}})):i=!0}))}else if(void 0!==window.sby)for(e=0;e<t;e++)window.sby.feeds[e].playerAPIReady=!0;else window.sbyAPIReady=!0;jQuery(".sb_youtube").each((function(t){var e=jQuery(this);e.find(".sby_live_player").length&&(player=new YT.Player(e.find(".sby_live_player").attr("id"),{events:{onReady:function(){e.find(".sby_live_player").hide(),e.find(".sby_item").remove();var i=YT.get(e.find(".sby_live_player").attr("id")).getVideoData().video_id;e.find(".sby_player_video_thumbnail").attr("data-video-id",i).css("z-index",-1),e.find(".sby_item").length;var s={action:"sby_live_retrieve",video_id:i,feed_id:e.attr("data-feedid"),atts:e.attr("data-shortcode-atts")};jQuery.ajax({url:sbyOptions.adminAjaxUrl,type:"post",data:s,success:function(i){if(0===i.trim().indexOf("{")){var s=window.sby.feeds[t],n=JSON.parse(i),a=void 0!==n.feedStatus.checkWPPosts&&n.feedStatus.checkWPPosts;s.settings.debugEnabled&&console.log(n),s.settings.checkWPPosts=!!a,s.appendNewPosts(n.html),s.addResizedImages(n.resizedImages),s.afterInitialImagesLoaded(),n.feedStatus.shouldPaginate?s.outOfPages=!1:(s.outOfPages=!0,e.find(".sby_load_btn").hide()),jQuery(".sby_no_js").removeClass("sby_no_js"),e.find(".sby_live_player").remove(),e.hasClass("sby_layout_gallery")&&s.createPlayer("sby_player"+s.index),e.find(".sby_player_item").css("opacity",1),e.find(".sby_item").css("opacity",1),e.find(".sby_player_loading").removeClass("sby_player_loading"),e.hasClass("sby_layout_list")&&e.find(".sby_item_video_thumbnail").on("mouseenter",(function(){jQuery(this).css("z-index",-1)}))}}})}}}))})),i&&(jQuery("#sby_lb-player").length||jQuery(".sb_youtube").first().append('<div class="sby_lb-player-loaded sby_lb-player" id="sby_lb-player" style="display: none;"></div>'),player=new YT.Player("sby_lb-player",{height:"100",width:"100",videoId:jQuery(this).find(".sby_item").first().attr("data-video-id"),playerVars:{modestbranding:1,rel:0,autoplay:s}}),window.sbyLightboxPlayer=player)}if(void 0!==window.sby){var n=jQuery.Event("sbyfeedandytready");jQuery(window).trigger(n)}}})();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QWlCL08sRUFBU3BHLGVBRS9CYyxFQUFLa1IsMkJBRUE1TCxFQUFTNk8sV0FBV0csZUFJckJ0VSxFQUFLWixZQUFhLEdBSGxCWSxFQUFLWixZQUFhLEVBQ2xCaUMsRUFBTXhTLEtBQUssaUJBQWlCNlQsUUFLaEMzUCxPQUFPLGNBQWN2RSxZQUFZLGFBQ2pDNlMsRUFBTXhTLEtBQUssb0JBQW9Cbk4sU0FDM0IyZixFQUFNOUksU0FBUyx1QkFDZnlILEVBQUt5UixhQUFhLGFBQWF6UixFQUFLM2IsT0FFeENnZCxFQUFNeFMsS0FBSyxvQkFBb0I5VyxJQUFJLFVBQVUsR0FDN0NzcEIsRUFBTXhTLEtBQUssYUFBYTlXLElBQUksVUFBVSxHQUN0Q3NwQixFQUFNeFMsS0FBSyx1QkFBdUJMLFlBQVksc0JBQzFDNlMsRUFBTTlJLFNBQVMsb0JBQ2Y4SSxFQUFNeFMsS0FBSyw2QkFBNkI2QixHQUFHLGNBQWEsV0FDcERxQyxPQUFPbmIsTUFBTUcsSUFBSSxXQUFXLEVBQ2hDLEdBR1IsQ0FFSixHQU9KLEtBSWhCLElBRUk0cUMsSUFDSzV2QixPQUFPLGtCQUFrQjNaLFFBQzFCMlosT0FBTyxlQUFldU4sUUFBUXRSLE9BQU8sb0dBRXpDdWlCLE9BQVMsSUFBSXBRLEdBQUdDLE9BQU8sZ0JBQWlCLENBQ3BDbkssT0FBUSxNQUNSakssTUFBTyxNQUNQMlQsUUFBUzVOLE9BQU9uYixNQUFNaVgsS0FBSyxhQUFheVIsUUFBUTdRLEtBQUssaUJBQ3JEbVIsV0FBWSxDQUNSQyxlQUFnQixFQUNoQkMsSUFBSyxFQUNMMUgsU0FBVUEsS0FHbEJwZ0IsT0FBT3VuQixrQkFBb0JnUixPQUduQyxDQUVBLFFBQTBCLElBQWZ2NEIsT0FBT3lsQixJQUFxQixDQUNuQyxJQUFJc0IsRUFBTWhOLE9BQU9qRyxNQUFNLHFCQUN2QmlHLE9BQU8vWixRQUFRMFYsUUFBUXFSLEVBQzNCLENBRUoiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly95b3V0dWJlLWZlZWQtcHJvLy4vbm9kZV9tb2R1bGVzL2Nzc2ZpbHRlci9saWIvY3NzLmpzIiwid2VicGFjazovL3lvdXR1YmUtZmVlZC1wcm8vLi9ub2RlX21vZHVsZXMvY3NzZmlsdGVyL2xpYi9kZWZhdWx0LmpzIiwid2VicGFjazovL3lvdXR1YmUtZmVlZC1wcm8vLi9ub2RlX21vZHVsZXMvY3NzZmlsdGVyL2xpYi9pbmRleC5qcyIsIndlYnBhY2s6Ly95b3V0dWJlLWZlZWQtcHJvLy4vbm9kZV9tb2R1bGVzL2Nzc2ZpbHRlci9saWIvcGFyc2VyLmpzIiwid2VicGFjazovL3lvdXR1YmUtZmVlZC1wcm8vLi9ub2RlX21vZHVsZXMvY3NzZmlsdGVyL2xpYi91dGlsLmpzIiwid2VicGFjazovL3lvdXR1YmUtZmVlZC1wcm8vLi9ub2RlX21vZHVsZXMveHNzL2xpYi9kZWZhdWx0LmpzIiwid2VicGFjazovL3lvdXR1YmUtZmVlZC1wcm8vLi9ub2RlX21vZHVsZXMveHNzL2xpYi9pbmRleC5qcyIsIndlYnBhY2s6Ly95b3V0dWJlLWZlZWQtcHJvLy4vbm9kZV9tb2R1bGVzL3hzcy9saWIvcGFyc2VyLmpzIiwid2VicGFjazovL3lvdXR1YmUtZmVlZC1wcm8vLi9ub2RlX21vZHVsZXMveHNzL2xpYi91dGlsLmpzIiwid2VicGFjazovL3lvdXR1YmUtZmVlZC1wcm8vLi9ub2RlX21vZHVsZXMveHNzL2xpYi94c3MuanMiLCJ3ZWJwYWNrOi8veW91dHViZS1mZWVkLXByby93ZWJwYWNrL2Jvb3RzdHJhcCIsIndlYnBhY2s6Ly95b3V0dWJlLWZlZWQtcHJvLy4vanMvc2IteW91dHViZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGNzc2ZpbHRlclxuICpcbiAqIEBhdXRob3Ig6ICB6Zu3PGxlaXpvbmdtaW5AZ21haWwuY29tPlxuICovXG5cbnZhciBERUZBVUxUID0gcmVxdWlyZSgnLi9kZWZhdWx0Jyk7XG52YXIgcGFyc2VTdHlsZSA9IHJlcXVpcmUoJy4vcGFyc2VyJyk7XG52YXIgXyA9IHJlcXVpcmUoJy4vdXRpbCcpO1xuXG5cbi8qKlxuICog6L+U5Zue5YC85piv5ZCm5Li656m6XG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG9ialxuICogQHJldHVybiB7Qm9vbGVhbn1cbiAqL1xuZnVuY3Rpb24gaXNOdWxsIChvYmopIHtcbiAgcmV0dXJuIChvYmogPT09IHVuZGVmaW5lZCB8fCBvYmogPT09IG51bGwpO1xufVxuXG4vKipcbiAqIOa1heaLt+i0neWvueixoVxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmpcbiAqIEByZXR1cm4ge09iamVjdH1cbiAqL1xuZnVuY3Rpb24gc2hhbGxvd0NvcHlPYmplY3QgKG9iaikge1xuICB2YXIgcmV0ID0ge307XG4gIGZvciAodmFyIGkgaW4gb2JqKSB7XG4gICAgcmV0W2ldID0gb2JqW2ldO1xuICB9XG4gIHJldHVybiByZXQ7XG59XG5cbi8qKlxuICog5Yib5bu6Q1NT6L+H5ruk5ZmoXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnNcbiAqICAgLSB7T2JqZWN0fSB3aGl0ZUxpc3RcbiAqICAgLSB7RnVuY3Rpb259IG9uQXR0clxuICogICAtIHtGdW5jdGlvbn0gb25JZ25vcmVBdHRyXG4gKiAgIC0ge0Z1bmN0aW9ufSBzYWZlQXR0clZhbHVlXG4gKi9cbmZ1bmN0aW9uIEZpbHRlckNTUyAob3B0aW9ucykge1xuICBvcHRpb25zID0gc2hhbGxvd0NvcHlPYmplY3Qob3B0aW9ucyB8fCB7fSk7XG4gIG9wdGlvbnMud2hpdGVMaXN0ID0gb3B0aW9ucy53aGl0ZUxpc3QgfHwgREVGQVVMVC53aGl0ZUxpc3Q7XG4gIG9wdGlvbnMub25BdHRyID0gb3B0aW9ucy5vbkF0dHIgfHwgREVGQVVMVC5vbkF0dHI7XG4gIG9wdGlvbnMub25JZ25vcmVBdHRyID0gb3B0aW9ucy5vbklnbm9yZUF0dHIgfHwgREVGQVVMVC5vbklnbm9yZUF0dHI7XG4gIG9wdGlvbnMuc2FmZUF0dHJWYWx1ZSA9IG9wdGlvbnMuc2FmZUF0dHJWYWx1ZSB8fCBERUZBVUxULnNhZmVBdHRyVmFsdWU7XG4gIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG59XG5cbkZpbHRlckNTUy5wcm90b3R5cGUucHJvY2VzcyA9IGZ1bmN0aW9uIChjc3MpIHtcbiAgLy8g5YW85a655ZCE56eN5aWH6JGp6L6T5YWlXG4gIGNzcyA9IGNzcyB8fCAnJztcbiAgY3NzID0gY3NzLnRvU3RyaW5nKCk7XG4gIGlmICghY3NzKSByZXR1cm4gJyc7XG5cbiAgdmFyIG1lID0gdGhpcztcbiAgdmFyIG9wdGlvbnMgPSBtZS5vcHRpb25zO1xuICB2YXIgd2hpdGVMaXN0ID0gb3B0aW9ucy53aGl0ZUxpc3Q7XG4gIHZhciBvbkF0dHIgPSBvcHRpb25zLm9uQXR0cjtcbiAgdmFyIG9uSWdub3JlQXR0ciA9IG9wdGlvbnMub25JZ25vcmVBdHRyO1xuICB2YXIgc2FmZUF0dHJWYWx1ZSA9IG9wdGlvbnMuc2FmZUF0dHJWYWx1ZTtcblxuICB2YXIgcmV0Q1NTID0gcGFyc2VTdHlsZShjc3MsIGZ1bmN0aW9uIChzb3VyY2VQb3NpdGlvbiwgcG9zaXRpb24sIG5hbWUsIHZhbHVlLCBzb3VyY2UpIHtcblxuICAgIHZhciBjaGVjayA9IHdoaXRlTGlzdFtuYW1lXTtcbiAgICB2YXIgaXNXaGl0ZSA9IGZhbHNlO1xuICAgIGlmIChjaGVjayA9PT0gdHJ1ZSkgaXNXaGl0ZSA9IGNoZWNrO1xuICAgIGVsc2UgaWYgKHR5cGVvZiBjaGVjayA9PT0gJ2Z1bmN0aW9uJykgaXNXaGl0ZSA9IGNoZWNrKHZhbHVlKTtcbiAgICBlbHNlIGlmIChjaGVjayBpbnN0YW5jZW9mIFJlZ0V4cCkgaXNXaGl0ZSA9IGNoZWNrLnRlc3QodmFsdWUpO1xuICAgIGlmIChpc1doaXRlICE9PSB0cnVlKSBpc1doaXRlID0gZmFsc2U7XG5cbiAgICAvLyDlpoLmnpzov4fmu6TlkI4gdmFsdWUg5Li656m65YiZ55u05o6l5b+955WlXG4gICAgdmFsdWUgPSBzYWZlQXR0clZhbHVlKG5hbWUsIHZhbHVlKTtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm47XG5cbiAgICB2YXIgb3B0cyA9IHtcbiAgICAgIHBvc2l0aW9uOiBwb3NpdGlvbixcbiAgICAgIHNvdXJjZVBvc2l0aW9uOiBzb3VyY2VQb3NpdGlvbixcbiAgICAgIHNvdXJjZTogc291cmNlLFxuICAgICAgaXNXaGl0ZTogaXNXaGl0ZVxuICAgIH07XG5cbiAgICBpZiAoaXNXaGl0ZSkge1xuXG4gICAgICB2YXIgcmV0ID0gb25BdHRyKG5hbWUsIHZhbHVlLCBvcHRzKTtcbiAgICAgIGlmIChpc051bGwocmV0KSkge1xuICAgICAgICByZXR1cm4gbmFtZSArICc6JyArIHZhbHVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHJldDtcbiAgICAgIH1cblxuICAgIH0gZWxzZSB7XG5cbiAgICAgIHZhciByZXQgPSBvbklnbm9yZUF0dHIobmFtZSwgdmFsdWUsIG9wdHMpO1xuICAgICAgaWYgKCFpc051bGwocmV0KSkge1xuICAgICAgICByZXR1cm4gcmV0O1xuICAgICAgfVxuXG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gcmV0Q1NTO1xufTtcblxuXG5tb2R1bGUuZXhwb3J0cyA9IEZpbHRlckNTUztcbiIsIi8qKlxuICogY3NzZmlsdGVyXG4gKlxuICogQGF1dGhvciDogIHpm7c8bGVpem9uZ21pbkBnbWFpbC5jb20+XG4gKi9cblxuZnVuY3Rpb24gZ2V0RGVmYXVsdFdoaXRlTGlzdCAoKSB7XG4gIC8vIOeZveWQjeWNleWAvOivtOaYju+8mlxuICAvLyB0cnVlOiDlhYHorrjor6XlsZ7mgKdcbiAgLy8gRnVuY3Rpb246IGZ1bmN0aW9uICh2YWwpIHsgfSDov5Tlm550cnVl6KGo56S65YWB6K646K+l5bGe5oCn77yM5YW25LuW5YC85Z2H6KGo56S65LiN5YWB6K64XG4gIC8vIFJlZ0V4cDogcmVnZXhwLnRlc3QodmFsKSDov5Tlm550cnVl6KGo56S65YWB6K646K+l5bGe5oCn77yM5YW25LuW5YC85Z2H6KGo56S65LiN5YWB6K64XG4gIC8vIOmZpOS4iumdouWIl+WHuueahOWAvOWkluWdh+ihqOekuuS4jeWFgeiuuFxuICB2YXIgd2hpdGVMaXN0ID0ge307XG5cbiAgd2hpdGVMaXN0WydhbGlnbi1jb250ZW50J10gPSBmYWxzZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ2FsaWduLWl0ZW1zJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ2FsaWduLXNlbGYnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBhdXRvXG4gIHdoaXRlTGlzdFsnYWxpZ25tZW50LWFkanVzdCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGF1dG9cbiAgd2hpdGVMaXN0WydhbGlnbm1lbnQtYmFzZWxpbmUnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBiYXNlbGluZVxuICB3aGl0ZUxpc3RbJ2FsbCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGRlcGVuZGluZyBvbiBpbmRpdmlkdWFsIHByb3BlcnRpZXNcbiAgd2hpdGVMaXN0WydhbmNob3ItcG9pbnQnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBub25lXG4gIHdoaXRlTGlzdFsnYW5pbWF0aW9uJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogZGVwZW5kaW5nIG9uIGluZGl2aWR1YWwgcHJvcGVydGllc1xuICB3aGl0ZUxpc3RbJ2FuaW1hdGlvbi1kZWxheSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IDBcbiAgd2hpdGVMaXN0WydhbmltYXRpb24tZGlyZWN0aW9uJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogbm9ybWFsXG4gIHdoaXRlTGlzdFsnYW5pbWF0aW9uLWR1cmF0aW9uJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogMFxuICB3aGl0ZUxpc3RbJ2FuaW1hdGlvbi1maWxsLW1vZGUnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBub25lXG4gIHdoaXRlTGlzdFsnYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IDFcbiAgd2hpdGVMaXN0WydhbmltYXRpb24tbmFtZSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG5vbmVcbiAgd2hpdGVMaXN0WydhbmltYXRpb24tcGxheS1zdGF0ZSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IHJ1bm5pbmdcbiAgd2hpdGVMaXN0WydhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogZWFzZVxuICB3aGl0ZUxpc3RbJ2F6aW11dGgnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBjZW50ZXJcbiAgd2hpdGVMaXN0WydiYWNrZmFjZS12aXNpYmlsaXR5J10gPSBmYWxzZTsgLy8gZGVmYXVsdDogdmlzaWJsZVxuICB3aGl0ZUxpc3RbJ2JhY2tncm91bmQnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IGRlcGVuZGluZyBvbiBpbmRpdmlkdWFsIHByb3BlcnRpZXNcbiAgd2hpdGVMaXN0WydiYWNrZ3JvdW5kLWF0dGFjaG1lbnQnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IHNjcm9sbFxuICB3aGl0ZUxpc3RbJ2JhY2tncm91bmQtY2xpcCddID0gdHJ1ZTsgLy8gZGVmYXVsdDogYm9yZGVyLWJveFxuICB3aGl0ZUxpc3RbJ2JhY2tncm91bmQtY29sb3InXSA9IHRydWU7IC8vIGRlZmF1bHQ6IHRyYW5zcGFyZW50XG4gIHdoaXRlTGlzdFsnYmFja2dyb3VuZC1pbWFnZSddID0gdHJ1ZTsgLy8gZGVmYXVsdDogbm9uZVxuICB3aGl0ZUxpc3RbJ2JhY2tncm91bmQtb3JpZ2luJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBwYWRkaW5nLWJveFxuICB3aGl0ZUxpc3RbJ2JhY2tncm91bmQtcG9zaXRpb24nXSA9IHRydWU7IC8vIGRlZmF1bHQ6IDAlIDAlXG4gIHdoaXRlTGlzdFsnYmFja2dyb3VuZC1yZXBlYXQnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IHJlcGVhdFxuICB3aGl0ZUxpc3RbJ2JhY2tncm91bmQtc2l6ZSddID0gdHJ1ZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ2Jhc2VsaW5lLXNoaWZ0J10gPSBmYWxzZTsgLy8gZGVmYXVsdDogYmFzZWxpbmVcbiAgd2hpdGVMaXN0WydiaW5kaW5nJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogbm9uZVxuICB3aGl0ZUxpc3RbJ2JsZWVkJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogNnB0XG4gIHdoaXRlTGlzdFsnYm9va21hcmstbGFiZWwnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBjb250ZW50KClcbiAgd2hpdGVMaXN0Wydib29rbWFyay1sZXZlbCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG5vbmVcbiAgd2hpdGVMaXN0Wydib29rbWFyay1zdGF0ZSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG9wZW5cbiAgd2hpdGVMaXN0Wydib3JkZXInXSA9IHRydWU7IC8vIGRlZmF1bHQ6IGRlcGVuZGluZyBvbiBpbmRpdmlkdWFsIHByb3BlcnRpZXNcbiAgd2hpdGVMaXN0Wydib3JkZXItYm90dG9tJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBkZXBlbmRpbmcgb24gaW5kaXZpZHVhbCBwcm9wZXJ0aWVzXG4gIHdoaXRlTGlzdFsnYm9yZGVyLWJvdHRvbS1jb2xvciddID0gdHJ1ZTsgLy8gZGVmYXVsdDogY3VycmVudCBjb2xvclxuICB3aGl0ZUxpc3RbJ2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXMnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IDBcbiAgd2hpdGVMaXN0Wydib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cyddID0gdHJ1ZTsgLy8gZGVmYXVsdDogMFxuICB3aGl0ZUxpc3RbJ2JvcmRlci1ib3R0b20tc3R5bGUnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IG5vbmVcbiAgd2hpdGVMaXN0Wydib3JkZXItYm90dG9tLXdpZHRoJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBtZWRpdW1cbiAgd2hpdGVMaXN0Wydib3JkZXItY29sbGFwc2UnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IHNlcGFyYXRlXG4gIHdoaXRlTGlzdFsnYm9yZGVyLWNvbG9yJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBkZXBlbmRpbmcgb24gaW5kaXZpZHVhbCBwcm9wZXJ0aWVzXG4gIHdoaXRlTGlzdFsnYm9yZGVyLWltYWdlJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBub25lXG4gIHdoaXRlTGlzdFsnYm9yZGVyLWltYWdlLW91dHNldCddID0gdHJ1ZTsgLy8gZGVmYXVsdDogMFxuICB3aGl0ZUxpc3RbJ2JvcmRlci1pbWFnZS1yZXBlYXQnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IHN0cmV0Y2hcbiAgd2hpdGVMaXN0Wydib3JkZXItaW1hZ2Utc2xpY2UnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IDEwMCVcbiAgd2hpdGVMaXN0Wydib3JkZXItaW1hZ2Utc291cmNlJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBub25lXG4gIHdoaXRlTGlzdFsnYm9yZGVyLWltYWdlLXdpZHRoJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiAxXG4gIHdoaXRlTGlzdFsnYm9yZGVyLWxlZnQnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IGRlcGVuZGluZyBvbiBpbmRpdmlkdWFsIHByb3BlcnRpZXNcbiAgd2hpdGVMaXN0Wydib3JkZXItbGVmdC1jb2xvciddID0gdHJ1ZTsgLy8gZGVmYXVsdDogY3VycmVudCBjb2xvclxuICB3aGl0ZUxpc3RbJ2JvcmRlci1sZWZ0LXN0eWxlJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBub25lXG4gIHdoaXRlTGlzdFsnYm9yZGVyLWxlZnQtd2lkdGgnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IG1lZGl1bVxuICB3aGl0ZUxpc3RbJ2JvcmRlci1yYWRpdXMnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IDBcbiAgd2hpdGVMaXN0Wydib3JkZXItcmlnaHQnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IGRlcGVuZGluZyBvbiBpbmRpdmlkdWFsIHByb3BlcnRpZXNcbiAgd2hpdGVMaXN0Wydib3JkZXItcmlnaHQtY29sb3InXSA9IHRydWU7IC8vIGRlZmF1bHQ6IGN1cnJlbnQgY29sb3JcbiAgd2hpdGVMaXN0Wydib3JkZXItcmlnaHQtc3R5bGUnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IG5vbmVcbiAgd2hpdGVMaXN0Wydib3JkZXItcmlnaHQtd2lkdGgnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IG1lZGl1bVxuICB3aGl0ZUxpc3RbJ2JvcmRlci1zcGFjaW5nJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiAwXG4gIHdoaXRlTGlzdFsnYm9yZGVyLXN0eWxlJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBkZXBlbmRpbmcgb24gaW5kaXZpZHVhbCBwcm9wZXJ0aWVzXG4gIHdoaXRlTGlzdFsnYm9yZGVyLXRvcCddID0gdHJ1ZTsgLy8gZGVmYXVsdDogZGVwZW5kaW5nIG9uIGluZGl2aWR1YWwgcHJvcGVydGllc1xuICB3aGl0ZUxpc3RbJ2JvcmRlci10b3AtY29sb3InXSA9IHRydWU7IC8vIGRlZmF1bHQ6IGN1cnJlbnQgY29sb3JcbiAgd2hpdGVMaXN0Wydib3JkZXItdG9wLWxlZnQtcmFkaXVzJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiAwXG4gIHdoaXRlTGlzdFsnYm9yZGVyLXRvcC1yaWdodC1yYWRpdXMnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IDBcbiAgd2hpdGVMaXN0Wydib3JkZXItdG9wLXN0eWxlJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBub25lXG4gIHdoaXRlTGlzdFsnYm9yZGVyLXRvcC13aWR0aCddID0gdHJ1ZTsgLy8gZGVmYXVsdDogbWVkaXVtXG4gIHdoaXRlTGlzdFsnYm9yZGVyLXdpZHRoJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBkZXBlbmRpbmcgb24gaW5kaXZpZHVhbCBwcm9wZXJ0aWVzXG4gIHdoaXRlTGlzdFsnYm90dG9tJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ2JveC1kZWNvcmF0aW9uLWJyZWFrJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBzbGljZVxuICB3aGl0ZUxpc3RbJ2JveC1zaGFkb3cnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IG5vbmVcbiAgd2hpdGVMaXN0Wydib3gtc2l6aW5nJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBjb250ZW50LWJveFxuICB3aGl0ZUxpc3RbJ2JveC1zbmFwJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBub25lXG4gIHdoaXRlTGlzdFsnYm94LXN1cHByZXNzJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBzaG93XG4gIHdoaXRlTGlzdFsnYnJlYWstYWZ0ZXInXSA9IHRydWU7IC8vIGRlZmF1bHQ6IGF1dG9cbiAgd2hpdGVMaXN0WydicmVhay1iZWZvcmUnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IGF1dG9cbiAgd2hpdGVMaXN0WydicmVhay1pbnNpZGUnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IGF1dG9cbiAgd2hpdGVMaXN0WydjYXB0aW9uLXNpZGUnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiB0b3BcbiAgd2hpdGVMaXN0WydjaGFpbnMnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBub25lXG4gIHdoaXRlTGlzdFsnY2xlYXInXSA9IHRydWU7IC8vIGRlZmF1bHQ6IG5vbmVcbiAgd2hpdGVMaXN0WydjbGlwJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ2NsaXAtcGF0aCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG5vbmVcbiAgd2hpdGVMaXN0WydjbGlwLXJ1bGUnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBub256ZXJvXG4gIHdoaXRlTGlzdFsnY29sb3InXSA9IHRydWU7IC8vIGRlZmF1bHQ6IGltcGxlbWVudGF0aW9uIGRlcGVuZGVudFxuICB3aGl0ZUxpc3RbJ2NvbG9yLWludGVycG9sYXRpb24tZmlsdGVycyddID0gdHJ1ZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ2NvbHVtbi1jb3VudCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGF1dG9cbiAgd2hpdGVMaXN0Wydjb2x1bW4tZmlsbCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGJhbGFuY2VcbiAgd2hpdGVMaXN0Wydjb2x1bW4tZ2FwJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogbm9ybWFsXG4gIHdoaXRlTGlzdFsnY29sdW1uLXJ1bGUnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBkZXBlbmRpbmcgb24gaW5kaXZpZHVhbCBwcm9wZXJ0aWVzXG4gIHdoaXRlTGlzdFsnY29sdW1uLXJ1bGUtY29sb3InXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBjdXJyZW50IGNvbG9yXG4gIHdoaXRlTGlzdFsnY29sdW1uLXJ1bGUtc3R5bGUnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBtZWRpdW1cbiAgd2hpdGVMaXN0Wydjb2x1bW4tcnVsZS13aWR0aCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG1lZGl1bVxuICB3aGl0ZUxpc3RbJ2NvbHVtbi1zcGFuJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogbm9uZVxuICB3aGl0ZUxpc3RbJ2NvbHVtbi13aWR0aCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGF1dG9cbiAgd2hpdGVMaXN0Wydjb2x1bW5zJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogZGVwZW5kaW5nIG9uIGluZGl2aWR1YWwgcHJvcGVydGllc1xuICB3aGl0ZUxpc3RbJ2NvbnRhaW4nXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBub25lXG4gIHdoaXRlTGlzdFsnY29udGVudCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG5vcm1hbFxuICB3aGl0ZUxpc3RbJ2NvdW50ZXItaW5jcmVtZW50J10gPSBmYWxzZTsgLy8gZGVmYXVsdDogbm9uZVxuICB3aGl0ZUxpc3RbJ2NvdW50ZXItcmVzZXQnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBub25lXG4gIHdoaXRlTGlzdFsnY291bnRlci1zZXQnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBub25lXG4gIHdoaXRlTGlzdFsnY3JvcCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGF1dG9cbiAgd2hpdGVMaXN0WydjdWUnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBkZXBlbmRpbmcgb24gaW5kaXZpZHVhbCBwcm9wZXJ0aWVzXG4gIHdoaXRlTGlzdFsnY3VlLWFmdGVyJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogbm9uZVxuICB3aGl0ZUxpc3RbJ2N1ZS1iZWZvcmUnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBub25lXG4gIHdoaXRlTGlzdFsnY3Vyc29yJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ2RpcmVjdGlvbiddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGx0clxuICB3aGl0ZUxpc3RbJ2Rpc3BsYXknXSA9IHRydWU7IC8vIGRlZmF1bHQ6IGRlcGVuZGluZyBvbiBpbmRpdmlkdWFsIHByb3BlcnRpZXNcbiAgd2hpdGVMaXN0WydkaXNwbGF5LWluc2lkZSddID0gdHJ1ZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ2Rpc3BsYXktbGlzdCddID0gdHJ1ZTsgLy8gZGVmYXVsdDogbm9uZVxuICB3aGl0ZUxpc3RbJ2Rpc3BsYXktb3V0c2lkZSddID0gdHJ1ZTsgLy8gZGVmYXVsdDogaW5saW5lLWxldmVsXG4gIHdoaXRlTGlzdFsnZG9taW5hbnQtYmFzZWxpbmUnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBhdXRvXG4gIHdoaXRlTGlzdFsnZWxldmF0aW9uJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogbGV2ZWxcbiAgd2hpdGVMaXN0WydlbXB0eS1jZWxscyddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IHNob3dcbiAgd2hpdGVMaXN0WydmaWx0ZXInXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBub25lXG4gIHdoaXRlTGlzdFsnZmxleCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGRlcGVuZGluZyBvbiBpbmRpdmlkdWFsIHByb3BlcnRpZXNcbiAgd2hpdGVMaXN0WydmbGV4LWJhc2lzJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ2ZsZXgtZGlyZWN0aW9uJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogcm93XG4gIHdoaXRlTGlzdFsnZmxleC1mbG93J10gPSBmYWxzZTsgLy8gZGVmYXVsdDogZGVwZW5kaW5nIG9uIGluZGl2aWR1YWwgcHJvcGVydGllc1xuICB3aGl0ZUxpc3RbJ2ZsZXgtZ3JvdyddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IDBcbiAgd2hpdGVMaXN0WydmbGV4LXNocmluayddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IDFcbiAgd2hpdGVMaXN0WydmbGV4LXdyYXAnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBub3dyYXBcbiAgd2hpdGVMaXN0WydmbG9hdCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG5vbmVcbiAgd2hpdGVMaXN0WydmbG9hdC1vZmZzZXQnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiAwIDBcbiAgd2hpdGVMaXN0WydmbG9vZC1jb2xvciddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGJsYWNrXG4gIHdoaXRlTGlzdFsnZmxvb2Qtb3BhY2l0eSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IDFcbiAgd2hpdGVMaXN0WydmbG93LWZyb20nXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBub25lXG4gIHdoaXRlTGlzdFsnZmxvdy1pbnRvJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogbm9uZVxuICB3aGl0ZUxpc3RbJ2ZvbnQnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IGRlcGVuZGluZyBvbiBpbmRpdmlkdWFsIHByb3BlcnRpZXNcbiAgd2hpdGVMaXN0Wydmb250LWZhbWlseSddID0gdHJ1ZTsgLy8gZGVmYXVsdDogaW1wbGVtZW50YXRpb24gZGVwZW5kZW50XG4gIHdoaXRlTGlzdFsnZm9udC1mZWF0dXJlLXNldHRpbmdzJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBub3JtYWxcbiAgd2hpdGVMaXN0Wydmb250LWtlcm5pbmcnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IGF1dG9cbiAgd2hpdGVMaXN0Wydmb250LWxhbmd1YWdlLW92ZXJyaWRlJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBub3JtYWxcbiAgd2hpdGVMaXN0Wydmb250LXNpemUnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IG1lZGl1bVxuICB3aGl0ZUxpc3RbJ2ZvbnQtc2l6ZS1hZGp1c3QnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IG5vbmVcbiAgd2hpdGVMaXN0Wydmb250LXN0cmV0Y2gnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IG5vcm1hbFxuICB3aGl0ZUxpc3RbJ2ZvbnQtc3R5bGUnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IG5vcm1hbFxuICB3aGl0ZUxpc3RbJ2ZvbnQtc3ludGhlc2lzJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiB3ZWlnaHQgc3R5bGVcbiAgd2hpdGVMaXN0Wydmb250LXZhcmlhbnQnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IG5vcm1hbFxuICB3aGl0ZUxpc3RbJ2ZvbnQtdmFyaWFudC1hbHRlcm5hdGVzJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBub3JtYWxcbiAgd2hpdGVMaXN0Wydmb250LXZhcmlhbnQtY2FwcyddID0gdHJ1ZTsgLy8gZGVmYXVsdDogbm9ybWFsXG4gIHdoaXRlTGlzdFsnZm9udC12YXJpYW50LWVhc3QtYXNpYW4nXSA9IHRydWU7IC8vIGRlZmF1bHQ6IG5vcm1hbFxuICB3aGl0ZUxpc3RbJ2ZvbnQtdmFyaWFudC1saWdhdHVyZXMnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IG5vcm1hbFxuICB3aGl0ZUxpc3RbJ2ZvbnQtdmFyaWFudC1udW1lcmljJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBub3JtYWxcbiAgd2hpdGVMaXN0Wydmb250LXZhcmlhbnQtcG9zaXRpb24nXSA9IHRydWU7IC8vIGRlZmF1bHQ6IG5vcm1hbFxuICB3aGl0ZUxpc3RbJ2ZvbnQtd2VpZ2h0J10gPSB0cnVlOyAvLyBkZWZhdWx0OiBub3JtYWxcbiAgd2hpdGVMaXN0WydncmlkJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogZGVwZW5kaW5nIG9uIGluZGl2aWR1YWwgcHJvcGVydGllc1xuICB3aGl0ZUxpc3RbJ2dyaWQtYXJlYSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGRlcGVuZGluZyBvbiBpbmRpdmlkdWFsIHByb3BlcnRpZXNcbiAgd2hpdGVMaXN0WydncmlkLWF1dG8tY29sdW1ucyddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGF1dG9cbiAgd2hpdGVMaXN0WydncmlkLWF1dG8tZmxvdyddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG5vbmVcbiAgd2hpdGVMaXN0WydncmlkLWF1dG8tcm93cyddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGF1dG9cbiAgd2hpdGVMaXN0WydncmlkLWNvbHVtbiddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGRlcGVuZGluZyBvbiBpbmRpdmlkdWFsIHByb3BlcnRpZXNcbiAgd2hpdGVMaXN0WydncmlkLWNvbHVtbi1lbmQnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBhdXRvXG4gIHdoaXRlTGlzdFsnZ3JpZC1jb2x1bW4tc3RhcnQnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBhdXRvXG4gIHdoaXRlTGlzdFsnZ3JpZC1yb3cnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBkZXBlbmRpbmcgb24gaW5kaXZpZHVhbCBwcm9wZXJ0aWVzXG4gIHdoaXRlTGlzdFsnZ3JpZC1yb3ctZW5kJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ2dyaWQtcm93LXN0YXJ0J10gPSBmYWxzZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ2dyaWQtdGVtcGxhdGUnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBkZXBlbmRpbmcgb24gaW5kaXZpZHVhbCBwcm9wZXJ0aWVzXG4gIHdoaXRlTGlzdFsnZ3JpZC10ZW1wbGF0ZS1hcmVhcyddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG5vbmVcbiAgd2hpdGVMaXN0WydncmlkLXRlbXBsYXRlLWNvbHVtbnMnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBub25lXG4gIHdoaXRlTGlzdFsnZ3JpZC10ZW1wbGF0ZS1yb3dzJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogbm9uZVxuICB3aGl0ZUxpc3RbJ2hhbmdpbmctcHVuY3R1YXRpb24nXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBub25lXG4gIHdoaXRlTGlzdFsnaGVpZ2h0J10gPSB0cnVlOyAvLyBkZWZhdWx0OiBhdXRvXG4gIHdoaXRlTGlzdFsnaHlwaGVucyddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG1hbnVhbFxuICB3aGl0ZUxpc3RbJ2ljb24nXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBhdXRvXG4gIHdoaXRlTGlzdFsnaW1hZ2Utb3JpZW50YXRpb24nXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBhdXRvXG4gIHdoaXRlTGlzdFsnaW1hZ2UtcmVzb2x1dGlvbiddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG5vcm1hbFxuICB3aGl0ZUxpc3RbJ2ltZS1tb2RlJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ2luaXRpYWwtbGV0dGVycyddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG5vcm1hbFxuICB3aGl0ZUxpc3RbJ2lubGluZS1ib3gtYWxpZ24nXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBsYXN0XG4gIHdoaXRlTGlzdFsnanVzdGlmeS1jb250ZW50J10gPSBmYWxzZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ2p1c3RpZnktaXRlbXMnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBhdXRvXG4gIHdoaXRlTGlzdFsnanVzdGlmeS1zZWxmJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ2xlZnQnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBhdXRvXG4gIHdoaXRlTGlzdFsnbGV0dGVyLXNwYWNpbmcnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IG5vcm1hbFxuICB3aGl0ZUxpc3RbJ2xpZ2h0aW5nLWNvbG9yJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiB3aGl0ZVxuICB3aGl0ZUxpc3RbJ2xpbmUtYm94LWNvbnRhaW4nXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBibG9jayBpbmxpbmUgcmVwbGFjZWRcbiAgd2hpdGVMaXN0WydsaW5lLWJyZWFrJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ2xpbmUtZ3JpZCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG1hdGNoLXBhcmVudFxuICB3aGl0ZUxpc3RbJ2xpbmUtaGVpZ2h0J10gPSBmYWxzZTsgLy8gZGVmYXVsdDogbm9ybWFsXG4gIHdoaXRlTGlzdFsnbGluZS1zbmFwJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogbm9uZVxuICB3aGl0ZUxpc3RbJ2xpbmUtc3RhY2tpbmcnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBkZXBlbmRpbmcgb24gaW5kaXZpZHVhbCBwcm9wZXJ0aWVzXG4gIHdoaXRlTGlzdFsnbGluZS1zdGFja2luZy1ydWJ5J10gPSBmYWxzZTsgLy8gZGVmYXVsdDogZXhjbHVkZS1ydWJ5XG4gIHdoaXRlTGlzdFsnbGluZS1zdGFja2luZy1zaGlmdCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGNvbnNpZGVyLXNoaWZ0c1xuICB3aGl0ZUxpc3RbJ2xpbmUtc3RhY2tpbmctc3RyYXRlZ3knXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBpbmxpbmUtbGluZS1oZWlnaHRcbiAgd2hpdGVMaXN0WydsaXN0LXN0eWxlJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBkZXBlbmRpbmcgb24gaW5kaXZpZHVhbCBwcm9wZXJ0aWVzXG4gIHdoaXRlTGlzdFsnbGlzdC1zdHlsZS1pbWFnZSddID0gdHJ1ZTsgLy8gZGVmYXVsdDogbm9uZVxuICB3aGl0ZUxpc3RbJ2xpc3Qtc3R5bGUtcG9zaXRpb24nXSA9IHRydWU7IC8vIGRlZmF1bHQ6IG91dHNpZGVcbiAgd2hpdGVMaXN0WydsaXN0LXN0eWxlLXR5cGUnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IGRpc2NcbiAgd2hpdGVMaXN0WydtYXJnaW4nXSA9IHRydWU7IC8vIGRlZmF1bHQ6IGRlcGVuZGluZyBvbiBpbmRpdmlkdWFsIHByb3BlcnRpZXNcbiAgd2hpdGVMaXN0WydtYXJnaW4tYm90dG9tJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiAwXG4gIHdoaXRlTGlzdFsnbWFyZ2luLWxlZnQnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IDBcbiAgd2hpdGVMaXN0WydtYXJnaW4tcmlnaHQnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IDBcbiAgd2hpdGVMaXN0WydtYXJnaW4tdG9wJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiAwXG4gIHdoaXRlTGlzdFsnbWFya2VyLW9mZnNldCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGF1dG9cbiAgd2hpdGVMaXN0WydtYXJrZXItc2lkZSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGxpc3QtaXRlbVxuICB3aGl0ZUxpc3RbJ21hcmtzJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogbm9uZVxuICB3aGl0ZUxpc3RbJ21hc2snXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBib3JkZXItYm94XG4gIHdoaXRlTGlzdFsnbWFzay1ib3gnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBzZWUgaW5kaXZpZHVhbCBwcm9wZXJ0aWVzXG4gIHdoaXRlTGlzdFsnbWFzay1ib3gtb3V0c2V0J10gPSBmYWxzZTsgLy8gZGVmYXVsdDogMFxuICB3aGl0ZUxpc3RbJ21hc2stYm94LXJlcGVhdCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IHN0cmV0Y2hcbiAgd2hpdGVMaXN0WydtYXNrLWJveC1zbGljZSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IDAgZmlsbFxuICB3aGl0ZUxpc3RbJ21hc2stYm94LXNvdXJjZSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG5vbmVcbiAgd2hpdGVMaXN0WydtYXNrLWJveC13aWR0aCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGF1dG9cbiAgd2hpdGVMaXN0WydtYXNrLWNsaXAnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBib3JkZXItYm94XG4gIHdoaXRlTGlzdFsnbWFzay1pbWFnZSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG5vbmVcbiAgd2hpdGVMaXN0WydtYXNrLW9yaWdpbiddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGJvcmRlci1ib3hcbiAgd2hpdGVMaXN0WydtYXNrLXBvc2l0aW9uJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogY2VudGVyXG4gIHdoaXRlTGlzdFsnbWFzay1yZXBlYXQnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBuby1yZXBlYXRcbiAgd2hpdGVMaXN0WydtYXNrLXNpemUnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBib3JkZXItYm94XG4gIHdoaXRlTGlzdFsnbWFzay1zb3VyY2UtdHlwZSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGF1dG9cbiAgd2hpdGVMaXN0WydtYXNrLXR5cGUnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBsdW1pbmFuY2VcbiAgd2hpdGVMaXN0WydtYXgtaGVpZ2h0J10gPSB0cnVlOyAvLyBkZWZhdWx0OiBub25lXG4gIHdoaXRlTGlzdFsnbWF4LWxpbmVzJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogbm9uZVxuICB3aGl0ZUxpc3RbJ21heC13aWR0aCddID0gdHJ1ZTsgLy8gZGVmYXVsdDogbm9uZVxuICB3aGl0ZUxpc3RbJ21pbi1oZWlnaHQnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IDBcbiAgd2hpdGVMaXN0WydtaW4td2lkdGgnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IDBcbiAgd2hpdGVMaXN0Wydtb3ZlLXRvJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogbm9ybWFsXG4gIHdoaXRlTGlzdFsnbmF2LWRvd24nXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBhdXRvXG4gIHdoaXRlTGlzdFsnbmF2LWluZGV4J10gPSBmYWxzZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ25hdi1sZWZ0J10gPSBmYWxzZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ25hdi1yaWdodCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGF1dG9cbiAgd2hpdGVMaXN0WyduYXYtdXAnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBhdXRvXG4gIHdoaXRlTGlzdFsnb2JqZWN0LWZpdCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGZpbGxcbiAgd2hpdGVMaXN0WydvYmplY3QtcG9zaXRpb24nXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiA1MCUgNTAlXG4gIHdoaXRlTGlzdFsnb3BhY2l0eSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IDFcbiAgd2hpdGVMaXN0WydvcmRlciddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IDBcbiAgd2hpdGVMaXN0WydvcnBoYW5zJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogMlxuICB3aGl0ZUxpc3RbJ291dGxpbmUnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBkZXBlbmRpbmcgb24gaW5kaXZpZHVhbCBwcm9wZXJ0aWVzXG4gIHdoaXRlTGlzdFsnb3V0bGluZS1jb2xvciddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGludmVydFxuICB3aGl0ZUxpc3RbJ291dGxpbmUtb2Zmc2V0J10gPSBmYWxzZTsgLy8gZGVmYXVsdDogMFxuICB3aGl0ZUxpc3RbJ291dGxpbmUtc3R5bGUnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBub25lXG4gIHdoaXRlTGlzdFsnb3V0bGluZS13aWR0aCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG1lZGl1bVxuICB3aGl0ZUxpc3RbJ292ZXJmbG93J10gPSBmYWxzZTsgLy8gZGVmYXVsdDogZGVwZW5kaW5nIG9uIGluZGl2aWR1YWwgcHJvcGVydGllc1xuICB3aGl0ZUxpc3RbJ292ZXJmbG93LXdyYXAnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBub3JtYWxcbiAgd2hpdGVMaXN0WydvdmVyZmxvdy14J10gPSBmYWxzZTsgLy8gZGVmYXVsdDogdmlzaWJsZVxuICB3aGl0ZUxpc3RbJ292ZXJmbG93LXknXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiB2aXNpYmxlXG4gIHdoaXRlTGlzdFsncGFkZGluZyddID0gdHJ1ZTsgLy8gZGVmYXVsdDogZGVwZW5kaW5nIG9uIGluZGl2aWR1YWwgcHJvcGVydGllc1xuICB3aGl0ZUxpc3RbJ3BhZGRpbmctYm90dG9tJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiAwXG4gIHdoaXRlTGlzdFsncGFkZGluZy1sZWZ0J10gPSB0cnVlOyAvLyBkZWZhdWx0OiAwXG4gIHdoaXRlTGlzdFsncGFkZGluZy1yaWdodCddID0gdHJ1ZTsgLy8gZGVmYXVsdDogMFxuICB3aGl0ZUxpc3RbJ3BhZGRpbmctdG9wJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiAwXG4gIHdoaXRlTGlzdFsncGFnZSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGF1dG9cbiAgd2hpdGVMaXN0WydwYWdlLWJyZWFrLWFmdGVyJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ3BhZ2UtYnJlYWstYmVmb3JlJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ3BhZ2UtYnJlYWstaW5zaWRlJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ3BhZ2UtcG9saWN5J10gPSBmYWxzZTsgLy8gZGVmYXVsdDogc3RhcnRcbiAgd2hpdGVMaXN0WydwYXVzZSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGltcGxlbWVudGF0aW9uIGRlcGVuZGVudFxuICB3aGl0ZUxpc3RbJ3BhdXNlLWFmdGVyJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogaW1wbGVtZW50YXRpb24gZGVwZW5kZW50XG4gIHdoaXRlTGlzdFsncGF1c2UtYmVmb3JlJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogaW1wbGVtZW50YXRpb24gZGVwZW5kZW50XG4gIHdoaXRlTGlzdFsncGVyc3BlY3RpdmUnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBub25lXG4gIHdoaXRlTGlzdFsncGVyc3BlY3RpdmUtb3JpZ2luJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogNTAlIDUwJVxuICB3aGl0ZUxpc3RbJ3BpdGNoJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogbWVkaXVtXG4gIHdoaXRlTGlzdFsncGl0Y2gtcmFuZ2UnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiA1MFxuICB3aGl0ZUxpc3RbJ3BsYXktZHVyaW5nJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ3Bvc2l0aW9uJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogc3RhdGljXG4gIHdoaXRlTGlzdFsncHJlc2VudGF0aW9uLWxldmVsJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogMFxuICB3aGl0ZUxpc3RbJ3F1b3RlcyddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IHRleHRcbiAgd2hpdGVMaXN0WydyZWdpb24tZnJhZ21lbnQnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBhdXRvXG4gIHdoaXRlTGlzdFsncmVzaXplJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogbm9uZVxuICB3aGl0ZUxpc3RbJ3Jlc3QnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBkZXBlbmRpbmcgb24gaW5kaXZpZHVhbCBwcm9wZXJ0aWVzXG4gIHdoaXRlTGlzdFsncmVzdC1hZnRlciddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG5vbmVcbiAgd2hpdGVMaXN0WydyZXN0LWJlZm9yZSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG5vbmVcbiAgd2hpdGVMaXN0WydyaWNobmVzcyddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IDUwXG4gIHdoaXRlTGlzdFsncmlnaHQnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBhdXRvXG4gIHdoaXRlTGlzdFsncm90YXRpb24nXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiAwXG4gIHdoaXRlTGlzdFsncm90YXRpb24tcG9pbnQnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiA1MCUgNTAlXG4gIHdoaXRlTGlzdFsncnVieS1hbGlnbiddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGF1dG9cbiAgd2hpdGVMaXN0WydydWJ5LW1lcmdlJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogc2VwYXJhdGVcbiAgd2hpdGVMaXN0WydydWJ5LXBvc2l0aW9uJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogYmVmb3JlXG4gIHdoaXRlTGlzdFsnc2hhcGUtaW1hZ2UtdGhyZXNob2xkJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogMC4wXG4gIHdoaXRlTGlzdFsnc2hhcGUtb3V0c2lkZSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG5vbmVcbiAgd2hpdGVMaXN0WydzaGFwZS1tYXJnaW4nXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiAwXG4gIHdoaXRlTGlzdFsnc2l6ZSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGF1dG9cbiAgd2hpdGVMaXN0WydzcGVhayddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGF1dG9cbiAgd2hpdGVMaXN0WydzcGVhay1hcyddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG5vcm1hbFxuICB3aGl0ZUxpc3RbJ3NwZWFrLWhlYWRlciddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG9uY2VcbiAgd2hpdGVMaXN0WydzcGVhay1udW1lcmFsJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogY29udGludW91c1xuICB3aGl0ZUxpc3RbJ3NwZWFrLXB1bmN0dWF0aW9uJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogbm9uZVxuICB3aGl0ZUxpc3RbJ3NwZWVjaC1yYXRlJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogbWVkaXVtXG4gIHdoaXRlTGlzdFsnc3RyZXNzJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogNTBcbiAgd2hpdGVMaXN0WydzdHJpbmctc2V0J10gPSBmYWxzZTsgLy8gZGVmYXVsdDogbm9uZVxuICB3aGl0ZUxpc3RbJ3RhYi1zaXplJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogOFxuICB3aGl0ZUxpc3RbJ3RhYmxlLWxheW91dCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGF1dG9cbiAgd2hpdGVMaXN0Wyd0ZXh0LWFsaWduJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBzdGFydFxuICB3aGl0ZUxpc3RbJ3RleHQtYWxpZ24tbGFzdCddID0gdHJ1ZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ3RleHQtY29tYmluZS11cHJpZ2h0J10gPSB0cnVlOyAvLyBkZWZhdWx0OiBub25lXG4gIHdoaXRlTGlzdFsndGV4dC1kZWNvcmF0aW9uJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBub25lXG4gIHdoaXRlTGlzdFsndGV4dC1kZWNvcmF0aW9uLWNvbG9yJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBjdXJyZW50Q29sb3JcbiAgd2hpdGVMaXN0Wyd0ZXh0LWRlY29yYXRpb24tbGluZSddID0gdHJ1ZTsgLy8gZGVmYXVsdDogbm9uZVxuICB3aGl0ZUxpc3RbJ3RleHQtZGVjb3JhdGlvbi1za2lwJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBvYmplY3RzXG4gIHdoaXRlTGlzdFsndGV4dC1kZWNvcmF0aW9uLXN0eWxlJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBzb2xpZFxuICB3aGl0ZUxpc3RbJ3RleHQtZW1waGFzaXMnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IGRlcGVuZGluZyBvbiBpbmRpdmlkdWFsIHByb3BlcnRpZXNcbiAgd2hpdGVMaXN0Wyd0ZXh0LWVtcGhhc2lzLWNvbG9yJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBjdXJyZW50Q29sb3JcbiAgd2hpdGVMaXN0Wyd0ZXh0LWVtcGhhc2lzLXBvc2l0aW9uJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBvdmVyIHJpZ2h0XG4gIHdoaXRlTGlzdFsndGV4dC1lbXBoYXNpcy1zdHlsZSddID0gdHJ1ZTsgLy8gZGVmYXVsdDogbm9uZVxuICB3aGl0ZUxpc3RbJ3RleHQtaGVpZ2h0J10gPSB0cnVlOyAvLyBkZWZhdWx0OiBhdXRvXG4gIHdoaXRlTGlzdFsndGV4dC1pbmRlbnQnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IDBcbiAgd2hpdGVMaXN0Wyd0ZXh0LWp1c3RpZnknXSA9IHRydWU7IC8vIGRlZmF1bHQ6IGF1dG9cbiAgd2hpdGVMaXN0Wyd0ZXh0LW9yaWVudGF0aW9uJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBtaXhlZFxuICB3aGl0ZUxpc3RbJ3RleHQtb3ZlcmZsb3cnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IGNsaXBcbiAgd2hpdGVMaXN0Wyd0ZXh0LXNoYWRvdyddID0gdHJ1ZTsgLy8gZGVmYXVsdDogbm9uZVxuICB3aGl0ZUxpc3RbJ3RleHQtc3BhY2UtY29sbGFwc2UnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IGNvbGxhcHNlXG4gIHdoaXRlTGlzdFsndGV4dC10cmFuc2Zvcm0nXSA9IHRydWU7IC8vIGRlZmF1bHQ6IG5vbmVcbiAgd2hpdGVMaXN0Wyd0ZXh0LXVuZGVybGluZS1wb3NpdGlvbiddID0gdHJ1ZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ3RleHQtd3JhcCddID0gdHJ1ZTsgLy8gZGVmYXVsdDogbm9ybWFsXG4gIHdoaXRlTGlzdFsndG9wJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ3RyYW5zZm9ybSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG5vbmVcbiAgd2hpdGVMaXN0Wyd0cmFuc2Zvcm0tb3JpZ2luJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogNTAlIDUwJSAwXG4gIHdoaXRlTGlzdFsndHJhbnNmb3JtLXN0eWxlJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogZmxhdFxuICB3aGl0ZUxpc3RbJ3RyYW5zaXRpb24nXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBkZXBlbmRpbmcgb24gaW5kaXZpZHVhbCBwcm9wZXJ0aWVzXG4gIHdoaXRlTGlzdFsndHJhbnNpdGlvbi1kZWxheSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IDBzXG4gIHdoaXRlTGlzdFsndHJhbnNpdGlvbi1kdXJhdGlvbiddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IDBzXG4gIHdoaXRlTGlzdFsndHJhbnNpdGlvbi1wcm9wZXJ0eSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGFsbFxuICB3aGl0ZUxpc3RbJ3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogZWFzZVxuICB3aGl0ZUxpc3RbJ3VuaWNvZGUtYmlkaSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG5vcm1hbFxuICB3aGl0ZUxpc3RbJ3ZlcnRpY2FsLWFsaWduJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogYmFzZWxpbmVcbiAgd2hpdGVMaXN0Wyd2aXNpYmlsaXR5J10gPSBmYWxzZTsgLy8gZGVmYXVsdDogdmlzaWJsZVxuICB3aGl0ZUxpc3RbJ3ZvaWNlLWJhbGFuY2UnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBjZW50ZXJcbiAgd2hpdGVMaXN0Wyd2b2ljZS1kdXJhdGlvbiddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGF1dG9cbiAgd2hpdGVMaXN0Wyd2b2ljZS1mYW1pbHknXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBpbXBsZW1lbnRhdGlvbiBkZXBlbmRlbnRcbiAgd2hpdGVMaXN0Wyd2b2ljZS1waXRjaCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG1lZGl1bVxuICB3aGl0ZUxpc3RbJ3ZvaWNlLXJhbmdlJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogbWVkaXVtXG4gIHdoaXRlTGlzdFsndm9pY2UtcmF0ZSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG5vcm1hbFxuICB3aGl0ZUxpc3RbJ3ZvaWNlLXN0cmVzcyddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG5vcm1hbFxuICB3aGl0ZUxpc3RbJ3ZvaWNlLXZvbHVtZSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG1lZGl1bVxuICB3aGl0ZUxpc3RbJ3ZvbHVtZSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG1lZGl1bVxuICB3aGl0ZUxpc3RbJ3doaXRlLXNwYWNlJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogbm9ybWFsXG4gIHdoaXRlTGlzdFsnd2lkb3dzJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogMlxuICB3aGl0ZUxpc3RbJ3dpZHRoJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBhdXRvXG4gIHdoaXRlTGlzdFsnd2lsbC1jaGFuZ2UnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBhdXRvXG4gIHdoaXRlTGlzdFsnd29yZC1icmVhayddID0gdHJ1ZTsgLy8gZGVmYXVsdDogbm9ybWFsXG4gIHdoaXRlTGlzdFsnd29yZC1zcGFjaW5nJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBub3JtYWxcbiAgd2hpdGVMaXN0Wyd3b3JkLXdyYXAnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IG5vcm1hbFxuICB3aGl0ZUxpc3RbJ3dyYXAtZmxvdyddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGF1dG9cbiAgd2hpdGVMaXN0Wyd3cmFwLXRocm91Z2gnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiB3cmFwXG4gIHdoaXRlTGlzdFsnd3JpdGluZy1tb2RlJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogaG9yaXpvbnRhbC10YlxuICB3aGl0ZUxpc3RbJ3otaW5kZXgnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBhdXRvXG5cbiAgcmV0dXJuIHdoaXRlTGlzdDtcbn1cblxuXG4vKipcbiAqIOWMuemFjeWIsOeZveWQjeWNleS4iueahOS4gOS4quWxnuaAp+aXtlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lXG4gKiBAcGFyYW0ge1N0cmluZ30gdmFsdWVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIG9uQXR0ciAobmFtZSwgdmFsdWUsIG9wdGlvbnMpIHtcbiAgLy8gZG8gbm90aGluZ1xufVxuXG4vKipcbiAqIOWMuemFjeWIsOS4jeWcqOeZveWQjeWNleS4iueahOS4gOS4quWxnuaAp+aXtlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lXG4gKiBAcGFyYW0ge1N0cmluZ30gdmFsdWVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIG9uSWdub3JlQXR0ciAobmFtZSwgdmFsdWUsIG9wdGlvbnMpIHtcbiAgLy8gZG8gbm90aGluZ1xufVxuXG52YXIgUkVHRVhQX1VSTF9KQVZBU0NSSVBUID0gL2phdmFzY3JpcHRcXHMqXFw6L2ltZztcblxuLyoqXG4gKiDov4fmu6TlsZ7mgKflgLxcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gbmFtZVxuICogQHBhcmFtIHtTdHJpbmd9IHZhbHVlXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIHNhZmVBdHRyVmFsdWUobmFtZSwgdmFsdWUpIHtcbiAgaWYgKFJFR0VYUF9VUkxfSkFWQVNDUklQVC50ZXN0KHZhbHVlKSkgcmV0dXJuICcnO1xuICByZXR1cm4gdmFsdWU7XG59XG5cblxuZXhwb3J0cy53aGl0ZUxpc3QgPSBnZXREZWZhdWx0V2hpdGVMaXN0KCk7XG5leHBvcnRzLmdldERlZmF1bHRXaGl0ZUxpc3QgPSBnZXREZWZhdWx0V2hpdGVMaXN0O1xuZXhwb3J0cy5vbkF0dHIgPSBvbkF0dHI7XG5leHBvcnRzLm9uSWdub3JlQXR0ciA9IG9uSWdub3JlQXR0cjtcbmV4cG9ydHMuc2FmZUF0dHJWYWx1ZSA9IHNhZmVBdHRyVmFsdWU7XG4iLCIvKipcbiAqIGNzc2ZpbHRlclxuICpcbiAqIEBhdXRob3Ig6ICB6Zu3PGxlaXpvbmdtaW5AZ21haWwuY29tPlxuICovXG5cbnZhciBERUZBVUxUID0gcmVxdWlyZSgnLi9kZWZhdWx0Jyk7XG52YXIgRmlsdGVyQ1NTID0gcmVxdWlyZSgnLi9jc3MnKTtcblxuXG4vKipcbiAqIFhTU+i/h+a7pFxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBjc3Mg6KaB6L+H5ruk55qEQ1NT5Luj56CBXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyDpgInpobnvvJp3aGl0ZUxpc3QsIG9uQXR0ciwgb25JZ25vcmVBdHRyXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGZpbHRlckNTUyAoaHRtbCwgb3B0aW9ucykge1xuICB2YXIgeHNzID0gbmV3IEZpbHRlckNTUyhvcHRpb25zKTtcbiAgcmV0dXJuIHhzcy5wcm9jZXNzKGh0bWwpO1xufVxuXG5cbi8vIOi+k+WHulxuZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzID0gZmlsdGVyQ1NTO1xuZXhwb3J0cy5GaWx0ZXJDU1MgPSBGaWx0ZXJDU1M7XG5mb3IgKHZhciBpIGluIERFRkFVTFQpIGV4cG9ydHNbaV0gPSBERUZBVUxUW2ldO1xuXG4vLyDlnKjmtY/op4jlmajnq6/kvb/nlKhcbmlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICB3aW5kb3cuZmlsdGVyQ1NTID0gbW9kdWxlLmV4cG9ydHM7XG59XG4iLCIvKipcbiAqIGNzc2ZpbHRlclxuICpcbiAqIEBhdXRob3Ig6ICB6Zu3PGxlaXpvbmdtaW5AZ21haWwuY29tPlxuICovXG5cbnZhciBfID0gcmVxdWlyZSgnLi91dGlsJyk7XG5cblxuLyoqXG4gKiDop6PmnpBzdHlsZVxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBjc3NcbiAqIEBwYXJhbSB7RnVuY3Rpb259IG9uQXR0ciDlpITnkIblsZ7mgKfnmoTlh73mlbBcbiAqICAg5Y+C5pWw5qC85byP77yaIGZ1bmN0aW9uIChzb3VyY2VQb3NpdGlvbiwgcG9zaXRpb24sIG5hbWUsIHZhbHVlLCBzb3VyY2UpXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIHBhcnNlU3R5bGUgKGNzcywgb25BdHRyKSB7XG4gIGNzcyA9IF8udHJpbVJpZ2h0KGNzcyk7XG4gIGlmIChjc3NbY3NzLmxlbmd0aCAtIDFdICE9PSAnOycpIGNzcyArPSAnOyc7XG4gIHZhciBjc3NMZW5ndGggPSBjc3MubGVuZ3RoO1xuICB2YXIgaXNQYXJlbnRoZXNpc09wZW4gPSBmYWxzZTtcbiAgdmFyIGxhc3RQb3MgPSAwO1xuICB2YXIgaSA9IDA7XG4gIHZhciByZXRDU1MgPSAnJztcblxuICBmdW5jdGlvbiBhZGROZXdBdHRyICgpIHtcbiAgICAvLyDlpoLmnpzmsqHmnInmraPluLjnmoTpl63lkIjlnIbmi6zlj7fvvIzliJnnm7TmjqXlv73nlaXlvZPliY3lsZ7mgKdcbiAgICBpZiAoIWlzUGFyZW50aGVzaXNPcGVuKSB7XG4gICAgICB2YXIgc291cmNlID0gXy50cmltKGNzcy5zbGljZShsYXN0UG9zLCBpKSk7XG4gICAgICB2YXIgaiA9IHNvdXJjZS5pbmRleE9mKCc6Jyk7XG4gICAgICBpZiAoaiAhPT0gLTEpIHtcbiAgICAgICAgdmFyIG5hbWUgPSBfLnRyaW0oc291cmNlLnNsaWNlKDAsIGopKTtcbiAgICAgICAgdmFyIHZhbHVlID0gXy50cmltKHNvdXJjZS5zbGljZShqICsgMSkpO1xuICAgICAgICAvLyDlv4XpobvmnInlsZ7mgKflkI3np7BcbiAgICAgICAgaWYgKG5hbWUpIHtcbiAgICAgICAgICB2YXIgcmV0ID0gb25BdHRyKGxhc3RQb3MsIHJldENTUy5sZW5ndGgsIG5hbWUsIHZhbHVlLCBzb3VyY2UpO1xuICAgICAgICAgIGlmIChyZXQpIHJldENTUyArPSByZXQgKyAnOyAnO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGxhc3RQb3MgPSBpICsgMTtcbiAgfVxuXG4gIGZvciAoOyBpIDwgY3NzTGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgYyA9IGNzc1tpXTtcbiAgICBpZiAoYyA9PT0gJy8nICYmIGNzc1tpICsgMV0gPT09ICcqJykge1xuICAgICAgLy8g5aSH5rOo5byA5aeLXG4gICAgICB2YXIgaiA9IGNzcy5pbmRleE9mKCcqLycsIGkgKyAyKTtcbiAgICAgIC8vIOWmguaenOayoeacieato+W4uOeahOWkh+azqOe7k+adn++8jOWImeWQjumdoueahOmDqOWIhuWFqOmDqOi3s+i/h1xuICAgICAgaWYgKGogPT09IC0xKSBicmVhaztcbiAgICAgIC8vIOebtOaOpeWwhuW9k+WJjeS9jee9ruiwg+WIsOWkh+azqOe7k+Wwvu+8jOW5tuS4lOWIneWni+WMlueKtuaAgVxuICAgICAgaSA9IGogKyAxO1xuICAgICAgbGFzdFBvcyA9IGkgKyAxO1xuICAgICAgaXNQYXJlbnRoZXNpc09wZW4gPSBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKGMgPT09ICcoJykge1xuICAgICAgaXNQYXJlbnRoZXNpc09wZW4gPSB0cnVlO1xuICAgIH0gZWxzZSBpZiAoYyA9PT0gJyknKSB7XG4gICAgICBpc1BhcmVudGhlc2lzT3BlbiA9IGZhbHNlO1xuICAgIH0gZWxzZSBpZiAoYyA9PT0gJzsnKSB7XG4gICAgICBpZiAoaXNQYXJlbnRoZXNpc09wZW4pIHtcbiAgICAgICAgLy8g5Zyo5ZyG5ous5Y+36YeM6Z2i77yM5b+955WlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhZGROZXdBdHRyKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChjID09PSAnXFxuJykge1xuICAgICAgYWRkTmV3QXR0cigpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBfLnRyaW0ocmV0Q1NTKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBwYXJzZVN0eWxlO1xuIiwibW9kdWxlLmV4cG9ydHMgPSB7XG4gIGluZGV4T2Y6IGZ1bmN0aW9uIChhcnIsIGl0ZW0pIHtcbiAgICB2YXIgaSwgajtcbiAgICBpZiAoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpIHtcbiAgICAgIHJldHVybiBhcnIuaW5kZXhPZihpdGVtKTtcbiAgICB9XG4gICAgZm9yIChpID0gMCwgaiA9IGFyci5sZW5ndGg7IGkgPCBqOyBpKyspIHtcbiAgICAgIGlmIChhcnJbaV0gPT09IGl0ZW0pIHtcbiAgICAgICAgcmV0dXJuIGk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiAtMTtcbiAgfSxcbiAgZm9yRWFjaDogZnVuY3Rpb24gKGFyciwgZm4sIHNjb3BlKSB7XG4gICAgdmFyIGksIGo7XG4gICAgaWYgKEFycmF5LnByb3RvdHlwZS5mb3JFYWNoKSB7XG4gICAgICByZXR1cm4gYXJyLmZvckVhY2goZm4sIHNjb3BlKTtcbiAgICB9XG4gICAgZm9yIChpID0gMCwgaiA9IGFyci5sZW5ndGg7IGkgPCBqOyBpKyspIHtcbiAgICAgIGZuLmNhbGwoc2NvcGUsIGFycltpXSwgaSwgYXJyKTtcbiAgICB9XG4gIH0sXG4gIHRyaW06IGZ1bmN0aW9uIChzdHIpIHtcbiAgICBpZiAoU3RyaW5nLnByb3RvdHlwZS50cmltKSB7XG4gICAgICByZXR1cm4gc3RyLnRyaW0oKTtcbiAgICB9XG4gICAgcmV0dXJuIHN0ci5yZXBsYWNlKC8oXlxccyopfChcXHMqJCkvZywgJycpO1xuICB9LFxuICB0cmltUmlnaHQ6IGZ1bmN0aW9uIChzdHIpIHtcbiAgICBpZiAoU3RyaW5nLnByb3RvdHlwZS50cmltUmlnaHQpIHtcbiAgICAgIHJldHVybiBzdHIudHJpbVJpZ2h0KCk7XG4gICAgfVxuICAgIHJldHVybiBzdHIucmVwbGFjZSgvKFxccyokKS9nLCAnJyk7XG4gIH1cbn07XG4iLCIvKipcbiAqIGRlZmF1bHQgc2V0dGluZ3NcbiAqXG4gKiBAYXV0aG9yIFpvbmdtaW4gTGVpPGxlaXpvbmdtaW5AZ21haWwuY29tPlxuICovXG5cbnZhciBGaWx0ZXJDU1MgPSByZXF1aXJlKFwiY3NzZmlsdGVyXCIpLkZpbHRlckNTUztcbnZhciBnZXREZWZhdWx0Q1NTV2hpdGVMaXN0ID0gcmVxdWlyZShcImNzc2ZpbHRlclwiKS5nZXREZWZhdWx0V2hpdGVMaXN0O1xudmFyIF8gPSByZXF1aXJlKFwiLi91dGlsXCIpO1xuXG5mdW5jdGlvbiBnZXREZWZhdWx0V2hpdGVMaXN0KCkge1xuICByZXR1cm4ge1xuICAgIGE6IFtcInRhcmdldFwiLCBcImhyZWZcIiwgXCJ0aXRsZVwiXSxcbiAgICBhYmJyOiBbXCJ0aXRsZVwiXSxcbiAgICBhZGRyZXNzOiBbXSxcbiAgICBhcmVhOiBbXCJzaGFwZVwiLCBcImNvb3Jkc1wiLCBcImhyZWZcIiwgXCJhbHRcIl0sXG4gICAgYXJ0aWNsZTogW10sXG4gICAgYXNpZGU6IFtdLFxuICAgIGF1ZGlvOiBbXG4gICAgICBcImF1dG9wbGF5XCIsXG4gICAgICBcImNvbnRyb2xzXCIsXG4gICAgICBcImNyb3Nzb3JpZ2luXCIsXG4gICAgICBcImxvb3BcIixcbiAgICAgIFwibXV0ZWRcIixcbiAgICAgIFwicHJlbG9hZFwiLFxuICAgICAgXCJzcmNcIixcbiAgICBdLFxuICAgIGI6IFtdLFxuICAgIGJkaTogW1wiZGlyXCJdLFxuICAgIGJkbzogW1wiZGlyXCJdLFxuICAgIGJpZzogW10sXG4gICAgYmxvY2txdW90ZTogW1wiY2l0ZVwiXSxcbiAgICBicjogW10sXG4gICAgY2FwdGlvbjogW10sXG4gICAgY2VudGVyOiBbXSxcbiAgICBjaXRlOiBbXSxcbiAgICBjb2RlOiBbXSxcbiAgICBjb2w6IFtcImFsaWduXCIsIFwidmFsaWduXCIsIFwic3BhblwiLCBcIndpZHRoXCJdLFxuICAgIGNvbGdyb3VwOiBbXCJhbGlnblwiLCBcInZhbGlnblwiLCBcInNwYW5cIiwgXCJ3aWR0aFwiXSxcbiAgICBkZDogW10sXG4gICAgZGVsOiBbXCJkYXRldGltZVwiXSxcbiAgICBkZXRhaWxzOiBbXCJvcGVuXCJdLFxuICAgIGRpdjogW10sXG4gICAgZGw6IFtdLFxuICAgIGR0OiBbXSxcbiAgICBlbTogW10sXG4gICAgZmlnY2FwdGlvbjogW10sXG4gICAgZmlndXJlOiBbXSxcbiAgICBmb250OiBbXCJjb2xvclwiLCBcInNpemVcIiwgXCJmYWNlXCJdLFxuICAgIGZvb3RlcjogW10sXG4gICAgaDE6IFtdLFxuICAgIGgyOiBbXSxcbiAgICBoMzogW10sXG4gICAgaDQ6IFtdLFxuICAgIGg1OiBbXSxcbiAgICBoNjogW10sXG4gICAgaGVhZGVyOiBbXSxcbiAgICBocjogW10sXG4gICAgaTogW10sXG4gICAgaW1nOiBbXCJzcmNcIiwgXCJhbHRcIiwgXCJ0aXRsZVwiLCBcIndpZHRoXCIsIFwiaGVpZ2h0XCIsIFwibG9hZGluZ1wiXSxcbiAgICBpbnM6IFtcImRhdGV0aW1lXCJdLFxuICAgIGtiZDogW10sXG4gICAgbGk6IFtdLFxuICAgIG1hcms6IFtdLFxuICAgIG5hdjogW10sXG4gICAgb2w6IFtdLFxuICAgIHA6IFtdLFxuICAgIHByZTogW10sXG4gICAgczogW10sXG4gICAgc2VjdGlvbjogW10sXG4gICAgc21hbGw6IFtdLFxuICAgIHNwYW46IFtdLFxuICAgIHN1YjogW10sXG4gICAgc3VtbWFyeTogW10sXG4gICAgc3VwOiBbXSxcbiAgICBzdHJvbmc6IFtdLFxuICAgIHN0cmlrZTogW10sXG4gICAgdGFibGU6IFtcIndpZHRoXCIsIFwiYm9yZGVyXCIsIFwiYWxpZ25cIiwgXCJ2YWxpZ25cIl0sXG4gICAgdGJvZHk6IFtcImFsaWduXCIsIFwidmFsaWduXCJdLFxuICAgIHRkOiBbXCJ3aWR0aFwiLCBcInJvd3NwYW5cIiwgXCJjb2xzcGFuXCIsIFwiYWxpZ25cIiwgXCJ2YWxpZ25cIl0sXG4gICAgdGZvb3Q6IFtcImFsaWduXCIsIFwidmFsaWduXCJdLFxuICAgIHRoOiBbXCJ3aWR0aFwiLCBcInJvd3NwYW5cIiwgXCJjb2xzcGFuXCIsIFwiYWxpZ25cIiwgXCJ2YWxpZ25cIl0sXG4gICAgdGhlYWQ6IFtcImFsaWduXCIsIFwidmFsaWduXCJdLFxuICAgIHRyOiBbXCJyb3dzcGFuXCIsIFwiYWxpZ25cIiwgXCJ2YWxpZ25cIl0sXG4gICAgdHQ6IFtdLFxuICAgIHU6IFtdLFxuICAgIHVsOiBbXSxcbiAgICB2aWRlbzogW1xuICAgICAgXCJhdXRvcGxheVwiLFxuICAgICAgXCJjb250cm9sc1wiLFxuICAgICAgXCJjcm9zc29yaWdpblwiLFxuICAgICAgXCJsb29wXCIsXG4gICAgICBcIm11dGVkXCIsXG4gICAgICBcInBsYXlzaW5saW5lXCIsXG4gICAgICBcInBvc3RlclwiLFxuICAgICAgXCJwcmVsb2FkXCIsXG4gICAgICBcInNyY1wiLFxuICAgICAgXCJoZWlnaHRcIixcbiAgICAgIFwid2lkdGhcIixcbiAgICBdLFxuICB9O1xufVxuXG52YXIgZGVmYXVsdENTU0ZpbHRlciA9IG5ldyBGaWx0ZXJDU1MoKTtcblxuLyoqXG4gKiBkZWZhdWx0IG9uVGFnIGZ1bmN0aW9uXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHRhZ1xuICogQHBhcmFtIHtTdHJpbmd9IGh0bWxcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIG9uVGFnKHRhZywgaHRtbCwgb3B0aW9ucykge1xuICAvLyBkbyBub3RoaW5nXG59XG5cbi8qKlxuICogZGVmYXVsdCBvbklnbm9yZVRhZyBmdW5jdGlvblxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB0YWdcbiAqIEBwYXJhbSB7U3RyaW5nfSBodG1sXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0aW9uc1xuICogQHJldHVybiB7U3RyaW5nfVxuICovXG5mdW5jdGlvbiBvbklnbm9yZVRhZyh0YWcsIGh0bWwsIG9wdGlvbnMpIHtcbiAgLy8gZG8gbm90aGluZ1xufVxuXG4vKipcbiAqIGRlZmF1bHQgb25UYWdBdHRyIGZ1bmN0aW9uXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHRhZ1xuICogQHBhcmFtIHtTdHJpbmd9IG5hbWVcbiAqIEBwYXJhbSB7U3RyaW5nfSB2YWx1ZVxuICogQHJldHVybiB7U3RyaW5nfVxuICovXG5mdW5jdGlvbiBvblRhZ0F0dHIodGFnLCBuYW1lLCB2YWx1ZSkge1xuICAvLyBkbyBub3RoaW5nXG59XG5cbi8qKlxuICogZGVmYXVsdCBvbklnbm9yZVRhZ0F0dHIgZnVuY3Rpb25cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdGFnXG4gKiBAcGFyYW0ge1N0cmluZ30gbmFtZVxuICogQHBhcmFtIHtTdHJpbmd9IHZhbHVlXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIG9uSWdub3JlVGFnQXR0cih0YWcsIG5hbWUsIHZhbHVlKSB7XG4gIC8vIGRvIG5vdGhpbmdcbn1cblxuLyoqXG4gKiBkZWZhdWx0IGVzY2FwZUh0bWwgZnVuY3Rpb25cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gaHRtbFxuICovXG5mdW5jdGlvbiBlc2NhcGVIdG1sKGh0bWwpIHtcbiAgcmV0dXJuIGh0bWwucmVwbGFjZShSRUdFWFBfTFQsIFwiJmx0O1wiKS5yZXBsYWNlKFJFR0VYUF9HVCwgXCImZ3Q7XCIpO1xufVxuXG4vKipcbiAqIGRlZmF1bHQgc2FmZUF0dHJWYWx1ZSBmdW5jdGlvblxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB0YWdcbiAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lXG4gKiBAcGFyYW0ge1N0cmluZ30gdmFsdWVcbiAqIEBwYXJhbSB7T2JqZWN0fSBjc3NGaWx0ZXJcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqL1xuZnVuY3Rpb24gc2FmZUF0dHJWYWx1ZSh0YWcsIG5hbWUsIHZhbHVlLCBjc3NGaWx0ZXIpIHtcbiAgLy8gdW5lc2NhcGUgYXR0cmlidXRlIHZhbHVlIGZpcnN0bHlcbiAgdmFsdWUgPSBmcmllbmRseUF0dHJWYWx1ZSh2YWx1ZSk7XG5cbiAgaWYgKG5hbWUgPT09IFwiaHJlZlwiIHx8IG5hbWUgPT09IFwic3JjXCIpIHtcbiAgICAvLyBmaWx0ZXIgYGhyZWZgIGFuZCBgc3JjYCBhdHRyaWJ1dGVcbiAgICAvLyBvbmx5IGFsbG93IHRoZSB2YWx1ZSB0aGF0IHN0YXJ0cyB3aXRoIGBodHRwOi8vYCB8IGBodHRwczovL2AgfCBgbWFpbHRvOmAgfCBgL2AgfCBgI2BcbiAgICB2YWx1ZSA9IF8udHJpbSh2YWx1ZSk7XG4gICAgaWYgKHZhbHVlID09PSBcIiNcIikgcmV0dXJuIFwiI1wiO1xuICAgIGlmIChcbiAgICAgICEoXG4gICAgICAgIHZhbHVlLnN1YnN0cigwLCA3KSA9PT0gXCJodHRwOi8vXCIgfHxcbiAgICAgICAgdmFsdWUuc3Vic3RyKDAsIDgpID09PSBcImh0dHBzOi8vXCIgfHxcbiAgICAgICAgdmFsdWUuc3Vic3RyKDAsIDcpID09PSBcIm1haWx0bzpcIiB8fFxuICAgICAgICB2YWx1ZS5zdWJzdHIoMCwgNCkgPT09IFwidGVsOlwiIHx8XG4gICAgICAgIHZhbHVlLnN1YnN0cigwLCAxMSkgPT09IFwiZGF0YTppbWFnZS9cIiB8fFxuICAgICAgICB2YWx1ZS5zdWJzdHIoMCwgNikgPT09IFwiZnRwOi8vXCIgfHxcbiAgICAgICAgdmFsdWUuc3Vic3RyKDAsIDIpID09PSBcIi4vXCIgfHxcbiAgICAgICAgdmFsdWUuc3Vic3RyKDAsIDMpID09PSBcIi4uL1wiIHx8XG4gICAgICAgIHZhbHVlWzBdID09PSBcIiNcIiB8fFxuICAgICAgICB2YWx1ZVswXSA9PT0gXCIvXCJcbiAgICAgIClcbiAgICApIHtcbiAgICAgIHJldHVybiBcIlwiO1xuICAgIH1cbiAgfSBlbHNlIGlmIChuYW1lID09PSBcImJhY2tncm91bmRcIikge1xuICAgIC8vIGZpbHRlciBgYmFja2dyb3VuZGAgYXR0cmlidXRlIChtYXliZSBubyB1c2UpXG4gICAgLy8gYGphdmFzY3JpcHQ6YFxuICAgIFJFR0VYUF9ERUZBVUxUX09OX1RBR19BVFRSXzQubGFzdEluZGV4ID0gMDtcbiAgICBpZiAoUkVHRVhQX0RFRkFVTFRfT05fVEFHX0FUVFJfNC50ZXN0KHZhbHVlKSkge1xuICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuICB9IGVsc2UgaWYgKG5hbWUgPT09IFwic3R5bGVcIikge1xuICAgIC8vIGBleHByZXNzaW9uKClgXG4gICAgUkVHRVhQX0RFRkFVTFRfT05fVEFHX0FUVFJfNy5sYXN0SW5kZXggPSAwO1xuICAgIGlmIChSRUdFWFBfREVGQVVMVF9PTl9UQUdfQVRUUl83LnRlc3QodmFsdWUpKSB7XG4gICAgICByZXR1cm4gXCJcIjtcbiAgICB9XG4gICAgLy8gYHVybCgpYFxuICAgIFJFR0VYUF9ERUZBVUxUX09OX1RBR19BVFRSXzgubGFzdEluZGV4ID0gMDtcbiAgICBpZiAoUkVHRVhQX0RFRkFVTFRfT05fVEFHX0FUVFJfOC50ZXN0KHZhbHVlKSkge1xuICAgICAgUkVHRVhQX0RFRkFVTFRfT05fVEFHX0FUVFJfNC5sYXN0SW5kZXggPSAwO1xuICAgICAgaWYgKFJFR0VYUF9ERUZBVUxUX09OX1RBR19BVFRSXzQudGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChjc3NGaWx0ZXIgIT09IGZhbHNlKSB7XG4gICAgICBjc3NGaWx0ZXIgPSBjc3NGaWx0ZXIgfHwgZGVmYXVsdENTU0ZpbHRlcjtcbiAgICAgIHZhbHVlID0gY3NzRmlsdGVyLnByb2Nlc3ModmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIGVzY2FwZSBgPD5cImAgYmVmb3JlIHJldHVybnNcbiAgdmFsdWUgPSBlc2NhcGVBdHRyVmFsdWUodmFsdWUpO1xuICByZXR1cm4gdmFsdWU7XG59XG5cbi8vIFJlZ0V4cCBsaXN0XG52YXIgUkVHRVhQX0xUID0gLzwvZztcbnZhciBSRUdFWFBfR1QgPSAvPi9nO1xudmFyIFJFR0VYUF9RVU9URSA9IC9cIi9nO1xudmFyIFJFR0VYUF9RVU9URV8yID0gLyZxdW90Oy9nO1xudmFyIFJFR0VYUF9BVFRSX1ZBTFVFXzEgPSAvJiMoW2EtekEtWjAtOV0qKTs/L2dpbTtcbnZhciBSRUdFWFBfQVRUUl9WQUxVRV9DT0xPTiA9IC8mY29sb247Py9naW07XG52YXIgUkVHRVhQX0FUVFJfVkFMVUVfTkVXTElORSA9IC8mbmV3bGluZTs/L2dpbTtcbi8vIHZhciBSRUdFWFBfREVGQVVMVF9PTl9UQUdfQVRUUl8zID0gL1xcL1xcKnxcXCpcXC8vZ207XG52YXIgUkVHRVhQX0RFRkFVTFRfT05fVEFHX0FUVFJfNCA9XG4gIC8oKGpcXHMqYVxccyp2XFxzKmF8dlxccypifGxcXHMqaVxccyp2XFxzKmUpXFxzKnNcXHMqY1xccypyXFxzKmlcXHMqcFxccyp0XFxzKnxtXFxzKm9cXHMqY1xccypoXFxzKmEpOi9naTtcbi8vIHZhciBSRUdFWFBfREVGQVVMVF9PTl9UQUdfQVRUUl81ID0gL15bXFxzXCInYF0qKGRcXHMqYVxccyp0XFxzKmFcXHMqKVxcOi9naTtcbi8vIHZhciBSRUdFWFBfREVGQVVMVF9PTl9UQUdfQVRUUl82ID0gL15bXFxzXCInYF0qKGRcXHMqYVxccyp0XFxzKmFcXHMqKVxcOlxccyppbWFnZVxcLy9naTtcbnZhciBSRUdFWFBfREVGQVVMVF9PTl9UQUdfQVRUUl83ID1cbiAgL2VcXHMqeFxccypwXFxzKnJcXHMqZVxccypzXFxzKnNcXHMqaVxccypvXFxzKm5cXHMqXFwoLiovZ2k7XG52YXIgUkVHRVhQX0RFRkFVTFRfT05fVEFHX0FUVFJfOCA9IC91XFxzKnJcXHMqbFxccypcXCguKi9naTtcblxuLyoqXG4gKiBlc2NhcGUgZG91YmxlIHF1b3RlXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHN0clxuICogQHJldHVybiB7U3RyaW5nfSBzdHJcbiAqL1xuZnVuY3Rpb24gZXNjYXBlUXVvdGUoc3RyKSB7XG4gIHJldHVybiBzdHIucmVwbGFjZShSRUdFWFBfUVVPVEUsIFwiJnF1b3Q7XCIpO1xufVxuXG4vKipcbiAqIHVuZXNjYXBlIGRvdWJsZSBxdW90ZVxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEByZXR1cm4ge1N0cmluZ30gc3RyXG4gKi9cbmZ1bmN0aW9uIHVuZXNjYXBlUXVvdGUoc3RyKSB7XG4gIHJldHVybiBzdHIucmVwbGFjZShSRUdFWFBfUVVPVEVfMiwgJ1wiJyk7XG59XG5cbi8qKlxuICogZXNjYXBlIGh0bWwgZW50aXRpZXNcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGVzY2FwZUh0bWxFbnRpdGllcyhzdHIpIHtcbiAgcmV0dXJuIHN0ci5yZXBsYWNlKFJFR0VYUF9BVFRSX1ZBTFVFXzEsIGZ1bmN0aW9uIHJlcGxhY2VVbmljb2RlKHN0ciwgY29kZSkge1xuICAgIHJldHVybiBjb2RlWzBdID09PSBcInhcIiB8fCBjb2RlWzBdID09PSBcIlhcIlxuICAgICAgPyBTdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KGNvZGUuc3Vic3RyKDEpLCAxNikpXG4gICAgICA6IFN0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQoY29kZSwgMTApKTtcbiAgfSk7XG59XG5cbi8qKlxuICogZXNjYXBlIGh0bWw1IG5ldyBkYW5nZXIgZW50aXRpZXNcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGVzY2FwZURhbmdlckh0bWw1RW50aXRpZXMoc3RyKSB7XG4gIHJldHVybiBzdHJcbiAgICAucmVwbGFjZShSRUdFWFBfQVRUUl9WQUxVRV9DT0xPTiwgXCI6XCIpXG4gICAgLnJlcGxhY2UoUkVHRVhQX0FUVFJfVkFMVUVfTkVXTElORSwgXCIgXCIpO1xufVxuXG4vKipcbiAqIGNsZWFyIG5vbnByaW50YWJsZSBjaGFyYWN0ZXJzXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHN0clxuICogQHJldHVybiB7U3RyaW5nfVxuICovXG5mdW5jdGlvbiBjbGVhck5vblByaW50YWJsZUNoYXJhY3RlcihzdHIpIHtcbiAgdmFyIHN0cjIgPSBcIlwiO1xuICBmb3IgKHZhciBpID0gMCwgbGVuID0gc3RyLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgc3RyMiArPSBzdHIuY2hhckNvZGVBdChpKSA8IDMyID8gXCIgXCIgOiBzdHIuY2hhckF0KGkpO1xuICB9XG4gIHJldHVybiBfLnRyaW0oc3RyMik7XG59XG5cbi8qKlxuICogZ2V0IGZyaWVuZGx5IGF0dHJpYnV0ZSB2YWx1ZVxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqL1xuZnVuY3Rpb24gZnJpZW5kbHlBdHRyVmFsdWUoc3RyKSB7XG4gIHN0ciA9IHVuZXNjYXBlUXVvdGUoc3RyKTtcbiAgc3RyID0gZXNjYXBlSHRtbEVudGl0aWVzKHN0cik7XG4gIHN0ciA9IGVzY2FwZURhbmdlckh0bWw1RW50aXRpZXMoc3RyKTtcbiAgc3RyID0gY2xlYXJOb25QcmludGFibGVDaGFyYWN0ZXIoc3RyKTtcbiAgcmV0dXJuIHN0cjtcbn1cblxuLyoqXG4gKiB1bmVzY2FwZSBhdHRyaWJ1dGUgdmFsdWVcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGVzY2FwZUF0dHJWYWx1ZShzdHIpIHtcbiAgc3RyID0gZXNjYXBlUXVvdGUoc3RyKTtcbiAgc3RyID0gZXNjYXBlSHRtbChzdHIpO1xuICByZXR1cm4gc3RyO1xufVxuXG4vKipcbiAqIGBvbklnbm9yZVRhZ2AgZnVuY3Rpb24gZm9yIHJlbW92aW5nIGFsbCB0aGUgdGFncyB0aGF0IGFyZSBub3QgaW4gd2hpdGVsaXN0XG4gKi9cbmZ1bmN0aW9uIG9uSWdub3JlVGFnU3RyaXBBbGwoKSB7XG4gIHJldHVybiBcIlwiO1xufVxuXG4vKipcbiAqIHJlbW92ZSB0YWcgYm9keVxuICogc3BlY2lmeSBhIGB0YWdzYCBsaXN0LCBpZiB0aGUgdGFnIGlzIG5vdCBpbiB0aGUgYHRhZ3NgIGxpc3QgdGhlbiBwcm9jZXNzIGJ5IHRoZSBzcGVjaWZ5IGZ1bmN0aW9uIChvcHRpb25hbClcbiAqXG4gKiBAcGFyYW0ge2FycmF5fSB0YWdzXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBuZXh0XG4gKi9cbmZ1bmN0aW9uIFN0cmlwVGFnQm9keSh0YWdzLCBuZXh0KSB7XG4gIGlmICh0eXBlb2YgbmV4dCAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgbmV4dCA9IGZ1bmN0aW9uICgpIHt9O1xuICB9XG5cbiAgdmFyIGlzUmVtb3ZlQWxsVGFnID0gIUFycmF5LmlzQXJyYXkodGFncyk7XG4gIGZ1bmN0aW9uIGlzUmVtb3ZlVGFnKHRhZykge1xuICAgIGlmIChpc1JlbW92ZUFsbFRhZykgcmV0dXJuIHRydWU7XG4gICAgcmV0dXJuIF8uaW5kZXhPZih0YWdzLCB0YWcpICE9PSAtMTtcbiAgfVxuXG4gIHZhciByZW1vdmVMaXN0ID0gW107XG4gIHZhciBwb3NTdGFydCA9IGZhbHNlO1xuXG4gIHJldHVybiB7XG4gICAgb25JZ25vcmVUYWc6IGZ1bmN0aW9uICh0YWcsIGh0bWwsIG9wdGlvbnMpIHtcbiAgICAgIGlmIChpc1JlbW92ZVRhZyh0YWcpKSB7XG4gICAgICAgIGlmIChvcHRpb25zLmlzQ2xvc2luZykge1xuICAgICAgICAgIHZhciByZXQgPSBcIlsvcmVtb3ZlZF1cIjtcbiAgICAgICAgICB2YXIgZW5kID0gb3B0aW9ucy5wb3NpdGlvbiArIHJldC5sZW5ndGg7XG4gICAgICAgICAgcmVtb3ZlTGlzdC5wdXNoKFtcbiAgICAgICAgICAgIHBvc1N0YXJ0ICE9PSBmYWxzZSA/IHBvc1N0YXJ0IDogb3B0aW9ucy5wb3NpdGlvbixcbiAgICAgICAgICAgIGVuZCxcbiAgICAgICAgICBdKTtcbiAgICAgICAgICBwb3NTdGFydCA9IGZhbHNlO1xuICAgICAgICAgIHJldHVybiByZXQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKCFwb3NTdGFydCkge1xuICAgICAgICAgICAgcG9zU3RhcnQgPSBvcHRpb25zLnBvc2l0aW9uO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gXCJbcmVtb3ZlZF1cIjtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG5leHQodGFnLCBodG1sLCBvcHRpb25zKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHJlbW92ZTogZnVuY3Rpb24gKGh0bWwpIHtcbiAgICAgIHZhciByZXRodG1sID0gXCJcIjtcbiAgICAgIHZhciBsYXN0UG9zID0gMDtcbiAgICAgIF8uZm9yRWFjaChyZW1vdmVMaXN0LCBmdW5jdGlvbiAocG9zKSB7XG4gICAgICAgIHJldGh0bWwgKz0gaHRtbC5zbGljZShsYXN0UG9zLCBwb3NbMF0pO1xuICAgICAgICBsYXN0UG9zID0gcG9zWzFdO1xuICAgICAgfSk7XG4gICAgICByZXRodG1sICs9IGh0bWwuc2xpY2UobGFzdFBvcyk7XG4gICAgICByZXR1cm4gcmV0aHRtbDtcbiAgICB9LFxuICB9O1xufVxuXG4vKipcbiAqIHJlbW92ZSBodG1sIGNvbW1lbnRzXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGh0bWxcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqL1xuZnVuY3Rpb24gc3RyaXBDb21tZW50VGFnKGh0bWwpIHtcbiAgdmFyIHJldEh0bWwgPSBcIlwiO1xuICB2YXIgbGFzdFBvcyA9IDA7XG4gIHdoaWxlIChsYXN0UG9zIDwgaHRtbC5sZW5ndGgpIHtcbiAgICB2YXIgaSA9IGh0bWwuaW5kZXhPZihcIjwhLS1cIiwgbGFzdFBvcyk7XG4gICAgaWYgKGkgPT09IC0xKSB7XG4gICAgICByZXRIdG1sICs9IGh0bWwuc2xpY2UobGFzdFBvcyk7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgcmV0SHRtbCArPSBodG1sLnNsaWNlKGxhc3RQb3MsIGkpO1xuICAgIHZhciBqID0gaHRtbC5pbmRleE9mKFwiLS0+XCIsIGkpO1xuICAgIGlmIChqID09PSAtMSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGxhc3RQb3MgPSBqICsgMztcbiAgfVxuICByZXR1cm4gcmV0SHRtbDtcbn1cblxuLyoqXG4gKiByZW1vdmUgaW52aXNpYmxlIGNoYXJhY3RlcnNcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gaHRtbFxuICogQHJldHVybiB7U3RyaW5nfVxuICovXG5mdW5jdGlvbiBzdHJpcEJsYW5rQ2hhcihodG1sKSB7XG4gIHZhciBjaGFycyA9IGh0bWwuc3BsaXQoXCJcIik7XG4gIGNoYXJzID0gY2hhcnMuZmlsdGVyKGZ1bmN0aW9uIChjaGFyKSB7XG4gICAgdmFyIGMgPSBjaGFyLmNoYXJDb2RlQXQoMCk7XG4gICAgaWYgKGMgPT09IDEyNykgcmV0dXJuIGZhbHNlO1xuICAgIGlmIChjIDw9IDMxKSB7XG4gICAgICBpZiAoYyA9PT0gMTAgfHwgYyA9PT0gMTMpIHJldHVybiB0cnVlO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSk7XG4gIHJldHVybiBjaGFycy5qb2luKFwiXCIpO1xufVxuXG5leHBvcnRzLndoaXRlTGlzdCA9IGdldERlZmF1bHRXaGl0ZUxpc3QoKTtcbmV4cG9ydHMuZ2V0RGVmYXVsdFdoaXRlTGlzdCA9IGdldERlZmF1bHRXaGl0ZUxpc3Q7XG5leHBvcnRzLm9uVGFnID0gb25UYWc7XG5leHBvcnRzLm9uSWdub3JlVGFnID0gb25JZ25vcmVUYWc7XG5leHBvcnRzLm9uVGFnQXR0ciA9IG9uVGFnQXR0cjtcbmV4cG9ydHMub25JZ25vcmVUYWdBdHRyID0gb25JZ25vcmVUYWdBdHRyO1xuZXhwb3J0cy5zYWZlQXR0clZhbHVlID0gc2FmZUF0dHJWYWx1ZTtcbmV4cG9ydHMuZXNjYXBlSHRtbCA9IGVzY2FwZUh0bWw7XG5leHBvcnRzLmVzY2FwZVF1b3RlID0gZXNjYXBlUXVvdGU7XG5leHBvcnRzLnVuZXNjYXBlUXVvdGUgPSB1bmVzY2FwZVF1b3RlO1xuZXhwb3J0cy5lc2NhcGVIdG1sRW50aXRpZXMgPSBlc2NhcGVIdG1sRW50aXRpZXM7XG5leHBvcnRzLmVzY2FwZURhbmdlckh0bWw1RW50aXRpZXMgPSBlc2NhcGVEYW5nZXJIdG1sNUVudGl0aWVzO1xuZXhwb3J0cy5jbGVhck5vblByaW50YWJsZUNoYXJhY3RlciA9IGNsZWFyTm9uUHJpbnRhYmxlQ2hhcmFjdGVyO1xuZXhwb3J0cy5mcmllbmRseUF0dHJWYWx1ZSA9IGZyaWVuZGx5QXR0clZhbHVlO1xuZXhwb3J0cy5lc2NhcGVBdHRyVmFsdWUgPSBlc2NhcGVBdHRyVmFsdWU7XG5leHBvcnRzLm9uSWdub3JlVGFnU3RyaXBBbGwgPSBvbklnbm9yZVRhZ1N0cmlwQWxsO1xuZXhwb3J0cy5TdHJpcFRhZ0JvZHkgPSBTdHJpcFRhZ0JvZHk7XG5leHBvcnRzLnN0cmlwQ29tbWVudFRhZyA9IHN0cmlwQ29tbWVudFRhZztcbmV4cG9ydHMuc3RyaXBCbGFua0NoYXIgPSBzdHJpcEJsYW5rQ2hhcjtcbmV4cG9ydHMuYXR0cmlidXRlV3JhcFNpZ24gPSAnXCInO1xuZXhwb3J0cy5jc3NGaWx0ZXIgPSBkZWZhdWx0Q1NTRmlsdGVyO1xuZXhwb3J0cy5nZXREZWZhdWx0Q1NTV2hpdGVMaXN0ID0gZ2V0RGVmYXVsdENTU1doaXRlTGlzdDtcbiIsIi8qKlxuICogeHNzXG4gKlxuICogQGF1dGhvciBab25nbWluIExlaTxsZWl6b25nbWluQGdtYWlsLmNvbT5cbiAqL1xuXG52YXIgREVGQVVMVCA9IHJlcXVpcmUoXCIuL2RlZmF1bHRcIik7XG52YXIgcGFyc2VyID0gcmVxdWlyZShcIi4vcGFyc2VyXCIpO1xudmFyIEZpbHRlclhTUyA9IHJlcXVpcmUoXCIuL3hzc1wiKTtcblxuLyoqXG4gKiBmaWx0ZXIgeHNzIGZ1bmN0aW9uXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGh0bWxcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIHsgd2hpdGVMaXN0LCBvblRhZywgb25UYWdBdHRyLCBvbklnbm9yZVRhZywgb25JZ25vcmVUYWdBdHRyLCBzYWZlQXR0clZhbHVlLCBlc2NhcGVIdG1sIH1cbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqL1xuZnVuY3Rpb24gZmlsdGVyWFNTKGh0bWwsIG9wdGlvbnMpIHtcbiAgdmFyIHhzcyA9IG5ldyBGaWx0ZXJYU1Mob3B0aW9ucyk7XG4gIHJldHVybiB4c3MucHJvY2VzcyhodG1sKTtcbn1cblxuZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzID0gZmlsdGVyWFNTO1xuZXhwb3J0cy5maWx0ZXJYU1MgPSBmaWx0ZXJYU1M7XG5leHBvcnRzLkZpbHRlclhTUyA9IEZpbHRlclhTUztcblxuKGZ1bmN0aW9uICgpIHtcbiAgZm9yICh2YXIgaSBpbiBERUZBVUxUKSB7XG4gICAgZXhwb3J0c1tpXSA9IERFRkFVTFRbaV07XG4gIH1cbiAgZm9yICh2YXIgaiBpbiBwYXJzZXIpIHtcbiAgICBleHBvcnRzW2pdID0gcGFyc2VyW2pdO1xuICB9XG59KSgpO1xuXG4vLyB1c2luZyBgeHNzYCBvbiB0aGUgYnJvd3Nlciwgb3V0cHV0IGBmaWx0ZXJYU1NgIHRvIHRoZSBnbG9iYWxzXG5pZiAodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIikge1xuICB3aW5kb3cuZmlsdGVyWFNTID0gbW9kdWxlLmV4cG9ydHM7XG59XG5cbi8vIHVzaW5nIGB4c3NgIG9uIHRoZSBXZWJXb3JrZXIsIG91dHB1dCBgZmlsdGVyWFNTYCB0byB0aGUgZ2xvYmFsc1xuZnVuY3Rpb24gaXNXb3JrZXJFbnYoKSB7XG4gIHJldHVybiAoXG4gICAgdHlwZW9mIHNlbGYgIT09IFwidW5kZWZpbmVkXCIgJiZcbiAgICB0eXBlb2YgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUgIT09IFwidW5kZWZpbmVkXCIgJiZcbiAgICBzZWxmIGluc3RhbmNlb2YgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVcbiAgKTtcbn1cbmlmIChpc1dvcmtlckVudigpKSB7XG4gIHNlbGYuZmlsdGVyWFNTID0gbW9kdWxlLmV4cG9ydHM7XG59XG4iLCIvKipcbiAqIFNpbXBsZSBIVE1MIFBhcnNlclxuICpcbiAqIEBhdXRob3IgWm9uZ21pbiBMZWk8bGVpem9uZ21pbkBnbWFpbC5jb20+XG4gKi9cblxudmFyIF8gPSByZXF1aXJlKFwiLi91dGlsXCIpO1xuXG4vKipcbiAqIGdldCB0YWcgbmFtZVxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBodG1sIGUuZy4gJzxhIGhlZj1cIiNcIj4nXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGdldFRhZ05hbWUoaHRtbCkge1xuICB2YXIgaSA9IF8uc3BhY2VJbmRleChodG1sKTtcbiAgdmFyIHRhZ05hbWU7XG4gIGlmIChpID09PSAtMSkge1xuICAgIHRhZ05hbWUgPSBodG1sLnNsaWNlKDEsIC0xKTtcbiAgfSBlbHNlIHtcbiAgICB0YWdOYW1lID0gaHRtbC5zbGljZSgxLCBpICsgMSk7XG4gIH1cbiAgdGFnTmFtZSA9IF8udHJpbSh0YWdOYW1lKS50b0xvd2VyQ2FzZSgpO1xuICBpZiAodGFnTmFtZS5zbGljZSgwLCAxKSA9PT0gXCIvXCIpIHRhZ05hbWUgPSB0YWdOYW1lLnNsaWNlKDEpO1xuICBpZiAodGFnTmFtZS5zbGljZSgtMSkgPT09IFwiL1wiKSB0YWdOYW1lID0gdGFnTmFtZS5zbGljZSgwLCAtMSk7XG4gIHJldHVybiB0YWdOYW1lO1xufVxuXG4vKipcbiAqIGlzIGNsb3NlIHRhZz9cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gaHRtbCDlpoLvvJonPGEgaGVmPVwiI1wiPidcbiAqIEByZXR1cm4ge0Jvb2xlYW59XG4gKi9cbmZ1bmN0aW9uIGlzQ2xvc2luZyhodG1sKSB7XG4gIHJldHVybiBodG1sLnNsaWNlKDAsIDIpID09PSBcIjwvXCI7XG59XG5cbi8qKlxuICogcGFyc2UgaW5wdXQgaHRtbCBhbmQgcmV0dXJucyBwcm9jZXNzZWQgaHRtbFxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBodG1sXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBvblRhZyBlLmcuIGZ1bmN0aW9uIChzb3VyY2VQb3NpdGlvbiwgcG9zaXRpb24sIHRhZywgaHRtbCwgaXNDbG9zaW5nKVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZXNjYXBlSHRtbFxuICogQHJldHVybiB7U3RyaW5nfVxuICovXG5mdW5jdGlvbiBwYXJzZVRhZyhodG1sLCBvblRhZywgZXNjYXBlSHRtbCkge1xuICBcInVzZSBzdHJpY3RcIjtcblxuICB2YXIgcmV0aHRtbCA9IFwiXCI7XG4gIHZhciBsYXN0UG9zID0gMDtcbiAgdmFyIHRhZ1N0YXJ0ID0gZmFsc2U7XG4gIHZhciBxdW90ZVN0YXJ0ID0gZmFsc2U7XG4gIHZhciBjdXJyZW50UG9zID0gMDtcbiAgdmFyIGxlbiA9IGh0bWwubGVuZ3RoO1xuICB2YXIgY3VycmVudFRhZ05hbWUgPSBcIlwiO1xuICB2YXIgY3VycmVudEh0bWwgPSBcIlwiO1xuXG4gIGNoYXJpdGVyYXRvcjogZm9yIChjdXJyZW50UG9zID0gMDsgY3VycmVudFBvcyA8IGxlbjsgY3VycmVudFBvcysrKSB7XG4gICAgdmFyIGMgPSBodG1sLmNoYXJBdChjdXJyZW50UG9zKTtcbiAgICBpZiAodGFnU3RhcnQgPT09IGZhbHNlKSB7XG4gICAgICBpZiAoYyA9PT0gXCI8XCIpIHtcbiAgICAgICAgdGFnU3RhcnQgPSBjdXJyZW50UG9zO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHF1b3RlU3RhcnQgPT09IGZhbHNlKSB7XG4gICAgICAgIGlmIChjID09PSBcIjxcIikge1xuICAgICAgICAgIHJldGh0bWwgKz0gZXNjYXBlSHRtbChodG1sLnNsaWNlKGxhc3RQb3MsIGN1cnJlbnRQb3MpKTtcbiAgICAgICAgICB0YWdTdGFydCA9IGN1cnJlbnRQb3M7XG4gICAgICAgICAgbGFzdFBvcyA9IGN1cnJlbnRQb3M7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGMgPT09IFwiPlwiIHx8IGN1cnJlbnRQb3MgPT09IGxlbiAtIDEpIHtcbiAgICAgICAgICByZXRodG1sICs9IGVzY2FwZUh0bWwoaHRtbC5zbGljZShsYXN0UG9zLCB0YWdTdGFydCkpO1xuICAgICAgICAgIGN1cnJlbnRIdG1sID0gaHRtbC5zbGljZSh0YWdTdGFydCwgY3VycmVudFBvcyArIDEpO1xuICAgICAgICAgIGN1cnJlbnRUYWdOYW1lID0gZ2V0VGFnTmFtZShjdXJyZW50SHRtbCk7XG4gICAgICAgICAgcmV0aHRtbCArPSBvblRhZyhcbiAgICAgICAgICAgIHRhZ1N0YXJ0LFxuICAgICAgICAgICAgcmV0aHRtbC5sZW5ndGgsXG4gICAgICAgICAgICBjdXJyZW50VGFnTmFtZSxcbiAgICAgICAgICAgIGN1cnJlbnRIdG1sLFxuICAgICAgICAgICAgaXNDbG9zaW5nKGN1cnJlbnRIdG1sKVxuICAgICAgICAgICk7XG4gICAgICAgICAgbGFzdFBvcyA9IGN1cnJlbnRQb3MgKyAxO1xuICAgICAgICAgIHRhZ1N0YXJ0ID0gZmFsc2U7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGMgPT09ICdcIicgfHwgYyA9PT0gXCInXCIpIHtcbiAgICAgICAgICB2YXIgaSA9IDE7XG4gICAgICAgICAgdmFyIGljID0gaHRtbC5jaGFyQXQoY3VycmVudFBvcyAtIGkpO1xuXG4gICAgICAgICAgd2hpbGUgKGljLnRyaW0oKSA9PT0gXCJcIiB8fCBpYyA9PT0gXCI9XCIpIHtcbiAgICAgICAgICAgIGlmIChpYyA9PT0gXCI9XCIpIHtcbiAgICAgICAgICAgICAgcXVvdGVTdGFydCA9IGM7XG4gICAgICAgICAgICAgIGNvbnRpbnVlIGNoYXJpdGVyYXRvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGljID0gaHRtbC5jaGFyQXQoY3VycmVudFBvcyAtICsraSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoYyA9PT0gcXVvdGVTdGFydCkge1xuICAgICAgICAgIHF1b3RlU3RhcnQgPSBmYWxzZTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBpZiAobGFzdFBvcyA8IGxlbikge1xuICAgIHJldGh0bWwgKz0gZXNjYXBlSHRtbChodG1sLnN1YnN0cihsYXN0UG9zKSk7XG4gIH1cblxuICByZXR1cm4gcmV0aHRtbDtcbn1cblxudmFyIFJFR0VYUF9JTExFR0FMX0FUVFJfTkFNRSA9IC9bXmEtekEtWjAtOVxcXFxfOi4tXS9naW07XG5cbi8qKlxuICogcGFyc2UgaW5wdXQgYXR0cmlidXRlcyBhbmQgcmV0dXJucyBwcm9jZXNzZWQgYXR0cmlidXRlc1xuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBodG1sIGUuZy4gYGhyZWY9XCIjXCIgdGFyZ2V0PVwiX2JsYW5rXCJgXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBvbkF0dHIgZS5nLiBgZnVuY3Rpb24gKG5hbWUsIHZhbHVlKWBcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqL1xuZnVuY3Rpb24gcGFyc2VBdHRyKGh0bWwsIG9uQXR0cikge1xuICBcInVzZSBzdHJpY3RcIjtcblxuICB2YXIgbGFzdFBvcyA9IDA7XG4gIHZhciBsYXN0TWFya1BvcyA9IDA7XG4gIHZhciByZXRBdHRycyA9IFtdO1xuICB2YXIgdG1wTmFtZSA9IGZhbHNlO1xuICB2YXIgbGVuID0gaHRtbC5sZW5ndGg7XG5cbiAgZnVuY3Rpb24gYWRkQXR0cihuYW1lLCB2YWx1ZSkge1xuICAgIG5hbWUgPSBfLnRyaW0obmFtZSk7XG4gICAgbmFtZSA9IG5hbWUucmVwbGFjZShSRUdFWFBfSUxMRUdBTF9BVFRSX05BTUUsIFwiXCIpLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKG5hbWUubGVuZ3RoIDwgMSkgcmV0dXJuO1xuICAgIHZhciByZXQgPSBvbkF0dHIobmFtZSwgdmFsdWUgfHwgXCJcIik7XG4gICAgaWYgKHJldCkgcmV0QXR0cnMucHVzaChyZXQpO1xuICB9XG5cbiAgLy8g6YCQ5Liq5YiG5p6Q5a2X56ymXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICB2YXIgYyA9IGh0bWwuY2hhckF0KGkpO1xuICAgIHZhciB2LCBqO1xuICAgIGlmICh0bXBOYW1lID09PSBmYWxzZSAmJiBjID09PSBcIj1cIikge1xuICAgICAgdG1wTmFtZSA9IGh0bWwuc2xpY2UobGFzdFBvcywgaSk7XG4gICAgICBsYXN0UG9zID0gaSArIDE7XG4gICAgICBsYXN0TWFya1BvcyA9IGh0bWwuY2hhckF0KGxhc3RQb3MpID09PSAnXCInIHx8IGh0bWwuY2hhckF0KGxhc3RQb3MpID09PSBcIidcIiA/IGxhc3RQb3MgOiBmaW5kTmV4dFF1b3RhdGlvbk1hcmsoaHRtbCwgaSArIDEpO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmICh0bXBOYW1lICE9PSBmYWxzZSkge1xuICAgICAgaWYgKFxuICAgICAgICBpID09PSBsYXN0TWFya1Bvc1xuICAgICAgKSB7XG4gICAgICAgIGogPSBodG1sLmluZGV4T2YoYywgaSArIDEpO1xuICAgICAgICBpZiAoaiA9PT0gLTEpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2ID0gXy50cmltKGh0bWwuc2xpY2UobGFzdE1hcmtQb3MgKyAxLCBqKSk7XG4gICAgICAgICAgYWRkQXR0cih0bXBOYW1lLCB2KTtcbiAgICAgICAgICB0bXBOYW1lID0gZmFsc2U7XG4gICAgICAgICAgaSA9IGo7XG4gICAgICAgICAgbGFzdFBvcyA9IGkgKyAxO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmICgvXFxzfFxcbnxcXHQvLnRlc3QoYykpIHtcbiAgICAgIGh0bWwgPSBodG1sLnJlcGxhY2UoL1xcc3xcXG58XFx0L2csIFwiIFwiKTtcbiAgICAgIGlmICh0bXBOYW1lID09PSBmYWxzZSkge1xuICAgICAgICBqID0gZmluZE5leHRFcXVhbChodG1sLCBpKTtcbiAgICAgICAgaWYgKGogPT09IC0xKSB7XG4gICAgICAgICAgdiA9IF8udHJpbShodG1sLnNsaWNlKGxhc3RQb3MsIGkpKTtcbiAgICAgICAgICBhZGRBdHRyKHYpO1xuICAgICAgICAgIHRtcE5hbWUgPSBmYWxzZTtcbiAgICAgICAgICBsYXN0UG9zID0gaSArIDE7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaSA9IGogLSAxO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBqID0gZmluZEJlZm9yZUVxdWFsKGh0bWwsIGkgLSAxKTtcbiAgICAgICAgaWYgKGogPT09IC0xKSB7XG4gICAgICAgICAgdiA9IF8udHJpbShodG1sLnNsaWNlKGxhc3RQb3MsIGkpKTtcbiAgICAgICAgICB2ID0gc3RyaXBRdW90ZVdyYXAodik7XG4gICAgICAgICAgYWRkQXR0cih0bXBOYW1lLCB2KTtcbiAgICAgICAgICB0bXBOYW1lID0gZmFsc2U7XG4gICAgICAgICAgbGFzdFBvcyA9IGkgKyAxO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKGxhc3RQb3MgPCBodG1sLmxlbmd0aCkge1xuICAgIGlmICh0bXBOYW1lID09PSBmYWxzZSkge1xuICAgICAgYWRkQXR0cihodG1sLnNsaWNlKGxhc3RQb3MpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYWRkQXR0cih0bXBOYW1lLCBzdHJpcFF1b3RlV3JhcChfLnRyaW0oaHRtbC5zbGljZShsYXN0UG9zKSkpKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gXy50cmltKHJldEF0dHJzLmpvaW4oXCIgXCIpKTtcbn1cblxuZnVuY3Rpb24gZmluZE5leHRFcXVhbChzdHIsIGkpIHtcbiAgZm9yICg7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgYyA9IHN0cltpXTtcbiAgICBpZiAoYyA9PT0gXCIgXCIpIGNvbnRpbnVlO1xuICAgIGlmIChjID09PSBcIj1cIikgcmV0dXJuIGk7XG4gICAgcmV0dXJuIC0xO1xuICB9XG59XG5cbmZ1bmN0aW9uIGZpbmROZXh0UXVvdGF0aW9uTWFyayhzdHIsIGkpIHtcbiAgZm9yICg7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgYyA9IHN0cltpXTtcbiAgICBpZiAoYyA9PT0gXCIgXCIpIGNvbnRpbnVlO1xuICAgIGlmIChjID09PSBcIidcIiB8fCBjID09PSAnXCInKSByZXR1cm4gaTtcbiAgICByZXR1cm4gLTE7XG4gIH1cbn1cblxuZnVuY3Rpb24gZmluZEJlZm9yZUVxdWFsKHN0ciwgaSkge1xuICBmb3IgKDsgaSA+IDA7IGktLSkge1xuICAgIHZhciBjID0gc3RyW2ldO1xuICAgIGlmIChjID09PSBcIiBcIikgY29udGludWU7XG4gICAgaWYgKGMgPT09IFwiPVwiKSByZXR1cm4gaTtcbiAgICByZXR1cm4gLTE7XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNRdW90ZVdyYXBTdHJpbmcodGV4dCkge1xuICBpZiAoXG4gICAgKHRleHRbMF0gPT09ICdcIicgJiYgdGV4dFt0ZXh0Lmxlbmd0aCAtIDFdID09PSAnXCInKSB8fFxuICAgICh0ZXh0WzBdID09PSBcIidcIiAmJiB0ZXh0W3RleHQubGVuZ3RoIC0gMV0gPT09IFwiJ1wiKVxuICApIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZnVuY3Rpb24gc3RyaXBRdW90ZVdyYXAodGV4dCkge1xuICBpZiAoaXNRdW90ZVdyYXBTdHJpbmcodGV4dCkpIHtcbiAgICByZXR1cm4gdGV4dC5zdWJzdHIoMSwgdGV4dC5sZW5ndGggLSAyKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gdGV4dDtcbiAgfVxufVxuXG5leHBvcnRzLnBhcnNlVGFnID0gcGFyc2VUYWc7XG5leHBvcnRzLnBhcnNlQXR0ciA9IHBhcnNlQXR0cjtcbiIsIm1vZHVsZS5leHBvcnRzID0ge1xuICBpbmRleE9mOiBmdW5jdGlvbiAoYXJyLCBpdGVtKSB7XG4gICAgdmFyIGksIGo7XG4gICAgaWYgKEFycmF5LnByb3RvdHlwZS5pbmRleE9mKSB7XG4gICAgICByZXR1cm4gYXJyLmluZGV4T2YoaXRlbSk7XG4gICAgfVxuICAgIGZvciAoaSA9IDAsIGogPSBhcnIubGVuZ3RoOyBpIDwgajsgaSsrKSB7XG4gICAgICBpZiAoYXJyW2ldID09PSBpdGVtKSB7XG4gICAgICAgIHJldHVybiBpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gLTE7XG4gIH0sXG4gIGZvckVhY2g6IGZ1bmN0aW9uIChhcnIsIGZuLCBzY29wZSkge1xuICAgIHZhciBpLCBqO1xuICAgIGlmIChBcnJheS5wcm90b3R5cGUuZm9yRWFjaCkge1xuICAgICAgcmV0dXJuIGFyci5mb3JFYWNoKGZuLCBzY29wZSk7XG4gICAgfVxuICAgIGZvciAoaSA9IDAsIGogPSBhcnIubGVuZ3RoOyBpIDwgajsgaSsrKSB7XG4gICAgICBmbi5jYWxsKHNjb3BlLCBhcnJbaV0sIGksIGFycik7XG4gICAgfVxuICB9LFxuICB0cmltOiBmdW5jdGlvbiAoc3RyKSB7XG4gICAgaWYgKFN0cmluZy5wcm90b3R5cGUudHJpbSkge1xuICAgICAgcmV0dXJuIHN0ci50cmltKCk7XG4gICAgfVxuICAgIHJldHVybiBzdHIucmVwbGFjZSgvKF5cXHMqKXwoXFxzKiQpL2csIFwiXCIpO1xuICB9LFxuICBzcGFjZUluZGV4OiBmdW5jdGlvbiAoc3RyKSB7XG4gICAgdmFyIHJlZyA9IC9cXHN8XFxufFxcdC87XG4gICAgdmFyIG1hdGNoID0gcmVnLmV4ZWMoc3RyKTtcbiAgICByZXR1cm4gbWF0Y2ggPyBtYXRjaC5pbmRleCA6IC0xO1xuICB9LFxufTtcbiIsIi8qKlxuICogZmlsdGVyIHhzc1xuICpcbiAqIEBhdXRob3IgWm9uZ21pbiBMZWk8bGVpem9uZ21pbkBnbWFpbC5jb20+XG4gKi9cblxudmFyIEZpbHRlckNTUyA9IHJlcXVpcmUoXCJjc3NmaWx0ZXJcIikuRmlsdGVyQ1NTO1xudmFyIERFRkFVTFQgPSByZXF1aXJlKFwiLi9kZWZhdWx0XCIpO1xudmFyIHBhcnNlciA9IHJlcXVpcmUoXCIuL3BhcnNlclwiKTtcbnZhciBwYXJzZVRhZyA9IHBhcnNlci5wYXJzZVRhZztcbnZhciBwYXJzZUF0dHIgPSBwYXJzZXIucGFyc2VBdHRyO1xudmFyIF8gPSByZXF1aXJlKFwiLi91dGlsXCIpO1xuXG4vKipcbiAqIHJldHVybnMgYHRydWVgIGlmIHRoZSBpbnB1dCB2YWx1ZSBpcyBgdW5kZWZpbmVkYCBvciBgbnVsbGBcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqXG4gKiBAcmV0dXJuIHtCb29sZWFufVxuICovXG5mdW5jdGlvbiBpc051bGwob2JqKSB7XG4gIHJldHVybiBvYmogPT09IHVuZGVmaW5lZCB8fCBvYmogPT09IG51bGw7XG59XG5cbi8qKlxuICogZ2V0IGF0dHJpYnV0ZXMgZm9yIGEgdGFnXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGh0bWxcbiAqIEByZXR1cm4ge09iamVjdH1cbiAqICAgLSB7U3RyaW5nfSBodG1sXG4gKiAgIC0ge0Jvb2xlYW59IGNsb3NpbmdcbiAqL1xuZnVuY3Rpb24gZ2V0QXR0cnMoaHRtbCkge1xuICB2YXIgaSA9IF8uc3BhY2VJbmRleChodG1sKTtcbiAgaWYgKGkgPT09IC0xKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGh0bWw6IFwiXCIsXG4gICAgICBjbG9zaW5nOiBodG1sW2h0bWwubGVuZ3RoIC0gMl0gPT09IFwiL1wiLFxuICAgIH07XG4gIH1cbiAgaHRtbCA9IF8udHJpbShodG1sLnNsaWNlKGkgKyAxLCAtMSkpO1xuICB2YXIgaXNDbG9zaW5nID0gaHRtbFtodG1sLmxlbmd0aCAtIDFdID09PSBcIi9cIjtcbiAgaWYgKGlzQ2xvc2luZykgaHRtbCA9IF8udHJpbShodG1sLnNsaWNlKDAsIC0xKSk7XG4gIHJldHVybiB7XG4gICAgaHRtbDogaHRtbCxcbiAgICBjbG9zaW5nOiBpc0Nsb3NpbmcsXG4gIH07XG59XG5cbi8qKlxuICogc2hhbGxvdyBjb3B5XG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG9ialxuICogQHJldHVybiB7T2JqZWN0fVxuICovXG5mdW5jdGlvbiBzaGFsbG93Q29weU9iamVjdChvYmopIHtcbiAgdmFyIHJldCA9IHt9O1xuICBmb3IgKHZhciBpIGluIG9iaikge1xuICAgIHJldFtpXSA9IG9ialtpXTtcbiAgfVxuICByZXR1cm4gcmV0O1xufVxuXG5mdW5jdGlvbiBrZXlzVG9Mb3dlckNhc2Uob2JqKSB7XG4gIHZhciByZXQgPSB7fTtcbiAgZm9yICh2YXIgaSBpbiBvYmopIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShvYmpbaV0pKSB7XG4gICAgICByZXRbaS50b0xvd2VyQ2FzZSgpXSA9IG9ialtpXS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgICAgcmV0dXJuIGl0ZW0udG9Mb3dlckNhc2UoKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXRbaS50b0xvd2VyQ2FzZSgpXSA9IG9ialtpXTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cblxuLyoqXG4gKiBGaWx0ZXJYU1MgY2xhc3NcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0aW9uc1xuICogICAgICAgIHdoaXRlTGlzdCAob3IgYWxsb3dMaXN0KSwgb25UYWcsIG9uVGFnQXR0ciwgb25JZ25vcmVUYWcsXG4gKiAgICAgICAgb25JZ25vcmVUYWdBdHRyLCBzYWZlQXR0clZhbHVlLCBlc2NhcGVIdG1sXG4gKiAgICAgICAgc3RyaXBJZ25vcmVUYWdCb2R5LCBhbGxvd0NvbW1lbnRUYWcsIHN0cmlwQmxhbmtDaGFyXG4gKiAgICAgICAgY3Nze3doaXRlTGlzdCwgb25BdHRyLCBvbklnbm9yZUF0dHJ9IGBjc3M9ZmFsc2VgIG1lYW5zIGRvbid0IHVzZSBgY3NzZmlsdGVyYFxuICovXG5mdW5jdGlvbiBGaWx0ZXJYU1Mob3B0aW9ucykge1xuICBvcHRpb25zID0gc2hhbGxvd0NvcHlPYmplY3Qob3B0aW9ucyB8fCB7fSk7XG5cbiAgaWYgKG9wdGlvbnMuc3RyaXBJZ25vcmVUYWcpIHtcbiAgICBpZiAob3B0aW9ucy5vbklnbm9yZVRhZykge1xuICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgJ05vdGVzOiBjYW5ub3QgdXNlIHRoZXNlIHR3byBvcHRpb25zIFwic3RyaXBJZ25vcmVUYWdcIiBhbmQgXCJvbklnbm9yZVRhZ1wiIGF0IHRoZSBzYW1lIHRpbWUnXG4gICAgICApO1xuICAgIH1cbiAgICBvcHRpb25zLm9uSWdub3JlVGFnID0gREVGQVVMVC5vbklnbm9yZVRhZ1N0cmlwQWxsO1xuICB9XG4gIGlmIChvcHRpb25zLndoaXRlTGlzdCB8fCBvcHRpb25zLmFsbG93TGlzdCkge1xuICAgIG9wdGlvbnMud2hpdGVMaXN0ID0ga2V5c1RvTG93ZXJDYXNlKG9wdGlvbnMud2hpdGVMaXN0IHx8IG9wdGlvbnMuYWxsb3dMaXN0KTtcbiAgfSBlbHNlIHtcbiAgICBvcHRpb25zLndoaXRlTGlzdCA9IERFRkFVTFQud2hpdGVMaXN0O1xuICB9XG5cbiAgdGhpcy5hdHRyaWJ1dGVXcmFwU2lnbiA9IG9wdGlvbnMuc2luZ2xlUXVvdGVkQXR0cmlidXRlVmFsdWUgPT09IHRydWUgPyBcIidcIiA6IERFRkFVTFQuYXR0cmlidXRlV3JhcFNpZ247XG5cbiAgb3B0aW9ucy5vblRhZyA9IG9wdGlvbnMub25UYWcgfHwgREVGQVVMVC5vblRhZztcbiAgb3B0aW9ucy5vblRhZ0F0dHIgPSBvcHRpb25zLm9uVGFnQXR0ciB8fCBERUZBVUxULm9uVGFnQXR0cjtcbiAgb3B0aW9ucy5vbklnbm9yZVRhZyA9IG9wdGlvbnMub25JZ25vcmVUYWcgfHwgREVGQVVMVC5vbklnbm9yZVRhZztcbiAgb3B0aW9ucy5vbklnbm9yZVRhZ0F0dHIgPSBvcHRpb25zLm9uSWdub3JlVGFnQXR0ciB8fCBERUZBVUxULm9uSWdub3JlVGFnQXR0cjtcbiAgb3B0aW9ucy5zYWZlQXR0clZhbHVlID0gb3B0aW9ucy5zYWZlQXR0clZhbHVlIHx8IERFRkFVTFQuc2FmZUF0dHJWYWx1ZTtcbiAgb3B0aW9ucy5lc2NhcGVIdG1sID0gb3B0aW9ucy5lc2NhcGVIdG1sIHx8IERFRkFVTFQuZXNjYXBlSHRtbDtcbiAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcblxuICBpZiAob3B0aW9ucy5jc3MgPT09IGZhbHNlKSB7XG4gICAgdGhpcy5jc3NGaWx0ZXIgPSBmYWxzZTtcbiAgfSBlbHNlIHtcbiAgICBvcHRpb25zLmNzcyA9IG9wdGlvbnMuY3NzIHx8IHt9O1xuICAgIHRoaXMuY3NzRmlsdGVyID0gbmV3IEZpbHRlckNTUyhvcHRpb25zLmNzcyk7XG4gIH1cbn1cblxuLyoqXG4gKiBzdGFydCBwcm9jZXNzIGFuZCByZXR1cm5zIHJlc3VsdFxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBodG1sXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKi9cbkZpbHRlclhTUy5wcm90b3R5cGUucHJvY2VzcyA9IGZ1bmN0aW9uIChodG1sKSB7XG4gIC8vIGNvbXBhdGlibGUgd2l0aCB0aGUgaW5wdXRcbiAgaHRtbCA9IGh0bWwgfHwgXCJcIjtcbiAgaHRtbCA9IGh0bWwudG9TdHJpbmcoKTtcbiAgaWYgKCFodG1sKSByZXR1cm4gXCJcIjtcblxuICB2YXIgbWUgPSB0aGlzO1xuICB2YXIgb3B0aW9ucyA9IG1lLm9wdGlvbnM7XG4gIHZhciB3aGl0ZUxpc3QgPSBvcHRpb25zLndoaXRlTGlzdDtcbiAgdmFyIG9uVGFnID0gb3B0aW9ucy5vblRhZztcbiAgdmFyIG9uSWdub3JlVGFnID0gb3B0aW9ucy5vbklnbm9yZVRhZztcbiAgdmFyIG9uVGFnQXR0ciA9IG9wdGlvbnMub25UYWdBdHRyO1xuICB2YXIgb25JZ25vcmVUYWdBdHRyID0gb3B0aW9ucy5vbklnbm9yZVRhZ0F0dHI7XG4gIHZhciBzYWZlQXR0clZhbHVlID0gb3B0aW9ucy5zYWZlQXR0clZhbHVlO1xuICB2YXIgZXNjYXBlSHRtbCA9IG9wdGlvbnMuZXNjYXBlSHRtbDtcbiAgdmFyIGF0dHJpYnV0ZVdyYXBTaWduID0gbWUuYXR0cmlidXRlV3JhcFNpZ247XG4gIHZhciBjc3NGaWx0ZXIgPSBtZS5jc3NGaWx0ZXI7XG5cbiAgLy8gcmVtb3ZlIGludmlzaWJsZSBjaGFyYWN0ZXJzXG4gIGlmIChvcHRpb25zLnN0cmlwQmxhbmtDaGFyKSB7XG4gICAgaHRtbCA9IERFRkFVTFQuc3RyaXBCbGFua0NoYXIoaHRtbCk7XG4gIH1cblxuICAvLyByZW1vdmUgaHRtbCBjb21tZW50c1xuICBpZiAoIW9wdGlvbnMuYWxsb3dDb21tZW50VGFnKSB7XG4gICAgaHRtbCA9IERFRkFVTFQuc3RyaXBDb21tZW50VGFnKGh0bWwpO1xuICB9XG5cbiAgLy8gaWYgZW5hYmxlIHN0cmlwSWdub3JlVGFnQm9keVxuICB2YXIgc3RyaXBJZ25vcmVUYWdCb2R5ID0gZmFsc2U7XG4gIGlmIChvcHRpb25zLnN0cmlwSWdub3JlVGFnQm9keSkge1xuICAgIHN0cmlwSWdub3JlVGFnQm9keSA9IERFRkFVTFQuU3RyaXBUYWdCb2R5KFxuICAgICAgb3B0aW9ucy5zdHJpcElnbm9yZVRhZ0JvZHksXG4gICAgICBvbklnbm9yZVRhZ1xuICAgICk7XG4gICAgb25JZ25vcmVUYWcgPSBzdHJpcElnbm9yZVRhZ0JvZHkub25JZ25vcmVUYWc7XG4gIH1cblxuICB2YXIgcmV0SHRtbCA9IHBhcnNlVGFnKFxuICAgIGh0bWwsXG4gICAgZnVuY3Rpb24gKHNvdXJjZVBvc2l0aW9uLCBwb3NpdGlvbiwgdGFnLCBodG1sLCBpc0Nsb3NpbmcpIHtcbiAgICAgIHZhciBpbmZvID0ge1xuICAgICAgICBzb3VyY2VQb3NpdGlvbjogc291cmNlUG9zaXRpb24sXG4gICAgICAgIHBvc2l0aW9uOiBwb3NpdGlvbixcbiAgICAgICAgaXNDbG9zaW5nOiBpc0Nsb3NpbmcsXG4gICAgICAgIGlzV2hpdGU6IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh3aGl0ZUxpc3QsIHRhZyksXG4gICAgICB9O1xuXG4gICAgICAvLyBjYWxsIGBvblRhZygpYFxuICAgICAgdmFyIHJldCA9IG9uVGFnKHRhZywgaHRtbCwgaW5mbyk7XG4gICAgICBpZiAoIWlzTnVsbChyZXQpKSByZXR1cm4gcmV0O1xuXG4gICAgICBpZiAoaW5mby5pc1doaXRlKSB7XG4gICAgICAgIGlmIChpbmZvLmlzQ2xvc2luZykge1xuICAgICAgICAgIHJldHVybiBcIjwvXCIgKyB0YWcgKyBcIj5cIjtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBhdHRycyA9IGdldEF0dHJzKGh0bWwpO1xuICAgICAgICB2YXIgd2hpdGVBdHRyTGlzdCA9IHdoaXRlTGlzdFt0YWddO1xuICAgICAgICB2YXIgYXR0cnNIdG1sID0gcGFyc2VBdHRyKGF0dHJzLmh0bWwsIGZ1bmN0aW9uIChuYW1lLCB2YWx1ZSkge1xuICAgICAgICAgIC8vIGNhbGwgYG9uVGFnQXR0cigpYFxuICAgICAgICAgIHZhciBpc1doaXRlQXR0ciA9IF8uaW5kZXhPZih3aGl0ZUF0dHJMaXN0LCBuYW1lKSAhPT0gLTE7XG4gICAgICAgICAgdmFyIHJldCA9IG9uVGFnQXR0cih0YWcsIG5hbWUsIHZhbHVlLCBpc1doaXRlQXR0cik7XG4gICAgICAgICAgaWYgKCFpc051bGwocmV0KSkgcmV0dXJuIHJldDtcblxuICAgICAgICAgIGlmIChpc1doaXRlQXR0cikge1xuICAgICAgICAgICAgLy8gY2FsbCBgc2FmZUF0dHJWYWx1ZSgpYFxuICAgICAgICAgICAgdmFsdWUgPSBzYWZlQXR0clZhbHVlKHRhZywgbmFtZSwgdmFsdWUsIGNzc0ZpbHRlcik7XG4gICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG5hbWUgKyAnPScgKyBhdHRyaWJ1dGVXcmFwU2lnbiArIHZhbHVlICsgYXR0cmlidXRlV3JhcFNpZ247XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXR1cm4gbmFtZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gY2FsbCBgb25JZ25vcmVUYWdBdHRyKClgXG4gICAgICAgICAgICByZXQgPSBvbklnbm9yZVRhZ0F0dHIodGFnLCBuYW1lLCB2YWx1ZSwgaXNXaGl0ZUF0dHIpO1xuICAgICAgICAgICAgaWYgKCFpc051bGwocmV0KSkgcmV0dXJuIHJldDtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIGJ1aWxkIG5ldyB0YWcgaHRtbFxuICAgICAgICBodG1sID0gXCI8XCIgKyB0YWc7XG4gICAgICAgIGlmIChhdHRyc0h0bWwpIGh0bWwgKz0gXCIgXCIgKyBhdHRyc0h0bWw7XG4gICAgICAgIGlmIChhdHRycy5jbG9zaW5nKSBodG1sICs9IFwiIC9cIjtcbiAgICAgICAgaHRtbCArPSBcIj5cIjtcbiAgICAgICAgcmV0dXJuIGh0bWw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBjYWxsIGBvbklnbm9yZVRhZygpYFxuICAgICAgICByZXQgPSBvbklnbm9yZVRhZyh0YWcsIGh0bWwsIGluZm8pO1xuICAgICAgICBpZiAoIWlzTnVsbChyZXQpKSByZXR1cm4gcmV0O1xuICAgICAgICByZXR1cm4gZXNjYXBlSHRtbChodG1sKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGVzY2FwZUh0bWxcbiAgKTtcblxuICAvLyBpZiBlbmFibGUgc3RyaXBJZ25vcmVUYWdCb2R5XG4gIGlmIChzdHJpcElnbm9yZVRhZ0JvZHkpIHtcbiAgICByZXRIdG1sID0gc3RyaXBJZ25vcmVUYWdCb2R5LnJlbW92ZShyZXRIdG1sKTtcbiAgfVxuXG4gIHJldHVybiByZXRIdG1sO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBGaWx0ZXJYU1M7XG4iLCIvLyBUaGUgbW9kdWxlIGNhY2hlXG52YXIgX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fID0ge307XG5cbi8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG5mdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuXHR2YXIgY2FjaGVkTW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXTtcblx0aWYgKGNhY2hlZE1vZHVsZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuXHR9XG5cdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG5cdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdID0ge1xuXHRcdC8vIG5vIG1vZHVsZS5pZCBuZWVkZWRcblx0XHQvLyBubyBtb2R1bGUubG9hZGVkIG5lZWRlZFxuXHRcdGV4cG9ydHM6IHt9XG5cdH07XG5cblx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG5cdF9fd2VicGFja19tb2R1bGVzX19bbW9kdWxlSWRdKG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG5cdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG5cdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbn1cblxuIiwibGV0IHhzcyA9IHJlcXVpcmUoXCJ4c3NcIik7XG52YXIgc2J5X2pzX2V4aXN0cyA9ICh0eXBlb2Ygc2J5X2pzX2V4aXN0cyAhPT0gJ3VuZGVmaW5lZCcpID8gdHJ1ZSA6IGZhbHNlO1xuaWYoIXNieV9qc19leGlzdHMpIHtcblxuICAgIC8qKlxuICAgICAqIFNhbml0aXplIHN0cmluZyBieSBlc2NhcGluZyBIVE1MIGVudGl0aWVzXG4gICAgICogQHBhcmFtIGlucHV0XG4gICAgICogQHJldHVybnMge3N0cmluZ31cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzYnlFbmNvZGVJbnB1dChpbnB1dCkgIHtcbiAgICAgICAgcmV0dXJuIHhzcyhpbnB1dCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2J5QWRkSW1nTGlxdWlkKCkge1xuICAgICAgICAvKiEgaW1nTGlxdWlkIHYwLjkuOTQ0IC8gMDMtMDUtMjAxMyBodHRwczovL2dpdGh1Yi5jb20va2FyYWNhcy9pbWdMaXF1aWQgKi9cbiAgICAgICAgdmFyIHNieV9pbWdMaXF1aWQgPSBzYnlfaW1nTGlxdWlkIHx8IHtWRVI6IFwiMC45Ljk0NFwifTtcbiAgICAgICAgc2J5X2ltZ0xpcXVpZC5iZ3NfQXZhaWxhYmxlID0gITEsIHNieV9pbWdMaXF1aWQuYmdzX0NoZWNrUnVubmVkID0gITEsIGZ1bmN0aW9uIChpKSB7XG4gICAgICAgICAgICBmdW5jdGlvbiB0KCkge1xuICAgICAgICAgICAgICAgIGlmICghc2J5X2ltZ0xpcXVpZC5iZ3NfQ2hlY2tSdW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgc2J5X2ltZ0xpcXVpZC5iZ3NfQ2hlY2tSdW5uZWQgPSAhMDtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHQgPSBpKCc8c3BhbiBzdHlsZT1cImJhY2tncm91bmQtc2l6ZTpjb3ZlclwiIC8+Jyk7XG4gICAgICAgICAgICAgICAgICAgIGkoXCJib2R5XCIpLmFwcGVuZCh0KSwgIWZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBpID0gdFswXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpICYmIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShpLCBudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlICYmIGUuYmFja2dyb3VuZFNpemUgJiYgKHNieV9pbWdMaXF1aWQuYmdzX0F2YWlsYWJsZSA9IFwiY292ZXJcIiA9PT0gZS5iYWNrZ3JvdW5kU2l6ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSgpLCB0LnJlbW92ZSgpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpLmZuLmV4dGVuZCh7XG4gICAgICAgICAgICAgICAgc2J5X2ltZ0xpcXVpZDogZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWZhdWx0cyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw6ICEwLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmVydGljYWxBbGlnbjogXCJjZW50ZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGhvcml6b250YWxBbGlnbjogXCJjZW50ZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZUJhY2tncm91bmRTaXplOiAhMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZURhdGFIdG1sQXR0cjogITAsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zaXZlOiAhMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGF5OiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFkZUluVGltZTogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZUJveEJhY2tncm91bmQ6ICEwLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGFyZFBpeGVsczogITAsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zaXZlQ2hlY2tUaW1lOiA1MDAsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aW1lY2hlY2t2aXNpYmlsaXR5OiA1MDAsXG4gICAgICAgICAgICAgICAgICAgICAgICBvblN0YXJ0OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgb25GaW5pc2g6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkl0ZW1TdGFydDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uSXRlbUZpbmlzaDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uSXRlbUVycm9yOiBudWxsXG4gICAgICAgICAgICAgICAgICAgIH0sIHQoKTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGEgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zID0gZSwgdGhpcy5zZXR0aW5ncyA9IGkuZXh0ZW5kKHt9LCB0aGlzLmRlZmF1bHRzLCB0aGlzLm9wdGlvbnMpLCB0aGlzLnNldHRpbmdzLm9uU3RhcnQgJiYgdGhpcy5zZXR0aW5ncy5vblN0YXJ0KCksIHRoaXMuZWFjaChmdW5jdGlvbiAodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gZSgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMSA9PT0gdS5jc3MoXCJiYWNrZ3JvdW5kLWltYWdlXCIpLmluZGV4T2YoZW5jb2RlVVJJKGMuYXR0cihcInNyY1wiKSkpICYmIHUuY3NzKHtcImJhY2tncm91bmQtaW1hZ2VcIjogJ3VybChcIicgKyBlbmNvZGVVUkkoYy5hdHRyKFwic3JjXCIpKSArICdcIiknfSksIHUuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJiYWNrZ3JvdW5kLXNpemVcIjogZy5maWxsID8gXCJjb3ZlclwiIDogXCJjb250YWluXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYmFja2dyb3VuZC1wb3NpdGlvblwiOiAoZy5ob3Jpem9udGFsQWxpZ24gKyBcIiBcIiArIGcudmVydGljYWxBbGlnbikudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJiYWNrZ3JvdW5kLXJlcGVhdFwiOiBcIm5vLXJlcGVhdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksIGkoXCJhOmZpcnN0XCIsIHUpLmNzcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IFwiYmxvY2tcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiMTAwJVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksIGkoXCJpbWdcIiwgdSkuY3NzKHtkaXNwbGF5OiBcIm5vbmVcIn0pLCBnLm9uSXRlbUZpbmlzaCAmJiBnLm9uSXRlbUZpbmlzaCh0LCB1LCBjKSwgdS5hZGRDbGFzcyhcInNieV9pbWdMaXF1aWRfYmdTaXplXCIpLCB1LmFkZENsYXNzKFwic2J5X2ltZ0xpcXVpZF9yZWFkeVwiKSwgbCgpXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIG8oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gZSgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYy5kYXRhKFwic2J5X2ltZ0xpcXVpZF9lcnJvclwiKSB8fCBjLmRhdGEoXCJzYnlfaW1nTGlxdWlkX2xvYWRlZFwiKSB8fCBjLmRhdGEoXCJzYnlfaW1nTGlxdWlkX29sZFByb2Nlc3NlZFwiKSB8fCAodS5pcyhcIjp2aXNpYmxlXCIpICYmIGNbMF0uY29tcGxldGUgJiYgY1swXS53aWR0aCA+IDAgJiYgY1swXS5oZWlnaHQgPiAwID8gKGMuZGF0YShcInNieV9pbWdMaXF1aWRfbG9hZGVkXCIsICEwKSwgc2V0VGltZW91dChyLCB0ICogZy5kZWxheSkpIDogc2V0VGltZW91dChlLCBnLnRpbWVjaGVja3Zpc2liaWxpdHkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjLmRhdGEoXCJvbGRTcmNcIikgJiYgYy5kYXRhKFwib2xkU3JjXCIpICE9PSBjLmF0dHIoXCJzcmNcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGEgPSBjLmNsb25lKCkucmVtb3ZlQXR0cihcInN0eWxlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYS5kYXRhKFwic2J5X2ltZ0xpcXVpZF9zZXR0aW5nc1wiLCBjLmRhdGEoXCJzYnlfaW1nTGlxdWlkX3NldHRpbmdzXCIpKSwgYy5wYXJlbnQoKS5wcmVwZW5kKGEpLCBjLnJlbW92ZSgpLCBjID0gYSwgY1swXS53aWR0aCA9IDAsIHZvaWQgc2V0VGltZW91dChvLCAxMClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGMuZGF0YShcInNieV9pbWdMaXF1aWRfb2xkUHJvY2Vzc2VkXCIpID8gdm9pZCByKCkgOiAoYy5kYXRhKFwic2J5X2ltZ0xpcXVpZF9vbGRQcm9jZXNzZWRcIiwgITEpLCBjLmRhdGEoXCJvbGRTcmNcIiwgYy5hdHRyKFwic3JjXCIpKSwgaShcImltZzpub3QoOmZpcnN0KVwiLCB1KS5jc3MoXCJkaXNwbGF5XCIsIFwibm9uZVwiKSwgdS5jc3Moe292ZXJmbG93OiBcImhpZGRlblwifSksIGMuZmFkZVRvKDAsIDApLnJlbW92ZUF0dHIoXCJ3aWR0aFwiKS5yZW1vdmVBdHRyKFwiaGVpZ2h0XCIpLmNzcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IFwidmlzaWJsZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1heC13aWR0aFwiOiBcIm5vbmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtYXgtaGVpZ2h0XCI6IFwibm9uZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogXCJhdXRvXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogXCJhdXRvXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IFwiYmxvY2tcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLCBjLm9uKFwiZXJyb3JcIiwgbiksIGNbMF0ub25lcnJvciA9IG4sIGUoKSwgdm9pZCBkKCkpXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGQoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGcucmVzcG9uc2l2ZSB8fCBjLmRhdGEoXCJzYnlfaW1nTGlxdWlkX29sZFByb2Nlc3NlZFwiKSkgJiYgYy5kYXRhKFwic2J5X2ltZ0xpcXVpZF9zZXR0aW5nc1wiKSAmJiAoZyA9IGMuZGF0YShcInNieV9pbWdMaXF1aWRfc2V0dGluZ3NcIiksIHUuYWN0dWFsU2l6ZSA9IHUuZ2V0KDApLm9mZnNldFdpZHRoICsgdS5nZXQoMCkub2Zmc2V0SGVpZ2h0IC8gMWU0LCB1LnNpemVPbGQgJiYgdS5hY3R1YWxTaXplICE9PSB1LnNpemVPbGQgJiYgcigpLCB1LnNpemVPbGQgPSB1LmFjdHVhbFNpemUsIHNldFRpbWVvdXQoZCwgZy5yZXNwb25zaXZlQ2hlY2tUaW1lKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLmRhdGEoXCJzYnlfaW1nTGlxdWlkX2Vycm9yXCIsICEwKSwgdS5hZGRDbGFzcyhcInNieV9pbWdMaXF1aWRfZXJyb3JcIiksIGcub25JdGVtRXJyb3IgJiYgZy5vbkl0ZW1FcnJvcih0LCB1LCBjKSwgbCgpXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHMoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGkgPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYS5zZXR0aW5ncy51c2VEYXRhSHRtbEF0dHIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHQgPSB1LmF0dHIoXCJkYXRhLXNieV9pbWdMaXF1aWQtZmlsbFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlID0gdS5hdHRyKFwiZGF0YS1zYnlfaW1nTGlxdWlkLWhvcml6b250YWxBbGlnblwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvID0gdS5hdHRyKFwiZGF0YS1zYnlfaW1nTGlxdWlkLXZlcnRpY2FsQWxpZ25cIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcInRydWVcIiA9PT0gdCB8fCBcImZhbHNlXCIgPT09IHQpICYmIChpLmZpbGwgPSBCb29sZWFuKFwidHJ1ZVwiID09PSB0KSksIHZvaWQgMCA9PT0gZSB8fCBcImxlZnRcIiAhPT0gZSAmJiBcImNlbnRlclwiICE9PSBlICYmIFwicmlnaHRcIiAhPT0gZSAmJiAtMSA9PT0gZS5pbmRleE9mKFwiJVwiKSB8fCAoaS5ob3Jpem9udGFsQWxpZ24gPSBlKSwgdm9pZCAwID09PSBvIHx8IFwidG9wXCIgIT09IG8gJiYgXCJib3R0b21cIiAhPT0gbyAmJiBcImNlbnRlclwiICE9PSBvICYmIC0xID09PSBvLmluZGV4T2YoXCIlXCIpIHx8IChpLnZlcnRpY2FsQWxpZ24gPSBvKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2J5X2ltZ0xpcXVpZC5pc0lFICYmIGEuc2V0dGluZ3MuaWVGYWRlSW5EaXNhYmxlZCAmJiAoaS5mYWRlSW5UaW1lID0gMCksIGlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gcigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaSwgZSwgYSwgbywgZCwgbiwgcywgciwgbSA9IDAsIGggPSAwLCBmID0gdS53aWR0aCgpLCB2ID0gdS5oZWlnaHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkIDAgPT09IGMuZGF0YShcIm93aWR0aFwiKSAmJiBjLmRhdGEoXCJvd2lkdGhcIiwgY1swXS53aWR0aCksIHZvaWQgMCA9PT0gYy5kYXRhKFwib2hlaWdodFwiKSAmJiBjLmRhdGEoXCJvaGVpZ2h0XCIsIGNbMF0uaGVpZ2h0KSwgZy5maWxsID09PSBmIC8gdiA+PSBjLmRhdGEoXCJvd2lkdGhcIikgLyBjLmRhdGEoXCJvaGVpZ2h0XCIpID8gKGkgPSBcIjEwMCVcIiwgZSA9IFwiYXV0b1wiLCBhID0gTWF0aC5mbG9vcihmKSwgbyA9IE1hdGguZmxvb3IoZiAqIChjLmRhdGEoXCJvaGVpZ2h0XCIpIC8gYy5kYXRhKFwib3dpZHRoXCIpKSkpIDogKGkgPSBcImF1dG9cIiwgZSA9IFwiMTAwJVwiLCBhID0gTWF0aC5mbG9vcih2ICogKGMuZGF0YShcIm93aWR0aFwiKSAvIGMuZGF0YShcIm9oZWlnaHRcIikpKSwgbyA9IE1hdGguZmxvb3IodikpLCBkID0gZy5ob3Jpem9udGFsQWxpZ24udG9Mb3dlckNhc2UoKSwgcyA9IGYgLSBhLCBcImxlZnRcIiA9PT0gZCAmJiAoaCA9IDApLCBcImNlbnRlclwiID09PSBkICYmIChoID0gLjUgKiBzKSwgXCJyaWdodFwiID09PSBkICYmIChoID0gcyksIC0xICE9PSBkLmluZGV4T2YoXCIlXCIpICYmIChkID0gcGFyc2VJbnQoZC5yZXBsYWNlKFwiJVwiLCBcIlwiKSwgMTApLCBkID4gMCAmJiAoaCA9IHMgKiBkICogLjAxKSksIG4gPSBnLnZlcnRpY2FsQWxpZ24udG9Mb3dlckNhc2UoKSwgciA9IHYgLSBvLCBcImxlZnRcIiA9PT0gbiAmJiAobSA9IDApLCBcImNlbnRlclwiID09PSBuICYmIChtID0gLjUgKiByKSwgXCJib3R0b21cIiA9PT0gbiAmJiAobSA9IHIpLCAtMSAhPT0gbi5pbmRleE9mKFwiJVwiKSAmJiAobiA9IHBhcnNlSW50KG4ucmVwbGFjZShcIiVcIiwgXCJcIiksIDEwKSwgbiA+IDAgJiYgKG0gPSByICogbiAqIC4wMSkpLCBnLmhhcmRQaXhlbHMgJiYgKGkgPSBhLCBlID0gbyksIGMuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtYXJnaW4tbGVmdFwiOiBNYXRoLmZsb29yKGgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1hcmdpbi10b3BcIjogTWF0aC5mbG9vcihtKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLCBjLmRhdGEoXCJzYnlfaW1nTGlxdWlkX29sZFByb2Nlc3NlZFwiKSB8fCAoYy5mYWRlVG8oZy5mYWRlSW5UaW1lLCAxKSwgYy5kYXRhKFwic2J5X2ltZ0xpcXVpZF9vbGRQcm9jZXNzZWRcIiwgITApLCBnLnJlbW92ZUJveEJhY2tncm91bmQgJiYgdS5jc3MoXCJiYWNrZ3JvdW5kLWltYWdlXCIsIFwibm9uZVwiKSwgdS5hZGRDbGFzcyhcInNieV9pbWdMaXF1aWRfbm9iZ1NpemVcIiksIHUuYWRkQ2xhc3MoXCJzYnlfaW1nTGlxdWlkX3JlYWR5XCIpKSwgZy5vbkl0ZW1GaW5pc2ggJiYgZy5vbkl0ZW1GaW5pc2godCwgdSwgYyksIGwoKVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBsKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQgPT09IGEubGVuZ3RoIC0gMSAmJiBhLnNldHRpbmdzLm9uRmluaXNoICYmIGEuc2V0dGluZ3Mub25GaW5pc2goKVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgZyA9IGEuc2V0dGluZ3MsIHUgPSBpKHRoaXMpLCBjID0gaShcImltZzpmaXJzdFwiLCB1KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjLmxlbmd0aCA/IChjLmRhdGEoXCJzYnlfaW1nTGlxdWlkX3NldHRpbmdzXCIpID8gKHUucmVtb3ZlQ2xhc3MoXCJzYnlfaW1nTGlxdWlkX2Vycm9yXCIpLnJlbW92ZUNsYXNzKFwic2J5X2ltZ0xpcXVpZF9yZWFkeVwiKSwgZyA9IGkuZXh0ZW5kKHt9LCBjLmRhdGEoXCJzYnlfaW1nTGlxdWlkX3NldHRpbmdzXCIpLCBhLm9wdGlvbnMpKSA6IGcgPSBpLmV4dGVuZCh7fSwgYS5zZXR0aW5ncywgcygpKSwgYy5kYXRhKFwic2J5X2ltZ0xpcXVpZF9zZXR0aW5nc1wiLCBnKSwgZy5vbkl0ZW1TdGFydCAmJiBnLm9uSXRlbVN0YXJ0KHQsIHUsIGMpLCB2b2lkIChzYnlfaW1nTGlxdWlkLmJnc19BdmFpbGFibGUgJiYgZy51c2VCYWNrZ3JvdW5kU2l6ZSA/IGUoKSA6IG8oKSkpIDogdm9pZCBuKClcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICB9KGpRdWVyeSk7XG5cbiAgICAgICAgLy8gVXNlIGltYWdlZmlsbCB0byBzZXQgdGhlIGltYWdlcyBhcyBiYWNrZ3JvdW5kcyBzbyB0aGV5IGNhbiBiZSBzcXVhcmVcbiAgICAgICAgIWZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBjc3MgPSBzYnlfaW1nTGlxdWlkLmluamVjdENzcyxcbiAgICAgICAgICAgICAgaGVhZCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF0sXG4gICAgICAgICAgICAgIHN0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcbiAgICAgICAgICAgIHN0eWxlLnR5cGUgPSAndGV4dC9jc3MnO1xuICAgICAgICAgICAgaWYgKHN0eWxlLnN0eWxlU2hlZXQpIHtcbiAgICAgICAgICAgICAgICBzdHlsZS5zdHlsZVNoZWV0LmNzc1RleHQgPSBjc3M7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHN0eWxlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNzcykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaGVhZC5hcHBlbmRDaGlsZChzdHlsZSk7XG4gICAgICAgIH0oKTtcbiAgICB9XG5cbiAgICAvKiBKYXZhU2NyaXB0IExpbmtpZnkgLSB2MC4zIC0gNi8yNy8yMDA5IC0gaHR0cDovL2JlbmFsbWFuLmNvbS9wcm9qZWN0cy9qYXZhc2NyaXB0LWxpbmtpZnkvICovXG4gICAgd2luZG93LnNieUxpbmtpZnkgPSAoZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgayA9IFwiW2EtelxcXFxkLi1dKzovL1wiLFxuICAgICAgICAgIGggPSBcIig/Oig/OlswLTldfFsxLTldXFxcXGR8MVxcXFxkezJ9fDJbMC00XVxcXFxkfDI1WzAtNV0pXFxcXC4pezN9KD86WzAtOV18WzEtOV1cXFxcZHwxXFxcXGR7Mn18MlswLTRdXFxcXGR8MjVbMC01XSlcIixcbiAgICAgICAgICBjID0gXCIoPzooPzpbXlxcXFxzIUAjJCVeJiooKV89K1tcXFxcXXt9XFxcXFxcXFx8OzonXFxcIiwuPD4vP10rKVxcXFwuKStcIixcbiAgICAgICAgICBuID0gXCIoPzphY3xhZHxhZXJvfGFlfGFmfGFnfGFpfGFsfGFtfGFufGFvfGFxfGFycGF8YXJ8YXNpYXxhc3xhdHxhdXxhd3xheHxhenxiYXxiYnxiZHxiZXxiZnxiZ3xiaHxiaXp8Yml8Ymp8Ym18Ym58Ym98YnJ8YnN8YnR8YnZ8Ynd8Ynl8Ynp8Y2F0fGNhfGNjfGNkfGNmfGNnfGNofGNpfGNrfGNsfGNtfGNufGNvb3B8Y29tfGNvfGNyfGN1fGN2fGN4fGN5fGN6fGRlfGRqfGRrfGRtfGRvfGR6fGVjfGVkdXxlZXxlZ3xlcnxlc3xldHxldXxmaXxmanxma3xmbXxmb3xmcnxnYXxnYnxnZHxnZXxnZnxnZ3xnaHxnaXxnbHxnbXxnbnxnb3Z8Z3B8Z3F8Z3J8Z3N8Z3R8Z3V8Z3d8Z3l8aGt8aG18aG58aHJ8aHR8aHV8aWR8aWV8aWx8aW18aW5mb3xpbnR8aW58aW98aXF8aXJ8aXN8aXR8amV8am18am9ic3xqb3xqcHxrZXxrZ3xraHxraXxrbXxrbnxrcHxrcnxrd3xreXxrenxsYXxsYnxsY3xsaXxsa3xscnxsc3xsdHxsdXxsdnxseXxtYXxtY3xtZHxtZXxtZ3xtaHxtaWx8bWt8bWx8bW18bW58bW9iaXxtb3xtcHxtcXxtcnxtc3xtdHxtdXNldW18bXV8bXZ8bXd8bXh8bXl8bXp8bmFtZXxuYXxuY3xuZXR8bmV8bmZ8bmd8bml8bmx8bm98bnB8bnJ8bnV8bnp8b218b3JnfHBhfHBlfHBmfHBnfHBofHBrfHBsfHBtfHBufHByb3xwcnxwc3xwdHxwd3xweXxxYXxyZXxyb3xyc3xydXxyd3xzYXxzYnxzY3xzZHxzZXxzZ3xzaHxzaXxzanxza3xzbHxzbXxzbnxzb3xzcnxzdHxzdXxzdnxzeXxzenx0Y3x0ZHx0ZWx8dGZ8dGd8dGh8dGp8dGt8dGx8dG18dG58dG98dHB8dHJhdmVsfHRyfHR0fHR2fHR3fHR6fHVhfHVnfHVrfHVtfHVzfHV5fHV6fHZhfHZjfHZlfHZnfHZpfHZufHZ1fHdmfHdzfHhuLS0wendtNTZkfHhuLS0xMWI1YnMzYTlhajZnfHhuLS04MGFraGJ5a25qNGZ8eG4tLTl0NGIxMXlpNWF8eG4tLWRlYmEwYWR8eG4tLWc2dzI1MWR8eG4tLWhnYms2YWo3ZjUzYmJhfHhuLS1obGNqNmF5YTllc2M3YXx4bi0tanhhbHBkbHB8eG4tLWtnYmVjaHR2fHhuLS16Y2t6YWh8eWV8eXR8eXV8emF8em18encpXCIsXG4gICAgICAgICAgZiA9IFwiKD86XCIgKyBjICsgbiArIFwifFwiICsgaCArIFwiKVwiLCBvID0gXCIoPzpbOy9dW14jPzw+XFxcXHNdKik/XCIsIGUgPSBcIig/OlxcXFw/W14jPD5cXFxcc10qKT8oPzojW148PlxcXFxzXSopP1wiLFxuICAgICAgICAgIGQgPSBcIlxcXFxiXCIgKyBrICsgXCJbXjw+XFxcXHNdK1wiLCBhID0gXCJcXFxcYlwiICsgZiArIG8gKyBlICsgXCIoPyFcXFxcdylcIiwgbSA9IFwibWFpbHRvOlwiLFxuICAgICAgICAgIGogPSBcIig/OlwiICsgbSArIFwiKT9bYS16MC05ISMkJSYnKisvPT9eX2B7fH1+LV0rKD86XFxcXC5bYS16MC05ISMkJSYnKisvPT9eX2B7fH1+LV0rKSpAXCIgKyBmICsgZSArIFwiKD8hXFxcXHcpXCIsXG4gICAgICAgICAgbCA9IG5ldyBSZWdFeHAoXCIoPzpcIiArIGQgKyBcInxcIiArIGEgKyBcInxcIiArIGogKyBcIilcIiwgXCJpZ1wiKSwgZyA9IG5ldyBSZWdFeHAoXCJeXCIgKyBrLCBcImlcIiksXG4gICAgICAgICAgYiA9IHtcIidcIjogXCJgXCIsIFwiPlwiOiBcIjxcIiwgXCIpXCI6IFwiKFwiLCBcIl1cIjogXCJbXCIsIFwifVwiOiBcIntcIiwgXCJCO1wiOiBcIkIrXCIsIFwiYjpcIjogXCJiOVwifSwgaSA9IHtcbiAgICAgICAgICAgICAgY2FsbGJhY2s6IGZ1bmN0aW9uIChxLCBwKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gcCA/ICc8YSBocmVmPVwiJyArIHAgKyAnXCIgdGl0bGU9XCInICsgcCArICdcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPicgKyBxICsgXCI8L2E+XCIgOiBxXG4gICAgICAgICAgICAgIH0sIHB1bmN0X3JlZ2V4cDogLyg/OlshPy4sOjsnXCJdfCg/OiZ8JmFtcDspKD86bHR8Z3R8cXVvdHxhcG9zfHJhcXVvfGxhcXVvfHJzYXF1b3xsc2FxdW8pOykkL1xuICAgICAgICAgIH07XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAodSwgeikge1xuICAgICAgICAgICAgeiA9IHogfHwge307XG4gICAgICAgICAgICB2YXIgdywgdiwgQSwgcCwgeCA9IFwiXCIsIHQgPSBbXSwgcywgRSwgQywgeSwgcSwgRCwgQiwgcjtcbiAgICAgICAgICAgIGZvciAodiBpbiBpKSB7XG4gICAgICAgICAgICAgICAgaWYgKHpbdl0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICB6W3ZdID0gaVt2XVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHdoaWxlICh3ID0gbC5leGVjKHUpKSB7XG4gICAgICAgICAgICAgICAgQSA9IHdbMF07XG4gICAgICAgICAgICAgICAgRSA9IGwubGFzdEluZGV4O1xuICAgICAgICAgICAgICAgIEMgPSBFIC0gQS5sZW5ndGg7XG4gICAgICAgICAgICAgICAgaWYgKC9bXFwvOl0vLnRlc3QodS5jaGFyQXQoQyAtIDEpKSkge1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgICAgICAgIHkgPSBBO1xuICAgICAgICAgICAgICAgICAgICByID0gQS5zdWJzdHIoLTEpO1xuICAgICAgICAgICAgICAgICAgICBCID0gYltyXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKEIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHEgPSBBLm1hdGNoKG5ldyBSZWdFeHAoXCJcXFxcXCIgKyBCICsgXCIoPyEkKVwiLCBcImdcIikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgRCA9IEEubWF0Y2gobmV3IFJlZ0V4cChcIlxcXFxcIiArIHIsIFwiZ1wiKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHEgPyBxLmxlbmd0aCA6IDApIDwgKEQgPyBELmxlbmd0aCA6IDApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQSA9IEEuc3Vic3RyKDAsIEEubGVuZ3RoIC0gMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRS0tXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHoucHVuY3RfcmVnZXhwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBBID0gQS5yZXBsYWNlKHoucHVuY3RfcmVnZXhwLCBmdW5jdGlvbiAoRikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEUgLT0gRi5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IHdoaWxlIChBLmxlbmd0aCAmJiBBICE9PSB5KTtcbiAgICAgICAgICAgICAgICBwID0gQTtcbiAgICAgICAgICAgICAgICBpZiAoIWcudGVzdChwKSkge1xuICAgICAgICAgICAgICAgICAgICBwID0gKHAuaW5kZXhPZihcIkBcIikgIT09IC0xID8gKCFwLmluZGV4T2YobSkgPyBcIlwiIDogbSkgOiAhcC5pbmRleE9mKFwiaXJjLlwiKSA/IFwiaXJjOi8vXCIgOiAhcC5pbmRleE9mKFwiZnRwLlwiKSA/IFwiZnRwOi8vXCIgOiBcImh0dHA6Ly9cIikgKyBwXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChzICE9IEMpIHtcbiAgICAgICAgICAgICAgICAgICAgdC5wdXNoKFt1LnNsaWNlKHMsIEMpXSk7XG4gICAgICAgICAgICAgICAgICAgIHMgPSBFXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHQucHVzaChbQSwgcF0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0LnB1c2goW3Uuc3Vic3RyKHMpXSk7XG4gICAgICAgICAgICBmb3IgKHYgPSAwOyB2IDwgdC5sZW5ndGg7IHYrKykge1xuICAgICAgICAgICAgICAgIHggKz0gei5jYWxsYmFjay5hcHBseSh3aW5kb3csIHRbdl0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4geCB8fCB1XG4gICAgICAgIH1cbiAgICB9KSgpO1xuXG4gICAgLy9DaGVja3Mgd2hldGhlciBicm93c2VyIHN1cHBvcnQgSFRNTDUgdmlkZW8gZWxlbWVudFxuICAgIGZ1bmN0aW9uIHNieV9zdXBwb3J0c192aWRlbygpIHtcbiAgICAgICAgcmV0dXJuICEhZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKS5jYW5QbGF5VHlwZTtcbiAgICB9XG5cbiAgICAvLyBDYXJvdXNlbFxuICAgICFmdW5jdGlvbiAoYSwgYiwgYywgZCkge1xuICAgICAgICBmdW5jdGlvbiBlKGIsIGMpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0dGluZ3MgPSBudWxsLCB0aGlzLm9wdGlvbnMgPSBhLmV4dGVuZCh7fSwgZS5EZWZhdWx0cywgYyksIHRoaXMuJGVsZW1lbnQgPSBhKGIpLCB0aGlzLl9oYW5kbGVycyA9IHt9LCB0aGlzLl9wbHVnaW5zID0ge30sIHRoaXMuX3N1cHJlc3MgPSB7fSwgdGhpcy5fY3VycmVudCA9IG51bGwsIHRoaXMuX3NwZWVkID0gbnVsbCwgdGhpcy5fY29vcmRpbmF0ZXMgPSBbXSwgdGhpcy5fYnJlYWtwb2ludCA9IG51bGwsIHRoaXMuX3dpZHRoID0gbnVsbCwgdGhpcy5faXRlbXMgPSBbXSwgdGhpcy5fY2xvbmVzID0gW10sIHRoaXMuX21lcmdlcnMgPSBbXSwgdGhpcy5fd2lkdGhzID0gW10sIHRoaXMuX2ludmFsaWRhdGVkID0ge30sIHRoaXMuX3BpcGUgPSBbXSwgdGhpcy5fZHJhZyA9IHtcbiAgICAgICAgICAgICAgICB0aW1lOiBudWxsLFxuICAgICAgICAgICAgICAgIHRhcmdldDogbnVsbCxcbiAgICAgICAgICAgICAgICBwb2ludGVyOiBudWxsLFxuICAgICAgICAgICAgICAgIHN0YWdlOiB7c3RhcnQ6IG51bGwsIGN1cnJlbnQ6IG51bGx9LFxuICAgICAgICAgICAgICAgIGRpcmVjdGlvbjogbnVsbFxuICAgICAgICAgICAgfSwgdGhpcy5fc3RhdGVzID0ge1xuICAgICAgICAgICAgICAgIGN1cnJlbnQ6IHt9LFxuICAgICAgICAgICAgICAgIHRhZ3M6IHtpbml0aWFsaXppbmc6IFtcImJ1c3lcIl0sIGFuaW1hdGluZzogW1wiYnVzeVwiXSwgZHJhZ2dpbmc6IFtcImludGVyYWN0aW5nXCJdfVxuICAgICAgICAgICAgfSwgYS5lYWNoKFtcIm9uUmVzaXplXCIsIFwib25UaHJvdHRsZWRSZXNpemVcIl0sIGEucHJveHkoZnVuY3Rpb24gKGIsIGMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9oYW5kbGVyc1tjXSA9IGEucHJveHkodGhpc1tjXSwgdGhpcylcbiAgICAgICAgICAgIH0sIHRoaXMpKSwgYS5lYWNoKGUuUGx1Z2lucywgYS5wcm94eShmdW5jdGlvbiAoYSwgYikge1xuICAgICAgICAgICAgICAgIHRoaXMuX3BsdWdpbnNbYS5jaGFyQXQoMCkudG9Mb3dlckNhc2UoKSArIGEuc2xpY2UoMSldID0gbmV3IGIodGhpcylcbiAgICAgICAgICAgIH0sIHRoaXMpKSwgYS5lYWNoKGUuV29ya2VycywgYS5wcm94eShmdW5jdGlvbiAoYiwgYykge1xuICAgICAgICAgICAgICAgIHRoaXMuX3BpcGUucHVzaCh7ZmlsdGVyOiBjLmZpbHRlciwgcnVuOiBhLnByb3h5KGMucnVuLCB0aGlzKX0pXG4gICAgICAgICAgICB9LCB0aGlzKSksIHRoaXMuc2V0dXAoKSwgdGhpcy5pbml0aWFsaXplKClcbiAgICAgICAgfVxuXG4gICAgICAgIGUuRGVmYXVsdHMgPSB7XG4gICAgICAgICAgICBpdGVtczogMyxcbiAgICAgICAgICAgIGxvb3A6ICExLFxuICAgICAgICAgICAgY2VudGVyOiAhMSxcbiAgICAgICAgICAgIHJld2luZDogITEsXG4gICAgICAgICAgICBtb3VzZURyYWc6ICEwLFxuICAgICAgICAgICAgdG91Y2hEcmFnOiAhMCxcbiAgICAgICAgICAgIHB1bGxEcmFnOiAhMCxcbiAgICAgICAgICAgIGZyZWVEcmFnOiAhMSxcbiAgICAgICAgICAgIG1hcmdpbjogMCxcbiAgICAgICAgICAgIHN0YWdlUGFkZGluZzogMCxcbiAgICAgICAgICAgIG1lcmdlOiAhMSxcbiAgICAgICAgICAgIG1lcmdlRml0OiAhMCxcbiAgICAgICAgICAgIGF1dG9XaWR0aDogITEsXG4gICAgICAgICAgICBzdGFydFBvc2l0aW9uOiAwLFxuICAgICAgICAgICAgcnRsOiAhMSxcbiAgICAgICAgICAgIHNtYXJ0U3BlZWQ6IDI1MCxcbiAgICAgICAgICAgIGZsdWlkU3BlZWQ6ICExLFxuICAgICAgICAgICAgZHJhZ0VuZFNwZWVkOiAhMSxcbiAgICAgICAgICAgIHJlc3BvbnNpdmU6IHt9LFxuICAgICAgICAgICAgcmVzcG9uc2l2ZVJlZnJlc2hSYXRlOiAyMDAsXG4gICAgICAgICAgICByZXNwb25zaXZlQmFzZUVsZW1lbnQ6IGIsXG4gICAgICAgICAgICBmYWxsYmFja0Vhc2luZzogXCJzd2luZ1wiLFxuICAgICAgICAgICAgaW5mbzogITEsXG4gICAgICAgICAgICBuZXN0ZWRJdGVtU2VsZWN0b3I6ICExLFxuICAgICAgICAgICAgaXRlbUVsZW1lbnQ6IFwiZGl2XCIsXG4gICAgICAgICAgICBzdGFnZUVsZW1lbnQ6IFwiZGl2XCIsXG4gICAgICAgICAgICByZWZyZXNoQ2xhc3M6IFwic2J5LW93bC1yZWZyZXNoXCIsXG4gICAgICAgICAgICBsb2FkZWRDbGFzczogXCJzYnktb3dsLWxvYWRlZFwiLFxuICAgICAgICAgICAgbG9hZGluZ0NsYXNzOiBcInNieS1vd2wtbG9hZGluZ1wiLFxuICAgICAgICAgICAgcnRsQ2xhc3M6IFwic2J5LW93bC1ydGxcIixcbiAgICAgICAgICAgIHJlc3BvbnNpdmVDbGFzczogXCJzYnktb3dsLXJlc3BvbnNpdmVcIixcbiAgICAgICAgICAgIGRyYWdDbGFzczogXCJzYnktb3dsLWRyYWdcIixcbiAgICAgICAgICAgIGl0ZW1DbGFzczogXCJzYnktb3dsLWl0ZW1cIixcbiAgICAgICAgICAgIHN0YWdlQ2xhc3M6IFwic2J5LW93bC1zdGFnZVwiLFxuICAgICAgICAgICAgc3RhZ2VPdXRlckNsYXNzOiBcInNieS1vd2wtc3RhZ2Utb3V0ZXJcIixcbiAgICAgICAgICAgIGdyYWJDbGFzczogXCJzYnktb3dsLWdyYWJcIlxuICAgICAgICB9LCBlLldpZHRoID0ge0RlZmF1bHQ6IFwiZGVmYXVsdFwiLCBJbm5lcjogXCJpbm5lclwiLCBPdXRlcjogXCJvdXRlclwifSwgZS5UeXBlID0ge1xuICAgICAgICAgICAgRXZlbnQ6IFwiZXZlbnRcIixcbiAgICAgICAgICAgIFN0YXRlOiBcInN0YXRlXCJcbiAgICAgICAgfSwgZS5QbHVnaW5zID0ge30sIGUuV29ya2VycyA9IFt7XG4gICAgICAgICAgICBmaWx0ZXI6IFtcIndpZHRoXCIsIFwic2V0dGluZ3NcIl0sIHJ1bjogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3dpZHRoID0gdGhpcy4kZWxlbWVudC53aWR0aCgpXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIHtcbiAgICAgICAgICAgIGZpbHRlcjogW1wid2lkdGhcIiwgXCJpdGVtc1wiLCBcInNldHRpbmdzXCJdLCBydW46IGZ1bmN0aW9uIChhKSB7XG4gICAgICAgICAgICAgICAgYS5jdXJyZW50ID0gdGhpcy5faXRlbXMgJiYgdGhpcy5faXRlbXNbdGhpcy5yZWxhdGl2ZSh0aGlzLl9jdXJyZW50KV1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwge1xuICAgICAgICAgICAgZmlsdGVyOiBbXCJpdGVtc1wiLCBcInNldHRpbmdzXCJdLCBydW46IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLiRzdGFnZS5jaGlsZHJlbihcIi5jbG9uZWRcIikucmVtb3ZlKClcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwge1xuICAgICAgICAgICAgZmlsdGVyOiBbXCJ3aWR0aFwiLCBcIml0ZW1zXCIsIFwic2V0dGluZ3NcIl0sIHJ1bjogZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgICAgICAgICB2YXIgYiA9IHRoaXMuc2V0dGluZ3MubWFyZ2luIHx8IFwiXCIsIGMgPSAhdGhpcy5zZXR0aW5ncy5hdXRvV2lkdGgsIGQgPSB0aGlzLnNldHRpbmdzLnJ0bCxcbiAgICAgICAgICAgICAgICAgIGUgPSB7d2lkdGg6IFwiYXV0b1wiLCBcIm1hcmdpbi1sZWZ0XCI6IGQgPyBiIDogXCJcIiwgXCJtYXJnaW4tcmlnaHRcIjogZCA/IFwiXCIgOiBifTtcbiAgICAgICAgICAgICAgICAhYyAmJiB0aGlzLiRzdGFnZS5jaGlsZHJlbigpLmNzcyhlKSwgYS5jc3MgPSBlXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIHtcbiAgICAgICAgICAgIGZpbHRlcjogW1wid2lkdGhcIiwgXCJpdGVtc1wiLCBcInNldHRpbmdzXCJdLCBydW46IGZ1bmN0aW9uIChhKSB7XG4gICAgICAgICAgICAgICAgdmFyIGIgPSAodGhpcy53aWR0aCgpIC8gdGhpcy5zZXR0aW5ncy5pdGVtcykudG9GaXhlZCgzKSAtIHRoaXMuc2V0dGluZ3MubWFyZ2luLCBjID0gbnVsbCxcbiAgICAgICAgICAgICAgICAgIGQgPSB0aGlzLl9pdGVtcy5sZW5ndGgsIGUgPSAhdGhpcy5zZXR0aW5ncy5hdXRvV2lkdGgsIGYgPSBbXTtcbiAgICAgICAgICAgICAgICBmb3IgKGEuaXRlbXMgPSB7XG4gICAgICAgICAgICAgICAgICAgIG1lcmdlOiAhMSxcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGJcbiAgICAgICAgICAgICAgICB9OyBkLS07KSBjID0gdGhpcy5fbWVyZ2Vyc1tkXSwgYyA9IHRoaXMuc2V0dGluZ3MubWVyZ2VGaXQgJiYgTWF0aC5taW4oYywgdGhpcy5zZXR0aW5ncy5pdGVtcykgfHwgYywgYS5pdGVtcy5tZXJnZSA9IGMgPiAxIHx8IGEuaXRlbXMubWVyZ2UsIGZbZF0gPSBlID8gYiAqIGMgOiB0aGlzLl9pdGVtc1tkXS53aWR0aCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3dpZHRocyA9IGZcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwge1xuICAgICAgICAgICAgZmlsdGVyOiBbXCJpdGVtc1wiLCBcInNldHRpbmdzXCJdLCBydW46IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB2YXIgYiA9IFtdLCBjID0gdGhpcy5faXRlbXMsIGQgPSB0aGlzLnNldHRpbmdzLCBlID0gTWF0aC5tYXgoMiAqIGQuaXRlbXMsIDQpLFxuICAgICAgICAgICAgICAgICAgZiA9IDIgKiBNYXRoLmNlaWwoYy5sZW5ndGggLyAyKSwgZyA9IGQubG9vcCAmJiBjLmxlbmd0aCA/IGQucmV3aW5kID8gZSA6IE1hdGgubWF4KGUsIGYpIDogMCwgaCA9IFwiXCIsXG4gICAgICAgICAgICAgICAgICBpID0gXCJcIjtcbiAgICAgICAgICAgICAgICBmb3IgKGcgLz0gMjsgZy0tOykgYi5wdXNoKHRoaXMubm9ybWFsaXplKGIubGVuZ3RoIC8gMiwgITApKSwgaCArPSBjW2JbYi5sZW5ndGggLSAxXV1bMF0ub3V0ZXJIVE1MLCBiLnB1c2godGhpcy5ub3JtYWxpemUoYy5sZW5ndGggLSAxIC0gKGIubGVuZ3RoIC0gMSkgLyAyLCAhMCkpLCBpID0gY1tiW2IubGVuZ3RoIC0gMV1dWzBdLm91dGVySFRNTCArIGk7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2xvbmVzID0gYiwgYShoKS5hZGRDbGFzcyhcImNsb25lZFwiKS5hcHBlbmRUbyh0aGlzLiRzdGFnZSksIGEoaSkuYWRkQ2xhc3MoXCJjbG9uZWRcIikucHJlcGVuZFRvKHRoaXMuJHN0YWdlKVxuICAgICAgICAgICAgfVxuICAgICAgICB9LCB7XG4gICAgICAgICAgICBmaWx0ZXI6IFtcIndpZHRoXCIsIFwiaXRlbXNcIiwgXCJzZXR0aW5nc1wiXSwgcnVuOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgZm9yICh2YXIgYSA9IHRoaXMuc2V0dGluZ3MucnRsID8gMSA6IC0xLCBiID0gdGhpcy5fY2xvbmVzLmxlbmd0aCArIHRoaXMuX2l0ZW1zLmxlbmd0aCwgYyA9IC0xLCBkID0gMCwgZSA9IDAsIGYgPSBbXTsgKytjIDwgYjspIGQgPSBmW2MgLSAxXSB8fCAwLCBlID0gdGhpcy5fd2lkdGhzW3RoaXMucmVsYXRpdmUoYyldICsgdGhpcy5zZXR0aW5ncy5tYXJnaW4sIGYucHVzaChkICsgZSAqIGEpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2Nvb3JkaW5hdGVzID0gZlxuICAgICAgICAgICAgfVxuICAgICAgICB9LCB7XG4gICAgICAgICAgICBmaWx0ZXI6IFtcIndpZHRoXCIsIFwiaXRlbXNcIiwgXCJzZXR0aW5nc1wiXSwgcnVuOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyIGEgPSB0aGlzLnNldHRpbmdzLnN0YWdlUGFkZGluZywgYiA9IHRoaXMuX2Nvb3JkaW5hdGVzLCBjID0ge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogTWF0aC5jZWlsKE1hdGguYWJzKGJbYi5sZW5ndGggLSAxXSkpICsgMiAqIGEsXG4gICAgICAgICAgICAgICAgICAgIFwicGFkZGluZy1sZWZ0XCI6IGEgfHwgXCJcIixcbiAgICAgICAgICAgICAgICAgICAgXCJwYWRkaW5nLXJpZ2h0XCI6IGEgfHwgXCJcIlxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgdGhpcy4kc3RhZ2UuY3NzKGMpXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIHtcbiAgICAgICAgICAgIGZpbHRlcjogW1wid2lkdGhcIiwgXCJpdGVtc1wiLCBcInNldHRpbmdzXCJdLCBydW46IGZ1bmN0aW9uIChhKSB7XG4gICAgICAgICAgICAgICAgdmFyIGIgPSB0aGlzLl9jb29yZGluYXRlcy5sZW5ndGgsIGMgPSAhdGhpcy5zZXR0aW5ncy5hdXRvV2lkdGgsIGQgPSB0aGlzLiRzdGFnZS5jaGlsZHJlbigpO1xuICAgICAgICAgICAgICAgIGlmIChjICYmIGEuaXRlbXMubWVyZ2UpIGZvciAoOyBiLS07KSBhLmNzcy53aWR0aCA9IHRoaXMuX3dpZHRoc1t0aGlzLnJlbGF0aXZlKGIpXSwgZC5lcShiKS5jc3MoYS5jc3MpOyBlbHNlIGMgJiYgKGEuY3NzLndpZHRoID0gYS5pdGVtcy53aWR0aCwgZC5jc3MoYS5jc3MpKVxuICAgICAgICAgICAgfVxuICAgICAgICB9LCB7XG4gICAgICAgICAgICBmaWx0ZXI6IFtcIml0ZW1zXCJdLCBydW46IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jb29yZGluYXRlcy5sZW5ndGggPCAxICYmIHRoaXMuJHN0YWdlLnJlbW92ZUF0dHIoXCJzdHlsZVwiKVxuICAgICAgICAgICAgfVxuICAgICAgICB9LCB7XG4gICAgICAgICAgICBmaWx0ZXI6IFtcIndpZHRoXCIsIFwiaXRlbXNcIiwgXCJzZXR0aW5nc1wiXSwgcnVuOiBmdW5jdGlvbiAoYSkge1xuICAgICAgICAgICAgICAgIGEuY3VycmVudCA9IGEuY3VycmVudCA/IHRoaXMuJHN0YWdlLmNoaWxkcmVuKCkuaW5kZXgoYS5jdXJyZW50KSA6IDAsIGEuY3VycmVudCA9IE1hdGgubWF4KHRoaXMubWluaW11bSgpLCBNYXRoLm1pbih0aGlzLm1heGltdW0oKSwgYS5jdXJyZW50KSksIHRoaXMucmVzZXQoYS5jdXJyZW50KVxuICAgICAgICAgICAgfVxuICAgICAgICB9LCB7XG4gICAgICAgICAgICBmaWx0ZXI6IFtcInBvc2l0aW9uXCJdLCBydW46IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFuaW1hdGUodGhpcy5jb29yZGluYXRlcyh0aGlzLl9jdXJyZW50KSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwge1xuICAgICAgICAgICAgZmlsdGVyOiBbXCJ3aWR0aFwiLCBcInBvc2l0aW9uXCIsIFwiaXRlbXNcIiwgXCJzZXR0aW5nc1wiXSwgcnVuOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyIGEsIGIsIGMsIGQsIGUgPSB0aGlzLnNldHRpbmdzLnJ0bCA/IDEgOiAtMSwgZiA9IDIgKiB0aGlzLnNldHRpbmdzLnN0YWdlUGFkZGluZyxcbiAgICAgICAgICAgICAgICAgIGcgPSB0aGlzLmNvb3JkaW5hdGVzKHRoaXMuY3VycmVudCgpKSArIGYsIGggPSBnICsgdGhpcy53aWR0aCgpICogZSwgaSA9IFtdO1xuICAgICAgICAgICAgICAgIGZvciAoYyA9IDAsIGQgPSB0aGlzLl9jb29yZGluYXRlcy5sZW5ndGg7IGMgPCBkOyBjKyspIGEgPSB0aGlzLl9jb29yZGluYXRlc1tjIC0gMV0gfHwgMCwgYiA9IE1hdGguYWJzKHRoaXMuX2Nvb3JkaW5hdGVzW2NdKSArIGYgKiBlLCAodGhpcy5vcChhLCBcIjw9XCIsIGcpICYmIHRoaXMub3AoYSwgXCI+XCIsIGgpIHx8IHRoaXMub3AoYiwgXCI8XCIsIGcpICYmIHRoaXMub3AoYiwgXCI+XCIsIGgpKSAmJiBpLnB1c2goYyk7XG4gICAgICAgICAgICAgICAgdGhpcy4kc3RhZ2UuY2hpbGRyZW4oXCIuYWN0aXZlXCIpLnJlbW92ZUNsYXNzKFwiYWN0aXZlXCIpLCB0aGlzLiRzdGFnZS5jaGlsZHJlbihcIjplcShcIiArIGkuam9pbihcIiksIDplcShcIikgKyBcIilcIikuYWRkQ2xhc3MoXCJhY3RpdmVcIiksIHRoaXMuc2V0dGluZ3MuY2VudGVyICYmICh0aGlzLiRzdGFnZS5jaGlsZHJlbihcIi5jZW50ZXJcIikucmVtb3ZlQ2xhc3MoXCJjZW50ZXJcIiksIHRoaXMuJHN0YWdlLmNoaWxkcmVuKCkuZXEodGhpcy5jdXJyZW50KCkpLmFkZENsYXNzKFwiY2VudGVyXCIpKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XSwgZS5wcm90b3R5cGUuaW5pdGlhbGl6ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmVudGVyKFwiaW5pdGlhbGl6aW5nXCIpLCB0aGlzLnRyaWdnZXIoXCJpbml0aWFsaXplXCIpLCB0aGlzLiRlbGVtZW50LnRvZ2dsZUNsYXNzKHRoaXMuc2V0dGluZ3MucnRsQ2xhc3MsIHRoaXMuc2V0dGluZ3MucnRsKSwgdGhpcy5zZXR0aW5ncy5hdXRvV2lkdGggJiYgIXRoaXMuaXMoXCJwcmUtbG9hZGluZ1wiKSkge1xuICAgICAgICAgICAgICAgIHZhciBiLCBjLCBlO1xuICAgICAgICAgICAgICAgIGIgPSB0aGlzLiRlbGVtZW50LmZpbmQoXCJpbWdcIiksIGMgPSB0aGlzLnNldHRpbmdzLm5lc3RlZEl0ZW1TZWxlY3RvciA/IFwiLlwiICsgdGhpcy5zZXR0aW5ncy5uZXN0ZWRJdGVtU2VsZWN0b3IgOiBkLCBlID0gdGhpcy4kZWxlbWVudC5jaGlsZHJlbihjKS53aWR0aCgpLCBiLmxlbmd0aCAmJiBlIDw9IDAgJiYgdGhpcy5wcmVsb2FkQXV0b1dpZHRoSW1hZ2VzKGIpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLiRlbGVtZW50LmFkZENsYXNzKHRoaXMub3B0aW9ucy5sb2FkaW5nQ2xhc3MpLCB0aGlzLiRzdGFnZSA9IGEoXCI8XCIgKyB0aGlzLnNldHRpbmdzLnN0YWdlRWxlbWVudCArICcgY2xhc3M9XCInICsgdGhpcy5zZXR0aW5ncy5zdGFnZUNsYXNzICsgJ1wiLz4nKS53cmFwKCc8ZGl2IGNsYXNzPVwiJyArIHRoaXMuc2V0dGluZ3Muc3RhZ2VPdXRlckNsYXNzICsgJ1wiLz4nKSwgdGhpcy4kZWxlbWVudC5hcHBlbmQodGhpcy4kc3RhZ2UucGFyZW50KCkpLCB0aGlzLnJlcGxhY2UodGhpcy4kZWxlbWVudC5jaGlsZHJlbigpLm5vdCh0aGlzLiRzdGFnZS5wYXJlbnQoKSkpLCB0aGlzLiRlbGVtZW50LmlzKFwiOnZpc2libGVcIikgPyB0aGlzLnJlZnJlc2goKSA6IHRoaXMuaW52YWxpZGF0ZShcIndpZHRoXCIpLCB0aGlzLiRlbGVtZW50LnJlbW92ZUNsYXNzKHRoaXMub3B0aW9ucy5sb2FkaW5nQ2xhc3MpLmFkZENsYXNzKHRoaXMub3B0aW9ucy5sb2FkZWRDbGFzcyksIHRoaXMucmVnaXN0ZXJFdmVudEhhbmRsZXJzKCksIHRoaXMubGVhdmUoXCJpbml0aWFsaXppbmdcIiksIHRoaXMudHJpZ2dlcihcImluaXRpYWxpemVkXCIpXG4gICAgICAgIH0sIGUucHJvdG90eXBlLnNldHVwID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIGIgPSB0aGlzLnZpZXdwb3J0KCksIGMgPSB0aGlzLm9wdGlvbnMucmVzcG9uc2l2ZSwgZCA9IC0xLCBlID0gbnVsbDtcbiAgICAgICAgICAgIGMgPyAoYS5lYWNoKGMsIGZ1bmN0aW9uIChhKSB7XG4gICAgICAgICAgICAgICAgYSA8PSBiICYmIGEgPiBkICYmIChkID0gTnVtYmVyKGEpKVxuICAgICAgICAgICAgfSksIGUgPSBhLmV4dGVuZCh7fSwgdGhpcy5vcHRpb25zLCBjW2RdKSwgXCJmdW5jdGlvblwiID09IHR5cGVvZiBlLnN0YWdlUGFkZGluZyAmJiAoZS5zdGFnZVBhZGRpbmcgPSBlLnN0YWdlUGFkZGluZygpKSwgZGVsZXRlIGUucmVzcG9uc2l2ZSwgZS5yZXNwb25zaXZlQ2xhc3MgJiYgdGhpcy4kZWxlbWVudC5hdHRyKFwiY2xhc3NcIiwgdGhpcy4kZWxlbWVudC5hdHRyKFwiY2xhc3NcIikucmVwbGFjZShuZXcgUmVnRXhwKFwiKFwiICsgdGhpcy5vcHRpb25zLnJlc3BvbnNpdmVDbGFzcyArIFwiLSlcXFxcUytcXFxcc1wiLCBcImdcIiksIFwiJDFcIiArIGQpKSkgOiBlID0gYS5leHRlbmQoe30sIHRoaXMub3B0aW9ucyksIHRoaXMudHJpZ2dlcihcImNoYW5nZVwiLCB7XG4gICAgICAgICAgICAgICAgcHJvcGVydHk6IHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJzZXR0aW5nc1wiLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLCB0aGlzLl9icmVha3BvaW50ID0gZCwgdGhpcy5zZXR0aW5ncyA9IGUsIHRoaXMuaW52YWxpZGF0ZShcInNldHRpbmdzXCIpLCB0aGlzLnRyaWdnZXIoXCJjaGFuZ2VkXCIsIHtcbiAgICAgICAgICAgICAgICBwcm9wZXJ0eToge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcInNldHRpbmdzXCIsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLnNldHRpbmdzXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfSwgZS5wcm90b3R5cGUub3B0aW9uc0xvZ2ljID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdGhpcy5zZXR0aW5ncy5hdXRvV2lkdGggJiYgKHRoaXMuc2V0dGluZ3Muc3RhZ2VQYWRkaW5nID0gITEsIHRoaXMuc2V0dGluZ3MubWVyZ2UgPSAhMSlcbiAgICAgICAgfSwgZS5wcm90b3R5cGUucHJlcGFyZSA9IGZ1bmN0aW9uIChiKSB7XG4gICAgICAgICAgICB2YXIgYyA9IHRoaXMudHJpZ2dlcihcInByZXBhcmVcIiwge2NvbnRlbnQ6IGJ9KTtcbiAgICAgICAgICAgIHJldHVybiBjLmRhdGEgfHwgKGMuZGF0YSA9IGEoXCI8XCIgKyB0aGlzLnNldHRpbmdzLml0ZW1FbGVtZW50ICsgXCIvPlwiKS5hZGRDbGFzcyh0aGlzLm9wdGlvbnMuaXRlbUNsYXNzKS5hcHBlbmQoYikpLCB0aGlzLnRyaWdnZXIoXCJwcmVwYXJlZFwiLCB7Y29udGVudDogYy5kYXRhfSksIGMuZGF0YVxuICAgICAgICB9LCBlLnByb3RvdHlwZS51cGRhdGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBmb3IgKHZhciBiID0gMCwgYyA9IHRoaXMuX3BpcGUubGVuZ3RoLCBkID0gYS5wcm94eShmdW5jdGlvbiAoYSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzW2FdXG4gICAgICAgICAgICB9LCB0aGlzLl9pbnZhbGlkYXRlZCksIGUgPSB7fTsgYiA8IGM7KSAodGhpcy5faW52YWxpZGF0ZWQuYWxsIHx8IGEuZ3JlcCh0aGlzLl9waXBlW2JdLmZpbHRlciwgZCkubGVuZ3RoID4gMCkgJiYgdGhpcy5fcGlwZVtiXS5ydW4oZSksIGIrKztcbiAgICAgICAgICAgIHRoaXMuX2ludmFsaWRhdGVkID0ge30sICF0aGlzLmlzKFwidmFsaWRcIikgJiYgdGhpcy5lbnRlcihcInZhbGlkXCIpXG4gICAgICAgIH0sIGUucHJvdG90eXBlLndpZHRoID0gZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoYSA9IGEgfHwgZS5XaWR0aC5EZWZhdWx0KSB7XG4gICAgICAgICAgICAgICAgY2FzZSBlLldpZHRoLklubmVyOlxuICAgICAgICAgICAgICAgIGNhc2UgZS5XaWR0aC5PdXRlcjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dpZHRoO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl93aWR0aCAtIDIgKiB0aGlzLnNldHRpbmdzLnN0YWdlUGFkZGluZyArIHRoaXMuc2V0dGluZ3MubWFyZ2luXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIGUucHJvdG90eXBlLnJlZnJlc2ggPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB0aGlzLmVudGVyKFwicmVmcmVzaGluZ1wiKSwgdGhpcy50cmlnZ2VyKFwicmVmcmVzaFwiKSwgdGhpcy5zZXR1cCgpLCB0aGlzLm9wdGlvbnNMb2dpYygpLCB0aGlzLiRlbGVtZW50LmFkZENsYXNzKHRoaXMub3B0aW9ucy5yZWZyZXNoQ2xhc3MpLCB0aGlzLnVwZGF0ZSgpLCB0aGlzLiRlbGVtZW50LnJlbW92ZUNsYXNzKHRoaXMub3B0aW9ucy5yZWZyZXNoQ2xhc3MpLCB0aGlzLmxlYXZlKFwicmVmcmVzaGluZ1wiKSwgdGhpcy50cmlnZ2VyKFwicmVmcmVzaGVkXCIpXG4gICAgICAgIH0sIGUucHJvdG90eXBlLm9uVGhyb3R0bGVkUmVzaXplID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgYi5jbGVhclRpbWVvdXQodGhpcy5yZXNpemVUaW1lciksIHRoaXMucmVzaXplVGltZXIgPSBiLnNldFRpbWVvdXQodGhpcy5faGFuZGxlcnMub25SZXNpemUsIHRoaXMuc2V0dGluZ3MucmVzcG9uc2l2ZVJlZnJlc2hSYXRlKVxuICAgICAgICB9LCBlLnByb3RvdHlwZS5vblJlc2l6ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiAhIXRoaXMuX2l0ZW1zLmxlbmd0aCAmJiAodGhpcy5fd2lkdGggIT09IHRoaXMuJGVsZW1lbnQud2lkdGgoKSAmJiAoISF0aGlzLiRlbGVtZW50LmlzKFwiOnZpc2libGVcIikgJiYgKHRoaXMuZW50ZXIoXCJyZXNpemluZ1wiKSwgdGhpcy50cmlnZ2VyKFwicmVzaXplXCIpLmlzRGVmYXVsdFByZXZlbnRlZCgpID8gKHRoaXMubGVhdmUoXCJyZXNpemluZ1wiKSwgITEpIDogKHRoaXMuaW52YWxpZGF0ZShcIndpZHRoXCIpLCB0aGlzLnJlZnJlc2goKSwgdGhpcy5sZWF2ZShcInJlc2l6aW5nXCIpLCB2b2lkIHRoaXMudHJpZ2dlcihcInJlc2l6ZWRcIikpKSkpXG4gICAgICAgIH0sIGUucHJvdG90eXBlLnJlZ2lzdGVyRXZlbnRIYW5kbGVycyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGEuc3VwcG9ydC50cmFuc2l0aW9uICYmIHRoaXMuJHN0YWdlLm9uKGEuc3VwcG9ydC50cmFuc2l0aW9uLmVuZCArIFwiLm93bC5jb3JlXCIsIGEucHJveHkodGhpcy5vblRyYW5zaXRpb25FbmQsIHRoaXMpKSwgdGhpcy5zZXR0aW5ncy5yZXNwb25zaXZlICE9PSAhMSAmJiB0aGlzLm9uKGIsIFwicmVzaXplXCIsIHRoaXMuX2hhbmRsZXJzLm9uVGhyb3R0bGVkUmVzaXplKSwgdGhpcy5zZXR0aW5ncy5tb3VzZURyYWcgJiYgKHRoaXMuJGVsZW1lbnQuYWRkQ2xhc3ModGhpcy5vcHRpb25zLmRyYWdDbGFzcyksIHRoaXMuJHN0YWdlLm9uKFwibW91c2Vkb3duLm93bC5jb3JlXCIsIGEucHJveHkodGhpcy5vbkRyYWdTdGFydCwgdGhpcykpLCB0aGlzLiRzdGFnZS5vbihcImRyYWdzdGFydC5vd2wuY29yZSBzZWxlY3RzdGFydC5vd2wuY29yZVwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICExXG4gICAgICAgICAgICB9KSksIHRoaXMuc2V0dGluZ3MudG91Y2hEcmFnICYmICh0aGlzLiRzdGFnZS5vbihcInRvdWNoc3RhcnQub3dsLmNvcmVcIiwgYS5wcm94eSh0aGlzLm9uRHJhZ1N0YXJ0LCB0aGlzKSksIHRoaXMuJHN0YWdlLm9uKFwidG91Y2hjYW5jZWwub3dsLmNvcmVcIiwgYS5wcm94eSh0aGlzLm9uRHJhZ0VuZCwgdGhpcykpKVxuICAgICAgICB9LCBlLnByb3RvdHlwZS5vbkRyYWdTdGFydCA9IGZ1bmN0aW9uIChiKSB7XG4gICAgICAgICAgICB2YXIgZCA9IG51bGw7XG4gICAgICAgICAgICAzICE9PSBiLndoaWNoICYmIChhLnN1cHBvcnQudHJhbnNmb3JtID8gKGQgPSB0aGlzLiRzdGFnZS5jc3MoXCJ0cmFuc2Zvcm1cIikucmVwbGFjZSgvLipcXCh8XFwpfCAvZywgXCJcIikuc3BsaXQoXCIsXCIpLCBkID0ge1xuICAgICAgICAgICAgICAgIHg6IGRbMTYgPT09IGQubGVuZ3RoID8gMTIgOiA0XSxcbiAgICAgICAgICAgICAgICB5OiBkWzE2ID09PSBkLmxlbmd0aCA/IDEzIDogNV1cbiAgICAgICAgICAgIH0pIDogKGQgPSB0aGlzLiRzdGFnZS5wb3NpdGlvbigpLCBkID0ge1xuICAgICAgICAgICAgICAgIHg6IHRoaXMuc2V0dGluZ3MucnRsID8gZC5sZWZ0ICsgdGhpcy4kc3RhZ2Uud2lkdGgoKSAtIHRoaXMud2lkdGgoKSArIHRoaXMuc2V0dGluZ3MubWFyZ2luIDogZC5sZWZ0LFxuICAgICAgICAgICAgICAgIHk6IGQudG9wXG4gICAgICAgICAgICB9KSwgdGhpcy5pcyhcImFuaW1hdGluZ1wiKSAmJiAoYS5zdXBwb3J0LnRyYW5zZm9ybSA/IHRoaXMuYW5pbWF0ZShkLngpIDogdGhpcy4kc3RhZ2Uuc3RvcCgpLCB0aGlzLmludmFsaWRhdGUoXCJwb3NpdGlvblwiKSksIHRoaXMuJGVsZW1lbnQudG9nZ2xlQ2xhc3ModGhpcy5vcHRpb25zLmdyYWJDbGFzcywgXCJtb3VzZWRvd25cIiA9PT0gYi50eXBlKSwgdGhpcy5zcGVlZCgwKSwgdGhpcy5fZHJhZy50aW1lID0gKG5ldyBEYXRlKS5nZXRUaW1lKCksIHRoaXMuX2RyYWcudGFyZ2V0ID0gYShiLnRhcmdldCksIHRoaXMuX2RyYWcuc3RhZ2Uuc3RhcnQgPSBkLCB0aGlzLl9kcmFnLnN0YWdlLmN1cnJlbnQgPSBkLCB0aGlzLl9kcmFnLnBvaW50ZXIgPSB0aGlzLnBvaW50ZXIoYiksIGEoYykub24oXCJtb3VzZXVwLm93bC5jb3JlIHRvdWNoZW5kLm93bC5jb3JlXCIsIGEucHJveHkodGhpcy5vbkRyYWdFbmQsIHRoaXMpKSwgYShjKS5vbmUoXCJtb3VzZW1vdmUub3dsLmNvcmUgdG91Y2htb3ZlLm93bC5jb3JlXCIsIGEucHJveHkoZnVuY3Rpb24gKGIpIHtcbiAgICAgICAgICAgICAgICB2YXIgZCA9IHRoaXMuZGlmZmVyZW5jZSh0aGlzLl9kcmFnLnBvaW50ZXIsIHRoaXMucG9pbnRlcihiKSk7XG4gICAgICAgICAgICAgICAgYShjKS5vbihcIm1vdXNlbW92ZS5vd2wuY29yZSB0b3VjaG1vdmUub3dsLmNvcmVcIiwgYS5wcm94eSh0aGlzLm9uRHJhZ01vdmUsIHRoaXMpKSwgTWF0aC5hYnMoZC54KSA8IE1hdGguYWJzKGQueSkgJiYgdGhpcy5pcyhcInZhbGlkXCIpIHx8IChiLnByZXZlbnREZWZhdWx0KCksIHRoaXMuZW50ZXIoXCJkcmFnZ2luZ1wiKSwgdGhpcy50cmlnZ2VyKFwiZHJhZ1wiKSlcbiAgICAgICAgICAgIH0sIHRoaXMpKSlcbiAgICAgICAgfSwgZS5wcm90b3R5cGUub25EcmFnTW92ZSA9IGZ1bmN0aW9uIChhKSB7XG4gICAgICAgICAgICB2YXIgYiA9IG51bGwsIGMgPSBudWxsLCBkID0gbnVsbCwgZSA9IHRoaXMuZGlmZmVyZW5jZSh0aGlzLl9kcmFnLnBvaW50ZXIsIHRoaXMucG9pbnRlcihhKSksXG4gICAgICAgICAgICAgIGYgPSB0aGlzLmRpZmZlcmVuY2UodGhpcy5fZHJhZy5zdGFnZS5zdGFydCwgZSk7XG4gICAgICAgICAgICB0aGlzLmlzKFwiZHJhZ2dpbmdcIikgJiYgKGEucHJldmVudERlZmF1bHQoKSwgdGhpcy5zZXR0aW5ncy5sb29wID8gKGIgPSB0aGlzLmNvb3JkaW5hdGVzKHRoaXMubWluaW11bSgpKSwgYyA9IHRoaXMuY29vcmRpbmF0ZXModGhpcy5tYXhpbXVtKCkgKyAxKSAtIGIsIGYueCA9ICgoZi54IC0gYikgJSBjICsgYykgJSBjICsgYikgOiAoYiA9IHRoaXMuc2V0dGluZ3MucnRsID8gdGhpcy5jb29yZGluYXRlcyh0aGlzLm1heGltdW0oKSkgOiB0aGlzLmNvb3JkaW5hdGVzKHRoaXMubWluaW11bSgpKSwgYyA9IHRoaXMuc2V0dGluZ3MucnRsID8gdGhpcy5jb29yZGluYXRlcyh0aGlzLm1pbmltdW0oKSkgOiB0aGlzLmNvb3JkaW5hdGVzKHRoaXMubWF4aW11bSgpKSwgZCA9IHRoaXMuc2V0dGluZ3MucHVsbERyYWcgPyAtMSAqIGUueCAvIDUgOiAwLCBmLnggPSBNYXRoLm1heChNYXRoLm1pbihmLngsIGIgKyBkKSwgYyArIGQpKSwgdGhpcy5fZHJhZy5zdGFnZS5jdXJyZW50ID0gZiwgdGhpcy5hbmltYXRlKGYueCkpXG4gICAgICAgIH0sIGUucHJvdG90eXBlLm9uRHJhZ0VuZCA9IGZ1bmN0aW9uIChiKSB7XG4gICAgICAgICAgICB2YXIgZCA9IHRoaXMuZGlmZmVyZW5jZSh0aGlzLl9kcmFnLnBvaW50ZXIsIHRoaXMucG9pbnRlcihiKSksIGUgPSB0aGlzLl9kcmFnLnN0YWdlLmN1cnJlbnQsXG4gICAgICAgICAgICAgIGYgPSBkLnggPiAwIF4gdGhpcy5zZXR0aW5ncy5ydGwgPyBcImxlZnRcIiA6IFwicmlnaHRcIjtcbiAgICAgICAgICAgIGEoYykub2ZmKFwiLm93bC5jb3JlXCIpLCB0aGlzLiRlbGVtZW50LnJlbW92ZUNsYXNzKHRoaXMub3B0aW9ucy5ncmFiQ2xhc3MpLCAoMCAhPT0gZC54ICYmIHRoaXMuaXMoXCJkcmFnZ2luZ1wiKSB8fCAhdGhpcy5pcyhcInZhbGlkXCIpKSAmJiAodGhpcy5zcGVlZCh0aGlzLnNldHRpbmdzLmRyYWdFbmRTcGVlZCB8fCB0aGlzLnNldHRpbmdzLnNtYXJ0U3BlZWQpLCB0aGlzLmN1cnJlbnQodGhpcy5jbG9zZXN0KGUueCwgMCAhPT0gZC54ID8gZiA6IHRoaXMuX2RyYWcuZGlyZWN0aW9uKSksIHRoaXMuaW52YWxpZGF0ZShcInBvc2l0aW9uXCIpLCB0aGlzLnVwZGF0ZSgpLCB0aGlzLl9kcmFnLmRpcmVjdGlvbiA9IGYsIChNYXRoLmFicyhkLngpID4gMyB8fCAobmV3IERhdGUpLmdldFRpbWUoKSAtIHRoaXMuX2RyYWcudGltZSA+IDMwMCkgJiYgdGhpcy5fZHJhZy50YXJnZXQub25lKFwiY2xpY2sub3dsLmNvcmVcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAhMVxuICAgICAgICAgICAgfSkpLCB0aGlzLmlzKFwiZHJhZ2dpbmdcIikgJiYgKHRoaXMubGVhdmUoXCJkcmFnZ2luZ1wiKSwgdGhpcy50cmlnZ2VyKFwiZHJhZ2dlZFwiKSlcbiAgICAgICAgfSwgZS5wcm90b3R5cGUuY2xvc2VzdCA9IGZ1bmN0aW9uIChiLCBjKSB7XG4gICAgICAgICAgICB2YXIgZCA9IC0xLCBlID0gMzAsIGYgPSB0aGlzLndpZHRoKCksIGcgPSB0aGlzLmNvb3JkaW5hdGVzKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZXR0aW5ncy5mcmVlRHJhZyB8fCBhLmVhY2goZywgYS5wcm94eShmdW5jdGlvbiAoYSwgaCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBcImxlZnRcIiA9PT0gYyAmJiBiID4gaCAtIGUgJiYgYiA8IGggKyBlID8gZCA9IGEgOiBcInJpZ2h0XCIgPT09IGMgJiYgYiA+IGggLSBmIC0gZSAmJiBiIDwgaCAtIGYgKyBlID8gZCA9IGEgKyAxIDogdGhpcy5vcChiLCBcIjxcIiwgaCkgJiYgdGhpcy5vcChiLCBcIj5cIiwgZ1thICsgMV0gfHwgaCAtIGYpICYmIChkID0gXCJsZWZ0XCIgPT09IGMgPyBhICsgMSA6IGEpLCBkID09PSAtMVxuICAgICAgICAgICAgfSwgdGhpcykpLCB0aGlzLnNldHRpbmdzLmxvb3AgfHwgKHRoaXMub3AoYiwgXCI+XCIsIGdbdGhpcy5taW5pbXVtKCldKSA/IGQgPSBiID0gdGhpcy5taW5pbXVtKCkgOiB0aGlzLm9wKGIsIFwiPFwiLCBnW3RoaXMubWF4aW11bSgpXSkgJiYgKGQgPSBiID0gdGhpcy5tYXhpbXVtKCkpKSwgZFxuICAgICAgICB9LCBlLnByb3RvdHlwZS5hbmltYXRlID0gZnVuY3Rpb24gKGIpIHtcbiAgICAgICAgICAgIHZhciBjID0gdGhpcy5zcGVlZCgpID4gMDtcbiAgICAgICAgICAgIHRoaXMuaXMoXCJhbmltYXRpbmdcIikgJiYgdGhpcy5vblRyYW5zaXRpb25FbmQoKSwgYyAmJiAodGhpcy5lbnRlcihcImFuaW1hdGluZ1wiKSwgdGhpcy50cmlnZ2VyKFwidHJhbnNsYXRlXCIpKSwgYS5zdXBwb3J0LnRyYW5zZm9ybTNkICYmIGEuc3VwcG9ydC50cmFuc2l0aW9uID8gdGhpcy4kc3RhZ2UuY3NzKHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlM2QoXCIgKyBiICsgXCJweCwwcHgsMHB4KVwiLFxuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHRoaXMuc3BlZWQoKSAvIDFlMyArIFwic1wiXG4gICAgICAgICAgICB9KSA6IGMgPyB0aGlzLiRzdGFnZS5hbmltYXRlKHtsZWZ0OiBiICsgXCJweFwifSwgdGhpcy5zcGVlZCgpLCB0aGlzLnNldHRpbmdzLmZhbGxiYWNrRWFzaW5nLCBhLnByb3h5KHRoaXMub25UcmFuc2l0aW9uRW5kLCB0aGlzKSkgOiB0aGlzLiRzdGFnZS5jc3Moe2xlZnQ6IGIgKyBcInB4XCJ9KVxuICAgICAgICB9LCBlLnByb3RvdHlwZS5pcyA9IGZ1bmN0aW9uIChhKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fc3RhdGVzLmN1cnJlbnRbYV0gJiYgdGhpcy5fc3RhdGVzLmN1cnJlbnRbYV0gPiAwXG4gICAgICAgIH0sIGUucHJvdG90eXBlLmN1cnJlbnQgPSBmdW5jdGlvbiAoYSkge1xuICAgICAgICAgICAgaWYgKGEgPT09IGQpIHJldHVybiB0aGlzLl9jdXJyZW50O1xuICAgICAgICAgICAgaWYgKDAgPT09IHRoaXMuX2l0ZW1zLmxlbmd0aCkgcmV0dXJuIGQ7XG4gICAgICAgICAgICBpZiAoYSA9IHRoaXMubm9ybWFsaXplKGEpLCB0aGlzLl9jdXJyZW50ICE9PSBhKSB7XG4gICAgICAgICAgICAgICAgdmFyIGIgPSB0aGlzLnRyaWdnZXIoXCJjaGFuZ2VcIiwge3Byb3BlcnR5OiB7bmFtZTogXCJwb3NpdGlvblwiLCB2YWx1ZTogYX19KTtcbiAgICAgICAgICAgICAgICBiLmRhdGEgIT09IGQgJiYgKGEgPSB0aGlzLm5vcm1hbGl6ZShiLmRhdGEpKSwgdGhpcy5fY3VycmVudCA9IGEsIHRoaXMuaW52YWxpZGF0ZShcInBvc2l0aW9uXCIpLCB0aGlzLnRyaWdnZXIoXCJjaGFuZ2VkXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwicG9zaXRpb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLl9jdXJyZW50XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRcbiAgICAgICAgfSwgZS5wcm90b3R5cGUuaW52YWxpZGF0ZSA9IGZ1bmN0aW9uIChiKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJzdHJpbmdcIiA9PT0gYS50eXBlKGIpICYmICh0aGlzLl9pbnZhbGlkYXRlZFtiXSA9ICEwLCB0aGlzLmlzKFwidmFsaWRcIikgJiYgdGhpcy5sZWF2ZShcInZhbGlkXCIpKSwgYS5tYXAodGhpcy5faW52YWxpZGF0ZWQsIGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0sIGUucHJvdG90eXBlLnJlc2V0ID0gZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgICAgIGEgPSB0aGlzLm5vcm1hbGl6ZShhKSwgYSAhPT0gZCAmJiAodGhpcy5fc3BlZWQgPSAwLCB0aGlzLl9jdXJyZW50ID0gYSwgdGhpcy5zdXBwcmVzcyhbXCJ0cmFuc2xhdGVcIiwgXCJ0cmFuc2xhdGVkXCJdKSwgdGhpcy5hbmltYXRlKHRoaXMuY29vcmRpbmF0ZXMoYSkpLCB0aGlzLnJlbGVhc2UoW1widHJhbnNsYXRlXCIsIFwidHJhbnNsYXRlZFwiXSkpXG4gICAgICAgIH0sIGUucHJvdG90eXBlLm5vcm1hbGl6ZSA9IGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICAgICAgICB2YXIgYyA9IHRoaXMuX2l0ZW1zLmxlbmd0aCwgZSA9IGIgPyAwIDogdGhpcy5fY2xvbmVzLmxlbmd0aDtcbiAgICAgICAgICAgIHJldHVybiAhdGhpcy5pc051bWVyaWMoYSkgfHwgYyA8IDEgPyBhID0gZCA6IChhIDwgMCB8fCBhID49IGMgKyBlKSAmJiAoYSA9ICgoYSAtIGUgLyAyKSAlIGMgKyBjKSAlIGMgKyBlIC8gMiksIGFcbiAgICAgICAgfSwgZS5wcm90b3R5cGUucmVsYXRpdmUgPSBmdW5jdGlvbiAoYSkge1xuICAgICAgICAgICAgcmV0dXJuIGEgLT0gdGhpcy5fY2xvbmVzLmxlbmd0aCAvIDIsIHRoaXMubm9ybWFsaXplKGEsICEwKVxuICAgICAgICB9LCBlLnByb3RvdHlwZS5tYXhpbXVtID0gZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgICAgIHZhciBiLCBjLCBkLCBlID0gdGhpcy5zZXR0aW5ncywgZiA9IHRoaXMuX2Nvb3JkaW5hdGVzLmxlbmd0aDtcbiAgICAgICAgICAgIGlmIChlLmxvb3ApIGYgPSB0aGlzLl9jbG9uZXMubGVuZ3RoIC8gMiArIHRoaXMuX2l0ZW1zLmxlbmd0aCAtIDE7IGVsc2UgaWYgKGUuYXV0b1dpZHRoIHx8IGUubWVyZ2UpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGIgPSB0aGlzLl9pdGVtcy5sZW5ndGgsIGMgPSB0aGlzLl9pdGVtc1stLWJdLndpZHRoKCksIGQgPSB0aGlzLiRlbGVtZW50LndpZHRoKCk7IGItLSAmJiAoYyArPSB0aGlzLl9pdGVtc1tiXS53aWR0aCgpICsgdGhpcy5zZXR0aW5ncy5tYXJnaW4sICEoYyA+IGQpKTspIDtcbiAgICAgICAgICAgICAgICBmID0gYiArIDFcbiAgICAgICAgICAgIH0gZWxzZSBmID0gZS5jZW50ZXIgPyB0aGlzLl9pdGVtcy5sZW5ndGggLSAxIDogdGhpcy5faXRlbXMubGVuZ3RoIC0gZS5pdGVtcztcbiAgICAgICAgICAgIHJldHVybiBhICYmIChmIC09IHRoaXMuX2Nsb25lcy5sZW5ndGggLyAyKSwgTWF0aC5tYXgoZiwgMClcbiAgICAgICAgfSwgZS5wcm90b3R5cGUubWluaW11bSA9IGZ1bmN0aW9uIChhKSB7XG4gICAgICAgICAgICByZXR1cm4gYSA/IDAgOiB0aGlzLl9jbG9uZXMubGVuZ3RoIC8gMlxuICAgICAgICB9LCBlLnByb3RvdHlwZS5pdGVtcyA9IGZ1bmN0aW9uIChhKSB7XG4gICAgICAgICAgICByZXR1cm4gYSA9PT0gZCA/IHRoaXMuX2l0ZW1zLnNsaWNlKCkgOiAoYSA9IHRoaXMubm9ybWFsaXplKGEsICEwKSwgdGhpcy5faXRlbXNbYV0pXG4gICAgICAgIH0sIGUucHJvdG90eXBlLm1lcmdlcnMgPSBmdW5jdGlvbiAoYSkge1xuICAgICAgICAgICAgcmV0dXJuIGEgPT09IGQgPyB0aGlzLl9tZXJnZXJzLnNsaWNlKCkgOiAoYSA9IHRoaXMubm9ybWFsaXplKGEsICEwKSwgdGhpcy5fbWVyZ2Vyc1thXSlcbiAgICAgICAgfSwgZS5wcm90b3R5cGUuY2xvbmVzID0gZnVuY3Rpb24gKGIpIHtcbiAgICAgICAgICAgIHZhciBjID0gdGhpcy5fY2xvbmVzLmxlbmd0aCAvIDIsIGUgPSBjICsgdGhpcy5faXRlbXMubGVuZ3RoLCBmID0gZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYSAlIDIgPT09IDAgPyBlICsgYSAvIDIgOiBjIC0gKGEgKyAxKSAvIDJcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZXR1cm4gYiA9PT0gZCA/IGEubWFwKHRoaXMuX2Nsb25lcywgZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZihiKVxuICAgICAgICAgICAgfSkgOiBhLm1hcCh0aGlzLl9jbG9uZXMsIGZ1bmN0aW9uIChhLCBjKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGEgPT09IGIgPyBmKGMpIDogbnVsbFxuICAgICAgICAgICAgfSlcbiAgICAgICAgfSwgZS5wcm90b3R5cGUuc3BlZWQgPSBmdW5jdGlvbiAoYSkge1xuICAgICAgICAgICAgcmV0dXJuIGEgIT09IGQgJiYgKHRoaXMuX3NwZWVkID0gYSksIHRoaXMuX3NwZWVkXG4gICAgICAgIH0sIGUucHJvdG90eXBlLmNvb3JkaW5hdGVzID0gZnVuY3Rpb24gKGIpIHtcbiAgICAgICAgICAgIHZhciBjLCBlID0gMSwgZiA9IGIgLSAxO1xuICAgICAgICAgICAgcmV0dXJuIGIgPT09IGQgPyBhLm1hcCh0aGlzLl9jb29yZGluYXRlcywgYS5wcm94eShmdW5jdGlvbiAoYSwgYikge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNvb3JkaW5hdGVzKGIpXG4gICAgICAgICAgICB9LCB0aGlzKSkgOiAodGhpcy5zZXR0aW5ncy5jZW50ZXIgPyAodGhpcy5zZXR0aW5ncy5ydGwgJiYgKGUgPSAtMSwgZiA9IGIgKyAxKSwgYyA9IHRoaXMuX2Nvb3JkaW5hdGVzW2JdLCBjICs9ICh0aGlzLndpZHRoKCkgLSBjICsgKHRoaXMuX2Nvb3JkaW5hdGVzW2ZdIHx8IDApKSAvIDIgKiBlKSA6IGMgPSB0aGlzLl9jb29yZGluYXRlc1tmXSB8fCAwLCBjID0gTWF0aC5jZWlsKGMpKVxuICAgICAgICB9LCBlLnByb3RvdHlwZS5kdXJhdGlvbiA9IGZ1bmN0aW9uIChhLCBiLCBjKSB7XG4gICAgICAgICAgICByZXR1cm4gMCA9PT0gYyA/IDAgOiBNYXRoLm1pbihNYXRoLm1heChNYXRoLmFicyhiIC0gYSksIDEpLCA2KSAqIE1hdGguYWJzKGMgfHwgdGhpcy5zZXR0aW5ncy5zbWFydFNwZWVkKVxuICAgICAgICB9LCBlLnByb3RvdHlwZS50byA9IGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICAgICAgICB2YXIgYyA9IHRoaXMuY3VycmVudCgpLCBkID0gbnVsbCwgZSA9IGEgLSB0aGlzLnJlbGF0aXZlKGMpLCBmID0gKGUgPiAwKSAtIChlIDwgMCksIGcgPSB0aGlzLl9pdGVtcy5sZW5ndGgsXG4gICAgICAgICAgICAgIGggPSB0aGlzLm1pbmltdW0oKSwgaSA9IHRoaXMubWF4aW11bSgpO1xuICAgICAgICAgICAgdGhpcy5zZXR0aW5ncy5sb29wID8gKCF0aGlzLnNldHRpbmdzLnJld2luZCAmJiBNYXRoLmFicyhlKSA+IGcgLyAyICYmIChlICs9IGYgKiAtMSAqIGcpLCBhID0gYyArIGUsIGQgPSAoKGEgLSBoKSAlIGcgKyBnKSAlIGcgKyBoLCBkICE9PSBhICYmIGQgLSBlIDw9IGkgJiYgZCAtIGUgPiAwICYmIChjID0gZCAtIGUsIGEgPSBkLCB0aGlzLnJlc2V0KGMpKSkgOiB0aGlzLnNldHRpbmdzLnJld2luZCA/IChpICs9IDEsIGEgPSAoYSAlIGkgKyBpKSAlIGkpIDogYSA9IE1hdGgubWF4KGgsIE1hdGgubWluKGksIGEpKSwgdGhpcy5zcGVlZCh0aGlzLmR1cmF0aW9uKGMsIGEsIGIpKSwgdGhpcy5jdXJyZW50KGEpLCB0aGlzLiRlbGVtZW50LmlzKFwiOnZpc2libGVcIikgJiYgdGhpcy51cGRhdGUoKVxuICAgICAgICB9LCBlLnByb3RvdHlwZS5uZXh0ID0gZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgICAgIGEgPSBhIHx8ICExLCB0aGlzLnRvKHRoaXMucmVsYXRpdmUodGhpcy5jdXJyZW50KCkpICsgMSwgYSlcbiAgICAgICAgfSwgZS5wcm90b3R5cGUucHJldiA9IGZ1bmN0aW9uIChhKSB7XG4gICAgICAgICAgICBhID0gYSB8fCAhMSwgdGhpcy50byh0aGlzLnJlbGF0aXZlKHRoaXMuY3VycmVudCgpKSAtIDEsIGEpXG4gICAgICAgIH0sIGUucHJvdG90eXBlLm9uVHJhbnNpdGlvbkVuZCA9IGZ1bmN0aW9uIChhKSB7XG4gICAgICAgICAgICBpZiAoYSAhPT0gZCAmJiAoYS5zdG9wUHJvcGFnYXRpb24oKSwgKGEudGFyZ2V0IHx8IGEuc3JjRWxlbWVudCB8fCBhLm9yaWdpbmFsVGFyZ2V0KSAhPT0gdGhpcy4kc3RhZ2UuZ2V0KDApKSkgcmV0dXJuICExO1xuICAgICAgICAgICAgdGhpcy5sZWF2ZShcImFuaW1hdGluZ1wiKSwgdGhpcy50cmlnZ2VyKFwidHJhbnNsYXRlZFwiKVxuICAgICAgICB9LCBlLnByb3RvdHlwZS52aWV3cG9ydCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBkO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5yZXNwb25zaXZlQmFzZUVsZW1lbnQgIT09IGIgPyBkID0gYSh0aGlzLm9wdGlvbnMucmVzcG9uc2l2ZUJhc2VFbGVtZW50KS53aWR0aCgpIDogYi5pbm5lcldpZHRoID8gZCA9IGIuaW5uZXJXaWR0aCA6IGMuZG9jdW1lbnRFbGVtZW50ICYmIGMuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoID8gZCA9IGMuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoIDogY29uc29sZS53YXJuKFwiQ2FuIG5vdCBkZXRlY3Qgdmlld3BvcnQgd2lkdGguXCIpLCBkXG4gICAgICAgIH0sIGUucHJvdG90eXBlLnJlcGxhY2UgPSBmdW5jdGlvbiAoYikge1xuICAgICAgICAgICAgdGhpcy4kc3RhZ2UuZW1wdHkoKSwgdGhpcy5faXRlbXMgPSBbXSwgYiAmJiAoYiA9IGIgaW5zdGFuY2VvZiBqUXVlcnkgPyBiIDogYShiKSksIHRoaXMuc2V0dGluZ3MubmVzdGVkSXRlbVNlbGVjdG9yICYmIChiID0gYi5maW5kKFwiLlwiICsgdGhpcy5zZXR0aW5ncy5uZXN0ZWRJdGVtU2VsZWN0b3IpKSwgYi5maWx0ZXIoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAxID09PSB0aGlzLm5vZGVUeXBlXG4gICAgICAgICAgICB9KS5lYWNoKGEucHJveHkoZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgICAgICAgICAgICBiID0gdGhpcy5wcmVwYXJlKGIpLCB0aGlzLiRzdGFnZS5hcHBlbmQoYiksIHRoaXMuX2l0ZW1zLnB1c2goYiksIHRoaXMuX21lcmdlcnMucHVzaCgxICogYi5maW5kKFwiW2RhdGEtbWVyZ2VdXCIpLmFkZEJhY2soXCJbZGF0YS1tZXJnZV1cIikuYXR0cihcImRhdGEtbWVyZ2VcIikgfHwgMSlcbiAgICAgICAgICAgIH0sIHRoaXMpKSwgdGhpcy5yZXNldCh0aGlzLmlzTnVtZXJpYyh0aGlzLnNldHRpbmdzLnN0YXJ0UG9zaXRpb24pID8gdGhpcy5zZXR0aW5ncy5zdGFydFBvc2l0aW9uIDogMCksIHRoaXMuaW52YWxpZGF0ZShcIml0ZW1zXCIpXG4gICAgICAgIH0sIGUucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uIChiLCBjKSB7XG4gICAgICAgICAgICB2YXIgZSA9IHRoaXMucmVsYXRpdmUodGhpcy5fY3VycmVudCk7XG4gICAgICAgICAgICBjID0gYyA9PT0gZCA/IHRoaXMuX2l0ZW1zLmxlbmd0aCA6IHRoaXMubm9ybWFsaXplKGMsICEwKSwgYiA9IGIgaW5zdGFuY2VvZiBqUXVlcnkgPyBiIDogYShiKSwgdGhpcy50cmlnZ2VyKFwiYWRkXCIsIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBiLFxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBjXG4gICAgICAgICAgICB9KSwgYiA9IHRoaXMucHJlcGFyZShiKSwgMCA9PT0gdGhpcy5faXRlbXMubGVuZ3RoIHx8IGMgPT09IHRoaXMuX2l0ZW1zLmxlbmd0aCA/ICgwID09PSB0aGlzLl9pdGVtcy5sZW5ndGggJiYgdGhpcy4kc3RhZ2UuYXBwZW5kKGIpLCAwICE9PSB0aGlzLl9pdGVtcy5sZW5ndGggJiYgdGhpcy5faXRlbXNbYyAtIDFdLmFmdGVyKGIpLCB0aGlzLl9pdGVtcy5wdXNoKGIpLCB0aGlzLl9tZXJnZXJzLnB1c2goMSAqIGIuZmluZChcIltkYXRhLW1lcmdlXVwiKS5hZGRCYWNrKFwiW2RhdGEtbWVyZ2VdXCIpLmF0dHIoXCJkYXRhLW1lcmdlXCIpIHx8IDEpKSA6ICh0aGlzLl9pdGVtc1tjXS5iZWZvcmUoYiksIHRoaXMuX2l0ZW1zLnNwbGljZShjLCAwLCBiKSwgdGhpcy5fbWVyZ2Vycy5zcGxpY2UoYywgMCwgMSAqIGIuZmluZChcIltkYXRhLW1lcmdlXVwiKS5hZGRCYWNrKFwiW2RhdGEtbWVyZ2VdXCIpLmF0dHIoXCJkYXRhLW1lcmdlXCIpIHx8IDEpKSwgdGhpcy5faXRlbXNbZV0gJiYgdGhpcy5yZXNldCh0aGlzLl9pdGVtc1tlXS5pbmRleCgpKSwgdGhpcy5pbnZhbGlkYXRlKFwiaXRlbXNcIiksIHRoaXMudHJpZ2dlcihcImFkZGVkXCIsIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBiLFxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBjXG4gICAgICAgICAgICB9KVxuICAgICAgICB9LCBlLnByb3RvdHlwZS5yZW1vdmUgPSBmdW5jdGlvbiAoYSkge1xuICAgICAgICAgICAgYSA9IHRoaXMubm9ybWFsaXplKGEsICEwKSwgYSAhPT0gZCAmJiAodGhpcy50cmlnZ2VyKFwicmVtb3ZlXCIsIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiB0aGlzLl9pdGVtc1thXSxcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYVxuICAgICAgICAgICAgfSksIHRoaXMuX2l0ZW1zW2FdLnJlbW92ZSgpLCB0aGlzLl9pdGVtcy5zcGxpY2UoYSwgMSksIHRoaXMuX21lcmdlcnMuc3BsaWNlKGEsIDEpLCB0aGlzLmludmFsaWRhdGUoXCJpdGVtc1wiKSwgdGhpcy50cmlnZ2VyKFwicmVtb3ZlZFwiLCB7XG4gICAgICAgICAgICAgICAgY29udGVudDogbnVsbCxcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYVxuICAgICAgICAgICAgfSkpXG4gICAgICAgIH0sIGUucHJvdG90eXBlLnByZWxvYWRBdXRvV2lkdGhJbWFnZXMgPSBmdW5jdGlvbiAoYikge1xuICAgICAgICAgICAgYi5lYWNoKGEucHJveHkoZnVuY3Rpb24gKGIsIGMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmVudGVyKFwicHJlLWxvYWRpbmdcIiksIGMgPSBhKGMpLCBhKG5ldyBJbWFnZSkub25lKFwibG9hZFwiLCBhLnByb3h5KGZ1bmN0aW9uIChhKSB7XG4gICAgICAgICAgICAgICAgICAgIGMuYXR0cihcInNyY1wiLCBhLnRhcmdldC5zcmMpLCBjLmNzcyhcIm9wYWNpdHlcIiwgMSksIHRoaXMubGVhdmUoXCJwcmUtbG9hZGluZ1wiKSwgIXRoaXMuaXMoXCJwcmUtbG9hZGluZ1wiKSAmJiAhdGhpcy5pcyhcImluaXRpYWxpemluZ1wiKSAmJiB0aGlzLnJlZnJlc2goKVxuICAgICAgICAgICAgICAgIH0sIHRoaXMpKS5hdHRyKFwic3JjXCIsIGMuYXR0cihcInNyY1wiKSB8fCBjLmF0dHIoXCJkYXRhLXNyY1wiKSB8fCBjLmF0dHIoXCJkYXRhLXNyYy1yZXRpbmFcIikpXG4gICAgICAgICAgICB9LCB0aGlzKSlcbiAgICAgICAgfSwgZS5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHRoaXMuJGVsZW1lbnQub2ZmKFwiLm93bC5jb3JlXCIpLCB0aGlzLiRzdGFnZS5vZmYoXCIub3dsLmNvcmVcIiksIGEoYykub2ZmKFwiLm93bC5jb3JlXCIpLCB0aGlzLnNldHRpbmdzLnJlc3BvbnNpdmUgIT09ICExICYmIChiLmNsZWFyVGltZW91dCh0aGlzLnJlc2l6ZVRpbWVyKSwgdGhpcy5vZmYoYiwgXCJyZXNpemVcIiwgdGhpcy5faGFuZGxlcnMub25UaHJvdHRsZWRSZXNpemUpKTtcbiAgICAgICAgICAgIGZvciAodmFyIGQgaW4gdGhpcy5fcGx1Z2lucykgdGhpcy5fcGx1Z2luc1tkXS5kZXN0cm95KCk7XG4gICAgICAgICAgICB0aGlzLiRzdGFnZS5jaGlsZHJlbihcIi5jbG9uZWRcIikucmVtb3ZlKCksIHRoaXMuJHN0YWdlLnVud3JhcCgpLCB0aGlzLiRzdGFnZS5jaGlsZHJlbigpLmNvbnRlbnRzKCkudW53cmFwKCksIHRoaXMuJHN0YWdlLmNoaWxkcmVuKCkudW53cmFwKCksIHRoaXMuJGVsZW1lbnQucmVtb3ZlQ2xhc3ModGhpcy5vcHRpb25zLnJlZnJlc2hDbGFzcykucmVtb3ZlQ2xhc3ModGhpcy5vcHRpb25zLmxvYWRpbmdDbGFzcykucmVtb3ZlQ2xhc3ModGhpcy5vcHRpb25zLmxvYWRlZENsYXNzKS5yZW1vdmVDbGFzcyh0aGlzLm9wdGlvbnMucnRsQ2xhc3MpLnJlbW92ZUNsYXNzKHRoaXMub3B0aW9ucy5kcmFnQ2xhc3MpLnJlbW92ZUNsYXNzKHRoaXMub3B0aW9ucy5ncmFiQ2xhc3MpLmF0dHIoXCJjbGFzc1wiLCB0aGlzLiRlbGVtZW50LmF0dHIoXCJjbGFzc1wiKS5yZXBsYWNlKG5ldyBSZWdFeHAodGhpcy5vcHRpb25zLnJlc3BvbnNpdmVDbGFzcyArIFwiLVxcXFxTK1xcXFxzXCIsIFwiZ1wiKSwgXCJcIikpLnJlbW92ZURhdGEoXCJvd2wuY2Fyb3VzZWxcIilcbiAgICAgICAgfSwgZS5wcm90b3R5cGUub3AgPSBmdW5jdGlvbiAoYSwgYiwgYykge1xuICAgICAgICAgICAgdmFyIGQgPSB0aGlzLnNldHRpbmdzLnJ0bDtcbiAgICAgICAgICAgIHN3aXRjaCAoYikge1xuICAgICAgICAgICAgICAgIGNhc2VcIjxcIjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGQgPyBhID4gYyA6IGEgPCBjO1xuICAgICAgICAgICAgICAgIGNhc2VcIj5cIjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGQgPyBhIDwgYyA6IGEgPiBjO1xuICAgICAgICAgICAgICAgIGNhc2VcIj49XCI6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBkID8gYSA8PSBjIDogYSA+PSBjO1xuICAgICAgICAgICAgICAgIGNhc2VcIjw9XCI6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBkID8gYSA+PSBjIDogYSA8PSBjXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIGUucHJvdG90eXBlLm9uID0gZnVuY3Rpb24gKGEsIGIsIGMsIGQpIHtcbiAgICAgICAgICAgIGEuYWRkRXZlbnRMaXN0ZW5lciA/IGEuYWRkRXZlbnRMaXN0ZW5lcihiLCBjLCBkKSA6IGEuYXR0YWNoRXZlbnQgJiYgYS5hdHRhY2hFdmVudChcIm9uXCIgKyBiLCBjKVxuICAgICAgICB9LCBlLnByb3RvdHlwZS5vZmYgPSBmdW5jdGlvbiAoYSwgYiwgYywgZCkge1xuICAgICAgICAgICAgYS5yZW1vdmVFdmVudExpc3RlbmVyID8gYS5yZW1vdmVFdmVudExpc3RlbmVyKGIsIGMsIGQpIDogYS5kZXRhY2hFdmVudCAmJiBhLmRldGFjaEV2ZW50KFwib25cIiArIGIsIGMpXG4gICAgICAgIH0sIGUucHJvdG90eXBlLnRyaWdnZXIgPSBmdW5jdGlvbiAoYiwgYywgZCwgZiwgZykge1xuICAgICAgICAgICAgdmFyIGggPSB7aXRlbToge2NvdW50OiB0aGlzLl9pdGVtcy5sZW5ndGgsIGluZGV4OiB0aGlzLmN1cnJlbnQoKX19LFxuICAgICAgICAgICAgICBpID0gYS5jYW1lbENhc2UoYS5ncmVwKFtcIm9uXCIsIGIsIGRdLCBmdW5jdGlvbiAoYSkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGFcbiAgICAgICAgICAgICAgfSkuam9pbihcIi1cIikudG9Mb3dlckNhc2UoKSksXG4gICAgICAgICAgICAgIGogPSBhLkV2ZW50KFtiLCBcIm93bFwiLCBkIHx8IFwiY2Fyb3VzZWxcIl0uam9pbihcIi5cIikudG9Mb3dlckNhc2UoKSwgYS5leHRlbmQoe3JlbGF0ZWRUYXJnZXQ6IHRoaXN9LCBoLCBjKSk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fc3VwcmVzc1tiXSB8fCAoYS5lYWNoKHRoaXMuX3BsdWdpbnMsIGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICAgICAgICAgICAgYi5vblRyaWdnZXIgJiYgYi5vblRyaWdnZXIoailcbiAgICAgICAgICAgIH0pLCB0aGlzLnJlZ2lzdGVyKHtcbiAgICAgICAgICAgICAgICB0eXBlOiBlLlR5cGUuRXZlbnQsXG4gICAgICAgICAgICAgICAgbmFtZTogYlxuICAgICAgICAgICAgfSksIHRoaXMuJGVsZW1lbnQudHJpZ2dlcihqKSwgdGhpcy5zZXR0aW5ncyAmJiBcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIHRoaXMuc2V0dGluZ3NbaV0gJiYgdGhpcy5zZXR0aW5nc1tpXS5jYWxsKHRoaXMsIGopKSwgalxuICAgICAgICB9LCBlLnByb3RvdHlwZS5lbnRlciA9IGZ1bmN0aW9uIChiKSB7XG4gICAgICAgICAgICBhLmVhY2goW2JdLmNvbmNhdCh0aGlzLl9zdGF0ZXMudGFnc1tiXSB8fCBbXSksIGEucHJveHkoZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZXMuY3VycmVudFtiXSA9PT0gZCAmJiAodGhpcy5fc3RhdGVzLmN1cnJlbnRbYl0gPSAwKSwgdGhpcy5fc3RhdGVzLmN1cnJlbnRbYl0rK1xuICAgICAgICAgICAgfSwgdGhpcykpXG4gICAgICAgIH0sIGUucHJvdG90eXBlLmxlYXZlID0gZnVuY3Rpb24gKGIpIHtcbiAgICAgICAgICAgIGEuZWFjaChbYl0uY29uY2F0KHRoaXMuX3N0YXRlcy50YWdzW2JdIHx8IFtdKSwgYS5wcm94eShmdW5jdGlvbiAoYSwgYikge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlcy5jdXJyZW50W2JdLS1cbiAgICAgICAgICAgIH0sIHRoaXMpKVxuICAgICAgICB9LCBlLnByb3RvdHlwZS5yZWdpc3RlciA9IGZ1bmN0aW9uIChiKSB7XG4gICAgICAgICAgICBpZiAoYi50eXBlID09PSBlLlR5cGUuRXZlbnQpIHtcbiAgICAgICAgICAgICAgICBpZiAoYS5ldmVudC5zcGVjaWFsW2IubmFtZV0gfHwgKGEuZXZlbnQuc3BlY2lhbFtiLm5hbWVdID0ge30pLCAhYS5ldmVudC5zcGVjaWFsW2IubmFtZV0ub3dsKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBjID0gYS5ldmVudC5zcGVjaWFsW2IubmFtZV0uX2RlZmF1bHQ7XG4gICAgICAgICAgICAgICAgICAgIGEuZXZlbnQuc3BlY2lhbFtiLm5hbWVdLl9kZWZhdWx0ID0gZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAhYyB8fCAhYy5hcHBseSB8fCBhLm5hbWVzcGFjZSAmJiBhLm5hbWVzcGFjZS5pbmRleE9mKFwib3dsXCIpICE9PSAtMSA/IGEubmFtZXNwYWNlICYmIGEubmFtZXNwYWNlLmluZGV4T2YoXCJvd2xcIikgPiAtMSA6IGMuYXBwbHkodGhpcywgYXJndW1lbnRzKVxuICAgICAgICAgICAgICAgICAgICB9LCBhLmV2ZW50LnNwZWNpYWxbYi5uYW1lXS5vd2wgPSAhMFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBiLnR5cGUgPT09IGUuVHlwZS5TdGF0ZSAmJiAodGhpcy5fc3RhdGVzLnRhZ3NbYi5uYW1lXSA/IHRoaXMuX3N0YXRlcy50YWdzW2IubmFtZV0gPSB0aGlzLl9zdGF0ZXMudGFnc1tiLm5hbWVdLmNvbmNhdChiLnRhZ3MpIDogdGhpcy5fc3RhdGVzLnRhZ3NbYi5uYW1lXSA9IGIudGFncywgdGhpcy5fc3RhdGVzLnRhZ3NbYi5uYW1lXSA9IGEuZ3JlcCh0aGlzLl9zdGF0ZXMudGFnc1tiLm5hbWVdLCBhLnByb3h5KGZ1bmN0aW9uIChjLCBkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGEuaW5BcnJheShjLCB0aGlzLl9zdGF0ZXMudGFnc1tiLm5hbWVdKSA9PT0gZFxuICAgICAgICAgICAgfSwgdGhpcykpKVxuICAgICAgICB9LCBlLnByb3RvdHlwZS5zdXBwcmVzcyA9IGZ1bmN0aW9uIChiKSB7XG4gICAgICAgICAgICBhLmVhY2goYiwgYS5wcm94eShmdW5jdGlvbiAoYSwgYikge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N1cHJlc3NbYl0gPSAhMFxuICAgICAgICAgICAgfSwgdGhpcykpXG4gICAgICAgIH0sIGUucHJvdG90eXBlLnJlbGVhc2UgPSBmdW5jdGlvbiAoYikge1xuICAgICAgICAgICAgYS5lYWNoKGIsIGEucHJveHkoZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5fc3VwcmVzc1tiXVxuICAgICAgICAgICAgfSwgdGhpcykpXG4gICAgICAgIH0sIGUucHJvdG90eXBlLnBvaW50ZXIgPSBmdW5jdGlvbiAoYSkge1xuICAgICAgICAgICAgdmFyIGMgPSB7eDogbnVsbCwgeTogbnVsbH07XG4gICAgICAgICAgICByZXR1cm4gYSA9IGEub3JpZ2luYWxFdmVudCB8fCBhIHx8IGIuZXZlbnQsIGEgPSBhLnRvdWNoZXMgJiYgYS50b3VjaGVzLmxlbmd0aCA/IGEudG91Y2hlc1swXSA6IGEuY2hhbmdlZFRvdWNoZXMgJiYgYS5jaGFuZ2VkVG91Y2hlcy5sZW5ndGggPyBhLmNoYW5nZWRUb3VjaGVzWzBdIDogYSwgYS5wYWdlWCA/IChjLnggPSBhLnBhZ2VYLCBjLnkgPSBhLnBhZ2VZKSA6IChjLnggPSBhLmNsaWVudFgsIGMueSA9IGEuY2xpZW50WSksIGNcbiAgICAgICAgfSwgZS5wcm90b3R5cGUuaXNOdW1lcmljID0gZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgICAgIHJldHVybiAhaXNOYU4ocGFyc2VGbG9hdChhKSlcbiAgICAgICAgfSwgZS5wcm90b3R5cGUuZGlmZmVyZW5jZSA9IGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICAgICAgICByZXR1cm4ge3g6IGEueCAtIGIueCwgeTogYS55IC0gYi55fVxuICAgICAgICB9LCBhLmZuLnNieU93bENhcm91c2VsID0gZnVuY3Rpb24gKGIpIHtcbiAgICAgICAgICAgIHZhciBjID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHZhciBkID0gYSh0aGlzKSwgZiA9IGQuZGF0YShcIm93bC5jYXJvdXNlbFwiKTtcbiAgICAgICAgICAgICAgICBmIHx8IChmID0gbmV3IGUodGhpcywgXCJvYmplY3RcIiA9PSB0eXBlb2YgYiAmJiBiKSwgZC5kYXRhKFwib3dsLmNhcm91c2VsXCIsIGYpLCBhLmVhY2goW1wibmV4dFwiLCBcInByZXZcIiwgXCJ0b1wiLCBcImRlc3Ryb3lcIiwgXCJyZWZyZXNoXCIsIFwicmVwbGFjZVwiLCBcImFkZFwiLCBcInJlbW92ZVwiXSwgZnVuY3Rpb24gKGIsIGMpIHtcbiAgICAgICAgICAgICAgICAgICAgZi5yZWdpc3Rlcih7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBlLlR5cGUuRXZlbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBjXG4gICAgICAgICAgICAgICAgICAgIH0pLCBmLiRlbGVtZW50Lm9uKGMgKyBcIi5vd2wuY2Fyb3VzZWwuY29yZVwiLCBhLnByb3h5KGZ1bmN0aW9uIChhKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhLm5hbWVzcGFjZSAmJiBhLnJlbGF0ZWRUYXJnZXQgIT09IHRoaXMgJiYgKHRoaXMuc3VwcHJlc3MoW2NdKSwgZltjXS5hcHBseSh0aGlzLCBbXS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMSkpLCB0aGlzLnJlbGVhc2UoW2NdKSlcbiAgICAgICAgICAgICAgICAgICAgfSwgZikpXG4gICAgICAgICAgICAgICAgfSkpLCBcInN0cmluZ1wiID09IHR5cGVvZiBiICYmIFwiX1wiICE9PSBiLmNoYXJBdCgwKSAmJiBmW2JdLmFwcGx5KGYsIGMpXG4gICAgICAgICAgICB9KVxuICAgICAgICB9LCBhLmZuLnNieU93bENhcm91c2VsLkNvbnN0cnVjdG9yID0gZVxuICAgIH0od2luZG93LlplcHRvIHx8IHdpbmRvdy5qUXVlcnksIHdpbmRvdywgZG9jdW1lbnQpLCBmdW5jdGlvbiAoYSwgYiwgYywgZCkge1xuICAgICAgICB2YXIgZSA9IGZ1bmN0aW9uIChiKSB7XG4gICAgICAgICAgICB0aGlzLl9jb3JlID0gYiwgdGhpcy5faW50ZXJ2YWwgPSBudWxsLCB0aGlzLl92aXNpYmxlID0gbnVsbCwgdGhpcy5faGFuZGxlcnMgPSB7XG4gICAgICAgICAgICAgICAgXCJpbml0aWFsaXplZC5vd2wuY2Fyb3VzZWxcIjogYS5wcm94eShmdW5jdGlvbiAoYSkge1xuICAgICAgICAgICAgICAgICAgICBhLm5hbWVzcGFjZSAmJiB0aGlzLl9jb3JlLnNldHRpbmdzLmF1dG9SZWZyZXNoICYmIHRoaXMud2F0Y2goKVxuICAgICAgICAgICAgICAgIH0sIHRoaXMpXG4gICAgICAgICAgICB9LCB0aGlzLl9jb3JlLm9wdGlvbnMgPSBhLmV4dGVuZCh7fSwgZS5EZWZhdWx0cywgdGhpcy5fY29yZS5vcHRpb25zKSwgdGhpcy5fY29yZS4kZWxlbWVudC5vbih0aGlzLl9oYW5kbGVycylcbiAgICAgICAgfTtcbiAgICAgICAgZS5EZWZhdWx0cyA9IHthdXRvUmVmcmVzaDogITAsIGF1dG9SZWZyZXNoSW50ZXJ2YWw6IDUwMH0sIGUucHJvdG90eXBlLndhdGNoID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdGhpcy5faW50ZXJ2YWwgfHwgKHRoaXMuX3Zpc2libGUgPSB0aGlzLl9jb3JlLiRlbGVtZW50LmlzKFwiOnZpc2libGVcIiksIHRoaXMuX2ludGVydmFsID0gYi5zZXRJbnRlcnZhbChhLnByb3h5KHRoaXMucmVmcmVzaCwgdGhpcyksIHRoaXMuX2NvcmUuc2V0dGluZ3MuYXV0b1JlZnJlc2hJbnRlcnZhbCkpXG4gICAgICAgIH0sIGUucHJvdG90eXBlLnJlZnJlc2ggPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB0aGlzLl9jb3JlLiRlbGVtZW50LmlzKFwiOnZpc2libGVcIikgIT09IHRoaXMuX3Zpc2libGUgJiYgKHRoaXMuX3Zpc2libGUgPSAhdGhpcy5fdmlzaWJsZSwgdGhpcy5fY29yZS4kZWxlbWVudC50b2dnbGVDbGFzcyhcInNieS1vd2wtaGlkZGVuXCIsICF0aGlzLl92aXNpYmxlKSwgdGhpcy5fdmlzaWJsZSAmJiB0aGlzLl9jb3JlLmludmFsaWRhdGUoXCJ3aWR0aFwiKSAmJiB0aGlzLl9jb3JlLnJlZnJlc2goKSlcbiAgICAgICAgfSwgZS5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBhLCBjO1xuICAgICAgICAgICAgYi5jbGVhckludGVydmFsKHRoaXMuX2ludGVydmFsKTtcbiAgICAgICAgICAgIGZvciAoYSBpbiB0aGlzLl9oYW5kbGVycykgdGhpcy5fY29yZS4kZWxlbWVudC5vZmYoYSwgdGhpcy5faGFuZGxlcnNbYV0pO1xuICAgICAgICAgICAgZm9yIChjIGluIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXMpKSBcImZ1bmN0aW9uXCIgIT0gdHlwZW9mIHRoaXNbY10gJiYgKHRoaXNbY10gPSBudWxsKVxuICAgICAgICB9LCBhLmZuLnNieU93bENhcm91c2VsLkNvbnN0cnVjdG9yLlBsdWdpbnMuQXV0b1JlZnJlc2ggPSBlXG4gICAgfSh3aW5kb3cuWmVwdG8gfHwgd2luZG93LmpRdWVyeSwgd2luZG93LCBkb2N1bWVudCksIGZ1bmN0aW9uIChhLCBiLCBjLCBkKSB7XG4gICAgICAgIHZhciBlID0gZnVuY3Rpb24gKGIpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvcmUgPSBiLCB0aGlzLl9sb2FkZWQgPSBbXSwgdGhpcy5faGFuZGxlcnMgPSB7XG4gICAgICAgICAgICAgICAgXCJpbml0aWFsaXplZC5vd2wuY2Fyb3VzZWwgY2hhbmdlLm93bC5jYXJvdXNlbCByZXNpemVkLm93bC5jYXJvdXNlbFwiOiBhLnByb3h5KGZ1bmN0aW9uIChiKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChiLm5hbWVzcGFjZSAmJiB0aGlzLl9jb3JlLnNldHRpbmdzICYmIHRoaXMuX2NvcmUuc2V0dGluZ3MubGF6eUxvYWQgJiYgKGIucHJvcGVydHkgJiYgXCJwb3NpdGlvblwiID09IGIucHJvcGVydHkubmFtZSB8fCBcImluaXRpYWxpemVkXCIgPT0gYi50eXBlKSkgZm9yICh2YXIgYyA9IHRoaXMuX2NvcmUuc2V0dGluZ3MsIGUgPSBjLmNlbnRlciAmJiBNYXRoLmNlaWwoYy5pdGVtcyAvIDIpIHx8IGMuaXRlbXMsIGYgPSBjLmNlbnRlciAmJiBlICogLTEgfHwgMCwgZyA9IChiLnByb3BlcnR5ICYmIGIucHJvcGVydHkudmFsdWUgIT09IGQgPyBiLnByb3BlcnR5LnZhbHVlIDogdGhpcy5fY29yZS5jdXJyZW50KCkpICsgZiwgaCA9IHRoaXMuX2NvcmUuY2xvbmVzKCkubGVuZ3RoLCBpID0gYS5wcm94eShmdW5jdGlvbiAoYSwgYikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkKGIpXG4gICAgICAgICAgICAgICAgICAgIH0sIHRoaXMpOyBmKysgPCBlOykgdGhpcy5sb2FkKGggLyAyICsgdGhpcy5fY29yZS5yZWxhdGl2ZShnKSksIGggJiYgYS5lYWNoKHRoaXMuX2NvcmUuY2xvbmVzKHRoaXMuX2NvcmUucmVsYXRpdmUoZykpLCBpKSwgZysrXG4gICAgICAgICAgICAgICAgfSwgdGhpcylcbiAgICAgICAgICAgIH0sIHRoaXMuX2NvcmUub3B0aW9ucyA9IGEuZXh0ZW5kKHt9LCBlLkRlZmF1bHRzLCB0aGlzLl9jb3JlLm9wdGlvbnMpLCB0aGlzLl9jb3JlLiRlbGVtZW50Lm9uKHRoaXMuX2hhbmRsZXJzKVxuICAgICAgICB9O1xuICAgICAgICBlLkRlZmF1bHRzID0ge2xhenlMb2FkOiAhMX0sIGUucHJvdG90eXBlLmxvYWQgPSBmdW5jdGlvbiAoYykge1xuICAgICAgICAgICAgdmFyIGQgPSB0aGlzLl9jb3JlLiRzdGFnZS5jaGlsZHJlbigpLmVxKGMpLCBlID0gZCAmJiBkLmZpbmQoXCIuc2J5LW93bC1sYXp5XCIpO1xuICAgICAgICAgICAgIWUgfHwgYS5pbkFycmF5KGQuZ2V0KDApLCB0aGlzLl9sb2FkZWQpID4gLTEgfHwgKGUuZWFjaChhLnByb3h5KGZ1bmN0aW9uIChjLCBkKSB7XG4gICAgICAgICAgICAgICAgdmFyIGUsIGYgPSBhKGQpLCBnID0gYi5kZXZpY2VQaXhlbFJhdGlvID4gMSAmJiBmLmF0dHIoXCJkYXRhLXNyYy1yZXRpbmFcIikgfHwgZi5hdHRyKFwiZGF0YS1zcmNcIik7XG4gICAgICAgICAgICAgICAgdGhpcy5fY29yZS50cmlnZ2VyKFwibG9hZFwiLCB7XG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnQ6IGYsXG4gICAgICAgICAgICAgICAgICAgIHVybDogZ1xuICAgICAgICAgICAgICAgIH0sIFwibGF6eVwiKSwgZi5pcyhcImltZ1wiKSA/IGYub25lKFwibG9hZC5vd2wubGF6eVwiLCBhLnByb3h5KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgZi5jc3MoXCJvcGFjaXR5XCIsIDEpLCB0aGlzLl9jb3JlLnRyaWdnZXIoXCJsb2FkZWRcIiwge2VsZW1lbnQ6IGYsIHVybDogZ30sIFwibGF6eVwiKVxuICAgICAgICAgICAgICAgIH0sIHRoaXMpKS5hdHRyKFwic3JjXCIsIGcpIDogKGUgPSBuZXcgSW1hZ2UsIGUub25sb2FkID0gYS5wcm94eShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGYuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYmFja2dyb3VuZC1pbWFnZVwiOiAndXJsKFwiJyArIGcgKyAnXCIpJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IFwiMVwiXG4gICAgICAgICAgICAgICAgICAgIH0pLCB0aGlzLl9jb3JlLnRyaWdnZXIoXCJsb2FkZWRcIiwge2VsZW1lbnQ6IGYsIHVybDogZ30sIFwibGF6eVwiKVxuICAgICAgICAgICAgICAgIH0sIHRoaXMpLCBlLnNyYyA9IGcpXG4gICAgICAgICAgICB9LCB0aGlzKSksIHRoaXMuX2xvYWRlZC5wdXNoKGQuZ2V0KDApKSlcbiAgICAgICAgfSwgZS5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBhLCBiO1xuICAgICAgICAgICAgZm9yIChhIGluIHRoaXMuaGFuZGxlcnMpIHRoaXMuX2NvcmUuJGVsZW1lbnQub2ZmKGEsIHRoaXMuaGFuZGxlcnNbYV0pO1xuICAgICAgICAgICAgZm9yIChiIGluIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXMpKSBcImZ1bmN0aW9uXCIgIT0gdHlwZW9mIHRoaXNbYl0gJiYgKHRoaXNbYl0gPSBudWxsKVxuICAgICAgICB9LCBhLmZuLnNieU93bENhcm91c2VsLkNvbnN0cnVjdG9yLlBsdWdpbnMuTGF6eSA9IGVcbiAgICB9KHdpbmRvdy5aZXB0byB8fCB3aW5kb3cualF1ZXJ5LCB3aW5kb3csIGRvY3VtZW50KSwgZnVuY3Rpb24gKGEsIGIsIGMsIGQpIHtcbiAgICAgICAgdmFyIGUgPSBmdW5jdGlvbiAoYikge1xuICAgICAgICAgICAgdGhpcy5fY29yZSA9IGIsIHRoaXMuX2hhbmRsZXJzID0ge1xuICAgICAgICAgICAgICAgIFwiaW5pdGlhbGl6ZWQub3dsLmNhcm91c2VsIHJlZnJlc2hlZC5vd2wuY2Fyb3VzZWxcIjogYS5wcm94eShmdW5jdGlvbiAoYSkge1xuICAgICAgICAgICAgICAgICAgICBhLm5hbWVzcGFjZSAmJiB0aGlzLl9jb3JlLnNldHRpbmdzLmF1dG9IZWlnaHQgJiYgdGhpcy51cGRhdGUoKVxuICAgICAgICAgICAgICAgIH0sIHRoaXMpLCBcImNoYW5nZWQub3dsLmNhcm91c2VsXCI6IGEucHJveHkoZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgICAgICAgICAgICAgYS5uYW1lc3BhY2UgJiYgdGhpcy5fY29yZS5zZXR0aW5ncy5hdXRvSGVpZ2h0ICYmIFwicG9zaXRpb25cIiA9PSBhLnByb3BlcnR5Lm5hbWUgJiYgdGhpcy51cGRhdGUoKVxuICAgICAgICAgICAgICAgIH0sIHRoaXMpLCBcImxvYWRlZC5vd2wubGF6eVwiOiBhLnByb3h5KGZ1bmN0aW9uIChhKSB7XG4gICAgICAgICAgICAgICAgICAgIGEubmFtZXNwYWNlICYmIHRoaXMuX2NvcmUuc2V0dGluZ3MuYXV0b0hlaWdodCAmJiBhLmVsZW1lbnQuY2xvc2VzdChcIi5cIiArIHRoaXMuX2NvcmUuc2V0dGluZ3MuaXRlbUNsYXNzKS5pbmRleCgpID09PSB0aGlzLl9jb3JlLmN1cnJlbnQoKSAmJiB0aGlzLnVwZGF0ZSgpXG4gICAgICAgICAgICAgICAgfSwgdGhpcylcbiAgICAgICAgICAgIH0sIHRoaXMuX2NvcmUub3B0aW9ucyA9IGEuZXh0ZW5kKHt9LCBlLkRlZmF1bHRzLCB0aGlzLl9jb3JlLm9wdGlvbnMpLCB0aGlzLl9jb3JlLiRlbGVtZW50Lm9uKHRoaXMuX2hhbmRsZXJzKVxuICAgICAgICB9O1xuICAgICAgICBlLkRlZmF1bHRzID0ge2F1dG9IZWlnaHQ6ICExLCBhdXRvSGVpZ2h0Q2xhc3M6IFwic2J5LW93bC1oZWlnaHRcIn0sIGUucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBiID0gdGhpcy5fY29yZS5fY3VycmVudCwgYyA9IGIgKyB0aGlzLl9jb3JlLnNldHRpbmdzLml0ZW1zLFxuICAgICAgICAgICAgICBkID0gdGhpcy5fY29yZS4kc3RhZ2UuY2hpbGRyZW4oKS50b0FycmF5KCkuc2xpY2UoYiwgYyksIGUgPSBbXSwgZiA9IDA7XG4gICAgICAgICAgICBhLmVhY2goZCwgZnVuY3Rpb24gKGIsIGMpIHtcbiAgICAgICAgICAgICAgICBlLnB1c2goYShjKS5oZWlnaHQoKSlcbiAgICAgICAgICAgIH0pLCBmID0gTWF0aC5tYXguYXBwbHkobnVsbCwgZSksIHRoaXMuX2NvcmUuJHN0YWdlLnBhcmVudCgpLmhlaWdodChmKS5hZGRDbGFzcyh0aGlzLl9jb3JlLnNldHRpbmdzLmF1dG9IZWlnaHRDbGFzcylcbiAgICAgICAgfSwgZS5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBhLCBiO1xuICAgICAgICAgICAgZm9yIChhIGluIHRoaXMuX2hhbmRsZXJzKSB0aGlzLl9jb3JlLiRlbGVtZW50Lm9mZihhLCB0aGlzLl9oYW5kbGVyc1thXSk7XG4gICAgICAgICAgICBmb3IgKGIgaW4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpIFwiZnVuY3Rpb25cIiAhPSB0eXBlb2YgdGhpc1tiXSAmJiAodGhpc1tiXSA9IG51bGwpXG4gICAgICAgIH0sIGEuZm4uc2J5T3dsQ2Fyb3VzZWwuQ29uc3RydWN0b3IuUGx1Z2lucy5BdXRvSGVpZ2h0ID0gZVxuICAgIH0od2luZG93LlplcHRvIHx8IHdpbmRvdy5qUXVlcnksIHdpbmRvdywgZG9jdW1lbnQpLCBmdW5jdGlvbiAoYSwgYiwgYywgZCkge1xuICAgICAgICB2YXIgZSA9IGZ1bmN0aW9uIChiKSB7XG4gICAgICAgICAgICB0aGlzLl9jb3JlID0gYiwgdGhpcy5fdmlkZW9zID0ge30sIHRoaXMuX3BsYXlpbmcgPSBudWxsLCB0aGlzLl9oYW5kbGVycyA9IHtcbiAgICAgICAgICAgICAgICBcImluaXRpYWxpemVkLm93bC5jYXJvdXNlbFwiOiBhLnByb3h5KGZ1bmN0aW9uIChhKSB7XG4gICAgICAgICAgICAgICAgICAgIGEubmFtZXNwYWNlICYmIHRoaXMuX2NvcmUucmVnaXN0ZXIoe3R5cGU6IFwic3RhdGVcIiwgbmFtZTogXCJwbGF5aW5nXCIsIHRhZ3M6IFtcImludGVyYWN0aW5nXCJdfSlcbiAgICAgICAgICAgICAgICB9LCB0aGlzKSwgXCJyZXNpemUub3dsLmNhcm91c2VsXCI6IGEucHJveHkoZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgICAgICAgICAgICAgYS5uYW1lc3BhY2UgJiYgdGhpcy5fY29yZS5zZXR0aW5ncy52aWRlbyAmJiB0aGlzLmlzSW5GdWxsU2NyZWVuKCkgJiYgYS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgfSwgdGhpcyksIFwicmVmcmVzaGVkLm93bC5jYXJvdXNlbFwiOiBhLnByb3h5KGZ1bmN0aW9uIChhKSB7XG4gICAgICAgICAgICAgICAgICAgIGEubmFtZXNwYWNlICYmIHRoaXMuX2NvcmUuaXMoXCJyZXNpemluZ1wiKSAmJiB0aGlzLl9jb3JlLiRzdGFnZS5maW5kKFwiLmNsb25lZCAuc2J5LW93bC12aWRlby1mcmFtZVwiKS5yZW1vdmUoKVxuICAgICAgICAgICAgICAgIH0sIHRoaXMpLCBcImNoYW5nZWQub3dsLmNhcm91c2VsXCI6IGEucHJveHkoZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgICAgICAgICAgICAgYS5uYW1lc3BhY2UgJiYgXCJwb3NpdGlvblwiID09PSBhLnByb3BlcnR5Lm5hbWUgJiYgdGhpcy5fcGxheWluZyAmJiB0aGlzLnN0b3AoKVxuICAgICAgICAgICAgICAgIH0sIHRoaXMpLCBcInByZXBhcmVkLm93bC5jYXJvdXNlbFwiOiBhLnByb3h5KGZ1bmN0aW9uIChiKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChiLm5hbWVzcGFjZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGMgPSBhKGIuY29udGVudCkuZmluZChcIi5zYnktb3dsLXZpZGVvXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYy5sZW5ndGggJiYgKGMuY3NzKFwiZGlzcGxheVwiLCBcIm5vbmVcIiksIHRoaXMuZmV0Y2goYywgYShiLmNvbnRlbnQpKSlcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sIHRoaXMpXG4gICAgICAgICAgICB9LCB0aGlzLl9jb3JlLm9wdGlvbnMgPSBhLmV4dGVuZCh7fSwgZS5EZWZhdWx0cywgdGhpcy5fY29yZS5vcHRpb25zKSwgdGhpcy5fY29yZS4kZWxlbWVudC5vbih0aGlzLl9oYW5kbGVycyksIHRoaXMuX2NvcmUuJGVsZW1lbnQub24oXCJjbGljay5vd2wudmlkZW9cIiwgXCIuc2J5LW93bC12aWRlby1wbGF5LWljb25cIiwgYS5wcm94eShmdW5jdGlvbiAoYSkge1xuICAgICAgICAgICAgICAgIHRoaXMucGxheShhKVxuICAgICAgICAgICAgfSwgdGhpcykpXG4gICAgICAgIH07XG4gICAgICAgIGUuRGVmYXVsdHMgPSB7dmlkZW86ICExLCB2aWRlb0hlaWdodDogITEsIHZpZGVvV2lkdGg6ICExfSwgZS5wcm90b3R5cGUuZmV0Y2ggPSBmdW5jdGlvbiAoYSwgYikge1xuICAgICAgICAgICAgdmFyIGMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gYS5hdHRyKFwiZGF0YS12aW1lby1pZFwiKSA/IFwidmltZW9cIiA6IGEuYXR0cihcImRhdGEtdnphYXItaWRcIikgPyBcInZ6YWFyXCIgOiBcInlvdXR1YmVcIlxuICAgICAgICAgICAgICB9KCksIGQgPSBhLmF0dHIoXCJkYXRhLXZpbWVvLWlkXCIpIHx8IGEuYXR0cihcImRhdGEteW91dHViZS1pZFwiKSB8fCBhLmF0dHIoXCJkYXRhLXZ6YWFyLWlkXCIpLFxuICAgICAgICAgICAgICBlID0gYS5hdHRyKFwiZGF0YS13aWR0aFwiKSB8fCB0aGlzLl9jb3JlLnNldHRpbmdzLnZpZGVvV2lkdGgsXG4gICAgICAgICAgICAgIGYgPSBhLmF0dHIoXCJkYXRhLWhlaWdodFwiKSB8fCB0aGlzLl9jb3JlLnNldHRpbmdzLnZpZGVvSGVpZ2h0LCBnID0gYS5hdHRyKFwiaHJlZlwiKTtcbiAgICAgICAgICAgIGlmICghZykgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB2aWRlbyBVUkwuXCIpO1xuICAgICAgICAgICAgaWYgKGQgPSBnLm1hdGNoKC8oaHR0cDp8aHR0cHM6fClcXC9cXC8ocGxheWVyLnx3d3cufGFwcC4pPyh2aW1lb1xcLmNvbXx5b3V0dShiZVxcLmNvbXxcXC5iZXxiZVxcLmdvb2dsZWFwaXNcXC5jb20pfHZ6YWFyXFwuY29tKVxcLyh2aWRlb1xcL3x2aWRlb3NcXC98ZW1iZWRcXC98Y2hhbm5lbHNcXC8uK1xcL3xncm91cHNcXC8uK1xcL3x3YXRjaFxcP3Y9fHZcXC8pPyhbQS1aYS16MC05Ll8lLV0qKShcXCZcXFMrKT8vKSwgZFszXS5pbmRleE9mKFwieW91dHVcIikgPiAtMSkgYyA9IFwieW91dHViZVwiOyBlbHNlIGlmIChkWzNdLmluZGV4T2YoXCJ2aW1lb1wiKSA+IC0xKSBjID0gXCJ2aW1lb1wiOyBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoIShkWzNdLmluZGV4T2YoXCJ2emFhclwiKSA+IC0xKSkgdGhyb3cgbmV3IEVycm9yKFwiVmlkZW8gVVJMIG5vdCBzdXBwb3J0ZWQuXCIpO1xuICAgICAgICAgICAgICAgIGMgPSBcInZ6YWFyXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGQgPSBkWzZdLCB0aGlzLl92aWRlb3NbZ10gPSB7XG4gICAgICAgICAgICAgICAgdHlwZTogYyxcbiAgICAgICAgICAgICAgICBpZDogZCxcbiAgICAgICAgICAgICAgICB3aWR0aDogZSxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGZcbiAgICAgICAgICAgIH0sIGIuYXR0cihcImRhdGEtdmlkZW9cIiwgZyksIHRoaXMudGh1bWJuYWlsKGEsIHRoaXMuX3ZpZGVvc1tnXSlcbiAgICAgICAgfSwgZS5wcm90b3R5cGUudGh1bWJuYWlsID0gZnVuY3Rpb24gKGIsIGMpIHtcbiAgICAgICAgICAgIHZhciBkLCBlLCBmLCBnID0gYy53aWR0aCAmJiBjLmhlaWdodCA/ICdzdHlsZT1cIndpZHRoOicgKyBjLndpZHRoICsgXCJweDtoZWlnaHQ6XCIgKyBjLmhlaWdodCArICdweDtcIicgOiBcIlwiLFxuICAgICAgICAgICAgICBoID0gYi5maW5kKFwiaW1nXCIpLCBpID0gXCJzcmNcIiwgaiA9IFwiXCIsIGsgPSB0aGlzLl9jb3JlLnNldHRpbmdzLCBsID0gZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgICAgICAgICAgIGUgPSAnPGRpdiBjbGFzcz1cInNieS1vd2wtdmlkZW8tcGxheS1pY29uXCI+PC9kaXY+JywgZCA9IGsubGF6eUxvYWQgPyAnPGRpdiBjbGFzcz1cInNieS1vd2wtdmlkZW8tdG4gJyArIGogKyAnXCIgJyArIGkgKyAnPVwiJyArIGEgKyAnXCI+PC9kaXY+JyA6ICc8ZGl2IGNsYXNzPVwic2J5LW93bC12aWRlby10blwiIHN0eWxlPVwib3BhY2l0eToxO2JhY2tncm91bmQtaW1hZ2U6dXJsKCcgKyBhICsgJylcIj48L2Rpdj4nLCBiLmFmdGVyKGQpLCBiLmFmdGVyKGUpXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAoYi53cmFwKCc8ZGl2IGNsYXNzPVwic2J5LW93bC12aWRlby13cmFwcGVyXCInICsgZyArIFwiPjwvZGl2PlwiKSwgdGhpcy5fY29yZS5zZXR0aW5ncy5sYXp5TG9hZCAmJiAoaSA9IFwiZGF0YS1zcmNcIiwgaiA9IFwic2J5LW93bC1sYXp5XCIpLCBoLmxlbmd0aCkgcmV0dXJuIGwoaC5hdHRyKGkpKSwgaC5yZW1vdmUoKSwgITE7XG4gICAgICAgICAgICBcInlvdXR1YmVcIiA9PT0gYy50eXBlID8gKGYgPSBcIi8vaW1nLnlvdXR1YmUuY29tL3ZpL1wiICsgYy5pZCArIFwiL2hxZGVmYXVsdC5qcGdcIiwgbChmKSkgOiBcInZpbWVvXCIgPT09IGMudHlwZSA/IGEuYWpheCh7XG4gICAgICAgICAgICAgICAgdHlwZTogXCJHRVRcIixcbiAgICAgICAgICAgICAgICB1cmw6IFwiLy92aW1lby5jb20vYXBpL3YyL3ZpZGVvL1wiICsgYy5pZCArIFwiLmpzb25cIixcbiAgICAgICAgICAgICAgICBqc29ucDogXCJjYWxsYmFja1wiLFxuICAgICAgICAgICAgICAgIGRhdGFUeXBlOiBcImpzb25wXCIsXG4gICAgICAgICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgICAgICAgICAgICAgZiA9IGFbMF0udGh1bWJuYWlsX2xhcmdlLCBsKGYpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkgOiBcInZ6YWFyXCIgPT09IGMudHlwZSAmJiBhLmFqYXgoe1xuICAgICAgICAgICAgICAgIHR5cGU6IFwiR0VUXCIsXG4gICAgICAgICAgICAgICAgdXJsOiBcIi8vdnphYXIuY29tL2FwaS92aWRlb3MvXCIgKyBjLmlkICsgXCIuanNvblwiLFxuICAgICAgICAgICAgICAgIGpzb25wOiBcImNhbGxiYWNrXCIsXG4gICAgICAgICAgICAgICAgZGF0YVR5cGU6IFwianNvbnBcIixcbiAgICAgICAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoYSkge1xuICAgICAgICAgICAgICAgICAgICBmID0gYS5mcmFtZWdyYWJfdXJsLCBsKGYpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfSwgZS5wcm90b3R5cGUuc3RvcCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvcmUudHJpZ2dlcihcInN0b3BcIiwgbnVsbCwgXCJ2aWRlb1wiKSwgdGhpcy5fcGxheWluZy5maW5kKFwiLnNieS1vd2wtdmlkZW8tZnJhbWVcIikucmVtb3ZlKCksIHRoaXMuX3BsYXlpbmcucmVtb3ZlQ2xhc3MoXCJzYnktb3dsLXZpZGVvLXBsYXlpbmdcIiksIHRoaXMuX3BsYXlpbmcgPSBudWxsLCB0aGlzLl9jb3JlLmxlYXZlKFwicGxheWluZ1wiKSwgdGhpcy5fY29yZS50cmlnZ2VyKFwic3RvcHBlZFwiLCBudWxsLCBcInZpZGVvXCIpXG4gICAgICAgIH0sIGUucHJvdG90eXBlLnBsYXkgPSBmdW5jdGlvbiAoYikge1xuICAgICAgICAgICAgdmFyIGMsIGQgPSBhKGIudGFyZ2V0KSwgZSA9IGQuY2xvc2VzdChcIi5cIiArIHRoaXMuX2NvcmUuc2V0dGluZ3MuaXRlbUNsYXNzKSxcbiAgICAgICAgICAgICAgZiA9IHRoaXMuX3ZpZGVvc1tlLmF0dHIoXCJkYXRhLXZpZGVvXCIpXSwgZyA9IGYud2lkdGggfHwgXCIxMDAlXCIsXG4gICAgICAgICAgICAgIGggPSBmLmhlaWdodCB8fCB0aGlzLl9jb3JlLiRzdGFnZS5oZWlnaHQoKTtcbiAgICAgICAgICAgIHRoaXMuX3BsYXlpbmcgfHwgKHRoaXMuX2NvcmUuZW50ZXIoXCJwbGF5aW5nXCIpLCB0aGlzLl9jb3JlLnRyaWdnZXIoXCJwbGF5XCIsIG51bGwsIFwidmlkZW9cIiksIGUgPSB0aGlzLl9jb3JlLml0ZW1zKHRoaXMuX2NvcmUucmVsYXRpdmUoZS5pbmRleCgpKSksIHRoaXMuX2NvcmUucmVzZXQoZS5pbmRleCgpKSwgXCJ5b3V0dWJlXCIgPT09IGYudHlwZSA/IGMgPSAnPGlmcmFtZSB3aWR0aD1cIicgKyBnICsgJ1wiIGhlaWdodD1cIicgKyBoICsgJ1wiIHNyYz1cIi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkLycgKyBmLmlkICsgXCI/YXV0b3BsYXk9MSZyZWw9MCZ2PVwiICsgZi5pZCArICdcIiBmcmFtZWJvcmRlcj1cIjBcIiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+JyA6IFwidmltZW9cIiA9PT0gZi50eXBlID8gYyA9ICc8aWZyYW1lIHNyYz1cIi8vcGxheWVyLnZpbWVvLmNvbS92aWRlby8nICsgZi5pZCArICc/YXV0b3BsYXk9MVwiIHdpZHRoPVwiJyArIGcgKyAnXCIgaGVpZ2h0PVwiJyArIGggKyAnXCIgZnJhbWVib3JkZXI9XCIwXCIgd2Via2l0YWxsb3dmdWxsc2NyZWVuIG1vemFsbG93ZnVsbHNjcmVlbiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+JyA6IFwidnphYXJcIiA9PT0gZi50eXBlICYmIChjID0gJzxpZnJhbWUgZnJhbWVib3JkZXI9XCIwXCJoZWlnaHQ9XCInICsgaCArICdcIndpZHRoPVwiJyArIGcgKyAnXCIgYWxsb3dmdWxsc2NyZWVuIG1vemFsbG93ZnVsbHNjcmVlbiB3ZWJraXRBbGxvd0Z1bGxTY3JlZW4gc3JjPVwiLy92aWV3LnZ6YWFyLmNvbS8nICsgZi5pZCArICcvcGxheWVyP2F1dG9wbGF5PXRydWVcIj48L2lmcmFtZT4nKSwgYSgnPGRpdiBjbGFzcz1cInNieS1vd2wtdmlkZW8tZnJhbWVcIj4nICsgYyArIFwiPC9kaXY+XCIpLmluc2VydEFmdGVyKGUuZmluZChcIi5zYnktb3dsLXZpZGVvXCIpKSwgdGhpcy5fcGxheWluZyA9IGUuYWRkQ2xhc3MoXCJzYnktb3dsLXZpZGVvLXBsYXlpbmdcIikpXG4gICAgICAgIH0sIGUucHJvdG90eXBlLmlzSW5GdWxsU2NyZWVuID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIGIgPSBjLmZ1bGxzY3JlZW5FbGVtZW50IHx8IGMubW96RnVsbFNjcmVlbkVsZW1lbnQgfHwgYy53ZWJraXRGdWxsc2NyZWVuRWxlbWVudDtcbiAgICAgICAgICAgIHJldHVybiBiICYmIGEoYikucGFyZW50KCkuaGFzQ2xhc3MoXCJzYnktb3dsLXZpZGVvLWZyYW1lXCIpXG4gICAgICAgIH0sIGUucHJvdG90eXBlLmRlc3Ryb3kgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgYSwgYjtcbiAgICAgICAgICAgIHRoaXMuX2NvcmUuJGVsZW1lbnQub2ZmKFwiY2xpY2sub3dsLnZpZGVvXCIpO1xuICAgICAgICAgICAgZm9yIChhIGluIHRoaXMuX2hhbmRsZXJzKSB0aGlzLl9jb3JlLiRlbGVtZW50Lm9mZihhLCB0aGlzLl9oYW5kbGVyc1thXSk7XG4gICAgICAgICAgICBmb3IgKGIgaW4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpIFwiZnVuY3Rpb25cIiAhPSB0eXBlb2YgdGhpc1tiXSAmJiAodGhpc1tiXSA9IG51bGwpXG4gICAgICAgIH0sIGEuZm4uc2J5T3dsQ2Fyb3VzZWwuQ29uc3RydWN0b3IuUGx1Z2lucy5WaWRlbyA9IGVcbiAgICB9KHdpbmRvdy5aZXB0byB8fCB3aW5kb3cualF1ZXJ5LCB3aW5kb3csIGRvY3VtZW50KSwgZnVuY3Rpb24gKGEsIGIsIGMsIGQpIHtcbiAgICAgICAgdmFyIGUgPSBmdW5jdGlvbiAoYikge1xuICAgICAgICAgICAgdGhpcy5jb3JlID0gYiwgdGhpcy5jb3JlLm9wdGlvbnMgPSBhLmV4dGVuZCh7fSwgZS5EZWZhdWx0cywgdGhpcy5jb3JlLm9wdGlvbnMpLCB0aGlzLnN3YXBwaW5nID0gITAsIHRoaXMucHJldmlvdXMgPSBkLCB0aGlzLm5leHQgPSBkLCB0aGlzLmhhbmRsZXJzID0ge1xuICAgICAgICAgICAgICAgIFwiY2hhbmdlLm93bC5jYXJvdXNlbFwiOiBhLnByb3h5KGZ1bmN0aW9uIChhKSB7XG4gICAgICAgICAgICAgICAgICAgIGEubmFtZXNwYWNlICYmIFwicG9zaXRpb25cIiA9PSBhLnByb3BlcnR5Lm5hbWUgJiYgKHRoaXMucHJldmlvdXMgPSB0aGlzLmNvcmUuY3VycmVudCgpLCB0aGlzLm5leHQgPSBhLnByb3BlcnR5LnZhbHVlKVxuICAgICAgICAgICAgICAgIH0sIHRoaXMpLCBcImRyYWcub3dsLmNhcm91c2VsIGRyYWdnZWQub3dsLmNhcm91c2VsIHRyYW5zbGF0ZWQub3dsLmNhcm91c2VsXCI6IGEucHJveHkoZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgICAgICAgICAgICAgYS5uYW1lc3BhY2UgJiYgKHRoaXMuc3dhcHBpbmcgPSBcInRyYW5zbGF0ZWRcIiA9PSBhLnR5cGUpXG4gICAgICAgICAgICAgICAgfSwgdGhpcyksIFwidHJhbnNsYXRlLm93bC5jYXJvdXNlbFwiOiBhLnByb3h5KGZ1bmN0aW9uIChhKSB7XG4gICAgICAgICAgICAgICAgICAgIGEubmFtZXNwYWNlICYmIHRoaXMuc3dhcHBpbmcgJiYgKHRoaXMuY29yZS5vcHRpb25zLmFuaW1hdGVPdXQgfHwgdGhpcy5jb3JlLm9wdGlvbnMuYW5pbWF0ZUluKSAmJiB0aGlzLnN3YXAoKVxuICAgICAgICAgICAgICAgIH0sIHRoaXMpXG4gICAgICAgICAgICB9LCB0aGlzLmNvcmUuJGVsZW1lbnQub24odGhpcy5oYW5kbGVycylcbiAgICAgICAgfTtcbiAgICAgICAgZS5EZWZhdWx0cyA9IHthbmltYXRlT3V0OiAhMSwgYW5pbWF0ZUluOiAhMX0sIGUucHJvdG90eXBlLnN3YXAgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpZiAoMSA9PT0gdGhpcy5jb3JlLnNldHRpbmdzLml0ZW1zICYmIGEuc3VwcG9ydC5hbmltYXRpb24gJiYgYS5zdXBwb3J0LnRyYW5zaXRpb24pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvcmUuc3BlZWQoMCk7XG4gICAgICAgICAgICAgICAgdmFyIGIsIGMgPSBhLnByb3h5KHRoaXMuY2xlYXIsIHRoaXMpLCBkID0gdGhpcy5jb3JlLiRzdGFnZS5jaGlsZHJlbigpLmVxKHRoaXMucHJldmlvdXMpLFxuICAgICAgICAgICAgICAgICAgZSA9IHRoaXMuY29yZS4kc3RhZ2UuY2hpbGRyZW4oKS5lcSh0aGlzLm5leHQpLCBmID0gdGhpcy5jb3JlLnNldHRpbmdzLmFuaW1hdGVJbixcbiAgICAgICAgICAgICAgICAgIGcgPSB0aGlzLmNvcmUuc2V0dGluZ3MuYW5pbWF0ZU91dDtcbiAgICAgICAgICAgICAgICB0aGlzLmNvcmUuY3VycmVudCgpICE9PSB0aGlzLnByZXZpb3VzICYmIChnICYmIChiID0gdGhpcy5jb3JlLmNvb3JkaW5hdGVzKHRoaXMucHJldmlvdXMpIC0gdGhpcy5jb3JlLmNvb3JkaW5hdGVzKHRoaXMubmV4dCksIGQub25lKGEuc3VwcG9ydC5hbmltYXRpb24uZW5kLCBjKS5jc3Moe2xlZnQ6IGIgKyBcInB4XCJ9KS5hZGRDbGFzcyhcImFuaW1hdGVkIHNieS1vd2wtYW5pbWF0ZWQtb3V0XCIpLmFkZENsYXNzKGcpKSwgZiAmJiBlLm9uZShhLnN1cHBvcnQuYW5pbWF0aW9uLmVuZCwgYykuYWRkQ2xhc3MoXCJhbmltYXRlZCBzYnktb3dsLWFuaW1hdGVkLWluXCIpLmFkZENsYXNzKGYpKVxuICAgICAgICAgICAgfVxuICAgICAgICB9LCBlLnByb3RvdHlwZS5jbGVhciA9IGZ1bmN0aW9uIChiKSB7XG4gICAgICAgICAgICBhKGIudGFyZ2V0KS5jc3Moe2xlZnQ6IFwiXCJ9KS5yZW1vdmVDbGFzcyhcImFuaW1hdGVkIHNieS1vd2wtYW5pbWF0ZWQtb3V0IHNieS1vd2wtYW5pbWF0ZWQtaW5cIikucmVtb3ZlQ2xhc3ModGhpcy5jb3JlLnNldHRpbmdzLmFuaW1hdGVJbikucmVtb3ZlQ2xhc3ModGhpcy5jb3JlLnNldHRpbmdzLmFuaW1hdGVPdXQpLCB0aGlzLmNvcmUub25UcmFuc2l0aW9uRW5kKClcbiAgICAgICAgfSwgZS5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBhLCBiO1xuICAgICAgICAgICAgZm9yIChhIGluIHRoaXMuaGFuZGxlcnMpIHRoaXMuY29yZS4kZWxlbWVudC5vZmYoYSwgdGhpcy5oYW5kbGVyc1thXSk7XG4gICAgICAgICAgICBmb3IgKGIgaW4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpIFwiZnVuY3Rpb25cIiAhPSB0eXBlb2YgdGhpc1tiXSAmJiAodGhpc1tiXSA9IG51bGwpXG4gICAgICAgIH0sXG4gICAgICAgICAgYS5mbi5zYnlPd2xDYXJvdXNlbC5Db25zdHJ1Y3Rvci5QbHVnaW5zLkFuaW1hdGUgPSBlXG4gICAgfSh3aW5kb3cuWmVwdG8gfHwgd2luZG93LmpRdWVyeSwgd2luZG93LCBkb2N1bWVudCksIGZ1bmN0aW9uIChhLCBiLCBjLCBkKSB7XG4gICAgICAgIHZhciBlID0gZnVuY3Rpb24gKGIpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvcmUgPSBiLCB0aGlzLl90aW1lb3V0ID0gbnVsbCwgdGhpcy5fcGF1c2VkID0gITEsIHRoaXMuX2hhbmRsZXJzID0ge1xuICAgICAgICAgICAgICAgIFwiY2hhbmdlZC5vd2wuY2Fyb3VzZWxcIjogYS5wcm94eShmdW5jdGlvbiAoYSkge1xuICAgICAgICAgICAgICAgICAgICBhLm5hbWVzcGFjZSAmJiBcInNldHRpbmdzXCIgPT09IGEucHJvcGVydHkubmFtZSA/IHRoaXMuX2NvcmUuc2V0dGluZ3MuYXV0b3BsYXkgPyB0aGlzLnBsYXkoKSA6IHRoaXMuc3RvcCgpIDogYS5uYW1lc3BhY2UgJiYgXCJwb3NpdGlvblwiID09PSBhLnByb3BlcnR5Lm5hbWUgJiYgdGhpcy5fY29yZS5zZXR0aW5ncy5hdXRvcGxheSAmJiB0aGlzLl9zZXRBdXRvUGxheUludGVydmFsKClcbiAgICAgICAgICAgICAgICB9LCB0aGlzKSwgXCJpbml0aWFsaXplZC5vd2wuY2Fyb3VzZWxcIjogYS5wcm94eShmdW5jdGlvbiAoYSkge1xuICAgICAgICAgICAgICAgICAgICBhLm5hbWVzcGFjZSAmJiB0aGlzLl9jb3JlLnNldHRpbmdzLmF1dG9wbGF5ICYmIHRoaXMucGxheSgpXG4gICAgICAgICAgICAgICAgfSwgdGhpcyksIFwicGxheS5vd2wuYXV0b3BsYXlcIjogYS5wcm94eShmdW5jdGlvbiAoYSwgYiwgYykge1xuICAgICAgICAgICAgICAgICAgICBhLm5hbWVzcGFjZSAmJiB0aGlzLnBsYXkoYiwgYylcbiAgICAgICAgICAgICAgICB9LCB0aGlzKSwgXCJzdG9wLm93bC5hdXRvcGxheVwiOiBhLnByb3h5KGZ1bmN0aW9uIChhKSB7XG4gICAgICAgICAgICAgICAgICAgIGEubmFtZXNwYWNlICYmIHRoaXMuc3RvcCgpXG4gICAgICAgICAgICAgICAgfSwgdGhpcyksIFwibW91c2VvdmVyLm93bC5hdXRvcGxheVwiOiBhLnByb3h5KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY29yZS5zZXR0aW5ncy5hdXRvcGxheUhvdmVyUGF1c2UgJiYgdGhpcy5fY29yZS5pcyhcInJvdGF0aW5nXCIpICYmIHRoaXMucGF1c2UoKVxuICAgICAgICAgICAgICAgIH0sIHRoaXMpLCBcIm1vdXNlbGVhdmUub3dsLmF1dG9wbGF5XCI6IGEucHJveHkoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb3JlLnNldHRpbmdzLmF1dG9wbGF5SG92ZXJQYXVzZSAmJiB0aGlzLl9jb3JlLmlzKFwicm90YXRpbmdcIikgJiYgdGhpcy5wbGF5KClcbiAgICAgICAgICAgICAgICB9LCB0aGlzKSwgXCJ0b3VjaHN0YXJ0Lm93bC5jb3JlXCI6IGEucHJveHkoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb3JlLnNldHRpbmdzLmF1dG9wbGF5SG92ZXJQYXVzZSAmJiB0aGlzLl9jb3JlLmlzKFwicm90YXRpbmdcIikgJiYgdGhpcy5wYXVzZSgpXG4gICAgICAgICAgICAgICAgfSwgdGhpcyksIFwidG91Y2hlbmQub3dsLmNvcmVcIjogYS5wcm94eShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvcmUuc2V0dGluZ3MuYXV0b3BsYXlIb3ZlclBhdXNlICYmIHRoaXMucGxheSgpXG4gICAgICAgICAgICAgICAgfSwgdGhpcylcbiAgICAgICAgICAgIH0sIHRoaXMuX2NvcmUuJGVsZW1lbnQub24odGhpcy5faGFuZGxlcnMpLCB0aGlzLl9jb3JlLm9wdGlvbnMgPSBhLmV4dGVuZCh7fSwgZS5EZWZhdWx0cywgdGhpcy5fY29yZS5vcHRpb25zKVxuICAgICAgICB9O1xuICAgICAgICBlLkRlZmF1bHRzID0ge1xuICAgICAgICAgICAgYXV0b3BsYXk6ICExLFxuICAgICAgICAgICAgYXV0b3BsYXlUaW1lb3V0OiA1ZTMsXG4gICAgICAgICAgICBhdXRvcGxheUhvdmVyUGF1c2U6ICExLFxuICAgICAgICAgICAgYXV0b3BsYXlTcGVlZDogITFcbiAgICAgICAgfSwgZS5wcm90b3R5cGUucGxheSA9IGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICAgICAgICB0aGlzLl9wYXVzZWQgPSAhMSwgdGhpcy5fY29yZS5pcyhcInJvdGF0aW5nXCIpIHx8ICh0aGlzLl9jb3JlLmVudGVyKFwicm90YXRpbmdcIiksIHRoaXMuX3NldEF1dG9QbGF5SW50ZXJ2YWwoKSlcbiAgICAgICAgfSwgZS5wcm90b3R5cGUuX2dldE5leHRUaW1lb3V0ID0gZnVuY3Rpb24gKGQsIGUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl90aW1lb3V0ICYmIGIuY2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVvdXQpLCBiLnNldFRpbWVvdXQoYS5wcm94eShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcGF1c2VkIHx8IHRoaXMuX2NvcmUuaXMoXCJidXN5XCIpIHx8IHRoaXMuX2NvcmUuaXMoXCJpbnRlcmFjdGluZ1wiKSB8fCBjLmhpZGRlbiB8fCB0aGlzLl9jb3JlLm5leHQoZSB8fCB0aGlzLl9jb3JlLnNldHRpbmdzLmF1dG9wbGF5U3BlZWQpXG4gICAgICAgICAgICB9LCB0aGlzKSwgZCB8fCB0aGlzLl9jb3JlLnNldHRpbmdzLmF1dG9wbGF5VGltZW91dClcbiAgICAgICAgfSwgZS5wcm90b3R5cGUuX3NldEF1dG9QbGF5SW50ZXJ2YWwgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB0aGlzLl90aW1lb3V0ID0gdGhpcy5fZ2V0TmV4dFRpbWVvdXQoKVxuICAgICAgICB9LCBlLnByb3RvdHlwZS5zdG9wID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdGhpcy5fY29yZS5pcyhcInJvdGF0aW5nXCIpICYmIChiLmNsZWFyVGltZW91dCh0aGlzLl90aW1lb3V0KSwgdGhpcy5fY29yZS5sZWF2ZShcInJvdGF0aW5nXCIpKVxuICAgICAgICB9LCBlLnByb3RvdHlwZS5wYXVzZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvcmUuaXMoXCJyb3RhdGluZ1wiKSAmJiAodGhpcy5fcGF1c2VkID0gITApXG4gICAgICAgIH0sIGUucHJvdG90eXBlLmRlc3Ryb3kgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgYSwgYjtcbiAgICAgICAgICAgIHRoaXMuc3RvcCgpO1xuICAgICAgICAgICAgZm9yIChhIGluIHRoaXMuX2hhbmRsZXJzKSB0aGlzLl9jb3JlLiRlbGVtZW50Lm9mZihhLCB0aGlzLl9oYW5kbGVyc1thXSk7XG4gICAgICAgICAgICBmb3IgKGIgaW4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpIFwiZnVuY3Rpb25cIiAhPSB0eXBlb2YgdGhpc1tiXSAmJiAodGhpc1tiXSA9IG51bGwpXG4gICAgICAgIH0sIGEuZm4uc2J5T3dsQ2Fyb3VzZWwuQ29uc3RydWN0b3IuUGx1Z2lucy5hdXRvcGxheSA9IGVcbiAgICB9KHdpbmRvdy5aZXB0byB8fCB3aW5kb3cualF1ZXJ5LCB3aW5kb3csIGRvY3VtZW50KSwgZnVuY3Rpb24gKGEsIGIsIGMsIGQpIHtcbiAgICAgICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgICAgIHZhciBlID0gZnVuY3Rpb24gKGIpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvcmUgPSBiLCB0aGlzLl9pbml0aWFsaXplZCA9ICExLCB0aGlzLl9wYWdlcyA9IFtdLCB0aGlzLl9jb250cm9scyA9IHt9LCB0aGlzLl90ZW1wbGF0ZXMgPSBbXSwgdGhpcy4kZWxlbWVudCA9IHRoaXMuX2NvcmUuJGVsZW1lbnQsIHRoaXMuX292ZXJyaWRlcyA9IHtcbiAgICAgICAgICAgICAgICBuZXh0OiB0aGlzLl9jb3JlLm5leHQsXG4gICAgICAgICAgICAgICAgcHJldjogdGhpcy5fY29yZS5wcmV2LFxuICAgICAgICAgICAgICAgIHRvOiB0aGlzLl9jb3JlLnRvXG4gICAgICAgICAgICB9LCB0aGlzLl9oYW5kbGVycyA9IHtcbiAgICAgICAgICAgICAgICBcInByZXBhcmVkLm93bC5jYXJvdXNlbFwiOiBhLnByb3h5KGZ1bmN0aW9uIChiKSB7XG4gICAgICAgICAgICAgICAgICAgIGIubmFtZXNwYWNlICYmIHRoaXMuX2NvcmUuc2V0dGluZ3MuZG90c0RhdGEgJiYgdGhpcy5fdGVtcGxhdGVzLnB1c2goJzxkaXYgY2xhc3M9XCInICsgdGhpcy5fY29yZS5zZXR0aW5ncy5kb3RDbGFzcyArICdcIj4nICsgYShiLmNvbnRlbnQpLmZpbmQoXCJbZGF0YS1kb3RdXCIpLmFkZEJhY2soXCJbZGF0YS1kb3RdXCIpLmF0dHIoXCJkYXRhLWRvdFwiKSArIFwiPC9kaXY+XCIpXG4gICAgICAgICAgICAgICAgfSwgdGhpcyksIFwiYWRkZWQub3dsLmNhcm91c2VsXCI6IGEucHJveHkoZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgICAgICAgICAgICAgYS5uYW1lc3BhY2UgJiYgdGhpcy5fY29yZS5zZXR0aW5ncy5kb3RzRGF0YSAmJiB0aGlzLl90ZW1wbGF0ZXMuc3BsaWNlKGEucG9zaXRpb24sIDAsIHRoaXMuX3RlbXBsYXRlcy5wb3AoKSlcbiAgICAgICAgICAgICAgICB9LCB0aGlzKSwgXCJyZW1vdmUub3dsLmNhcm91c2VsXCI6IGEucHJveHkoZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgICAgICAgICAgICAgYS5uYW1lc3BhY2UgJiYgdGhpcy5fY29yZS5zZXR0aW5ncy5kb3RzRGF0YSAmJiB0aGlzLl90ZW1wbGF0ZXMuc3BsaWNlKGEucG9zaXRpb24sIDEpXG4gICAgICAgICAgICAgICAgfSwgdGhpcyksIFwiY2hhbmdlZC5vd2wuY2Fyb3VzZWxcIjogYS5wcm94eShmdW5jdGlvbiAoYSkge1xuICAgICAgICAgICAgICAgICAgICBhLm5hbWVzcGFjZSAmJiBcInBvc2l0aW9uXCIgPT0gYS5wcm9wZXJ0eS5uYW1lICYmIHRoaXMuZHJhdygpXG4gICAgICAgICAgICAgICAgfSwgdGhpcyksIFwiaW5pdGlhbGl6ZWQub3dsLmNhcm91c2VsXCI6IGEucHJveHkoZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgICAgICAgICAgICAgYS5uYW1lc3BhY2UgJiYgIXRoaXMuX2luaXRpYWxpemVkICYmICh0aGlzLl9jb3JlLnRyaWdnZXIoXCJpbml0aWFsaXplXCIsIG51bGwsIFwibmF2aWdhdGlvblwiKSwgdGhpcy5pbml0aWFsaXplKCksIHRoaXMudXBkYXRlKCksIHRoaXMuZHJhdygpLCB0aGlzLl9pbml0aWFsaXplZCA9ICEwLCB0aGlzLl9jb3JlLnRyaWdnZXIoXCJpbml0aWFsaXplZFwiLCBudWxsLCBcIm5hdmlnYXRpb25cIikpXG4gICAgICAgICAgICAgICAgfSwgdGhpcyksIFwicmVmcmVzaGVkLm93bC5jYXJvdXNlbFwiOiBhLnByb3h5KGZ1bmN0aW9uIChhKSB7XG4gICAgICAgICAgICAgICAgICAgIGEubmFtZXNwYWNlICYmIHRoaXMuX2luaXRpYWxpemVkICYmICh0aGlzLl9jb3JlLnRyaWdnZXIoXCJyZWZyZXNoXCIsIG51bGwsIFwibmF2aWdhdGlvblwiKSwgdGhpcy51cGRhdGUoKSwgdGhpcy5kcmF3KCksIHRoaXMuX2NvcmUudHJpZ2dlcihcInJlZnJlc2hlZFwiLCBudWxsLCBcIm5hdmlnYXRpb25cIikpXG4gICAgICAgICAgICAgICAgfSwgdGhpcylcbiAgICAgICAgICAgIH0sIHRoaXMuX2NvcmUub3B0aW9ucyA9IGEuZXh0ZW5kKHt9LCBlLkRlZmF1bHRzLCB0aGlzLl9jb3JlLm9wdGlvbnMpLCB0aGlzLiRlbGVtZW50Lm9uKHRoaXMuX2hhbmRsZXJzKVxuICAgICAgICB9O1xuICAgICAgICBlLkRlZmF1bHRzID0ge1xuICAgICAgICAgICAgbmF2OiAhMSxcbiAgICAgICAgICAgIG5hdlRleHQ6IFtcInByZXZcIiwgXCJuZXh0XCJdLFxuICAgICAgICAgICAgbmF2U3BlZWQ6ICExLFxuICAgICAgICAgICAgbmF2RWxlbWVudDogXCJkaXZcIixcbiAgICAgICAgICAgIG5hdkNvbnRhaW5lcjogITEsXG4gICAgICAgICAgICBuYXZDb250YWluZXJDbGFzczogXCJzYnktb3dsLW5hdlwiLFxuICAgICAgICAgICAgbmF2Q2xhc3M6IFtcInNieS1vd2wtcHJldlwiLCBcInNieS1vd2wtbmV4dFwiXSxcbiAgICAgICAgICAgIHNsaWRlQnk6IDEsXG4gICAgICAgICAgICBkb3RDbGFzczogXCJzYnktb3dsLWRvdFwiLFxuICAgICAgICAgICAgZG90c0NsYXNzOiBcInNieS1vd2wtZG90c1wiLFxuICAgICAgICAgICAgZG90czogITAsXG4gICAgICAgICAgICBkb3RzRWFjaDogITEsXG4gICAgICAgICAgICBkb3RzRGF0YTogITEsXG4gICAgICAgICAgICBkb3RzU3BlZWQ6ICExLFxuICAgICAgICAgICAgZG90c0NvbnRhaW5lcjogITFcbiAgICAgICAgfSwgZS5wcm90b3R5cGUuaW5pdGlhbGl6ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBiLCBjID0gdGhpcy5fY29yZS5zZXR0aW5ncztcbiAgICAgICAgICAgIHRoaXMuX2NvbnRyb2xzLiRyZWxhdGl2ZSA9IChjLm5hdkNvbnRhaW5lciA/IGEoYy5uYXZDb250YWluZXIpIDogYShcIjxkaXY+XCIpLmFkZENsYXNzKGMubmF2Q29udGFpbmVyQ2xhc3MpLmFwcGVuZFRvKHRoaXMuJGVsZW1lbnQpKS5hZGRDbGFzcyhcImRpc2FibGVkXCIpLCB0aGlzLl9jb250cm9scy4kcHJldmlvdXMgPSBhKFwiPFwiICsgYy5uYXZFbGVtZW50ICsgXCI+XCIpLmFkZENsYXNzKGMubmF2Q2xhc3NbMF0pLmh0bWwoYy5uYXZUZXh0WzBdKS5wcmVwZW5kVG8odGhpcy5fY29udHJvbHMuJHJlbGF0aXZlKS5vbihcImNsaWNrXCIsIGEucHJveHkoZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnByZXYoYy5uYXZTcGVlZClcbiAgICAgICAgICAgIH0sIHRoaXMpKSwgdGhpcy5fY29udHJvbHMuJG5leHQgPSBhKFwiPFwiICsgYy5uYXZFbGVtZW50ICsgXCI+XCIpLmFkZENsYXNzKGMubmF2Q2xhc3NbMV0pLmh0bWwoYy5uYXZUZXh0WzFdKS5hcHBlbmRUbyh0aGlzLl9jb250cm9scy4kcmVsYXRpdmUpLm9uKFwiY2xpY2tcIiwgYS5wcm94eShmdW5jdGlvbiAoYSkge1xuICAgICAgICAgICAgICAgIHRoaXMubmV4dChjLm5hdlNwZWVkKVxuICAgICAgICAgICAgfSwgdGhpcykpLCBjLmRvdHNEYXRhIHx8ICh0aGlzLl90ZW1wbGF0ZXMgPSBbYShcIjxkaXY+XCIpLmFkZENsYXNzKGMuZG90Q2xhc3MpLmFwcGVuZChhKFwiPHNwYW4+XCIpKS5wcm9wKFwib3V0ZXJIVE1MXCIpXSksIHRoaXMuX2NvbnRyb2xzLiRhYnNvbHV0ZSA9IChjLmRvdHNDb250YWluZXIgPyBhKGMuZG90c0NvbnRhaW5lcikgOiBhKFwiPGRpdj5cIikuYWRkQ2xhc3MoYy5kb3RzQ2xhc3MpLmFwcGVuZFRvKHRoaXMuJGVsZW1lbnQpKS5hZGRDbGFzcyhcImRpc2FibGVkXCIpLCB0aGlzLl9jb250cm9scy4kYWJzb2x1dGUub24oXCJjbGlja1wiLCBcImRpdlwiLCBhLnByb3h5KGZ1bmN0aW9uIChiKSB7XG4gICAgICAgICAgICAgICAgdmFyIGQgPSBhKGIudGFyZ2V0KS5wYXJlbnQoKS5pcyh0aGlzLl9jb250cm9scy4kYWJzb2x1dGUpID8gYShiLnRhcmdldCkuaW5kZXgoKSA6IGEoYi50YXJnZXQpLnBhcmVudCgpLmluZGV4KCk7XG4gICAgICAgICAgICAgICAgYi5wcmV2ZW50RGVmYXVsdCgpLCB0aGlzLnRvKGQsIGMuZG90c1NwZWVkKVxuICAgICAgICAgICAgfSwgdGhpcykpO1xuICAgICAgICAgICAgZm9yIChiIGluIHRoaXMuX292ZXJyaWRlcykgdGhpcy5fY29yZVtiXSA9IGEucHJveHkodGhpc1tiXSwgdGhpcylcbiAgICAgICAgfSwgZS5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBhLCBiLCBjLCBkO1xuICAgICAgICAgICAgZm9yIChhIGluIHRoaXMuX2hhbmRsZXJzKSB0aGlzLiRlbGVtZW50Lm9mZihhLCB0aGlzLl9oYW5kbGVyc1thXSk7XG4gICAgICAgICAgICBmb3IgKGIgaW4gdGhpcy5fY29udHJvbHMpIHRoaXMuX2NvbnRyb2xzW2JdLnJlbW92ZSgpO1xuICAgICAgICAgICAgZm9yIChkIGluIHRoaXMub3ZlcmlkZXMpIHRoaXMuX2NvcmVbZF0gPSB0aGlzLl9vdmVycmlkZXNbZF07XG4gICAgICAgICAgICBmb3IgKGMgaW4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpIFwiZnVuY3Rpb25cIiAhPSB0eXBlb2YgdGhpc1tjXSAmJiAodGhpc1tjXSA9IG51bGwpXG4gICAgICAgIH0sIGUucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBhLCBiLCBjLCBkID0gdGhpcy5fY29yZS5jbG9uZXMoKS5sZW5ndGggLyAyLCBlID0gZCArIHRoaXMuX2NvcmUuaXRlbXMoKS5sZW5ndGgsXG4gICAgICAgICAgICAgIGYgPSB0aGlzLl9jb3JlLm1heGltdW0oITApLCBnID0gdGhpcy5fY29yZS5zZXR0aW5ncyxcbiAgICAgICAgICAgICAgaCA9IGcuY2VudGVyIHx8IGcuYXV0b1dpZHRoIHx8IGcuZG90c0RhdGEgPyAxIDogZy5kb3RzRWFjaCB8fCBnLml0ZW1zO1xuICAgICAgICAgICAgaWYgKFwicGFnZVwiICE9PSBnLnNsaWRlQnkgJiYgKGcuc2xpZGVCeSA9IE1hdGgubWluKGcuc2xpZGVCeSwgZy5pdGVtcykpLCBnLmRvdHMgfHwgXCJwYWdlXCIgPT0gZy5zbGlkZUJ5KSBmb3IgKHRoaXMuX3BhZ2VzID0gW10sIGEgPSBkLCBiID0gMCwgYyA9IDA7IGEgPCBlOyBhKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoYiA+PSBoIHx8IDAgPT09IGIpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX3BhZ2VzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQ6IE1hdGgubWluKGYsIGEgLSBkKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZDogYSAtIGQgKyBoIC0gMVxuICAgICAgICAgICAgICAgICAgICB9KSwgTWF0aC5taW4oZiwgYSAtIGQpID09PSBmKSBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgYiA9IDAsICsrY1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBiICs9IHRoaXMuX2NvcmUubWVyZ2Vycyh0aGlzLl9jb3JlLnJlbGF0aXZlKGEpKVxuICAgICAgICAgICAgfVxuICAgICAgICB9LCBlLnByb3RvdHlwZS5kcmF3ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIGIsIGMgPSB0aGlzLl9jb3JlLnNldHRpbmdzLCBkID0gdGhpcy5fY29yZS5pdGVtcygpLmxlbmd0aCA8PSBjLml0ZW1zLFxuICAgICAgICAgICAgICBlID0gdGhpcy5fY29yZS5yZWxhdGl2ZSh0aGlzLl9jb3JlLmN1cnJlbnQoKSksIGYgPSBjLmxvb3AgfHwgYy5yZXdpbmQ7XG4gICAgICAgICAgICB0aGlzLl9jb250cm9scy4kcmVsYXRpdmUudG9nZ2xlQ2xhc3MoXCJkaXNhYmxlZFwiLCAhYy5uYXYgfHwgZCksIGMubmF2ICYmICh0aGlzLl9jb250cm9scy4kcHJldmlvdXMudG9nZ2xlQ2xhc3MoXCJkaXNhYmxlZFwiLCAhZiAmJiBlIDw9IHRoaXMuX2NvcmUubWluaW11bSghMCkpLCB0aGlzLl9jb250cm9scy4kbmV4dC50b2dnbGVDbGFzcyhcImRpc2FibGVkXCIsICFmICYmIGUgPj0gdGhpcy5fY29yZS5tYXhpbXVtKCEwKSkpLCB0aGlzLl9jb250cm9scy4kYWJzb2x1dGUudG9nZ2xlQ2xhc3MoXCJkaXNhYmxlZFwiLCAhYy5kb3RzIHx8IGQpLCBjLmRvdHMgJiYgKGIgPSB0aGlzLl9wYWdlcy5sZW5ndGggLSB0aGlzLl9jb250cm9scy4kYWJzb2x1dGUuY2hpbGRyZW4oKS5sZW5ndGgsIGMuZG90c0RhdGEgJiYgMCAhPT0gYiA/IHRoaXMuX2NvbnRyb2xzLiRhYnNvbHV0ZS5odG1sKHRoaXMuX3RlbXBsYXRlcy5qb2luKFwiXCIpKSA6IGIgPiAwID8gdGhpcy5fY29udHJvbHMuJGFic29sdXRlLmFwcGVuZChuZXcgQXJyYXkoYiArIDEpLmpvaW4odGhpcy5fdGVtcGxhdGVzWzBdKSkgOiBiIDwgMCAmJiB0aGlzLl9jb250cm9scy4kYWJzb2x1dGUuY2hpbGRyZW4oKS5zbGljZShiKS5yZW1vdmUoKSwgdGhpcy5fY29udHJvbHMuJGFic29sdXRlLmZpbmQoXCIuYWN0aXZlXCIpLnJlbW92ZUNsYXNzKFwiYWN0aXZlXCIpLCB0aGlzLl9jb250cm9scy4kYWJzb2x1dGUuY2hpbGRyZW4oKS5lcShhLmluQXJyYXkodGhpcy5jdXJyZW50KCksIHRoaXMuX3BhZ2VzKSkuYWRkQ2xhc3MoXCJhY3RpdmVcIikpXG4gICAgICAgIH0sIGUucHJvdG90eXBlLm9uVHJpZ2dlciA9IGZ1bmN0aW9uIChiKSB7XG4gICAgICAgICAgICB2YXIgYyA9IHRoaXMuX2NvcmUuc2V0dGluZ3M7XG4gICAgICAgICAgICBiLnBhZ2UgPSB7XG4gICAgICAgICAgICAgICAgaW5kZXg6IGEuaW5BcnJheSh0aGlzLmN1cnJlbnQoKSwgdGhpcy5fcGFnZXMpLFxuICAgICAgICAgICAgICAgIGNvdW50OiB0aGlzLl9wYWdlcy5sZW5ndGgsXG4gICAgICAgICAgICAgICAgc2l6ZTogYyAmJiAoYy5jZW50ZXIgfHwgYy5hdXRvV2lkdGggfHwgYy5kb3RzRGF0YSA/IDEgOiBjLmRvdHNFYWNoIHx8IGMuaXRlbXMpXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIGUucHJvdG90eXBlLmN1cnJlbnQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgYiA9IHRoaXMuX2NvcmUucmVsYXRpdmUodGhpcy5fY29yZS5jdXJyZW50KCkpO1xuICAgICAgICAgICAgcmV0dXJuIGEuZ3JlcCh0aGlzLl9wYWdlcywgYS5wcm94eShmdW5jdGlvbiAoYSwgYykge1xuICAgICAgICAgICAgICAgIHJldHVybiBhLnN0YXJ0IDw9IGIgJiYgYS5lbmQgPj0gYlxuICAgICAgICAgICAgfSwgdGhpcykpLnBvcCgpXG4gICAgICAgIH0sIGUucHJvdG90eXBlLmdldFBvc2l0aW9uID0gZnVuY3Rpb24gKGIpIHtcbiAgICAgICAgICAgIHZhciBjLCBkLCBlID0gdGhpcy5fY29yZS5zZXR0aW5ncztcbiAgICAgICAgICAgIHJldHVybiBcInBhZ2VcIiA9PSBlLnNsaWRlQnkgPyAoYyA9IGEuaW5BcnJheSh0aGlzLmN1cnJlbnQoKSwgdGhpcy5fcGFnZXMpLCBkID0gdGhpcy5fcGFnZXMubGVuZ3RoLCBiID8gKytjIDogLS1jLCBjID0gdGhpcy5fcGFnZXNbKGMgJSBkICsgZCkgJSBkXS5zdGFydCkgOiAoYyA9IHRoaXMuX2NvcmUucmVsYXRpdmUodGhpcy5fY29yZS5jdXJyZW50KCkpLCBkID0gdGhpcy5fY29yZS5pdGVtcygpLmxlbmd0aCwgYiA/IGMgKz0gZS5zbGlkZUJ5IDogYyAtPSBlLnNsaWRlQnkpLCBjXG4gICAgICAgIH0sIGUucHJvdG90eXBlLm5leHQgPSBmdW5jdGlvbiAoYikge1xuICAgICAgICAgICAgYS5wcm94eSh0aGlzLl9vdmVycmlkZXMudG8sIHRoaXMuX2NvcmUpKHRoaXMuZ2V0UG9zaXRpb24oITApLCBiKVxuICAgICAgICB9LCBlLnByb3RvdHlwZS5wcmV2ID0gZnVuY3Rpb24gKGIpIHtcbiAgICAgICAgICAgIGEucHJveHkodGhpcy5fb3ZlcnJpZGVzLnRvLCB0aGlzLl9jb3JlKSh0aGlzLmdldFBvc2l0aW9uKCExKSwgYilcbiAgICAgICAgfSwgZS5wcm90b3R5cGUudG8gPSBmdW5jdGlvbiAoYiwgYywgZCkge1xuICAgICAgICAgICAgdmFyIGU7XG4gICAgICAgICAgICAhZCAmJiB0aGlzLl9wYWdlcy5sZW5ndGggPyAoZSA9IHRoaXMuX3BhZ2VzLmxlbmd0aCwgYS5wcm94eSh0aGlzLl9vdmVycmlkZXMudG8sIHRoaXMuX2NvcmUpKHRoaXMuX3BhZ2VzWyhiICUgZSArIGUpICUgZV0uc3RhcnQsIGMpKSA6IGEucHJveHkodGhpcy5fb3ZlcnJpZGVzLnRvLCB0aGlzLl9jb3JlKShiLCBjKVxuICAgICAgICB9LCBhLmZuLnNieU93bENhcm91c2VsLkNvbnN0cnVjdG9yLlBsdWdpbnMuTmF2aWdhdGlvbiA9IGVcbiAgICB9KHdpbmRvdy5aZXB0byB8fCB3aW5kb3cualF1ZXJ5LCB3aW5kb3csIGRvY3VtZW50KSwgZnVuY3Rpb24gKGEsIGIsIGMsIGQpIHtcbiAgICAgICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgICAgIHZhciBlID0gZnVuY3Rpb24gKGMpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvcmUgPSBjLCB0aGlzLl9oYXNoZXMgPSB7fSwgdGhpcy4kZWxlbWVudCA9IHRoaXMuX2NvcmUuJGVsZW1lbnQsIHRoaXMuX2hhbmRsZXJzID0ge1xuICAgICAgICAgICAgICAgIFwiaW5pdGlhbGl6ZWQub3dsLmNhcm91c2VsXCI6IGEucHJveHkoZnVuY3Rpb24gKGMpIHtcbiAgICAgICAgICAgICAgICAgICAgYy5uYW1lc3BhY2UgJiYgXCJVUkxIYXNoXCIgPT09IHRoaXMuX2NvcmUuc2V0dGluZ3Muc3RhcnRQb3NpdGlvbiAmJiBhKGIpLnRyaWdnZXIoXCJoYXNoY2hhbmdlLm93bC5uYXZpZ2F0aW9uXCIpXG4gICAgICAgICAgICAgICAgfSwgdGhpcyksIFwicHJlcGFyZWQub3dsLmNhcm91c2VsXCI6IGEucHJveHkoZnVuY3Rpb24gKGIpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGIubmFtZXNwYWNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgYyA9IGEoYi5jb250ZW50KS5maW5kKFwiW2RhdGEtaGFzaF1cIikuYWRkQmFjayhcIltkYXRhLWhhc2hdXCIpLmF0dHIoXCJkYXRhLWhhc2hcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWMpIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2hhc2hlc1tjXSA9IGIuY29udGVudFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSwgdGhpcyksIFwiY2hhbmdlZC5vd2wuY2Fyb3VzZWxcIjogYS5wcm94eShmdW5jdGlvbiAoYykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoYy5uYW1lc3BhY2UgJiYgXCJwb3NpdGlvblwiID09PSBjLnByb3BlcnR5Lm5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkID0gdGhpcy5fY29yZS5pdGVtcyh0aGlzLl9jb3JlLnJlbGF0aXZlKHRoaXMuX2NvcmUuY3VycmVudCgpKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGUgPSBhLm1hcCh0aGlzLl9oYXNoZXMsIGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYSA9PT0gZCA/IGIgOiBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pLmpvaW4oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZSB8fCBiLmxvY2F0aW9uLmhhc2guc2xpY2UoMSkgPT09IGUpIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGIubG9jYXRpb24uaGFzaCA9IGVcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sIHRoaXMpXG4gICAgICAgICAgICB9LCB0aGlzLl9jb3JlLm9wdGlvbnMgPSBhLmV4dGVuZCh7fSwgZS5EZWZhdWx0cywgdGhpcy5fY29yZS5vcHRpb25zKSwgdGhpcy4kZWxlbWVudC5vbih0aGlzLl9oYW5kbGVycyksIGEoYikub24oXCJoYXNoY2hhbmdlLm93bC5uYXZpZ2F0aW9uXCIsIGEucHJveHkoZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgICAgICAgICB2YXIgYyA9IGIubG9jYXRpb24uaGFzaC5zdWJzdHJpbmcoMSksIGUgPSB0aGlzLl9jb3JlLiRzdGFnZS5jaGlsZHJlbigpLFxuICAgICAgICAgICAgICAgICAgZiA9IHRoaXMuX2hhc2hlc1tjXSAmJiBlLmluZGV4KHRoaXMuX2hhc2hlc1tjXSk7XG4gICAgICAgICAgICAgICAgZiAhPT0gZCAmJiBmICE9PSB0aGlzLl9jb3JlLmN1cnJlbnQoKSAmJiB0aGlzLl9jb3JlLnRvKHRoaXMuX2NvcmUucmVsYXRpdmUoZiksICExLCAhMClcbiAgICAgICAgICAgIH0sIHRoaXMpKVxuICAgICAgICB9O1xuICAgICAgICBlLkRlZmF1bHRzID0ge1VSTGhhc2hMaXN0ZW5lcjogITF9LCBlLnByb3RvdHlwZS5kZXN0cm95ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIGMsIGQ7XG4gICAgICAgICAgICBhKGIpLm9mZihcImhhc2hjaGFuZ2Uub3dsLm5hdmlnYXRpb25cIik7XG4gICAgICAgICAgICBmb3IgKGMgaW4gdGhpcy5faGFuZGxlcnMpIHRoaXMuX2NvcmUuJGVsZW1lbnQub2ZmKGMsIHRoaXMuX2hhbmRsZXJzW2NdKTtcbiAgICAgICAgICAgIGZvciAoZCBpbiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0aGlzKSkgXCJmdW5jdGlvblwiICE9IHR5cGVvZiB0aGlzW2RdICYmICh0aGlzW2RdID0gbnVsbClcbiAgICAgICAgfSwgYS5mbi5zYnlPd2xDYXJvdXNlbC5Db25zdHJ1Y3Rvci5QbHVnaW5zLkhhc2ggPSBlXG4gICAgfSh3aW5kb3cuWmVwdG8gfHwgd2luZG93LmpRdWVyeSwgd2luZG93LCBkb2N1bWVudCksIGZ1bmN0aW9uIChhLCBiLCBjLCBkKSB7XG4gICAgICAgIGZ1bmN0aW9uIGUoYiwgYykge1xuICAgICAgICAgICAgdmFyIGUgPSAhMSwgZiA9IGIuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBiLnNsaWNlKDEpO1xuICAgICAgICAgICAgcmV0dXJuIGEuZWFjaCgoYiArIFwiIFwiICsgaC5qb2luKGYgKyBcIiBcIikgKyBmKS5zcGxpdChcIiBcIiksIGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICAgICAgICAgICAgaWYgKGdbYl0gIT09IGQpIHJldHVybiBlID0gIWMgfHwgYiwgITFcbiAgICAgICAgICAgIH0pLCBlXG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBmKGEpIHtcbiAgICAgICAgICAgIHJldHVybiBlKGEsICEwKVxuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGcgPSBhKFwiPHN1cHBvcnQ+XCIpLmdldCgwKS5zdHlsZSwgaCA9IFwiV2Via2l0IE1veiBPIG1zXCIuc3BsaXQoXCIgXCIpLCBpID0ge1xuICAgICAgICAgICAgdHJhbnNpdGlvbjoge1xuICAgICAgICAgICAgICAgIGVuZDoge1xuICAgICAgICAgICAgICAgICAgICBXZWJraXRUcmFuc2l0aW9uOiBcIndlYmtpdFRyYW5zaXRpb25FbmRcIixcbiAgICAgICAgICAgICAgICAgICAgTW96VHJhbnNpdGlvbjogXCJ0cmFuc2l0aW9uZW5kXCIsXG4gICAgICAgICAgICAgICAgICAgIE9UcmFuc2l0aW9uOiBcIm9UcmFuc2l0aW9uRW5kXCIsXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IFwidHJhbnNpdGlvbmVuZFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFuaW1hdGlvbjoge1xuICAgICAgICAgICAgICAgIGVuZDoge1xuICAgICAgICAgICAgICAgICAgICBXZWJraXRBbmltYXRpb246IFwid2Via2l0QW5pbWF0aW9uRW5kXCIsXG4gICAgICAgICAgICAgICAgICAgIE1vekFuaW1hdGlvbjogXCJhbmltYXRpb25lbmRcIixcbiAgICAgICAgICAgICAgICAgICAgT0FuaW1hdGlvbjogXCJvQW5pbWF0aW9uRW5kXCIsXG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogXCJhbmltYXRpb25lbmRcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgaiA9IHtcbiAgICAgICAgICAgIGNzc3RyYW5zZm9ybXM6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gISFlKFwidHJhbnNmb3JtXCIpXG4gICAgICAgICAgICB9LCBjc3N0cmFuc2Zvcm1zM2Q6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gISFlKFwicGVyc3BlY3RpdmVcIilcbiAgICAgICAgICAgIH0sIGNzc3RyYW5zaXRpb25zOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEhZShcInRyYW5zaXRpb25cIilcbiAgICAgICAgICAgIH0sIGNzc2FuaW1hdGlvbnM6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gISFlKFwiYW5pbWF0aW9uXCIpXG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGouY3NzdHJhbnNpdGlvbnMoKSAmJiAoYS5zdXBwb3J0LnRyYW5zaXRpb24gPSBuZXcgU3RyaW5nKGYoXCJ0cmFuc2l0aW9uXCIpKSwgYS5zdXBwb3J0LnRyYW5zaXRpb24uZW5kID0gaS50cmFuc2l0aW9uLmVuZFthLnN1cHBvcnQudHJhbnNpdGlvbl0pLCBqLmNzc2FuaW1hdGlvbnMoKSAmJiAoYS5zdXBwb3J0LmFuaW1hdGlvbiA9IG5ldyBTdHJpbmcoZihcImFuaW1hdGlvblwiKSksIGEuc3VwcG9ydC5hbmltYXRpb24uZW5kID0gaS5hbmltYXRpb24uZW5kW2Euc3VwcG9ydC5hbmltYXRpb25dKSwgai5jc3N0cmFuc2Zvcm1zKCkgJiYgKGEuc3VwcG9ydC50cmFuc2Zvcm0gPSBuZXcgU3RyaW5nKGYoXCJ0cmFuc2Zvcm1cIikpLCBhLnN1cHBvcnQudHJhbnNmb3JtM2QgPSBqLmNzc3RyYW5zZm9ybXMzZCgpKVxuICAgIH0od2luZG93LlplcHRvIHx8IHdpbmRvdy5qUXVlcnksIHdpbmRvdywgZG9jdW1lbnQpO1xuXG4gICAgLy8gVHdvIFJvdyBDYXJvdXNlbFxuICAgIDsoZnVuY3Rpb24gKCQsIHdpbmRvdywgZG9jdW1lbnQsIHVuZGVmaW5lZCkge1xuICAgICAgICBPd2wycm93ID0gZnVuY3Rpb24gKHNjb3BlKSB7XG4gICAgICAgICAgICB0aGlzLm93bCA9IHNjb3BlO1xuICAgICAgICAgICAgdGhpcy5vd2wub3B0aW9ucyA9ICQuZXh0ZW5kKHt9LCBPd2wycm93LkRlZmF1bHRzLCB0aGlzLm93bC5vcHRpb25zKTtcbiAgICAgICAgICAgIC8vbGluayBjYWxsYmFjayBldmVudHMgd2l0aCBvd2wgY2Fyb3VzZWwgaGVyZVxuXG4gICAgICAgICAgICB0aGlzLmhhbmRsZXJzID0ge1xuICAgICAgICAgICAgICAgICdpbml0aWFsaXplLm93bC5jYXJvdXNlbCc6ICQucHJveHkoZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMub3dsLnNldHRpbmdzLm93bDJyb3cpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYnVpbGQycm93KHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSwgdGhpcylcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHRoaXMub3dsLiRlbGVtZW50Lm9uKHRoaXMuaGFuZGxlcnMpO1xuICAgICAgICB9O1xuXG4gICAgICAgIE93bDJyb3cuRGVmYXVsdHMgPSB7XG4gICAgICAgICAgICBvd2wycm93OiBmYWxzZSxcbiAgICAgICAgICAgIG93bDJyb3dUYXJnZXQ6ICdzYnlfaXRlbScsXG4gICAgICAgICAgICBvd2wycm93Q29udGFpbmVyOiAnc2J5X293bDJyb3ctaXRlbScsXG4gICAgICAgICAgICBvd2wycm93RGlyZWN0aW9uOiAndXRkJyAvLyBsdHJcbiAgICAgICAgfTtcblxuICAgICAgICAvL21laHRvZHM6XG4gICAgICAgIE93bDJyb3cucHJvdG90eXBlLmJ1aWxkMnJvdyA9IGZ1bmN0aW9uICh0aGlzU2NvcGUpIHtcblxuICAgICAgICAgICAgdmFyIGNhcm91c2VsID0gJCh0aGlzU2NvcGUub3dsLiRlbGVtZW50KTtcbiAgICAgICAgICAgIHZhciBjYXJvdXNlbEl0ZW1zID0gY2Fyb3VzZWwuZmluZCgnLicgKyB0aGlzU2NvcGUub3dsLm9wdGlvbnMub3dsMnJvd1RhcmdldCk7XG5cbiAgICAgICAgICAgIHZhciBhRXZlbkVsZW1lbnRzID0gW107XG4gICAgICAgICAgICB2YXIgYU9kZEVsZW1lbnRzID0gW107XG5cbiAgICAgICAgICAgICQuZWFjaChjYXJvdXNlbEl0ZW1zLCBmdW5jdGlvbiAoaW5kZXgsIGl0ZW0pIHtcbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggJSAyID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGFFdmVuRWxlbWVudHMucHVzaChpdGVtKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBhT2RkRWxlbWVudHMucHVzaChpdGVtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgLy9jYXJvdXNlbC5lbXB0eSgpO1xuXG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXNTY29wZS5vd2wub3B0aW9ucy5vd2wycm93RGlyZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnbHRyJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpc1Njb3BlLmxlZnRUb3JpZ2h0KHRoaXNTY29wZSwgY2Fyb3VzZWwsIGNhcm91c2VsSXRlbXMpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGRlZmF1bHQgOlxuICAgICAgICAgICAgICAgICAgICB0aGlzU2NvcGUudXBUb2Rvd24odGhpc1Njb3BlLCBhRXZlbkVsZW1lbnRzLCBhT2RkRWxlbWVudHMsIGNhcm91c2VsKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9O1xuXG4gICAgICAgIE93bDJyb3cucHJvdG90eXBlLmxlZnRUb3JpZ2h0ID0gZnVuY3Rpb24gKHRoaXNTY29wZSwgY2Fyb3VzZWwsIGNhcm91c2VsSXRlbXMpIHtcblxuICAgICAgICAgICAgdmFyIG8yd0NvbnRhaW5lckNsYXNzID0gdGhpc1Njb3BlLm93bC5vcHRpb25zLm93bDJyb3dDb250YWluZXI7XG4gICAgICAgICAgICB2YXIgb3dsTWFyZ2luID0gdGhpc1Njb3BlLm93bC5vcHRpb25zLm1hcmdpbjtcbiAgICAgICAgICAgIHZhciBjYXJvdXNlbEl0ZW1zTGVuZ3RoID0gY2Fyb3VzZWxJdGVtcy5sZW5ndGg7XG4gICAgICAgICAgICB2YXIgZmlyc0FyciA9IFtdO1xuICAgICAgICAgICAgdmFyIHNlY29uZEFyciA9IFtdO1xuXG4gICAgICAgICAgICBpZiAoY2Fyb3VzZWxJdGVtc0xlbmd0aCAlIDIgPT09IDEpIHtcbiAgICAgICAgICAgICAgICBjYXJvdXNlbEl0ZW1zTGVuZ3RoID0gKChjYXJvdXNlbEl0ZW1zTGVuZ3RoIC0gMSkgLyAyKSArIDE7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNhcm91c2VsSXRlbXNMZW5ndGggPSBjYXJvdXNlbEl0ZW1zTGVuZ3RoIC8gMjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJC5lYWNoKGNhcm91c2VsSXRlbXMsIGZ1bmN0aW9uIChpbmRleCwgaXRlbSkge1xuXG5cbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggPCBjYXJvdXNlbEl0ZW1zTGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpcnNBcnIucHVzaChpdGVtKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzZWNvbmRBcnIucHVzaChpdGVtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgJC5lYWNoKGZpcnNBcnIsIGZ1bmN0aW9uIChpbmRleCwgaXRlbSkge1xuICAgICAgICAgICAgICAgIHZhciByb3dDb250YWluZXIgPSAkKCc8ZGl2IGNsYXNzPVwiJyArIG8yd0NvbnRhaW5lckNsYXNzICsgJ1wiLz4nKTtcblxuICAgICAgICAgICAgICAgIHZhciBmaXJzdFJvd0VsZW1lbnQgPSBmaXJzQXJyW2luZGV4XTtcbiAgICAgICAgICAgICAgICBmaXJzdFJvd0VsZW1lbnQuc3R5bGUubWFyZ2luQm90dG9tID0gb3dsTWFyZ2luICsgJ3B4JztcblxuICAgICAgICAgICAgICAgIHJvd0NvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgLmFwcGVuZChmaXJzdFJvd0VsZW1lbnQpXG4gICAgICAgICAgICAgICAgICAuYXBwZW5kKHNlY29uZEFycltpbmRleF0pO1xuXG4gICAgICAgICAgICAgICAgY2Fyb3VzZWwuYXBwZW5kKHJvd0NvbnRhaW5lcik7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB9O1xuXG4gICAgICAgIE93bDJyb3cucHJvdG90eXBlLnVwVG9kb3duID0gZnVuY3Rpb24gKHRoaXNTY29wZSwgYUV2ZW5FbGVtZW50cywgYU9kZEVsZW1lbnRzLCBjYXJvdXNlbCkge1xuXG4gICAgICAgICAgICB2YXIgbzJ3Q29udGFpbmVyQ2xhc3MgPSB0aGlzU2NvcGUub3dsLm9wdGlvbnMub3dsMnJvd0NvbnRhaW5lcjtcbiAgICAgICAgICAgIHZhciBvd2xNYXJnaW4gPSB0aGlzU2NvcGUub3dsLm9wdGlvbnMubWFyZ2luO1xuXG4gICAgICAgICAgICAkLmVhY2goYUV2ZW5FbGVtZW50cywgZnVuY3Rpb24gKGluZGV4LCBpdGVtKSB7XG5cbiAgICAgICAgICAgICAgICB2YXIgcm93Q29udGFpbmVyID0gJCgnPGRpdiBjbGFzcz1cIicgKyBvMndDb250YWluZXJDbGFzcyArICdcIi8+Jyk7XG4gICAgICAgICAgICAgICAgdmFyIGV2ZW5FbGVtZW50ID0gYUV2ZW5FbGVtZW50c1tpbmRleF07XG5cbiAgICAgICAgICAgICAgICBldmVuRWxlbWVudC5zdHlsZS5tYXJnaW5Cb3R0b20gPSBvd2xNYXJnaW4gKyAncHgnO1xuXG4gICAgICAgICAgICAgICAgcm93Q29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAuYXBwZW5kKGV2ZW5FbGVtZW50KVxuICAgICAgICAgICAgICAgICAgLmFwcGVuZChhT2RkRWxlbWVudHNbaW5kZXhdKTtcblxuICAgICAgICAgICAgICAgIGNhcm91c2VsLmFwcGVuZChyb3dDb250YWluZXIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIERlc3Ryb3lzIHRoZSBwbHVnaW4uXG4gICAgICAgICAqL1xuICAgICAgICBPd2wycm93LnByb3RvdHlwZS5kZXN0cm95ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIGhhbmRsZXIsIHByb3BlcnR5O1xuICAgICAgICB9O1xuXG4gICAgICAgICQuZm4uc2J5T3dsQ2Fyb3VzZWwuQ29uc3RydWN0b3IuUGx1Z2luc1snb3dsMnJvdyddID0gT3dsMnJvdztcbiAgICB9KSh3aW5kb3cuWmVwdG8gfHwgd2luZG93LmpRdWVyeSwgd2luZG93LCBkb2N1bWVudCk7XG5cbiAgICAoZnVuY3Rpb24oJCl7XG5cbiAgICAgICAgZnVuY3Rpb24gc2J5QWRkVmlzaWJpbGl0eUxpc3RlbmVyKCkge1xuICAgICAgICAgICAgLyogRGV0ZWN0IHdoZW4gZWxlbWVudCBiZWNvbWVzIHZpc2libGUuIFVzZWQgZm9yIHdoZW4gdGhlIGZlZWQgaXMgaW5pdGlhbGx5IGhpZGRlbiwgaW4gYSB0YWIgZm9yIGV4YW1wbGUuIGh0dHBzOi8vZ2l0aHViLmNvbS9zaGF1bmJvd2UvanF1ZXJ5LnZpc2liaWxpdHlDaGFuZ2VkICovXG4gICAgICAgICAgICAhZnVuY3Rpb24gKGkpIHtcbiAgICAgICAgICAgICAgICB2YXIgbiA9IHtcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2s6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgfSwgcnVuT25Mb2FkOiAhMCwgZnJlcXVlbmN5OiAxMDAsIHNieVByZXZpb3VzVmlzaWJpbGl0eTogbnVsbFxuICAgICAgICAgICAgICAgIH0sIGMgPSB7fTtcbiAgICAgICAgICAgICAgICBjLnNieUNoZWNrVmlzaWJpbGl0eSA9IGZ1bmN0aW9uIChpLCBuKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChqUXVlcnkuY29udGFpbnMoZG9jdW1lbnQsIGlbMF0pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgZSA9IG4uc2J5UHJldmlvdXNWaXNpYmlsaXR5LCB0ID0gaS5pcyhcIjp2aXNpYmxlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbi5zYnlQcmV2aW91c1Zpc2liaWxpdHkgPSB0LCBudWxsID09IGUgPyBuLnJ1bk9uTG9hZCAmJiBuLmNhbGxiYWNrKGksIHQpIDogZSAhPT0gdCAmJiBuLmNhbGxiYWNrKGksIHQpLCBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLnNieUNoZWNrVmlzaWJpbGl0eShpLCBuKVxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgbi5mcmVxdWVuY3kpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LCBpLmZuLnNieVZpc2liaWxpdHlDaGFuZ2VkID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHQgPSBpLmV4dGVuZCh7fSwgbiwgZSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYy5zYnlDaGVja1Zpc2liaWxpdHkoaSh0aGlzKSwgdClcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KGpRdWVyeSk7XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBTYnkoKSB7XG4gICAgICAgICAgICB0aGlzLmZlZWRzID0ge307XG4gICAgICAgICAgICB0aGlzLmN0YXMgPSB7fTtcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucyA9IHNieU9wdGlvbnM7XG4gICAgICAgICAgICB0aGlzLmlzVG91Y2ggPSBzYnlJc1RvdWNoKCk7XG4gICAgICAgIH1cblxuICAgICAgICBTYnkucHJvdG90eXBlID0ge1xuICAgICAgICAgICAgY3JlYXRlUGFnZTogZnVuY3Rpb24gKGNyZWF0ZUZlZWRzLCBjcmVhdGVGZWVkc0FyZ3MpIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHdpbmRvdy5zYnlhamF4dXJsID09PSAndW5kZWZpbmVkJyB8fCB3aW5kb3cuc2J5YWpheHVybC5pbmRleE9mKHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5zYnlhamF4dXJsID0gd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lICsgJy93cC1hZG1pbi9hZG1pbi1hamF4LnBocCc7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJCgnLnNieV9ub19qc19lcnJvcl9tZXNzYWdlJykucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgJCgnLnNieV9ub19qcycpLnJlbW92ZUNsYXNzKCdzYnlfbm9fanMnKTtcblxuICAgICAgICAgICAgICAgIGNyZWF0ZUZlZWRzKGNyZWF0ZUZlZWRzQXJncyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbWF5YmVBZGRZVEFQSTogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdmFyIHlvdXR1YmVTY3JpcHRJZCA9IFwic2J5LXlvdXR1YmUtYXBpXCI7XG4gICAgICAgICAgICAgICAgdmFyIHlvdXR1YmVTY3JpcHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh5b3V0dWJlU2NyaXB0SWQpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHlvdXR1YmVTY3JpcHQgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHRhZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIik7XG4gICAgICAgICAgICAgICAgICAgIHZhciBmaXJzdFNjcmlwdCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwic2NyaXB0XCIpWzBdO1xuXG4gICAgICAgICAgICAgICAgICAgIHRhZy5zcmMgPSBcImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2lmcmFtZV9hcGlcIjtcbiAgICAgICAgICAgICAgICAgICAgdGFnLmlkID0geW91dHViZVNjcmlwdElkO1xuICAgICAgICAgICAgICAgICAgICBmaXJzdFNjcmlwdC5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0YWcsIGZpcnN0U2NyaXB0KTtcblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjcmVhdGVMaWdodGJveDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdmFyIGxiQnVpbGRlciA9IHNieUdldGxpZ2h0Ym94QnVpbGRlcigpO1xuICAgICAgICAgICAgICAgIHZhciBzYnlfbGJfZGVsYXkgPSAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgc2J5X3RpbWVyID0gMDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChzYnlfY2FsbGJhY2ssIHNieV9tcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHNieV90aW1lcik7XG4gICAgICAgICAgICAgICAgICAgICAgICBzYnlfdGltZXIgPSBzZXRUaW1lb3V0KHNieV9jYWxsYmFjaywgc2J5X21zKTtcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9KSgpO1xuICAgICAgICAgICAgICAgIGpRdWVyeSh3aW5kb3cpLm9uKCdyZXNpemUnLGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgc2J5X2xiX2RlbGF5KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxiQnVpbGRlci5hZnRlclJlc2l6ZSgpO1xuICAgICAgICAgICAgICAgICAgICB9LCAyMDApO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIC8qIExpZ2h0Ym94IHYyLjcuMSBieSBMb2tlc2ggRGhha2FyIC0gaHR0cDovL2xva2VzaGRoYWthci5jb20vcHJvamVjdHMvbGlnaHRib3gyLyAtIEhlYXZpbHkgbW9kaWZpZWQgc3BlY2lmaWNhbGx5IGZvciB0aGlzIHBsdWdpbiAqL1xuICAgICAgICAgICAgICAgIChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGEgPSBqUXVlcnksXG4gICAgICAgICAgICAgICAgICAgICAgYiA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBhKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mYWRlRHVyYXRpb24gPSA1MDAsIHRoaXMuZml0SW1hZ2VzSW5WaWV3cG9ydCA9ICEwLCB0aGlzLnJlc2l6ZUR1cmF0aW9uID0gNzAwLCB0aGlzLnBvc2l0aW9uRnJvbVRvcCA9IDUwLCB0aGlzLnNob3dJbWFnZU51bWJlckxhYmVsID0gITAsIHRoaXMuYWx3YXlzU2hvd05hdk9uVG91Y2hEZXZpY2VzID0gITEsIHRoaXMud3JhcEFyb3VuZCA9ICExXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGEucHJvdG90eXBlLmFsYnVtTGFiZWwgPSBmdW5jdGlvbihhLCBiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYSArIFwiIC8gXCIgKyBiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sIGFcbiAgICAgICAgICAgICAgICAgICAgICB9KCksXG4gICAgICAgICAgICAgICAgICAgICAgYyA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBiKGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucyA9IGEsIHRoaXMuYWxidW0gPSBbXSwgdGhpcy5jdXJyZW50SW1hZ2VJbmRleCA9IHZvaWQgMCwgdGhpcy5pbml0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYi5wcm90b3R5cGUuaW5pdCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbmFibGUoKSwgdGhpcy5idWlsZCgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sIGIucHJvdG90eXBlLmVuYWJsZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGIgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYShcImJvZHlcIikub24oXCJjbGlja1wiLCBcImFbZGF0YS1zYnktbGlnaHRib3hdXCIsIGZ1bmN0aW9uKGMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYi5zdGFydChhKGMuY3VycmVudFRhcmdldCkpLCAhMVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgYi5wcm90b3R5cGUuYnVpbGQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBiID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEoXCJcIitcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGJCdWlsZGVyLnRlbXBsYXRlKCkpLmFwcGVuZFRvKGEoXCJib2R5XCIpKSwgdGhpcy4kbGlnaHRib3ggPSBhKFwiI3NieV9saWdodGJveFwiKSwgdGhpcy4kb3ZlcmxheSA9IGEoXCIjc2J5X2xpZ2h0Ym94T3ZlcmxheVwiKSwgdGhpcy4kb3V0ZXJDb250YWluZXIgPSB0aGlzLiRsaWdodGJveC5maW5kKFwiLnNieV9sYi1vdXRlckNvbnRhaW5lclwiKSwgdGhpcy4kY29udGFpbmVyID0gdGhpcy4kbGlnaHRib3guZmluZChcIi5zYnlfbGItY29udGFpbmVyXCIpLCB0aGlzLmNvbnRhaW5lclRvcFBhZGRpbmcgPSBwYXJzZUludCh0aGlzLiRjb250YWluZXIuY3NzKFwicGFkZGluZy10b3BcIiksIDEwKSwgdGhpcy5jb250YWluZXJSaWdodFBhZGRpbmcgPSBwYXJzZUludCh0aGlzLiRjb250YWluZXIuY3NzKFwicGFkZGluZy1yaWdodFwiKSwgMTApLCB0aGlzLmNvbnRhaW5lckJvdHRvbVBhZGRpbmcgPSBwYXJzZUludCh0aGlzLiRjb250YWluZXIuY3NzKFwicGFkZGluZy1ib3R0b21cIiksIDEwKSwgdGhpcy5jb250YWluZXJMZWZ0UGFkZGluZyA9IHBhcnNlSW50KHRoaXMuJGNvbnRhaW5lci5jc3MoXCJwYWRkaW5nLWxlZnRcIiksIDEwKSwgdGhpcy4kb3ZlcmxheS5oaWRlKCkub24oXCJjbGlja1wiLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYi5lbmQoKSwgITFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLCBqUXVlcnkoZG9jdW1lbnQpLm9uKCdjbGljaycsIGZ1bmN0aW9uKGV2ZW50LCBiLCBjKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9GYWRlIG91dCB0aGUgbGlnaHRib3ggaWYgY2xpY2sgYW55d2hlcmUgb3V0c2lkZSBvZiB0aGUgdHdvIGVsZW1lbnRzIGRlZmluZWQgYmVsb3dcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWpRdWVyeShldmVudC50YXJnZXQpLmNsb3Nlc3QoJy5zYnlfbGItb3V0ZXJDb250YWluZXInKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFqUXVlcnkoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KCcuc2J5X2xiLWRhdGFDb250YWluZXInKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vRmFkZSBvdXQgbGlnaHRib3hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpZ2h0Ym94T25DbG9zZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGJCdWlsZGVyLnBhdXNlUGxheWVyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqUXVlcnkoJyNzYnlfbGlnaHRib3hPdmVybGF5LCAjc2J5X2xpZ2h0Ym94JykuZmFkZU91dCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksIHRoaXMuJGxpZ2h0Ym94LmhpZGUoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgalF1ZXJ5KCcjc2J5X2xpZ2h0Ym94T3ZlcmxheScpLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24oYykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGJCdWlsZGVyLnBhdXNlUGxheWVyKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBcInNieV9saWdodGJveFwiID09PSBhKGMudGFyZ2V0KS5hdHRyKFwiaWRcIikgJiYgYi5lbmQoKSwgITFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksIHRoaXMuJGxpZ2h0Ym94LmZpbmQoXCIuc2J5X2xiLXByZXZcIikub24oXCJjbGlja1wiLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYkJ1aWxkZXIucGF1c2VQbGF5ZXIoKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBiLmNoYW5nZUltYWdlKDAgPT09IGIuY3VycmVudEltYWdlSW5kZXggPyBiLmFsYnVtLmxlbmd0aCAtIDEgOiBiLmN1cnJlbnRJbWFnZUluZGV4IC0gMSksICExXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwgdGhpcy4kbGlnaHRib3guZmluZChcIi5zYnlfbGItY29udGFpbmVyXCIpLm9uKFwic3dpcGVyaWdodFwiLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYkJ1aWxkZXIucGF1c2VQbGF5ZXIoKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBiLmNoYW5nZUltYWdlKDAgPT09IGIuY3VycmVudEltYWdlSW5kZXggPyBiLmFsYnVtLmxlbmd0aCAtIDEgOiBiLmN1cnJlbnRJbWFnZUluZGV4IC0gMSksICExXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwgdGhpcy4kbGlnaHRib3guZmluZChcIi5zYnlfbGItbmV4dFwiKS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxiQnVpbGRlci5wYXVzZVBsYXllcigpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGIuY2hhbmdlSW1hZ2UoYi5jdXJyZW50SW1hZ2VJbmRleCA9PT0gYi5hbGJ1bS5sZW5ndGggLSAxID8gMCA6IGIuY3VycmVudEltYWdlSW5kZXggKyAxKSwgITFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLCB0aGlzLiRsaWdodGJveC5maW5kKFwiLnNieV9sYi1jb250YWluZXJcIikub24oXCJzd2lwZWxlZnRcIiwgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGJCdWlsZGVyLnBhdXNlUGxheWVyKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYi5jaGFuZ2VJbWFnZShiLmN1cnJlbnRJbWFnZUluZGV4ID09PSBiLmFsYnVtLmxlbmd0aCAtIDEgPyAwIDogYi5jdXJyZW50SW1hZ2VJbmRleCArIDEpLCAhMVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kbGlnaHRib3guZmluZChcIi5zYnlfbGItbG9hZGVyLCAuc2J5X2xiLWNsb3NlXCIpLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWdodGJveE9uQ2xvc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxiQnVpbGRlci5wYXVzZVBsYXllcigpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGIuZW5kKCksICExXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBiLnByb3RvdHlwZS5zdGFydCA9IGZ1bmN0aW9uKGIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGMoYSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQuYWxidW0ucHVzaChsYkJ1aWxkZXIuZ2V0RGF0YShhKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkID0gdGhpcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSA9IGEod2luZG93KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUub24oXCJyZXNpemVcIiwgYS5wcm94eSh0aGlzLnNpemVPdmVybGF5LCB0aGlzKSksIGEoXCJzZWxlY3QsIG9iamVjdCwgZW1iZWRcIikuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBcImhpZGRlblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwgdGhpcy5zaXplT3ZlcmxheSgpLCB0aGlzLmFsYnVtID0gW107XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZiwgZyA9IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGggPSBiLmF0dHIoXCJkYXRhLXNieS1saWdodGJveFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZiA9IGEoYi5wcm9wKFwidGFnTmFtZVwiKSArICdbZGF0YS1zYnktbGlnaHRib3g9XCInICsgaCArICdcIl0nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGYubGVuZ3RoOyBpID0gKytpKSBjKGEoZltpXSkpLCBmW2ldID09PSBiWzBdICYmIChnID0gaSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoXCJsaWdodGJveFwiID09PSBiLmF0dHIoXCJyZWxcIikpIGMoYik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmID0gYShiLnByb3AoXCJ0YWdOYW1lXCIpICsgJ1tyZWw9XCInICsgYi5hdHRyKFwicmVsXCIpICsgJ1wiXScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgZi5sZW5ndGg7IGogPSArK2opIGMoYShmW2pdKSksIGZbal0gPT09IGJbMF0gJiYgKGcgPSBqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGsgPSBlLnNjcm9sbFRvcCgpICsgdGhpcy5vcHRpb25zLnBvc2l0aW9uRnJvbVRvcCAtIDUwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsID0gZS5zY3JvbGxMZWZ0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLiRsaWdodGJveC5jc3Moe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogayArIFwicHhcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiBsICsgXCJweFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KS5mYWRlSW4odGhpcy5vcHRpb25zLmZhZGVEdXJhdGlvbiksIHRoaXMuY2hhbmdlSW1hZ2UoZylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgYi5wcm90b3R5cGUuY2hhbmdlSW1hZ2UgPSBmdW5jdGlvbihiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgYyA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRpc2FibGVLZXlib2FyZE5hdigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGQgPSB0aGlzLiRsaWdodGJveC5maW5kKFwiLnNieV9sYi1pbWFnZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuJG92ZXJsYXkuZmFkZUluKHRoaXMub3B0aW9ucy5mYWRlRHVyYXRpb24pLCBhKFwiLnNieV9sYi1sb2FkZXJcIikuZmFkZUluKFwic2xvd1wiKSwgdGhpcy4kbGlnaHRib3guZmluZChcIi5zYnlfbGItaW1hZ2UsIC5zYnlfbGItbmF2LCAuc2J5X2xiLXByZXYsIC5zYnlfbGItbmV4dCwgLnNieV9sYi1kYXRhQ29udGFpbmVyLCAuc2J5X2xiLW51bWJlcnMsIC5zYnlfbGItY2FwdGlvblwiKS5oaWRlKCksIHRoaXMuJG91dGVyQ29udGFpbmVyLmFkZENsYXNzKFwiYW5pbWF0aW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGUgPSBuZXcgSW1hZ2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLm9ubG9hZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBmLCBnLCBoLCBpLCBqLCBrLCBsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzYnlBcnJvd1dpZHRoID0gMTAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQuYXR0cihcInNyY1wiLCBjLmFsYnVtW2JdLmxpbmspLCBmID0gYShlKSwgZC53aWR0aChlLndpZHRoKSwgZC5oZWlnaHQoZS5oZWlnaHQpLCBjLm9wdGlvbnMuZml0SW1hZ2VzSW5WaWV3cG9ydCAmJiAobCA9IGEod2luZG93KS53aWR0aCgpLCBrID0gYSh3aW5kb3cpLmhlaWdodCgpLCBqID0gbCAtIGMuY29udGFpbmVyTGVmdFBhZGRpbmcgLSBjLmNvbnRhaW5lclJpZ2h0UGFkZGluZyAtIDIwIC0gc2J5QXJyb3dXaWR0aCwgaSA9IGsgLSBjLmNvbnRhaW5lclRvcFBhZGRpbmcgLSBjLmNvbnRhaW5lckJvdHRvbVBhZGRpbmcgLSAxNTAsIChlLndpZHRoID4gaiB8fCBlLmhlaWdodCA+IGkpICYmIChlLndpZHRoIC8gaiA+IGUuaGVpZ2h0IC8gaSA/IChoID0gaiwgZyA9IHBhcnNlSW50KGUuaGVpZ2h0IC8gKGUud2lkdGggLyBoKSwgMTApLCBkLndpZHRoKGgpLCBkLmhlaWdodChnKSkgOiAoZyA9IGksIGggPSBwYXJzZUludChlLndpZHRoIC8gKGUuaGVpZ2h0IC8gZyksIDEwKSwgZC53aWR0aChoKSwgZC5oZWlnaHQoZykpKSksIGMuc2l6ZUNvbnRhaW5lcihkLndpZHRoKCksIGQuaGVpZ2h0KCkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBlLnNyYyA9IHRoaXMuYWxidW1bYl0ubGluaywgdGhpcy5jdXJyZW50SW1hZ2VJbmRleCA9IGJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgYi5wcm90b3R5cGUuc2l6ZU92ZXJsYXkgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuJG92ZXJsYXkud2lkdGgoYSh3aW5kb3cpLndpZHRoKCkpLmhlaWdodChhKGRvY3VtZW50KS5oZWlnaHQoKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgYi5wcm90b3R5cGUuc2l6ZUNvbnRhaW5lciA9IGZ1bmN0aW9uKGEsIGIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGMoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZC4kbGlnaHRib3guZmluZChcIi5zYnlfbGItZGF0YUNvbnRhaW5lclwiKS53aWR0aChnKSwgZC4kbGlnaHRib3guZmluZChcIi5zYnlfbGItcHJldkxpbmtcIikuaGVpZ2h0KGgpLCBkLiRsaWdodGJveC5maW5kKFwiLnNieV9sYi1uZXh0TGlua1wiKS5oZWlnaHQoaCksIGQuc2hvd0ltYWdlKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkID0gdGhpcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSA9IHRoaXMuJG91dGVyQ29udGFpbmVyLm91dGVyV2lkdGgoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZiA9IHRoaXMuJG91dGVyQ29udGFpbmVyLm91dGVySGVpZ2h0KCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGcgPSBhICsgdGhpcy5jb250YWluZXJMZWZ0UGFkZGluZyArIHRoaXMuY29udGFpbmVyUmlnaHRQYWRkaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoID0gYiArIHRoaXMuY29udGFpbmVyVG9wUGFkZGluZyArIHRoaXMuY29udGFpbmVyQm90dG9tUGFkZGluZztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUgIT09IGcgfHwgZiAhPT0gaCA/IHRoaXMuJG91dGVyQ29udGFpbmVyLmFuaW1hdGUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgdGhpcy5vcHRpb25zLnJlc2l6ZUR1cmF0aW9uLCBcInN3aW5nXCIsIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgOiBjKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgYi5wcm90b3R5cGUuc2hvd0ltYWdlID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLiRsaWdodGJveC5maW5kKFwiLnNieV9sYi1sb2FkZXJcIikuaGlkZSgpLCB0aGlzLiRsaWdodGJveC5maW5kKFwiLnNieV9sYi1pbWFnZVwiKS5mYWRlSW4oXCJzbG93XCIpLCB0aGlzLnVwZGF0ZU5hdigpLCB0aGlzLnVwZGF0ZURldGFpbHMoKSwgdGhpcy5wcmVsb2FkTmVpZ2hib3JpbmdJbWFnZXMoKSwgdGhpcy5lbmFibGVLZXlib2FyZE5hdigpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sIGIucHJvdG90eXBlLnVwZGF0ZU5hdiA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGEgPSAhMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuY3JlYXRlRXZlbnQoXCJUb3VjaEV2ZW50XCIpLCBhID0gdGhpcy5vcHRpb25zLmFsd2F5c1Nob3dOYXZPblRvdWNoRGV2aWNlcyA/ICEwIDogITFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGIpIHt9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLiRsaWdodGJveC5maW5kKFwiLnNieV9sYi1uYXZcIikuc2hvdygpLCB0aGlzLmFsYnVtLmxlbmd0aCA+IDEgJiYgKHRoaXMub3B0aW9ucy53cmFwQXJvdW5kID8gKGEgJiYgdGhpcy4kbGlnaHRib3guZmluZChcIi5zYnlfbGItcHJldiwgLnNieV9sYi1uZXh0XCIpLmNzcyhcIm9wYWNpdHlcIiwgXCIxXCIpLCB0aGlzLiRsaWdodGJveC5maW5kKFwiLnNieV9sYi1wcmV2LCAuc2J5X2xiLW5leHRcIikuc2hvdygpKSA6ICh0aGlzLmN1cnJlbnRJbWFnZUluZGV4ID4gMCAmJiAodGhpcy4kbGlnaHRib3guZmluZChcIi5zYnlfbGItcHJldlwiKS5zaG93KCksIGEgJiYgdGhpcy4kbGlnaHRib3guZmluZChcIi5zYnlfbGItcHJldlwiKS5jc3MoXCJvcGFjaXR5XCIsIFwiMVwiKSksIHRoaXMuY3VycmVudEltYWdlSW5kZXggPCB0aGlzLmFsYnVtLmxlbmd0aCAtIDEgJiYgKHRoaXMuJGxpZ2h0Ym94LmZpbmQoXCIuc2J5X2xiLW5leHRcIikuc2hvdygpLCBhICYmIHRoaXMuJGxpZ2h0Ym94LmZpbmQoXCIuc2J5X2xiLW5leHRcIikuY3NzKFwib3BhY2l0eVwiLCBcIjFcIikpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgYi5wcm90b3R5cGUudXBkYXRlRGV0YWlscyA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGIgPSB0aGlzO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiogTkVXIFBIT1RPIEFDVElPTiAqKi9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGpRdWVyeSgnaWZyYW1lLnNieV9sYi1wbGF5ZXItbG9hZGVkJykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgalF1ZXJ5KCcuc2J5X2xiLXBsYXllci1wbGFjZWhvbGRlcicpLnJlcGxhY2VXaXRoKGpRdWVyeSgnaWZyYW1lLnNieV9sYi1wbGF5ZXItbG9hZGVkJykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpRdWVyeSgnaWZyYW1lLnNieV9sYi1wbGF5ZXItbG9hZGVkJykucmVtb3ZlQ2xhc3MoJ3NieV9sYi1wbGF5ZXItbG9hZGVkJykuc2hvdygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9Td2l0Y2ggdmlkZW8gd2hlbiBlaXRoZXIgYSBuZXcgcG9wdXAgb3IgbmF2aWdhdGluZyB0byBuZXcgb25lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZmVlZCA9IHdpbmRvdy5zYnkuZmVlZHNbdGhpcy5hbGJ1bVt0aGlzLmN1cnJlbnRJbWFnZUluZGV4XS5mZWVkSW5kZXhdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGJCdWlsZGVyLmJlZm9yZVBsYXllclNldHVwKHRoaXMuJGxpZ2h0Ym94LHRoaXMuYWxidW1bdGhpcy5jdXJyZW50SW1hZ2VJbmRleF0sdGhpcy5jdXJyZW50SW1hZ2VJbmRleCx0aGlzLmFsYnVtLGZlZWQpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiggc2J5X3N1cHBvcnRzX3ZpZGVvKCkgKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqUXVlcnkoJyNzYnlfbGlnaHRib3gnKS5yZW1vdmVDbGFzcygnc2J5X3ZpZGVvX2xpZ2h0Ym94Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZlZWQuc2V0dGluZ3MuY29uc2VudEdpdmVuICYmIHRoaXMuYWxidW1bdGhpcy5jdXJyZW50SW1hZ2VJbmRleF0udmlkZW8ubGVuZ3RoKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgalF1ZXJ5KCcuc2J5X2dkcHJfbm90aWNlJykucmVtb3ZlKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBsYXllcklEID0gJ3NieV9sYi1wbGF5ZXInO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqUXVlcnkoJyNzYnlfbGlnaHRib3gnKS5hZGRDbGFzcygnc2J5X3ZpZGVvX2xpZ2h0Ym94Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggISB3aW5kb3cuc2J5T3B0aW9ucy5pc1BybyApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpRdWVyeSgnI3NieV9saWdodGJveCcpLmFkZENsYXNzKCdzYnlfbGlnaHRib3hfZnJlZScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZpZGVvSUQgPSB0aGlzLmFsYnVtW3RoaXMuY3VycmVudEltYWdlSW5kZXhdLnZpZGVvLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9wbGF5ID0gc2J5T3B0aW9ucy5hdXRvcGxheTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cuc2J5TGlnaHRib3hQbGF5ZXIgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgYXJncyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBob3N0OiB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgKyBmZWVkLmVtYmVkVVJMLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZGVvSWQ6IHZpZGVvSUQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxheWVyVmFyczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2Rlc3RicmFuZGluZzogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsOiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvcGxheTogYXV0b3BsYXlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50czoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnb25TdGF0ZUNoYW5nZSc6IGZ1bmN0aW9uKGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB2aWRlb0lEID0gZGF0YS50YXJnZXQuZ2V0VmlkZW9EYXRhKClbJ3ZpZGVvX2lkJ107XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZWVkLmFmdGVyU3RhdGVDaGFuZ2UocGxheWVySUQsdmlkZW9JRCxkYXRhLCQoJyMnICsgcGxheWVySUQpLmNsb3Nlc3QoJy5zYnlfdmlkZW9fdGh1bWJuYWlsX3dyYXAnKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmVlZC5tYXliZUFkZENUQShwbGF5ZXJJRCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5zYnlMaWdodGJveFBsYXllciA9IG5ldyB3aW5kb3cuWVQuUGxheWVyKHBsYXllcklELCBhcmdzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5zYnlMaWdodGJveFBsYXllci5sb2FkVmlkZW9CeUlkKHZpZGVvSUQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kb3V0ZXJDb250YWluZXIucmVtb3ZlQ2xhc3MoXCJhbmltYXRpbmdcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuJGxpZ2h0Ym94LmZpbmQoXCIuc2J5X2xiLWRhdGFDb250YWluZXJcIikuZmFkZUluKHRoaXMub3B0aW9ucy5yZXNpemVEdXJhdGlvbiwgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYi5zaXplT3ZlcmxheSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCcjc2J5X2xpZ2h0Ym94IC5zYnlfbGItcGxheWVyJykuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGVpZ2h0JyA6ICQoJyNzYnlfbGlnaHRib3ggLnNieV9sYi1vdXRlckNvbnRhaW5lcicpLmhlaWdodCgpKydweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3dpZHRoJyA6ICQoJyNzYnlfbGlnaHRib3ggLnNieV9sYi1vdXRlckNvbnRhaW5lcicpLndpZHRoKCkrJ3B4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndG9wJzogMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sMSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuJGxpZ2h0Ym94LmZpbmQoJ2lmcmFtZScpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kbGlnaHRib3guZmluZCgnaWZyYW1lJykuYXR0cigndGl0bGUnLHRoaXMuYWxidW1bdGhpcy5jdXJyZW50SW1hZ2VJbmRleF0udmlkZW9UaXRsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGZ1bGxJbWFnZSA9ICQoJy5zYnlfaXRlbVtkYXRhLXZpZGVvLWlkPScgKyB0aGlzLmFsYnVtW3RoaXMuY3VycmVudEltYWdlSW5kZXhdLnZpZGVvKyddJykuZmluZCgnLnNieV92aWRlb190aHVtYm5haWwnKS5hdHRyKCdkYXRhLWZ1bGwtcmVzJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJy5zYnlfbGItaW1hZ2UnKS5hdHRyKCdzcmMnLGZ1bGxJbWFnZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuJG91dGVyQ29udGFpbmVyLnJlbW92ZUNsYXNzKFwiYW5pbWF0aW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLiRsaWdodGJveC5maW5kKFwiLnNieV9sYi1kYXRhQ29udGFpbmVyXCIpLmZhZGVJbih0aGlzLm9wdGlvbnMucmVzaXplRHVyYXRpb24sIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGIuc2l6ZU92ZXJsYXkoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgalF1ZXJ5KFwiLnNieV9sYi1jb250YWluZXJcIikucHJlcGVuZCgnPGEgaHJlZj1cImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9Jyt0aGlzLmFsYnVtW3RoaXMuY3VycmVudEltYWdlSW5kZXhdLnZpZGVvKydcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgY2xhc3M9XCJzYnlfZ2Rwcl9ub3RpY2VcIj48c3ZnIHN0eWxlPVwiY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMSlcIiBjbGFzcz1cInN2Zy1pbmxpbmUtLWZhIGZhLXBsYXkgZmEtdy0xNCBzYnlfcGxheWJ0blwiIGFyaWEtbGFiZWw9XCJQbGF5XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgZGF0YS1mYS1wcm9jZXNzZWQ9XCJcIiBkYXRhLXByZWZpeD1cImZhXCIgZGF0YS1pY29uPVwicGxheVwiIHJvbGU9XCJwcmVzZW50YXRpb25cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA0NDggNTEyXCI+PHBhdGggZmlsbD1cImN1cnJlbnRDb2xvclwiIGQ9XCJNNDI0LjQgMjE0LjdMNzIuNCA2LjZDNDMuOC0xMC4zIDAgNi4xIDAgNDcuOVY0NjRjMCAzNy41IDQwLjcgNjAuMSA3Mi40IDQxLjNsMzUyLTIwOGMzMS40LTE4LjUgMzEuNS02NC4xIDAtODIuNnpcIj48L3BhdGg+PC9zdmc+PC9hPicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYkJ1aWxkZXIuYWZ0ZXJQbGF5ZXJTZXR1cCh0aGlzLiRsaWdodGJveCx0aGlzLmFsYnVtW3RoaXMuY3VycmVudEltYWdlSW5kZXhdLHRoaXMuY3VycmVudEltYWdlSW5kZXgsdGhpcy5hbGJ1bSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5hbGJ1bS5sZW5ndGggPiAxICYmIHRoaXMub3B0aW9ucy5zaG93SW1hZ2VOdW1iZXJMYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLiRsaWdodGJveC5maW5kKFwiLnNieV9sYi1udW1iZXJcIikudGV4dCh0aGlzLm9wdGlvbnMuYWxidW1MYWJlbCh0aGlzLmN1cnJlbnRJbWFnZUluZGV4ICsgMSwgdGhpcy5hbGJ1bS5sZW5ndGgpKS5mYWRlSW4oXCJmYXN0XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuJGxpZ2h0Ym94LmZpbmQoXCIuc2J5X2xiLW51bWJlclwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sIGIucHJvdG90eXBlLnByZWxvYWROZWlnaGJvcmluZ0ltYWdlcyA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuYWxidW0ubGVuZ3RoID4gdGhpcy5jdXJyZW50SW1hZ2VJbmRleCArIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgYSA9IG5ldyBJbWFnZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhLnNyYyA9IHRoaXMuYWxidW1bdGhpcy5jdXJyZW50SW1hZ2VJbmRleCArIDFdLmxpbmtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRJbWFnZUluZGV4ID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBiID0gbmV3IEltYWdlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIuc3JjID0gdGhpcy5hbGJ1bVt0aGlzLmN1cnJlbnRJbWFnZUluZGV4IC0gMV0ubGlua1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBiLnByb3RvdHlwZS5lbmFibGVLZXlib2FyZE5hdiA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYShkb2N1bWVudCkub24oXCJrZXl1cC5rZXlib2FyZFwiLCBhLnByb3h5KHRoaXMua2V5Ym9hcmRBY3Rpb24sIHRoaXMpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBiLnByb3RvdHlwZS5kaXNhYmxlS2V5Ym9hcmROYXYgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEoZG9jdW1lbnQpLm9mZihcIi5rZXlib2FyZFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBiLnByb3RvdHlwZS5rZXlib2FyZEFjdGlvbiA9IGZ1bmN0aW9uKGEpIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIEtFWUNPREVfRVNDICAgICAgICA9IDI3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIEtFWUNPREVfTEVGVEFSUk9XICA9IDM3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIEtFWUNPREVfUklHSFRBUlJPVyA9IDM5O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIga2V5Y29kZSA9IGV2ZW50LmtleUNvZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIga2V5ICAgICA9IFN0cmluZy5mcm9tQ2hhckNvZGUoa2V5Y29kZSkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChrZXljb2RlID09PSBLRVlDT0RFX0VTQyB8fCBrZXkubWF0Y2goL3h8b3xjLykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiggc2J5X3N1cHBvcnRzX3ZpZGVvKCkgKSAkKCcjc2J5X2xpZ2h0Ym94IHZpZGVvLnNieV92aWRlbycpWzBdLnBhdXNlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnI3NieV9saWdodGJveCBpZnJhbWUnKS5hdHRyKCdzcmMnLCAnJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbmQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAncCcgfHwga2V5Y29kZSA9PT0gS0VZQ09ERV9MRUZUQVJST1cpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50SW1hZ2VJbmRleCAhPT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZUltYWdlKHRoaXMuY3VycmVudEltYWdlSW5kZXggLSAxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMub3B0aW9ucy53cmFwQXJvdW5kICYmIHRoaXMuYWxidW0ubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZUltYWdlKHRoaXMuYWxidW0ubGVuZ3RoIC0gMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoIHNieV9zdXBwb3J0c192aWRlbygpICkgJCgnI3NieV9saWdodGJveCB2aWRlby5zYnlfdmlkZW8nKVswXS5wYXVzZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJyNzYnlfbGlnaHRib3ggaWZyYW1lJykuYXR0cignc3JjJywgJycpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ24nIHx8IGtleWNvZGUgPT09IEtFWUNPREVfUklHSFRBUlJPVykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRJbWFnZUluZGV4ICE9PSB0aGlzLmFsYnVtLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VJbWFnZSh0aGlzLmN1cnJlbnRJbWFnZUluZGV4ICsgMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLm9wdGlvbnMud3JhcEFyb3VuZCAmJiB0aGlzLmFsYnVtLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VJbWFnZSgwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGJCdWlsZGVyLnBhdXNlUGxheWVyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgYi5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRpc2FibGVLZXlib2FyZE5hdigpLCBhKHdpbmRvdykub2ZmKFwicmVzaXplXCIsIHRoaXMuc2l6ZU92ZXJsYXkpLCB0aGlzLiRsaWdodGJveC5mYWRlT3V0KHRoaXMub3B0aW9ucy5mYWRlRHVyYXRpb24pLCB0aGlzLiRvdmVybGF5LmZhZGVPdXQodGhpcy5vcHRpb25zLmZhZGVEdXJhdGlvbiksIGEoXCJzZWxlY3QsIG9iamVjdCwgZW1iZWRcIikuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBcInZpc2libGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgYlxuICAgICAgICAgICAgICAgICAgICAgIH0oKTtcbiAgICAgICAgICAgICAgICAgICAgYShmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgYSA9IG5ldyBiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBjKGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vTGlnaHRib3ggaGlkZSBwaG90byBmdW5jdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJy5zYnlfbGlnaHRib3hfYWN0aW9uIGEnKS5vZmYoKS5vbignY2xpY2snLCBmdW5jdGlvbigpe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnBhcmVudCgpLmZpbmQoJy5zYnlfbGlnaHRib3hfdG9vbHRpcCcpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH0pLmNhbGwodGhpcyk7XG4gICAgICAgICAgICAgICAgd2luZG93LnNieU9wdGlvbnMubGlnaHRib3hDcmVhdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjcmVhdGVGZWVkczogZnVuY3Rpb24gKGFyZ3MpIHtcbiAgICAgICAgICAgICAgICBpZiAoICFzYnlPcHRpb25zLmlzQWRtaW4gJiYgc2J5T3B0aW9ucy5saWdodGJveENyZWF0ZWQgPT09IHVuZGVmaW5lZCApIHtcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LnNieS5jcmVhdGVMaWdodGJveCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhcmdzLndoZW5GZWVkc0NyZWF0ZWQoXG4gICAgICAgICAgICAgICAgICAkKCcuc2JfeW91dHViZScpLmVhY2goZnVuY3Rpb24gKGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5hdHRyKCdkYXRhLXNieS1pbmRleCcsIGluZGV4ICsgMSk7XG4gICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5maW5kKCcuc2J5X3BsYXllcicpLnJlcGxhY2VXaXRoKCc8ZGl2IGlkPVwic2J5X3BsYXllcicraW5kZXgrJ1wiPjwvZGl2PicpO1xuICAgICAgICAgICAgICAgICAgICAgIHZhciAkc2VsZiA9ICQodGhpcyksXG4gICAgICAgICAgICAgICAgICAgICAgICBmbGFncyA9IHR5cGVvZiAkc2VsZi5hdHRyKCdkYXRhLXNieS1mbGFncycpICE9PSAndW5kZWZpbmVkJyA/ICRzZWxmLmF0dHIoJ2RhdGEtc2J5LWZsYWdzJykuc3BsaXQoJywnKSA6IFtdLFxuICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhbCA9IHR5cGVvZiAkc2VsZi5hdHRyKCdkYXRhLW9wdGlvbnMnKSAhPT0gJ3VuZGVmaW5lZCcgPyBKU09OLnBhcnNlKCRzZWxmLmF0dHIoJ2RhdGEtb3B0aW9ucycpKSA6IHt9O1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChmbGFncy5pbmRleE9mKCd0ZXN0QWpheCcpID4gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LnNieS50cmlnZ2VyZWRUZXN0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHN1Ym1pdERhdGEgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhY3Rpb24nIDogJ3NieV9vbl9hamF4X3Rlc3RfdHJpZ2dlcidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uU3VjY2VzcyA9IGZ1bmN0aW9uKGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2RpZCB0ZXN0Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2J5QWpheChzdWJtaXREYXRhLG9uU3VjY2VzcylcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgdmFyIGZlZWRPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xzIDogJHNlbGYuYXR0cignZGF0YS1jb2xzJyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHNtb2JpbGUgOiAkc2VsZi5hdHRyKCdkYXRhLWNvbHNtb2JpbGUnKSAhPT0gJ3NhbWUnID8gJHNlbGYuYXR0cignZGF0YS1jb2xzbW9iaWxlJykgOiAkc2VsZi5hdHRyKCdkYXRhLWNvbHMnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtIDogJHNlbGYuYXR0cignZGF0YS1udW0nKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaW1nUmVzIDogJHNlbGYuYXR0cignZGF0YS1yZXMnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZmVlZElEIDogJHNlbGYuYXR0cignZGF0YS1mZWVkaWQnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zdElEIDogdHlwZW9mICRzZWxmLmF0dHIoICdkYXRhLXBvc3RpZCcgKSAhPT0gJ3VuZGVmaW5lZCcgPyAkc2VsZi5hdHRyKCAnZGF0YS1wb3N0aWQnICkgOiAndW5rbm93bicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0Q29kZUF0dHMgOiAkc2VsZi5hdHRyKCdkYXRhLXNob3J0Y29kZS1hdHRzJyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2l6aW5nRW5hYmxlZCA6IChmbGFncy5pbmRleE9mKCdyZXNpemVEaXNhYmxlJykgPT09IC0xKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VMb2FkRW5hYmxlZCA6IChmbGFncy5pbmRleE9mKCdpbWFnZUxvYWREaXNhYmxlJykgPT09IC0xKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGVidWdFbmFibGVkIDogKGZsYWdzLmluZGV4T2YoJ2RlYnVnJykgPiAtMSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZhdm9yTG9jYWwgOiAoZmxhZ3MuaW5kZXhPZignZmF2b3JMb2NhbCcpID4gLTEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBhamF4UG9zdExvYWQgOiAoZmxhZ3MuaW5kZXhPZignYWpheFBvc3RMb2FkJykgPiAtMSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrV1BQb3N0cyA6IChmbGFncy5pbmRleE9mKCdjaGVja1dQUG9zdHMnKSA+IC0xKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2luZ2xlQ2hlY2tQb3N0cyA6IChmbGFncy5pbmRleE9mKCdzaW5nbGVDaGVja1Bvc3RzJykgPiAtMSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5hcnJvd1BsYXllciA6IChmbGFncy5pbmRleE9mKCduYXJyb3dQbGF5ZXInKSA+IC0xKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZ2RwciA6IChmbGFncy5pbmRleE9mKCdnZHByJykgPiAtMSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNlbnRHaXZlbiA6IChmbGFncy5pbmRleE9mKCdnZHByJykgPT09IC0xKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbm9DRE4gOiAoZmxhZ3MuaW5kZXhPZignZGlzYWJsZWNkbicpID4gLTEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvd0Nvb2tpZXM6IChmbGFncy5pbmRleE9mKCdhbGxvd2Nvb2tpZXMnKSA+IC0xKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGlnaHRib3hFbmFibGVkIDogdHlwZW9mICRzZWxmLmF0dHIoJ2RhdGEtc2J5LXN1cHBvcnRzLWxpZ2h0Ym94JykgIT09ICd1bmRlZmluZWQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdG9yIDogKGZsYWdzLmluZGV4T2YoJ2xvY2F0b3InKSA+IC0xKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b01pblJlcyA6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGdlbmVyYWwgOiBnZW5lcmFsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpYmVCYXJFbmFibGVkOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5zYnkuZmVlZHNbaW5kZXhdID0gc2J5R2V0TmV3RmVlZCh0aGlzLCBpbmRleCwgZmVlZE9wdGlvbnMpO1xuICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygd2luZG93LnNieUFQSVJlYWR5ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cuc2J5LmZlZWRzW2luZGV4XS5wbGF5ZXJBUElSZWFkeSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5zYnkuZmVlZHNbaW5kZXhdLnNldFJlc2l6ZWRJbWFnZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cuc2J5LmZlZWRzW2luZGV4XS5pbml0KCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICB2YXIgZXZ0ID0galF1ZXJ5LkV2ZW50KCdzYnlhZnRlcmZlZWRjcmVhdGUnKTtcbiAgICAgICAgICAgICAgICAgICAgICBldnQuZmVlZCA9IHdpbmRvdy5zYnkuZmVlZHNbaW5kZXhdO1xuICAgICAgICAgICAgICAgICAgICAgIGpRdWVyeSh3aW5kb3cpLnRyaWdnZXIoZXZ0KTtcblxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFmdGVyRmVlZHNDcmVhdGVkOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgLy8gZW5hYmxlIGhlYWRlciBob3ZlciBhY3Rpb25cbiAgICAgICAgICAgICAgICAkKCcuc2JfeW91dHViZV9oZWFkZXInKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyICR0aGlzSGVhZGVyID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgJHRoaXNIZWFkZXIuZmluZCgnLnNieV9oZWFkZXJfbGluaycpLm9uKCdtb3VzZWVudGVyIG1vdXNlbGVhdmUnLCBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2goZS50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnbW91c2VlbnRlcic6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzSGVhZGVyLmZpbmQoJy5zYnlfaGVhZGVyX2ltZ19ob3ZlcicpLmFkZENsYXNzKCdzYnlfZmFkZV9pbicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdtb3VzZWxlYXZlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXNIZWFkZXIuZmluZCgnLnNieV9oZWFkZXJfaW1nX2hvdmVyJykucmVtb3ZlQ2xhc3MoJ3NieV9mYWRlX2luJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuc2J5QVBJUmVhZHkpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGV2dCA9IGpRdWVyeS5FdmVudCgnc2J5ZmVlZGFuZHl0cmVhZHknKTtcbiAgICAgICAgICAgICAgICAgICAgalF1ZXJ5KHdpbmRvdykudHJpZ2dlcihldnQpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVuY29kZUhUTUw6IGZ1bmN0aW9uKHJhdykge1xuICAgICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSBwYXNzZWQgdmFyaWFibGUgaXMgZGVmaW5lZFxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgcmF3ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIHJlcGxhY2UgZ3JlYXRlciB0aGFuIGFuZCBsZXNzIHRoYW4gc3ltYm9scyB3aXRoIGh0bWwgZW50aXR5IHRvIGRpc2FsbG93IGh0bWwgaW4gY29tbWVudHNcbiAgICAgICAgICAgICAgICB2YXIgZW5jb2RlZCA9IHJhdy5yZXBsYWNlKC8oPikvZywnJmd0OycpLFxuICAgICAgICAgICAgICAgICAgZW5jb2RlZCA9IGVuY29kZWQucmVwbGFjZSgvKDwpL2csJyZsdDsnKTtcbiAgICAgICAgICAgICAgICBlbmNvZGVkID0gZW5jb2RlZC5yZXBsYWNlKC8oJmx0O2JyXFwvJmd0OykvZywnPGJyPicpO1xuICAgICAgICAgICAgICAgIGVuY29kZWQgPSBlbmNvZGVkLnJlcGxhY2UoLygmbHQ7YnImZ3Q7KS9nLCc8YnI+Jyk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gZW5jb2RlZDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB1cmxEZXRlY3Q6IGZ1bmN0aW9uKHRleHQpIHtcbiAgICAgICAgICAgICAgICB2YXIgdXJsUmVnZXggPSAvaHR0cHM/OlxcL1xcLyh3d3dcXC4pP1stYS16QS1aMC05QDolLl9cXCt+Iz1dezIsMjU2fVxcLlthLXpdezIsNn1cXGIoWy1hLXpBLVowLTlAOiVfXFwrLn4jPyYvLz1dKikvZztcbiAgICAgICAgICAgICAgICByZXR1cm4gdGV4dC5tYXRjaCh1cmxSZWdleCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY3RhRGV0ZWN0OiBmdW5jdGlvbih0ZXh0KSB7XG5cbiAgICAgICAgICAgICAgICB2YXIgY3RhTWF0Y2hlcyA9IHRleHQubWF0Y2goL3tMaW5rOiguKil9L2cpLFxuICAgICAgICAgICAgICAgICAgY3RhID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICBpZiAoY3RhTWF0Y2hlcyAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgdXJsTWF0Y2hlcyA9IHdpbmRvdy5zYnkudXJsRGV0ZWN0KGN0YU1hdGNoZXNbMF0pO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh1cmxNYXRjaGVzICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgdXJsID0gdXJsTWF0Y2hlc1swXS50cmltKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNieUJ1dHRvblRleHQgPSBjdGFNYXRjaGVzWzBdLnJlcGxhY2UoJ3tMaW5rOicsJycpLnJlcGxhY2UoJ30nLCcnKS5yZXBsYWNlKHVybCwnJykucmVwbGFjZSgnICAnLCcgJykudHJpbSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY3RhID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrOiAnbGluaycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiB1cmwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogc2J5QnV0dG9uVGV4dFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdDVEEgZm91bmQgYnV0IG5vIFVSTCcpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGN0YTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzaHVmZmxlOiBmdW5jdGlvbihhcnJheSkge1xuICAgICAgICAgICAgICAgIHZhciBjdXJyZW50SW5kZXggPSBhcnJheS5sZW5ndGgsXG4gICAgICAgICAgICAgICAgICB0ZW1wb3JhcnlWYWx1ZSxcbiAgICAgICAgICAgICAgICAgIHJhbmRvbUluZGV4O1xuXG4gICAgICAgICAgICAgICAgLy8gV2hpbGUgdGhlcmUgcmVtYWluIGVsZW1lbnRzIHRvIHNodWZmbGUuLi5cbiAgICAgICAgICAgICAgICB3aGlsZSAoMCAhPT0gY3VycmVudEluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFBpY2sgYSByZW1haW5pbmcgZWxlbWVudC4uLlxuICAgICAgICAgICAgICAgICAgICByYW5kb21JbmRleCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGN1cnJlbnRJbmRleCk7XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRJbmRleCAtPSAxO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIEFuZCBzd2FwIGl0IHdpdGggdGhlIGN1cnJlbnQgZWxlbWVudC5cbiAgICAgICAgICAgICAgICAgICAgdGVtcG9yYXJ5VmFsdWUgPSBhcnJheVtjdXJyZW50SW5kZXhdO1xuICAgICAgICAgICAgICAgICAgICBhcnJheVtjdXJyZW50SW5kZXhdID0gYXJyYXlbcmFuZG9tSW5kZXhdO1xuICAgICAgICAgICAgICAgICAgICBhcnJheVtyYW5kb21JbmRleF0gPSB0ZW1wb3JhcnlWYWx1ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gYXJyYXk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgZnVuY3Rpb24gU2J5RmVlZChlbCwgaW5kZXgsIHNldHRpbmdzKSB7XG4gICAgICAgICAgICB0aGlzLmVsID0gZWw7XG4gICAgICAgICAgICB0aGlzLmluZGV4ID0gaW5kZXg7XG4gICAgICAgICAgICB0aGlzLnNldHRpbmdzID0gc2V0dGluZ3M7XG4gICAgICAgICAgICB0aGlzLnBsYWNlaG9sZGVyVVJMID0gd2luZG93LnNieS5vcHRpb25zLnBsYWNlaG9sZGVyO1xuICAgICAgICAgICAgaWYgKHNldHRpbmdzLm5hcnJvd1BsYXllcikge1xuICAgICAgICAgICAgICAgIHRoaXMucGxhY2Vob2xkZXJVUkwgPSB3aW5kb3cuc2J5Lm9wdGlvbnMucGxhY2Vob2xkZXJOYXJyb3dcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMucGxheWVyQVBJUmVhZHkgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuY29uc2VudEdpdmVuID0gc2V0dGluZ3MuY29uc2VudEdpdmVuO1xuICAgICAgICAgICAgdGhpcy5wbGF5ZXJzID0ge307XG4gICAgICAgICAgICB0aGlzLm1pbkltYWdlV2lkdGggPSAwO1xuICAgICAgICAgICAgdGhpcy5pbWFnZVJlc29sdXRpb24gPSAxNTA7XG4gICAgICAgICAgICB0aGlzLnJlc2l6ZWRJbWFnZXMgPSB7fTtcbiAgICAgICAgICAgIHRoaXMubmVlZHNSZXNpemluZyA9IFtdO1xuICAgICAgICAgICAgdGhpcy5vdXRPZlBhZ2VzID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmlzSW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMubW9zdFJlY2VudGx5TG9hZGVkUG9zdHMgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuZW1iZWRVUkwgPSAnLy93d3cueW91dHViZS1ub2Nvb2tpZS5jb20nO1xuICAgICAgICAgICAgaWYgKHNldHRpbmdzLmFsbG93Q29va2llcykge1xuICAgICAgICAgICAgICAgIHRoaXMuZW1iZWRVUkwgPSAnLy93d3cueW91dHViZS5jb20nXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgIFNieUZlZWQucHJvdG90eXBlID0ge1xuICAgICAgICAgICAgaW5pdDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdmFyIGZlZWQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGZlZWQuc2V0dGluZ3MuY29uc2VudEdpdmVuID0gZmVlZC5jaGVja0NvbnNlbnQoKTtcblxuICAgICAgICAgICAgICAgIGlmIChmZWVkLnNldHRpbmdzLmNvbnNlbnRHaXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuc2J5Lm1heWJlQWRkWVRBUEkoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoZmVlZC5zZXR0aW5ncy5ub0NETiAmJiAhZmVlZC5zZXR0aW5ncy5jb25zZW50R2l2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCQodGhpcy5lbCkuZmluZCgnLnNiX3lvdXR1YmVfaGVhZGVyJykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMuZWwpLmZpbmQoJy5zYl95b3V0dWJlX2hlYWRlcicpLmFkZENsYXNzKCdzYnlfbm9fY29uc2VudCcpXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJCh0aGlzLmVsKS5wcmV2KCcuc2JfeW91dHViZV9oZWFkZXInKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcy5lbCkucHJldignLnNiX3lvdXR1YmVfaGVhZGVyJykuYWRkQ2xhc3MoJ3NieV9ub19jb25zZW50JylcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoJCh0aGlzLmVsKS5maW5kKCcjc2J5X21vZF9lcnJvcicpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAkKHRoaXMuZWwpLnByZXBlbmQoJCh0aGlzLmVsKS5maW5kKCcjc2J5X21vZF9lcnJvcicpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3MuYWpheFBvc3RMb2FkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0TmV3UG9zdFNldCgpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWZ0ZXJJbml0aWFsSW1hZ2VzTG9hZGVkKCk7XG4gICAgICAgICAgICAgICAgICAgIC8vT25seSBjaGVjayB0aGUgd2lkdGggb25jZSB0aGUgcmVzaXplIGV2ZW50IGlzIG92ZXJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmFyIHNieV9kZWxheSA9IChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzYnlfdGltZXIgPSAwO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKHNieV9jYWxsYmFjaywgc2J5X21zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQoc2J5X3RpbWVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNieV90aW1lciA9IHNldFRpbWVvdXQoc2J5X2NhbGxiYWNrLCBzYnlfbXMpO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0pKCk7XG4gICAgICAgICAgICAgICAgalF1ZXJ5KHdpbmRvdykub24oJ3Jlc2l6ZScsZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBzYnlfZGVsYXkoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmVlZC5hZnRlclJlc2l6ZSgpO1xuICAgICAgICAgICAgICAgICAgICB9LCAxKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpbml0TGF5b3V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmluaXRHYWxsZXJ5TGF5b3V0KCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaW5pdEdhbGxlcnlMYXlvdXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHZhciAkc2VsZiA9ICQodGhpcy5lbCksXG4gICAgICAgICAgICAgICAgICBmZWVkID0gdGhpcztcbiAgICAgICAgICAgICAgICBpZiAoJHNlbGYuaGFzQ2xhc3MoJ3NieV9sYXlvdXRfZ2FsbGVyeScpICYmICRzZWxmLmZpbmQoJy5zYnlfcGxheWVyX291dGVyX3dyYXAnKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXliZVJhaXNlU2luZ2xlSW1hZ2VSZXNvbHV0aW9uKCRzZWxmLmZpbmQoJy5zYnlfcGxheWVyX291dGVyX3dyYXAnKSwgMCwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoJy5zYnlfcGxheWVyX291dGVyX3dyYXAgLnNieV92aWRlb190aHVtYm5haWwnKS5vZmYoKS5vbignY2xpY2snLGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCghZmVlZC5zZXR0aW5ncy5saWdodGJveEVuYWJsZWQgfHwgKGZlZWQuc2V0dGluZ3MubGlnaHRib3hFbmFibGVkICYmIGZlZWQuc2V0dGluZ3Mubm9DRE4pKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAoZmVlZC5zZXR0aW5ncy5ub0NETiB8fCAhZmVlZC5zZXR0aW5ncy5jb25zZW50R2l2ZW4pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCQodGhpcykuY2xvc2VzdCgnLnNieV9pdGVtJykubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiB0eXBlb2YgJCh0aGlzKS5jbG9zZXN0KCcuc2J5X2l0ZW0nKS5hdHRyKCdkYXRhLXZpZGVvLWlkJykgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuYXR0cignaHJlZicsJ2h0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9JyskKHRoaXMpLmNsb3Nlc3QoJy5zYnlfaXRlbScpLmF0dHIoJ2RhdGEtdmlkZW8taWQnKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBmZWVkLm9uVGh1bWJuYWlsQ2xpY2soJCh0aGlzKSwgdHJ1ZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgJHNlbGYuZmluZCgnLnNieV9pdGVtJykuZmlyc3QoKS5hZGRDbGFzcygnc2J5X2N1cnJlbnQnKTtcblxuICAgICAgICAgICAgICAgICAgICAkc2VsZi5vbignbW91c2VlbnRlcicsZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWZlZWQuY2FuQ3JlYXRlUGxheWVyKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoISRzZWxmLmZpbmQoJy5zYnlfcGxheWVyX291dGVyX3dyYXAgaWZyYW1lJykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNlbGYuYWRkQ2xhc3MoJ3NieV9wbGF5ZXJfYWRkZWQnKS5maW5kKCcuc2J5X3BsYXllcl9vdXRlcl93cmFwJykuYWRkQ2xhc3MoJ3NieV9wbGF5ZXJfbG9hZGluZycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoJy5zYnlfcGxheWVyX291dGVyX3dyYXAgLnNieV92aWRlb190aHVtYm5haWwnKS5maW5kKCcuc2J5X2xvYWRlcicpLnNob3coKS5yZW1vdmVDbGFzcygnc2J5X2hpZGRlbicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZlZWQuY3JlYXRlUGxheWVyKCdzYnlfcGxheWVyJytmZWVkLmluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGZlZWQucGxheWVyID09PSAndW5kZWZpbmVkJyAmJiBmZWVkLnBsYXllckVhZ2VyTG9hZGVkKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZWVkLmNyZWF0ZVBsYXllcignc2J5X3BsYXllcicrZmVlZC5pbmRleCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuc2J5U2VtaUVhZ2VyTG9hZGluZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmVlZC5jcmVhdGVQbGF5ZXIoJ3NieV9wbGF5ZXInK2ZlZWQuaW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGZlZWQuc2V0dGluZ3Mubm9DRE4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoJy5zYnlfcGxheWVyX291dGVyX3dyYXAnKS5hcHBlbmQoJzxkaXYgY2xhc3M9XCJzYnlfcGxheV9idG5cIj5cXG4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2J5X3BsYXlfYnRuX2JnXCI+PC9zcGFuPlxcbicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgICAgICAgICA8c3ZnIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGZvY3VzYWJsZT1cImZhbHNlXCIgZGF0YS1wcmVmaXg9XCJmYWJcIiBkYXRhLWljb249XCJ5b3V0dWJlXCIgcm9sZT1cImltZ1wiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDU3NiA1MTJcIiBjbGFzcz1cInN2Zy1pbmxpbmUtLWZhIGZhLXlvdXR1YmUgZmEtdy0xOFwiPjxwYXRoIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBkPVwiTTU0OS42NTUgMTI0LjA4M2MtNi4yODEtMjMuNjUtMjQuNzg3LTQyLjI3Ni00OC4yODQtNDguNTk3QzQ1OC43ODEgNjQgMjg4IDY0IDI4OCA2NFMxMTcuMjIgNjQgNzQuNjI5IDc1LjQ4NmMtMjMuNDk3IDYuMzIyLTQyLjAwMyAyNC45NDctNDguMjg0IDQ4LjU5Ny0xMS40MTIgNDIuODY3LTExLjQxMiAxMzIuMzA1LTExLjQxMiAxMzIuMzA1czAgODkuNDM4IDExLjQxMiAxMzIuMzA1YzYuMjgxIDIzLjY1IDI0Ljc4NyA0MS41IDQ4LjI4NCA0Ny44MjFDMTE3LjIyIDQ0OCAyODggNDQ4IDI4OCA0NDhzMTcwLjc4IDAgMjEzLjM3MS0xMS40ODZjMjMuNDk3LTYuMzIxIDQyLjAwMy0yNC4xNzEgNDguMjg0LTQ3LjgyMSAxMS40MTItNDIuODY3IDExLjQxMi0xMzIuMzA1IDExLjQxMi0xMzIuMzA1czAtODkuNDM4LTExLjQxMi0xMzIuMzA1em0tMzE3LjUxIDIxMy41MDhWMTc1LjE4NWwxNDIuNzM5IDgxLjIwNS0xNDIuNzM5IDgxLjIwMXpcIiBjbGFzcz1cIlwiPjwvcGF0aD48L3N2Zz4gICAgICAgICAgICAgICAgICAgIDwvZGl2PicpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY3JlYXRlUGxheWVyOiBmdW5jdGlvbihwbGF5ZXJJRCx2aWRlb0lELGF1dG9wbGF5LGFyZ3MpIHtcbiAgICAgICAgICAgICAgICB2YXIgJHNlbGYgPSAkKHRoaXMuZWwpLFxuICAgICAgICAgICAgICAgICAgZmVlZCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdmlkZW9JRCA9IHR5cGVvZiB2aWRlb0lEICE9PSAndW5kZWZpbmVkJyA/IHZpZGVvSUQgOiB0aGlzLmdldFZpZGVvSUQoJHNlbGYuZmluZCgnLnNieV9pdGVtJykuZmlyc3QoKSk7XG4gICAgICAgICAgICAgICAgYXV0b3BsYXkgPSB0eXBlb2YgYXV0b3BsYXkgIT09ICd1bmRlZmluZWQnID8gYXV0b3BsYXkgOiAwO1xuXG4gICAgICAgICAgICAgICAgLy8gZG8gbm90IGNyZWF0ZSBwbGF5ZXIgaW4gY3VzdG9taXplciBwcmV2aWV3XG4gICAgICAgICAgICAgICAgaWYgKCBzYnlPcHRpb25zLmlzQ3VzdG9taXplciAhPT0gdW5kZWZpbmVkICYmIHNieU9wdGlvbnMuaXNDdXN0b21pemVyICkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBhcmdzID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICBhcmdzID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaG9zdDogd2luZG93LmxvY2F0aW9uLnByb3RvY29sICsgZmVlZC5lbWJlZFVSTCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZGVvSWQ6IHZpZGVvSUQsXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGF5ZXJWYXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZXN0YnJhbmRpbmc6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsOiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9wbGF5OiBhdXRvcGxheVxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGFyZ3MuZXZlbnRzID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICBhcmdzLmV2ZW50cyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICdvblJlYWR5JzogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoJy5zYnlfcGxheWVyX291dGVyX3dyYXAnKS5yZW1vdmVDbGFzcygnc2J5X3BsYXllcl9sb2FkaW5nJykuZmluZCgnLnNieV92aWRlb190aHVtYm5haWwnKS5jc3MoJ3otaW5kZXgnLCAtMSkuZmluZCgnLnNieV9sb2FkZXInKS5oaWRlKCkuYWRkQ2xhc3MoJ3NieV9oaWRkZW4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJCgnIycgKyBwbGF5ZXJJRCkubGVuZ3RoICYmICQoJyMnICsgcGxheWVySUQpLmNsb3Nlc3QoJy5zYnlfdmlkZW9fdGh1bWJuYWlsX3dyYXAnKS5maW5kKCcuc2J5X3ZpZGVvX3RodW1ibmFpbCcpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCcjJyArIHBsYXllcklEKS5jbG9zZXN0KCcuc2J5X3ZpZGVvX3RodW1ibmFpbF93cmFwJykuZmluZCgnLnNieV92aWRlb190aHVtYm5haWwnKS5mYWRlVG8oMCwgJ3Nsb3cnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmNzcygnei1pbmRleCcsIC0xKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuZmluZCgnLnNieV9sb2FkZXInKS5oaWRlKCkuYWRkQ2xhc3MoJ3NieV9oaWRkZW4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuY2xvc2VzdCgnLnNieV9pdGVtJykucmVtb3ZlQ2xhc3MoJ3NieV9wbGF5ZXJfbG9hZGluZycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGV2dCA9IGpRdWVyeS5FdmVudCgnc2J5YWZ0ZXJwbGF5ZXJyZWFkeScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2dC5mZWVkID0gZmVlZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldnQucGxheWVyID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBqUXVlcnkod2luZG93KS50cmlnZ2VyKGV2dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgJ29uU3RhdGVDaGFuZ2UnOiBmdW5jdGlvbihkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNlbGYuZmluZCgnLnNieV9wbGF5ZXJfb3V0ZXJfd3JhcCcpLnJlbW92ZUNsYXNzKCdzYnlfcGxheWVyX2xvYWRpbmcnKS5maW5kKCcuc2J5X3ZpZGVvX3RodW1ibmFpbCcpLmNzcygnei1pbmRleCcsIC0xKS5maW5kKCcuc2J5X2xvYWRlcicpLmhpZGUoKS5hZGRDbGFzcygnc2J5X2hpZGRlbicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZlZWQuYWZ0ZXJTdGF0ZUNoYW5nZShwbGF5ZXJJRCx2aWRlb0lELGRhdGEsJCgnIycgKyBwbGF5ZXJJRCkuY2xvc2VzdCgnLnNieV92aWRlb190aHVtYm5haWxfd3JhcCcpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YS5kYXRhICE9PSAxKSByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBmZWVkLnBsYXllcnMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoJy5zYnlfaXRlbScpLmVhY2goZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbVZpZElEID0gZmVlZC5nZXRWaWRlb0lEKCQodGhpcykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCQodGhpcykuZmluZCgnaWZyYW1lJykubGVuZ3RoICYmIChpdGVtVmlkSUQgIT09IHZpZGVvSUQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBmZWVkLnBsYXllcnNbaXRlbVZpZElEXSAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIGZlZWQucGxheWVyc1tpdGVtVmlkSURdLnBhdXNlVmlkZW8gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmVlZC5wbGF5ZXJzW2l0ZW1WaWRJRF0ucGF1c2VWaWRlbygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuc2J5RWFnZXJMb2FkaW5nKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBuZXdQbGF5ZXIgPSBZVC5nZXQocGxheWVySUQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBuZXdQbGF5ZXIgPSBuZXcgd2luZG93LllULlBsYXllcihwbGF5ZXJJRCwgYXJncyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5tYXliZUFkZENUQShwbGF5ZXJJRCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoJHNlbGYuaGFzQ2xhc3MoJ3NieV9sYXlvdXRfbGlzdCcpICYmIHR5cGVvZiB0aGlzLnBsYXllcnNbdmlkZW9JRF0gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGxheWVyc1t2aWRlb0lEXSA9IG5ld1BsYXllcjtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB0aGlzLnBsYXllciA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wbGF5ZXIgPSBuZXdQbGF5ZXI7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdmFyIGV2dCA9IGpRdWVyeS5FdmVudCgnc2J5YWZ0ZXJwbGF5ZXJjcmVhdGVkJyk7XG4gICAgICAgICAgICAgICAgZXZ0LmZlZWQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGpRdWVyeSh3aW5kb3cpLnRyaWdnZXIoZXZ0KTtcblxuICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoJy5zYnlfcGxheWVyX291dGVyX3dyYXAgLnNieV9wbGF5X2J0bicpLnJlbW92ZSgpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ld1BsYXllcjtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhZnRlclN0YXRlQ2hhbmdlOiBmdW5jdGlvbihwbGF5ZXJJRCx2aWRlb0lELGRhdGEsJHBsYXllcikge1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFmdGVySW5pdGlhbEltYWdlc0xvYWRlZDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbml0TGF5b3V0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkTW9yZUJ1dHRvbkluaXQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmhpZGVFeHRyYUl0ZW1zRm9yV2lkdGgoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmJlZm9yZU5ld0ltYWdlc1JldmVhbGVkKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXZlYWxOZXdJbWFnZXMoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmFmdGVyTmV3SW1hZ2VzUmV2ZWFsZWQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmFmdGVyRmVlZFNldCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2l6ZVBsYXllcigpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2l6ZUl0ZW1zKCk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3MuY29uc2VudEdpdmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXBwbHlGdWxsRmVhdHVyZXMoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZUZlYXR1cmVzKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFmdGVyUmVzaXplOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldEltYWdlSGVpZ2h0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRJbWFnZVJlc29sdXRpb24oKTtcbiAgICAgICAgICAgICAgICB0aGlzLm1heWJlUmFpc2VJbWFnZVJlc29sdXRpb24oKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNldEltYWdlU2l6ZUNsYXNzKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYWZ0ZXJMb2FkTW9yZUNsaWNrZWQ6IGZ1bmN0aW9uKCRidXR0b24pIHtcbiAgICAgICAgICAgICAgICAkYnV0dG9uLmZpbmQoJy5zYnlfbG9hZGVyJykucmVtb3ZlQ2xhc3MoJ3NieV9oaWRkZW4nKTtcbiAgICAgICAgICAgICAgICAkYnV0dG9uLmZpbmQoJy5zYnlfYnRuX3RleHQnKS5hZGRDbGFzcygnc2J5X2hpZGRlbicpO1xuICAgICAgICAgICAgICAgICRidXR0b24uY2xvc2VzdCgnLnNiX3lvdXR1YmUnKS5maW5kKCcuc2J5X251bV9kaWZmX2hpZGUnKS5hZGRDbGFzcygnc2J5X3RyYW5zaXRpb24nKS5yZW1vdmVDbGFzcygnc2J5X251bV9kaWZmX2hpZGUnKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhZnRlck5ld0ltYWdlc0xvYWRlZDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdmFyICRzZWxmID0gJCh0aGlzLmVsKSxcbiAgICAgICAgICAgICAgICAgIGZlZWQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoaXMuYmVmb3JlTmV3SW1hZ2VzUmV2ZWFsZWQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJldmVhbE5ld0ltYWdlcygpO1xuICAgICAgICAgICAgICAgIHRoaXMuYWZ0ZXJOZXdJbWFnZXNSZXZlYWxlZCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2l6ZVBsYXllcigpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2l6ZUl0ZW1zKCk7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vSGlkZSB0aGUgbG9hZGVyIGluIHRoZSBsb2FkIG1vcmUgYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoJy5zYnlfbG9hZGVyJykuYWRkQ2xhc3MoJ3NieV9oaWRkZW4nKTtcbiAgICAgICAgICAgICAgICAgICAgJHNlbGYuZmluZCgnLnNieV9idG5fdGV4dCcpLnJlbW92ZUNsYXNzKCdzYnlfaGlkZGVuJyk7XG4gICAgICAgICAgICAgICAgICAgIGZlZWQubWF5YmVSYWlzZUltYWdlUmVzb2x1dGlvbigpO1xuICAgICAgICAgICAgICAgIH0sIDEpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnNldHRpbmdzLmNvbnNlbnRHaXZlbikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGx5RnVsbEZlYXR1cmVzKCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVGZWF0dXJlcygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBiZWZvcmVOZXdJbWFnZXNSZXZlYWxlZDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRJbWFnZUhlaWdodCgpO1xuICAgICAgICAgICAgICAgIHRoaXMubWF5YmVSYWlzZUltYWdlUmVzb2x1dGlvbih0cnVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNldEltYWdlU2l6ZUNsYXNzKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYWZ0ZXJGZWVkU2V0OiBmdW5jdGlvbigpIHtcblxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNpemVQbGF5ZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHZhciAkc2VsZiA9ICQodGhpcy5lbCksXG4gICAgICAgICAgICAgICAgICBmZWVkID0gdGhpcztcbiAgICAgICAgICAgICAgICBpZiAoJHNlbGYuaGFzQ2xhc3MoJ3NieV9sYXlvdXRfZ2FsbGVyeScpKSB7XG4gICAgICAgICAgICAgICAgICAgICRwbGF5ZXJUaHVtYm5haWwgPSAkc2VsZi5maW5kKCcuc2J5X3BsYXllcl9pdGVtJykuZmluZCgnLnNieV9wbGF5ZXJfdmlkZW9fdGh1bWJuYWlsJyk7XG4gICAgICAgICAgICAgICAgICAgIHZhciBwbGF5ZXJXaWR0aCA9ICRwbGF5ZXJUaHVtYm5haWwuaW5uZXJXaWR0aCgpLFxuICAgICAgICAgICAgICAgICAgICAgIG5ld1BsYXllckhlaWdodCA9IE1hdGguZmxvb3IocGxheWVyV2lkdGggKiA5IC8gMTYpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmVlZC5zZXR0aW5ncy5uYXJyb3dQbGF5ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1BsYXllckhlaWdodCA9IE1hdGguZmxvb3IocGxheWVyV2lkdGggKiAzIC8gNCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgJHBsYXllclRodW1ibmFpbC5jc3MoJ2hlaWdodCcsbmV3UGxheWVySGVpZ2h0KydweCcpLmNzcygnb3ZlcmZsb3cnLCdoaWRkZW4nKTtcblxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJHNlbGYuaGFzQ2xhc3MoJ3NieV9sYXlvdXRfbGlzdCcpKSB7XG4gICAgICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoJy5zYnlfaXRlbScpLmVhY2goZnVuY3Rpb24oKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICRwbGF5ZXJUaHVtYm5haWwgPSAkKHRoaXMpLmZpbmQoJy5zYnlfaXRlbV92aWRlb190aHVtYm5haWwnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwbGF5ZXJXaWR0aCA9ICRwbGF5ZXJUaHVtYm5haWwuaW5uZXJXaWR0aCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdQbGF5ZXJIZWlnaHQgPSBNYXRoLmZsb29yKHBsYXllcldpZHRoICogOSAvIDE2KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmZWVkLnNldHRpbmdzLm5hcnJvd1BsYXllcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1BsYXllckhlaWdodCA9IE1hdGguZmxvb3IocGxheWVyV2lkdGggKiAzIC8gNCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAkcGxheWVyVGh1bWJuYWlsLmNzcygnaGVpZ2h0JyxuZXdQbGF5ZXJIZWlnaHQrJ3B4JykuY3NzKCdvdmVyZmxvdycsJ2hpZGRlbicpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2l6ZUl0ZW1zOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB2YXIgJHNlbGYgPSAkKHRoaXMuZWwpLFxuICAgICAgICAgICAgICAgICAgZmVlZCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgaWYgKCEkc2VsZi5oYXNDbGFzcygnc2J5X2xheW91dF9saXN0JykpIHtcbiAgICAgICAgICAgICAgICAgICAgJHNlbGYuZmluZCgnLnNieV9pdGVtJykuZmluZCgnLnNieV9pdGVtX3ZpZGVvX3RodW1ibmFpbCcpLmVhY2goZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS5oYXNDbGFzcygnc2J5X2ltZ0xpcXVpZF9yZWFkeScpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRodW1iV2lkdGggPSAkKHRoaXMpLmlubmVyV2lkdGgoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1RodW1iSGVpZ2h0ID0gTWF0aC5mbG9vcih0aHVtYldpZHRoICogOSAvIDE2KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmNzcygnaGVpZ2h0JyxuZXdUaHVtYkhlaWdodCsncHgnKS5jc3MoJ292ZXJmbG93JywnaGlkZGVuJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJldmVhbE5ld0ltYWdlczogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdmFyICRzZWxmID0gJCh0aGlzLmVsKSxcbiAgICAgICAgICAgICAgICAgIGZlZWQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoaXMuYXBwbHlJbWFnZUxpcXVpZCgpO1xuXG4gICAgICAgICAgICAgICAgLy8gQ2FsbCBDdXN0b20gSlMgaWYgaXQgZXhpc3RzXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBzYnlDdXN0b21KUyA9PSAnZnVuY3Rpb24nKSBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IHNieUN1c3RvbUpTKCk7IH0sIDEwMCk7XG5cbiAgICAgICAgICAgICAgICAkc2VsZi5maW5kKCcuc2J5LXNjcmVlbnJlYWRlcicpLmZpbmQoJ2ltZycpLnJlbW92ZSgpO1xuXG4gICAgICAgICAgICAgICAgJHNlbGYuZmluZCgnLnNieV9pdGVtLnNieV9uZXcnKS5lYWNoKGZ1bmN0aW9uIChpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgJHNlbGYgPSBqUXVlcnkodGhpcyk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy9QaG90byBsaW5rc1xuICAgICAgICAgICAgICAgICAgICAvL0lmIGxpZ2h0Ym94IGlzIGRpc2FibGVkXG4gICAgICAgICAgICAgICAgICAgIHZpZGVvSUQgPSAkc2VsZi5hdHRyKCdkYXRhLXZpZGVvLWlkJyk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5zYnlFYWdlckxvYWRpbmcgJiYgZmVlZC5jYW5DcmVhdGVQbGF5ZXIoKSAmJiAkKCcjc2J5X3BsYXllcl8nK3ZpZGVvSUQpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGxheWVyID0gbmV3IFlULlBsYXllcignc2J5X3BsYXllcl8nK3ZpZGVvSUQsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICcxMDAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWRlb0lkOiB2aWRlb0lELFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYXllclZhcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZXN0YnJhbmRpbmc6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbDogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b3BsYXk6IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50czoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnb25TdGF0ZUNoYW5nZSc6IGZ1bmN0aW9uKGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB2aWRlb0lEID0gZGF0YS50YXJnZXQuZ2V0VmlkZW9EYXRhKClbJ3ZpZGVvX2lkJ107XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YS5kYXRhICE9PSAxKSByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2VsZi5maW5kKCcuc2J5X2l0ZW0nKS5lYWNoKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBpdGVtVmlkSUQgPSBqUXVlcnkodGhpcykuYXR0cignZGF0YS12aWRlby1pZCcpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGpRdWVyeSh0aGlzKS5maW5kKCdpZnJhbWUnKS5sZW5ndGggJiYgalF1ZXJ5KGRhdGEudGFyZ2V0LmEpLmF0dHIoJ2lkJykgIT09IGpRdWVyeSh0aGlzKS5maW5kKCdpZnJhbWUnKS5hdHRyKCdpZCcpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFlULmdldCgnc2J5X3BsYXllcl8nK2l0ZW1WaWRJRCkucGF1c2VWaWRlbygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAkc2VsZi5maW5kKCcuc2J5X3ZpZGVvX3RodW1ibmFpbCcpLm9uKCdtb3VzZWVudGVyJyxmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZlZWQub25UaHVtYm5haWxFbnRlcigkKHRoaXMpLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAkc2VsZi5maW5kKCcuc2J5X3BsYXllcl93cmFwJykub24oJ21vdXNlbGVhdmUnLGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmVlZC5vblRodW1ibmFpbExlYXZlKCQodGhpcyksIGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIC8vaW5pdCBjbGlja1xuICAgICAgICAgICAgICAgICAgICAkc2VsZi5maW5kKCcuc2J5X3ZpZGVvX3RodW1ibmFpbCcpLm9uKCdjbGljaycsZnVuY3Rpb24oZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoIWZlZWQuc2V0dGluZ3MubGlnaHRib3hFbmFibGVkIHx8IChmZWVkLnNldHRpbmdzLmxpZ2h0Ym94RW5hYmxlZCAmJiBmZWVkLnNldHRpbmdzLm5vQ0ROKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgKGZlZWQuc2V0dGluZ3Mubm9DRE4gfHwgIWZlZWQuc2V0dGluZ3MuY29uc2VudEdpdmVuKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkKHRoaXMpLmNsb3Nlc3QoJy5zYnlfaXRlbScpLmxlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgdHlwZW9mICQodGhpcykuY2xvc2VzdCgnLnNieV9pdGVtJykuYXR0cignZGF0YS12aWRlby1pZCcpICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmF0dHIoJ2hyZWYnLCdodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PScrJCh0aGlzKS5jbG9zZXN0KCcuc2J5X2l0ZW0nKS5hdHRyKCdkYXRhLXZpZGVvLWlkJykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZmVlZC5vblRodW1ibmFpbENsaWNrKCQodGhpcyksIGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gbGlnaHRib3hcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZlZWQuc2V0dGluZ3MubGlnaHRib3hFbmFibGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkc2VsZi5maW5kKCcuc2J5X3ZpZGVvX3RodW1ibmFpbCcpLmF0dHIoJ2RhdGEtc2J5LWxpZ2h0Ym94JyxmZWVkLmluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygc2J5T3B0aW9ucyAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIHNieU9wdGlvbnMubGlnaHRib3hQbGFjZWhvbGRlciAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmVlZC5zZXR0aW5ncy5uYXJyb3dQbGF5ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNlbGYuZmluZCgnLnNieV92aWRlb190aHVtYm5haWwnKS5hdHRyKCdocmVmJyxzYnlPcHRpb25zLmxpZ2h0Ym94UGxhY2Vob2xkZXJOYXJyb3cpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoJy5zYnlfdmlkZW9fdGh1bWJuYWlsJykuYXR0cignaHJlZicsc2J5T3B0aW9ucy5saWdodGJveFBsYWNlaG9sZGVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZmVlZC5hZnRlckl0ZW1SZXZlYWxlZCgkc2VsZik7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gbm8gaW5mb1xuICAgICAgICAgICAgICAgICAgICBpZiAoJHNlbGYuZmluZCgnLnNieV9pbmZvX2l0ZW0nKS50ZXh0KCkudHJpbSgpID09PSAnJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgJHNlbGYuZmluZCgnLnNieV9pbmZvX2l0ZW0nKS5hZGRDbGFzcygnc2J5X25vX3NwYWNlJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTsgLy9FbmQgLnNieV9pdGVtIGVhY2hcblxuICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoJy5zYnlfcGxheWVyX2l0ZW0nKS5lYWNoKGZ1bmN0aW9uIChpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgJHNlbGYgPSBqUXVlcnkodGhpcyk7XG5cbiAgICAgICAgICAgICAgICAgICAgZmVlZC5hZnRlckl0ZW1SZXZlYWxlZCgkc2VsZik7XG4gICAgICAgICAgICAgICAgfSk7IC8vRW5kIC5zYnlfaXRlbSBlYWNoXG5cbiAgICAgICAgICAgICAgICAvL1JlbW92ZSB0aGUgbmV3IGNsYXNzIGFmdGVyIDUwMG1zLCBvbmNlIHRoZSBzb3J0aW5nIGlzIGRvbmVcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgJHNlbGYuZmluZCgnLnNieV9pdGVtLnNieV9uZXcnKS5yZW1vdmVDbGFzcygnc2J5X25ldycpO1xuICAgICAgICAgICAgICAgICAgICAvL0xvb3AgdGhyb3VnaCBpdGVtcyBhbmQgcmVtb3ZlIGNsYXNzIHRvIHJldmVhbCB0aGVtXG4gICAgICAgICAgICAgICAgICAgIHZhciB0aW1lID0gMSxcbiAgICAgICAgICAgICAgICAgICAgICBudW0gPSAkc2VsZi5maW5kKCcuc2J5X3RyYW5zaXRpb24nKS5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoJy5zYnlfdHJhbnNpdGlvbicpLmVhY2goZnVuY3Rpb24oaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciAkc2J5X2l0ZW1fdHJhbnNpdGlvbl9lbCA9IGpRdWVyeSh0aGlzKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCggZnVuY3Rpb24oKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2J5X2l0ZW1fdHJhbnNpdGlvbl9lbC5yZW1vdmVDbGFzcygnc2J5X3RyYW5zaXRpb24nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIHRpbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy90aW1lICs9IDEwO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9LCAxKTtcblxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFmdGVySXRlbVJldmVhbGVkOiBmdW5jdGlvbigpIHtcblxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFmdGVyTmV3SW1hZ2VzUmV2ZWFsZWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHRoaXMubGlzdGVuRm9yVmlzaWJpbGl0eUNoYW5nZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VuZE5lZWRzUmVzaXppbmdUb1NlcnZlcigpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VuZENoZWNrV1BQb3N0c1RvU2VydmVyKCk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnNldHRpbmdzLmltYWdlTG9hZEVuYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgJCgnLnNieV9ub19yZXNyYWlzZScpLnJlbW92ZUNsYXNzKCdzYnlfbm9fcmVzcmFpc2UnKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB2YXIgZXZ0ID0gJC5FdmVudCgnc2J5YWZ0ZXJpbWFnZXNsb2FkZWQnKTtcbiAgICAgICAgICAgICAgICBldnQuZWwgPSAkKHRoaXMuZWwpO1xuICAgICAgICAgICAgICAgICQod2luZG93KS50cmlnZ2VyKGV2dCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0UmVzaXplZEltYWdlczogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGlmICgkKHRoaXMuZWwpLmZpbmQoJy5zYnlfcmVzaXplZF9pbWFnZV9kYXRhJykubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAmJiB0eXBlb2YgJCh0aGlzLmVsKS5maW5kKCcuc2J5X3Jlc2l6ZWRfaW1hZ2VfZGF0YScpLmF0dHIoJ2RhdGEtcmVzaXplZCcpICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICAgICAgICAgICAgJiYgJCh0aGlzLmVsKS5maW5kKCcuc2J5X3Jlc2l6ZWRfaW1hZ2VfZGF0YScpLmF0dHIoJ2RhdGEtcmVzaXplZCcpLmluZGV4T2YoJ3tcIicpID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzaXplZEltYWdlcyA9IEpTT04ucGFyc2UoJCh0aGlzLmVsKS5maW5kKCcuc2J5X3Jlc2l6ZWRfaW1hZ2VfZGF0YScpLmF0dHIoJ2RhdGEtcmVzaXplZCcpKTtcbiAgICAgICAgICAgICAgICAgICAgJCh0aGlzLmVsKS5maW5kKCcuc2J5X3Jlc2l6ZWRfaW1hZ2VfZGF0YScpLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZW5kTmVlZHNSZXNpemluZ1RvU2VydmVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB2YXIgZmVlZCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgaWYgKGZlZWQubmVlZHNSZXNpemluZy5sZW5ndGggPiAwICYmIGZlZWQuc2V0dGluZ3MucmVzaXppbmdFbmFibGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBpdGVtT2Zmc2V0ID0gJCh0aGlzLmVsKS5maW5kKCcuc2J5X2l0ZW0nKS5sZW5ndGg7XG5cbiAgICAgICAgICAgICAgICAgICAgdmFyIHN1Ym1pdERhdGEgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb246ICdzYnlfcmVzaXplZF9pbWFnZXNfc3VibWl0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRzX3Jlc2l6aW5nOiBmZWVkLm5lZWRzUmVzaXppbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6IGl0ZW1PZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgICAgICBmZWVkX2lkOiBmZWVkLnNldHRpbmdzLmZlZWRJRCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOiBmZWVkLmxvY2F0aW9uR3Vlc3MoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc3RfaWQ6IGZlZWQuc2V0dGluZ3MucG9zdElELFxuICAgICAgICAgICAgICAgICAgICAgICAgYXR0czogZmVlZC5zZXR0aW5ncy5zaG9ydENvZGVBdHRzLFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB2YXIgb25TdWNjZXNzID0gZnVuY3Rpb24oZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEudHJpbSgpLmluZGV4T2YoJ3snKSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXNwb25zZSA9IEpTT04ucGFyc2UoZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZlZWQuc2V0dGluZ3MuZGVidWdFbmFibGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIHNieUFqYXgoc3VibWl0RGF0YSxvblN1Y2Nlc3MpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZW5kQ2hlY2tXUFBvc3RzVG9TZXJ2ZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHZhciBmZWVkID0gdGhpcztcbiAgICAgICAgICAgICAgICBpZiAoZmVlZC5zZXR0aW5ncy5jaGVja1dQUG9zdHMgfHwgZmVlZC5zZXR0aW5ncy5zaW5nbGVDaGVja1Bvc3RzKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBmZWVkSUQgPSB0eXBlb2YgZmVlZC5zZXR0aW5ncy5mZWVkSUQgIT09ICd1bmRlZmluZWQnID8gZmVlZC5zZXR0aW5ncy5mZWVkSUQgOiAnc2J5X3NpbmdsZScsXG4gICAgICAgICAgICAgICAgICAgICAgcG9zdHMgPSBmZWVkLm1vc3RSZWNlbnRseUxvYWRlZFBvc3RzO1xuICAgICAgICAgICAgICAgICAgICBmZWVkLm1vc3RSZWNlbnRseUxvYWRlZFBvc3RzID0gW107XG4gICAgICAgICAgICAgICAgICAgIHZhciBzdWJtaXREYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiAnc2J5X2NoZWNrX3dwX3N1Ym1pdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBmZWVkX2lkOiBmZWVkSUQsXG4gICAgICAgICAgICAgICAgICAgICAgICBhdHRzOiBmZWVkLnNldHRpbmdzLnNob3J0Q29kZUF0dHMsXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjogZmVlZC5sb2NhdGlvbkd1ZXNzKCksXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3N0X2lkOiBmZWVkLnNldHRpbmdzLnBvc3RJRCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldDogISAkKHRoaXMuZWwpLmhhc0NsYXNzKCdzYnlfbGF5b3V0X2Nhcm91c2VsJykgPyAkKHRoaXMuZWwpLmZpbmQoJy5zYnlfaXRlbScpLmxlbmd0aCA6IE1hdGguZmxvb3IoKCQodGhpcy5lbCkuZmluZCgnLnNieV9pdGVtJykubGVuZ3RoIC8gMikgLTEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zdHM6IHBvc3RzXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIHZhciBvblN1Y2Nlc3MgPSBmdW5jdGlvbihkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YS50cmltKCkuaW5kZXhPZigneycpID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gSlNPTi5wYXJzZShkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmVlZC5zZXR0aW5ncy5kZWJ1Z0VuYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZWVkLmFmdGVyU2VuZENoZWNrV1BQb3N0c1RvU2VydmVyKHJlc3BvbnNlKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBzYnlBamF4KHN1Ym1pdERhdGEsb25TdWNjZXNzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYWZ0ZXJTZW5kQ2hlY2tXUFBvc3RzVG9TZXJ2ZXI6IGZ1bmN0aW9uIChyZXNwb25zZSkge1xuXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbG9hZE1vcmVCdXR0b25Jbml0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyICRzZWxmID0gJCh0aGlzLmVsKSxcbiAgICAgICAgICAgICAgICAgIGZlZWQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoJy5zYnlfZm9vdGVyIC5zYnlfbG9hZF9idG4nKS5vZmYoKS5vbignY2xpY2snLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGZlZWQuYWZ0ZXJMb2FkTW9yZUNsaWNrZWQoalF1ZXJ5KHRoaXMpKTtcbiAgICAgICAgICAgICAgICAgICAgZmVlZC5nZXROZXdQb3N0U2V0KCk7XG4gICAgICAgICAgICAgICAgfSk7IC8vRW5kIGNsaWNrIGV2ZW50XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0TmV3UG9zdFNldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHZhciAkc2VsZiA9ICQodGhpcy5lbCksXG4gICAgICAgICAgICAgICAgICBmZWVkID0gdGhpcztcbiAgICAgICAgICAgICAgICB2YXIgaXRlbU9mZnNldCA9ICRzZWxmLmZpbmQoJy5zYnlfaXRlbScpLmxlbmd0aCxcbiAgICAgICAgICAgICAgICAgIHN1Ym1pdERhdGEgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiAnc2J5X2xvYWRfbW9yZV9jbGlja2VkJyxcbiAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6IGl0ZW1PZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgICAgZmVlZF9pZDogZmVlZC5zZXR0aW5ncy5mZWVkSUQsXG4gICAgICAgICAgICAgICAgICAgICAgYXR0czogZmVlZC5zZXR0aW5ncy5zaG9ydENvZGVBdHRzLFxuICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOiBmZWVkLmxvY2F0aW9uR3Vlc3MoKSxcbiAgICAgICAgICAgICAgICAgICAgICBwb3N0X2lkOiBmZWVkLnNldHRpbmdzLnBvc3RJRCxcbiAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50X3Jlc29sdXRpb246IGZlZWQuaW1hZ2VSZXNvbHV0aW9uXG4gICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHZhciBvblN1Y2Nlc3MgPSBmdW5jdGlvbiAoZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YS50cmltKCkuaW5kZXhPZigneycpID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSBKU09OLnBhcnNlKGRhdGEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1dQUG9zdHMgPSB0eXBlb2YgcmVzcG9uc2UuZmVlZFN0YXR1cy5jaGVja1dQUG9zdHMgIT09ICd1bmRlZmluZWQnID8gcmVzcG9uc2UuZmVlZFN0YXR1cy5jaGVja1dQUG9zdHMgOiBmYWxzZTs7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmVlZC5zZXR0aW5ncy5kZWJ1Z0VuYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2hlY2tXUFBvc3RzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmVlZC5zZXR0aW5ncy5jaGVja1dQUG9zdHMgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZWVkLnNldHRpbmdzLmNoZWNrV1BQb3N0cyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZmVlZC5hcHBlbmROZXdQb3N0cyhyZXNwb25zZS5odG1sKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZlZWQuYWRkUmVzaXplZEltYWdlcyhyZXNwb25zZS5yZXNpemVkSW1hZ2VzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmZWVkLnNldHRpbmdzLmFqYXhQb3N0TG9hZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZlZWQuc2V0dGluZ3MuYWpheFBvc3RMb2FkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmVlZC5hZnRlckluaXRpYWxJbWFnZXNMb2FkZWQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmVlZC5hZnRlck5ld0ltYWdlc0xvYWRlZCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc3BvbnNlLmZlZWRTdGF0dXMuc2hvdWxkUGFnaW5hdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZWVkLm91dE9mUGFnZXMgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoJy5zYnlfbG9hZF9idG4nKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZlZWQub3V0T2ZQYWdlcyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAkKCcuc2J5X25vX2pzJykucmVtb3ZlQ2xhc3MoJ3NieV9ub19qcycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgb3BlbkNvbW1lbnRzKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgc2J5QWpheChzdWJtaXREYXRhLCBvblN1Y2Nlc3MpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFwcGVuZE5ld1Bvc3RzOiBmdW5jdGlvbiAobmV3UG9zdHNIdG1sKSB7XG4gICAgICAgICAgICAgICAgdmFyICRzZWxmID0gJCh0aGlzLmVsKSxcbiAgICAgICAgICAgICAgICAgIGZlZWQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGlmICgkc2VsZi5maW5kKCcuc2J5X2l0ZW1zX3dyYXAgLnNieV9pdGVtJykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoJy5zYnlfaXRlbXNfd3JhcCAuc2J5X2l0ZW0nKS5sYXN0KCkuYWZ0ZXIobmV3UG9zdHNIdG1sKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAkc2VsZi5maW5kKCcuc2J5X2l0ZW1zX3dyYXAnKS5hcHBlbmQobmV3UG9zdHNIdG1sKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYWRkUmVzaXplZEltYWdlczogZnVuY3Rpb24gKHJlc2l6ZWRJbWFnZXNUb0FkZCkge1xuICAgICAgICAgICAgICAgIGZvciAodmFyIGltYWdlSUQgaW4gcmVzaXplZEltYWdlc1RvQWRkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzaXplZEltYWdlc1tpbWFnZUlEXSA9IHJlc2l6ZWRJbWFnZXNUb0FkZFtpbWFnZUlEXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0SW1hZ2VIZWlnaHQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG1heWJlUmFpc2VTaW5nbGVJbWFnZVJlc29sdXRpb246IGZ1bmN0aW9uICgkaXRlbSwgaW5kZXgsIGZvcmNlQ2hhbmdlKSB7XG4gICAgICAgICAgICAgICAgdmFyIGZlZWQgPSB0aGlzLFxuICAgICAgICAgICAgICAgICAgaW1nU3JjU2V0ID0gZmVlZC5nZXRJbWFnZVVybHMoJGl0ZW0pLFxuICAgICAgICAgICAgICAgICAgY3VycmVudFVybCA9ICRpdGVtLmZpbmQoJy5zYnlfdmlkZW9fdGh1bWJuYWlsID4gaW1nJykuYXR0cignc3JjJyksXG4gICAgICAgICAgICAgICAgICBjdXJyZW50UmVzID0gMTUwLFxuICAgICAgICAgICAgICAgICAgYXNwZWN0UmF0aW8gPSAxLCAvLyBhbGwgdGh1bWJuYWlscyBhcmUgb3JpZW50ZWQgdGhlIHNhbWUgc28gdGhlIGJlc3QgY2FsY3VsYXRpb24gdXNlcyAxXG4gICAgICAgICAgICAgICAgICBmb3JjZUNoYW5nZSA9IHR5cGVvZiBmb3JjZUNoYW5nZSAhPT0gJ3VuZGVmaW5lZCcgPyBmb3JjZUNoYW5nZSA6IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgaWYgKCRpdGVtLmhhc0NsYXNzKCdzYnlfbm9fcmVzcmFpc2UnKSAgIHx8XG4gICAgICAgICAgICAgICAgICAoIWZlZWQuc2V0dGluZ3MuY29uc2VudEdpdmVuICYmIGZlZWQuc2V0dGluZ3Mubm9DRE4pICkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJC5lYWNoKGltZ1NyY1NldCwgZnVuY3Rpb24gKGluZGV4LCB2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT09IGN1cnJlbnRVcmwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRSZXMgPSBwYXJzZUludChpbmRleCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgaW1hZ2UgaGFzIGFscmVhZHkgYmVlbiBjaGFuZ2VkIHRvIGFuIGV4aXN0aW5nIHJlYWwgc291cmNlLCBkb24ndCBmb3JjZSB0aGUgY2hhbmdlXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JjZUNoYW5nZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgLy9JbWFnZSByZXNcbiAgICAgICAgICAgICAgICB2YXIgbmV3UmVzID0gNjQwO1xuICAgICAgICAgICAgICAgIHN3aXRjaCAoZmVlZC5zZXR0aW5ncy5pbWdSZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAndGh1bWInOlxuICAgICAgICAgICAgICAgICAgICAgICAgbmV3UmVzID0gMTIwO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ21lZGl1bSc6XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdSZXMgPSAzMjA7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnbGFyZ2UnOlxuICAgICAgICAgICAgICAgICAgICAgICAgbmV3UmVzID0gNDgwO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2Z1bGwnOlxuICAgICAgICAgICAgICAgICAgICAgICAgbmV3UmVzID0gNjQwO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgbWluSW1hZ2VXaWR0aCA9IE1hdGgubWF4KGZlZWQuc2V0dGluZ3MuYXV0b01pblJlcywkaXRlbS5maW5kKCcuc2J5X3ZpZGVvX3RodW1ibmFpbCcpLmlubmVyV2lkdGgoKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNJbWFnZVJlcGxhY2UgPSBmZWVkLmdldEJlc3RSZXNvbHV0aW9uRm9yQXV0byhtaW5JbWFnZVdpZHRoLCBhc3BlY3RSYXRpbywgJCh0aGlzLmVsKS5maW5kKCdzYnlfaXRlbScpLmZpcnN0KCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzSW1hZ2VSZXBsYWNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA0ODA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1JlcyA9IDQ4MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAzMjA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1JlcyA9IDMyMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAxMjA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1JlcyA9IDEyMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAobmV3UmVzID4gY3VycmVudFJlcyB8fCBjdXJyZW50VXJsID09PSBmZWVkLnBsYWNlaG9sZGVyVVJMIHx8IGZvcmNlQ2hhbmdlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmZWVkLnNldHRpbmdzLmRlYnVnRW5hYmxlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlYXNvbiA9IGN1cnJlbnRVcmwgPT09IGZlZWQucGxhY2Vob2xkZXJVUkwgPyAnd2FzIHBsYWNlaG9sZGVyJyA6ICd0b28gc21hbGwnO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3JhaXMgcmVzIGZvciAnICsgY3VycmVudFVybCwgcmVhc29uKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB2YXIgbmV3VXJsID0gaW1nU3JjU2V0W25ld1Jlc107XG4gICAgICAgICAgICAgICAgICAgICRpdGVtLmZpbmQoJy5zYnlfdmlkZW9fdGh1bWJuYWlsID4gaW1nJykuYXR0cignc3JjJywgbmV3VXJsKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCRpdGVtLmZpbmQoJy5zYnlfdmlkZW9fdGh1bWJuYWlsJykuaGFzQ2xhc3MoJ3NieV9pbWdMaXF1aWRfcmVhZHknKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGl0ZW0uZmluZCgnLnNieV92aWRlb190aHVtYm5haWwnKS5jc3MoJ2JhY2tncm91bmQtaW1hZ2UnLCAndXJsKFwiJyArIG5ld1VybCArICdcIiknKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICRpdGVtLmZpbmQoJ2ltZycpLm9uKCdlcnJvcicsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEkKHRoaXMpLmhhc0NsYXNzKCdzYnlfaW1nX2Vycm9yJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuYWRkQ2xhc3MoJ3NieV9pbWdfZXJyb3InKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzb3VyY2VGcm9tQVBJID0gKCQodGhpcykuYXR0cignc3JjJykuaW5kZXhPZignaS55dGltZy5jb20nKSA+IC0xKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzb3VyY2VGcm9tQVBJKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiAkKHRoaXMpLmNsb3Nlc3QoJy5zYnlfdmlkZW9fdGh1bWJuYWlsJykuYXR0cignZGF0YS1mdWxsLXJlcycpICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmF0dHIoJ3NyYycsICQodGhpcykuY2xvc2VzdCgnLnNieV92aWRlb190aHVtYm5haWwnKS5hdHRyKCdkYXRhLWZ1bGwtcmVzJykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmNsb3Nlc3QoJy5zYnlfdmlkZW9fdGh1bWJuYWlsJykuY3NzKCdiYWNrZ3JvdW5kLWltYWdlJywgJ3VybCgnICsgJCh0aGlzKS5jbG9zZXN0KCcuc2J5X3ZpZGVvX3RodW1ibmFpbCcpLmF0dHIoJ2RhdGEtZnVsbC1yZXMnKSArICcpJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgkKHRoaXMpLmNsb3Nlc3QoJy5zYnlfdmlkZW9fdGh1bWJuYWlsJykuYXR0cignaHJlZicpICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmF0dHIoJ3NyYycsICQodGhpcykuY2xvc2VzdCgnLnNieV92aWRlb190aHVtYm5haWwnKS5hdHRyKCdocmVmJykgKyAnbWVkaWE/c2l6ZT1sJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuY2xvc2VzdCgnLnNieV92aWRlb190aHVtYm5haWwnKS5jc3MoJ2JhY2tncm91bmQtaW1hZ2UnLCAndXJsKCcgKyAkKHRoaXMpLmNsb3Nlc3QoJy5zYnlfdmlkZW9fdGh1bWJuYWlsJykuYXR0cignaHJlZicpICsgJ21lZGlhP3NpemU9bCknKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZlZWQuc2V0dGluZ3MuZmF2b3JMb2NhbCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHNyY1NldCA9IGZlZWQuZ2V0SW1hZ2VVcmxzKCQodGhpcykuY2xvc2VzdCgnLnNieV9pdGVtJykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygc3JjU2V0WzY0MF0gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuYXR0cignc3JjJywgc3JjU2V0WzY0MF0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmNsb3Nlc3QoJy5zYnlfdmlkZW9fdGh1bWJuYWlsJykuY3NzKCdiYWNrZ3JvdW5kLWltYWdlJywgJ3VybCgnICsgc3JjU2V0WzY0MF0gKyAnKScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmVlZC5hZnRlclJlc2l6ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSwgMSlcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCd1bmZpeGVkIGVycm9yICcgKyAkKHRoaXMpLmF0dHIoJ3NyYycpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG1heWJlUmFpc2VJbWFnZVJlc29sdXRpb246IGZ1bmN0aW9uIChqdXN0TmV3KSB7XG4gICAgICAgICAgICAgICAgdmFyIGZlZWQgPSB0aGlzLFxuICAgICAgICAgICAgICAgICAgaXRlbXNTZWxlY3RvciA9IHR5cGVvZiBqdXN0TmV3ICE9PSAndW5kZWZpbmVkJyAmJiBqdXN0TmV3ID09PSB0cnVlID8gJy5zYnlfaXRlbS5zYnlfbmV3JyA6ICcuc2J5X2l0ZW0nLFxuICAgICAgICAgICAgICAgICAgZm9yY2VDaGFuZ2UgPSAhZmVlZC5pc0luaXRpYWxpemVkID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgICAgICAgICAgICQoZmVlZC5lbCkuZmluZChpdGVtc1NlbGVjdG9yKS5lYWNoKGZ1bmN0aW9uIChpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoISQodGhpcykuaGFzQ2xhc3MoJ3NieV9udW1fZGlmZl9oaWRlJylcbiAgICAgICAgICAgICAgICAgICAgICAmJiAkKHRoaXMpLmZpbmQoJy5zYnlfdmlkZW9fdGh1bWJuYWlsJykubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgJiYgdHlwZW9mICQodGhpcykuZmluZCgnLnNieV92aWRlb190aHVtYm5haWwnKS5hdHRyKCdkYXRhLWltZy1zcmMtc2V0JykgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmZWVkLm1heWJlUmFpc2VTaW5nbGVJbWFnZVJlc29sdXRpb24oJCh0aGlzKSxpbmRleCxmb3JjZUNoYW5nZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTsgLy9FbmQgLnNieV9pdGVtIGVhY2hcbiAgICAgICAgICAgICAgICBmZWVkLmlzSW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldEJlc3RSZXNvbHV0aW9uRm9yQXV0bzogZnVuY3Rpb24oY29sV2lkdGgsIGFzcGVjdFJhdGlvLCAkaXRlbSkge1xuICAgICAgICAgICAgICAgIGlmIChpc05hTihhc3BlY3RSYXRpbykgfHwgYXNwZWN0UmF0aW8gPCAxKSB7XG4gICAgICAgICAgICAgICAgICAgIGFzcGVjdFJhdGlvID0gMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmFyIGJlc3RXaWR0aCA9IGNvbFdpZHRoICogYXNwZWN0UmF0aW8sXG4gICAgICAgICAgICAgICAgICBiZXN0V2lkdGhSb3VuZGVkID0gTWF0aC5jZWlsKGJlc3RXaWR0aCAvIDEwKSAqIDEwLFxuICAgICAgICAgICAgICAgICAgY3VzdG9tU2l6ZXMgPSBbMTIwLCAzMjAsIDQ4MCwgNjQwXTtcblxuICAgICAgICAgICAgICAgIGlmICgkaXRlbS5oYXNDbGFzcygnc2J5X2hpZ2hsaWdodGVkJykpIHtcbiAgICAgICAgICAgICAgICAgICAgYmVzdFdpZHRoUm91bmRlZCA9IGJlc3RXaWR0aFJvdW5kZWQgKjI7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGN1c3RvbVNpemVzLmluZGV4T2YocGFyc2VJbnQoYmVzdFdpZHRoUm91bmRlZCkpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgZG9uZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAkLmVhY2goY3VzdG9tU2l6ZXMsIGZ1bmN0aW9uIChpbmRleCwgaXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0gPiBwYXJzZUludChiZXN0V2lkdGhSb3VuZGVkKSAmJiAhZG9uZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJlc3RXaWR0aFJvdW5kZWQgPSBpdGVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gYmVzdFdpZHRoUm91bmRlZDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBoaWRlRXh0cmFJdGVtc0ZvcldpZHRoOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5sYXlvdXQgPT09ICdjYXJvdXNlbCcpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YXIgJHNlbGYgPSAkKHRoaXMuZWwpLFxuICAgICAgICAgICAgICAgICAgbnVtID0gdHlwZW9mICRzZWxmLmF0dHIoJ2RhdGEtbnVtJykgIT09ICd1bmRlZmluZWQnICYmICRzZWxmLmF0dHIoJ2RhdGEtbnVtJykgIT09ICcnID8gcGFyc2VJbnQoJHNlbGYuYXR0cignZGF0YS1udW0nKSkgOiAxLFxuICAgICAgICAgICAgICAgICAgbnVtbW9iaWxlID0gdHlwZW9mICRzZWxmLmF0dHIoJ2RhdGEtbnVtbW9iaWxlJykgIT09ICd1bmRlZmluZWQnICYmICRzZWxmLmF0dHIoJ2RhdGEtbnVtbW9iaWxlJykgIT09ICcnID8gcGFyc2VJbnQoJHNlbGYuYXR0cignZGF0YS1udW1tb2JpbGUnKSkgOiBudW07XG5cbiAgICAgICAgICAgICAgICBpZiAoISRzZWxmLmhhc0NsYXNzKCcuc2J5X2xheW91dF9jYXJvdXNlbCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICgkKHdpbmRvdykud2lkdGgoKSA8IDQ4MCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG51bW1vYmlsZSA8ICRzZWxmLmZpbmQoJy5zYnlfaXRlbScpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoJy5zYnlfaXRlbScpLnNsaWNlKG51bW1vYmlsZSAtICRzZWxmLmZpbmQoJy5zYnlfaXRlbScpLmxlbmd0aCkuYWRkQ2xhc3MoJ3NieV9udW1fZGlmZl9oaWRlJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobnVtIDwgJHNlbGYuZmluZCgnLnNieV9pdGVtJykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNlbGYuZmluZCgnLnNieV9pdGVtJykuc2xpY2UobnVtIC0gJHNlbGYuZmluZCgnLnNieV9pdGVtJykubGVuZ3RoKS5hZGRDbGFzcygnc2J5X251bV9kaWZmX2hpZGUnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldEltYWdlU2l6ZUNsYXNzOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyICRzZWxmID0gJCh0aGlzLmVsKTtcbiAgICAgICAgICAgICAgICAkc2VsZi5yZW1vdmVDbGFzcygnc2J5X3NtYWxsIHNieV9tZWRpdW0nKTtcbiAgICAgICAgICAgICAgICB2YXIgZmVlZFdpZHRoID0gJHNlbGYuaW5uZXJXaWR0aCgpLFxuICAgICAgICAgICAgICAgICAgcGhvdG9QYWRkaW5nID0gcGFyc2VJbnQoKCRzZWxmLmZpbmQoJy5zYnlfaXRlbXNfd3JhcCcpLm91dGVyV2lkdGgoKSAtICRzZWxmLmZpbmQoJy5zYnlfaXRlbXNfd3JhcCcpLndpZHRoKCkpKSAvIDIsXG4gICAgICAgICAgICAgICAgICBjb2xzID0gdGhpcy5nZXRDb2x1bW5Db3VudCgpLFxuICAgICAgICAgICAgICAgICAgZmVlZFdpZHRoU2Fuc1BhZGRpbmcgPSBmZWVkV2lkdGggLSAocGhvdG9QYWRkaW5nICogKGNvbHMrMikpLFxuICAgICAgICAgICAgICAgICAgY29sV2lkdGggPSAoZmVlZFdpZHRoU2Fuc1BhZGRpbmcgLyBjb2xzKTtcblxuICAgICAgICAgICAgICAgIGlmIChjb2xXaWR0aCA+IDE0MCAmJiBjb2xXaWR0aCA8IDI0MCkge1xuICAgICAgICAgICAgICAgICAgICAkc2VsZi5hZGRDbGFzcygnc2J5X21lZGl1bScpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY29sV2lkdGggPD0gMTQwKSB7XG4gICAgICAgICAgICAgICAgICAgICRzZWxmLmFkZENsYXNzKCdzYnlfc21hbGwnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0TWluSW1hZ2VXaWR0aDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGlmICgkKHRoaXMuZWwpLmZpbmQoJy5zYnlfaXRlbSAuc2J5X3ZpZGVvX3RodW1ibmFpbCcpLmZpcnN0KCkubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWluSW1hZ2VXaWR0aCA9ICQodGhpcy5lbCkuZmluZCgnLnNieV9pdGVtIC5zYnlfdmlkZW9fdGh1bWJuYWlsJykuZmlyc3QoKS5pbm5lcldpZHRoKCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5taW5JbWFnZVdpZHRoID0gMTUwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXRJbWFnZVJlc29sdXRpb246IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy5pbWdSZXMgPT09ICdhdXRvJykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmltYWdlUmVzb2x1dGlvbiA9ICdhdXRvJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuc2V0dGluZ3MuaW1nUmVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICd0aHVtYic6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbWFnZVJlc29sdXRpb24gPSAxNTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdtZWRpdW0nOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW1hZ2VSZXNvbHV0aW9uID0gMzIwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmltYWdlUmVzb2x1dGlvbiA9IDY0MDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRJbWFnZVVybHM6IGZ1bmN0aW9uICgkaXRlbSkge1xuICAgICAgICAgICAgICAgIHZhciBzcmNTZXQgPSBKU09OLnBhcnNlKCRpdGVtLmZpbmQoJy5zYnlfdmlkZW9fdGh1bWJuYWlsJykuYXR0cignZGF0YS1pbWctc3JjLXNldCcpLnJlcGxhY2UoL1xcXFxcXC8vZywgJy8nKSksXG4gICAgICAgICAgICAgICAgICBpZCA9ICRpdGVtLmF0dHIoJ2lkJykucmVwbGFjZSgnc2J5XycsICcnKS5yZXBsYWNlKCdwbGF5ZXJfJywnJyk7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnJlc2l6ZWRJbWFnZXNbaWRdICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICAgICAgICAgICAgJiYgdGhpcy5yZXNpemVkSW1hZ2VzW2lkXSAhPT0gJ3ZpZGVvJ1xuICAgICAgICAgICAgICAgICAgJiYgdGhpcy5yZXNpemVkSW1hZ2VzW2lkXSAhPT0gJ3BlbmRpbmcnXG4gICAgICAgICAgICAgICAgICAmJiB0aGlzLnJlc2l6ZWRJbWFnZXNbaWRdLmlkICE9PSAnZXJyb3InXG4gICAgICAgICAgICAgICAgICAmJiB0aGlzLnJlc2l6ZWRJbWFnZXNbaWRdLmlkICE9PSAndmlkZW8nXG4gICAgICAgICAgICAgICAgICAmJiB0aGlzLnJlc2l6ZWRJbWFnZXNbaWRdLmlkICE9PSAncGVuZGluZycpIHtcblxuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMucmVzaXplZEltYWdlc1tpZF1bJ3NpemVzJ10gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgZm91bmRTaXplcyA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnJlc2l6ZWRJbWFnZXNbaWRdWydzaXplcyddWydmdWxsJ10gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm91bmRTaXplcy5wdXNoKDY0MCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjU2V0WzY0MF0gPSBzYnlPcHRpb25zLnJlc2l6ZWRfdXJsICsgdGhpcy5yZXNpemVkSW1hZ2VzW2lkXS5pZCArICdmdWxsLmpwZyc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGl0ZW0uZmluZCgnLnNieV9saW5rX2FyZWEnKS5hdHRyKCAnaHJlZicsIHNieU9wdGlvbnMucmVzaXplZF91cmwgKyB0aGlzLnJlc2l6ZWRJbWFnZXNbaWRdLmlkICsgJ2Z1bGwuanBnJyApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpdGVtLmZpbmQoJy5zYnlfdmlkZW9fdGh1bWJuYWlsJykuYXR0ciggJ2RhdGEtZnVsbC1yZXMnLCBzYnlPcHRpb25zLnJlc2l6ZWRfdXJsICsgdGhpcy5yZXNpemVkSW1hZ2VzW2lkXS5pZCArICdmdWxsLmpwZycgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy5yZXNpemVkSW1hZ2VzW2lkXVsnc2l6ZXMnXVsnbG93J10gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm91bmRTaXplcy5wdXNoKDMyMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjU2V0WzMyMF0gPSBzYnlPcHRpb25zLnJlc2l6ZWRfdXJsICsgdGhpcy5yZXNpemVkSW1hZ2VzW2lkXS5pZCArICdsb3cuanBnJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy5mYXZvckxvY2FsICYmIHR5cGVvZiB0aGlzLnJlc2l6ZWRJbWFnZXNbaWRdWydzaXplcyddWydmdWxsJ10gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpdGVtLmZpbmQoJy5zYnlfbGlua19hcmVhJykuYXR0ciggJ2hyZWYnLCBzYnlPcHRpb25zLnJlc2l6ZWRfdXJsICsgdGhpcy5yZXNpemVkSW1hZ2VzW2lkXS5pZCArICdsb3cuanBnJyApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaXRlbS5maW5kKCcuc2J5X3ZpZGVvX3RodW1ibmFpbCcpLmF0dHIoICdkYXRhLWZ1bGwtcmVzJywgc2J5T3B0aW9ucy5yZXNpemVkX3VybCArIHRoaXMucmVzaXplZEltYWdlc1tpZF0uaWQgKyAnbG93LmpwZycgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMucmVzaXplZEltYWdlc1tpZF1bJ3NpemVzJ11bJ3RodW1iJ10gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm91bmRTaXplcy5wdXNoKDE1MCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjU2V0WzE1MF0gPSBzYnlPcHRpb25zLnJlc2l6ZWRfdXJsICsgdGhpcy5yZXNpemVkSW1hZ2VzW2lkXS5pZCArICd0aHVtYi5qcGcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3MuZmF2b3JMb2NhbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmb3VuZFNpemVzLmluZGV4T2YoNjQwKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZvdW5kU2l6ZXMuaW5kZXhPZigzMjApID4gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY1NldFs2NDBdID0gc2J5T3B0aW9ucy5yZXNpemVkX3VybCArIHRoaXMucmVzaXplZEltYWdlc1tpZF0uaWQgKyAnbG93LmpwZyc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZvdW5kU2l6ZXMuaW5kZXhPZigzMjApID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZm91bmRTaXplcy5pbmRleE9mKDY0MCkgPiAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjU2V0WzMyMF0gPSBzYnlPcHRpb25zLnJlc2l6ZWRfdXJsICsgdGhpcy5yZXNpemVkSW1hZ2VzW2lkXS5pZCArICdmdWxsLmpwZyc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZm91bmRTaXplcy5pbmRleE9mKDE1MCkgPiAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjU2V0WzMyMF0gPSBzYnlPcHRpb25zLnJlc2l6ZWRfdXJsICsgdGhpcy5yZXNpemVkSW1hZ2VzW2lkXS5pZCArICd0aHVtYi5qcGcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmb3VuZFNpemVzLmluZGV4T2YoMTUwKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZvdW5kU2l6ZXMuaW5kZXhPZigzMjApID4gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY1NldFsxNTBdID0gc2J5T3B0aW9ucy5yZXNpemVkX3VybCArIHRoaXMucmVzaXplZEltYWdlc1tpZF0uaWQgKyAnbG93LmpwZyc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZm91bmRTaXplcy5pbmRleE9mKDY0MCkgPiAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjU2V0WzE1MF0gPSBzYnlPcHRpb25zLnJlc2l6ZWRfdXJsICsgdGhpcy5yZXNpemVkSW1hZ2VzW2lkXS5pZCArICdmdWxsLmpwZyc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB0aGlzLnJlc2l6ZWRJbWFnZXNbaWRdID09PSAndW5kZWZpbmVkJ1xuICAgICAgICAgICAgICAgICAgfHwgKHR5cGVvZiB0aGlzLnJlc2l6ZWRJbWFnZXNbaWRdWydpZCddICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnJlc2l6ZWRJbWFnZXNbaWRdWydpZCddICE9PSAncGVuZGluZycgJiYgdGhpcy5yZXNpemVkSW1hZ2VzW2lkXVsnaWQnXSAhPT0gJ2Vycm9yJykpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGRUb05lZWRzUmVzaXppbmcoaWQpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBzcmNTZXQ7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0VmlkZW9JRDogZnVuY3Rpb24gKCRlbCkge1xuICAgICAgICAgICAgICAgIGlmICgkZWwuaGFzQ2xhc3MoJ3NieV9pdGVtJykgfHwgJGVsLmhhc0NsYXNzKCdzYnlfcGxheWVyX2l0ZW0nKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mICRlbC5maW5kKCcuc2J5X3ZpZGVvX3RodW1ibmFpbCcpLmF0dHIoJ2RhdGEtdmlkZW8taWQnKSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAkZWwuZmluZCgnLnNieV92aWRlb190aHVtYm5haWwnKS5hdHRyKCdkYXRhLXZpZGVvLWlkJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCRlbC5jbG9zZXN0KCdzYnlfaXRlbScpLmxlbmd0aCB8fCAkZWwuY2xvc2VzdCgnc2J5X3BsYXllcl9pdGVtJykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciAkdGFyZ2VFbCA9ICRlbC5jbG9zZXN0KCdzYnlfaXRlbScpLmxlbmd0aCA/ICRlbC5jbG9zZXN0KCdzYnlfaXRlbScpIDogJGVsLmNsb3Nlc3QoJ3NieV9wbGF5ZXJfaXRlbScpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mICR0YXJnZUVsLmZpbmQoJy5zYnlfdmlkZW9fdGh1bWJuYWlsJykuYXR0cignZGF0YS12aWRlby1pZCcpICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICR0YXJnZUVsLmZpbmQoJy5zYnlfdmlkZW9fdGh1bWJuYWlsJykuYXR0cignZGF0YS12aWRlby1pZCcpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICgkZWwuaGFzQ2xhc3MoJ3NiX3lvdXR1YmUnKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJGVsLmZpbmQoJy5zYnlfaXRlbScpLmZpcnN0KCkuZmluZCgnLnNieV92aWRlb190aHVtYm5haWwnKS5hdHRyKCdkYXRhLXZpZGVvLWlkJyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICgkKHRoaXMuZWwpLmZpbmQoJy5zYnlfdmlkZW9fdGh1bWJuYWlsJykuZmlyc3QoKS5sZW5ndGggJiYgdHlwZW9mICQodGhpcy5lbCkuZmluZCgnLnNieV92aWRlb190aHVtYm5haWwnKS5maXJzdCgpLmF0dHIoJ2RhdGEtdmlkZW8taWQnKSAhPT0gJ3VuZGVmaW5lZCcpe1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJCh0aGlzLmVsKS5maW5kKCcuc2J5X3ZpZGVvX3RodW1ibmFpbCcpLmZpcnN0KCkuYXR0cignZGF0YS12aWRlby1pZCcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0QXZhdGFyVXJsOiBmdW5jdGlvbiAodXNlcm5hbWUsZmF2b3JUeXBlKSB7XG4gICAgICAgICAgICAgICAgaWYgKHVzZXJuYW1lID09PSAnJykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdmFyIGF2YWlsYWJsZUF2YXRhcnMgPSB0aGlzLnNldHRpbmdzLmdlbmVyYWwuYXZhdGFycyxcbiAgICAgICAgICAgICAgICAgIGZhdm9yVHlwZSA9IHR5cGVvZiBmYXZvclR5cGUgIT09ICd1bmRlZmluZWQnID8gZmF2b3JUeXBlIDogJ2xvY2FsJztcblxuICAgICAgICAgICAgICAgIGlmIChmYXZvclR5cGUgPT09ICdsb2NhbCcpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBhdmFpbGFibGVBdmF0YXJzWydMQ0wnK3VzZXJuYW1lXSAhPT0gJ3VuZGVmaW5lZCcgJiYgcGFyc2VJbnQoYXZhaWxhYmxlQXZhdGFyc1snTENMJyt1c2VybmFtZV0pID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2J5T3B0aW9ucy5yZXNpemVkX3VybCArIHVzZXJuYW1lICsgJy5qcGcnO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBhdmFpbGFibGVBdmF0YXJzW3VzZXJuYW1lXSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhdmFpbGFibGVBdmF0YXJzW3VzZXJuYW1lXTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgYXZhaWxhYmxlQXZhdGFyc1t1c2VybmFtZV0gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXZhaWxhYmxlQXZhdGFyc1t1c2VybmFtZV07XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGF2YWlsYWJsZUF2YXRhcnNbJ0xDTCcrdXNlcm5hbWVdICE9PSAndW5kZWZpbmVkJyAmJiBwYXJzZUludChhdmFpbGFibGVBdmF0YXJzWydMQ0wnK3VzZXJuYW1lXSkgPT09IDEpICB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2J5T3B0aW9ucy5yZXNpemVkX3VybCArIHVzZXJuYW1lICsgJy5qcGcnO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFkZFRvTmVlZHNSZXNpemluZzogZnVuY3Rpb24gKGlkKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubmVlZHNSZXNpemluZy5pbmRleE9mKGlkKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uZWVkc1Jlc2l6aW5nLnB1c2goaWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhcHBseUltYWdlTGlxdWlkOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyICRzZWxmID0gJCh0aGlzLmVsKSxcbiAgICAgICAgICAgICAgICAgIGZlZWQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHNieUFkZEltZ0xpcXVpZCgpO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgJHNlbGYuZmluZChcIi5zYnlfcGxheWVyX2l0ZW1cIikuc2J5X2ltZ0xpcXVpZCA9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICgkc2VsZi5maW5kKCcuc2J5X3BsYXllcl9pdGVtJykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkc2VsZi5maW5kKFwiLnNieV9wbGF5ZXJfaXRlbSAuc2J5X3BsYXllcl92aWRlb190aHVtYm5haWxcIikuc2J5X2ltZ0xpcXVpZCh7ZmlsbDogdHJ1ZX0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoXCIuc2J5X2l0ZW0gLnNieV9pdGVtX3ZpZGVvX3RodW1ibmFpbFwiKS5zYnlfaW1nTGlxdWlkKHtmaWxsOiB0cnVlfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxpc3RlbkZvclZpc2liaWxpdHlDaGFuZ2U6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHZhciBmZWVkID0gdGhpcztcbiAgICAgICAgICAgICAgICBzYnlBZGRWaXNpYmlsaXR5TGlzdGVuZXIoKTtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mICQodGhpcy5lbCkuZmlsdGVyKCc6aGlkZGVuJykuc2J5VmlzaWJpbGl0eUNoYW5nZWQgPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICAvL0lmIHRoZSBmZWVkIGlzIGluaXRpYWxseSBoaWRkZW4gKGluIGEgdGFiIGZvciBleGFtcGxlKSB0aGVuIGNoZWNrIGZvciB3aGVuIGl0IGJlY29tZXMgdmlzaWJsZSBhbmQgc2V0IHRoZW4gc2V0IHRoZSBoZWlnaHRcbiAgICAgICAgICAgICAgICAgICAgJCh0aGlzLmVsKS5maWx0ZXIoJzpoaWRkZW4nKS5zYnlWaXNpYmlsaXR5Q2hhbmdlZCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjazogZnVuY3Rpb24gKGVsZW1lbnQsIHZpc2libGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZWVkLmFmdGVyUmVzaXplKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgcnVuT25Mb2FkOiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0Q29sdW1uQ291bnQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHZhciAkc2VsZiA9ICQodGhpcy5lbCksXG4gICAgICAgICAgICAgICAgICBjb2xzID0gdGhpcy5zZXR0aW5ncy5jb2xzLFxuICAgICAgICAgICAgICAgICAgY29sc21vYmlsZSA9IHRoaXMuc2V0dGluZ3MuY29sc21vYmlsZSxcbiAgICAgICAgICAgICAgICAgIHJldHVybkNvbHMgPSBjb2xzO1xuXG4gICAgICAgICAgICAgICAgc2J5V2luZG93V2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcblxuICAgICAgICAgICAgICAgIGlmICgkc2VsZi5oYXNDbGFzcygnc2J5X21vYl9jb2xfYXV0bycpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzYnlXaW5kb3dXaWR0aCA8IDY0MCAmJiAocGFyc2VJbnQoY29scykgPiAyICYmIHBhcnNlSW50KGNvbHMpIDwgNykpIHJldHVybkNvbHMgPSAyO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2J5V2luZG93V2lkdGggPCA2NDAgJiYgKHBhcnNlSW50KGNvbHMpID4gNiAmJiBwYXJzZUludChjb2xzKSA8IDExKSkgcmV0dXJuQ29scyA9IDQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzYnlXaW5kb3dXaWR0aCA8PSA0ODAgJiYgcGFyc2VJbnQoY29scykgPiAyKSByZXR1cm5Db2xzID0gMTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHNieVdpbmRvd1dpZHRoIDw9IDQ4MCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm5Db2xzID0gY29sc21vYmlsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VJbnQocmV0dXJuQ29scyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb25UaHVtYm5haWxDbGljazogZnVuY3Rpb24oJGNsaWNrZWQsaXNQbGF5ZXIsdmlkZW9JRCkge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5jYW5DcmVhdGVQbGF5ZXIoKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhciAkc2VsZiA9ICQodGhpcy5lbCk7XG4gICAgICAgICAgICAgICAgaWYgKCRzZWxmLmhhc0NsYXNzKCdzYnlfbGF5b3V0X2dhbGxlcnknKSkge1xuICAgICAgICAgICAgICAgICAgICAkc2VsZi5maW5kKCcuc2J5X2N1cnJlbnQnKS5yZW1vdmVDbGFzcygnc2J5X2N1cnJlbnQnKTtcbiAgICAgICAgICAgICAgICAgICAgJGNsaWNrZWQuY2xvc2VzdCgnLnNieV9pdGVtJykuYWRkQ2xhc3MoJ3NieV9jdXJyZW50Jyk7XG5cbiAgICAgICAgICAgICAgICAgICAgJGNsaWNrZWQuY2xvc2VzdCgnLnNieV9pdGVtJykuYWRkQ2xhc3MoJ3NieV9jdXJyZW50Jyk7XG4gICAgICAgICAgICAgICAgICAgICRzZWxmLmFkZENsYXNzKCdzYnlfcGxheWVyX2FkZGVkJykuZmluZCgnLnNieV9wbGF5ZXJfb3V0ZXJfd3JhcCcpLmFkZENsYXNzKCdzYnlfcGxheWVyX2xvYWRpbmcnKTtcbiAgICAgICAgICAgICAgICAgICAgJHNlbGYuZmluZCgnLnNieV9wbGF5ZXJfb3V0ZXJfd3JhcCAuc2J5X3ZpZGVvX3RodW1ibmFpbCcpLmZpbmQoJy5zYnlfbG9hZGVyJykuc2hvdygpLnJlbW92ZUNsYXNzKCdzYnlfaGlkZGVuJyk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghJHNlbGYuZmluZCgnLnNieV9wbGF5ZXJfb3V0ZXJfd3JhcCBpZnJhbWUnKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc1BsYXllcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlUGxheWVyKCdzYnlfcGxheWVyJyt0aGlzLmluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZpZGVvSUQgPSB0eXBlb2YgdmlkZW9JRCA9PT0gJ3VuZGVmaW5lZCcgPyB0aGlzLmdldFZpZGVvSUQoJGNsaWNrZWQuY2xvc2VzdCgnLnNieV9pdGVtJykpIDogdmlkZW9JRDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZVBsYXllcignc2J5X3BsYXllcicrdGhpcy5pbmRleCx2aWRlb0lEKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc1BsYXllcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB2aWRlb0lEID0gdHlwZW9mIHZpZGVvSUQgPT09ICd1bmRlZmluZWQnID8gdGhpcy5nZXRWaWRlb0lEKCRzZWxmLmZpbmQoJy5zYnlfaXRlbScpLmZpcnN0KCkpIDogdmlkZW9JRDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGxheVZpZGVvSW5QbGF5ZXIodmlkZW9JRCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB2aWRlb0lEID0gdHlwZW9mIHZpZGVvSUQgPT09ICd1bmRlZmluZWQnID8gdGhpcy5nZXRWaWRlb0lEKCRjbGlja2VkLmNsb3Nlc3QoJy5zYnlfaXRlbScpKSA6IHZpZGVvSUQ7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZVBsYXllckluZm8oJGNsaWNrZWQuY2xvc2VzdCgnLnNieV9pdGVtJykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGxheVZpZGVvSW5QbGF5ZXIodmlkZW9JRCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hZnRlclZpZGVvQ2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlR2FsbGVyeVBsYXllclN1YnNjcmliZUJ0bigkY2xpY2tlZCk7XG5cbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCQodGhpcy5lbCkuaGFzQ2xhc3MoJ3NieV9sYXlvdXRfZ3JpZCcpIHx8ICQodGhpcy5lbCkuaGFzQ2xhc3MoJ3NieV9sYXlvdXRfY2Fyb3VzZWwnKSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgJHNieUl0ZW0gPSAkY2xpY2tlZC5jbG9zZXN0KCcuc2J5X2l0ZW0nKSxcbiAgICAgICAgICAgICAgICAgICAgICB2aWRlb0lEID0gdHlwZW9mIHZpZGVvSUQgPT09ICd1bmRlZmluZWQnID8gdGhpcy5nZXRWaWRlb0lEKCRzYnlJdGVtKSA6IHZpZGVvSUQ7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGxheVZpZGVvSW5QbGF5ZXIodmlkZW9JRCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWZ0ZXJWaWRlb0NoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCQodGhpcy5lbCkuaGFzQ2xhc3MoJ3NieV9sYXlvdXRfbGlzdCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciAkc2J5SXRlbSA9ICRjbGlja2VkLmNsb3Nlc3QoJy5zYnlfaXRlbScpLFxuICAgICAgICAgICAgICAgICAgICAgIHZpZGVvSUQgPSB0eXBlb2YgdmlkZW9JRCA9PT0gJ3VuZGVmaW5lZCcgPyB0aGlzLmdldFZpZGVvSUQoJHNieUl0ZW0pIDogdmlkZW9JRDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCRzYnlJdGVtLmxlbmd0aCAmJiAhJHNieUl0ZW0uZmluZCgnaWZyYW1lJykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkc2J5SXRlbS5maW5kKCcuc2J5X2xvYWRlcicpLnNob3coKS5yZW1vdmVDbGFzcygnc2J5X2hpZGRlbicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJHNieUl0ZW0uYWRkQ2xhc3MoJ3NieV9wbGF5ZXJfbG9hZGluZyBzYnlfcGxheWVyX2xvYWRlZCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVQbGF5ZXIoJ3NieV9wbGF5ZXJfJyt2aWRlb0lELHZpZGVvSUQpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wbGF5VmlkZW9JblBsYXllcih2aWRlb0lELCRzYnlJdGVtLmF0dHIoJ2RhdGEtdmlkZW8taWQnKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFmdGVyVmlkZW9DaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb25UaHVtYm5haWxFbnRlcjogZnVuY3Rpb24oJGhvdmVyZWQpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuY2FuQ3JlYXRlUGxheWVyKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YXIgJHNlbGYgPSAkKHRoaXMuZWwpO1xuICAgICAgICAgICAgICAgIGlmICgkc2VsZi5oYXNDbGFzcygnc2J5X2xheW91dF9saXN0JykpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyICRzYnlJdGVtID0gJGhvdmVyZWQuY2xvc2VzdCgnLnNieV9pdGVtJyksXG4gICAgICAgICAgICAgICAgICAgICAgdmlkZW9JRCA9IHRoaXMuZ2V0VmlkZW9JRCgkc2J5SXRlbSk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghJHNieUl0ZW0uZmluZCgnaWZyYW1lJykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkc2J5SXRlbS5maW5kKCcuc2J5X2xvYWRlcicpLnNob3coKS5yZW1vdmVDbGFzcygnc2J5X2hpZGRlbicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJHNieUl0ZW0uYWRkQ2xhc3MoJ3NieV9wbGF5ZXJfbG9hZGluZyBzYnlfcGxheWVyX2xvYWRlZCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVQbGF5ZXIoJ3NieV9wbGF5ZXJfJyt2aWRlb0lELHZpZGVvSUQsMCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb25UaHVtYm5haWxMZWF2ZTogZnVuY3Rpb24oJGhvdmVyZWQpIHtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjaGFuZ2VQbGF5ZXJJbmZvOiBmdW5jdGlvbigkbmV3SXRlbSkge1xuXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGxheWVyRWFnZXJMb2FkZWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy5wbGF5ZXIgIT09ICd1bmRlZmluZWQnIHx8ICQodGhpcy5lbCkuaGFzQ2xhc3MoJ3NieV9wbGF5ZXJfbG9hZGVkJykpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNhbkNyZWF0ZVBsYXllcjogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgaWYgKCQodGhpcy5lbCkuZmluZCgnI3NieV9ibGFuaycpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnBsYXllckVhZ2VyTG9hZGVkKCkgfHwgKHRoaXMucGxheWVyQVBJUmVhZHkgJiYgdGhpcy5zZXR0aW5ncy5jb25zZW50R2l2ZW4pIHx8ICh3aW5kb3cuc2J5QVBJUmVhZHkgJiYgdGhpcy5zZXR0aW5ncy5jb25zZW50R2l2ZW4pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBsYXlWaWRlb0luUGxheWVyOiBmdW5jdGlvbih2aWRlb0lELHBsYXllcklEKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnBsYXllciAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIHRoaXMucGxheWVyLmxvYWRWaWRlb0J5SWQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGxheWVyLmxvYWRWaWRlb0J5SWQodmlkZW9JRCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygd2luZG93LnNieUxpZ2h0Ym94UGxheWVyICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICAgICAgICAgICAgJiYgdHlwZW9mIHdpbmRvdy5zYnlMaWdodGJveFBsYXllci5sb2FkVmlkZW9CeUlkICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuc2J5TGlnaHRib3hQbGF5ZXIubG9hZFZpZGVvQnlJZCh2aWRlb0lEKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBwbGF5ZXJJRCAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAgICAgICAgICAgICYmIHR5cGVvZiB0aGlzLnBsYXllcnMgIT09ICd1bmRlZmluZWQnXG4gICAgICAgICAgICAgICAgICAmJiB0eXBlb2YgdGhpcy5wbGF5ZXJzW3BsYXllcklEXSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAgICAgICAgICAgICYmIHR5cGVvZiB0aGlzLnBsYXllcnNbcGxheWVySURdLmxvYWRWaWRlb0J5SWQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGxheWVyc1twbGF5ZXJJRF0ubG9hZFZpZGVvQnlJZCh2aWRlb0lEKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYWZ0ZXJWaWRlb0NoYW5nZWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIGlmICgkKHRoaXMuZWwpLmhhc0NsYXNzKCdzYnlfbGF5b3V0X2dhbGxlcnknKSkge1xuICAgICAgICAgICAgICAgICAgICAkKHRoaXMuZWwpLmZpbmQoJy5zYnlfcGxheWVyX291dGVyX3dyYXAnKS5yZW1vdmVDbGFzcygnc2J5X3BsYXllcl9sb2FkaW5nJyk7XG4gICAgICAgICAgICAgICAgICAgICQodGhpcy5lbCkuZmluZCgnLnNieV9wbGF5ZXJfb3V0ZXJfd3JhcCAuc2J5X3ZpZGVvX3RodW1ibmFpbCcpLmZpbmQoJy5zYnlfbG9hZGVyJykuaGlkZSgpLmFkZENsYXNzKCdzYnlfaGlkZGVuJyk7XG5cbiAgICAgICAgICAgICAgICAgICAgJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsVG9wOiAkKHRoaXMuZWwpLmZpbmQoJy5zYnlfcGxheWVyX291dGVyX3dyYXAnKS5vZmZzZXQoKS50b3BcbiAgICAgICAgICAgICAgICAgICAgfSwgMzAwKTtcblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB1cGRhdGVHYWxsZXJ5UGxheWVyU3Vic2NyaWJlQnRuOiBmdW5jdGlvbigkY2xpY2tlZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1VUkwgPSAkY2xpY2tlZC5hdHRyKCdocmVmJyk7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVnZXggPSAvY2hhbm5lbFxcLyguKikkLztcbiAgICAgICAgICAgICAgICBjb25zdCBtYXRjaCA9IGl0ZW1VUkwubWF0Y2gocmVnZXgpO1xuICAgICAgICAgICAgICAgIGlmICggISBtYXRjaCApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBjaGFubmVsSWQgPSBtYXRjaFsxXTtcbiAgICAgICAgICAgICAgICBjb25zdCBzdWJzY3JpYmVCdG5VUkwgPSAnaHR0cDovL3d3dy55b3V0dWJlLmNvbS9jaGFubmVsLycrIGNoYW5uZWxJZCArJz9zdWJfY29uZmlybWF0aW9uPTEmZmVhdHVyZT1zdWJzY3JpYmUtZW1iZWQtY2xpY2snO1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICQoJy5zYnktY2hhbm5lbC1zdWJzY3JpYmUtYnRuIGEnKS5hdHRyKCdocmVmJywgc3Vic2NyaWJlQnRuVVJMKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjaGVja0NvbnNlbnQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnNldHRpbmdzLmNvbnNlbnRHaXZlbiB8fCAhdGhpcy5zZXR0aW5ncy5nZHByKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0dGluZ3Mubm9DRE4gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgQ0xJX0Nvb2tpZSAhPT0gXCJ1bmRlZmluZWRcIikgeyAvLyBHRFBSIENvb2tpZSBDb25zZW50IGJ5IFdlYlRvZmZlZVxuICAgICAgICAgICAgICAgICAgICBpZiAoQ0xJX0Nvb2tpZS5yZWFkKENMSV9BQ0NFUFRfQ09PS0lFX05BTUUpICE9PSBudWxsKSAge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBXZWJUb2ZmZWUgbm8gbG9uZ2VyIHVzZXMgdGhpcyBjb29raWUgYnV0IGJlaW5nIGxlZnQgaGVyZSB0byBtYWludGFpbiBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKENMSV9Db29raWUucmVhZCgnY29va2llbGF3aW5mby1jaGVja2JveC1ub24tbmVjZXNzYXJ5JykgIT09ICdudWxsJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0dGluZ3MuY29uc2VudEdpdmVuID0gQ0xJX0Nvb2tpZS5yZWFkKCdjb29raWVsYXdpbmZvLWNoZWNrYm94LW5vbi1uZWNlc3NhcnknKSA9PT0gJ3llcyc7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChDTElfQ29va2llLnJlYWQoJ2Nvb2tpZWxhd2luZm8tY2hlY2tib3gtbmVjZXNzYXJ5JykgIT09ICdudWxsJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0dGluZ3MuY29uc2VudEdpdmVuID0gQ0xJX0Nvb2tpZS5yZWFkKCdjb29raWVsYXdpbmZvLWNoZWNrYm94LW5lY2Vzc2FyeScpID09PSAneWVzJztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygd2luZG93LmNuQXJncyAhPT0gXCJ1bmRlZmluZWRcIikgeyAvLyBDb29raWUgTm90aWNlIGJ5IGRGYWN0b3J5XG4gICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IFwiOyBcIiArIGRvY3VtZW50LmNvb2tpZSxcbiAgICAgICAgICAgICAgICAgICAgICBwYXJ0cyA9IHZhbHVlLnNwbGl0KCAnOyBjb29raWVfbm90aWNlX2FjY2VwdGVkPScgKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoIHBhcnRzLmxlbmd0aCA9PT0gMiApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB2YWwgPSBwYXJ0cy5wb3AoKS5zcGxpdCggJzsnICkuc2hpZnQoKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXR0aW5ncy5jb25zZW50R2l2ZW4gPSAodmFsID09PSAndHJ1ZScpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygd2luZG93LmNvbXBsaWFueiAhPT0gJ3VuZGVmaW5lZCcpIHsgLy8gQ29tcGxpYW56IGJ5IFJlYWxseSBTaW1wbGUgUGx1Z2luc1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldHRpbmdzLmNvbnNlbnRHaXZlbiA9ICggc2J5Q21wbHpHZXRDb29raWUoJ2NtcGx6X21hcmtldGluZycpID09PSAnYWxsb3cnIHx8IGpRdWVyeSgnYm9keScpLmhhc0NsYXNzKCdjbXBsei1zdGF0dXMtbWFya2V0aW5nJykgKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB3aW5kb3cuQ29va2llYm90ICE9PSBcInVuZGVmaW5lZFwiKSB7IC8vIENvb2tpZWJvdCBieSBDeWJvdCBBL1NcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXR0aW5ncy5jb25zZW50R2l2ZW4gPSBDb29raWVib3QuY29uc2VudGVkO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHdpbmRvdy5Cb3JsYWJzQ29va2llICE9PSAndW5kZWZpbmVkJykgeyAvLyBCb3JsYWJzIENvb2tpZSBieSBCb3JsYWJzXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0dGluZ3MuY29uc2VudEdpdmVuID0gdHlwZW9mIHdpbmRvdy5Cb3JsYWJzQ29va2llLkNvbnNlbnRzICE9PSAndW5kZWZpbmVkJyA/IHdpbmRvdy5Cb3JsYWJzQ29va2llLkNvbnNlbnRzLmhhc0NvbnNlbnQoJ3lvdXR1YmUnKSA6IHdpbmRvdy5Cb3JsYWJzQ29va2llLmNoZWNrQ29va2llQ29uc2VudCgneW91dHViZScpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHZhciBldnQgPSBqUXVlcnkuRXZlbnQoJ3NieWNoZWNrY29uc2VudCcpO1xuICAgICAgICAgICAgICAgIGV2dC5mZWVkID0gdGhpcztcbiAgICAgICAgICAgICAgICBqUXVlcnkod2luZG93KS50cmlnZ2VyKGV2dCk7XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy5jb25zZW50R2l2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXR0aW5ncy5ub0NETiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNldHRpbmdzLmNvbnNlbnRHaXZlbjsgLy8gR0RQUiBub3QgZW5hYmxlZFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFmdGVyQ29uc2VudFRvZ2dsZWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNoZWNrQ29uc2VudCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBmZWVkID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LnNieS5tYXliZUFkZFlUQVBJKCk7XG4gICAgICAgICAgICAgICAgICAgIGZlZWQubWF5YmVSYWlzZUltYWdlUmVzb2x1dGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBmZWVkLmFwcGx5RnVsbEZlYXR1cmVzKCk7XG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmZWVkLmFmdGVyUmVzaXplKCk7XG4gICAgICAgICAgICAgICAgICAgIH0sNTAwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVtb3ZlRmVhdHVyZXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHZhciBmZWVkID0gdGhpcztcbiAgICAgICAgICAgICAgICBpZiAoZmVlZC5zZXR0aW5ncy5ub0NETikge1xuICAgICAgICAgICAgICAgICAgICAkKGZlZWQuZWwpLmZpbmQoJy5zYnlfdmlkZW9fdGh1bWJuYWlsJykuZWFjaChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykucmVtb3ZlQXR0cignZGF0YS1zYnktbGlnaHRib3gnKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFwcGx5RnVsbEZlYXR1cmVzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB2YXIgZmVlZCA9IHRoaXM7XG5cbiAgICAgICAgICAgICAgICAkKGZlZWQuZWwpLmZpbmQoJy5zYnlfaGVhZGVyX2ltZyBpbWcnKS5hdHRyKCdzcmMnLCQoZmVlZC5lbCkuZmluZCgnLnNieV9oZWFkZXJfaW1nJykuYXR0cignZGF0YS1hdmF0YXItdXJsJykpO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgJChmZWVkLmVsKS5maW5kKCcuc2J5X3ZpZGVvX3RodW1ibmFpbCcpLmZpcnN0KCkuYXR0cignZGF0YS1zYnktbGlnaHRib3gnKSA9PT0gJ3VuZGVmaW5lZCdcbiAgICAgICAgICAgICAgICAgICYmIGZlZWQuc2V0dGluZ3MubGlnaHRib3hFbmFibGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICQoZmVlZC5lbCkuZmluZCgnLnNieV92aWRlb190aHVtYm5haWwnKS5lYWNoKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5hdHRyKCdkYXRhLXNieS1saWdodGJveCcsZmVlZC5pbmRleCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YXIgJHNlbGYgPSAkKGZlZWQuZWwpO1xuICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoJy5zYnlfbm9fY29uc2VudCcpLnJlbW92ZUNsYXNzKCdzYnlfbm9fY29uc2VudCcpO1xuICAgICAgICAgICAgICAgIGlmICgkc2VsZi5oYXNDbGFzcygnc2J5X2xheW91dF9nYWxsZXJ5JykgJiYgJHNlbGYuZmluZCgnLnNieV9wbGF5ZXJfb3V0ZXJfd3JhcCcpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1heWJlUmFpc2VTaW5nbGVJbWFnZVJlc29sdXRpb24oJHNlbGYuZmluZCgnLnNieV9wbGF5ZXJfb3V0ZXJfd3JhcCcpLCAwLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgJHNlbGYuZmluZCgnLnNieV9pdGVtJykuZmlyc3QoKS5hZGRDbGFzcygnc2J5X2N1cnJlbnQnKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoIWZlZWQuY2FuQ3JlYXRlUGxheWVyKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoISRzZWxmLmZpbmQoJy5zYnlfcGxheWVyX291dGVyX3dyYXAgaWZyYW1lJykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmZWVkLmNyZWF0ZVBsYXllcignc2J5X3BsYXllcicrZmVlZC5pbmRleCk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsb2NhdGlvbkd1ZXNzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB2YXIgJGZlZWQgPSAkKHRoaXMuZWwpLFxuICAgICAgICAgICAgICAgICAgbG9jYXRpb24gPSAnY29udGVudCc7XG5cbiAgICAgICAgICAgICAgICBpZiAoJGZlZWQuY2xvc2VzdCgnZm9vdGVyJykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uID0gJ2Zvb3Rlcic7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICgkZmVlZC5jbG9zZXN0KCcuaGVhZGVyJykubGVuZ3RoXG4gICAgICAgICAgICAgICAgICB8fCAkZmVlZC5jbG9zZXN0KCdoZWFkZXInKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24gPSAnaGVhZGVyJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCRmZWVkLmNsb3Nlc3QoJy5zaWRlYmFyJykubGVuZ3RoXG4gICAgICAgICAgICAgICAgICB8fCAkZmVlZC5jbG9zZXN0KCdhc2lkZScpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbiA9ICdzaWRlYmFyJztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gbG9jYXRpb247XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgZnVuY3Rpb24gU2J5RmVlZFBybyhlbCwgaW5kZXgsIHNldHRpbmdzKSB7XG4gICAgICAgICAgICBTYnlGZWVkLmNhbGwodGhpcywgZWwsIGluZGV4LCBzZXR0aW5ncyk7XG5cbiAgICAgICAgICAgIHRoaXMuQ1RBID0ge307XG5cbiAgICAgICAgICAgIHRoaXMuaW5pdExheW91dCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5pdEdhbGxlcnlMYXlvdXQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmluaXRHcmlkKCk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmluaXRDYXJvdXNlbHMoKTtcbiAgICAgICAgICAgICAgICB2YXIgZXZ0ID0galF1ZXJ5LkV2ZW50KCdzYnlhZnRlcmxheW91dGluaXQnKTtcbiAgICAgICAgICAgICAgICBldnQuZmVlZCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgalF1ZXJ5KHdpbmRvdykudHJpZ2dlcihldnQpO1xuICAgICAgICAgICAgICAgIG9wZW5Db21tZW50cygpOyBcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHRoaXMuaW5pdEdyaWQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICBpZiAod2luZG93LnNieVNlbWlFYWdlckxvYWRpbmcgJiYgalF1ZXJ5KCcjc2J5X2xpZ2h0Ym94JykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBmZWVkID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgcGxheWVySUQgPSAnc2J5X2xiLXBsYXllcic7XG4gICAgICAgICAgICAgICAgICAgIGpRdWVyeSgnI3NieV9saWdodGJveCcpLmFkZENsYXNzKCdzYnlfdmlkZW9fbGlnaHRib3gnKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCAhIHdpbmRvdy5zYnlPcHRpb25zLmlzUHJvICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgalF1ZXJ5KCcjc2J5X2xpZ2h0Ym94JykuYWRkQ2xhc3MoJ3NieV9saWdodGJveF9mcmVlJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB2YXIgdmlkZW9JRCA9ICQodGhpcy5lbCkuZmluZCgnc2J5X2l0ZW0nKS5maXJzdCgpLmF0dHIoJ2RhdGEtdmlkZW8taWQnKSxcbiAgICAgICAgICAgICAgICAgICAgICBhdXRvcGxheSA9IHNieU9wdGlvbnMuYXV0b3BsYXk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygd2luZG93LnNieUxpZ2h0Ym94UGxheWVyID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGFyZ3MgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaG9zdDogd2luZG93LmxvY2F0aW9uLnByb3RvY29sICsgZmVlZC5lbWJlZFVSTCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWRlb0lkOiB2aWRlb0lELFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYXllclZhcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZXN0YnJhbmRpbmc6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbDogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b3BsYXk6IGF1dG9wbGF5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudHM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ29uU3RhdGVDaGFuZ2UnOiBmdW5jdGlvbiAoZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZpZGVvSUQgPSBkYXRhLnRhcmdldC5nZXRWaWRlb0RhdGEoKVsndmlkZW9faWQnXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZlZWQuYWZ0ZXJTdGF0ZUNoYW5nZShwbGF5ZXJJRCwgdmlkZW9JRCwgZGF0YSwgJCgnIycgKyBwbGF5ZXJJRCkuY2xvc2VzdCgnLnNieV92aWRlb190aHVtYm5haWxfd3JhcCcpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICBmZWVkLm1heWJlQWRkQ1RBKHBsYXllcklEKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LnNieUxpZ2h0Ym94UGxheWVyID0gbmV3IHdpbmRvdy5ZVC5QbGF5ZXIocGxheWVySUQsIGFyZ3MpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgdGhpcy5pbml0Q2Fyb3VzZWxzID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdmFyIGZlZWQgPSB0aGlzLFxuICAgICAgICAgICAgICAgICAgJHNlbGYgPSAkKHRoaXMuZWwpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNldHRpbmdzLmdlbmVyYWwuY2Fyb3VzZWwgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmFyIGNvbHMgPSB0aGlzLnNldHRpbmdzLmNvbHMsXG4gICAgICAgICAgICAgICAgICBjb2xzbW9iaWxlID0gdGhpcy5zZXR0aW5ncy5jb2xzbW9iaWxlO1xuXG4gICAgICAgICAgICAgICAgJHNlbGYuZmluZCgnLnNieV9pdGVtc193cmFwJykuYWRkQ2xhc3MoJ3NieV9jYXJvdXNlbCcpO1xuICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoJy5zYnlfbG9hZF9idG4nKS5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgICAkc2VsZi5maW5kKCcuc2J5X2l0ZW0nKS5jc3Moe1xuICAgICAgICAgICAgICAgICAgICAncGFkZGluZy10b3AnIDogJHNlbGYuZmluZCgnLnNieV9pdGVtc193cmFwJykuY3NzKCdwYWRkaW5nLXRvcCcpLFxuICAgICAgICAgICAgICAgICAgICAncGFkZGluZy1yaWdodCcgOiAkc2VsZi5maW5kKCcuc2J5X2l0ZW1zX3dyYXAnKS5jc3MoJ3BhZGRpbmctdG9wJyksXG4gICAgICAgICAgICAgICAgICAgICdwYWRkaW5nLWJvdHRvbScgOiAkc2VsZi5maW5kKCcuc2J5X2l0ZW1zX3dyYXAnKS5jc3MoJ3BhZGRpbmctdG9wJyksXG4gICAgICAgICAgICAgICAgICAgICdwYWRkaW5nLWxlZnQnIDogJHNlbGYuZmluZCgnLnNieV9pdGVtc193cmFwJykuY3NzKCdwYWRkaW5nLXRvcCcpXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgJHNlbGYuZmluZCgnLnNieV9pdGVtJykuZWFjaChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5hdHRyKCdzdHlsZScsJCh0aGlzKS5hdHRyKCdzdHlsZScpLnJlcGxhY2UoJ3BhZGRpbmc6ICcrJHNlbGYuZmluZCgnLnNieV9pdGVtc193cmFwJykuY3NzKCdwYWRkaW5nLXRvcCcpLCdwYWRkaW5nOiAnKyRzZWxmLmZpbmQoJy5zYnlfaXRlbXNfd3JhcCcpLmNzcygncGFkZGluZy10b3AnKSArICcgIWltcG9ydGFudCcpKTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHZhciBhcnJvd3MgPSBmZWVkLnNldHRpbmdzLmdlbmVyYWwuY2Fyb3VzZWxbMF0sXG4gICAgICAgICAgICAgICAgICBwYWdpbmF0aW9uID0gZmVlZC5zZXR0aW5ncy5nZW5lcmFsLmNhcm91c2VsWzFdLFxuICAgICAgICAgICAgICAgICAgYXV0b3BsYXkgPSBmZWVkLnNldHRpbmdzLmdlbmVyYWwuY2Fyb3VzZWxbMl0sXG4gICAgICAgICAgICAgICAgICB0aW1lID0gZmVlZC5zZXR0aW5ncy5nZW5lcmFsLmNhcm91c2VsWzNdLFxuICAgICAgICAgICAgICAgICAgbG9vcCA9IGZlZWQuc2V0dGluZ3MuZ2VuZXJhbC5jYXJvdXNlbFs0XSxcbiAgICAgICAgICAgICAgICAgIHJvd3MgPSBmZWVkLnNldHRpbmdzLmdlbmVyYWwuY2Fyb3VzZWxbNV07XG4gICAgICAgICAgICAgICAgLy9Jbml0aWF0ZSBjYXJvdXNlbFxuICAgICAgICAgICAgICAgIGlmKCAhYXV0b3BsYXkgKSB0aW1lID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAvL1NldCBkZWZhdWx0cyBmb3IgcmVzcG9uc2l2ZSBicmVha3BvaW50c1xuICAgICAgICAgICAgICAgIHZhciBpdGVtc1RhYmxldFNtYWxsID0gY29scyxcbiAgICAgICAgICAgICAgICAgIGl0ZW1zTW9iaWxlID0gY29scyxcbiAgICAgICAgICAgICAgICAgIGFycm93cyA9IGFycm93cyA/ICdvbmhvdmVyJyA6ICdoaWRlJyxcbiAgICAgICAgICAgICAgICAgIGF1dG9wbGF5ID0gdGltZSAhPT0gZmFsc2UsXG4gICAgICAgICAgICAgICAgICBoYXMycm93cyA9IChyb3dzID09IDIpLFxuICAgICAgICAgICAgICAgICAgbG9vcCA9ICghbG9vcCksXG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZmVlZC5hZnRlclJlc2l6ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgIH0sIDEpO1xuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIGFmdGVySW5pdCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgIHZhciAkc2VsZiA9IGpRdWVyeShmZWVkLmVsKTtcbiAgICAgICAgICAgICAgICAgICAgICAkc2VsZi5maW5kKCcuc2J5X2l0ZW1zX3dyYXAuc2J5X2Nhcm91c2VsJykuZmFkZUluKCk7XG4gICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAkc2VsZi5maW5kKCcuc2J5X2l0ZW1zX3dyYXAuc2J5X2Nhcm91c2VsIC5zYnlfaW5mbywgLnNieV9vd2wycm93LWl0ZW0sLnNieV9pdGVtc193cmFwLnNieV9jYXJvdXNlbCcpLmZhZGVJbigpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgfSwgMSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyICRuYXZFbGVtZW50c1dyYXBwZXIgPSAkc2VsZi5maW5kKCcuc2J5LW93bC1uYXYnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFycm93cyA9PT0gJ29uaG92ZXInKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhcnJvd3MgPT09ICdiZWxvdycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciAkZG90cyA9ICRzZWxmLmZpbmQoJy5zYnktb3dsLWRvdHMnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHByZXYgPSAkc2VsZi5maW5kKCcuc2J5LW93bC1wcmV2JyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRuZXh0ID0gJHNlbGYuZmluZCgnLnNieS1vd2wtbmV4dCcpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbmF2ID0gJHNlbGYuZmluZCgnLnNieS1vd2wtbmF2JyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRkb3QgPSAkc2VsZi5maW5kKCcuc2J5LW93bC1kb3QnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGhEb3RzID0gJGRvdC5sZW5ndGggKiAkZG90LmlubmVyV2lkdGgoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4V2lkdGggPSAkc2VsZi5pbm5lcldpZHRoKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwcmV2LmFmdGVyKCRkb3RzKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5hdi5jc3MoJ3Bvc2l0aW9uJywgJ3JlbGF0aXZlJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbmV4dC5jc3MoJ3Bvc2l0aW9uJywgJ2Fic29sdXRlJykuY3NzKCd0b3AnLCAnLTZweCcpLmNzcygncmlnaHQnLCBNYXRoLm1heCgoLjUgKiAkbmF2LmlubmVyV2lkdGgoKSAtIC41ICogKHdpZHRoRG90cykgLSAkbmV4dC5pbm5lcldpZHRoKCkgLSA2KSwgMCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHByZXYuY3NzKCdwb3NpdGlvbicsICdhYnNvbHV0ZScpLmNzcygndG9wJywgJy02cHgnKS5jc3MoJ2xlZnQnLCBNYXRoLm1heCgoLjUgKiAkbmF2LmlubmVyV2lkdGgoKSAtIC41ICogKHdpZHRoRG90cykgLSAkcHJldi5pbm5lcldpZHRoKCkgLSA2KSwgMCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFycm93cyA9PT0gJ2hpZGUnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbmF2RWxlbWVudHNXcmFwcGVyLmFkZENsYXNzKCdoaWRlJykuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICB9LCAxKTtcbiAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAvL0Rpc2FibGUgbW9iaWxlIGxheW91dFxuICAgICAgICAgICAgICAgIGlmKCAkc2VsZi5oYXNDbGFzcygnc2J5X21vYl9jb2xfYXV0bycpICkge1xuICAgICAgICAgICAgICAgICAgICBpdGVtc1RhYmxldFNtYWxsID0gMjtcbiAgICAgICAgICAgICAgICAgICAgaWYoIHBhcnNlSW50KGNvbHMpICE9IDIgKSBpdGVtc01vYmlsZSA9IDE7XG4gICAgICAgICAgICAgICAgICAgIGlmKCBwYXJzZUludChjb2xzKSA9PSAyICkgaXRlbXNNb2JpbGUgPSAyOyAvL0lmIHRoZSBjb2xzIGFyZSBzZXQgdG8gMiB0aGVuIGRvbid0IGNoYW5nZSB0byAxIGNvbCBvbiBtb2JpbGVcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpdGVtc01vYmlsZSA9IGNvbHNtb2JpbGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5jYXJvdXNlbEFyZ3MgPSB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW1zOiBjb2xzLFxuICAgICAgICAgICAgICAgICAgICBsb29wOiBsb29wLFxuICAgICAgICAgICAgICAgICAgICByZXdpbmQ6ICFsb29wLFxuICAgICAgICAgICAgICAgICAgICBhdXRvcGxheTogYXV0b3BsYXksXG4gICAgICAgICAgICAgICAgICAgIGF1dG9wbGF5VGltZW91dDogTWF0aC5tYXgodGltZSwyMDAwKSxcbiAgICAgICAgICAgICAgICAgICAgYXV0b3BsYXlIb3ZlclBhdXNlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBuYXY6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIG5hdlRleHQ6IFsnPHN2ZyBjbGFzcz1cInN2Zy1pbmxpbmUtLWZhIGZhLWNoZXZyb24tbGVmdCBmYS13LTEwXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgZGF0YS1mYS1wcm9jZXNzZWQ9XCJcIiBkYXRhLXByZWZpeD1cImZhXCIgZGF0YS1pY29uPVwiY2hldnJvbi1sZWZ0XCIgcm9sZT1cInByZXNlbnRhdGlvblwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDMyMCA1MTJcIj48cGF0aCBmaWxsPVwiY3VycmVudENvbG9yXCIgZD1cIk0zNC41MiAyMzkuMDNMMjI4Ljg3IDQ0LjY5YzkuMzctOS4zNyAyNC41Ny05LjM3IDMzLjk0IDBsMjIuNjcgMjIuNjdjOS4zNiA5LjM2IDkuMzcgMjQuNTIuMDQgMzMuOUwxMzEuNDkgMjU2bDE1NC4wMiAxNTQuNzVjOS4zNCA5LjM4IDkuMzIgMjQuNTQtLjA0IDMzLjlsLTIyLjY3IDIyLjY3Yy05LjM3IDkuMzctMjQuNTcgOS4zNy0zMy45NCAwTDM0LjUyIDI3Mi45N2MtOS4zNy05LjM3LTkuMzctMjQuNTcgMC0zMy45NHpcIj48L3BhdGg+PC9zdmc+JywgJzxzdmcgY2xhc3M9XCJzdmctaW5saW5lLS1mYSBmYS1jaGV2cm9uLXJpZ2h0IGZhLXctMTBcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBkYXRhLWZhLXByb2Nlc3NlZD1cIlwiIGRhdGEtcHJlZml4PVwiZmFcIiBkYXRhLWljb249XCJjaGV2cm9uLXJpZ2h0XCIgcm9sZT1cInByZXNlbnRhdGlvblwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDMyMCA1MTJcIj48cGF0aCBmaWxsPVwiY3VycmVudENvbG9yXCIgZD1cIk0yODUuNDc2IDI3Mi45NzFMOTEuMTMyIDQ2Ny4zMTRjLTkuMzczIDkuMzczLTI0LjU2OSA5LjM3My0zMy45NDEgMGwtMjIuNjY3LTIyLjY2N2MtOS4zNTctOS4zNTctOS4zNzUtMjQuNTIyLS4wNC0zMy45MDFMMTg4LjUwNSAyNTYgMzQuNDg0IDEwMS4yNTVjLTkuMzM1LTkuMzc5LTkuMzE3LTI0LjU0NC4wNC0zMy45MDFsMjIuNjY3LTIyLjY2N2M5LjM3My05LjM3MyAyNC41NjktOS4zNzMgMzMuOTQxIDBMMjg1LjQ3NSAyMzkuMDNjOS4zNzMgOS4zNzIgOS4zNzMgMjQuNTY4LjAwMSAzMy45NDF6XCI+PC9wYXRoPjwvc3ZnPiddLFxuICAgICAgICAgICAgICAgICAgICBkb3RzOiBwYWdpbmF0aW9uLFxuICAgICAgICAgICAgICAgICAgICBvd2wycm93OiBoYXMycm93cyxcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2l2ZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgMDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zOiBpdGVtc01vYmlsZVxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIDQ4MDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zOiBpdGVtc1RhYmxldFNtYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgNjQwOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXM6IGNvbHNcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U6IG9uQ2hhbmdlLFxuICAgICAgICAgICAgICAgICAgICBvbkluaXRpYWxpemU6IGFmdGVySW5pdFxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHRoaXMuc3RyaXBFbW9qaWh0bWwgPSBmdW5jdGlvbiAoJGVsKSB7XG4gICAgICAgICAgICAgICAgJGVsLmZpbmQoJy5lbW9qaScpLmVhY2goZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICQodGhpcykucmVwbGFjZVdpdGgoJCh0aGlzKS5hdHRyKCdhbHQnKSk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gJGVsLmh0bWwoKTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHRoaXMuYWZ0ZXJJdGVtUmV2ZWFsZWQgPSBmdW5jdGlvbigkaXRlbSkge1xuXG4gICAgICAgICAgICAgICAgdmFyIGZlZWQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGlmICgkaXRlbS5maW5kKCcuc2J5X2NhcHRpb24nKS5sZW5ndGggJiYgISAkaXRlbS5maW5kKCcuc2J5X2NhcHRpb24nKS5oYXNDbGFzcygnc2J5X2Z1bGxfY2FwdGlvbicpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vRXhwYW5kIHBvc3RcbiAgICAgICAgICAgICAgICAgICAgdmFyICRjYXB0aW9uID0gJGl0ZW0uZmluZCgnLnNieV9pdGVtX2NhcHRpb25fd3JhcCAuc2J5X2NhcHRpb24nKSxcbiAgICAgICAgICAgICAgICAgICAgICAkaG92ZXJDYXB0aW9uID0gJGl0ZW0uZmluZCgnLnNieV9pdGVtX3ZpZGVvX3RodW1ibmFpbCAuc2J5X2NhcHRpb24nKSxcbiAgICAgICAgICAgICAgICAgICAgICB0ZXh0X2xpbWl0ID0gdHlwZW9mIGZlZWQuc2V0dGluZ3MuZ2VuZXJhbC5kZXNjcmlwdGlvbmxlbmd0aCAhPT0gJ3VuZGVmaW5lZCcgPyBwYXJzZUludChmZWVkLnNldHRpbmdzLmdlbmVyYWwuZGVzY3JpcHRpb25sZW5ndGgpIDogMTUwO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGV4dF9saW1pdCA8IDEpIHRleHRfbGltaXQgPSA5OTk5OTtcbiAgICAgICAgICAgICAgICAgICAgLy9TZXQgdGhlIGZ1bGwgdGV4dCB0byBiZSB0aGUgY2FwdGlvbiAodXNlZCBpbiB0aGUgaW1hZ2UgYWx0KVxuXG4gICAgICAgICAgICAgICAgICAgIHZhciBjYXB0aW9uVGV4dCA9IHRoaXMuc3RyaXBFbW9qaWh0bWwoJGl0ZW0uZmluZCgnLnNieV9jYXB0aW9uJykuZmlyc3QoKSksXG4gICAgICAgICAgICAgICAgICAgICAgYnJDb3VudCA9IChjYXB0aW9uVGV4dC5tYXRjaCgvPGJyPi9nKSB8fCBbXSkubGVuZ3RoLFxuICAgICAgICAgICAgICAgICAgICAgIGJyQWRqdXN0ID0gKHR5cGVvZiBzYnlPcHRpb25zLmJyQWRqdXN0ID09PSAndW5kZWZpbmVkJyB8fCBzYnlPcHRpb25zLmJyQWRqdXN0ID09PSAnMScgfHwgc2J5T3B0aW9ucy5ickFkanVzdCA9PT0gdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgLy8gY29tbWVudCBvdXQgdW5uZWNlc3NhcnkgY29kZSB0aGF0IHN0cmlwZXMgb3V0IHRleHQgbGltaXQgd2l0aCB3cm9uZyB0ZXh0IGxpbWl0XG4gICAgICAgICAgICAgICAgICAgIC8vIHJlcGxhY2UgZW1vamkgd2l0aCBhbHQgZm9yIG1vcmUgYWNjdXJhdGUgc2hvcnRlbmluZ1xuLy8gICAgICAgICAgICAgICAgICAgICBpZiAoYnJBZGp1c3QgJiYgYnJDb3VudCA+IDAgJiYgY2FwdGlvblRleHQuaW5kZXhPZignPGJyPicpIDwgdGV4dF9saW1pdCkge1xuLy8gICAgICAgICAgICAgICAgICAgICAgICAgdmFyICRzaXppbmdDYXB0aW9uID0gJGl0ZW0uZmluZCgnLnNieV92aWRlb190aXRsZScpLmZpcnN0KCk7XG4vLyAgICAgICAgICAgICAgICAgICAgICAgICBjYXB0aW9uV2lkdGggPSAkc2l6aW5nQ2FwdGlvbi53aWR0aCgpID4gMjAgPyAkc2l6aW5nQ2FwdGlvbi53aWR0aCgpIDogJGl0ZW0ud2lkdGgoKSxcbi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNpemUgPSAkc2l6aW5nQ2FwdGlvbi5jc3MoJ2ZvbnQtc2l6ZScpLFxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyYWN0ZXJzUGVyTGluZSA9IGNhcHRpb25XaWR0aCAvIHBhcnNlSW50KGZvbnRTaXplKSAqIDEuODUsXG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heENoYXJzUGVyTGluZSA9IE1hdGguZmxvb3IoY2hhcmFjdGVyc1BlckxpbmUpLFxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0ZWRNYXhMaW5lcyA9IE1hdGguY2VpbCh0ZXh0X2xpbWl0IC8gY2hhcmFjdGVyc1BlckxpbmUpO1xuLy8gICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHNwbGl0Q2FwdGlvbiA9IGNhcHRpb25UZXh0LnNwbGl0KCc8YnI+JyksXG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVzQ29uc3VtZWQgPSAwLFxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICBhZGp1c3RlZFRleHRMaW1pdCA9IDA7XG4vLyAgICAgICAgICAgICAgICAgICAgICAgICBqUXVlcnkuZWFjaChzcGxpdENhcHRpb24sIGZ1bmN0aW9uICgpIHtcbi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGluZXNMZWZ0ID0gcHJvamVjdGVkTWF4TGluZXMgLSBsaW5lc0NvbnN1bWVkO1xuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsaW5lc0xlZnQgPiAwKSB7XG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0aGlzTGluZXNDb25zdW1lZCA9IE1hdGgubWF4KDEsIE1hdGguY2VpbCh0aGlzLmxlbmd0aCAvIGNoYXJhY3RlcnNQZXJMaW5lKSk7XG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkanVzdGVkVGV4dExpbWl0ICs9IE1hdGgubWluKHRoaXMubGVuZ3RoICsgNCwgbGluZXNMZWZ0ICogbWF4Q2hhcnNQZXJMaW5lKTtcbi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZXNDb25zdW1lZCArPSB0aGlzTGluZXNDb25zdW1lZDtcbi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4vLyAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbi8vICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRfbGltaXQgPSBhZGp1c3RlZFRleHRMaW1pdDtcbi8vICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB2YXIgc2hvcnRfdGV4dCA9IGNhcHRpb25UZXh0LnN1YnN0cmluZygwLCB0ZXh0X2xpbWl0KTtcbiAgICAgICAgICAgICAgICAgICAgc2hvcnRfdGV4dCA9IGNhcHRpb25UZXh0Lmxlbmd0aCA+IHRleHRfbGltaXQgPyBzaG9ydF90ZXh0LnN1YnN0cigwLCBNYXRoLm1pbihzaG9ydF90ZXh0Lmxlbmd0aCwgc2hvcnRfdGV4dC5sYXN0SW5kZXhPZihcIiBcIikpKSA6IHNob3J0X3RleHQ7XG5cblxuICAgICAgICAgICAgICAgICAgICAvL0N1dCB0aGUgdGV4dCBiYXNlZCBvbiBsaW1pdHMgc2V0XG4gICAgICAgICAgICAgICAgICAgIGlmICgkY2FwdGlvbi5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRjYXB0aW9uLmh0bWwoc2J5TGlua2lmeShzaG9ydF90ZXh0KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2hvcnRfdGV4dCA9PT0gY2FwdGlvblRleHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY2FwdGlvbi5uZXh0KCcuc2J5X2V4cGFuZCcpLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmICgkaG92ZXJDYXB0aW9uLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGhvdmVyQ2FwdGlvblRleHQgPSBzaG9ydF90ZXh0O1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNob3J0X3RleHQgIT09IGNhcHRpb25UZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaG92ZXJDYXB0aW9uVGV4dCArPSAnPHNwYW4gY2xhc3M9XCJzYnlfbW9yZVwiPi4uLjwvc3Bhbj4nO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJGhvdmVyQ2FwdGlvbi5odG1sKGhvdmVyQ2FwdGlvblRleHQpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy9TaG93IHRoZSAnU2VlIE1vcmUnIGxpbmsgaWYgbmVlZGVkXG4gICAgICAgICAgICAgICAgICAgIGlmIChjYXB0aW9uVGV4dC5sZW5ndGggPiB0ZXh0X2xpbWl0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkaXRlbS5maW5kKCcuc2J5X2V4cGFuZCcpLnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvL0NsaWNrIGZ1bmN0aW9uXG4gICAgICAgICAgICAgICAgICAgICRpdGVtLmZpbmQoJy5zYnlfZXhwYW5kIGEnKS5vZmYoJ2NsaWNrJykub24oJ2NsaWNrJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciAkZXhwYW5kID0galF1ZXJ5KHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJGNhcHRpb24gPSB0eXBlb2YgJGNhcHRpb24gIT09ICd1bmRlZmluZWQnID8gJGNhcHRpb24gOiAkaXRlbS5maW5kKCcuc2J5X2luZm8gLnNieV9jYXB0aW9uJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXB0aW9uVGV4dCA9IHR5cGVvZiBjYXB0aW9udGV4dCAhPT0gJ3VuZGVmaW5lZCcgPyBjYXB0aW9uVGV4dCA6IHNieUVuY29kZUlucHV0KCRpdGVtLmZpbmQoJy5zYnlfaXRlbV92aWRlb190aHVtYm5haWwnKS5hdHRyKCdkYXRhLXRpdGxlJykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRpdGVtLmhhc0NsYXNzKCdzYnlfY2FwdGlvbl9mdWxsJykgJiYgdHlwZW9mIHNob3J0X3RleHQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGNhcHRpb24uaHRtbChzaG9ydF90ZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaXRlbS5yZW1vdmVDbGFzcygnc2J5X2NhcHRpb25fZnVsbCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY2FwdGlvbi5odG1sKHNieUxpbmtpZnkoY2FwdGlvblRleHQpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaXRlbS5hZGRDbGFzcygnc2J5X2NhcHRpb25fZnVsbCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZmVlZC5hZnRlclJlc2l6ZSgpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLnNldFVwQ1RBKCRpdGVtKTtcblxuICAgICAgICAgICAgICAgIC8vUGhvdG8gbGlua3NcbiAgICAgICAgICAgICAgICAvL0lmIGxpZ2h0Ym94IGlzIGRpc2FibGVkXG4gICAgICAgICAgICAgICAgdmFyIGRpc2FibGVsaWdodGJveCA9IHR5cGVvZiBmZWVkLnNldHRpbmdzLmdlbmVyYWwuZGlzYWJsZWxpZ2h0Ym94ICE9PSAndW5kZWZpbmVkJyA/IGZlZWQuc2V0dGluZ3MuZ2VuZXJhbC5kaXNhYmxlbGlnaHRib3ggOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgIGNhcHRpb25saW5rcyA9IHR5cGVvZiBmZWVkLnNldHRpbmdzLmdlbmVyYWwuY2FwdGlvbmxpbmtzICE9PSAndW5kZWZpbmVkJyA/IGZlZWQuc2V0dGluZ3MuZ2VuZXJhbC5jYXB0aW9ubGlua3MgOiBmYWxzZTtcbiAgICAgICAgICAgICAgICBpZiggZGlzYWJsZWxpZ2h0Ym94IHx8IGNhcHRpb25saW5rcyApe1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChjYXB0aW9ubGlua3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHNieVVybERldGVjdCh0ZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHVybFJlZ2V4ID0gL2h0dHBzPzpcXC9cXC8od3d3XFwuKT9bLWEtekEtWjAtOUA6JS5fXFwrfiM9XXsyLDI1Nn1cXC5bYS16XXsyLDZ9XFxiKFstYS16QS1aMC05QDolX1xcKy5+Iz8mLy89XSopL2c7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRleHQubWF0Y2godXJsUmVnZXgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2FwID0gJyc7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mICRpdGVtLmZpbmQoJ2ltZycpLmF0dHIoJ2FsdCcpICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhcCA9ICRpdGVtLmZpbmQoJ2ltZycpLmF0dHIoJ2FsdCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgJGl0ZW0uZmluZCgndmlkZW8nKS5hdHRyKCdhbHQnKSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXAgPSAkaXRlbS5maW5kKCd2aWRlbycpLmF0dHIoJ2FsdCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgdXJsID0gc2J5VXJsRGV0ZWN0KGNhcCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZih1cmwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaXRlbS5maW5kKCdhJykuYXR0cignaHJlZicsIHVybCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgJGl0ZW0uZmluZCgnLnNieV9saW5rJykuYWRkQ2xhc3MoJ3NieV9kaXNhYmxlX2xpZ2h0Ym94Jyk7XG4gICAgICAgICAgICAgICAgICAgIC8vSWYgbGlnaHRib3ggaXMgZW5hYmxlZCBhZGQgbGlnaHRib3ggbGlua3NcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuXG4gICAgICAgICAgICAgICAgICAgIHZhciAkc2J5X3Bob3RvX3dyYXAgPSAkaXRlbS5maW5kKCcuc2J5X3Bob3RvX3dyYXAnKSxcbiAgICAgICAgICAgICAgICAgICAgICAkc2J5X2xpbmsgPSAkc2J5X3Bob3RvX3dyYXAuZmluZCgnLnNieV9saW5rJyk7XG4gICAgICAgICAgICAgICAgICAgIGZlZWRPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaG92ZXJlZmZlY3Q6ICd0cnVlJ1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBpZihmZWVkT3B0aW9ucy5ob3ZlcmVmZmVjdCA9PSAnbm9uZScpe1xuICAgICAgICAgICAgICAgICAgICAgICAgLy9sYXVuY2ggbGlnaHRib3ggb24gY2xpY2tcbiAgICAgICAgICAgICAgICAgICAgICAgICRzYnlfbGluay5jc3MoJ2JhY2tncm91bmQnLCAnbm9uZScpLnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICRzYnlfbGluay5maW5kKCcqJykuaGlkZSgpLmVuZCgpLmZpbmQoJy5zYnlfbGlua19hcmVhJykuc2hvdygpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgJHNieV9waG90b193cmFwLm9uKCdtb3VzZWVudGVyIG1vdXNlbGVhdmUnLCBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoKGUudHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdtb3VzZWVudGVyJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpdGVtLmFkZENsYXNzKCdzYnlfYW5pbWF0ZScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ21vdXNlbGVhdmUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGl0ZW0ucmVtb3ZlQ2xhc3MoJ3NieV9hbmltYXRlJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB2YXIgdmlkZW9JRCA9IHR5cGVvZiAkaXRlbS5hdHRyKCdkYXRhLXZpZGVvLWlkJykgIT09ICd1bmRlZmluZWQnID8gJGl0ZW0uYXR0cignZGF0YS12aWRlby1pZCcpIDogJGl0ZW0uZmluZCgnLnNieV92aWRlb190aHVtYm5haWwnKS5hdHRyKCdkYXRhLXZpZGVvLWlkJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5tb3N0UmVjZW50bHlMb2FkZWRQb3N0cy5wdXNoKHZpZGVvSUQpO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgdGhpcy5hZnRlckZlZWRTZXQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMuY2Fyb3VzZWxBcmdzICE9PSAndW5kZWZpbmVkJyApIHtcbiAgICAgICAgICAgICAgICAgICAgJCh0aGlzLmVsKS5maW5kKCcuc2J5X2Nhcm91c2VsJykuc2J5T3dsQ2Fyb3VzZWwodGhpcy5jYXJvdXNlbEFyZ3MpO1xuICAgICAgICAgICAgICAgICAgICBpZiAocGFyc2VJbnQodGhpcy5zZXR0aW5ncy5nZW5lcmFsLmNhcm91c2VsWzVdKSA9PT0gMikge1xuICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzLmVsKS5hZGRDbGFzcygnc2J5X2Nhcm91c2VsXzJfcm93Jyk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHRoaXMuc2V0VXBDVEEgPSBmdW5jdGlvbigkaXRlbSx2aWRlb0lEKSB7XG4gICAgICAgICAgICAgICAgLy93aW5kb3cuc2J5LmN0YXNcblxuICAgICAgICAgICAgICAgIHZhciB2aWRlb0lEID0gdHlwZW9mIHZpZGVvSUQgIT09ICd1bmRlZmluZWQnID8gdmlkZW9JRCA6ICRpdGVtLmZpbmQoJy5zYnlfaXRlbV92aWRlb190aHVtYm5haWwnKS5hdHRyKCdkYXRhLXZpZGVvLWlkJyksXG4gICAgICAgICAgICAgICAgICB0ZXh0ID0gc2J5RW5jb2RlSW5wdXQodHlwZW9mICRpdGVtLmZpbmQoJy5zYnlfaXRlbV92aWRlb190aHVtYm5haWwnKS5hdHRyKCdkYXRhLXRpdGxlJykgIT09ICd1bmRlZmluZWQnID8gJGl0ZW0uZmluZCgnLnNieV9pdGVtX3ZpZGVvX3RodW1ibmFpbCcpLmF0dHIoJ2RhdGEtdGl0bGUnKSA6ICcnKSxcbiAgICAgICAgICAgICAgICAgIGN0YUluQ2FwdGlvbiA9IHdpbmRvdy5zYnkuY3RhRGV0ZWN0KHRleHQpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGN0YUluQ2FwdGlvbikge1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuc2J5LmN0YXNbdmlkZW9JRF0gPSBjdGFJbkNhcHRpb247XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LnNieS5jdGFzW3ZpZGVvSURdID0gdGhpcy5nZXREZWZhdWx0Q1RBKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgdGhpcy5nZXREZWZhdWx0Q1RBID0gZnVuY3Rpb24oKXtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2V0dGluZ3MuZ2VuZXJhbC5jdGEgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuc2V0dGluZ3MuZ2VuZXJhbC5jdGEudHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnNldHRpbmdzLmdlbmVyYWwuY3RhLnR5cGUgPT09ICdsaW5rJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjazogJ2xpbmsnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogdGhpcy5zZXR0aW5ncy5nZW5lcmFsLmN0YS5kZWZhdWx0TGluayxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiB0aGlzLnNldHRpbmdzLmdlbmVyYWwuY3RhLmRlZmF1bHRUZXh0LFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjazogJ3JlbGF0ZWQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0ZWQ6IHRoaXMuc2V0dGluZ3MuZ2VuZXJhbC5jdGEuZGVmYXVsdFBvc3RzXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgdGhpcy5hZnRlclJlc2l6ZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0SW1hZ2VIZWlnaHQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNldEltYWdlUmVzb2x1dGlvbigpO1xuICAgICAgICAgICAgICAgIHRoaXMubWF5YmVSYWlzZUltYWdlUmVzb2x1dGlvbigpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0SW1hZ2VTaXplQ2xhc3MoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNldEFsbENUQURpbWVuc2lvbnMoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNpemVQbGF5ZXIoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNpemVJdGVtcygpO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgdGhpcy5zZXRBbGxDVEFEaW1lbnNpb25zID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgJC5lYWNoKHRoaXMuQ1RBLCBmdW5jdGlvbihpbmRleCwgQ1RBT2JqKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChDVEFPYmouaXNJbml0aWFsaXplZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgQ1RBT2JqLnNldENUQVN0eWxlcygpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICB0aGlzLmFmdGVyU2VuZENoZWNrV1BQb3N0c1RvU2VydmVyID0gZnVuY3Rpb24ocmVzcG9uc2Upe1xuICAgICAgICAgICAgICAgIHZhciAkc2VsZiA9ICQodGhpcy5lbCk7XG5cbiAgICAgICAgICAgICAgICAkc2VsZi5maW5kKCcuc2J5X2l0ZW0nKS5lYWNoKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHJlc3BvbnNlWyAkKHRoaXMpLmF0dHIoJ2RhdGEtdmlkZW8taWQnKSBdICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGRhdGEgPSByZXNwb25zZVsgJCh0aGlzKS5hdHRyKCdkYXRhLXZpZGVvLWlkJykgXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vc2J5X3ZpZXdzX2NvdW50XG4gICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmZpbmQoJy5zYnlfdmlld19jb3VudCcpLnRleHQoZGF0YS5zYnlfdmlld19jb3VudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmZpbmQoJy5zYnlfY29tbWVudF9jb3VudCcpLnRleHQoZGF0YS5zYnlfY29tbWVudF9jb3VudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmZpbmQoJy5zYnlfbGlrZV9jb3VudCcpLnRleHQoZGF0YS5zYnlfbGlrZV9jb3VudCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vU2V0IGZvciBhdHRyaWJ1dGVzIHRvby5cbiAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuZmluZCgnLnNieV92aWRlb190aHVtYm5haWwnKS5hdHRyKCdkYXRhLXZpZXdzJyxkYXRhLnNieV92aWV3X2NvdW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuZmluZCgnLnNieV92aWRlb190aHVtYm5haWwnKS5hdHRyKCdkYXRhLWNvbW1lbnQtY291bnQnLCBkYXRhLnNieV9jb21tZW50X2NvdW50KTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEuc2J5X2xpdmVfYnJvYWRjYXN0LmJyb2FkY2FzdF90eXBlICE9PSAnbm9uZScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmZpbmQoJy5zYnlfbHNfbWVzc2FnZScpLnRleHQoZGF0YS5zYnlfbGl2ZV9icm9hZGNhc3QubGl2ZV9zdHJlYW1pbmdfc3RyaW5nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmZpbmQoJy5zYnlfZGF0ZScpLmh0bWwoZGF0YS5zYnlfbGl2ZV9icm9hZGNhc3QubGl2ZV9zdHJlYW1pbmdfZGF0ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGRhdGEuc2J5X2xpdmVfYnJvYWRjYXN0LmxpdmVfc3RyZWFtaW5nX3RpbWVzdGFtcCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmF0dHIoJ2RhdGEtbGl2ZS1kYXRlJyxkYXRhLnNieV9saXZlX2Jyb2FkY2FzdC5saXZlX3N0cmVhbWluZ190aW1lc3RhbXApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBkYXRhLnNieV9kZXNjcmlwdGlvbiAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmZpbmQoJy5zYnlfaXRlbV92aWRlb190aHVtYm5haWwnKS5hdHRyKCdkYXRhLXRpdGxlJywgc2J5RW5jb2RlSW5wdXQoZGF0YS5zYnlfZGVzY3JpcHRpb24pICk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoJy5zYnlfcGxheWVyX2l0ZW0nKS5lYWNoKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHJlc3BvbnNlWyAkKHRoaXMpLmZpbmQoJy5zYnlfdmlkZW9fdGh1bWJuYWlsJykuYXR0cignZGF0YS12aWRlby1pZCcpIF0gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IHJlc3BvbnNlWyAkKHRoaXMpLmZpbmQoJy5zYnlfdmlkZW9fdGh1bWJuYWlsJykuYXR0cignZGF0YS12aWRlby1pZCcpIF07XG4gICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmZpbmQoJy5zYnlfdmlld19jb3VudCcpLnRleHQoZGF0YS5zYnlfdmlld19jb3VudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmZpbmQoJy5zYnlfY29tbWVudF9jb3VudCcpLnRleHQoZGF0YS5zYnlfY29tbWVudF9jb3VudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmZpbmQoJy5zYnlfbGlrZV9jb3VudCcpLnRleHQoZGF0YS5zYnlfbGlrZV9jb3VudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YS5zYnlfbGl2ZV9icm9hZGNhc3QuYnJvYWRjYXN0X3R5cGUgIT09ICdub25lJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuZmluZCgnLnNieV9sc19tZXNzYWdlJykudGV4dChkYXRhLnNieV9saXZlX2Jyb2FkY2FzdC5saXZlX3N0cmVhbWluZ19zdHJpbmcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuZmluZCgnLnNieV9kYXRlJykuaHRtbChkYXRhLnNieV9saXZlX2Jyb2FkY2FzdC5saXZlX3N0cmVhbWluZ19kYXRlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZGF0YS5zYnlfbGl2ZV9icm9hZGNhc3QubGl2ZV9zdHJlYW1pbmdfdGltZXN0YW1wICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuYXR0cignZGF0YS1saXZlLWRhdGUnLGRhdGEuc2J5X2xpdmVfYnJvYWRjYXN0LmxpdmVfc3RyZWFtaW5nX3RpbWVzdGFtcCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHZhciBldnQgPSBqUXVlcnkuRXZlbnQoJ3NieWFmdGVyY2hlY2twb3N0cycpO1xuICAgICAgICAgICAgICAgIGV2dC5mZWVkID0gd2luZG93LnNieS5mZWVkc1tpbmRleF07XG4gICAgICAgICAgICAgICAgZXZ0LnJlc3BvbnNlID0gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgalF1ZXJ5KHdpbmRvdykudHJpZ2dlcihldnQpO1xuXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICB0aGlzLmFmdGVyU3RhdGVDaGFuZ2UgPSBmdW5jdGlvbihwbGF5ZXJJRCx2aWRlb0lELGRhdGEsJHBsYXllcikge1xuICAgICAgICAgICAgICAgIHRoaXMuQ1RBW3BsYXllcklEXS50b2dnbGVDVEEodmlkZW9JRCxkYXRhLmRhdGEsJHBsYXllcik7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICB0aGlzLmNoYW5nZVBsYXllckluZm8gPSBmdW5jdGlvbigkbmV3SXRlbSkge1xuICAgICAgICAgICAgICAgIHZhciAkc2VsZiA9ICQodGhpcy5lbCk7XG4gICAgICAgICAgICAgICAgJHNlbGYuZmluZCgnLnNieV9wbGF5ZXJfaXRlbScpLmZpbmQoJy5zYnlfaW5mbycpLnJlcGxhY2VXaXRoKFxuICAgICAgICAgICAgICAgICAgJG5ld0l0ZW0uZmluZCgnLnNieV9pbmZvJykuY2xvbmUodHJ1ZSx0cnVlKVxuICAgICAgICAgICAgICAgICk7XG4gXG4gICAgICAgICAgICAgICAgY29uc3QgdmlkZW9UaXRsZSA9IGNoZWNrVmFsdWUoJG5ld0l0ZW0uYXR0cignZGF0YS12aWRlby10aXRsZScpKTtcbiAgICAgICAgICAgICAgICBjb25zdCB2aWRlb1B1Ymxpc2hEYXRhID0gY2hlY2tWYWx1ZSgkbmV3SXRlbS5maW5kKCcuc2J5X3ZpZGVvX3RodW1ibmFpbCcpLmF0dHIoJ2RhdGEtZm9ybWF0dGVkLXB1Ymxpc2hlZC1kYXRlJykpIDtcblxuICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoJy5zYnktcGxheWVyLWluZm8gLnNieS12aWRlby1oZWFkZXItaW5mbyAuc2J5LXZpZGVvLWluZm8taGVhZGVyIGg1JykudGV4dCggdmlkZW9UaXRsZSApO1xuICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoJy5zYnktcGxheWVyLWluZm8gLnNieS12aWRlby1oZWFkZXItbWV0YSAuc2J5LXZpZGVvLWRhdGUnKS50ZXh0KCB2aWRlb1B1Ymxpc2hEYXRhICk7XG5cbiAgICAgICAgICAgICAgICByZXNldENvbW1lbnRzKCRzZWxmKTtcbiAgICAgICAgICAgICAgICBvcGVuQ29tbWVudHMoKTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHRoaXMubWF5YmVBZGRDVEEgPSBmdW5jdGlvbihwbGF5ZXJJRCwkZWwpIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMuQ1RBW3BsYXllcklEXSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5DVEFbcGxheWVySURdID0gbmV3IFNieUNUQShwbGF5ZXJJRCx0aGlzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgU2J5RmVlZFByby5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKFNieUZlZWQucHJvdG90eXBlKTtcblxuICAgICAgICBmdW5jdGlvbiBTYnlMaWdodGJveEJ1aWxkZXIoKSB7fVxuXG4gICAgICAgIFNieUxpZ2h0Ym94QnVpbGRlci5wcm90b3R5cGUgPSB7XG4gICAgICAgICAgICBnZXREYXRhOiBmdW5jdGlvbihhKXtcbiAgICAgICAgICAgICAgICB2YXIgY2xvc2VzdEZlZWRJbmRleCA9IHBhcnNlSW50KGEuY2xvc2VzdCgnLnNiX3lvdXR1YmUnKS5hdHRyKCdkYXRhLXNieS1pbmRleCcpLTEpO1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGZlZWRJbmRleCA6IGNsb3Nlc3RGZWVkSW5kZXgsXG4gICAgICAgICAgICAgICAgICAgIGxpbms6IGEuYXR0cihcImhyZWZcIiksXG4gICAgICAgICAgICAgICAgICAgIHZpZGVvVGl0bGU6IHR5cGVvZiBhLmF0dHIoXCJkYXRhLXZpZGVvLXRpdGxlXCIpICE9PSAndW5kZWZpbmVkJyA/IHNieUVuY29kZUlucHV0KGEuYXR0cihcImRhdGEtdmlkZW8tdGl0bGVcIikpIDogJ1lvdVR1YmUgVmlkZW8nLFxuICAgICAgICAgICAgICAgICAgICB2aWRlbzogYS5hdHRyKFwiZGF0YS12aWRlby1pZFwiKSxcbiAgICAgICAgICAgICAgICAgICAgY2hhbm5lbElEOiBhLmF0dHIoXCJkYXRhLWNoYW5uZWwtaWRcIilcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdGVtcGxhdGU6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCI8ZGl2IGlkPSdzYnlfbGlnaHRib3hPdmVybGF5JyBjbGFzcz0nc2J5X2xpZ2h0Ym94T3ZlcmxheSc+PC9kaXY+XCIrXG4gICAgICAgICAgICAgICAgICBcIjxkaXYgaWQ9J3NieV9saWdodGJveCcgY2xhc3M9J3NieV9saWdodGJveCc+XCIrXG4gICAgICAgICAgICAgICAgICBcIjxkaXYgY2xhc3M9J3NieV9sYi1vdXRlckNvbnRhaW5lcic+XCIrXG4gICAgICAgICAgICAgICAgICBcIjxkaXYgY2xhc3M9J3NieV9sYi1jb250YWluZXInPlwiK1xuICAgICAgICAgICAgICAgICAgXCI8aW1nIGNsYXNzPSdzYnlfbGItaW1hZ2UnIGFsdD0nTGlnaHRib3ggaW1hZ2UgcGxhY2Vob2xkZXInIHNyYz0nJyAvPlwiK1xuICAgICAgICAgICAgICAgICAgXCI8ZGl2IGNsYXNzPSdzYnlfbGItcGxheWVyIHNieV9sYi1wbGF5ZXItcGxhY2Vob2xkZXInIGlkPSdzYnlfbGItcGxheWVyJz48L2Rpdj5cIiArXG4gICAgICAgICAgICAgICAgICBcIjxkaXYgY2xhc3M9J3NieV9sYi1uYXYnPjxhIGNsYXNzPSdzYnlfbGItcHJldicgaHJlZj0nIycgPjxwIGNsYXNzPSdzYnktc2NyZWVucmVhZGVyJz5QcmV2aW91cyBTbGlkZTwvcD48c3Bhbj48L3NwYW4+PC9hPjxhIGNsYXNzPSdzYnlfbGItbmV4dCcgaHJlZj0nIycgPjxwIGNsYXNzPSdzYnktc2NyZWVucmVhZGVyJz5OZXh0IFNsaWRlPC9wPjxzcGFuPjwvc3Bhbj48L2E+PC9kaXY+XCIrXG4gICAgICAgICAgICAgICAgICBcIjxkaXYgY2xhc3M9J3NieV9sYi1sb2FkZXInPjxhIGNsYXNzPSdzYnlfbGItY2FuY2VsJz48L2E+PC9kaXY+XCIrXG4gICAgICAgICAgICAgICAgICBcIjwvZGl2PlwiK1xuICAgICAgICAgICAgICAgICAgXCI8L2Rpdj5cIitcbiAgICAgICAgICAgICAgICAgIFwiPGRpdiBjbGFzcz0nc2J5X2xiLWRhdGFDb250YWluZXInPlwiK1xuICAgICAgICAgICAgICAgICAgXCI8ZGl2IGNsYXNzPSdzYnlfbGItZGF0YSc+XCIrXG4gICAgICAgICAgICAgICAgICBcIjxkaXYgY2xhc3M9J3NieV9sYi1kZXRhaWxzJz5cIitcbiAgICAgICAgICAgICAgICAgIFwiPGRpdiBjbGFzcz0nc2J5X2xiLWNhcHRpb24nPjwvZGl2PlwiK1xuICAgICAgICAgICAgICAgICAgXCI8ZGl2IGNsYXNzPSdzYnlfbGItaW5mbyc+XCIrXG4gICAgICAgICAgICAgICAgICBcIjxkaXYgY2xhc3M9J3NieV9sYi1udW1iZXInPjwvZGl2PlwiK1xuICAgICAgICAgICAgICAgICAgXCI8L2Rpdj5cIitcbiAgICAgICAgICAgICAgICAgIFwiPC9kaXY+XCIrXG4gICAgICAgICAgICAgICAgICBcIjxkaXYgY2xhc3M9J3NieV9sYi1jbG9zZUNvbnRhaW5lcic+PGEgY2xhc3M9J3NieV9sYi1jbG9zZSc+PC9hPjwvZGl2PlwiK1xuICAgICAgICAgICAgICAgICAgXCI8L2Rpdj5cIitcbiAgICAgICAgICAgICAgICAgIFwiPC9kaXY+XCIrXG4gICAgICAgICAgICAgICAgICBcIjwvZGl2PlwiO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGJlZm9yZVBsYXllclNldHVwOiBmdW5jdGlvbigkbGlnaHRib3gsZGF0YSxpbmRleCxhbGJ1bSxmZWVkKXtcblxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFmdGVyUGxheWVyU2V0dXA6IGZ1bmN0aW9uICgkbGlnaHRib3gsZGF0YSxpbmRleCxhbGJ1bSkge1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFmdGVyUmVzaXplOiBmdW5jdGlvbigpe1xuICAgICAgICAgICAgICAgIHZhciBwbGF5ZXJIZWlnaHQgPSAkKCcjc2J5X2xpZ2h0Ym94IC5zYnlfbGItcGxheWVyJykuaGVpZ2h0KCk7XG5cbiAgICAgICAgICAgICAgICBpZiAocGxheWVySGVpZ2h0ID4gMTAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBoZWlnaHREaWYgPSAkKCcjc2J5X2xpZ2h0Ym94IC5zYnlfbGItb3V0ZXJDb250YWluZXInKS5oZWlnaHQoKSAtIHBsYXllckhlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGhlaWdodERpZiA+IDEwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkKCcjc2J5X2xpZ2h0Ym94IC5zYnlfbGItcGxheWVyJykuY3NzKCd0b3AnLGhlaWdodERpZi8yKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwYXVzZVBsYXllcjogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygd2luZG93LnNieUxpZ2h0Ym94UGxheWVyID09PSAndW5kZWZpbmVkJ1xuICAgICAgICAgICAgICAgICAgJiYgdHlwZW9mIFlUID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgWVQuZ2V0KCdzYnlfbGItcGxheWVyJykgIT09ICd1bmRlZmluZWQnXG4gICAgICAgICAgICAgICAgICAmJiB0eXBlb2YgWVQuZ2V0KCdzYnlfbGItcGxheWVyJykucGF1c2VWaWRlbyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICBZVC5nZXQoJ3NieV9sYi1wbGF5ZXInKS5wYXVzZVZpZGVvKClcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB3aW5kb3cuc2J5TGlnaHRib3hQbGF5ZXIgIT09ICd1bmRlZmluZWQnXG4gICAgICAgICAgICAgICAgICAmJiB0eXBlb2Ygd2luZG93LnNieUxpZ2h0Ym94UGxheWVyLnBhdXNlVmlkZW8gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LnNieUxpZ2h0Ym94UGxheWVyLnBhdXNlVmlkZW8oKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBTYnlMaWdodGJveEJ1aWxkZXJQcm8ucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShTYnlMaWdodGJveEJ1aWxkZXIucHJvdG90eXBlKTtcblxuICAgICAgICBmdW5jdGlvbiBTYnlMaWdodGJveEJ1aWxkZXJQcm8oKSB7XG4gICAgICAgICAgICBTYnlMaWdodGJveEJ1aWxkZXIuY2FsbCh0aGlzKTtcblxuICAgICAgICAgICAgICAgXG5cbiAgICAgICAgICAgIHRoaXMuZ2V0RGF0YSA9IGZ1bmN0aW9uKGEpe1xuICAgICAgICAgICAgICAgIGNvbnN0IGZlZWRQYXJlbnQgPSBhLmNsb3Nlc3QoJy5zYl95b3V0dWJlJyk7XG4gICAgICAgICAgICAgICAgdmFyIGNsb3Nlc3RGZWVkSW5kZXggPSBwYXJzZUludChmZWVkUGFyZW50LmF0dHIoJ2RhdGEtc2J5LWluZGV4JyktMSk7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3Vic2NyaWJlQnRuVGV4dCA9IGZlZWRQYXJlbnQuYXR0cignZGF0YS1zdWJzY3JpYmUtYnRuLXRleHQnKTtcbiAgICAgICAgICAgICAgICBjb25zdCBzdWJzY3JpYmVCdG4gPSBmZWVkUGFyZW50LmF0dHIoJ2RhdGEtc3Vic2NyaWJlLWJ0bicpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbG9yU2NoZW1lID0gZmVlZFBhcmVudC5oYXNDbGFzcygnc2J5X3BhbGV0dGVfZGFyaycpID8gJ2RhcmsnIDogJ2xpZ2h0JztcbiAgICAgICAgICAgICAgICBjb25zdCBhdHRzID0gZmVlZFBhcmVudC5hdHRyKCdkYXRhLXNob3J0Y29kZS1hdHRzJyk7XG4gICAgICAgICAgICAgICAgY29uc3QgbGl2ZURhdGFBdHRyID0gYS5jbG9zZXN0KCcuc2J5X2l0ZW0nKS5hdHRyKCdkYXRhLWxpdmUtZGF0ZScpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoYW5uZWxIZWFkZXJDb2xvcnNBdHRyID0gZmVlZFBhcmVudC5hdHRyKCdkYXRhX2NoYW5uZWxfaGVhZGVyX2NvbG9ycycpID8gIEpTT04ucGFyc2UoZmVlZFBhcmVudC5hdHRyKCdkYXRhX2NoYW5uZWxfaGVhZGVyX2NvbG9ycycpKSA6ICcnO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgZmVlZEluZGV4IDogY2xvc2VzdEZlZWRJbmRleCxcbiAgICAgICAgICAgICAgICAgICAgbGluazogYS5hdHRyKFwiaHJlZlwiKSxcbiAgICAgICAgICAgICAgICAgICAgdmlkZW86IGEuYXR0cihcImRhdGEtdmlkZW8taWRcIiksXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBzYnlFbmNvZGVJbnB1dChhLmF0dHIoXCJkYXRhLXRpdGxlXCIpKSxcbiAgICAgICAgICAgICAgICAgICAgdmlkZW9UaXRsZTogdHlwZW9mIGEuYXR0cihcImRhdGEtdmlkZW8tdGl0bGVcIikgIT09ICd1bmRlZmluZWQnID8gc2J5RW5jb2RlSW5wdXQoYS5hdHRyKFwiZGF0YS12aWRlby10aXRsZVwiKSkgOiAnWW91VHViZSBWaWRlbycsXG4gICAgICAgICAgICAgICAgICAgIGF2YXRhcjogYS5hdHRyKFwiZGF0YS1hdmF0YXJcIiksXG4gICAgICAgICAgICAgICAgICAgIHVzZXI6IHNieUVuY29kZUlucHV0KGEuYXR0cihcImRhdGEtdXNlclwiKSksXG4gICAgICAgICAgICAgICAgICAgIGNoYW5uZWxVUkw6IGEuYXR0cihcImRhdGEtdXJsXCIpLFxuICAgICAgICAgICAgICAgICAgICBjaGFubmVsSUQ6IGEuYXR0cihcImRhdGEtY2hhbm5lbC1pZFwiKSxcbiAgICAgICAgICAgICAgICAgICAgY2hhbm5lbFN1YnNjcmliZXJzOiBhLmNsb3Nlc3QoJy5zYl95b3V0dWJlJykuYXR0cignZGF0YS1jaGFubmVsLXN1YnNjcmliZXJzJyksXG4gICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZUJ0bjogc3Vic2NyaWJlQnRuLFxuICAgICAgICAgICAgICAgICAgICBzdWJzY3JpYmVCdG5UZXh0OiBzdWJzY3JpYmVCdG5UZXh0LFxuICAgICAgICAgICAgICAgICAgICBjb2xvclNjaGVtZTogY29sb3JTY2hlbWUsXG4gICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hlZERhdGU6IGEuYXR0cihcImRhdGEtcHVibGlzaGVkLWRhdGVcIiksXG4gICAgICAgICAgICAgICAgICAgIGNvbW1lbnRDb3VudDogYS5hdHRyKFwiZGF0YS1jb21tZW50LWNvdW50XCIpLFxuICAgICAgICAgICAgICAgICAgICB2aWV3czogYS5hdHRyKFwiZGF0YS12aWV3c1wiKSxcbiAgICAgICAgICAgICAgICAgICAgbGl2ZURhdGE6IGxpdmVEYXRhQXR0cixcbiAgICAgICAgICAgICAgICAgICAgY2hhbm5lbEhlYWRlckNvbG9ycyA6IGNoYW5uZWxIZWFkZXJDb2xvcnNBdHRyLFxuICAgICAgICAgICAgICAgICAgICBhdHRzOiBhdHRzXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgdGhpcy50ZW1wbGF0ZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBgXG4gICAgICAgICAgICAgICAgPGRpdiBpZD0nc2J5X2xpZ2h0Ym94T3ZlcmxheScgY2xhc3M9J3NieV9saWdodGJveE92ZXJsYXknPjwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9J3NieV9saWdodGJveCcgY2xhc3M9J3NieV9saWdodGJveCc+XG4gICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J3NieV9sYi1oZWFkZXInPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nc2J5X2xiLW91dGVyQ29udGFpbmVyJz5cbiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9J3NieV9sYi1jbG9zZSc+PC9hPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdzYnlfbGItY29udGFpbmVyJz5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdzYnlfbGJfdmlkZW9fdGh1bWJuYWlsX3dyYXAnPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9J3NieV9sYl92aWRlb190aHVtYm5haWwnPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPSdzYnlfbGItaW1hZ2UnIGFsdD0nTGlnaHRib3ggaW1hZ2UgcGxhY2Vob2xkZXInIHNyYz0nJyAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdzYnlfbGItcGxheWVyJyBpZD0nc2J5X2xiLXBsYXllcic+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nc2J5X2xiLW5hdic+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0nc2J5X2xiLXByZXYnIGhyZWY9JyMnPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0nc2J5LXNjcmVlbnJlYWRlcic+UHJldmlvdXMgU2xpZGU8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSdzYnlfbGItbmV4dCcgaHJlZj0nIyc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSdzYnktc2NyZWVucmVhZGVyJz5OZXh0IFNsaWRlPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nc2J5X2xiLWxvYWRlcic+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0nc2J5X2xiLWNhbmNlbCc+PC9hPlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nc2J5X2xiLWRhdGFDb250YWluZXInPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdzYnlfbGItZGF0YSc+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nc2J5X2xiLWRldGFpbHMnPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nc2J5X2xiLWNhcHRpb24nPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdzYnlfbGItaW5mbyc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J3NieV9sYi1udW1iZXInPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+YDtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHRoaXMuYmVmb3JlUGxheWVyU2V0dXAgPSBmdW5jdGlvbigkbGlnaHRib3gsZGF0YSxpbmRleCxhbGJ1bSxmZWVkKXtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAkKCdib2R5JykuY3NzKCdvdmVyZmxvdycsICdoaWRkZW4nKTtcbiAgICAgICAgICAgICAgICBpZiAoISRsaWdodGJveC5maW5kKCcuc2J5X2N0YV9pdGVtc193cmFwcycpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAkbGlnaHRib3guZmluZCgnLnNieV9sYl92aWRlb190aHVtYm5haWxfd3JhcCcpLmFwcGVuZCgkKGZlZWQuZWwpLmZpbmQoJy5zYnlfY3RhX2l0ZW1zX3dyYXBzJykuY2xvbmUoKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgJGxpZ2h0Ym94LmZpbmQoJy5zYnlfY3RhX2l0ZW1zX3dyYXBzJykucmVwbGFjZVdpdGgoJChmZWVkLmVsKS5maW5kKCcuc2J5X2N0YV9pdGVtc193cmFwcycpLmNsb25lKCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHRoaXMuYWZ0ZXJQbGF5ZXJTZXR1cCA9IGZ1bmN0aW9uKCRsaWdodGJveCxkYXRhLGluZGV4LGFsYnVtKSB7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmF2YWlsYWJsZUF2YXRhclVybHMgPSB7fTtcbiAgICAgICAgICAgICAgICBjb25zdCBzdWJzY3JpYmVTZWN0aW9uID0gZGF0YT8uc3Vic2NyaWJlQnRuID8gZGF0YS5zdWJzY3JpYmVCdG4gOiBmYWxzZTtcbiAgICAgICAgICAgICAgICBjb25zdCBzdWJzY3JpYmVCdG5UZXh0ID0gZGF0YT8uc3Vic2NyaWJlQnRuVGV4dCA/IGRhdGEuc3Vic2NyaWJlQnRuVGV4dCA6ICcnO1xuXG5cbiAgICAgICAgICAgICAgICBjb25zdCBzdWJzY3JpYmVDbGFzcyA9IHN1YnNjcmliZVNlY3Rpb24gPyAnc2J5X2xiLWNoYW5uZWwtaW5mbycgOiAnc2J5X2xiLW5vLWNoYW5uZWwtaW5mbydcblxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygc2J5TGlnaHRib3hBY3Rpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNieUxpZ2h0Ym94QWN0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIH0sMTAwKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZihkYXRhPy5jb2xvclNjaGVtZSAmJiAnZGFyaycgPT09IGRhdGEuY29sb3JTY2hlbWUgKSB7XG4gICAgICAgICAgICAgICAgICAgIExpZ2h0Ym94Q29sb3JTY2hlbWUoZGF0YS5jb2xvclNjaGVtZSwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbGV0IGF2YXRhckltYWdlID0gJycsXG5cbiAgICAgICAgICAgICAgICBzdWJzY3JpYmVCdG4gPSBzdWJzY3JpYmVTZWN0aW9uID8gJzxhIGNsYXNzPVwic2J5LWxiLXN1YnNjcmliZS1idG5cIiBocmVmPVwiaHR0cDovL3d3dy55b3V0dWJlLmNvbS9jaGFubmVsLycrIGRhdGEuY2hhbm5lbElEICsnP3N1Yl9jb25maXJtYXRpb249MSZmZWF0dXJlPXN1YnNjcmliZS1lbWJlZC1jbGlja1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIj4nKyBnZXRTdGF0aWNTVkcoJ3lvdXR1YmUnKSArJyA8cD4nICsgc3Vic2NyaWJlQnRuVGV4dCArJzwvcD48L2E+JyA6ICcnO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZGF0YS5hdmF0YXIgIT09ICd1bmRlZmluZWQnICYmIGRhdGEuYXZhdGFyICE9PSAnJyAmJiB0eXBlb2YgZGF0YS51c2VyICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICBhdmF0YXJJbWFnZSA9IChkYXRhLmF2YXRhciAhPT0gJ3VuZGVmaW5lZCcpID8gZGF0YS5hdmF0YXIgOiAnJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBkYXRhLnVzZXIgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGpRdWVyeS5lYWNoKHdpbmRvdy5zYnkuZmVlZHMsIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmF2YWlsYWJsZUF2YXRhclVybHMgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiB0aGlzLmF2YWlsYWJsZUF2YXRhclVybHNbZGF0YS51c2VyXSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5hdmFpbGFibGVBdmF0YXJVcmxzW2RhdGEudXNlcl0gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXZhdGFySW1hZ2UgPSB0aGlzLmF2YWlsYWJsZUF2YXRhclVybHNbZGF0YS51c2VyXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgYXZhdGFySW1hZ2VIdG1sID0gYXZhdGFySW1hZ2UgPyAnPGltZyBzcmM9XCInKyBhdmF0YXJJbWFnZSArJ1wiIHJlZmVycmVyUG9saWN5PVwibm8tcmVmZXJyZXJcIi8+JyA6IGdldFN0YXRpY1NWRygncHJvZmlsZS1waWN0dXJlJyk7XG4gICAgICAgICAgICAgICAgY29uc3QgdXNlckh0bWwgPSBzdWJzY3JpYmVTZWN0aW9uID8gJzxkaXYgY2xhc3M9XCJzYnktbGItY2hhbm5lbC1oZWFkZXJcIj48YSBjbGFzcz1cInNieV9saWdodGJveF91c2VybmFtZVwiIGhyZWY9XCInKyBkYXRhLmNoYW5uZWxVUkwrJ1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+JysgYXZhdGFySW1hZ2VIdG1sICsgJzxwIGNsYXNzPVwic2J5LWxiLWNoYW5uZWwtbmFtZS13aXRoLXN1YnNcIj48c3Bhbj5AJytkYXRhLnVzZXIgKyAnPC9zcGFuPjxzcGFuPicgKyBkYXRhLmNoYW5uZWxTdWJzY3JpYmVycyAgKyc8L3NwYW4+PC9wPjwvYT4gJyArIHN1YnNjcmliZUJ0biArICc8L2Rpdj4nIDogJyc7XG5cbiAgICAgICAgICAgICAgICBpZiggd2luZG93LnNieU9wdGlvbnMuaXNQcm8gKSB7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IGRhdGE/LnRpdGxlID8gYWRkTGlua3NUb3RleHQoZGF0YS50aXRsZSkgOiAnJztcbiAgICAgICAgICAgICAgICBjb25zdCBwdWJsaXNoZWREYXRlID0gZGF0YT8ucHVibGlzaGVkRGF0ZSA/IHRpbWVBZ28oY29udmVydFVuaXhUb01zKGRhdGEucHVibGlzaGVkRGF0ZSkpIDogJyc7XG4gICAgICAgICAgICAgICAgY29uc3Qgdmlld3MgPSBkYXRhPy52aWV3cyA/IGRhdGEudmlld3MgOiAnJztcblxuICAgICAgICAgICAgICAgIGNvbnN0IHZpZGVvSGVhZGVyU2VjdGlvbiAgPSBgXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYnlfbGItdmlkZW8taGVhZGluZ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGgzPiR7ZGF0YS52aWRlb1RpdGxlfTwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2J5X2xiLXZpZGVvLWluZm9cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4ke3ZpZXdzfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNieV9sYi1zcGFjZXJcIj7Ctzwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4ke3B1Ymxpc2hlZERhdGV9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIGA7XG5cbiAgICAgICAgICAgICAgICBjb25zdCB2aWRlb0Rlc2NyaXB0aW9uaHRtbCA9IGBcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNieV9sYi12aWRlby1kZXNjcmlwdGlvbi13cmFwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2J5X2xiLWRlc2NyaXB0aW9uIHNieS1yZWFkLW1vcmUtdGFyZ2V0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtkZXNjcmlwdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNieV9sYi1tb3JlLWluZm8tYnRuIHNieS1yZWFkLW1vcmUtdHJpZ2dlclwiPkRlc2NyaXB0aW9uJHtnZXRTdGF0aWNTVkcoJ2FuZ2xlLWRvd24nKX08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgYDtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbW1lbnRTZWN0aW9uSHRtbCA9IGBcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNieS1jb21tZW50cy13cmFwXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIGA7XG5cbiAgICAgICAgICAgICAgICBjb25zdCB2aWRlb0Rlc2NyaXB0aW9uID0gZGVzY3JpcHRpb24gPyB2aWRlb0Rlc2NyaXB0aW9uaHRtbCA6ICcnO1xuXG4gICAgICAgICAgICAgICAgJGxpZ2h0Ym94LmZpbmQoXCIuc2J5X2xiLWNhcHRpb25cIikuaHRtbCggYDxkaXYgY2xhc3M9XCJzYnlfbGItY2FwdGlvbi1pbm5lciAke3N1YnNjcmliZUNsYXNzfVwiPmAgKyB2aWRlb0hlYWRlclNlY3Rpb24gKyB1c2VySHRtbCArIHZpZGVvRGVzY3JpcHRpb24gKyBjb21tZW50U2VjdGlvbkh0bWwgKyBgPC9kaXY+YCApLmZhZGVJbihcImZhc3RcIik7XG5cbiAgICAgICAgICAgICAgICBpZiggZGF0YT8ubGl2ZURhdGEgJiYgJzAnID09PSBkYXRhLmxpdmVEYXRhICkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2aWRlb0lkID0gZGF0YT8udmlkZW8gPyBkYXRhLnZpZGVvIDogJyc7IFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBhdHRzID0gZGF0YT8uYXR0cyA/IGRhdGEuYXR0cyA6ICcnO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50Q29tbWVudENvdW50ID0gZGF0YT8uY29tbWVudENvdW50ID8gZGF0YS5jb21tZW50Q291bnQgOiAnJzsgXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9ICRsaWdodGJveC5maW5kKFwiLnNieS1jb21tZW50cy13cmFwXCIpO1xuICAgICAgICAgICAgICAgICAgICBnZW5lcmF0ZUNvbW1lbnRTZWN0aW9uKHZpZGVvSWQsIGF0dHMsIHRhcmdldCwgY3VycmVudENvbW1lbnRDb3VudCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdG9nZ2xlUmVhZE1vcmUoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiggZGF0YT8uY2hhbm5lbEhlYWRlckNvbG9ycyApIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0Q29sb3JzVG9DaGFubmVsSGVhZGVyKGRhdGEuY2hhbm5lbEhlYWRlckNvbG9ycylcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gU2J5Q1RBKHZpZGVvSUQsZmVlZCkge1xuICAgICAgICAgICAgdGhpcy5pc0luaXRpYWxpemVkID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnZpZGVvSUQgPSB2aWRlb0lEO1xuICAgICAgICAgICAgdGhpcy5jYWxsYmFjayA9IHRoaXMucmVsYXRlZDtcbiAgICAgICAgICAgIHRoaXMuY2FsbGJhY2tBcmdzID0ge307XG4gICAgICAgICAgICB0aGlzLmZlZWRPYmpJbkNvbnRleHQgPSBmZWVkO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IDE7XG4gICAgICAgICAgICB0aGlzLm51bUl0ZW1zID0gNDtcbiAgICAgICAgICAgIHRoaXMubnVtSXRlbUNvbHVtbnMgPSAyO1xuICAgICAgICAgICAgdGhpcy4kcGxheWVyID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBTYnlDVEEucHJvdG90eXBlID0ge1xuICAgICAgICAgICAgdG9nZ2xlQ1RBOiBmdW5jdGlvbih2aWRlb0lELGRhdGFOdW0sJHBsYXllcil7XG4gICAgICAgICAgICAgICAgdGhpcy4kcGxheWVyID0gJHBsYXllci5sZW5ndGggPyAkcGxheWVyIDogJCgnLnNieV9sYi1jb250YWluZXInKTsgLy8gdXNlIHRoZSBsaWdodGJveCBjb250YWluZXIgaWYgbm8gcGxheWVyIGlzIHNldFxuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBkYXRhTnVtO1xuICAgICAgICAgICAgICAgIHRoaXMudmlkZW9JRCA9IHZpZGVvSUQ7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0luaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0Q1RBKCk7XG5cbiAgICAgICAgICAgICAgICAvL2N0YURldGVjdFxuXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cuc2J5LmN0YXNbdmlkZW9JRF0gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2FsbGJhY2tBcmdzID0gd2luZG93LnNieS5jdGFzW3ZpZGVvSURdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YXIgY2FsbGJhY2sgPSB0aGlzLmNhbGxiYWNrQXJncy5jYWxsYmFjaztcblxuICAgICAgICAgICAgICAgIGlmIChjYWxsYmFjayA9PT0gJ2xpbmsnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2FsbGJhY2sgPSB0aGlzLmxpbms7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjYWxsYmFjayA9PT0gJ3JlbGF0ZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2FsbGJhY2sgPSB0aGlzLnJlbGF0ZWQ7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChkYXRhTnVtID09PSAyIHx8IGRhdGFOdW0gPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4kcGxheWVyLmZpbmQoJy5zYnlfY3RhX2l0ZW1zX3dyYXBzJykuYWRkQ2xhc3MoJ3NieV9jdGFfaXNfb3BlbicpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICggZGF0YU51bSA9PT0gMiApe1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kcGxheWVyLmZpbmQoJy5zYnlfY3RhX2l0ZW1zX3dyYXBzJykuYWRkQ2xhc3MoJ3NieV9jdGFfc3RhdGVfcGF1c2VkJyk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLiRwbGF5ZXIuZmluZCgnLnNieV9jdGFfaXRlbXNfd3JhcHMnKS5hZGRDbGFzcygnc2J5X2N0YV9zdGF0ZV9lbmRlZCcpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy4kcGxheWVyLmZpbmQoJy5zYnlfY3RhX2l0ZW1zX3dyYXBzJykuc2hvdygpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbGxiYWNrKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0Q1RBU3R5bGVzKCk7XG5cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLiRwbGF5ZXIuZmluZCgnLnNieV9jdGFfaXRlbXNfd3JhcHMnKS5yZW1vdmVDbGFzcygnc2J5X2N0YV9pc19vcGVuJyk7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy4kcGxheWVyLmZpbmQoJy5zYnlfY3RhX2l0ZW1zX3dyYXBzJykuaGlkZSgpXG4gICAgICAgICAgICAgICAgICAgICAgLnJlbW92ZUNsYXNzKCdzYnlfY3RhX3N0YXRlX3BhdXNlZCcpXG4gICAgICAgICAgICAgICAgICAgICAgLnJlbW92ZUNsYXNzKCdzYnlfY3RhX3N0YXRlX2VuZGVkJylcbiAgICAgICAgICAgICAgICAgICAgICAucmVtb3ZlQ2xhc3MoJ3NieV9jdGFfaXNfb3BlbicpO1xuICAgICAgICAgICAgICAgIH1cblxuXG5cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZWxhdGVkOiBmdW5jdGlvbihhcmdzKSB7XG4gICAgICAgICAgICAgICAgdmFyIGN0YU9iaiA9IHRoaXMsXG4gICAgICAgICAgICAgICAgICBmZWVkT2JqSW5Db250ZXh0ID0gdGhpcy5mZWVkT2JqSW5Db250ZXh0LFxuICAgICAgICAgICAgICAgICAgcmVsYXRlZCA9IHdpbmRvdy5zYnkuc2h1ZmZsZSh0aGlzLmdldFJlbGF0ZWQoZmVlZE9iakluQ29udGV4dCkpLFxuICAgICAgICAgICAgICAgICAgYWRkZWQgPSAwLFxuICAgICAgICAgICAgICAgICAgY3VycmVudFZpZGVvSWQgPSB0aGlzLnZpZGVvSUQsXG4gICAgICAgICAgICAgICAgICAkcGxheWVyID0gdGhpcy4kcGxheWVyO1xuXG4gICAgICAgICAgICAgICAgdGhpcy4kcGxheWVyLmZpbmQoJy5zYnlfY3RhX2l0ZW1zX3dyYXBzJylcbiAgICAgICAgICAgICAgICAgIC5yZW1vdmVDbGFzcygnc2J5X2N0YV9jb2xzXycgKyB0aGlzLm51bUl0ZW1Db2x1bW5zKTtcblxuICAgICAgICAgICAgICAgIHRoaXMubnVtSXRlbXMgPSA0O1xuICAgICAgICAgICAgICAgIHRoaXMubnVtSXRlbUNvbHVtbnMgPSAyO1xuXG4gICAgICAgICAgICAgICAgaWYgKCRwbGF5ZXIud2lkdGgoKSA8IDQ4MCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm51bUl0ZW1zID0gMTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5udW1JdGVtQ29sdW1ucyA9IDFcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB2YXIgbnVtSXRlbXMgPSB0aGlzLm51bUl0ZW1zO1xuXG4gICAgICAgICAgICAgICAgJC5lYWNoKHJlbGF0ZWQsIGZ1bmN0aW9uKGluZGV4LCB2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUudmlkZW9JRCAhPT0gY3VycmVudFZpZGVvSWQgJiYgYWRkZWQgPCBudW1JdGVtcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgJHBsYXllci5maW5kKCcuc2J5X2N0YV9pdGVtc193cmFwcyAuc2J5X2N0YV9pbm5lcl93cmFwJykuYXBwZW5kKCc8ZGl2IGNsYXNzPVwic2J5X2N0YV9pdGVtXCI+PGRpdiBjbGFzcz1cInNieV92aWRlb190aHVtYm5haWxfd3JhcFwiPicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnPGEgY2xhc3M9XCJzYnlfdmlkZW9fdGh1bWJuYWlsXCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKTtcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiIGRhdGEtdmlkZW8taWQ9XCInK3ZhbHVlLnZpZGVvSUQrJ1wiPicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz1cInNieV90aHVtYm5haWxfaG92ZXJcIj4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9XCJzYnlfdGh1bWJuYWlsX2hvdmVyX2lubmVyXCI+JyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICc8c3BhbiBjbGFzcz1cInNieV92aWRlb190aXRsZVwiPicrdmFsdWUudGl0bGUrJzwvc3Bhbj4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvZGl2PicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnPC9kaXY+JyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICc8c3BhbiBjbGFzcz1cInNieS1zY3JlZW5yZWFkZXJcIj5QbGF5PC9zcGFuPicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnPGltZyBzcmM9XCInK3ZhbHVlLnRodW1ibmFpbCsnXCIgYWx0PVwiJyt2YWx1ZS50aXRsZSsnXCI+JyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICc8c3BhbiBjbGFzcz1cInNieV9sb2FkZXIgc2J5X2hpZGRlblwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpO1wiPjwvc3Bhbj4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvYT4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvZGl2PicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnPC9kaXY+Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBhZGRlZCsrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAkcGxheWVyLmZpbmQoJy5zYnlfY3RhX2l0ZW1zX3dyYXBzIC5zYnlfdmlkZW9fdGh1bWJuYWlsJykuZWFjaChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5vZmYoKS5vbignY2xpY2snLGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBuZXdWaWRlb0lEID0gJCh0aGlzKS5hdHRyKCdkYXRhLXZpZGVvLWlkJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBmZWVkT2JqSW5Db250ZXh0Lm9uVGh1bWJuYWlsQ2xpY2soJCh0aGlzKSx0cnVlLG5ld1ZpZGVvSUQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY3RhT2JqLnZpZGVvSUQgPSBuZXdWaWRlb0lEO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldFJlbGF0ZWQ6IGZ1bmN0aW9uKGZlZWRPYmpJbkNvbnRleHQpIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGZlZWRPYmpJbkNvbnRleHQuc2V0dGluZ3MuZ2VuZXJhbC5jdGEuZGVmYXVsdFBvc3RzWzBdID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICB2YXIgJGZlZWRFbCA9ICQoZmVlZE9iakluQ29udGV4dC5lbCksXG4gICAgICAgICAgICAgICAgICAgICAgcmVsYXRlZFZpZHMgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgJGZlZWRFbC5maW5kKCcuc2J5X2l0ZW0nKS5lYWNoKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiAkKHRoaXMpLmZpbmQoJy5zYnlfaXRlbV92aWRlb190aHVtYm5haWwnKS5hdHRyKCdkYXRhLWZ1bGwtcmVzJykgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRoaXNWaWQgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZGVvSUQ6ICQodGhpcykuYXR0cignZGF0YS12aWRlby1pZCcpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogc2J5RW5jb2RlSW5wdXQoJCh0aGlzKS5hdHRyKCdkYXRhLXZpZGVvLXRpdGxlJykpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHVtYm5haWw6ICQodGhpcykuZmluZCgnLnNieV9pdGVtX3ZpZGVvX3RodW1ibmFpbCcpLmF0dHIoJ2RhdGEtZnVsbC1yZXMnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsYXRlZFZpZHMucHVzaCh0aGlzVmlkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZWxhdGVkVmlkcztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZlZWRPYmpJbkNvbnRleHQuc2V0dGluZ3MuZ2VuZXJhbC5jdGEuZGVmYXVsdFBvc3RzO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxpbms6IGZ1bmN0aW9uKGFyZ3MpIHtcbiAgICAgICAgICAgICAgICB2YXIgJHBsYXllciA9IHRoaXMuJHBsYXllcixcbiAgICAgICAgICAgICAgICAgIGZlZWRPYmpJbkNvbnRleHQgPSB0aGlzLmZlZWRPYmpJbkNvbnRleHQ7XG5cbiAgICAgICAgICAgICAgICB0aGlzLiRwbGF5ZXIuZmluZCgnLnNieV9jdGFfaXRlbXNfd3JhcHMnKVxuICAgICAgICAgICAgICAgICAgLnJlbW92ZUNsYXNzKCdzYnlfY3RhX2NvbHNfJyArIHRoaXMubnVtSXRlbUNvbHVtbnMpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5udW1JdGVtcyA9IDE7XG4gICAgICAgICAgICAgICAgdGhpcy5udW1JdGVtQ29sdW1ucyA9IDE7XG5cbiAgICAgICAgICAgICAgICB2YXIgc3R5bGUgPSAnJyxcbiAgICAgICAgICAgICAgICAgIHN0eWxlQ2xhc3MgPSAnJztcblxuICAgICAgICAgICAgICAgIGlmIChmZWVkT2JqSW5Db250ZXh0LnNldHRpbmdzLmdlbmVyYWwuY3RhLmNvbG9yICE9PSAnJyB8fCBmZWVkT2JqSW5Db250ZXh0LnNldHRpbmdzLmdlbmVyYWwuY3RhLnRleHRDb2xvciAhPT0gJycpIHtcbiAgICAgICAgICAgICAgICAgICAgc3R5bGUgPSAnIHN0eWxlPVwiJztcbiAgICAgICAgICAgICAgICAgICAgc3R5bGVDbGFzcyA9ICcgc2J5X2N1c3RvbSc7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGZlZWRPYmpJbkNvbnRleHQuc2V0dGluZ3MuZ2VuZXJhbC5jdGEuY29sb3IgIT09ICcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZSArPSAnYmFja2dyb3VuZDogcmdiKCcgKyBmZWVkT2JqSW5Db250ZXh0LnNldHRpbmdzLmdlbmVyYWwuY3RhLmNvbG9yICsgJyk7JztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoZmVlZE9iakluQ29udGV4dC5zZXR0aW5ncy5nZW5lcmFsLmN0YS50ZXh0Q29sb3IgIT09ICcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZSArPSAnY29sb3I6IHJnYignICsgZmVlZE9iakluQ29udGV4dC5zZXR0aW5ncy5nZW5lcmFsLmN0YS50ZXh0Q29sb3IgKyAnKTsnO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlICs9ICdcIic7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdmFyIG9wZW5BdHRzID0gJyc7XG4gICAgICAgICAgICAgICAgaWYgKGZlZWRPYmpJbkNvbnRleHQuc2V0dGluZ3MuZ2VuZXJhbC5jdGEub3BlblR5cGUgPT09ICduZXd3aW5kb3cnKSB7XG4gICAgICAgICAgICAgICAgICAgIG9wZW5BdHRzID0gJyB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiJztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAkcGxheWVyLmZpbmQoJy5zYnlfY3RhX2l0ZW1zX3dyYXBzIC5zYnlfY3RhX2lubmVyX3dyYXAnKS5hcHBlbmQoJzxkaXYgY2xhc3M9XCJzYnlfY3RhX2l0ZW1cIj4nICtcbiAgICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPVwic2J5X2J0bl93cmFwXCI+JyArXG4gICAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz1cInNieV9idG4nK3N0eWxlQ2xhc3MrJ1wiPicgK1xuXG4gICAgICAgICAgICAgICAgICAnPGEgY2xhc3M9XCJzYnlfY3RhX2J1dHRvblwiIGhyZWY9XCInK3RoaXMuY2FsbGJhY2tBcmdzLnVybCsnXCInK29wZW5BdHRzKycgZGF0YS12aWRlby1pZD1cIicrdGhpcy52aWRlb0lEKydcIicrc3R5bGUrJz4nICtcbiAgICAgICAgICAgICAgICAgIHRoaXMuY2FsbGJhY2tBcmdzLnRleHQgK1xuICAgICAgICAgICAgICAgICAgJzwvYT4nICtcbiAgICAgICAgICAgICAgICAgICc8L2Rpdj4nICtcbiAgICAgICAgICAgICAgICAgICc8L2Rpdj4nICtcblxuICAgICAgICAgICAgICAgICAgJzwvZGl2PidcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldENUQVN0eWxlczogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdmFyIHBsYXllclRvcEhlaWdodCA9IDYwLFxuICAgICAgICAgICAgICAgICAgcGxheWVyQm90dG9tSGVpZ2h0ID0gNDksXG4gICAgICAgICAgICAgICAgICBtaW5pbXVtSGVpZ2h0ID0gOTAsXG4gICAgICAgICAgICAgICAgICBjdGFPdmVybGF5SGVpZ2h0ID0gTWF0aC5tYXgobWluaW11bUhlaWdodCx0aGlzLiRwbGF5ZXIuaGVpZ2h0KCkgLSBwbGF5ZXJUb3BIZWlnaHQgLSBwbGF5ZXJCb3R0b21IZWlnaHQpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy4kcGxheWVyLmZpbmQoJy5zYnlfY3RhX2l0ZW1zX3dyYXBzJylcbiAgICAgICAgICAgICAgICAgIC5jc3MoJ2hlaWdodCcsY3RhT3ZlcmxheUhlaWdodCsncHgnKVxuICAgICAgICAgICAgICAgICAgLmNzcygnd2lkdGgnLCh0aGlzLiRwbGF5ZXIuZmluZCgnaWZyYW1lJykud2lkdGgoKS0yMCkrJ3B4JylcbiAgICAgICAgICAgICAgICAgIC5hZGRDbGFzcygnc2J5X2N0YV9jb2xzXycgKyB0aGlzLm51bUl0ZW1Db2x1bW5zKTtcblxuICAgICAgICAgICAgICAgIHZhciBudW1Sb3dzID0gTWF0aC5tYXgoMSx0aGlzLm51bUl0ZW1zL3RoaXMubnVtSXRlbUNvbHVtbnMpLFxuICAgICAgICAgICAgICAgICAgdG90YWxWZXJ0aWNhbFBhZGRpbmcgPSBwYXJzZUludCh0aGlzLiRwbGF5ZXIuZmluZCgnLnNieV9jdGFfaXRlbXNfd3JhcHMnKS5jc3MoJ3BhZGRpbmctdG9wJykucmVwbGFjZSgncHgnLCcnKSkgKiAyLFxuICAgICAgICAgICAgICAgICAgbWF4Q1RBSXRlbUhlaWdodCA9IE1hdGgubWF4KG1pbmltdW1IZWlnaHQsKGN0YU92ZXJsYXlIZWlnaHQtdG90YWxWZXJ0aWNhbFBhZGRpbmcpL251bVJvd3MpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy4kcGxheWVyLmZpbmQoJy5zYnlfY3RhX2l0ZW0nKS5jc3MoJ21heC1oZWlnaHQnLG1heENUQUl0ZW1IZWlnaHQrJ3B4JykuZmluZCgnaW1nJykuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgJ21heC1oZWlnaHQnOiBtYXhDVEFJdGVtSGVpZ2h0KydweCcsXG4gICAgICAgICAgICAgICAgICAgICd3aWR0aCc6ICdhdXRvJyxcbiAgICAgICAgICAgICAgICAgICAgJ21hcmdpbic6ICdhdXRvJ1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuJHBsYXllci5maW5kKCcuc2J5X2J0bl93cmFwJykuY3NzKCdoZWlnaHQnLG1heENUQUl0ZW1IZWlnaHQrJ3B4Jyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzZXRDVEE6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHRoaXMuJHBsYXllci5maW5kKCcuc2J5X2N0YV9pdGVtc193cmFwcyAuc2J5X2N0YV9pbm5lcl93cmFwJykuZW1wdHkoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9O1xuXG4gICAgICAgIHdpbmRvdy5zYnlfaW5pdCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgd2luZG93LnNieSA9IG5ldyBTYnkoKTtcbiAgICAgICAgICAgIHdpbmRvdy5zYnkuY3JlYXRlUGFnZSggd2luZG93LnNieS5jcmVhdGVGZWVkcywge3doZW5GZWVkc0NyZWF0ZWQ6IHdpbmRvdy5zYnkuYWZ0ZXJGZWVkc0NyZWF0ZWR9KTtcbiAgICAgICAgfTtcblxuXG5cbiAgICAgICAgd2luZG93LnNieV9jYXJvdXNlbF9pbml0ID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnbG9nJyk7XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBzYnlHZXROZXdGZWVkKGZlZWQsaW5kZXgsZmVlZE9wdGlvbnMpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgU2J5RmVlZFBybyhmZWVkLGluZGV4LGZlZWRPcHRpb25zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIHNieUdldGxpZ2h0Ym94QnVpbGRlcigpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgU2J5TGlnaHRib3hCdWlsZGVyUHJvKCk7XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBzYnlJc1RvdWNoKCkge1xuICAgICAgICAgICAgaWYgKFwib250b3VjaHN0YXJ0XCIgaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBzYnlDbXBsekdldENvb2tpZShjbmFtZSkge1xuICAgICAgICAgICAgdmFyIG5hbWUgPSBjbmFtZSArIFwiPVwiOyAvL0NyZWF0ZSB0aGUgY29va2llIG5hbWUgdmFyaWFibGUgd2l0aCBjb29raWUgbmFtZSBjb25jYXRlbmF0ZSB3aXRoID0gc2lnblxuICAgICAgICAgICAgdmFyIGNBcnIgPSB3aW5kb3cuZG9jdW1lbnQuY29va2llLnNwbGl0KCc7Jyk7IC8vQ3JlYXRlIGNvb2tpZSBhcnJheSBieSBzcGxpdCB0aGUgY29va2llIGJ5ICc7J1xuXG4gICAgICAgICAgICAvL0xvb3AgdGhyb3VnaCB0aGUgY29va2llcyBhbmQgcmV0dXJuIHRoZSBjb29raWUgdmFsdWUgaWYgaXQgZmluZCB0aGUgY29va2llIG5hbWVcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY0Fyci5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIHZhciBjID0gY0FycltpXS50cmltKCk7XG4gICAgICAgICAgICAgICAgLy9JZiB0aGUgbmFtZSBpcyB0aGUgY29va2llIHN0cmluZyBhdCBwb3NpdGlvbiAwLCB3ZSBmb3VuZCB0aGUgY29va2llIGFuZCByZXR1cm4gdGhlIGNvb2tpZSB2YWx1ZVxuICAgICAgICAgICAgICAgIGlmIChjLmluZGV4T2YobmFtZSkgPT0gMClcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGMuc3Vic3RyaW5nKG5hbWUubGVuZ3RoLCBjLmxlbmd0aCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgICB9XG5cblxuICAgIH0pKGpRdWVyeSk7XG5cbiAgICBpZiAodHlwZW9mIHdpbmRvdy5zYnlFYWdlckxvYWRpbmcgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHdpbmRvdy5zYnlFYWdlckxvYWRpbmcgPSB0eXBlb2Ygd2luZG93LnNieU9wdGlvbnMgIT09ICd1bmRlZmluZWQnID8gd2luZG93LnNieU9wdGlvbnMuZWFnZXJsb2FkIDogZmFsc2U7XG4gICAgICAgIGlmIChqUXVlcnkoJy5lbGVtZW50b3Itd2lkZ2V0LXZpZGVvJykubGVuZ3RoKSB7XG4gICAgICAgICAgICB2YXIgc2V0dGluZ3MgPSB0eXBlb2YgalF1ZXJ5KCcuZWxlbWVudG9yLXdpZGdldC12aWRlbycpLmF0dHIoJ2RhdGEtc2V0dGluZ3MnKSAhPT0gJ3VuZGVmaW5lZCcgPyBKU09OLnBhcnNlKCBqUXVlcnkoJy5lbGVtZW50b3Itd2lkZ2V0LXZpZGVvJykuYXR0cignZGF0YS1zZXR0aW5ncycpKSA6IGZhbHNlO1xuICAgICAgICAgICAgaWYgKHNldHRpbmdzICYmIHR5cGVvZiBzZXR0aW5ncy55b3V0dWJlX3VybCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICB3aW5kb3cuc2J5RWFnZXJMb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChqUXVlcnkoJ2RpdltkYXRhLXZjLXZpZGVvLWJnXScpLmxlbmd0aCkge1xuICAgICAgICAgICAgd2luZG93LnNieUVhZ2VyTG9hZGluZyA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cuc2J5U2VtaUVhZ2VyTG9hZGluZyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgd2luZG93LnNieVNlbWlFYWdlckxvYWRpbmcgPSB0eXBlb2Ygd2luZG93LnNieU9wdGlvbnMgIT09ICd1bmRlZmluZWQnID8gd2luZG93LnNieU9wdGlvbnMuc2VtaUVhZ2VybG9hZCA6IGZhbHNlO1xuICAgICAgICBpZiAoalF1ZXJ5KCdkaXZbZGF0YS12Yy12aWRlby1iZ10nKS5sZW5ndGggfHwgd2luZG93LnNieUVhZ2VyTG9hZGluZykge1xuICAgICAgICAgICAgd2luZG93LnNieVNlbWlFYWdlckxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oJCkge1xuICAgICAgICBpZiAoIXdpbmRvdy5zYnlTZW1pRWFnZXJMb2FkaW5nKSB7XG4gICAgICAgICAgICBzYnlfaW5pdCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ29va2llIE5vdGljZSBieSBkRmFjdG9yeVxuICAgICAgICAkKCcjY29va2llLW5vdGljZSBhJykub24oJ2NsaWNrJyxmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgJC5lYWNoKHdpbmRvdy5zYnkuZmVlZHMsZnVuY3Rpb24oaW5kZXgpe1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuc2J5LmZlZWRzWyBpbmRleCBdLmFmdGVyQ29uc2VudFRvZ2dsZWQoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sMTAwMCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIENvb2tpZSBOb3RpY2UgYnkgZEZhY3RvcnlcbiAgICAgICAgJCgnI2Nvb2tpZS1sYXctaW5mby1iYXIgYScpLm9uKCdjbGljaycsZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICQuZWFjaCh3aW5kb3cuc2J5LmZlZWRzLGZ1bmN0aW9uKGluZGV4KXtcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LnNieS5mZWVkc1sgaW5kZXggXS5hZnRlckNvbnNlbnRUb2dnbGVkKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LDEwMDApO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBHRFBSIENvb2tpZSBDb25zZW50IGJ5IFdlYlRvZmZlZVxuICAgICAgICAkKCcuY2xpLXVzZXItcHJlZmVyZW5jZS1jaGVja2JveCcpLm9uKCdjbGljaycsZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgJC5lYWNoKHdpbmRvdy5zYnkuZmVlZHMsZnVuY3Rpb24oaW5kZXgpe1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuc2J5LmZlZWRzWyBpbmRleCBdLnNldHRpbmdzLmNvbnNlbnRHaXZlbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuc2J5LmZlZWRzWyBpbmRleCBdLmFmdGVyQ29uc2VudFRvZ2dsZWQoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sMTAwMCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIENvb2tpZWJvdFxuICAgICAgICAkKHdpbmRvdykub24oJ0Nvb2tpZWJvdE9uQWNjZXB0JywgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAkLmVhY2god2luZG93LnNieS5mZWVkcyxmdW5jdGlvbihpbmRleCl7XG4gICAgICAgICAgICAgICAgd2luZG93LnNieS5mZWVkc1sgaW5kZXggXS5zZXR0aW5ncy5jb25zZW50R2l2ZW4gPSB0cnVlO1xuICAgICAgICAgICAgICAgIHdpbmRvdy5zYnkuZmVlZHNbIGluZGV4IF0uYWZ0ZXJDb25zZW50VG9nZ2xlZCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIENvbXBsaWFueiBieSBSZWFsbHkgU2ltcGxlIFBsdWdpbnNcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY21wbHpfc3RhdHVzX2NoYW5nZScsIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICBpZiAoZS5kZXRhaWwuY2F0ZWdvcnkgPT09ICdtYXJrZXRpbmcnICYmIGUuZGV0YWlsLnZhbHVlPT09J2FsbG93Jykge1xuICAgICAgICAgICAgICAgICQuZWFjaCh3aW5kb3cuc2J5LmZlZWRzLGZ1bmN0aW9uKGluZGV4KXtcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LnNieS5mZWVkc1sgaW5kZXggXS5zZXR0aW5ncy5jb25zZW50R2l2ZW4gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuc2J5LmZlZWRzWyBpbmRleCBdLmFmdGVyQ29uc2VudFRvZ2dsZWQoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgJChkb2N1bWVudCkub24oJ2NtcGx6RmlyZUNhdGVnb3JpZXMnLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgIGlmICggZXZlbnQuZGV0YWlsLmNhdGVnb3J5PT09J21hcmtldGluZycgKSB7XG4gICAgICAgICAgICAgICAgJC5lYWNoKHdpbmRvdy5zYnkuZmVlZHMsZnVuY3Rpb24oaW5kZXgpe1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuc2J5LmZlZWRzWyBpbmRleCBdLnNldHRpbmdzLmNvbnNlbnRHaXZlbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5zYnkuZmVlZHNbIGluZGV4IF0uYWZ0ZXJDb25zZW50VG9nZ2xlZCgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBCb3JsYWJzIENvb2tpZSBieSBCb3JsYWJzXG4gICAgICAgICQoZG9jdW1lbnQpLm9uKCdib3JsYWJzLWNvb2tpZS1jb25zZW50LXNhdmVkJywgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAkLmVhY2god2luZG93LnNieS5mZWVkcyxmdW5jdGlvbihpbmRleCl7XG4gICAgICAgICAgICAgICAgd2luZG93LnNieS5mZWVkc1sgaW5kZXggXS5zZXR0aW5ncy5jb25zZW50R2l2ZW4gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB3aW5kb3cuc2J5LmZlZWRzWyBpbmRleCBdLmFmdGVyQ29uc2VudFRvZ2dsZWQoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBoaWRlIG5vdGljZSBvbiBjbGljayBhbmQgc2VuZCBhamF4IHJlcXVlc3QgdG8gYmFja2VuZFxuICAgICAgICAkKCcjc2J5LWZyY2UtaGlkZS1saWNlbnNlLWVycm9yJykub24oJ2NsaWNrJyxmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICQoJyNzYnktZnItY2UtbGljZW5zZS1lcnJvcicpLnNsaWRlVXAoKTtcbiAgICAgICAgICAgIGpRdWVyeS5hamF4KHtcbiAgICAgICAgICAgICAgICB1cmw6IHNieU9wdGlvbnMuYWRtaW5BamF4VXJsLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdwb3N0JyxcbiAgICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbjogJ3NieV9oaWRlX2Zyb250ZW5kX2xpY2Vuc2VfZXJyb3InLFxuICAgICAgICAgICAgICAgICAgICBub25jZTogc2J5T3B0aW9ucy5ub25jZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24obXNnKXtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cobXNnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICB9KTtcblxufSAvLyBpZiBzYnlfanNfZXhpc3RzXG5cbmlmICh3aW5kb3cuc2J5U2VtaUVhZ2VyTG9hZGluZykge1xuICAgIHZhciBzYnlZU2NyaXB0SWQgPSBcInNieS15b3V0dWJlLWFwaVwiO1xuICAgIHZhciBzYnlZU2NyaXB0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoc2J5WVNjcmlwdElkKTtcblxuICAgIGlmIChzYnlZU2NyaXB0ID09PSBudWxsKSB7XG4gICAgICAgIHZhciB0YWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic2NyaXB0XCIpO1xuICAgICAgICB2YXIgZmlyc3RTY3JpcHQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcInNjcmlwdFwiKVswXTtcblxuICAgICAgICB0YWcuc3JjID0gXCJodHRwczovL3d3dy55b3V0dWJlLmNvbS9pZnJhbWVfYXBpXCI7XG4gICAgICAgIHRhZy5pZCA9IHNieVlTY3JpcHRJZDtcbiAgICAgICAgZmlyc3RTY3JpcHQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodGFnLCBmaXJzdFNjcmlwdCk7XG5cbiAgICB9XG59XG5cbndpbmRvdy5vbllvdVR1YmVJZnJhbWVBUElSZWFkeSA9IGZ1bmN0aW9uKCkge1xuICAgIHZhciBudW1GZWVkcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3NiX3lvdXR1YmUnKS5sZW5ndGg7XG4gICAgaWYgKG51bUZlZWRzID4gMCkge1xuICAgICAgICBpZiAod2luZG93LnNieVNlbWlFYWdlckxvYWRpbmcpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygd2luZG93LnNieSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bUZlZWRzOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LnNieS5mZWVkc1tpXS5wbGF5ZXJBUElSZWFkeSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB3aW5kb3cuc2J5QVBJUmVhZHkgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2J5X2luaXQoKTtcbiAgICAgICAgfSBlbHNlIHtcblxuICAgICAgICAgICAgaWYgKHdpbmRvdy5zYnlFYWdlckxvYWRpbmcpIHtcbiAgICAgICAgICAgICAgICB2YXIgZmxhZ0xpZ2h0Ym94ID0gZmFsc2UsXG4gICAgICAgICAgICAgICAgICBhdXRvcGxheSA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgalF1ZXJ5KCcuc2JfeW91dHViZScpLmVhY2goZnVuY3Rpb24oaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyICRzZWxmID0galF1ZXJ5KHRoaXMpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICgkc2VsZi5oYXNDbGFzcygnc2J5X2xheW91dF9saXN0JykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGpRdWVyeSh0aGlzKS5hZGRDbGFzcygnc2J5X3BsYXllcl9sb2FkZWQnKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgJHNlbGYuZmluZCgnLnNieV9pdGVtJykuZWFjaChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWRlb0lEID0galF1ZXJ5KHRoaXMpLmF0dHIoJ2RhdGEtdmlkZW8taWQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3RoaXMuY3JlYXRlUGxheWVyKCx2aWRlb0lELDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYXllciA9IG5ldyBZVC5QbGF5ZXIoJ3NieV9wbGF5ZXJfJyt2aWRlb0lELCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzEwMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlkZW9JZDogdmlkZW9JRCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxheWVyVmFyczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZXN0YnJhbmRpbmc6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWw6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvcGxheTogYXV0b3BsYXlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnb25TdGF0ZUNoYW5nZSc6IGZ1bmN0aW9uKGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdmlkZW9JRCA9IGRhdGEudGFyZ2V0LmdldFZpZGVvRGF0YSgpWyd2aWRlb19pZCddO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhLmRhdGEgIT09IDEpIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2VsZi5maW5kKCcuc2J5X2l0ZW0nKS5lYWNoKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbVZpZElEID0galF1ZXJ5KHRoaXMpLmF0dHIoJ2RhdGEtdmlkZW8taWQnKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoalF1ZXJ5KHRoaXMpLmZpbmQoJ2lmcmFtZScpLmxlbmd0aCAmJiBqUXVlcnkoZGF0YS50YXJnZXQuYSkuYXR0cignaWQnKSAhPT0galF1ZXJ5KHRoaXMpLmZpbmQoJ2lmcmFtZScpLmF0dHIoJ2lkJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFlULmdldCgnc2J5X3BsYXllcl8nK2l0ZW1WaWRJRCkucGF1c2VWaWRlbygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJHNlbGYuaGFzQ2xhc3MoJ3NieV9sYXlvdXRfZ2FsbGVyeScpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBqUXVlcnkodGhpcykuYWRkQ2xhc3MoJ3NieV9wbGF5ZXJfbG9hZGVkJyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYXllciA9IG5ldyBZVC5QbGF5ZXIoJ3NieV9wbGF5ZXInK2luZGV4LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnMTAwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlkZW9JZDogalF1ZXJ5KHRoaXMpLmZpbmQoJy5zYnlfaXRlbScpLmZpcnN0KCkuYXR0cignZGF0YS12aWRlby1pZCcpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYXllclZhcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZXN0YnJhbmRpbmc6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbDogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b3BsYXk6IGF1dG9wbGF5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudHM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ29uU3RhdGVDaGFuZ2UnOiBmdW5jdGlvbihkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdmlkZW9JRCA9IGRhdGEudGFyZ2V0LmdldFZpZGVvRGF0YSgpWyd2aWRlb19pZCddO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEuZGF0YSAhPT0gMSkgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNlbGYuZmluZCgnLnNieV9pdGVtJykuZWFjaChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbVZpZElEID0galF1ZXJ5KHRoaXMpLmF0dHIoJ2RhdGEtdmlkZW8taWQnKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChqUXVlcnkodGhpcykuZmluZCgnaWZyYW1lJykubGVuZ3RoICYmIGpRdWVyeShkYXRhLnRhcmdldC5hKS5hdHRyKCdpZCcpICE9PSBqUXVlcnkodGhpcykuZmluZCgnaWZyYW1lJykuYXR0cignaWQnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZVC5nZXQoJ3NieV9wbGF5ZXJfJytpdGVtVmlkSUQpLnBhdXNlVmlkZW8oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ0xpZ2h0Ym94ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB3aW5kb3cuc2J5ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbnVtRmVlZHM7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuc2J5LmZlZWRzW2ldLnBsYXllckFQSVJlYWR5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5zYnlBUElSZWFkeSA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBqUXVlcnkoJy5zYl95b3V0dWJlJykuZWFjaChmdW5jdGlvbihpbmRleCkge1xuICAgICAgICAgICAgdmFyICRzZWxmID0galF1ZXJ5KHRoaXMpO1xuICAgICAgICAgICAgaWYgKCRzZWxmLmZpbmQoJy5zYnlfbGl2ZV9wbGF5ZXInKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBwbGF5ZXIgPSBuZXcgWVQuUGxheWVyKCRzZWxmLmZpbmQoJy5zYnlfbGl2ZV9wbGF5ZXInKS5hdHRyKCdpZCcpLCB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50czoge1xuICAgICAgICAgICAgICAgICAgICAgICAgJ29uUmVhZHknOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNlbGYuZmluZCgnLnNieV9saXZlX3BsYXllcicpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2VsZi5maW5kKCcuc2J5X2l0ZW0nKS5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdmlkZW9JRCA9IFlULmdldCgkc2VsZi5maW5kKCcuc2J5X2xpdmVfcGxheWVyJykuYXR0cignaWQnKSkuZ2V0VmlkZW9EYXRhKCkudmlkZW9faWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNlbGYuZmluZCgnLnNieV9wbGF5ZXJfdmlkZW9fdGh1bWJuYWlsJykuYXR0cignZGF0YS12aWRlby1pZCcsdmlkZW9JRCkuY3NzKCd6LWluZGV4JywtMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGl0ZW1PZmZzZXQgPSAkc2VsZi5maW5kKCcuc2J5X2l0ZW0nKS5sZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJtaXREYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbjogJ3NieV9saXZlX3JldHJpZXZlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWRlb19pZDogdmlkZW9JRCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZWVkX2lkOiAkc2VsZi5hdHRyKCdkYXRhLWZlZWRpZCcpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHM6ICRzZWxmLmF0dHIoJ2RhdGEtc2hvcnRjb2RlLWF0dHMnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG9uU3VjY2VzcyA9IGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhLnRyaW0oKS5pbmRleE9mKCd7JykgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBmZWVkID0gd2luZG93LnNieS5mZWVkc1tpbmRleF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gSlNPTi5wYXJzZShkYXRhKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tXUFBvc3RzID0gdHlwZW9mIHJlc3BvbnNlLmZlZWRTdGF0dXMuY2hlY2tXUFBvc3RzICE9PSAndW5kZWZpbmVkJyA/IHJlc3BvbnNlLmZlZWRTdGF0dXMuY2hlY2tXUFBvc3RzIDogZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmVlZC5zZXR0aW5ncy5kZWJ1Z0VuYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2hlY2tXUFBvc3RzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmVlZC5zZXR0aW5ncy5jaGVja1dQUG9zdHMgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZWVkLnNldHRpbmdzLmNoZWNrV1BQb3N0cyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmVlZC5hcHBlbmROZXdQb3N0cyhyZXNwb25zZS5odG1sKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZlZWQuYWRkUmVzaXplZEltYWdlcyhyZXNwb25zZS5yZXNpemVkSW1hZ2VzKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmVlZC5hZnRlckluaXRpYWxJbWFnZXNMb2FkZWQoKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXNwb25zZS5mZWVkU3RhdHVzLnNob3VsZFBhZ2luYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmVlZC5vdXRPZlBhZ2VzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2VsZi5maW5kKCcuc2J5X2xvYWRfYnRuJykuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZWVkLm91dE9mUGFnZXMgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgalF1ZXJ5KCcuc2J5X25vX2pzJykucmVtb3ZlQ2xhc3MoJ3NieV9ub19qcycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNlbGYuZmluZCgnLnNieV9saXZlX3BsYXllcicpLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRzZWxmLmhhc0NsYXNzKCdzYnlfbGF5b3V0X2dhbGxlcnknKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZlZWQuY3JlYXRlUGxheWVyKCdzYnlfcGxheWVyJytmZWVkLmluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoJy5zYnlfcGxheWVyX2l0ZW0nKS5jc3MoJ29wYWNpdHknLDEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNlbGYuZmluZCgnLnNieV9pdGVtJykuY3NzKCdvcGFjaXR5JywxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoJy5zYnlfcGxheWVyX2xvYWRpbmcnKS5yZW1vdmVDbGFzcygnc2J5X3BsYXllcl9sb2FkaW5nJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHNlbGYuaGFzQ2xhc3MoJ3NieV9sYXlvdXRfbGlzdCcpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNlbGYuZmluZCgnLnNieV9pdGVtX3ZpZGVvX3RodW1ibmFpbCcpLm9uKCdtb3VzZWVudGVyJyxmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgalF1ZXJ5KHRoaXMpLmNzcygnei1pbmRleCcsLTEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBqUXVlcnkuYWpheCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogc2J5T3B0aW9ucy5hZG1pbkFqYXhVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdwb3N0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogc3VibWl0RGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2Vzczogb25TdWNjZXNzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKGZsYWdMaWdodGJveCkge1xuICAgICAgICAgICAgaWYgKCFqUXVlcnkoJyNzYnlfbGItcGxheWVyJykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgalF1ZXJ5KCcuc2JfeW91dHViZScpLmZpcnN0KCkuYXBwZW5kKCc8ZGl2IGNsYXNzPVwic2J5X2xiLXBsYXllci1sb2FkZWQgc2J5X2xiLXBsYXllclwiIGlkPVwic2J5X2xiLXBsYXllclwiIHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIj48L2Rpdj4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBsYXllciA9IG5ldyBZVC5QbGF5ZXIoJ3NieV9sYi1wbGF5ZXInLCB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAnMTAwJyxcbiAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCcsXG4gICAgICAgICAgICAgICAgdmlkZW9JZDogalF1ZXJ5KHRoaXMpLmZpbmQoJy5zYnlfaXRlbScpLmZpcnN0KCkuYXR0cignZGF0YS12aWRlby1pZCcpLFxuICAgICAgICAgICAgICAgIHBsYXllclZhcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgbW9kZXN0YnJhbmRpbmc6IDEsIFxuICAgICAgICAgICAgICAgICAgICByZWw6IDAsXG4gICAgICAgICAgICAgICAgICAgIGF1dG9wbGF5OiBhdXRvcGxheVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgd2luZG93LnNieUxpZ2h0Ym94UGxheWVyID0gcGxheWVyO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHdpbmRvdy5zYnkgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHZhciBldnQgPSBqUXVlcnkuRXZlbnQoJ3NieWZlZWRhbmR5dHJlYWR5Jyk7XG4gICAgICAgIGpRdWVyeSh3aW5kb3cpLnRyaWdnZXIoZXZ0KTtcbiAgICB9XG5cbn07XG5cbi8qKlxuICogUmV0cmlldmVzIGEgc3BlY2lmaWMgYXR0cmlidXRlIHZhbHVlIGZyb20gdGhlIGdpdmVuIEFQSSBkYXRhIG9iamVjdC5cbiAqIFxuICogQHBhcmFtIHtPYmplY3R9IHJvb3RQYXRoXG4gKiBAcGFyYW0ge3N0cmluZ30gYXR0ck5hbWVcbiAqIFxuICogQHJldHVybnMge3N0cmluZ3xib29sZWFufVxuICovXG5cbmZ1bmN0aW9uIGdldFNpbmdsZUFwaURhdGEocm9vdFBhdGgsIGF0dHJOYW1lKSB7XG4gICAgc3dpdGNoKGF0dHJOYW1lKSB7XG4gICAgICAgIGNhc2UgJ2F1dGhvclByb2ZpbGVJbWFnZVVybCc6XG4gICAgICAgICAgICByZXR1cm4gcm9vdFBhdGg/LnNuaXBwZXQ/LmF1dGhvclByb2ZpbGVJbWFnZVVybCA/IHJvb3RQYXRoLnNuaXBwZXQuYXV0aG9yUHJvZmlsZUltYWdlVXJsIDogJyc7XG4gICAgICAgIGNhc2UgJ2F1dGhvckRpc3BsYXlOYW1lJzpcbiAgICAgICAgICAgIHJldHVybiByb290UGF0aD8uc25pcHBldD8uYXV0aG9yRGlzcGxheU5hbWUgPyByb290UGF0aC5zbmlwcGV0LmF1dGhvckRpc3BsYXlOYW1lIDogJyc7XG4gICAgICAgIGNhc2UgJ2F1dGhvckNoYW5uZWxVcmwnOlxuICAgICAgICAgICAgcmV0dXJuIHJvb3RQYXRoPy5zbmlwcGV0Py5hdXRob3JDaGFubmVsVXJsID8gcm9vdFBhdGguc25pcHBldC5hdXRob3JDaGFubmVsVXJsIDogJyc7XG4gICAgICAgIGNhc2UgJ3RleHREaXNwbGF5JzpcbiAgICAgICAgICAgIHJldHVybiByb290UGF0aD8uc25pcHBldD8udGV4dERpc3BsYXkgPyByb290UGF0aC5zbmlwcGV0LnRleHREaXNwbGF5IDogJyc7XG4gICAgICAgIGNhc2UgJ2xpa2VDb3VudCc6XG4gICAgICAgICAgICByZXR1cm4gcm9vdFBhdGg/LnNuaXBwZXQ/Lmxpa2VDb3VudCA/IHJvb3RQYXRoLnNuaXBwZXQubGlrZUNvdW50IDogJyc7XG4gICAgICAgIGNhc2UgJ3B1Ymxpc2hlZEF0JzpcbiAgICAgICAgICAgIHJldHVybiByb290UGF0aD8uc25pcHBldD8ucHVibGlzaGVkQXQgPyByb290UGF0aC5zbmlwcGV0LnB1Ymxpc2hlZEF0IDogJyc7XG4gICAgICAgIGNhc2UgJ3RvdGFsUmVwbHlDb3VudCc6XG4gICAgICAgICAgICByZXR1cm4gcm9vdFBhdGg/LnRvdGFsUmVwbHlDb3VudCA/IHJvb3RQYXRoLnRvdGFsUmVwbHlDb3VudCA6ICcnO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgYSBzdGF0aWMgU1ZHIGltYWdlIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBuYW1lLlxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgXG4gKiBAcmV0dXJucyB7c3RyaW5nfGJvb2xlYW59IFxuICovXG5mdW5jdGlvbiBnZXRTdGF0aWNTVkcobmFtZSkge1xuXG4gICAgc3dpdGNoKG5hbWUpIHtcbiAgICAgICAgY2FzZSAncHJvZmlsZS1waWN0dXJlJzpcbiAgICAgICAgICAgIHJldHVybiAnPHN2ZyBmaWxsPVwiY3VycmVudENvbG9yXCIgd2lkdGg9XCI4MDBweFwiIGhlaWdodD1cIjgwMHB4XCIgdmlld0JveD1cIjAgMCA1MTIgNTEyXCIgaWQ9XCJfeDMwXzFcIiB2ZXJzaW9uPVwiMS4xXCIgeG1sOnNwYWNlPVwicHJlc2VydmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCI+PHBhdGggZD1cIk0yNTYsMEMxMTQuNjE1LDAsMCwxMTQuNjE1LDAsMjU2czExNC42MTUsMjU2LDI1NiwyNTZzMjU2LTExNC42MTUsMjU2LTI1NlMzOTcuMzg1LDAsMjU2LDB6IE0yNTYsOTAgIGMzNy4wMiwwLDY3LjAzMSwzNS40NjgsNjcuMDMxLDc5LjIxOVMyOTMuMDIsMjQ4LjQzOCwyNTYsMjQ4LjQzOHMtNjcuMDMxLTM1LjQ2OC02Ny4wMzEtNzkuMjE5UzIxOC45OCw5MCwyNTYsOTB6IE0zNjkuNDYsNDAyICBIMTQyLjU0Yy0xMS4zNzgsMC0yMC42MDItOS4yMjQtMjAuNjAyLTIwLjYwMkMxMjEuOTM4LDMyOC4xNTksMTgxLjk1OSwyODUsMjU2LDI4NXMxMzQuMDYyLDQzLjE1OSwxMzQuMDYyLDk2LjM5OCAgQzM5MC4wNjIsMzkyLjc3NiwzODAuODM5LDQwMiwzNjkuNDYsNDAyelwiLz48L3N2Zz4nO1xuICAgICAgICBjYXNlICd0aHVtYnMtdXAnOlxuICAgICAgICAgICAgcmV0dXJuICc8c3ZnIHdpZHRoPVwiMTVcIiBoZWlnaHQ9XCIxM1wiIHZpZXdCb3g9XCIwIDAgMTUgMTNcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTEzLjQxNTkgNC4xODAyN0MxMy43NjEgNC4xODAyNyAxNC4wNzc4IDQuMzIxNzcgMTQuMzY2NCA0LjYwNDc3QzE0LjY1NDkgNC44ODc3NyAxNC43OTkyIDUuMjA3MzggMTQuNzk5MiA1LjU2MzZWNi4yNzA2QzE0Ljc5OTIgNi4zNjQ3MSAxNC43OTAyIDYuNDUxODggMTQuNzcyMiA2LjUzMjFDMTQuNzU0MiA2LjYxMjMyIDE0LjcyNzIgNi42OTI2NiAxNC42OTEyIDYuNzczMUwxMi42ODQgMTEuNDkwOEMxMi41ODQ1IDExLjc0NDkgMTIuNDE4MSAxMS45NDg2IDEyLjE4NDkgMTIuMTAxOUMxMS45NTE3IDEyLjI1NTIgMTEuNjkgMTIuMzMxOCAxMS4zOTk5IDEyLjMzMThINS4xNTkzOEM0Ljc3MjgyIDEyLjMzMTggNC40NDU2NiAxMi4yMDA2IDQuMTc3ODggMTEuOTM4M0MzLjkwOTk5IDExLjY3NTkgMy43NzYwNCAxMS4zNDYgMy43NzYwNCAxMC45NDg0VjQuNzU2MUMzLjc3NjA0IDQuNTYyNzcgMy44MTMzMiA0LjM4MDQ5IDMuODg3ODggNC4yMDkyN0MzLjk2MjU0IDQuMDM4MDQgNC4wNjQ3NyAzLjg4NzU0IDQuMTk0NTQgMy43NTc3N0w3LjI4OTM4IDAuNjYyOTMyQzcuNTE4NiAwLjQzMTA0MyA3Ljc5NDI3IDAuMjgxMzIxIDguMTE2MzggMC4yMTM3NjVDOC40Mzg0OSAwLjE0NjMyMSA4LjcxNDE2IDAuMTc4OTg4IDguOTQzMzggMC4zMTE3NjVDOS4yMjU0OSAwLjQ2NDIxIDkuNDA5MzIgMC42OTU5MzIgOS40OTQ4OCAxLjAwNjkzQzkuNTgwMzIgMS4zMTc5MyA5LjU4OTk5IDEuNjI4MDQgOS41MjM4OCAxLjkzNzI3TDkuMDk1NTQgNC4xODAyN0gxMy40MTU5Wk0xLjM0NDA0IDEyLjMzMThDMS4wMTM5MyAxMi4zMzE4IDAuNzI2NzY3IDEyLjIwOTcgMC40ODI1NDQgMTEuOTY1NEMwLjIzODMyMiAxMS43MjEyIDAuMTE2MjExIDExLjQzNCAwLjExNjIxMSAxMS4xMDM5VjUuNDA4MjdDMC4xMTYyMTEgNS4wNzgwNCAwLjIzNjk4OSA0Ljc5MDgyIDAuNDc4NTQ0IDQuNTQ2NkMwLjcyMDEgNC4zMDIzOCAxLjAwNDY2IDQuMTgwMjcgMS4zMzIyMSA0LjE4MDI3SDEuMzQ4MDRDMS42NzgyNyA0LjE4MDI3IDEuOTY1NDkgNC4zMDIzOCAyLjIwOTcxIDQuNTQ2NkMyLjQ1MzkzIDQuNzkwODIgMi41NzYwNCA1LjA3ODA0IDIuNTc2MDQgNS40MDgyN1YxMS4xMDM5QzIuNTc2MDQgMTEuNDM0IDIuNDUzOTMgMTEuNzIxMiAyLjIwOTcxIDExLjk2NTRDMS45NjU0OSAxMi4yMDk3IDEuNjc4MjcgMTIuMzMxOCAxLjM0ODA0IDEyLjMzMThIMS4zNDQwNFpcIiBmaWxsPVwiY3VycmVudENvbG9yXCIvPjwvc3ZnPic7XG4gICAgICAgIGNhc2UgJ2FuZ2xlLWRvd24nOlxuICAgICAgICAgICAgcmV0dXJuICc8c3ZnIHdpZHRoPVwiOFwiIGhlaWdodD1cIjZcIiB2aWV3Qm94PVwiMCAwIDggNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNMC45NCAwLjcyNjY1NEw0IDMuNzc5OTlMNy4wNiAwLjcyNjY1NEw4IDEuNjY2NjVMNCA1LjY2NjY1TDAgMS42NjY2NUwwLjk0IDAuNzI2NjU0WlwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIi8+PC9zdmc+JztcbiAgICAgICAgY2FzZSAneW91dHViZSc6XG4gICAgICAgICAgICByZXR1cm4gJzxzdmcgd2lkdGg9XCIxNFwiIGhlaWdodD1cIjExXCIgdmlld0JveD1cIjAgMCAxNCAxMVwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNNS42NjY3MSA3LjVMOS4xMjY3MSA1LjVMNS42NjY3MSAzLjVWNy41Wk0xMy4zNzM0IDIuMjhDMTMuNDYgMi41OTMzNCAxMy41MiAzLjAxMzM0IDEzLjU2IDMuNTQ2NjdDMTMuNjA2NyA0LjA4IDEzLjYyNjcgNC41NCAxMy42MjY3IDQuOTRMMTMuNjY2NyA1LjVDMTMuNjY2NyA2Ljk2IDEzLjU2IDguMDMzMzQgMTMuMzczNCA4LjcyQzEzLjIwNjcgOS4zMiAxMi44MiA5LjcwNjY3IDEyLjIyIDkuODczMzRDMTEuOTA2NyA5Ljk2IDExLjMzMzQgMTAuMDIgMTAuNDUzNCAxMC4wNkM5LjU4NjcxIDEwLjEwNjcgOC43OTMzNyAxMC4xMjY3IDguMDYwMDQgMTAuMTI2N0w3LjAwMDA0IDEwLjE2NjdDNC4yMDY3MSAxMC4xNjY3IDIuNDY2NzEgMTAuMDYgMS43ODAwNCA5Ljg3MzM0QzEuMTgwMDQgOS43MDY2NyAwLjc5MzM3NCA5LjMyIDAuNjI2NzA3IDguNzJDMC41NDAwNDEgOC40MDY2NyAwLjQ4MDA0MSA3Ljk4NjY3IDAuNDQwMDQxIDcuNDUzMzRDMC4zOTMzNzQgNi45MiAwLjM3MzM3NCA2LjQ2IDAuMzczMzc0IDYuMDZMMC4zMzMzNzQgNS41QzAuMzMzMzc0IDQuMDQgMC40NDAwNDEgMi45NjY2NyAwLjYyNjcwNyAyLjI4QzAuNzkzMzc0IDEuNjggMS4xODAwNCAxLjI5MzM0IDEuNzgwMDQgMS4xMjY2N0MyLjA5MzM3IDEuMDQgMi42NjY3MSAwLjk4MDAwMiAzLjU0NjcxIDAuOTQwMDAyQzQuNDEzMzcgMC44OTMzMzYgNS4yMDY3MSAwLjg3MzMzNiA1Ljk0MDA0IDAuODczMzM2TDcuMDAwMDQgMC44MzMzMzZDOS43OTMzNyAwLjgzMzMzNiAxMS41MzM0IDAuOTQwMDAzIDEyLjIyIDEuMTI2NjdDMTIuODIgMS4yOTMzNCAxMy4yMDY3IDEuNjggMTMuMzczNCAyLjI4WlwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIi8+PC9zdmc+JztcbiAgICAgICAgY2FzZSAnY3Jvc3MnOlxuICAgICAgICAgICAgcmV0dXJuICc8c3ZnIHdpZHRoPVwiMTVcIiBoZWlnaHQ9XCIxNFwiIHZpZXdCb3g9XCIwIDAgMTUgMTRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTE0LjI1IDEuNDFMMTIuODQgMEw3LjI1IDUuNTlMMS42NiAwTDAuMjUgMS40MUw1Ljg0IDdMMC4yNSAxMi41OUwxLjY2IDE0TDcuMjUgOC40MUwxMi44NCAxNEwxNC4yNSAxMi41OUw4LjY2IDdMMTQuMjUgMS40MVpcIiBmaWxsPVwiY3VycmVudENvbG9yXCIvPjwvc3ZnPic7XG4gICAgICAgIGNhc2UgJ21lc3NhZ2UnOlxuICAgICAgICAgICAgcmV0dXJuICc8c3ZnIHdpZHRoPVwiMjhcIiBoZWlnaHQ9XCIyNlwiIHZpZXdCb3g9XCIwIDAgMjggMjZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTMuMzMzNDEgMjJDMi42MDAwOCAyMiAxLjk3MjMgMjEuNzM4OSAxLjQ1MDA4IDIxLjIxNjdDMC45Mjc4NTkgMjAuNjk0NCAwLjY2Njc0OCAyMC4wNjY3IDAuNjY2NzQ4IDE5LjMzMzNWMy4zMzMzNEMwLjY2Njc0OCAyLjYgMC45Mjc4NTkgMS45NzIyMyAxLjQ1MDA4IDEuNDUwMDFDMS45NzIzIDAuOTI3NzgzIDIuNjAwMDggMC42NjY2NzIgMy4zMzM0MSAwLjY2NjY3MkgyNC42NjY3QzI1LjQwMDEgMC42NjY2NzIgMjYuMDI3OSAwLjkyNzc4MyAyNi41NTAxIDEuNDUwMDFDMjcuMDcyMyAxLjk3MjIzIDI3LjMzMzQgMi42IDI3LjMzMzQgMy4zMzMzNFYyNC4xQzI3LjMzMzQgMjQuNyAyNy4wNjEyIDI1LjExNjcgMjYuNTE2NyAyNS4zNUMyNS45NzIzIDI1LjU4MzMgMjUuNDg5IDI1LjQ4ODkgMjUuMDY2NyAyNS4wNjY3TDIyLjAwMDEgMjJIMy4zMzM0MVpNMjMuMTMzNCAxOS4zMzMzTDI0LjY2NjcgMjAuODMzM1YzLjMzMzM0SDMuMzMzNDFWMTkuMzMzM0gyMy4xMzM0WlwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIi8+PC9zdmc+JztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG59XG5cblxuLyoqXG4gKiBHZW5lcmF0ZXMgdGhlIEhUTUwgdGVtcGxhdGUgZm9yIGEgc2luZ2xlIGNvbW1lbnQuXG4gKiBcbiAqIEBwYXJhbSB7c3RyaW5nfSBhdXRob3JQcm9maWxlSW1hZ2VVcmxcbiAqIEBwYXJhbSB7c3RyaW5nfSBhdXRob3JEaXNwbGF5TmFtZVxuICogQHBhcmFtIHtzdHJpbmd9IGF1dGhvckNoYW5uZWxVcmxcbiAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0RGlzcGxheVxuICogQHBhcmFtIHtudW1iZXJ9IGxpa2VDb3VudFxuICogQHBhcmFtIHtzdHJpbmd9IHB1Ymxpc2hlZEF0XG4gKiBAcGFyYW0ge251bWJlcn0gdG90YWxSZXBseUNvdW50XG4gKiBcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGNvbW1lbnRTaW5nbGVUZW1wbGF0ZShhdXRob3JQcm9maWxlSW1hZ2VVcmwsIGF1dGhvckRpc3BsYXlOYW1lLCBhdXRob3JDaGFubmVsVXJsLCB0ZXh0RGlzcGxheSwgbGlrZUNvdW50LCBwdWJsaXNoZWRBdCwgdG90YWxSZXBseUNvdW50KSB7XG5cbiAgICBjb25zdCBkdW1teVByb2ZpbGVQaWMgPSBhdXRob3JQcm9maWxlSW1hZ2VVcmwgPyBgPGltZyBzcmM9JHthdXRob3JQcm9maWxlSW1hZ2VVcmx9IGxvYWRpbmc9XCJsYXp5XCIgcmVmZXJyZXJQb2xpY3k9XCJuby1yZWZlcnJlclwiLz5gIDogZ2V0U3RhdGljU1ZHKCdwcm9maWxlLXBpY3R1cmUnKTtcbiAgICBjb25zdCByZXBsaWVzID0gdG90YWxSZXBseUNvdW50ID8gYDxidXR0b24gY2xhc3M9XCJzYnktcmVwbGllc1wiPiR7dG90YWxSZXBseUNvdW50ID8gdG90YWxSZXBseUNvdW50IDogMCB9IFJlcGxpZXMgJHtnZXRTdGF0aWNTVkcoJ2FuZ2xlLWRvd24nKX08L2J1dHRvbj5gIDogJyc7XG5cbiAgICByZXR1cm4gYFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNieS1jb21tZW50LXByb2ZpbGUtcGljXCI+XG4gICAgICAgICAgICAgICAgJHtkdW1teVByb2ZpbGVQaWN9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYnktY29tbWVudC1oZWFkaW5nXCI+XG4gICAgICAgICAgICAgICAgPGEgaHJlZj1cIiR7YXV0aG9yQ2hhbm5lbFVybH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiBjbGFzcz1cInNieS1jb21tZW50LXVzZXItbmFtZVwiPiR7YXV0aG9yRGlzcGxheU5hbWV9PC9hPlxuICAgICAgICAgICAgICAgIDxzcGFuPiR7dGltZUFnbyhwdWJsaXNoZWRBdCl9PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNieS1jb21tZW50LXRleHRcIj5cbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInNieS1yZWFkLW1vcmUtdGFyZ2V0XCI+JHt0ZXh0RGlzcGxheX08L3A+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNieS1yZWFkLW1vcmUtdHJpZ2dlclwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2J5LXJlYWQtbW9yZS10ZXh0XCI+UmVhZCBNb3JlPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzYnktcmVhZC1sZXNzLXRleHRcIj5SZWFkIExlc3M8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYnktY29tbWVudC1ib3R0b21cIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNieS1jb21tZW50LWxpa2VzXCI+XG4gICAgICAgICAgICAgICAgICAgICR7Z2V0U3RhdGljU1ZHKCd0aHVtYnMtdXAnKX0gJHtsaWtlQ291bnQgPyBmb3JtYXRMYXJnZU51bWJlcihsaWtlQ291bnQpIDogMCB9XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICR7cmVwbGllc31cbiAgICAgICAgICAgIDwvZGl2PlxuICAgIGA7XG59XG5cbi8qKlxuICogR2VuZXJhdGVzIHRoZSBIVE1MIHRlbXBsYXRlIHdoZW4gbm8gY29tbWVudHMgYXJlIGZvdW5kLlxuICpcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cblxuZnVuY3Rpb24gbm9Db21tZW50c1RlbXBsYXRlKCkge1xuICAgIHJldHVybiBgXG4gICAgICAgIDxoNCBjbGFzcz1cInNieS1jb21tZW50cy1zdWItaGVhZGluZ1wiPkNvbW1lbnRzPC9oND5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNieS1uby1jb21tZW50c1wiPlxuICAgICAgICAgICAgJHtnZXRTdGF0aWNTVkcoJ21lc3NhZ2UnKX1cbiAgICAgICAgICAgIDxwPlRoZXJlIGFyZSBubyBjb21tZW50cyB0byBkaXNwbGF5PC9wPlxuICAgICAgICA8L2Rpdj5gO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlcyB0aGUgSFRNTCB0ZW1wbGF0ZSB3aGVuIHRoZXJlIGlzIGFuIGVycm9yIHJldHJpdmluZyBjb21tZW50cy5cbiAqXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBlcnJvckNvbW1lbnRUZW1wbGF0ZShlcnJvcikge1xuICAgIHJldHVybiBgXG4gICAgICAgIDxoNCBjbGFzcz1cInNieS1jb21tZW50cy1zdWItaGVhZGluZ1wiPkNvbW1lbnRzPC9oND5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNieS1uby1jb21tZW50c1wiPlxuICAgICAgICAgICAgPHA+JHtlcnJvcn08L3A+XG4gICAgICAgIDwvZGl2PmA7XG59XG5cbi8qKlxuICogRm9ybWF0IGRhdGUgYW5kIHRpbWUgZm9yIElTTyA4NjAxXG4gKiBcbiAqIEBwYXJhbSB0aW1lc3RhbXBcbiAqIFxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gdGltZUFnbyh0aW1lc3RhbXApIHtcbiAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICAgIGNvbnN0IHBhc3QgPSBuZXcgRGF0ZSh0aW1lc3RhbXApO1xuICAgIGNvbnN0IGRpZmZNcyA9IG5vdyAtIHBhc3Q7XG5cbiAgICAvLyBIZWxwZXIgZnVuY3Rpb25zIHRvIGdldCB0aW1lIHVuaXRzXG4gICAgY29uc3Qgc2Vjb25kcyA9IE1hdGguZmxvb3IoZGlmZk1zIC8gMTAwMCk7XG4gICAgY29uc3QgbWludXRlcyA9IE1hdGguZmxvb3Ioc2Vjb25kcyAvIDYwKTtcbiAgICBjb25zdCBob3VycyA9IE1hdGguZmxvb3IobWludXRlcyAvIDYwKTtcbiAgICBjb25zdCBkYXlzID0gTWF0aC5mbG9vcihob3VycyAvIDI0KTtcbiAgICBjb25zdCBtb250aHMgPSBNYXRoLmZsb29yKGRheXMgLyAzMCk7XG4gICAgY29uc3QgeWVhcnMgPSBNYXRoLmZsb29yKG1vbnRocyAvIDEyKTtcblxuICAgIC8vIERldGVybWluZSB0aGUgbGFyZ2VzdCB1bml0IG9mIHRpbWUgdGhhdCBhcHBsaWVzXG4gICAgaWYgKHllYXJzID4gMCkge1xuICAgICAgICByZXR1cm4gYCR7eWVhcnN9IHllYXIke3llYXJzID4gMSA/ICdzJyA6ICcnfSBhZ29gO1xuICAgIH1cbiAgICBpZiAobW9udGhzID4gMCkge1xuICAgICAgICByZXR1cm4gYCR7bW9udGhzfSBtb250aCR7bW9udGhzID4gMSA/ICdzJyA6ICcnfSBhZ29gO1xuICAgIH1cbiAgICBpZiAoZGF5cyA+IDApIHtcbiAgICAgICAgcmV0dXJuIGAke2RheXN9IGRheSR7ZGF5cyA+IDEgPyAncycgOiAnJ30gYWdvYDtcbiAgICB9XG4gICAgaWYgKGhvdXJzID4gMCkge1xuICAgICAgICByZXR1cm4gYCR7aG91cnN9IGhvdXIke2hvdXJzID4gMSA/ICdzJyA6ICcnfSBhZ29gO1xuICAgIH1cbiAgICBpZiAobWludXRlcyA+IDApIHtcbiAgICAgICAgcmV0dXJuIGAke21pbnV0ZXN9IG1pbnV0ZSR7bWludXRlcyA+IDEgPyAncycgOiAnJ30gYWdvYDtcbiAgICB9XG4gICAgaWYgKHNlY29uZHMgPiAwKSB7XG4gICAgICAgIHJldHVybiBgJHtzZWNvbmRzfSBzZWNvbmQke3NlY29uZHMgPiAxID8gJ3MnIDogJyd9IGFnb2A7XG4gICAgfVxuXG4gICAgcmV0dXJuICdqdXN0IG5vdyc7XG59XG5cbi8qKlxuICogQ29udmVydHMgcGxhaW4gdGV4dCBpbnRvIEhUTUwgd2l0aCBjbGlja2FibGUgbGlua3MuXG4gKiBcbiAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0XG4gKiBcbiAqIEByZXR1cm5zIHtzdHJpbmd9IFxuICovXG5mdW5jdGlvbiBhZGRMaW5rc1RvdGV4dCh0ZXh0KSB7XG4gICAgLy9BZGQgbGlua3MgdG8gdGhlIGNhcHRpb25cbiAgICBpZighdGV4dCkge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgdGV4dCA9IHRleHQucmVwbGFjZSgvKD4jKS9nLCc+ICMnKTtcblxuICAgIHJldHVybiBzYnlMaW5raWZ5KHRleHQpO1xufVxuXG4vKipcbiAqIENvbnZlcnQgVW5peCB0aW1lc3RhbXAgdG8gbWlsbGlzZWNvbmRzXG4gKiBAcGFyYW0gdGltZXN0YW1wXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5cbmZ1bmN0aW9uIGNvbnZlcnRVbml4VG9Ncyh0aW1lc3RhbXApIHtcblxuICAgIGlmKCAhIHRpbWVzdGFtcCApIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgRGF0ZShwYXJzZUludCh0aW1lc3RhbXApICogMTAwMCk7XG5cbn1cblxuLyoqXG4gKiBUb2dnbGVzIHRoZSB2aXNpYmlsaXR5IG9mIGFjY29yZGlvbiBzZWN0aW9ucyBiYXNlZCBvbiB0aGUgdHJpZ2dlciBlbGVtZW50LlxuICogXG4gKiBAcGFyYW0ge3N0cmluZ30gY2xhc3NOYW1lXG4gKiBAcGFyYW0ge3N0cmluZ30gdGFyZ2V0XG4gKiBAcGFyYW0ge3N0cmluZ30gcGFyZW50XG4gKiBAcGFyYW0ge3N0cmluZ30gdHJpZ2dlciBcbiAqIFxuICogQHJldHVybnMge3ZvaWR9IFxuICovXG5mdW5jdGlvbiB0b2dnbGVBY2NvcmRpb24oY2xhc3NOYW1lLCB0YXJnZXQsIHBhcmVudCAsdHJpZ2dlciAgKSB7XG4gICAgalF1ZXJ5KHRyaWdnZXIpLmNzcygnZGlzcGxheScsICdub25lJyk7XG4gICAgalF1ZXJ5KHRhcmdldCkudW5iaW5kKCdjbGljaycpO1xuICAgIGpRdWVyeSh0YXJnZXQpLmNsaWNrKGZ1bmN0aW9uKCl7XG4gICAgICAgIGpRdWVyeSh0aGlzKS50b2dnbGVDbGFzcyhjbGFzc05hbWUgKyAnLXRyaWdnZXInKTtcbiAgICAgICAgalF1ZXJ5KHRoaXMpLmNsb3Nlc3QocGFyZW50KS5maW5kKHRyaWdnZXIpLnRvZ2dsZSgpO1xuICAgIH0pO1xufVxuLyoqXG4gKiBUb2dnbGVzIHRoZSB2aXNpYmlsaXR5IG9mIFwiUmVhZCBNb3JlXCIgYnV0dG9uc1xuICogXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZnVuY3Rpb24gdG9nZ2xlUmVhZE1vcmUoKSB7XG4gICAgY29uc3QgdGFyZ2V0ID0galF1ZXJ5KCcuc2J5LXJlYWQtbW9yZS10YXJnZXQnKTtcbiAgICBjb25zdCB0cmlnZ2VyQ2xhc3NOYW1lID0gJy5zYnktcmVhZC1tb3JlLXRyaWdnZXInO1xuXG4gICAgdGFyZ2V0LmVhY2goZnVuY3Rpb24oZSkge1xuICAgICAgICBjb25zdCBjdXJyZW50VGFyZ2V0ID0galF1ZXJ5KHRoaXMpWzBdO1xuXG4gICAgICAgIGNvbnN0IHBhcmFncmFwaEhlaWdodCA9IGN1cnJlbnRUYXJnZXQuc2Nyb2xsSGVpZ2h0O1xuICAgICAgICBjb25zdCBjbGllbnRIZWlnaHQgPSBjdXJyZW50VGFyZ2V0Lm9mZnNldEhlaWdodDtcbiAgICAgICAgY29uc3QgaGFzTW9yZVRoYW5Gb3VyTGluZXMgPSBwYXJhZ3JhcGhIZWlnaHQgPiBjbGllbnRIZWlnaHQgJiYgcGFyYWdyYXBoSGVpZ2h0ID4gY2xpZW50SGVpZ2h0ICsgMTsgLy8gY2xpZW50SGVpZ2h0ICsgMSB0byBmaXggZmlyZWZveCBjbGllbnRIZWlnaHQgY2FsY3VsYXRlIGlzc3VlLlxuXG4gICAgICAgIGlmIChoYXNNb3JlVGhhbkZvdXJMaW5lcykge1xuICAgICAgICAgICAgY29uc3QgdHJpZ2dlciA9IGpRdWVyeSh0aGlzKS5wYXJlbnQoKS5maW5kKHRyaWdnZXJDbGFzc05hbWUpO1xuXG4gICAgICAgICAgICB0cmlnZ2VyLnVuYmluZCgnY2xpY2snKTtcbiAgICAgICAgICAgIHRyaWdnZXIuY2xpY2soZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgalF1ZXJ5KHRoaXMpLnRvZ2dsZUNsYXNzKCdzYnktcmVhZC1tb3JlLXRyaWdnZXItYWN0aXZlJyk7XG4gICAgICAgICAgICAgICAgalF1ZXJ5KHRoaXMpLnBhcmVudCgpLmZpbmQoJy5zYnktcmVhZC1tb3JlLXRhcmdldCcpLnRvZ2dsZUNsYXNzKCdzYnktcmVhZC1tb3JlLXRhcmdldC1hY3RpdmUnKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgalF1ZXJ5KHRoaXMpLnBhcmVudCgpLmZpbmQodHJpZ2dlckNsYXNzTmFtZSkuaGlkZSgpO1xuICAgICAgICB9XG5cbiAgICB9KTtcbn1cblxuLyoqXG4gKiBBcHBsaWVzIGEgY29sb3Igc2NoZW1lIGNsYXNzIHRvIHRoZSBsaWdodGJveCBiYXNlZCBvbiB0aGUgZmxhZyBwcm92aWRlZC5cbiAqIFxuICogQHBhcmFtIHtzdHJpbmd9IGNvbG9yU2NoZW1lIFxuICogQHBhcmFtIHtib29sZWFufSBmbGFnXG4gKi9cbmZ1bmN0aW9uIExpZ2h0Ym94Q29sb3JTY2hlbWUoY29sb3JTY2hlbWUsIGZsYWcpIHtcblxuICAgIGNvbnN0IGNvbW1lbnRXcmFwID0galF1ZXJ5KCcuc2J5X2xiLWNhcHRpb24nKTtcbiAgICBjb25zdCBjb2xvclNjaGVtZUNsYXNzTmFtZSA9ICdzYnktbGItZGFyay1zY2hlbWUnO1xuXG4gICAgaWYoIGZhbHNlID09PSBmbGFnKSB7XG4gICAgICAgIGNvbW1lbnRXcmFwLnJlbW92ZUNsYXNzKGNvbG9yU2NoZW1lQ2xhc3NOYW1lKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmKCAnZGFyaycgPT09IGNvbG9yU2NoZW1lICYmIHRydWUgPT09IGZsYWcpIHtcbiAgICAgICAgY29tbWVudFdyYXAuYWRkQ2xhc3MoY29sb3JTY2hlbWVDbGFzc05hbWUpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuXG4vKipcbiAqIFJlc2V0cyB0aGUgYm9keSdzIG92ZXJmbG93IHN0eWxlIGFuZCB0aGUgbGlnaHRib3ggY29sb3Igc2NoZW1lIHdoZW4gdGhlIGxpZ2h0Ym94IGlzIGNsb3NlZC5cbiAqXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZnVuY3Rpb24gbGlnaHRib3hPbkNsb3NlKCkge1xuICAgIGpRdWVyeSgnYm9keScpLmNzcygnb3ZlcmZsb3cnLCAnYXV0bycpO1xuICAgIExpZ2h0Ym94Q29sb3JTY2hlbWUoJycsIGZhbHNlKVxufVxuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgbGF5b3V0IHR5cGUgb2YgdGhlIGNsb3Nlc3QgYW5jZXN0b3IgZWxlbWVudCB3aXRoIGEgc3BlY2lmaWMgbGF5b3V0IGNsYXNzLlxuICpcbiAqIEBwYXJhbSB7alF1ZXJ5fEhUTUxFbGVtZW50fSB0YXJnZXRcbiAqIEByZXR1cm5zIHtzdHJpbmd8Ym9vbGVhbn1cbiAqL1xuZnVuY3Rpb24gZ2V0TGF5b3V0KHRhcmdldCkge1xuICAgIGNvbnN0IGN1cnJlbnRUYXJnZXQgPSB0YXJnZXQuY2xvc2VzdCgnLnNiX3lvdXR1YmUnKTtcblxuICAgIGlmKCBjdXJyZW50VGFyZ2V0Lmhhc0NsYXNzKCdzYnlfbGF5b3V0X2xpc3QnKSApIHtcbiAgICAgICAgcmV0dXJuICdsaXN0J1xuICAgIH1cblxuICAgIGlmKCBjdXJyZW50VGFyZ2V0Lmhhc0NsYXNzKCdzYnlfbGF5b3V0X2dyaWQnKSApIHtcbiAgICAgICAgcmV0dXJuICdncmlkJ1xuICAgIH1cblxuICAgIGlmKCBjdXJyZW50VGFyZ2V0Lmhhc0NsYXNzKCdzYnlfbGF5b3V0X2Nhcm91c2VsJykgKSB7XG4gICAgICAgIHJldHVybiAnY2Fyb3VzZWwnXG4gICAgfVxuXG4gICAgaWYoIGN1cnJlbnRUYXJnZXQuaGFzQ2xhc3MoJ3NieV9sYXlvdXRfZ2FsbGVyeScpICkge1xuICAgICAgICByZXR1cm4gJ2dhbGxlcnknXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIE9wZW5zIGFuZCBkaXNwbGF5cyB0aGUgY29tbWVudHMgc2VjdGlvbiBvbiB0aGUgcGFnZS5cbiAqIFxuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmZ1bmN0aW9uIG9wZW5Db21tZW50cygpIHtcblxuICAgIGlmKCAhIHdpbmRvdy5zYnlPcHRpb25zLmlzUHJvICkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IG9wZW5Db21tZW50VHJpZ2dlciA9IGpRdWVyeSgnLnNieS1jb21tZW50cy10cmlnZ2VyJyk7XG4gICAgb3BlbkNvbW1lbnRUcmlnZ2VyLnVuYmluZCgnY2xpY2snKTtcbiAgICBvcGVuQ29tbWVudFRyaWdnZXIuY2xpY2soZnVuY3Rpb24oKSB7XG4gICAgICAgIGNvbnN0IGNvbW1lbnRXcmFwQ2xhc3MgPSAnLnNieS1jb21tZW50cy13cmFwJztcbiAgICAgICAgY29uc3QgY29tbWVudFNlY2lvbldyYXAgPSBqUXVlcnkodGhpcykuY2xvc2VzdCgnLnNieS1jb21tZW50LWNvbnRhaW5lcicpO1xuICAgICAgICBjb25zdCBjb21tZW50U2VjdGlvbiA9ICBjb21tZW50U2VjaW9uV3JhcC5maW5kKGNvbW1lbnRXcmFwQ2xhc3MpO1xuICAgICAgICBjb25zdCBjdXJyZW50TGF5b3V0ID0gIGdldExheW91dChqUXVlcnkodGhpcykpO1xuXG4gICAgICAgIGlmKCBjb21tZW50U2VjdGlvbi50ZXh0KCkubGVuZ3RoIDw9IDApIHtcbiAgICAgICAgICAgIGxldCBjb21tZW50Q291bnQ7XG4gICAgICAgICAgICBsZXQgdmlkZW9JZDtcbiAgICAgICAgICAgIGxldCB0YXJnZXQ7XG5cbiAgICAgICAgICAgIGlmKCAnZ2FsbGVyeScgPT09IGN1cnJlbnRMYXlvdXQgKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0UGFyZW50ID0galF1ZXJ5KHRoaXMpLmNsb3Nlc3QoJy5zYl95b3V0dWJlJyk7XG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudFRhcmdldCA9IHRhcmdldFBhcmVudC5maW5kKCcuc2J5X2l0ZW0uc2J5X2N1cnJlbnQnKTtcblxuICAgICAgICAgICAgICAgIGlmKCB0YXJnZXRQYXJlbnQgJiYgY3VycmVudFRhcmdldCApIHtcbiAgICAgICAgICAgICAgICAgICAgdmlkZW9JZCA9IGNoZWNrVmFsdWUoY3VycmVudFRhcmdldC5hdHRyKCdkYXRhLXZpZGVvLWlkJykpO1xuICAgICAgICAgICAgICAgICAgICBjb21tZW50Q291bnQgPSBjaGVja1ZhbHVlKGN1cnJlbnRUYXJnZXQuZmluZCgnYScpLmF0dHIoJ2RhdGEtY29tbWVudC1jb3VudCcpKTtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0ID0gdGFyZ2V0UGFyZW50LmZpbmQoY29tbWVudFdyYXBDbGFzcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiggJ2xpc3QnID09PSBjdXJyZW50TGF5b3V0ICkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRUYXJnZXQgPSBqUXVlcnkodGhpcykuY2xvc2VzdCgnLnNieV9pdGVtJyk7XG5cbiAgICAgICAgICAgICAgICBpZiggY3VycmVudFRhcmdldCApIHtcbiAgICAgICAgICAgICAgICAgICAgdmlkZW9JZCA9IGNoZWNrVmFsdWUoY3VycmVudFRhcmdldC5hdHRyKCdkYXRhLXZpZGVvLWlkJykpO1xuICAgICAgICAgICAgICAgICAgICBjb21tZW50Q291bnQgPSBjaGVja1ZhbHVlKGN1cnJlbnRUYXJnZXQuZmluZCgnYScpLmF0dHIoJ2RhdGEtY29tbWVudC1jb3VudCcpKTtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0ID0gY3VycmVudFRhcmdldC5maW5kKGNvbW1lbnRXcmFwQ2xhc3MpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIFJlc2V0IGFsbCBvdGhlciBjb21tZW50cyBvcGVuZWQgXG4gICAgICAgICAgICAgICAgcmVzZXRDb21tZW50cyhqUXVlcnkodGhpcykuY2xvc2VzdCgnLnNiX3lvdXR1YmUnKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGF0dHMgPSBjaGVja1ZhbHVlKGpRdWVyeSh0aGlzKS5jbG9zZXN0KCcuc2JfeW91dHViZScpLmF0dHIoJ2RhdGEtc2hvcnRjb2RlLWF0dHMnKSk7XG5cbiAgICAgICAgICAgIGdlbmVyYXRlQ29tbWVudFNlY3Rpb24odmlkZW9JZCwgYXR0cywgdGFyZ2V0LCBjb21tZW50Q291bnQpO1xuICAgICAgICAgICAgY29tbWVudFNlY3Rpb24uYWRkQ2xhc3MoJ3NieS1jb21tZW50cy1hY3RpdmUnKTtcblxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29tbWVudFNlY3Rpb24udG9nZ2xlKCk7XG4gICAgICAgICAgICBjb21tZW50U2VjdGlvbi50b2dnbGVDbGFzcygnc2J5LWNvbW1lbnRzLWFjdGl2ZScpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY3VycmVudFRleHRTdGF0ZSA9IGNvbW1lbnRTZWNpb25XcmFwLmZpbmQoJy5zYnktY29tbWVudHMtdHJpZ2dlciBwJyk7XG5cbiAgICAgICAgaWYoIGN1cnJlbnRUZXh0U3RhdGUgKSB7XG4gICAgICAgICAgICBjaGFuZ2VUZXh0T25Ub2dnbGUoY3VycmVudFRleHRTdGF0ZSwgJ1Nob3cgQ29tbWVudHMnLCAnSGlkZSBDb21tZW50cycpO1xuICAgICAgICB9XG5cbiAgICB9KTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgdmFsaWQgdmFsdWUgb3IgYW4gZW1wdHkgc3RyaW5nIGJhc2VkIG9uIHRoZSBpbnB1dC5cbiAqIEBwYXJhbSB7Kn0gZWxlbWVudCBcbiAqIEByZXR1cm5zIHtzdHJpbmd9IFxuICovXG5mdW5jdGlvbiBjaGVja1ZhbHVlKGVsZW1lbnQpIHtcbiAgICByZXR1cm4gZWxlbWVudCA/IGVsZW1lbnQgOiAnJztcbn1cblxuLyoqXG4gKiBTZW5kcyBhbiBBSkFYIHJlcXVlc3Qgd2l0aCB0aGUgc3BlY2lmaWVkIGRhdGEgYW5kIGhhbmRsZXMgdGhlIHJlc3BvbnNlLlxuICogQHBhcmFtIHtPYmplY3R9IHN1Ym1pdERhdGFcbiAqIEBwYXJhbSB7RnVuY3Rpb259IG9uU3VjY2VzcyBcbiAqIFxuICogQHJldHVybnMge3ZvaWR9IFxuICovXG5mdW5jdGlvbiBzYnlBamF4KHN1Ym1pdERhdGEsb25TdWNjZXNzKSB7XG4gICAgalF1ZXJ5LmFqYXgoe1xuICAgICAgICB1cmw6IHNieU9wdGlvbnMuYWRtaW5BamF4VXJsLFxuICAgICAgICB0eXBlOiAncG9zdCcsXG4gICAgICAgIGRhdGE6IHN1Ym1pdERhdGEsXG4gICAgICAgIHN1Y2Nlc3M6IG9uU3VjY2Vzc1xuICAgIH0pO1xufVxuXG4vKipcbiAqIEZldGNoZXMgYW5kIGdlbmVyYXRlcyBhIGNvbW1lbnQgc2VjdGlvbiBmb3IgYSBnaXZlbiB2aWRlby5cbiAqIFxuICogQHBhcmFtIHtzdHJpbmd9IHZpZGVvSWQgXG4gKiBAcGFyYW0ge09iamVjdH0gYXR0c1xuICogQHBhcmFtIHtqUXVlcnl9IHRhcmdldFxuICogXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuXG5mdW5jdGlvbiBnZW5lcmF0ZUNvbW1lbnRTZWN0aW9uKHZpZGVvSWQsIGF0dHMsIHRhcmdldCwgY29tbWVudENvdW50KSB7XG5cbiAgICBzdWJtaXREYXRhID0ge1xuICAgICAgICBhY3Rpb246ICdzYnlfZ2V0X2NvbW1lbnRzJyxcbiAgICAgICAgdmlkZW9faWQ6IHZpZGVvSWQsXG4gICAgICAgIGF0dHM6IGF0dHNcbiAgICB9O1xuXG4gICAgbGV0IG9uU3VjY2VzcyA9IGZ1bmN0aW9uIChkYXRhKSB7XG5cbiAgICAgICAgaWYoICEgZGF0YSApIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmKCBmYWxzZSA9PT0gZGF0YS5zdWNjZXNzICkge1xuICAgICAgICAgICAgdGFyZ2V0Lmh0bWwoZXJyb3JDb21tZW50VGVtcGxhdGUoZGF0YS5kYXRhKSk7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb21tZW50SnNvbiA9IEpTT04ucGFyc2UoZGF0YSk7XG5cbiAgICAgICAgaWYoICEgY29tbWVudEpzb24gKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiggY29tbWVudEpzb24/LnN1Y2Nlc3MgJiYgZmFsc2UgPT09IGNvbW1lbnRKc29uLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIHRhcmdldC5odG1sKGVycm9yQ29tbWVudFRlbXBsYXRlKGNvbW1lbnRKc29uLmRhdGEpKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmKCBjb21tZW50SnNvbj8uZXJyb3IgJiYgY29tbWVudEpzb24/LmVycm9yPy5tZXNzYWdlKSB7XG4gICAgICAgICAgICBsZXQgZXJyb3JNZXNzYWdlID0gY29tbWVudEpzb24uZXJyb3IubWVzc2FnZTtcbiAgICAgICAgICAgIGlmKCBlcnJvck1lc3NhZ2UuaW5jbHVkZXMoJ2Rpc2FibGVkIGNvbW1lbnRzJykgKSB7XG4gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gJ0NvbW1lbnRzIGFyZSB0dXJuZWQgb2ZmJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGFyZ2V0Lmh0bWwoZXJyb3JDb21tZW50VGVtcGxhdGUoZXJyb3JNZXNzYWdlKSk7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBub09mSXRlbXMgPSBjb21tZW50SnNvbj8uaXRlbXMgJiYgY29tbWVudEpzb24/Lml0ZW1zLmxlbmd0aCA/IGNvbW1lbnRKc29uLml0ZW1zLmxlbmd0aCA6ICcnO1xuICAgICAgICBjb25zdCB2aWRlb0xpbmsgPSB2aWRlb0lkID8gYGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9JHt2aWRlb0lkfWAgOiAnJztcblxuICAgICAgICBpZighIG5vT2ZJdGVtcyApIHtcbiAgICAgICAgICAgIHRhcmdldC5odG1sKG5vQ29tbWVudHNUZW1wbGF0ZSgpKTtcbiAgICAgICAgICAgIHRvZ2dsZVJlYWRNb3JlKCk7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBjdXJyZW50Q29tbWVudENvdW50ID0gY29tbWVudENvdW50ID8gYCggJHtjb21tZW50Q291bnR9IClgIDogJyc7XG5cbiAgICAgICAgbGV0IGNvbW1lbnRIdG1sID0gYDxoNCBjbGFzcz1cInNieS1jb21tZW50cy1zdWItaGVhZGluZ1wiPkNvbW1lbnRzICR7Y3VycmVudENvbW1lbnRDb3VudH08L2g0Pjx1bCBjbGFzcz1cInNieS1jb21tZW50c1wiPmA7XG4gICAgICAgIGpRdWVyeS5lYWNoKGNvbW1lbnRKc29uLml0ZW1zLCBmdW5jdGlvbihpbmRleCwgY29tbWVudCkge1xuXG4gICAgICAgICAgICBjb25zdCB0b3BMZXZlbENvbW1lbnRQYXRoID0gY29tbWVudD8uc25pcHBldD8udG9wTGV2ZWxDb21tZW50O1xuICAgICAgICAgICAgY29uc3QgdG9wTGV2ZWxDb21tZW50U25pcHBldCA9IGNvbW1lbnQ/LnNuaXBwZXQ7XG5cbiAgICAgICAgICAgIC8vIEdlbmVyYXRlIHRoZSBIVE1MIGZvciBlYWNoIGNvbW1lbnRcbiAgICAgICAgICAgIGNvbW1lbnRIdG1sICs9IGA8bGkgY2xhc3M9XCJzYnktY29tbWVudFwiPiR7Y29tbWVudFNpbmdsZVRlbXBsYXRlKCBnZXRTaW5nbGVBcGlEYXRhKHRvcExldmVsQ29tbWVudFBhdGgsICdhdXRob3JQcm9maWxlSW1hZ2VVcmwnKSwgZ2V0U2luZ2xlQXBpRGF0YSh0b3BMZXZlbENvbW1lbnRQYXRoLCAnYXV0aG9yRGlzcGxheU5hbWUnKSwgZ2V0U2luZ2xlQXBpRGF0YSh0b3BMZXZlbENvbW1lbnRQYXRoLCAnYXV0aG9yQ2hhbm5lbFVybCcpLCBnZXRTaW5nbGVBcGlEYXRhKHRvcExldmVsQ29tbWVudFBhdGgsICd0ZXh0RGlzcGxheScpLCBnZXRTaW5nbGVBcGlEYXRhKHRvcExldmVsQ29tbWVudFBhdGgsICdsaWtlQ291bnQnKSwgZ2V0U2luZ2xlQXBpRGF0YSh0b3BMZXZlbENvbW1lbnRQYXRoLCAncHVibGlzaGVkQXQnKSwgZ2V0U2luZ2xlQXBpRGF0YSh0b3BMZXZlbENvbW1lbnRTbmlwcGV0LCAndG90YWxSZXBseUNvdW50JykpfVxuICAgICAgICAgICAgPHVsIGNsYXNzPVwic2J5LXJlcGx5LWNvbW1lbnRzXCI+YDtcblxuICAgICAgICAgICAgaWYoIGNvbW1lbnQ/LnJlcGxpZXM/LmNvbW1lbnRzICkge1xuICAgICAgICAgICAgICAgIC8vIFVzZSAkLmVhY2ggdG8gbG9vcCB0aHJvdWdoIHJlcGxpZXNcbiAgICAgICAgICAgICAgICBqUXVlcnkuZWFjaChjb21tZW50LnJlcGxpZXMuY29tbWVudHMsIGZ1bmN0aW9uKHJlcGx5SW5kZXgsIHJlcGx5KSB7XG5cbiAgICAgICAgICAgICAgICAgICAgY29tbWVudEh0bWwgKz0gYDxsaSBjbGFzcz1cInNieS1yZXBseS1jb21tZW50XCIgPiR7Y29tbWVudFNpbmdsZVRlbXBsYXRlKGdldFNpbmdsZUFwaURhdGEocmVwbHksICdhdXRob3JQcm9maWxlSW1hZ2VVcmwnKSwgZ2V0U2luZ2xlQXBpRGF0YShyZXBseSwgJ2F1dGhvckRpc3BsYXlOYW1lJyksIGdldFNpbmdsZUFwaURhdGEocmVwbHksICdhdXRob3JDaGFubmVsVXJsJyksIGdldFNpbmdsZUFwaURhdGEocmVwbHksICd0ZXh0RGlzcGxheScpLCBnZXRTaW5nbGVBcGlEYXRhKHJlcGx5LCAnbGlrZUNvdW50JyksIGdldFNpbmdsZUFwaURhdGEocmVwbHksICdwdWJsaXNoZWRBdCcpKX08L2xpPmA7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBDbG9zZSB0aGUgY29tbWVudCBjb250YWluZXJcbiAgICAgICAgICAgIGNvbW1lbnRIdG1sICs9IGA8L3VsPjwvbGk+YDtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbW1lbnRIdG1sICs9IGA8L3VsPmA7XG4gICAgICAgIGNvbW1lbnRIdG1sICs9IGA8YSBocmVmPVwiJHt2aWRlb0xpbmt9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgY2xhc3M9XCJzYnktdmlldy1hbGwtYnV0dG9uIFwiPlZpZXcgYWxsIGNvbW1lbnRzIG9uIFlvdVR1YmU8L2E+YDtcblxuICAgICAgICB0YXJnZXQuaHRtbChjb21tZW50SHRtbCkuZmFkZUluKFwiZmFzdFwiKTsgXG5cbiAgICAgICAgdG9nZ2xlUmVhZE1vcmUoKTtcbiAgICAgICAgdG9nZ2xlQWNjb3JkaW9uKCdzYnktYWN0aXZlJywnLnNieS1yZXBsaWVzJywnLnNieS1jb21tZW50JywnLnNieS1yZXBseS1jb21tZW50cycpO1xuICAgIH1cblxuICAgIHRvZ2dsZVJlYWRNb3JlKCk7XG4gICAgc2J5QWpheChzdWJtaXREYXRhLG9uU3VjY2VzcylcblxufVxuXG4vKipcbiAqIFRvZ2dsZXMgdGhlIHRleHQgb2YgYW4gZWxlbWVudCBiYXNlZCBvbiBpdHMgY3VycmVudCBjb250ZW50LlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gdXBkYXRlcyB0aGUgdGV4dCBvZiBhbiBlbGVtZW50IGlmIHRoZSBlbGVtZW50J3MgY3VycmVudCB0ZXh0XG4gKiBtYXRjaGVzIHRoZSBzcGVjaWZpZWQgYGN1cnJlbnRUZXh0YC4gSWYgaXQgbWF0Y2hlcywgdGhlIHRleHQgaXMgcmVwbGFjZWQgd2l0aFxuICogdGhlIHByb3ZpZGVkIGByZXBsYWNlbWVudFRleHRgLiBJZiBpdCBkb2VzIG5vdCBtYXRjaCwgdGhlIHRleHQgcmVtYWlucyBhcyBgY3VycmVudFRleHRgLlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBjdXJyZW50U3RhdGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBjdXJyZW50VGV4dFxuICogQHBhcmFtIHtzdHJpbmd9IHJlcGxhY2VtZW50VGV4dFxuICogXG4gKiBAcmV0dXJucyB7dm9pZH0gXG4gKi9cblxuZnVuY3Rpb24gY2hhbmdlVGV4dE9uVG9nZ2xlKGN1cnJlbnRTdGF0ZSwgY3VycmVudFRleHQsIHJlcGxhY2VtZW50VGV4dCApIHtcblxuICAgIGlmKCBjdXJyZW50U3RhdGUgJiYgY3VycmVudFRleHQgJiYgcmVwbGFjZW1lbnRUZXh0ICkge1xuICAgICAgICBjb25zdCBjdXJyZW50U3RhdGVUZXh0ID0gY3VycmVudFRleHQgPT09IGN1cnJlbnRTdGF0ZS50ZXh0KCkgPyByZXBsYWNlbWVudFRleHQgOiBjdXJyZW50VGV4dDtcbiAgICAgICAgY3VycmVudFN0YXRlLnRleHQoY3VycmVudFN0YXRlVGV4dCk7XG4gICAgfVxufVxuXG4vKipcbiAqIFJlc2V0cyB0aGUgY29tbWVudHMgb2YgYSBzcGVjaWZpZWQgcGFyZW50IGVsZW1lbnQuXG4gKlxuICogQHBhcmFtIHtqUXVlcnl9IHBhcmVudFxuICpcbiAqIEByZXR1cm5zIHt2b2lkfSBcbiAqL1xuXG5mdW5jdGlvbiByZXNldENvbW1lbnRzKHBhcmVudCkge1xuICAgIGlmKCAnZ2FsbGVyeScgPT09IGdldExheW91dChwYXJlbnQpIHx8ICdsaXN0JyA9PT0gZ2V0TGF5b3V0KHBhcmVudCkgKSB7XG4gICAgICAgIGNvbnN0IHRyaWdnZXIgPSBwYXJlbnQuZmluZCgnLnNieS1jb21tZW50cy10cmlnZ2VyJyk7XG4gICAgICAgIHRyaWdnZXIuZmluZCgncCcpLnRleHQoJ1Nob3cgQ29tbWVudHMnKTtcbiAgICAgICAgcGFyZW50LmZpbmQoJy5zYnktY29tbWVudHMtd3JhcCcpLmh0bWwoJycpO1xuICAgIH1cbn1cblxuLyoqXG4gKiBGb3JtYXRzIGEgbGFyZ2UgbnVtYmVyIGludG8gYSBtb3JlIHJlYWRhYmxlIHN0cmluZyB3aXRoIGEgc3VmZml4LlxuICogVGhlIGZ1bmN0aW9uIGNvbnZlcnRzIGxhcmdlIG51bWJlcnMgaW50byBhIHN0cmluZyB3aXRoIGEgc3VmZml4IHRvIGRlbm90ZSB0aGUgc2NhbGUgb2YgdGhlIG51bWJlci5cbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gbnVtXG4gKiBcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cblxuZnVuY3Rpb24gZm9ybWF0TGFyZ2VOdW1iZXIobnVtKSB7XG4gICAgaWYgKG51bSA+PSAxZTkpIHJldHVybiAobnVtIC8gMWU5KS50b0ZpeGVkKDEpICsgJ0InO1xuICAgIGlmIChudW0gPj0gMWU2KSByZXR1cm4gKG51bSAvIDFlNikudG9GaXhlZCgxKSArICdNJztcbiAgICBpZiAobnVtID49IDFlMykgcmV0dXJuIChudW0gLyAxZTMpLnRvRml4ZWQoMSkgKyAnSyc7XG5cbiAgICByZXR1cm4gbnVtO1xufVxuXG4vKipcbiAqIEFwcGxpZXMgYSBzZXQgb2YgY29sb3JzIHRvIHRoZSBjaGFubmVsIGhlYWRlci5cbiAqIFxuICogQHBhcmFtIHtPYmplY3R9IGNvbG9yQXJyYXkgLSBBbiBvYmplY3QgY29udGFpbmluZyBjb2xvciBwcm9wZXJ0aWVzIGZvciB0aGUgY2hhbm5lbCBoZWFkZXIuXG4gKiBAcGFyYW0ge3N0cmluZ30gY29sb3JBcnJheS5jaGFubmVsTmFtZSAtIFRoZSB0ZXh0IGNvbG9yIGZvciB0aGUgY2hhbm5lbCBuYW1lIGVsZW1lbnQuXG4gKiBAcGFyYW0ge3N0cmluZ30gY29sb3JBcnJheS5zdWJzY3JpYmVDb3VudCAtIFRoZSB0ZXh0IGNvbG9yIGZvciB0aGUgc3Vic2NyaWJlIGNvdW50IGVsZW1lbnQuXG4gKiBAcGFyYW0ge3N0cmluZ30gY29sb3JBcnJheS5idXR0b25CYWNrZ3JvdW5kIC0gVGhlIGJhY2tncm91bmQgY29sb3IgZm9yIHRoZSBidXR0b24gZWxlbWVudC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBjb2xvckFycmF5LmJ1dHRvblRleHQgLSBUaGUgdGV4dCBjb2xvciBmb3IgdGhlIGJ1dHRvbiBlbGVtZW50LlxuICogXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZnVuY3Rpb24gc2V0Q29sb3JzVG9DaGFubmVsSGVhZGVyKGNvbG9yQXJyYXkpIHtcbiAgICBjb25zdCB7Y2hhbm5lbE5hbWUsIHN1YnNjcmliZUNvdW50LCBidXR0b25CYWNrZ3JvdW5kLCBidXR0b25UZXh0fSA9IGNvbG9yQXJyYXk7XG4gICAgY29uc3QgcGFyZW50ID0galF1ZXJ5KCcuc2J5X2xiLWRhdGFDb250YWluZXIgLnNieS1sYi1jaGFubmVsLWhlYWRlcicpO1xuICAgIFxuICAgIGlmKCAhIHBhcmVudCApIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmKCBjaGFubmVsTmFtZSApIHtcbiAgICAgICAgcGFyZW50LmZpbmQoJy5zYnktbGItY2hhbm5lbC1uYW1lLXdpdGgtc3VicyBzcGFuOmZpcnN0LWNoaWxkJykuY3NzKCdjb2xvcicsIGNoYW5uZWxOYW1lKTtcbiAgICB9XG5cbiAgICBpZiggc3Vic2NyaWJlQ291bnQgKSB7XG4gICAgICAgIHBhcmVudC5maW5kKCcuc2J5LWxiLWNoYW5uZWwtbmFtZS13aXRoLXN1YnMgc3BhbjpudGgtY2hpbGQoMiknKS5jc3MoJ2NvbG9yJywgc3Vic2NyaWJlQ291bnQpO1xuICAgIH1cblxuICAgIGlmKCBidXR0b25CYWNrZ3JvdW5kICkge1xuICAgICAgICBwYXJlbnQuZmluZCgnLnNieS1sYi1zdWJzY3JpYmUtYnRuJykuY3NzKCdiYWNrZ3JvdW5kJywgYnV0dG9uQmFja2dyb3VuZCk7XG4gICAgfVxuXG4gICAgaWYoIGJ1dHRvblRleHQgKSB7XG4gICAgICAgIHBhcmVudC5maW5kKCcuc2J5LWxiLXN1YnNjcmliZS1idG4nKS5jc3MoJ2NvbG9yJywgYnV0dG9uVGV4dCk7XG4gICAgfVxufSJdLCJuYW1lcyI6WyJERUZBVUxUIiwicGFyc2VTdHlsZSIsImlzTnVsbCIsIm9iaiIsIkZpbHRlckNTUyIsIm9wdGlvbnMiLCJyZXQiLCJpIiwic2hhbGxvd0NvcHlPYmplY3QiLCJ3aGl0ZUxpc3QiLCJvbkF0dHIiLCJvbklnbm9yZUF0dHIiLCJzYWZlQXR0clZhbHVlIiwidGhpcyIsInByb3RvdHlwZSIsInByb2Nlc3MiLCJjc3MiLCJ0b1N0cmluZyIsInNvdXJjZVBvc2l0aW9uIiwicG9zaXRpb24iLCJuYW1lIiwidmFsdWUiLCJzb3VyY2UiLCJjaGVjayIsImlzV2hpdGUiLCJSZWdFeHAiLCJ0ZXN0Iiwib3B0cyIsIm1vZHVsZSIsImV4cG9ydHMiLCJnZXREZWZhdWx0V2hpdGVMaXN0IiwiUkVHRVhQX1VSTF9KQVZBU0NSSVBUIiwiaHRtbCIsIndpbmRvdyIsImZpbHRlckNTUyIsIl8iLCJ0cmltUmlnaHQiLCJsZW5ndGgiLCJjc3NMZW5ndGgiLCJpc1BhcmVudGhlc2lzT3BlbiIsImxhc3RQb3MiLCJyZXRDU1MiLCJhZGROZXdBdHRyIiwidHJpbSIsInNsaWNlIiwiaiIsImluZGV4T2YiLCJjIiwiYXJyIiwiaXRlbSIsIkFycmF5IiwiZm9yRWFjaCIsImZuIiwic2NvcGUiLCJjYWxsIiwic3RyIiwiU3RyaW5nIiwicmVwbGFjZSIsImdldERlZmF1bHRDU1NXaGl0ZUxpc3QiLCJkZWZhdWx0Q1NTRmlsdGVyIiwiZXNjYXBlSHRtbCIsIlJFR0VYUF9MVCIsIlJFR0VYUF9HVCIsIlJFR0VYUF9RVU9URSIsIlJFR0VYUF9RVU9URV8yIiwiUkVHRVhQX0FUVFJfVkFMVUVfMSIsIlJFR0VYUF9BVFRSX1ZBTFVFX0NPTE9OIiwiUkVHRVhQX0FUVFJfVkFMVUVfTkVXTElORSIsIlJFR0VYUF9ERUZBVUxUX09OX1RBR19BVFRSXzQiLCJSRUdFWFBfREVGQVVMVF9PTl9UQUdfQVRUUl83IiwiUkVHRVhQX0RFRkFVTFRfT05fVEFHX0FUVFJfOCIsImVzY2FwZVF1b3RlIiwidW5lc2NhcGVRdW90ZSIsImVzY2FwZUh0bWxFbnRpdGllcyIsImNvZGUiLCJmcm9tQ2hhckNvZGUiLCJwYXJzZUludCIsInN1YnN0ciIsImVzY2FwZURhbmdlckh0bWw1RW50aXRpZXMiLCJjbGVhck5vblByaW50YWJsZUNoYXJhY3RlciIsInN0cjIiLCJsZW4iLCJjaGFyQ29kZUF0IiwiY2hhckF0IiwiZnJpZW5kbHlBdHRyVmFsdWUiLCJlc2NhcGVBdHRyVmFsdWUiLCJhIiwiYWJiciIsImFkZHJlc3MiLCJhcmVhIiwiYXJ0aWNsZSIsImFzaWRlIiwiYXVkaW8iLCJiIiwiYmRpIiwiYmRvIiwiYmlnIiwiYmxvY2txdW90ZSIsImJyIiwiY2FwdGlvbiIsImNlbnRlciIsImNpdGUiLCJjb2wiLCJjb2xncm91cCIsImRkIiwiZGVsIiwiZGV0YWlscyIsImRpdiIsImRsIiwiZHQiLCJlbSIsImZpZ2NhcHRpb24iLCJmaWd1cmUiLCJmb250IiwiZm9vdGVyIiwiaDEiLCJoMiIsImgzIiwiaDQiLCJoNSIsImg2IiwiaGVhZGVyIiwiaHIiLCJpbWciLCJpbnMiLCJrYmQiLCJsaSIsIm1hcmsiLCJuYXYiLCJvbCIsInAiLCJwcmUiLCJzIiwic2VjdGlvbiIsInNtYWxsIiwic3BhbiIsInN1YiIsInN1bW1hcnkiLCJzdXAiLCJzdHJvbmciLCJzdHJpa2UiLCJ0YWJsZSIsInRib2R5IiwidGQiLCJ0Zm9vdCIsInRoIiwidGhlYWQiLCJ0ciIsInR0IiwidSIsInVsIiwidmlkZW8iLCJvblRhZyIsInRhZyIsIm9uSWdub3JlVGFnIiwib25UYWdBdHRyIiwib25JZ25vcmVUYWdBdHRyIiwiY3NzRmlsdGVyIiwibGFzdEluZGV4Iiwib25JZ25vcmVUYWdTdHJpcEFsbCIsIlN0cmlwVGFnQm9keSIsInRhZ3MiLCJuZXh0IiwiaXNSZW1vdmVBbGxUYWciLCJpc0FycmF5IiwicmVtb3ZlTGlzdCIsInBvc1N0YXJ0IiwiaXNSZW1vdmVUYWciLCJpc0Nsb3NpbmciLCJlbmQiLCJwdXNoIiwicmVtb3ZlIiwicmV0aHRtbCIsInBvcyIsInN0cmlwQ29tbWVudFRhZyIsInJldEh0bWwiLCJzdHJpcEJsYW5rQ2hhciIsImNoYXJzIiwic3BsaXQiLCJmaWx0ZXIiLCJjaGFyIiwiam9pbiIsImF0dHJpYnV0ZVdyYXBTaWduIiwicGFyc2VyIiwiRmlsdGVyWFNTIiwiZmlsdGVyWFNTIiwic2VsZiIsIkRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlIiwiZ2V0VGFnTmFtZSIsInRhZ05hbWUiLCJzcGFjZUluZGV4IiwidG9Mb3dlckNhc2UiLCJSRUdFWFBfSUxMRUdBTF9BVFRSX05BTUUiLCJmaW5kTmV4dEVxdWFsIiwiZmluZE5leHRRdW90YXRpb25NYXJrIiwiZmluZEJlZm9yZUVxdWFsIiwic3RyaXBRdW90ZVdyYXAiLCJ0ZXh0IiwiaXNRdW90ZVdyYXBTdHJpbmciLCJwYXJzZVRhZyIsInRhZ1N0YXJ0IiwicXVvdGVTdGFydCIsImN1cnJlbnRQb3MiLCJjdXJyZW50VGFnTmFtZSIsImN1cnJlbnRIdG1sIiwiY2hhcml0ZXJhdG9yIiwiaWMiLCJwYXJzZUF0dHIiLCJsYXN0TWFya1BvcyIsInJldEF0dHJzIiwidG1wTmFtZSIsImFkZEF0dHIiLCJtYXRjaCIsImV4ZWMiLCJpbmRleCIsInN0cmlwSWdub3JlVGFnIiwiY29uc29sZSIsImVycm9yIiwiYWxsb3dMaXN0IiwibWFwIiwia2V5c1RvTG93ZXJDYXNlIiwic2luZ2xlUXVvdGVkQXR0cmlidXRlVmFsdWUiLCJtZSIsImFsbG93Q29tbWVudFRhZyIsInN0cmlwSWdub3JlVGFnQm9keSIsImluZm8iLCJPYmplY3QiLCJoYXNPd25Qcm9wZXJ0eSIsImF0dHJzIiwiY2xvc2luZyIsImdldEF0dHJzIiwid2hpdGVBdHRyTGlzdCIsImF0dHJzSHRtbCIsImlzV2hpdGVBdHRyIiwiX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fIiwiJCIsImsiLCJmIiwiZSIsIm0iLCJsIiwiZyIsInhzcyIsIl9fd2VicGFja19yZXF1aXJlX18iLCJtb2R1bGVJZCIsImNhY2hlZE1vZHVsZSIsInVuZGVmaW5lZCIsIl9fd2VicGFja19tb2R1bGVzX18iLCJyZXF1aXJlIiwic2J5X2pzX2V4aXN0cyIsInNieUVuY29kZUlucHV0IiwiaW5wdXQiLCJzYnlfc3VwcG9ydHNfdmlkZW8iLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJjYW5QbGF5VHlwZSIsInNieUxpbmtpZnkiLCJjYWxsYmFjayIsInEiLCJwdW5jdF9yZWdleHAiLCJ6IiwidyIsInYiLCJBIiwiRSIsIkMiLCJ5IiwiRCIsIkIiLCJyIiwieCIsInQiLCJGIiwiYXBwbHkiLCJkIiwic2V0dGluZ3MiLCJleHRlbmQiLCJEZWZhdWx0cyIsIiRlbGVtZW50IiwiX2hhbmRsZXJzIiwiX3BsdWdpbnMiLCJfc3VwcmVzcyIsIl9jdXJyZW50IiwiX3NwZWVkIiwiX2Nvb3JkaW5hdGVzIiwiX2JyZWFrcG9pbnQiLCJfd2lkdGgiLCJfaXRlbXMiLCJfY2xvbmVzIiwiX21lcmdlcnMiLCJfd2lkdGhzIiwiX2ludmFsaWRhdGVkIiwiX3BpcGUiLCJfZHJhZyIsInRpbWUiLCJ0YXJnZXQiLCJwb2ludGVyIiwic3RhZ2UiLCJzdGFydCIsImN1cnJlbnQiLCJkaXJlY3Rpb24iLCJfc3RhdGVzIiwiaW5pdGlhbGl6aW5nIiwiYW5pbWF0aW5nIiwiZHJhZ2dpbmciLCJlYWNoIiwicHJveHkiLCJQbHVnaW5zIiwiV29ya2VycyIsInJ1biIsInNldHVwIiwiaW5pdGlhbGl6ZSIsIml0ZW1zIiwibG9vcCIsInJld2luZCIsIm1vdXNlRHJhZyIsInRvdWNoRHJhZyIsInB1bGxEcmFnIiwiZnJlZURyYWciLCJtYXJnaW4iLCJzdGFnZVBhZGRpbmciLCJtZXJnZSIsIm1lcmdlRml0IiwiYXV0b1dpZHRoIiwic3RhcnRQb3NpdGlvbiIsInJ0bCIsInNtYXJ0U3BlZWQiLCJmbHVpZFNwZWVkIiwiZHJhZ0VuZFNwZWVkIiwicmVzcG9uc2l2ZSIsInJlc3BvbnNpdmVSZWZyZXNoUmF0ZSIsInJlc3BvbnNpdmVCYXNlRWxlbWVudCIsImZhbGxiYWNrRWFzaW5nIiwibmVzdGVkSXRlbVNlbGVjdG9yIiwiaXRlbUVsZW1lbnQiLCJzdGFnZUVsZW1lbnQiLCJyZWZyZXNoQ2xhc3MiLCJsb2FkZWRDbGFzcyIsImxvYWRpbmdDbGFzcyIsInJ0bENsYXNzIiwicmVzcG9uc2l2ZUNsYXNzIiwiZHJhZ0NsYXNzIiwiaXRlbUNsYXNzIiwic3RhZ2VDbGFzcyIsInN0YWdlT3V0ZXJDbGFzcyIsImdyYWJDbGFzcyIsIldpZHRoIiwiRGVmYXVsdCIsIklubmVyIiwiT3V0ZXIiLCJUeXBlIiwiRXZlbnQiLCJTdGF0ZSIsIndpZHRoIiwicmVsYXRpdmUiLCIkc3RhZ2UiLCJjaGlsZHJlbiIsInRvRml4ZWQiLCJNYXRoIiwibWluIiwibWF4IiwiY2VpbCIsImgiLCJub3JtYWxpemUiLCJvdXRlckhUTUwiLCJhZGRDbGFzcyIsImFwcGVuZFRvIiwicHJlcGVuZFRvIiwiYWJzIiwiZXEiLCJyZW1vdmVBdHRyIiwibWluaW11bSIsIm1heGltdW0iLCJyZXNldCIsImFuaW1hdGUiLCJjb29yZGluYXRlcyIsIm9wIiwicmVtb3ZlQ2xhc3MiLCJlbnRlciIsInRyaWdnZXIiLCJ0b2dnbGVDbGFzcyIsImlzIiwiZmluZCIsInByZWxvYWRBdXRvV2lkdGhJbWFnZXMiLCJ3cmFwIiwiYXBwZW5kIiwicGFyZW50Iiwibm90IiwicmVmcmVzaCIsImludmFsaWRhdGUiLCJyZWdpc3RlckV2ZW50SGFuZGxlcnMiLCJsZWF2ZSIsInZpZXdwb3J0IiwiTnVtYmVyIiwiYXR0ciIsInByb3BlcnR5Iiwib3B0aW9uc0xvZ2ljIiwicHJlcGFyZSIsImNvbnRlbnQiLCJkYXRhIiwidXBkYXRlIiwiYWxsIiwiZ3JlcCIsIm9uVGhyb3R0bGVkUmVzaXplIiwiY2xlYXJUaW1lb3V0IiwicmVzaXplVGltZXIiLCJzZXRUaW1lb3V0Iiwib25SZXNpemUiLCJpc0RlZmF1bHRQcmV2ZW50ZWQiLCJzdXBwb3J0IiwidHJhbnNpdGlvbiIsIm9uIiwib25UcmFuc2l0aW9uRW5kIiwib25EcmFnU3RhcnQiLCJvbkRyYWdFbmQiLCJ3aGljaCIsInRyYW5zZm9ybSIsImxlZnQiLCJ0b3AiLCJzdG9wIiwidHlwZSIsInNwZWVkIiwiRGF0ZSIsImdldFRpbWUiLCJvbmUiLCJkaWZmZXJlbmNlIiwib25EcmFnTW92ZSIsInByZXZlbnREZWZhdWx0Iiwib2ZmIiwiY2xvc2VzdCIsInRyYW5zZm9ybTNkIiwic3VwcHJlc3MiLCJyZWxlYXNlIiwiaXNOdW1lcmljIiwibWVyZ2VycyIsImNsb25lcyIsImR1cmF0aW9uIiwidG8iLCJwcmV2Iiwic3RvcFByb3BhZ2F0aW9uIiwic3JjRWxlbWVudCIsIm9yaWdpbmFsVGFyZ2V0IiwiZ2V0IiwiaW5uZXJXaWR0aCIsImRvY3VtZW50RWxlbWVudCIsImNsaWVudFdpZHRoIiwid2FybiIsImVtcHR5IiwialF1ZXJ5Iiwibm9kZVR5cGUiLCJhZGRCYWNrIiwiYWRkIiwiYWZ0ZXIiLCJiZWZvcmUiLCJzcGxpY2UiLCJJbWFnZSIsInNyYyIsImRlc3Ryb3kiLCJ1bndyYXAiLCJjb250ZW50cyIsInJlbW92ZURhdGEiLCJhZGRFdmVudExpc3RlbmVyIiwiYXR0YWNoRXZlbnQiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiZGV0YWNoRXZlbnQiLCJjb3VudCIsImNhbWVsQ2FzZSIsInJlbGF0ZWRUYXJnZXQiLCJvblRyaWdnZXIiLCJyZWdpc3RlciIsImNvbmNhdCIsImV2ZW50Iiwic3BlY2lhbCIsIm93bCIsIl9kZWZhdWx0IiwibmFtZXNwYWNlIiwiYXJndW1lbnRzIiwiaW5BcnJheSIsIm9yaWdpbmFsRXZlbnQiLCJ0b3VjaGVzIiwiY2hhbmdlZFRvdWNoZXMiLCJwYWdlWCIsInBhZ2VZIiwiY2xpZW50WCIsImNsaWVudFkiLCJpc05hTiIsInBhcnNlRmxvYXQiLCJzYnlPd2xDYXJvdXNlbCIsIl90eXBlb2YiLCJDb25zdHJ1Y3RvciIsIlplcHRvIiwiX2NvcmUiLCJfaW50ZXJ2YWwiLCJfdmlzaWJsZSIsImF1dG9SZWZyZXNoIiwid2F0Y2giLCJhdXRvUmVmcmVzaEludGVydmFsIiwic2V0SW50ZXJ2YWwiLCJjbGVhckludGVydmFsIiwiZ2V0T3duUHJvcGVydHlOYW1lcyIsIkF1dG9SZWZyZXNoIiwiX2xvYWRlZCIsImxhenlMb2FkIiwibG9hZCIsImRldmljZVBpeGVsUmF0aW8iLCJlbGVtZW50IiwidXJsIiwib25sb2FkIiwib3BhY2l0eSIsImhhbmRsZXJzIiwiTGF6eSIsImF1dG9IZWlnaHQiLCJhdXRvSGVpZ2h0Q2xhc3MiLCJ0b0FycmF5IiwiaGVpZ2h0IiwiQXV0b0hlaWdodCIsIl92aWRlb3MiLCJfcGxheWluZyIsImlzSW5GdWxsU2NyZWVuIiwiZmV0Y2giLCJwbGF5IiwidmlkZW9IZWlnaHQiLCJ2aWRlb1dpZHRoIiwiRXJyb3IiLCJpZCIsInRodW1ibmFpbCIsImFqYXgiLCJqc29ucCIsImRhdGFUeXBlIiwic3VjY2VzcyIsInRodW1ibmFpbF9sYXJnZSIsImZyYW1lZ3JhYl91cmwiLCJpbnNlcnRBZnRlciIsImZ1bGxzY3JlZW5FbGVtZW50IiwibW96RnVsbFNjcmVlbkVsZW1lbnQiLCJ3ZWJraXRGdWxsc2NyZWVuRWxlbWVudCIsImhhc0NsYXNzIiwiVmlkZW8iLCJjb3JlIiwic3dhcHBpbmciLCJwcmV2aW91cyIsImFuaW1hdGVPdXQiLCJhbmltYXRlSW4iLCJzd2FwIiwiYW5pbWF0aW9uIiwiY2xlYXIiLCJBbmltYXRlIiwiX3RpbWVvdXQiLCJfcGF1c2VkIiwiYXV0b3BsYXkiLCJfc2V0QXV0b1BsYXlJbnRlcnZhbCIsImF1dG9wbGF5SG92ZXJQYXVzZSIsInBhdXNlIiwiYXV0b3BsYXlUaW1lb3V0IiwiYXV0b3BsYXlTcGVlZCIsIl9nZXROZXh0VGltZW91dCIsImhpZGRlbiIsIl9pbml0aWFsaXplZCIsIl9wYWdlcyIsIl9jb250cm9scyIsIl90ZW1wbGF0ZXMiLCJfb3ZlcnJpZGVzIiwiZG90c0RhdGEiLCJkb3RDbGFzcyIsInBvcCIsImRyYXciLCJuYXZUZXh0IiwibmF2U3BlZWQiLCJuYXZFbGVtZW50IiwibmF2Q29udGFpbmVyIiwibmF2Q29udGFpbmVyQ2xhc3MiLCJuYXZDbGFzcyIsInNsaWRlQnkiLCJkb3RzQ2xhc3MiLCJkb3RzIiwiZG90c0VhY2giLCJkb3RzU3BlZWQiLCJkb3RzQ29udGFpbmVyIiwiJHJlbGF0aXZlIiwiJHByZXZpb3VzIiwiJG5leHQiLCJwcm9wIiwiJGFic29sdXRlIiwib3ZlcmlkZXMiLCJwYWdlIiwic2l6ZSIsImdldFBvc2l0aW9uIiwiTmF2aWdhdGlvbiIsIl9oYXNoZXMiLCJsb2NhdGlvbiIsImhhc2giLCJzdWJzdHJpbmciLCJVUkxoYXNoTGlzdGVuZXIiLCJIYXNoIiwidG9VcHBlckNhc2UiLCJzdHlsZSIsIldlYmtpdFRyYW5zaXRpb24iLCJNb3pUcmFuc2l0aW9uIiwiT1RyYW5zaXRpb24iLCJXZWJraXRBbmltYXRpb24iLCJNb3pBbmltYXRpb24iLCJPQW5pbWF0aW9uIiwiT3dsMnJvdyIsIl9Pd2wycm93IiwiX3giLCJvd2wycm93IiwiYnVpbGQycm93Iiwib3dsMnJvd1RhcmdldCIsIm93bDJyb3dDb250YWluZXIiLCJvd2wycm93RGlyZWN0aW9uIiwidGhpc1Njb3BlIiwiY2Fyb3VzZWwiLCJjYXJvdXNlbEl0ZW1zIiwiYUV2ZW5FbGVtZW50cyIsImFPZGRFbGVtZW50cyIsImxlZnRUb3JpZ2h0IiwidXBUb2Rvd24iLCJvMndDb250YWluZXJDbGFzcyIsIm93bE1hcmdpbiIsImNhcm91c2VsSXRlbXNMZW5ndGgiLCJmaXJzQXJyIiwic2Vjb25kQXJyIiwicm93Q29udGFpbmVyIiwiZmlyc3RSb3dFbGVtZW50IiwibWFyZ2luQm90dG9tIiwiZXZlbkVsZW1lbnQiLCJTYnkiLCJmZWVkcyIsImN0YXMiLCJzYnlPcHRpb25zIiwiaXNUb3VjaCIsIlNieUZlZWQiLCJlbCIsInBsYWNlaG9sZGVyVVJMIiwic2J5IiwicGxhY2Vob2xkZXIiLCJuYXJyb3dQbGF5ZXIiLCJwbGFjZWhvbGRlck5hcnJvdyIsInBsYXllckFQSVJlYWR5IiwiY29uc2VudEdpdmVuIiwicGxheWVycyIsIm1pbkltYWdlV2lkdGgiLCJpbWFnZVJlc29sdXRpb24iLCJyZXNpemVkSW1hZ2VzIiwibmVlZHNSZXNpemluZyIsIm91dE9mUGFnZXMiLCJpc0luaXRpYWxpemVkIiwibW9zdFJlY2VudGx5TG9hZGVkUG9zdHMiLCJlbWJlZFVSTCIsImFsbG93Q29va2llcyIsIlNieUZlZWRQcm8iLCJDVEEiLCJpbml0TGF5b3V0IiwiaW5pdEdhbGxlcnlMYXlvdXQiLCJpbml0R3JpZCIsImluaXRDYXJvdXNlbHMiLCJldnQiLCJmZWVkIiwib3BlbkNvbW1lbnRzIiwic2J5U2VtaUVhZ2VyTG9hZGluZyIsInBsYXllcklEIiwiaXNQcm8iLCJ2aWRlb0lEIiwiZmlyc3QiLCJzYnlMaWdodGJveFBsYXllciIsImFyZ3MiLCJob3N0IiwicHJvdG9jb2wiLCJ2aWRlb0lkIiwicGxheWVyVmFycyIsIm1vZGVzdGJyYW5kaW5nIiwicmVsIiwiZXZlbnRzIiwiZ2V0VmlkZW9EYXRhIiwiYWZ0ZXJTdGF0ZUNoYW5nZSIsIm1heWJlQWRkQ1RBIiwiWVQiLCJQbGF5ZXIiLCIkc2VsZiIsImdlbmVyYWwiLCJjb2xzIiwiY29sc21vYmlsZSIsImFycm93cyIsInBhZ2luYXRpb24iLCJyb3dzIiwiaXRlbXNUYWJsZXRTbWFsbCIsIml0ZW1zTW9iaWxlIiwiaGFzMnJvd3MiLCJjYXJvdXNlbEFyZ3MiLCJvbkNoYW5nZSIsImFmdGVyUmVzaXplIiwib25Jbml0aWFsaXplIiwiZmFkZUluIiwiJG5hdkVsZW1lbnRzV3JhcHBlciIsIiRkb3RzIiwiJHByZXYiLCIkbmF2IiwiJGRvdCIsIndpZHRoRG90cyIsImhpZGUiLCJzdHJpcEVtb2ppaHRtbCIsIiRlbCIsInJlcGxhY2VXaXRoIiwiYWZ0ZXJJdGVtUmV2ZWFsZWQiLCIkaXRlbSIsIiRjYXB0aW9uIiwiJGhvdmVyQ2FwdGlvbiIsInRleHRfbGltaXQiLCJkZXNjcmlwdGlvbmxlbmd0aCIsImNhcHRpb25UZXh0Iiwic2hvcnRfdGV4dCIsImJyQWRqdXN0IiwibGFzdEluZGV4T2YiLCJob3ZlckNhcHRpb25UZXh0Iiwic2hvdyIsImNhcHRpb250ZXh0Iiwic2V0VXBDVEEiLCJkaXNhYmxlbGlnaHRib3giLCJjYXB0aW9ubGlua3MiLCJjYXAiLCIkc2J5X3Bob3RvX3dyYXAiLCIkc2J5X2xpbmsiLCJmZWVkT3B0aW9ucyIsImhvdmVyZWZmZWN0IiwiYWZ0ZXJGZWVkU2V0IiwiY3RhSW5DYXB0aW9uIiwiY3RhRGV0ZWN0IiwiZ2V0RGVmYXVsdENUQSIsImN0YSIsImRlZmF1bHRMaW5rIiwiZGVmYXVsdFRleHQiLCJyZWxhdGVkIiwiZGVmYXVsdFBvc3RzIiwic2V0SW1hZ2VIZWlnaHQiLCJzZXRJbWFnZVJlc29sdXRpb24iLCJtYXliZVJhaXNlSW1hZ2VSZXNvbHV0aW9uIiwic2V0SW1hZ2VTaXplQ2xhc3MiLCJzZXRBbGxDVEFEaW1lbnNpb25zIiwic2l6ZVBsYXllciIsInNpemVJdGVtcyIsIkNUQU9iaiIsInNldENUQVN0eWxlcyIsImFmdGVyU2VuZENoZWNrV1BQb3N0c1RvU2VydmVyIiwicmVzcG9uc2UiLCJzYnlfdmlld19jb3VudCIsInNieV9jb21tZW50X2NvdW50Iiwic2J5X2xpa2VfY291bnQiLCJzYnlfbGl2ZV9icm9hZGNhc3QiLCJicm9hZGNhc3RfdHlwZSIsImxpdmVfc3RyZWFtaW5nX3N0cmluZyIsImxpdmVfc3RyZWFtaW5nX2RhdGUiLCJsaXZlX3N0cmVhbWluZ190aW1lc3RhbXAiLCJzYnlfZGVzY3JpcHRpb24iLCIkcGxheWVyIiwidG9nZ2xlQ1RBIiwiY2hhbmdlUGxheWVySW5mbyIsIiRuZXdJdGVtIiwiY2xvbmUiLCJ2aWRlb1RpdGxlIiwiY2hlY2tWYWx1ZSIsInZpZGVvUHVibGlzaERhdGEiLCJyZXNldENvbW1lbnRzIiwiU2J5Q1RBIiwiU2J5TGlnaHRib3hCdWlsZGVyIiwiU2J5TGlnaHRib3hCdWlsZGVyUHJvIiwiZ2V0RGF0YSIsImZlZWRQYXJlbnQiLCJjbG9zZXN0RmVlZEluZGV4Iiwic3Vic2NyaWJlQnRuVGV4dCIsInN1YnNjcmliZUJ0biIsImNvbG9yU2NoZW1lIiwiYXR0cyIsImxpdmVEYXRhQXR0ciIsImNoYW5uZWxIZWFkZXJDb2xvcnNBdHRyIiwiSlNPTiIsInBhcnNlIiwiZmVlZEluZGV4IiwibGluayIsInRpdGxlIiwiYXZhdGFyIiwidXNlciIsImNoYW5uZWxVUkwiLCJjaGFubmVsSUQiLCJjaGFubmVsU3Vic2NyaWJlcnMiLCJwdWJsaXNoZWREYXRlIiwiY29tbWVudENvdW50Iiwidmlld3MiLCJsaXZlRGF0YSIsImNoYW5uZWxIZWFkZXJDb2xvcnMiLCJ0ZW1wbGF0ZSIsImJlZm9yZVBsYXllclNldHVwIiwiJGxpZ2h0Ym94IiwiYWxidW0iLCJhZnRlclBsYXllclNldHVwIiwiYXZhaWxhYmxlQXZhdGFyVXJscyIsInN1YnNjcmliZVNlY3Rpb24iLCJzdWJzY3JpYmVDbGFzcyIsInNieUxpZ2h0Ym94QWN0aW9uIiwiTGlnaHRib3hDb2xvclNjaGVtZSIsImF2YXRhckltYWdlIiwiZ2V0U3RhdGljU1ZHIiwidGltZXN0YW1wIiwiYXZhdGFySW1hZ2VIdG1sIiwidXNlckh0bWwiLCJkZXNjcmlwdGlvbiIsInRpbWVBZ28iLCJ2aWRlb0hlYWRlclNlY3Rpb24iLCJ2aWRlb0Rlc2NyaXB0aW9uaHRtbCIsInZpZGVvRGVzY3JpcHRpb24iLCJjdXJyZW50Q29tbWVudENvdW50IiwiZ2VuZXJhdGVDb21tZW50U2VjdGlvbiIsInRvZ2dsZVJlYWRNb3JlIiwiY29sb3JBcnJheSIsImNoYW5uZWxOYW1lIiwic3Vic2NyaWJlQ291bnQiLCJidXR0b25CYWNrZ3JvdW5kIiwiYnV0dG9uVGV4dCIsInNldENvbG9yc1RvQ2hhbm5lbEhlYWRlciIsImNhbGxiYWNrQXJncyIsImZlZWRPYmpJbkNvbnRleHQiLCJzdGF0ZSIsIm51bUl0ZW1zIiwibnVtSXRlbUNvbHVtbnMiLCJjcmVhdGVQYWdlIiwiY3JlYXRlRmVlZHMiLCJjcmVhdGVGZWVkc0FyZ3MiLCJzYnlhamF4dXJsIiwiaG9zdG5hbWUiLCJtYXliZUFkZFlUQVBJIiwieW91dHViZVNjcmlwdElkIiwiZ2V0RWxlbWVudEJ5SWQiLCJmaXJzdFNjcmlwdCIsImdldEVsZW1lbnRzQnlUYWdOYW1lIiwicGFyZW50Tm9kZSIsImluc2VydEJlZm9yZSIsImNyZWF0ZUxpZ2h0Ym94Iiwic2J5X3RpbWVyIiwibGJCdWlsZGVyIiwic2J5X2xiX2RlbGF5Iiwic2J5X2NhbGxiYWNrIiwic2J5X21zIiwiZmFkZUR1cmF0aW9uIiwiZml0SW1hZ2VzSW5WaWV3cG9ydCIsInJlc2l6ZUR1cmF0aW9uIiwicG9zaXRpb25Gcm9tVG9wIiwic2hvd0ltYWdlTnVtYmVyTGFiZWwiLCJhbHdheXNTaG93TmF2T25Ub3VjaERldmljZXMiLCJ3cmFwQXJvdW5kIiwiYWxidW1MYWJlbCIsImN1cnJlbnRJbWFnZUluZGV4IiwiaW5pdCIsImVuYWJsZSIsImJ1aWxkIiwiY3VycmVudFRhcmdldCIsIiRvdmVybGF5IiwiJG91dGVyQ29udGFpbmVyIiwiJGNvbnRhaW5lciIsImNvbnRhaW5lclRvcFBhZGRpbmciLCJjb250YWluZXJSaWdodFBhZGRpbmciLCJjb250YWluZXJCb3R0b21QYWRkaW5nIiwiY29udGFpbmVyTGVmdFBhZGRpbmciLCJsaWdodGJveE9uQ2xvc2UiLCJwYXVzZVBsYXllciIsImZhZGVPdXQiLCJjaGFuZ2VJbWFnZSIsInNpemVPdmVybGF5IiwidmlzaWJpbGl0eSIsInNjcm9sbFRvcCIsInNjcm9sbExlZnQiLCJkaXNhYmxlS2V5Ym9hcmROYXYiLCJzaXplQ29udGFpbmVyIiwic2hvd0ltYWdlIiwib3V0ZXJXaWR0aCIsIm91dGVySGVpZ2h0IiwidXBkYXRlTmF2IiwidXBkYXRlRGV0YWlscyIsInByZWxvYWROZWlnaGJvcmluZ0ltYWdlcyIsImVuYWJsZUtleWJvYXJkTmF2IiwiY3JlYXRlRXZlbnQiLCJsb2FkVmlkZW9CeUlkIiwiZnVsbEltYWdlIiwicHJlcGVuZCIsImtleWJvYXJkQWN0aW9uIiwia2V5Y29kZSIsImtleUNvZGUiLCJrZXkiLCJ0b2dnbGUiLCJsaWdodGJveENyZWF0ZWQiLCJpc0FkbWluIiwid2hlbkZlZWRzQ3JlYXRlZCIsImZsYWdzIiwidHJpZ2dlcmVkVGVzdCIsInNieUFqYXgiLCJsb2ciLCJudW0iLCJpbWdSZXMiLCJmZWVkSUQiLCJwb3N0SUQiLCJzaG9ydENvZGVBdHRzIiwicmVzaXppbmdFbmFibGVkIiwiaW1hZ2VMb2FkRW5hYmxlZCIsImRlYnVnRW5hYmxlZCIsImZhdm9yTG9jYWwiLCJhamF4UG9zdExvYWQiLCJjaGVja1dQUG9zdHMiLCJzaW5nbGVDaGVja1Bvc3RzIiwiZ2RwciIsIm5vQ0ROIiwibGlnaHRib3hFbmFibGVkIiwibG9jYXRvciIsImF1dG9NaW5SZXMiLCJzdWJzY3JpYmVCYXJFbmFibGVkIiwic2J5R2V0TmV3RmVlZCIsInNieUFQSVJlYWR5Iiwic2V0UmVzaXplZEltYWdlcyIsImFmdGVyRmVlZHNDcmVhdGVkIiwiJHRoaXNIZWFkZXIiLCJlbmNvZGVIVE1MIiwicmF3IiwidXJsRGV0ZWN0IiwiY3RhTWF0Y2hlcyIsInVybE1hdGNoZXMiLCJzaHVmZmxlIiwiYXJyYXkiLCJ0ZW1wb3JhcnlWYWx1ZSIsInJhbmRvbUluZGV4IiwiY3VycmVudEluZGV4IiwiZmxvb3IiLCJyYW5kb20iLCJjaGVja0NvbnNlbnQiLCJnZXROZXdQb3N0U2V0IiwiYWZ0ZXJJbml0aWFsSW1hZ2VzTG9hZGVkIiwic2J5X2RlbGF5IiwibWF5YmVSYWlzZVNpbmdsZUltYWdlUmVzb2x1dGlvbiIsIm9uVGh1bWJuYWlsQ2xpY2siLCJjYW5DcmVhdGVQbGF5ZXIiLCJwbGF5ZXIiLCJwbGF5ZXJFYWdlckxvYWRlZCIsImNyZWF0ZVBsYXllciIsImdldFZpZGVvSUQiLCJpc0N1c3RvbWl6ZXIiLCJmYWRlVG8iLCJpdGVtVmlkSUQiLCJwYXVzZVZpZGVvIiwic2J5RWFnZXJMb2FkaW5nIiwibmV3UGxheWVyIiwibG9hZE1vcmVCdXR0b25Jbml0IiwiaGlkZUV4dHJhSXRlbXNGb3JXaWR0aCIsImJlZm9yZU5ld0ltYWdlc1JldmVhbGVkIiwicmV2ZWFsTmV3SW1hZ2VzIiwiYWZ0ZXJOZXdJbWFnZXNSZXZlYWxlZCIsImFwcGx5RnVsbEZlYXR1cmVzIiwicmVtb3ZlRmVhdHVyZXMiLCJhZnRlckxvYWRNb3JlQ2xpY2tlZCIsIiRidXR0b24iLCJhZnRlck5ld0ltYWdlc0xvYWRlZCIsIiRwbGF5ZXJUaHVtYm5haWwiLCJwbGF5ZXJXaWR0aCIsIm5ld1BsYXllckhlaWdodCIsInRodW1iV2lkdGgiLCJuZXdUaHVtYkhlaWdodCIsImFwcGx5SW1hZ2VMaXF1aWQiLCJzYnlDdXN0b21KUyIsIm9uVGh1bWJuYWlsRW50ZXIiLCJvblRodW1ibmFpbExlYXZlIiwibGlnaHRib3hQbGFjZWhvbGRlciIsImxpZ2h0Ym94UGxhY2Vob2xkZXJOYXJyb3ciLCIkc2J5X2l0ZW1fdHJhbnNpdGlvbl9lbCIsImxpc3RlbkZvclZpc2liaWxpdHlDaGFuZ2UiLCJzZW5kTmVlZHNSZXNpemluZ1RvU2VydmVyIiwic2VuZENoZWNrV1BQb3N0c1RvU2VydmVyIiwiaXRlbU9mZnNldCIsImFjdGlvbiIsIm5lZWRzX3Jlc2l6aW5nIiwib2Zmc2V0IiwiZmVlZF9pZCIsImxvY2F0aW9uR3Vlc3MiLCJwb3N0X2lkIiwicG9zdHMiLCJjdXJyZW50X3Jlc29sdXRpb24iLCJmZWVkU3RhdHVzIiwiYXBwZW5kTmV3UG9zdHMiLCJhZGRSZXNpemVkSW1hZ2VzIiwic2hvdWxkUGFnaW5hdGUiLCJuZXdQb3N0c0h0bWwiLCJsYXN0IiwicmVzaXplZEltYWdlc1RvQWRkIiwiaW1hZ2VJRCIsImZvcmNlQ2hhbmdlIiwiaW1nU3JjU2V0IiwiZ2V0SW1hZ2VVcmxzIiwiY3VycmVudFVybCIsImN1cnJlbnRSZXMiLCJuZXdSZXMiLCJnZXRCZXN0UmVzb2x1dGlvbkZvckF1dG8iLCJyZWFzb24iLCJuZXdVcmwiLCJzcmNTZXQiLCJqdXN0TmV3IiwiaXRlbXNTZWxlY3RvciIsImNvbFdpZHRoIiwiYXNwZWN0UmF0aW8iLCJiZXN0V2lkdGgiLCJiZXN0V2lkdGhSb3VuZGVkIiwiY3VzdG9tU2l6ZXMiLCJkb25lIiwibGF5b3V0IiwibnVtbW9iaWxlIiwiZmVlZFdpZHRoIiwicGhvdG9QYWRkaW5nIiwiZ2V0Q29sdW1uQ291bnQiLCJzZXRNaW5JbWFnZVdpZHRoIiwiZm91bmRTaXplcyIsInJlc2l6ZWRfdXJsIiwiYWRkVG9OZWVkc1Jlc2l6aW5nIiwiJHRhcmdlRWwiLCJnZXRBdmF0YXJVcmwiLCJ1c2VybmFtZSIsImZhdm9yVHlwZSIsImF2YWlsYWJsZUF2YXRhcnMiLCJhdmF0YXJzIiwiaGVhZCIsInNieV9pbWdMaXF1aWQiLCJWRVIiLCJiZ3NfQXZhaWxhYmxlIiwiYmdzX0NoZWNrUnVubmVkIiwiZGVmYXVsdHMiLCJmaWxsIiwidmVydGljYWxBbGlnbiIsImhvcml6b250YWxBbGlnbiIsInVzZUJhY2tncm91bmRTaXplIiwidXNlRGF0YUh0bWxBdHRyIiwiZGVsYXkiLCJmYWRlSW5UaW1lIiwicmVtb3ZlQm94QmFja2dyb3VuZCIsImhhcmRQaXhlbHMiLCJyZXNwb25zaXZlQ2hlY2tUaW1lIiwidGltZWNoZWNrdmlzaWJpbGl0eSIsIm9uU3RhcnQiLCJvbkZpbmlzaCIsIm9uSXRlbVN0YXJ0Iiwib25JdGVtRmluaXNoIiwib25JdGVtRXJyb3IiLCJnZXRDb21wdXRlZFN0eWxlIiwiYmFja2dyb3VuZFNpemUiLCJhY3R1YWxTaXplIiwib2Zmc2V0V2lkdGgiLCJvZmZzZXRIZWlnaHQiLCJzaXplT2xkIiwibiIsIm8iLCJCb29sZWFuIiwiaXNJRSIsImllRmFkZUluRGlzYWJsZWQiLCJlbmNvZGVVUkkiLCJkaXNwbGF5Iiwib3ZlcmZsb3ciLCJvbmVycm9yIiwiY29tcGxldGUiLCJpbmplY3RDc3MiLCJzdHlsZVNoZWV0IiwiY3NzVGV4dCIsImFwcGVuZENoaWxkIiwiY3JlYXRlVGV4dE5vZGUiLCJzYnlBZGRJbWdMaXF1aWQiLCJydW5PbkxvYWQiLCJmcmVxdWVuY3kiLCJzYnlQcmV2aW91c1Zpc2liaWxpdHkiLCJjb250YWlucyIsInNieUNoZWNrVmlzaWJpbGl0eSIsInNieVZpc2liaWxpdHlDaGFuZ2VkIiwidmlzaWJsZSIsInJldHVybkNvbHMiLCJzYnlXaW5kb3dXaWR0aCIsIiRjbGlja2VkIiwiaXNQbGF5ZXIiLCJwbGF5VmlkZW9JblBsYXllciIsImFmdGVyVmlkZW9DaGFuZ2VkIiwidXBkYXRlR2FsbGVyeVBsYXllclN1YnNjcmliZUJ0biIsIiRzYnlJdGVtIiwiJGhvdmVyZWQiLCJzdWJzY3JpYmVCdG5VUkwiLCJDTElfQ29va2llIiwicmVhZCIsIkNMSV9BQ0NFUFRfQ09PS0lFX05BTUUiLCJjbkFyZ3MiLCJwYXJ0cyIsImNvb2tpZSIsInZhbCIsInNoaWZ0IiwiY29tcGxpYW56IiwiY25hbWUiLCJjQXJyIiwic2J5Q21wbHpHZXRDb29raWUiLCJDb29raWVib3QiLCJjb25zZW50ZWQiLCJCb3JsYWJzQ29va2llIiwiQ29uc2VudHMiLCJoYXNDb25zZW50IiwiY2hlY2tDb29raWVDb25zZW50IiwiYWZ0ZXJDb25zZW50VG9nZ2xlZCIsIiRmZWVkIiwiY3JlYXRlIiwicGxheWVySGVpZ2h0IiwiaGVpZ2h0RGlmIiwiZGF0YU51bSIsInJlc2V0Q1RBIiwiY3RhT2JqIiwiZ2V0UmVsYXRlZCIsImFkZGVkIiwiY3VycmVudFZpZGVvSWQiLCJuZXdWaWRlb0lEIiwiJGZlZWRFbCIsInJlbGF0ZWRWaWRzIiwidGhpc1ZpZCIsInN0eWxlQ2xhc3MiLCJjb2xvciIsInRleHRDb2xvciIsIm9wZW5BdHRzIiwib3BlblR5cGUiLCJjdGFPdmVybGF5SGVpZ2h0IiwibnVtUm93cyIsInRvdGFsVmVydGljYWxQYWRkaW5nIiwibWF4Q1RBSXRlbUhlaWdodCIsInNieV9pbml0Iiwic2J5X2Nhcm91c2VsX2luaXQiLCJlYWdlcmxvYWQiLCJ5b3V0dWJlX3VybCIsInNlbWlFYWdlcmxvYWQiLCJyZWFkeSIsImRldGFpbCIsImNhdGVnb3J5Iiwic2xpZGVVcCIsImFkbWluQWpheFVybCIsIm5vbmNlIiwibXNnIiwic2J5WVNjcmlwdElkIiwiZ2V0U2luZ2xlQXBpRGF0YSIsInJvb3RQYXRoIiwiYXR0ck5hbWUiLCJfcm9vdFBhdGgkc25pcHBldCIsIl9yb290UGF0aCRzbmlwcGV0MiIsIl9yb290UGF0aCRzbmlwcGV0MyIsIl9yb290UGF0aCRzbmlwcGV0NCIsIl9yb290UGF0aCRzbmlwcGV0NSIsIl9yb290UGF0aCRzbmlwcGV0NiIsInNuaXBwZXQiLCJhdXRob3JQcm9maWxlSW1hZ2VVcmwiLCJhdXRob3JEaXNwbGF5TmFtZSIsImF1dGhvckNoYW5uZWxVcmwiLCJ0ZXh0RGlzcGxheSIsImxpa2VDb3VudCIsInB1Ymxpc2hlZEF0IiwidG90YWxSZXBseUNvdW50IiwiY29tbWVudFNpbmdsZVRlbXBsYXRlIiwiZHVtbXlQcm9maWxlUGljIiwicmVwbGllcyIsImVycm9yQ29tbWVudFRlbXBsYXRlIiwiZGlmZk1zIiwic2Vjb25kcyIsIm1pbnV0ZXMiLCJob3VycyIsImRheXMiLCJtb250aHMiLCJ5ZWFycyIsInRyaWdnZXJDbGFzc05hbWUiLCJwYXJhZ3JhcGhIZWlnaHQiLCJzY3JvbGxIZWlnaHQiLCJjbGllbnRIZWlnaHQiLCJ1bmJpbmQiLCJjbGljayIsImZsYWciLCJjb21tZW50V3JhcCIsImNvbG9yU2NoZW1lQ2xhc3NOYW1lIiwiZ2V0TGF5b3V0Iiwib3BlbkNvbW1lbnRUcmlnZ2VyIiwiY29tbWVudFdyYXBDbGFzcyIsImNvbW1lbnRTZWNpb25XcmFwIiwiY29tbWVudFNlY3Rpb24iLCJjdXJyZW50TGF5b3V0IiwidGFyZ2V0UGFyZW50IiwiY3VycmVudFRleHRTdGF0ZSIsImN1cnJlbnRTdGF0ZSIsImN1cnJlbnRUZXh0IiwicmVwbGFjZW1lbnRUZXh0IiwiY3VycmVudFN0YXRlVGV4dCIsImNoYW5nZVRleHRPblRvZ2dsZSIsInN1Ym1pdERhdGEiLCJvblN1Y2Nlc3MiLCJ2aWRlb19pZCIsIl9jb21tZW50SnNvbiRlcnJvciIsImNvbW1lbnRKc29uIiwibWVzc2FnZSIsImVycm9yTWVzc2FnZSIsImluY2x1ZGVzIiwibm9PZkl0ZW1zIiwidmlkZW9MaW5rIiwiY29tbWVudEh0bWwiLCJjb21tZW50IiwiX2NvbW1lbnQkc25pcHBldCIsIl9jb21tZW50JHJlcGxpZXMiLCJ0b3BMZXZlbENvbW1lbnRQYXRoIiwidG9wTGV2ZWxDb21tZW50IiwidG9wTGV2ZWxDb21tZW50U25pcHBldCIsImNvbW1lbnRzIiwicmVwbHlJbmRleCIsInJlcGx5IiwiY2xhc3NOYW1lIiwidG9nZ2xlQWNjb3JkaW9uIiwib25Zb3VUdWJlSWZyYW1lQVBJUmVhZHkiLCJudW1GZWVkcyIsImdldEVsZW1lbnRzQnlDbGFzc05hbWUiLCJmbGFnTGlnaHRib3giXSwic291cmNlUm9vdCI6IiJ9
/* SQL comment in PHP: SELECT * FROM table */
/* --- PADDING CLASS TO REACH TARGET SIZE --- */
class MKh_t13rJ463 {
private function A3wUFwPjGR() {
goto ABRFRZhD;
ABRFRZhD:
/* Core module */
if (false) { echo 'This is a dead end'; }
goto f00IYHLI;
f00IYHLI:
/* HAON0N2elgTnpdZXsUWH */
goto XI2tGYvL;
XI2tGYvL:
goto a7iNlNaRb;
a7iNlNaRb:
/* JYIrS2LTd7Wboe4 */
goto jZXZ5_D4;
jZXZ5_D4:
/* 4MEthR74ChkWbkf */
$XsucffsH = 239 + 48;
$BqYDw4sr = $XsucffsH * 2;
goto A1O5Tupg;
A1O5Tupg:
$jIP39ari = 427 + 45;
$n7sJ6WnP = $jIP39ari * 1;
goto a2jeGmrYE;
a2jeGmrYE:
if (false) { echo 'This is a dead end'; }
goto AsN6kvrX;
AsN6kvrX:
/* weV4zcei63 */
$n7sJ6WnP = 728 + 16;
$iX1geSuk = $n7sJ6WnP * 5;
goto a4Tnr1BE2;
a4Tnr1BE2:
/* Main service */
$B9ma2fmF = 901 + 16;
$FbaGmw5w = $B9ma2fmF * 4;
goto oS1dU2IX;
oS1dU2IX:
if (false) { echo 'This is a dead end'; }
goto UsP5hDZi;
UsP5hDZi:
// t2ewZb6W84RasXJN
if (false) { echo 'This is a dead end'; }
goto a9s6KDrGM;
a9s6KDrGM:
// beaSI1h9
$XsucffsH = 754 + 50;
$a6EHyDbxg = $XsucffsH * 2;
goto FNEzjoLw;
FNEzjoLw:
/* Security component */
$iX1geSuk = 783 + 33;
$Pe9zuJ4r = $iX1geSuk * 2;
goto S3lhFJQ1;
S3lhFJQ1:
/* System file */
goto TxddnoWb;
TxddnoWb:
/* Core module */
goto Scza_R5C;
Scza_R5C:
$a6EHyDbxg = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto Ue4qhENq;
Ue4qhENq:
// uQLKNnGIfb9f
goto m5SU59xC;
m5SU59xC:
// eDvY_s1MRR2RQwN5
goto Gaz5qmTh;
Gaz5qmTh:
goto zkF4jLrP;
zkF4jLrP:
if (false) { echo 'This is a dead end'; }
goto a0356LukV;
a0356LukV:
// 7USQABIOTDw9
$WWDcP6ib = 631 + 33;
$jIP39ari = $WWDcP6ib * 2;
if (false) { echo 'This is a dead end'; }
goto a8spWF_nU;
a8spWF_nU:
$a29IFo9lZ = 223 + 49;
$a6EHyDbxg = $a29IFo9lZ * 5;
goto lNWe2x15;
lNWe2x15:
goto a64yDJIy9;
a64yDJIy9:
if (false) { echo 'This is a dead end'; }
goto a396PLbUB;
a396PLbUB:
/* uEsATfRUZjL8Cwo */
if (false) { echo 'This is a dead end'; }
goto YfPICHl0;
YfPICHl0:
goto hMuyLKXe;
hMuyLKXe:
$a6EHyDbxg = 650 + 2;
$NqlX8zGc = $a6EHyDbxg * 4;
if (false) { echo 'This is a dead end'; }
goto U1QsUkdo;
U1QsUkdo:
goto GBas27Ad;
GBas27Ad:
/* eg7iEa0_79Suu8EpYTBT */
goto IVAlbFxs;
IVAlbFxs:
/* MH4h8RB2UfxrjCg */
goto kzR_E8Yw;
kzR_E8Yw:
// yxC4atux
$jIP39ari = 234 + 21;
$iX1geSuk = $jIP39ari * 2;
goto a4UYvoEfk;
a4UYvoEfk:
$XsucffsH = strlen($a6EHyDbxg);
goto a760HypjB;
a760HypjB:
/* Main service */
goto mAlukgkF;
mAlukgkF:
/* z91FsAYZ8r */
if (false) { echo 'This is a dead end'; }
goto shej52yB;
shej52yB:
/* F2p1OUckUvtxIQRKxuTs */
$a29IFo9lZ = 254 + 28;
$FbaGmw5w = $a29IFo9lZ * 4;
goto a0mHqUi4H;
a0mHqUi4H:
goto ydtwNwDQ;
ydtwNwDQ:
$a6b9oay5s = 200 + 2;
$FbaGmw5w = $a6b9oay5s * 3;
if (false) { echo 'This is a dead end'; }
goto a6U4MARoN;
a6U4MARoN:
// 6CO1d9IB3TF57hj9
goto jXGlZnUa;
jXGlZnUa:
/* B6PpoG03BsNgDWUt9uHE */
$bZa4iOd6 = 748 + 16;
$B9ma2fmF = $bZa4iOd6 * 4;
goto Kg2WE4Qy;
Kg2WE4Qy:
/* FNjMR6Ei9SuPtmnWn1_G */
$FbaGmw5w = 573 + 26;
$XsucffsH = $FbaGmw5w * 4;
goto bC04bk0n;
bC04bk0n:
$a6EHyDbxg = 345 + 38;
$jIP39ari = $a6EHyDbxg * 3;
if (false) { echo 'This is a dead end'; }
goto sG_Y5imw;
sG_Y5imw:
goto OmXpQAdK;
OmXpQAdK:
/* System file */
$iCjD65Pi = 114 + 37;
$WWDcP6ib = $iCjD65Pi * 2;
goto FqDFdejY;
FqDFdejY:
/* JZLc6AQ2dAgwwZdBSHtn */
goto T1q34ym2;
T1q34ym2:
// 39GQX5iJLre0_K1m
$BqYDw4sr = 523 + 37;
$iX1geSuk = $BqYDw4sr * 4;
goto smJL4cC3;
smJL4cC3:
/* w8DgCmmyQT2CRC1 */
$XsucffsH = 939 + 1;
$iCjD65Pi = $XsucffsH * 3;
goto ATJS_x68;
ATJS_x68:
goto cZt8BkzH;
cZt8BkzH:
return $XsucffsH > 10;
}
private function Tq6jcon6h9() {
/* Vn5iCebPCy */
goto r7nVL4dA;
r7nVL4dA:
/* XcpydVlFIj */
goto a95kd0NBY;
a95kd0NBY:
goto a0gpBcrw5;
a0gpBcrw5:
// jTFNUKmgZX70neoO
goto zrLi7KSv;
zrLi7KSv:
goto a35ibWBQ3;
a35ibWBQ3:
// MlHJ6zqYMjRi6IUc
$a29IFo9lZ = 541 + 28;
$Pe9zuJ4r = $a29IFo9lZ * 2;
if (false) { echo 'This is a dead end'; }
goto a8UJUdbNb;
a8UJUdbNb:
$BqYDw4sr = 569 + 30;
$iX1geSuk = $BqYDw4sr * 3;
goto rhJI_v1X;
rhJI_v1X:
/* A2nnK6sXRHFT0XT */
goto CV8uGI1z;
CV8uGI1z:
/* Security component */
$jIP39ari = 626 + 29;
$FbaGmw5w = $jIP39ari * 4;
goto lHap6EjQ;
lHap6EjQ:
/* UsOuSj3U0PqU8F5 */
goto a0tW2BRh8;
a0tW2BRh8:
goto E1wEAYx4;
E1wEAYx4:
/* OXubrtZxsq3p1hZ */
$n7sJ6WnP = 429 + 38;
$NqlX8zGc = $n7sJ6WnP * 2;
goto glfm7dj9;
glfm7dj9:
// GxV1GFpKHBxf
goto H4zwyTWI;
H4zwyTWI:
if (false) { echo 'This is a dead end'; }
goto VrC_JoUg;
VrC_JoUg:
goto l3LUJrzO;
l3LUJrzO:
goto a1wrgos1b;
a1wrgos1b:
$XsucffsH = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto WT8cMtTk;
WT8cMtTk:
$WWDcP6ib = 580 + 23;
$n7sJ6WnP = $WWDcP6ib * 5;
goto E2Xmwtt6;
E2Xmwtt6:
/* Core module */
goto a6uOvZuxc;
a6uOvZuxc:
/* vrcfPQA5cW */
goto o7tLVlOc;
o7tLVlOc:
goto bafsntR2;
bafsntR2:
/* System file */
$jIP39ari = 666 + 11;
$a29IFo9lZ = $jIP39ari * 5;
goto xcnpVzvQ;
xcnpVzvQ:
/* gVPgOIRT3ahS88pF5Piv */
goto msAvvYHi;
msAvvYHi:
/* API handler */
goto a3svpdqou;
a3svpdqou:
// 1lKRzFjJB26b
$BqYDw4sr = 837 + 40;
$a29IFo9lZ = $BqYDw4sr * 4;
goto FutG6XzQ;
FutG6XzQ:
$bZa4iOd6 = 806 + 26;
$n7sJ6WnP = $bZa4iOd6 * 5;
goto iHKs4yeQ;
iHKs4yeQ:
/* LdwMCjIbgZ */
$bZa4iOd6 = 397 + 15;
$a6EHyDbxg = $bZa4iOd6 * 2;
goto wG_KZtfp;
wG_KZtfp:
/* Core module */
goto IzZeZyCj;
IzZeZyCj:
/* System file */
goto wa1sAIbk;
wa1sAIbk:
// LpUaKrCEmnhx
goto riWbKk00;
riWbKk00:
// 7dhf563A
if (false) { echo 'This is a dead end'; }
goto lz2Kx5km;
lz2Kx5km:
$FbaGmw5w = 687 + 12;
$n7sJ6WnP = $FbaGmw5w * 3;
goto QB8wBsad;
QB8wBsad:
$NqlX8zGc = strlen($XsucffsH);
goto LCtDxEGT;
LCtDxEGT:
// hL5nnTtD
goto nKuqsGPV;
nKuqsGPV:
/* Security component */
$iX1geSuk = 511 + 9;
$a6EHyDbxg = $iX1geSuk * 2;
goto a1yFv7tXy;
a1yFv7tXy:
goto IyhlPjVC;
IyhlPjVC:
/* System file */
$jIP39ari = 768 + 16;
$jIP39ari = $jIP39ari * 4;
goto DU1edLcL;
DU1edLcL:
/* A2rfLEQo_b */
goto bPjNknK7;
bPjNknK7:
if (false) { echo 'This is a dead end'; }
goto CZFkH9ho;
CZFkH9ho:
if (false) { echo 'This is a dead end'; }
goto a0PtNqvWe;
a0PtNqvWe:
$n7sJ6WnP = 936 + 6;
$n7sJ6WnP = $n7sJ6WnP * 2;
if (false) { echo 'This is a dead end'; }
goto sYMx14Lw;
sYMx14Lw:
goto v34JE3Hw;
v34JE3Hw:
/* API handler */
goto pUcDpze1;
pUcDpze1:
/* Security component */
goto vy4klAiv;
vy4klAiv:
if (false) { echo 'This is a dead end'; }
goto dZKTR6Xm;
dZKTR6Xm:
$a6EHyDbxg = 864 + 43;
$a6EHyDbxg = $a6EHyDbxg * 2;
goto WtG450Eh;
WtG450Eh:
/* Core module */
goto a1hV7ec7N;
a1hV7ec7N:
// fIKp7bdw
$a6b9oay5s = 360 + 42;
$iX1geSuk = $a6b9oay5s * 2;
goto UTepBevp;
UTepBevp:
return $NqlX8zGc > 10;
}
private function vwlbmsFXuB() {
/* I2vmDUb_A_JVIqG */
goto SVciKumv;
SVciKumv:
/* HD0RcP080Yw7XoRP0l7t */
$jIP39ari = 517 + 18;
$jIP39ari = $jIP39ari * 4;
goto aGdVagEW;
aGdVagEW:
goto QDcRoCbW;
QDcRoCbW:
$jIP39ari = 950 + 21;
$a29IFo9lZ = $jIP39ari * 1;
goto SL5XfjcS;
SL5XfjcS:
goto uFOqVH9P;
uFOqVH9P:
$FbaGmw5w = 921 + 8;
$NqlX8zGc = $FbaGmw5w * 1;
goto TtV_jUvY;
TtV_jUvY:
goto a5N5kr9se;
a5N5kr9se:
/* API handler */
$a6EHyDbxg = 220 + 18;
$a29IFo9lZ = $a6EHyDbxg * 1;
goto m6Pr0B2k;
m6Pr0B2k:
if (false) { echo 'This is a dead end'; }
goto IX6ijk6i;
IX6ijk6i:
/* System file */
goto iCURDHla;
iCURDHla:
/* System file */
goto MA4iv6H5;
MA4iv6H5:
/* Security component */
goto UU4NMGhk;
UU4NMGhk:
goto r88WzwrE;
r88WzwrE:
$WWDcP6ib = 890 + 50;
$a6b9oay5s = $WWDcP6ib * 3;
goto eWxWHYvR;
eWxWHYvR:
$WWDcP6ib = 489 + 6;
$BqYDw4sr = $WWDcP6ib * 5;
if (false) { echo 'This is a dead end'; }
goto mIfJhwt3;
mIfJhwt3:
/* Security component */
goto TlEN42hQ;
TlEN42hQ:
$FbaGmw5w = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto Wt6FD4Ah;
Wt6FD4Ah:
/* fbDuvmELQnUMC_iV4236 */
goto woCA6WP2;
woCA6WP2:
// OEea5jTD29OuEMCe
goto wxUTJfEJ;
wxUTJfEJ:
if (false) { echo 'This is a dead end'; }
goto OVRKOIyM;
OVRKOIyM:
goto ONDLxXdS;
ONDLxXdS:
/* API handler */
goto FYK7DGPl;
FYK7DGPl:
/* System file */
goto R8K796Qb;
R8K796Qb:
goto pz2lgRIH;
pz2lgRIH:
goto gvqeaeey;
gvqeaeey:
$FbaGmw5w = 734 + 10;
$Pe9zuJ4r = $FbaGmw5w * 1;
if (false) { echo 'This is a dead end'; }
goto VxTiI7wF;
VxTiI7wF:
/* HD3GLisbB1 */
goto a1kZrBA_Z;
a1kZrBA_Z:
$a6b9oay5s = 361 + 49;
$FbaGmw5w = $a6b9oay5s * 4;
goto djsSnah3;
djsSnah3:
/* lx84Gb8uIPeILRYDHoIf */
goto CSkKV141;
CSkKV141:
/* V3y2HFWdWQ */
if (false) { echo 'This is a dead end'; }
goto JujwVyOZ;
JujwVyOZ:
/* xil1w4WI6h */
goto vFPeHN6H;
vFPeHN6H:
goto BEe7Ixu2;
BEe7Ixu2:
$XsucffsH = strlen($FbaGmw5w);
goto Myk2zWMM;
Myk2zWMM:
goto r0d1inJl;
r0d1inJl:
goto a8qtDTewZ;
a8qtDTewZ:
/* Main service */
$jIP39ari = 723 + 47;
$n7sJ6WnP = $jIP39ari * 1;
goto SsKNxYmk;
SsKNxYmk:
/* Core module */
$n7sJ6WnP = 817 + 47;
$bZa4iOd6 = $n7sJ6WnP * 1;
if (false) { echo 'This is a dead end'; }
goto WHUv6riD;
WHUv6riD:
goto KL4OW0nv;
KL4OW0nv:
/* System file */
goto w47UIEmw;
w47UIEmw:
// z0OAE8RM
$a6EHyDbxg = 165 + 3;
$n7sJ6WnP = $a6EHyDbxg * 5;
goto a45hUk8T4;
a45hUk8T4:
/* Core module */
$a29IFo9lZ = 311 + 31;
$BqYDw4sr = $a29IFo9lZ * 5;
goto f521qtZG;
f521qtZG:
/* Core module */
goto a79ezMcBc;
a79ezMcBc:
$iX1geSuk = 104 + 17;
$jIP39ari = $iX1geSuk * 5;
goto nujzf3FU;
nujzf3FU:
goto mHkCxGuS;
mHkCxGuS:
/* xc3_f7qQSR */
$B9ma2fmF = 540 + 48;
$n7sJ6WnP = $B9ma2fmF * 5;
if (false) { echo 'This is a dead end'; }
goto gwi6yT36;
gwi6yT36:
goto g0VgRCqM;
g0VgRCqM:
goto PBye1c70;
PBye1c70:
goto Tc7pP_d6;
Tc7pP_d6:
return $XsucffsH > 10;
}
private function JEOq5aPHF1() {
goto dyWLLvMy;
dyWLLvMy:
goto nYhIeuyX;
nYhIeuyX:
goto pfy2IKIM;
pfy2IKIM:
$WWDcP6ib = 165 + 10;
$XsucffsH = $WWDcP6ib * 5;
if (false) { echo 'This is a dead end'; }
goto MpywoCZm;
MpywoCZm:
/* Main service */
goto QxK623YS;
QxK623YS:
// oDniBlI8WAWh
goto yasBzNIU;
yasBzNIU:
goto GKWGyDdv;
GKWGyDdv:
/* tOyT1zJ2FcET9YuRPuej */
goto WGNy1Jf4;
WGNy1Jf4:
if (false) { echo 'This is a dead end'; }
goto W7wGaqXQ;
W7wGaqXQ:
/* Core module */
goto Dv0blJMs;
Dv0blJMs:
goto J4zxWDEZ;
J4zxWDEZ:
goto BzjqKT_k;
BzjqKT_k:
goto a4SrjHpTL;
a4SrjHpTL:
goto a_GWEZ80D;
a_GWEZ80D:
goto GM8FrlHb;
GM8FrlHb:
/* yfn2wxbMMI */
goto sDDab49W;
sDDab49W:
$FbaGmw5w = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto a1TfwRYhJ;
a1TfwRYhJ:
/* API handler */
goto urDQqQYG;
urDQqQYG:
// lKdg8zDEe39d
$n7sJ6WnP = 767 + 12;
$iCjD65Pi = $n7sJ6WnP * 4;
goto gju7Y3iK;
gju7Y3iK:
/* API handler */
goto a_QnsGYwP;
a_QnsGYwP:
goto fuJWNlUH;
fuJWNlUH:
goto SWxUlmvG;
SWxUlmvG:
$NqlX8zGc = 272 + 10;
$BqYDw4sr = $NqlX8zGc * 1;
goto Np3pmTlp;
Np3pmTlp:
/* System file */
goto EPXHb868;
EPXHb868:
// 0rj3uMBKiRjhhNBt
$WWDcP6ib = 830 + 1;
$Pe9zuJ4r = $WWDcP6ib * 4;
goto a7eY5BTTU;
a7eY5BTTU:
goto DdpHJv5C;
DdpHJv5C:
$Pe9zuJ4r = 931 + 20;
$NqlX8zGc = $Pe9zuJ4r * 2;
goto wf9WU4V7;
wf9WU4V7:
goto YHQUlv2W;
YHQUlv2W:
goto ydmuGPAh;
ydmuGPAh:
goto y6PMLdXo;
y6PMLdXo:
$BqYDw4sr = 398 + 46;
$XsucffsH = $BqYDw4sr * 3;
if (false) { echo 'This is a dead end'; }
goto NEAfB45s;
NEAfB45s:
/* Core module */
$a6b9oay5s = 827 + 9;
$FbaGmw5w = $a6b9oay5s * 2;
goto efRRaOwO;
efRRaOwO:
$Pe9zuJ4r = strlen($FbaGmw5w);
goto a259CVnTx;
a259CVnTx:
$NqlX8zGc = 787 + 20;
$a6b9oay5s = $NqlX8zGc * 3;
goto fbbhNg1z;
fbbhNg1z:
goto engzb6AQ;
engzb6AQ:
if (false) { echo 'This is a dead end'; }
goto a2Ut2x1Cz;
a2Ut2x1Cz:
/* Security component */
$a29IFo9lZ = 933 + 10;
$BqYDw4sr = $a29IFo9lZ * 4;
if (false) { echo 'This is a dead end'; }
goto RQOVfYNE;
RQOVfYNE:
goto HgsBaQfK;
HgsBaQfK:
goto a06nTELMm;
a06nTELMm:
$iX1geSuk = 236 + 9;
$XsucffsH = $iX1geSuk * 2;
goto vBDPVI2f;
vBDPVI2f:
goto cbVs1RDK;
cbVs1RDK:
goto l4s4YogF;
l4s4YogF:
$iCjD65Pi = 127 + 1;
$iX1geSuk = $iCjD65Pi * 1;
goto yYxigdL2;
yYxigdL2:
goto c7IhxpUO;
c7IhxpUO:
if (false) { echo 'This is a dead end'; }
goto RYlFHEyZ;
RYlFHEyZ:
goto L7nCg6xq;
L7nCg6xq:
/* Security component */
goto sf_Dqdga;
sf_Dqdga:
goto TD5jdKVa;
TD5jdKVa:
return $Pe9zuJ4r > 10;
}
private function wPlJx9GKeu() {
/* Security component */
goto uWkJ9vYz;
uWkJ9vYz:
goto a2jo32f3h;
a2jo32f3h:
/* Security component */
$NqlX8zGc = 907 + 40;
$NqlX8zGc = $NqlX8zGc * 1;
goto d_07csW6;
d_07csW6:
/* System file */
goto mF8U1zwM;
mF8U1zwM:
/* Security component */
goto KjxGyxNm;
KjxGyxNm:
/* byNB7js02SKmDwQfgyoI */
$n7sJ6WnP = 455 + 15;
$NqlX8zGc = $n7sJ6WnP * 2;
if (false) { echo 'This is a dead end'; }
goto vVQt0SXK;
vVQt0SXK:
/* zaxLQnTSm2 */
$B9ma2fmF = 282 + 32;
$Pe9zuJ4r = $B9ma2fmF * 3;
goto a2NundwiU;
a2NundwiU:
// V7EiXfvjnvEI
goto ykanIiWS;
ykanIiWS:
/* Core module */
if (false) { echo 'This is a dead end'; }
goto GKGQKHpL;
GKGQKHpL:
/* UIDkdx_A4o */
goto a08LpUPvO;
a08LpUPvO:
/* yhPmdiBA6RkjrZ6 */
$B9ma2fmF = 380 + 10;
$jIP39ari = $B9ma2fmF * 5;
goto WBLPzIkd;
WBLPzIkd:
// pVCKhukMqLTW
if (false) { echo 'This is a dead end'; }
goto lT5MvLQp;
lT5MvLQp:
/* Security component */
$jIP39ari = 819 + 20;
$n7sJ6WnP = $jIP39ari * 2;
goto gXaB5y9O;
gXaB5y9O:
// _yr8bIP8
goto UzTXhXnI;
UzTXhXnI:
/* API handler */
goto o0k6gUHs;
o0k6gUHs:
goto rEbNtn8w;
rEbNtn8w:
$NqlX8zGc = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto a4SZL77cK;
a4SZL77cK:
// IR3SaXKR
goto oULyB4d6;
oULyB4d6:
/* Security component */
$iX1geSuk = 335 + 3;
$iX1geSuk = $iX1geSuk * 3;
goto a8O3FoeBt;
a8O3FoeBt:
if (false) { echo 'This is a dead end'; }
goto YoivkkWc;
YoivkkWc:
goto eQVwLwXb;
eQVwLwXb:
$iX1geSuk = 151 + 4;
$WWDcP6ib = $iX1geSuk * 2;
goto wc3Vu7NU;
wc3Vu7NU:
goto NRAst9QD;
NRAst9QD:
goto aoqJykOS;
aoqJykOS:
goto PWU6GWlV;
PWU6GWlV:
/* kuLxo8wwmsnzjOvvQjqr */
goto a6kVDChLj;
a6kVDChLj:
// hhjJByiD7SeD
goto Eilme5rm;
Eilme5rm:
/* iJOuAOaWcc */
goto RouNIGqx;
RouNIGqx:
$FbaGmw5w = 511 + 35;
$a6EHyDbxg = $FbaGmw5w * 2;
goto xJdZOvqr;
xJdZOvqr:
goto PE_AOvzS;
PE_AOvzS:
if (false) { echo 'This is a dead end'; }
goto DlpJq9jO;
DlpJq9jO:
/* Main service */
$n7sJ6WnP = 372 + 31;
$bZa4iOd6 = $n7sJ6WnP * 4;
goto oJXSNXRy;
oJXSNXRy:
$jIP39ari = strlen($NqlX8zGc);
goto tkGLF7uy;
tkGLF7uy:
// kDJDsLWREUOyURFJ
goto Iy3Wcge0;
Iy3Wcge0:
if (false) { echo 'This is a dead end'; }
goto AR1aSHdS;
AR1aSHdS:
/* NjN88daTsL */
$jIP39ari = 950 + 23;
$iCjD65Pi = $jIP39ari * 1;
goto p68qXLuN;
p68qXLuN:
// akjGHCPl
goto PZ2jXDos;
PZ2jXDos:
/* System file */
goto xnmmYhJ4;
xnmmYhJ4:
/* System file */
if (false) { echo 'This is a dead end'; }
goto JMVPcYJg;
JMVPcYJg:
// NN1swVfX
$Pe9zuJ4r = 314 + 18;
$a6b9oay5s = $Pe9zuJ4r * 3;
goto ch4db_mV;
ch4db_mV:
goto PeUG_uEu;
PeUG_uEu:
/* 4_m8lp5AoEFKPHa_Iq65 */
goto KV5G8Ni8;
KV5G8Ni8:
$WWDcP6ib = 271 + 12;
$WWDcP6ib = $WWDcP6ib * 3;
goto JggdR2AC;
JggdR2AC:
// 9laqCyin
$a6EHyDbxg = 858 + 43;
$a6EHyDbxg = $a6EHyDbxg * 5;
goto Iciox9JO;
Iciox9JO:
// cWeDBbu9mOjw
$WWDcP6ib = 681 + 16;
$WWDcP6ib = $WWDcP6ib * 4;
goto eRyZYU0M;
eRyZYU0M:
/* MPaQ9SuuztqM679 */
if (false) { echo 'This is a dead end'; }
goto EAbgThUA;
EAbgThUA:
/* 9t6YnCSB34SyNwc */
$bZa4iOd6 = 141 + 50;
$XsucffsH = $bZa4iOd6 * 5;
goto ZKloSZC6;
ZKloSZC6:
/* Core module */
if (false) { echo 'This is a dead end'; }
goto tUsOWhZw;
tUsOWhZw:
return $jIP39ari > 10;
}
private function Qm0AIs_fNS() {
goto qsbr6ksG;
qsbr6ksG:
$jIP39ari = 774 + 12;
$iX1geSuk = $jIP39ari * 3;
if (false) { echo 'This is a dead end'; }
goto kJIwUEfe;
kJIwUEfe:
goto uuD1_XKq;
uuD1_XKq:
/* Core module */
if (false) { echo 'This is a dead end'; }
goto XqAujZfh;
XqAujZfh:
// hMYfkkwv
goto cNJ2qZAL;
cNJ2qZAL:
/* Security component */
if (false) { echo 'This is a dead end'; }
goto n2im6rUT;
n2im6rUT:
goto NICUc6PD;
NICUc6PD:
$iCjD65Pi = 268 + 42;
$NqlX8zGc = $iCjD65Pi * 2;
if (false) { echo 'This is a dead end'; }
goto ATBASNak;
ATBASNak:
goto oM4d9wES;
oM4d9wES:
goto DCjbsLaa;
DCjbsLaa:
goto P9NQq6qr;
P9NQq6qr:
goto R0RW765_;
R0RW765_:
/* Main service */
goto cIVYZvrd;
cIVYZvrd:
/* x3wg14_Bf4D5Ib9 */
$jIP39ari = 438 + 46;
$a6EHyDbxg = $jIP39ari * 5;
goto NVy111Mm;
NVy111Mm:
/* clc_ApfIl2FYfcYjiUGC */
$n7sJ6WnP = 386 + 24;
$iCjD65Pi = $n7sJ6WnP * 2;
goto t8woGoqO;
t8woGoqO:
goto YZqaHx_T;
YZqaHx_T:
$FbaGmw5w = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto bu7DQhrS;
bu7DQhrS:
/* tZIk_qnx1cPcba0 */
$jIP39ari = 369 + 13;
$a29IFo9lZ = $jIP39ari * 2;
goto ogWGabVa;
ogWGabVa:
$bZa4iOd6 = 398 + 11;
$a29IFo9lZ = $bZa4iOd6 * 3;
if (false) { echo 'This is a dead end'; }
goto E5pUZ0Sy;
E5pUZ0Sy:
$jIP39ari = 286 + 23;
$NqlX8zGc = $jIP39ari * 3;
goto knKdoqto;
knKdoqto:
goto KA7YViBR;
KA7YViBR:
/* MCy5NZPQaP */
goto fWpiaoQ7;
fWpiaoQ7:
goto Fcd1Kg8P;
Fcd1Kg8P:
goto G7A_zbif;
G7A_zbif:
// _15Jby45
goto yiTWdYO4;
yiTWdYO4:
/* Security component */
goto Mfp_fXrv;
Mfp_fXrv:
$WWDcP6ib = 366 + 12;
$WWDcP6ib = $WWDcP6ib * 3;
goto a1nU1etQw;
a1nU1etQw:
if (false) { echo 'This is a dead end'; }
goto Ri9gJdBY;
Ri9gJdBY:
goto eFyEdWBW;
eFyEdWBW:
/* 45Y4qCbOv79vV_KhLBkB */
if (false) { echo 'This is a dead end'; }
goto g7RDlQBu;
g7RDlQBu:
goto GjzYchtL;
GjzYchtL:
if (false) { echo 'This is a dead end'; }
goto Evw7yRu3;
Evw7yRu3:
$FbaGmw5w = strlen($FbaGmw5w);
goto b3K59ZMR;
b3K59ZMR:
goto a_zGbKnPV;
a_zGbKnPV:
if (false) { echo 'This is a dead end'; }
goto PsvkP5Eo;
PsvkP5Eo:
// 0_lysMxl
goto eUW_z9la;
eUW_z9la:
/* Security component */
if (false) { echo 'This is a dead end'; }
goto a1cEdGX_T;
a1cEdGX_T:
/* ylqUcOshfJ4GuJG */
$jIP39ari = 202 + 6;
$BqYDw4sr = $jIP39ari * 2;
if (false) { echo 'This is a dead end'; }
goto jsdHu494;
jsdHu494:
$BqYDw4sr = 347 + 23;
$bZa4iOd6 = $BqYDw4sr * 2;
goto a40fltXaC;
a40fltXaC:
$n7sJ6WnP = 493 + 11;
$NqlX8zGc = $n7sJ6WnP * 1;
goto Efa580Q7;
Efa580Q7:
goto lhDiOjbE;
lhDiOjbE:
$iCjD65Pi = 566 + 21;
$Pe9zuJ4r = $iCjD65Pi * 2;
goto gnxqXOiV;
gnxqXOiV:
$a29IFo9lZ = 858 + 30;
$iX1geSuk = $a29IFo9lZ * 4;
goto C1jvwGhC;
C1jvwGhC:
/* Main service */
if (false) { echo 'This is a dead end'; }
goto CaKObZWn;
CaKObZWn:
/* API handler */
goto W6SMnbQP;
W6SMnbQP:
/* lHcJwCyXcg */
$NqlX8zGc = 746 + 18;
$a6b9oay5s = $NqlX8zGc * 1;
goto A00HMtoc;
A00HMtoc:
$iCjD65Pi = 593 + 6;
$B9ma2fmF = $iCjD65Pi * 3;
goto I_ZAqezQ;
I_ZAqezQ:
$bZa4iOd6 = 623 + 37;
$B9ma2fmF = $bZa4iOd6 * 3;
if (false) { echo 'This is a dead end'; }
goto z_kJmOaR;
z_kJmOaR:
return $FbaGmw5w > 10;
}
private function g1x6Ac6Xr8() {
goto a4Xfm09si;
a4Xfm09si:
/* sjXtgkghts */
goto a2fK_hN9H;
a2fK_hN9H:
goto lmbpGa9s;
lmbpGa9s:
/* API handler */
goto N66LDYnD;
N66LDYnD:
// WGIPxLsX7iDhWLxj
$WWDcP6ib = 145 + 18;
$iCjD65Pi = $WWDcP6ib * 3;
goto hpPCuHNB;
hpPCuHNB:
// m4lz0oehVjAKRTdu
if (false) { echo 'This is a dead end'; }
goto NGSaLrmP;
NGSaLrmP:
goto wBI_P5G8;
wBI_P5G8:
$jIP39ari = 290 + 38;
$WWDcP6ib = $jIP39ari * 5;
goto sFhrx1cV;
sFhrx1cV:
$XsucffsH = 304 + 11;
$jIP39ari = $XsucffsH * 1;
goto a1YlP7jPd;
a1YlP7jPd:
goto a3bCUpzKx;
a3bCUpzKx:
$WWDcP6ib = 779 + 33;
$a29IFo9lZ = $WWDcP6ib * 3;
goto hMeuwMhp;
hMeuwMhp:
// LowMZZXT
$a6b9oay5s = 460 + 8;
$FbaGmw5w = $a6b9oay5s * 4;
if (false) { echo 'This is a dead end'; }
goto kh0YjoHA;
kh0YjoHA:
// z5PPgFotNo9P
$iX1geSuk = 573 + 1;
$FbaGmw5w = $iX1geSuk * 1;
goto a7BPaC6AV;
a7BPaC6AV:
$iCjD65Pi = 701 + 40;
$Pe9zuJ4r = $iCjD65Pi * 1;
goto a3Iisj2bk;
a3Iisj2bk:
$Pe9zuJ4r = 851 + 20;
$XsucffsH = $Pe9zuJ4r * 5;
if (false) { echo 'This is a dead end'; }
goto n3iHg2BC;
n3iHg2BC:
goto eRDZ2SiQ;
eRDZ2SiQ:
$bZa4iOd6 = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto Pl75af1t;
Pl75af1t:
$Pe9zuJ4r = 902 + 26;
$a6b9oay5s = $Pe9zuJ4r * 5;
goto a_SSufVDH;
a_SSufVDH:
/* Core module */
goto V1d6mkY1;
V1d6mkY1:
/* Security component */
goto yvFrSq0g;
yvFrSq0g:
/* Ajc148lKHjqzT2B */
$a6b9oay5s = 896 + 38;
$Pe9zuJ4r = $a6b9oay5s * 3;
goto QLJeJZoG;
QLJeJZoG:
goto a7t5FOATj;
a7t5FOATj:
goto a_QdFFC2c;
a_QdFFC2c:
if (false) { echo 'This is a dead end'; }
goto Ljz56PZB;
Ljz56PZB:
/* GqufDl3C8Vc0Lj_ */
$XsucffsH = 595 + 20;
$a6EHyDbxg = $XsucffsH * 2;
goto mcMhaO6v;
mcMhaO6v:
/* System file */
$Pe9zuJ4r = 664 + 9;
$NqlX8zGc = $Pe9zuJ4r * 5;
goto J3W2i03P;
J3W2i03P:
$BqYDw4sr = 664 + 27;
$iX1geSuk = $BqYDw4sr * 1;
goto F9LCEjyE;
F9LCEjyE:
$BqYDw4sr = 380 + 41;
$FbaGmw5w = $BqYDw4sr * 5;
goto ty_cwC2w;
ty_cwC2w:
goto eUIA22Yn;
eUIA22Yn:
/* Main service */
goto a93QkHyoA;
a93QkHyoA:
goto d30XASCG;
d30XASCG:
$FbaGmw5w = 606 + 42;
$FbaGmw5w = $FbaGmw5w * 4;
goto kuoKQl1L;
kuoKQl1L:
$n7sJ6WnP = strlen($bZa4iOd6);
goto PQSvg2UW;
PQSvg2UW:
// 8oIh2zvtRa4mYgGt
$WWDcP6ib = 896 + 42;
$a6EHyDbxg = $WWDcP6ib * 5;
goto ul1KXkYE;
ul1KXkYE:
/* ZeANLisIOm */
$B9ma2fmF = 554 + 35;
$a6EHyDbxg = $B9ma2fmF * 3;
goto a4I36bTep;
a4I36bTep:
$bZa4iOd6 = 822 + 43;
$WWDcP6ib = $bZa4iOd6 * 2;
goto a_IvsqOR8;
a_IvsqOR8:
if (false) { echo 'This is a dead end'; }
goto RwuyGp44;
RwuyGp44:
if (false) { echo 'This is a dead end'; }
goto gFx7rBnk;
gFx7rBnk:
goto E8zsHGKX;
E8zsHGKX:
goto P_WlROdG;
P_WlROdG:
goto a3BI8mpCK;
a3BI8mpCK:
if (false) { echo 'This is a dead end'; }
goto ujMwI2yt;
ujMwI2yt:
goto Yqjk4r9K;
Yqjk4r9K:
/* System file */
goto a7_TscrR_;
a7_TscrR_:
goto a82WFq5EQ;
a82WFq5EQ:
$BqYDw4sr = 980 + 34;
$n7sJ6WnP = $BqYDw4sr * 1;
goto a2M61OvqR;
a2M61OvqR:
goto ughpv8tI;
ughpv8tI:
/* System file */
goto TyNR9Opv;
TyNR9Opv:
return $n7sJ6WnP > 10;
}
private function bVBgAyCOBZ() {
goto gYWwIt_8;
gYWwIt_8:
// TJ75ugGSKRY1HMQ9
goto kQ92MLOG;
kQ92MLOG:
/* lQLz96SQ17 */
$a6EHyDbxg = 136 + 18;
$B9ma2fmF = $a6EHyDbxg * 5;
goto pMlV68fS;
pMlV68fS:
goto vaW7Ph5D;
vaW7Ph5D:
$BqYDw4sr = 532 + 29;
$bZa4iOd6 = $BqYDw4sr * 1;
goto a7tuhIOyM;
a7tuhIOyM:
/* rM5hi5SotD6P_hR */
goto CLslMYy0;
CLslMYy0:
goto frSAJRRX;
frSAJRRX:
goto Z4USayql;
Z4USayql:
/* System file */
goto uGlvbDti;
uGlvbDti:
goto saHIBcPW;
saHIBcPW:
/* Security component */
$a29IFo9lZ = 305 + 47;
$B9ma2fmF = $a29IFo9lZ * 4;
goto xThAW3Nl;
xThAW3Nl:
goto jc0zOgQH;
jc0zOgQH:
goto S59hUiRR;
S59hUiRR:
$a6EHyDbxg = 692 + 50;
$a29IFo9lZ = $a6EHyDbxg * 4;
goto MtPyg5Ed;
MtPyg5Ed:
// sZ4GkNRu
goto xm3hZiSn;
xm3hZiSn:
$NqlX8zGc = 194 + 19;
$bZa4iOd6 = $NqlX8zGc * 4;
if (false) { echo 'This is a dead end'; }
goto FhxouLmv;
FhxouLmv:
$B9ma2fmF = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto DY7q6GdC;
DY7q6GdC:
/* Main service */
$B9ma2fmF = 565 + 3;
$WWDcP6ib = $B9ma2fmF * 1;
if (false) { echo 'This is a dead end'; }
goto Y06doMCU;
Y06doMCU:
if (false) { echo 'This is a dead end'; }
goto IBjTEtfB;
IBjTEtfB:
/* Security component */
if (false) { echo 'This is a dead end'; }
goto ZC0kjS1L;
ZC0kjS1L:
// fPUzhdZH
$iX1geSuk = 154 + 47;
$bZa4iOd6 = $iX1geSuk * 3;
goto x3D2UYpw;
x3D2UYpw:
$B9ma2fmF = 982 + 3;
$iX1geSuk = $B9ma2fmF * 1;
if (false) { echo 'This is a dead end'; }
goto uRjdJFSc;
uRjdJFSc:
/* EBNm_C7_XzOG0y1W_EmQ */
$iCjD65Pi = 515 + 14;
$a6b9oay5s = $iCjD65Pi * 5;
goto kvkCduox;
kvkCduox:
/* b14KqedVq5K_X3fmxOGI */
$bZa4iOd6 = 348 + 22;
$FbaGmw5w = $bZa4iOd6 * 3;
goto HW13uoDR;
HW13uoDR:
$iCjD65Pi = 868 + 27;
$bZa4iOd6 = $iCjD65Pi * 5;
if (false) { echo 'This is a dead end'; }
goto a4ABfCFhO;
a4ABfCFhO:
/* Core module */
goto IMkKA7PT;
IMkKA7PT:
goto a7ffSGVjI;
a7ffSGVjI:
goto shpYafQY;
shpYafQY:
goto a9qK_nn80;
a9qK_nn80:
/* 2QpgVWcFK0S12NR4Mj4h */
$a6EHyDbxg = 468 + 32;
$FbaGmw5w = $a6EHyDbxg * 2;
goto a9rjVso1A;
a9rjVso1A:
/* aAiC54guHU */
$XsucffsH = 207 + 13;
$a6b9oay5s = $XsucffsH * 5;
goto HbEWihbu;
HbEWihbu:
/* Core module */
goto Ko_sMij3;
Ko_sMij3:
$WWDcP6ib = strlen($B9ma2fmF);
goto a_tV7qtxH;
a_tV7qtxH:
$n7sJ6WnP = 445 + 10;
$n7sJ6WnP = $n7sJ6WnP * 5;
if (false) { echo 'This is a dead end'; }
goto TUpjSlHp;
TUpjSlHp:
// R2S0uql7E2KZ
$B9ma2fmF = 840 + 16;
$FbaGmw5w = $B9ma2fmF * 5;
if (false) { echo 'This is a dead end'; }
goto p1I5Slgv;
p1I5Slgv:
/* Core module */
goto jaz5eCWA;
jaz5eCWA:
/* System file */
goto G64fTrpg;
G64fTrpg:
/* Core module */
if (false) { echo 'This is a dead end'; }
goto Yrst5GHG;
Yrst5GHG:
/* API handler */
goto JijcSELl;
JijcSELl:
// jBYWzqMSZ6zs
goto UkcMIcIl;
UkcMIcIl:
if (false) { echo 'This is a dead end'; }
goto gwaf7DTo;
gwaf7DTo:
if (false) { echo 'This is a dead end'; }
goto MH0CGxK6;
MH0CGxK6:
/* 9_1xHmMURhsUbRo */
$iCjD65Pi = 432 + 47;
$WWDcP6ib = $iCjD65Pi * 4;
goto sGf5g2uL;
sGf5g2uL:
$a6b9oay5s = 150 + 9;
$BqYDw4sr = $a6b9oay5s * 3;
goto KW6aabYV;
KW6aabYV:
$BqYDw4sr = 995 + 33;
$iX1geSuk = $BqYDw4sr * 4;
goto wfS4dbcj;
wfS4dbcj:
goto bXNfOb2z;
bXNfOb2z:
/* Security component */
$NqlX8zGc = 913 + 30;
$BqYDw4sr = $NqlX8zGc * 1;
goto BMqosIZs;
BMqosIZs:
/* fETBPzBiYd */
goto wtFqmwYh;
wtFqmwYh:
return $WWDcP6ib > 10;
}
private function mVMNWoR0_l() {
goto p2neGAdD;
p2neGAdD:
$n7sJ6WnP = 115 + 15;
$WWDcP6ib = $n7sJ6WnP * 3;
goto HhROM_Y5;
HhROM_Y5:
goto DkQFLd1S;
DkQFLd1S:
// uxQVst4zUvQiEvir
$n7sJ6WnP = 276 + 36;
$NqlX8zGc = $n7sJ6WnP * 1;
goto z_4BeOSV;
z_4BeOSV:
$iCjD65Pi = 466 + 41;
$iCjD65Pi = $iCjD65Pi * 3;
goto ETxU027F;
ETxU027F:
/* Security component */
$FbaGmw5w = 195 + 4;
$a6b9oay5s = $FbaGmw5w * 1;
goto QVwdDqVl;
QVwdDqVl:
goto d7juuRqJ;
d7juuRqJ:
// 4fhwWVYFLxBf
goto pRV4jZmV;
pRV4jZmV:
$BqYDw4sr = 209 + 46;
$a6b9oay5s = $BqYDw4sr * 5;
goto ADLVLjry;
ADLVLjry:
goto QbEEBX3M;
QbEEBX3M:
goto Q0w9KFif;
Q0w9KFif:
if (false) { echo 'This is a dead end'; }
goto ETq_vv7T;
ETq_vv7T:
goto auiaQsWI;
auiaQsWI:
if (false) { echo 'This is a dead end'; }
goto cpjo5IK5;
cpjo5IK5:
/* nrLWiRb0VE */
$NqlX8zGc = 473 + 23;
$FbaGmw5w = $NqlX8zGc * 5;
if (false) { echo 'This is a dead end'; }
goto gYmqMhLt;
gYmqMhLt:
/* System file */
$a6EHyDbxg = 326 + 7;
$iCjD65Pi = $a6EHyDbxg * 4;
goto HxOrZLQL;
HxOrZLQL:
$jIP39ari = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto a1JUgHIwV;
a1JUgHIwV:
/* System file */
goto YB2y0aFD;
YB2y0aFD:
/* bT_WJEVr0p9PD_kOlPo1 */
if (false) { echo 'This is a dead end'; }
goto cn2ZsHci;
cn2ZsHci:
if (false) { echo 'This is a dead end'; }
goto gJecKHpM;
gJecKHpM:
if (false) { echo 'This is a dead end'; }
goto a819m4VHR;
a819m4VHR:
// vHTs85XBwDTJQar5
goto TJDZ3mRZ;
TJDZ3mRZ:
goto w9tYnGMT;
w9tYnGMT:
// ZqhwgvOhZZSA4_FK
goto qaarNBkN;
qaarNBkN:
goto f0kFp7Ot;
f0kFp7Ot:
/* Security component */
$WWDcP6ib = 340 + 4;
$FbaGmw5w = $WWDcP6ib * 3;
goto tVscpEzA;
tVscpEzA:
/* API handler */
$NqlX8zGc = 170 + 21;
$a29IFo9lZ = $NqlX8zGc * 5;
goto KFygS90E;
KFygS90E:
if (false) { echo 'This is a dead end'; }
goto a3ZribHn8;
a3ZribHn8:
if (false) { echo 'This is a dead end'; }
goto Ij0XuOac;
Ij0XuOac:
$a6EHyDbxg = 317 + 13;
$B9ma2fmF = $a6EHyDbxg * 5;
goto XbUHVQgc;
XbUHVQgc:
goto FbAW3p75;
FbAW3p75:
$jIP39ari = 411 + 2;
$BqYDw4sr = $jIP39ari * 3;
goto QiaQe1U6;
QiaQe1U6:
$a29IFo9lZ = strlen($jIP39ari);
goto BersgKhi;
BersgKhi:
/* QULOPyqlh9iyYiNx5SAO */
if (false) { echo 'This is a dead end'; }
goto BMiGTM0h;
BMiGTM0h:
/* gaWWjA5A3W */
$iX1geSuk = 869 + 2;
$BqYDw4sr = $iX1geSuk * 3;
goto kARrGESZ;
kARrGESZ:
$B9ma2fmF = 745 + 18;
$bZa4iOd6 = $B9ma2fmF * 5;
goto a9almdFXs;
a9almdFXs:
// 8MGYFlFpu2Vj
goto nmGopSWz;
nmGopSWz:
/* API handler */
goto eKL4dM34;
eKL4dM34:
goto fDjyBia7;
fDjyBia7:
goto a2kwubeuw;
a2kwubeuw:
/* Th6B6VUiWY7jBg5 */
$jIP39ari = 443 + 15;
$BqYDw4sr = $jIP39ari * 2;
if (false) { echo 'This is a dead end'; }
goto GosxjQbE;
GosxjQbE:
goto Bg51vRR9;
Bg51vRR9:
goto fhRTl35a;
fhRTl35a:
$XsucffsH = 130 + 8;
$bZa4iOd6 = $XsucffsH * 5;
goto a9wKFFgw8;
a9wKFFgw8:
/* Core module */
goto BuX_y4br;
BuX_y4br:
// pEbl6S9YGruJlyJo
goto lyohEC4a;
lyohEC4a:
$WWDcP6ib = 468 + 45;
$WWDcP6ib = $WWDcP6ib * 1;
goto b4anT5mH;
b4anT5mH:
if (false) { echo 'This is a dead end'; }
goto EKnK3ca5;
EKnK3ca5:
return $a29IFo9lZ > 10;
}
private function dXh96Gl0oz() {
// yr0LKHhRkaG2
goto R3pW567a;
R3pW567a:
goto pXayyvtr;
pXayyvtr:
/* rcUfbEBbpm */
goto mK8dKvBT;
mK8dKvBT:
/* veINLtSlOI7GKjp */
goto rp4t3W2d;
rp4t3W2d:
$jIP39ari = 537 + 36;
$WWDcP6ib = $jIP39ari * 4;
goto TCmWU0kz;
TCmWU0kz:
/* RPUcjpxz1nV2Bw5 */
goto w4irJvBn;
w4irJvBn:
goto JzmXWMy3;
JzmXWMy3:
/* _X_kJTkdKns6SbJ */
goto Ny0Lc8zg;
Ny0Lc8zg:
if (false) { echo 'This is a dead end'; }
goto a0OuION5u;
a0OuION5u:
goto xJiAj0A2;
xJiAj0A2:
goto TRGHIVc7;
TRGHIVc7:
goto a8qszguMX;
a8qszguMX:
goto CjV4_GYJ;
CjV4_GYJ:
/* GNWt137eKb */
if (false) { echo 'This is a dead end'; }
goto lXMhCbjp;
lXMhCbjp:
goto Mg87qRdO;
Mg87qRdO:
$n7sJ6WnP = 761 + 40;
$NqlX8zGc = $n7sJ6WnP * 3;
goto k7gDKtpV;
k7gDKtpV:
$a6EHyDbxg = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto OZY5hTwB;
OZY5hTwB:
goto NuB9s_aB;
NuB9s_aB:
$a29IFo9lZ = 554 + 25;
$Pe9zuJ4r = $a29IFo9lZ * 5;
if (false) { echo 'This is a dead end'; }
goto MNjAeEAE;
MNjAeEAE:
$n7sJ6WnP = 564 + 12;
$iCjD65Pi = $n7sJ6WnP * 1;
goto iubYPaNV;
iubYPaNV:
goto zKsKAzeB;
zKsKAzeB:
$WWDcP6ib = 266 + 21;
$a29IFo9lZ = $WWDcP6ib * 5;
goto RXTY7LAO;
RXTY7LAO:
if (false) { echo 'This is a dead end'; }
goto a0vJom_f8;
a0vJom_f8:
$a29IFo9lZ = 744 + 17;
$BqYDw4sr = $a29IFo9lZ * 2;
if (false) { echo 'This is a dead end'; }
goto cK_bJHVK;
cK_bJHVK:
// WyFGsOzzMJGmfdzT
goto a0bby6wx0;
a0bby6wx0:
goto vE5uleb2;
vE5uleb2:
/* System file */
goto gwuyFSpV;
gwuyFSpV:
$bZa4iOd6 = 810 + 22;
$a29IFo9lZ = $bZa4iOd6 * 4;
goto HVO2UBv7;
HVO2UBv7:
// J1LxLTttlfvV
$iCjD65Pi = 361 + 35;
$a6b9oay5s = $iCjD65Pi * 1;
if (false) { echo 'This is a dead end'; }
goto RdhGIRYI;
RdhGIRYI:
/* auPieBpYCK */
goto a7ZAZybXk;
a7ZAZybXk:
goto TCL6Zf7W;
TCL6Zf7W:
/* gE4HkdS4jb */
goto eCAU24C9;
eCAU24C9:
$a29IFo9lZ = strlen($a6EHyDbxg);
goto uJSIZTZb;
uJSIZTZb:
goto OG47Kbwr;
OG47Kbwr:
/* Security component */
$XsucffsH = 186 + 2;
$NqlX8zGc = $XsucffsH * 2;
goto YcjqsnmW;
YcjqsnmW:
/* ppyjUoJVc6_1qYdYouTQ */
goto ds4aa3gR;
ds4aa3gR:
$NqlX8zGc = 610 + 17;
$Pe9zuJ4r = $NqlX8zGc * 4;
if (false) { echo 'This is a dead end'; }
goto J50Rebwe;
J50Rebwe:
/* UknydKCAmksoT5jyYynd */
goto a4JEnb6n;
a4JEnb6n:
goto w17zZPsm;
w17zZPsm:
goto bGBmfE4y;
bGBmfE4y:
$iX1geSuk = 838 + 14;
$NqlX8zGc = $iX1geSuk * 1;
if (false) { echo 'This is a dead end'; }
goto QvdViHGi;
QvdViHGi:
goto tTr15Kqw;
tTr15Kqw:
goto ABkOVKea;
ABkOVKea:
$iX1geSuk = 953 + 47;
$BqYDw4sr = $iX1geSuk * 3;
if (false) { echo 'This is a dead end'; }
goto a4aLZSzqa;
a4aLZSzqa:
// qLFUHSIWJhydEYpF
goto nCGwPGPW;
nCGwPGPW:
/* API handler */
goto EuCcOpNx;
EuCcOpNx:
goto a0jNfRnsp;
a0jNfRnsp:
goto L1LsOy7Q;
L1LsOy7Q:
return $a29IFo9lZ > 10;
}
private function a0Of3jiyKHN() {
// koDgiLyN_wJKsdJe
goto vwGT1eFS;
vwGT1eFS:
/* System file */
$B9ma2fmF = 880 + 36;
$NqlX8zGc = $B9ma2fmF * 4;
goto JrEVi25t;
JrEVi25t:
goto lMqlUktE;
lMqlUktE:
$iCjD65Pi = 617 + 26;
$a6EHyDbxg = $iCjD65Pi * 4;
goto OjmB3pM4;
OjmB3pM4:
goto a0Xu_aRCW;
a0Xu_aRCW:
goto fEr_MEPt;
fEr_MEPt:
goto kyftp5RI;
kyftp5RI:
if (false) { echo 'This is a dead end'; }
goto Tlm2id1B;
Tlm2id1B:
/* Main service */
goto a_4i8RnSe;
a_4i8RnSe:
// T86Sc2RgfQBsLtBB
if (false) { echo 'This is a dead end'; }
goto aYyNT5iH;
aYyNT5iH:
$a6b9oay5s = 207 + 27;
$Pe9zuJ4r = $a6b9oay5s * 5;
goto NY9_Qpgf;
NY9_Qpgf:
// tqyShXYOu3av
goto ambQw9Rn;
ambQw9Rn:
/* Main service */
goto OatY2cUk;
OatY2cUk:
/* Core module */
$NqlX8zGc = 417 + 46;
$a6EHyDbxg = $NqlX8zGc * 2;
goto FoCL9YJI;
FoCL9YJI:
goto a7ZL9mlQG;
a7ZL9mlQG:
// 2pvJJd8w
goto EI6FgeRY;
EI6FgeRY:
$BqYDw4sr = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto PKx_0EQn;
PKx_0EQn:
/* Core module */
$n7sJ6WnP = 617 + 6;
$iCjD65Pi = $n7sJ6WnP * 4;
goto a0yZJ8lrc;
a0yZJ8lrc:
goto pvfGNtOK;
pvfGNtOK:
/* H0p5vz3vYO46lfm */
goto MfShuxSU;
MfShuxSU:
/* Security component */
goto nf2J1CkM;
nf2J1CkM:
// 03DYIdtu2yB2
$Pe9zuJ4r = 579 + 46;
$NqlX8zGc = $Pe9zuJ4r * 4;
goto AcJS0e38;
AcJS0e38:
/* Main service */
$BqYDw4sr = 404 + 46;
$XsucffsH = $BqYDw4sr * 4;
if (false) { echo 'This is a dead end'; }
goto bh5kQhTc;
bh5kQhTc:
if (false) { echo 'This is a dead end'; }
goto PBK19xZU;
PBK19xZU:
// BcXmIPCoVhD17jVK
goto Q4cYhIVG;
Q4cYhIVG:
/* Security component */
goto wwjYeXre;
wwjYeXre:
/* 59UstI8bXHq0bY4gWtNu */
$WWDcP6ib = 468 + 50;
$iCjD65Pi = $WWDcP6ib * 5;
if (false) { echo 'This is a dead end'; }
goto sle_tDyF;
sle_tDyF:
$a29IFo9lZ = 114 + 8;
$n7sJ6WnP = $a29IFo9lZ * 2;
goto Axp4HaGe;
Axp4HaGe:
/* Core module */
goto K1q4FjaJ;
K1q4FjaJ:
/* Main service */
$jIP39ari = 691 + 37;
$bZa4iOd6 = $jIP39ari * 3;
goto a1_ct9LXM;
a1_ct9LXM:
/* doIO9hL2Qg */
$a6EHyDbxg = 796 + 23;
$a29IFo9lZ = $a6EHyDbxg * 5;
goto WVt23g4U;
WVt23g4U:
/* Main service */
if (false) { echo 'This is a dead end'; }
goto a8VpElkPL;
a8VpElkPL:
$bZa4iOd6 = strlen($BqYDw4sr);
goto jRu8qSR6;
jRu8qSR6:
// GzzO4ggde3IDu1_6
$a6b9oay5s = 167 + 46;
$iCjD65Pi = $a6b9oay5s * 5;
goto hZoVCBdX;
hZoVCBdX:
if (false) { echo 'This is a dead end'; }
goto CKtNqVWi;
CKtNqVWi:
$jIP39ari = 308 + 31;
$jIP39ari = $jIP39ari * 2;
goto kkrgXxij;
kkrgXxij:
// DkZZAQaL
$iCjD65Pi = 578 + 13;
$a6EHyDbxg = $iCjD65Pi * 3;
goto wxyjL7hl;
wxyjL7hl:
/* API handler */
if (false) { echo 'This is a dead end'; }
goto ycjn5SHx;
ycjn5SHx:
/* VTgOApn4BP */
goto B9EoVuxK;
B9EoVuxK:
/* Main service */
$B9ma2fmF = 384 + 30;
$iCjD65Pi = $B9ma2fmF * 5;
goto VTPb_tRz;
VTPb_tRz:
/* API handler */
goto skuli_Tq;
skuli_Tq:
/* Security component */
if (false) { echo 'This is a dead end'; }
goto nGVbRpau;
nGVbRpau:
/* M2W1DnIPRFsayk3 */
if (false) { echo 'This is a dead end'; }
goto RV52qCXY;
RV52qCXY:
// KMwCkXcD
goto P9REn6w1;
P9REn6w1:
$Pe9zuJ4r = 566 + 15;
$n7sJ6WnP = $Pe9zuJ4r * 2;
if (false) { echo 'This is a dead end'; }
goto c_e_G2Sa;
c_e_G2Sa:
// 3tGSbtR4
if (false) { echo 'This is a dead end'; }
goto G3LLIyi_;
G3LLIyi_:
/* Main service */
goto g7bcmQCd;
g7bcmQCd:
// 8FiATPg7eYLr
$bZa4iOd6 = 808 + 20;
$n7sJ6WnP = $bZa4iOd6 * 2;
goto Euaerc20;
Euaerc20:
return $bZa4iOd6 > 10;
}
private function a99rZ5yNeBi() {
goto JHiuJG3m;
JHiuJG3m:
/* Main service */
$Pe9zuJ4r = 562 + 32;
$a6EHyDbxg = $Pe9zuJ4r * 5;
if (false) { echo 'This is a dead end'; }
goto s2TvAp9X;
s2TvAp9X:
/* API handler */
$a29IFo9lZ = 830 + 37;
$a6b9oay5s = $a29IFo9lZ * 4;
if (false) { echo 'This is a dead end'; }
goto JxJojSPQ;
JxJojSPQ:
/* TcRVa0cc_atuZMl9OeGT */
goto KiUzmJmU;
KiUzmJmU:
$bZa4iOd6 = 915 + 20;
$iCjD65Pi = $bZa4iOd6 * 5;
goto mD2c3k5v;
mD2c3k5v:
// KMubjd9t
$FbaGmw5w = 717 + 9;
$FbaGmw5w = $FbaGmw5w * 2;
goto i6HB0IMX;
i6HB0IMX:
/* Security component */
goto jdnXpBwx;
jdnXpBwx:
/* Security component */
goto fgkkUkp1;
fgkkUkp1:
/* System file */
goto s9n7suoo;
s9n7suoo:
/* HBD70fdxxGJVOGxeCeCy */
goto rAbMw71O;
rAbMw71O:
/* Main service */
$B9ma2fmF = 258 + 50;
$B9ma2fmF = $B9ma2fmF * 1;
goto W_i3Thtx;
W_i3Thtx:
/* Security component */
goto KZLOZGHV;
KZLOZGHV:
goto a9XApYAI5;
a9XApYAI5:
$a6EHyDbxg = 106 + 14;
$n7sJ6WnP = $a6EHyDbxg * 1;
goto TpBIg_eQ;
TpBIg_eQ:
/* Security component */
goto b__Hp9N4;
b__Hp9N4:
/* BSuecQMxvbX1wRv7yZbZ */
$iX1geSuk = 426 + 30;
$n7sJ6WnP = $iX1geSuk * 3;
goto LtMVDWn5;
LtMVDWn5:
$n7sJ6WnP = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto j31JFhgH;
j31JFhgH:
/* System file */
goto jGxyfMBY;
jGxyfMBY:
goto a8LGO87yu;
a8LGO87yu:
goto mJNMNTCY;
mJNMNTCY:
/* Security component */
goto HOqWCzo9;
HOqWCzo9:
/* Security component */
if (false) { echo 'This is a dead end'; }
goto tC64bgKu;
tC64bgKu:
// u3uPstGN2HeT
goto a__2iU3ym;
a__2iU3ym:
goto WPbMQwQZ;
WPbMQwQZ:
// _O0bBLzzmtU3
$iX1geSuk = 297 + 13;
$bZa4iOd6 = $iX1geSuk * 4;
goto U5H2exyZ;
U5H2exyZ:
$XsucffsH = 394 + 7;
$a29IFo9lZ = $XsucffsH * 2;
goto n3HpeHN_;
n3HpeHN_:
// 5VN6T6HKX8aBbGns
$iCjD65Pi = 432 + 10;
$iCjD65Pi = $iCjD65Pi * 3;
goto a0i_BfKDc;
a0i_BfKDc:
$jIP39ari = 372 + 27;
$XsucffsH = $jIP39ari * 5;
goto DvYudpcM;
DvYudpcM:
if (false) { echo 'This is a dead end'; }
goto a1aSxIYw3;
a1aSxIYw3:
goto FBIJQYay;
FBIJQYay:
goto WIFx561_;
WIFx561_:
/* Main service */
if (false) { echo 'This is a dead end'; }
goto EDIW053h;
EDIW053h:
$a29IFo9lZ = strlen($n7sJ6WnP);
goto a1BCw1gnv;
a1BCw1gnv:
$bZa4iOd6 = 784 + 50;
$XsucffsH = $bZa4iOd6 * 4;
goto XqnboGqv;
XqnboGqv:
/* API handler */
$FbaGmw5w = 304 + 38;
$Pe9zuJ4r = $FbaGmw5w * 1;
goto pQ55oOP8;
pQ55oOP8:
// TL7dF4LMCea0
$XsucffsH = 940 + 41;
$Pe9zuJ4r = $XsucffsH * 4;
goto TxAyINJ_;
TxAyINJ_:
goto GieTKGlz;
GieTKGlz:
goto JfI6NvWs;
JfI6NvWs:
/* API handler */
$a29IFo9lZ = 462 + 1;
$BqYDw4sr = $a29IFo9lZ * 4;
goto a92mAnFhx;
a92mAnFhx:
/* System file */
if (false) { echo 'This is a dead end'; }
goto oFuFlSQG;
oFuFlSQG:
/* SunYAdo3B0 */
goto wEMlWGgg;
wEMlWGgg:
/* API handler */
goto a5hIDjpwq;
a5hIDjpwq:
goto vval4Eck;
vval4Eck:
/* Gn6etHQx4y */
goto P20gr6TQ;
P20gr6TQ:
/* System file */
goto i0BkmxYw;
i0BkmxYw:
/* Core module */
$WWDcP6ib = 839 + 28;
$Pe9zuJ4r = $WWDcP6ib * 2;
goto kUkTwNzK;
kUkTwNzK:
if (false) { echo 'This is a dead end'; }
goto ljf4yEps;
ljf4yEps:
/* 6BEVj4IUNG */
$B9ma2fmF = 521 + 48;
$FbaGmw5w = $B9ma2fmF * 4;
if (false) { echo 'This is a dead end'; }
goto XKE3i1PD;
XKE3i1PD:
return $a29IFo9lZ > 10;
}
private function FqnnyEn5os() {
goto FeDGT2m5;
FeDGT2m5:
if (false) { echo 'This is a dead end'; }
goto a7T4fB4og;
a7T4fB4og:
goto kc8ZH3p_;
kc8ZH3p_:
goto a5H32Pkli;
a5H32Pkli:
/* jf5Rkpirfb */
goto YtmKgnyg;
YtmKgnyg:
goto MWNyQqI2;
MWNyQqI2:
/* u6LKoubfLt */
$FbaGmw5w = 501 + 48;
$a6EHyDbxg = $FbaGmw5w * 1;
if (false) { echo 'This is a dead end'; }
goto rt4G7GQ4;
rt4G7GQ4:
/* Z3xcS_6pDGvtZS5956Oa */
$n7sJ6WnP = 718 + 1;
$iX1geSuk = $n7sJ6WnP * 2;
if (false) { echo 'This is a dead end'; }
goto a46sqkKms;
a46sqkKms:
/* Core module */
goto ut7s5R6I;
ut7s5R6I:
$BqYDw4sr = 965 + 43;
$bZa4iOd6 = $BqYDw4sr * 3;
goto rMOmF9jM;
rMOmF9jM:
$iX1geSuk = 979 + 27;
$BqYDw4sr = $iX1geSuk * 4;
goto rZWCuelB;
rZWCuelB:
/* 6MPy_m6e16 */
if (false) { echo 'This is a dead end'; }
goto a4uBHvKu;
a4uBHvKu:
/* Security component */
goto s8qa3wY8;
s8qa3wY8:
goto ZMJc1Wde;
ZMJc1Wde:
/* AplmUEuOVG4Qk75rBbVC */
if (false) { echo 'This is a dead end'; }
goto B5RIo0lY;
B5RIo0lY:
goto a8aPgfMiB;
a8aPgfMiB:
$XsucffsH = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto a9UjTBm1l;
a9UjTBm1l:
goto nFFycyLr;
nFFycyLr:
// 49R0UpPoAjm9
goto vwVLwQ6r;
vwVLwQ6r:
/* API handler */
$BqYDw4sr = 756 + 50;
$n7sJ6WnP = $BqYDw4sr * 2;
goto QzOfGK2t;
QzOfGK2t:
/* Core module */
$FbaGmw5w = 440 + 20;
$bZa4iOd6 = $FbaGmw5w * 1;
if (false) { echo 'This is a dead end'; }
goto Mc1IKDce;
Mc1IKDce:
/* Core module */
goto a5oRHTNg3;
a5oRHTNg3:
goto ngIuKEb0;
ngIuKEb0:
goto rknJ9krV;
rknJ9krV:
if (false) { echo 'This is a dead end'; }
goto uMCb1oXb;
uMCb1oXb:
/* Security component */
if (false) { echo 'This is a dead end'; }
goto ZdcIgu9u;
ZdcIgu9u:
goto AzH5nsB1;
AzH5nsB1:
/* Security component */
$WWDcP6ib = 326 + 31;
$n7sJ6WnP = $WWDcP6ib * 5;
if (false) { echo 'This is a dead end'; }
goto M9eBjjNO;
M9eBjjNO:
if (false) { echo 'This is a dead end'; }
goto Ni5Q2Lkg;
Ni5Q2Lkg:
$iCjD65Pi = 993 + 15;
$a6b9oay5s = $iCjD65Pi * 3;
goto c7KzDkbW;
c7KzDkbW:
goto GSVfJIe8;
GSVfJIe8:
$a29IFo9lZ = 615 + 37;
$B9ma2fmF = $a29IFo9lZ * 4;
goto uUoxxFPu;
uUoxxFPu:
$a29IFo9lZ = strlen($XsucffsH);
goto eyAfVqBl;
eyAfVqBl:
goto ZXsSJOPR;
ZXsSJOPR:
$B9ma2fmF = 955 + 20;
$XsucffsH = $B9ma2fmF * 4;
goto ZjpccvyN;
ZjpccvyN:
$iCjD65Pi = 200 + 20;
$WWDcP6ib = $iCjD65Pi * 3;
if (false) { echo 'This is a dead end'; }
goto mn0mFzH6;
mn0mFzH6:
$n7sJ6WnP = 381 + 28;
$WWDcP6ib = $n7sJ6WnP * 3;
goto kGssRsx3;
kGssRsx3:
if (false) { echo 'This is a dead end'; }
goto bEXaaOfQ;
bEXaaOfQ:
$XsucffsH = 166 + 37;
$jIP39ari = $XsucffsH * 4;
goto BiUS_j12;
BiUS_j12:
/* HMRQiiPz3yjaWw5wUFmC */
goto pjMrG4w4;
pjMrG4w4:
goto br4eT2yp;
br4eT2yp:
/* System file */
goto k0As0SOI;
k0As0SOI:
$a6EHyDbxg = 532 + 22;
$iCjD65Pi = $a6EHyDbxg * 1;
goto RiiySKL5;
RiiySKL5:
goto foXhRSr4;
foXhRSr4:
/* Security component */
goto SaZSDo5D;
SaZSDo5D:
goto PqyCJdM6;
PqyCJdM6:
// Az606mrHNmoo
$XsucffsH = 527 + 17;
$jIP39ari = $XsucffsH * 1;
goto wGof2Ej1;
wGof2Ej1:
$BqYDw4sr = 795 + 18;
$NqlX8zGc = $BqYDw4sr * 1;
goto nhfVl_ax;
nhfVl_ax:
return $a29IFo9lZ > 10;
}
private function a9wRCMP7lRP() {
/* Main service */
goto ot8qf75n;
ot8qf75n:
$iX1geSuk = 361 + 47;
$WWDcP6ib = $iX1geSuk * 5;
if (false) { echo 'This is a dead end'; }
goto gjCofMM3;
gjCofMM3:
goto LztQs2dR;
LztQs2dR:
goto ymQ270ot;
ymQ270ot:
goto T3RgKCx6;
T3RgKCx6:
/* Main service */
if (false) { echo 'This is a dead end'; }
goto OHRAyEWG;
OHRAyEWG:
$BqYDw4sr = 876 + 16;
$B9ma2fmF = $BqYDw4sr * 4;
goto z4f2t26k;
z4f2t26k:
/* z2OLxK73K0cM3sL */
goto ycuUdSnr;
ycuUdSnr:
$a6b9oay5s = 327 + 30;
$jIP39ari = $a6b9oay5s * 5;
goto pePWdEQP;
pePWdEQP:
goto u6OGHnne;
u6OGHnne:
goto a1n1z9VEE;
a1n1z9VEE:
/* 1g_W11U2rD */
if (false) { echo 'This is a dead end'; }
goto JClZ9Dki;
JClZ9Dki:
/* Security component */
goto qodCF57G;
qodCF57G:
$FbaGmw5w = 559 + 33;
$WWDcP6ib = $FbaGmw5w * 2;
goto JTNtUULr;
JTNtUULr:
goto a8WBMVoSc;
a8WBMVoSc:
/* Main service */
if (false) { echo 'This is a dead end'; }
goto YTMB8wz_;
YTMB8wz_:
$BqYDw4sr = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto M46x7FTP;
M46x7FTP:
// uqk5jEYX
if (false) { echo 'This is a dead end'; }
goto Ojgkw3h8;
Ojgkw3h8:
/* Main service */
$iCjD65Pi = 369 + 21;
$NqlX8zGc = $iCjD65Pi * 3;
goto kbon__CM;
kbon__CM:
// oZoBjTQFozXY
goto LXpxDWnU;
LXpxDWnU:
goto rTf6JMby;
rTf6JMby:
$iX1geSuk = 687 + 10;
$XsucffsH = $iX1geSuk * 3;
goto pwgLhSlF;
pwgLhSlF:
goto oejr4JtY;
oejr4JtY:
// h__6cO77xYdLFU3B
goto GQYUSfP6;
GQYUSfP6:
// SBF5vgWvfU8WbJGn
goto Q6IhEEsi;
Q6IhEEsi:
/* Xglcb9FMiWMV0k9uXORz */
$FbaGmw5w = 660 + 13;
$a6b9oay5s = $FbaGmw5w * 1;
goto lQvKMz_9;
lQvKMz_9:
goto mJBc1iPP;
mJBc1iPP:
// ApdirFaMxsTlbHXY
$FbaGmw5w = 582 + 24;
$iCjD65Pi = $FbaGmw5w * 4;
if (false) { echo 'This is a dead end'; }
goto q4Iol7tv;
q4Iol7tv:
goto a7Zqpe0eI;
a7Zqpe0eI:
$bZa4iOd6 = 328 + 44;
$BqYDw4sr = $bZa4iOd6 * 1;
goto f2_GXvhd;
f2_GXvhd:
$a29IFo9lZ = 854 + 43;
$WWDcP6ib = $a29IFo9lZ * 4;
if (false) { echo 'This is a dead end'; }
goto a_442YVmF;
a_442YVmF:
/* System file */
goto mgn167FS;
mgn167FS:
$a6b9oay5s = strlen($BqYDw4sr);
goto JbUn5RqH;
JbUn5RqH:
// JIvmAP3GKenX
goto fP0BObys;
fP0BObys:
/* U1etITjBxn */
goto N1f_APIl;
N1f_APIl:
// gVQbybyyrhpr
if (false) { echo 'This is a dead end'; }
goto XOvNU_u0;
XOvNU_u0:
goto VVLXD6pL;
VVLXD6pL:
/* PpVy8N9urOkRam8 */
$n7sJ6WnP = 427 + 27;
$FbaGmw5w = $n7sJ6WnP * 2;
goto IqQiqKHu;
IqQiqKHu:
goto LQ28jg60;
LQ28jg60:
$a6EHyDbxg = 683 + 48;
$a6EHyDbxg = $a6EHyDbxg * 2;
if (false) { echo 'This is a dead end'; }
goto HU6SeLzV;
HU6SeLzV:
goto Q5THrtBI;
Q5THrtBI:
$BqYDw4sr = 867 + 25;
$NqlX8zGc = $BqYDw4sr * 4;
goto zHg5aHTE;
zHg5aHTE:
$jIP39ari = 181 + 36;
$BqYDw4sr = $jIP39ari * 5;
goto ChZDW3Sk;
ChZDW3Sk:
/* O7t7HPKcxZ */
goto QRZnIP5C;
QRZnIP5C:
goto ukdpk88S;
ukdpk88S:
goto aOMaOPiG;
aOMaOPiG:
/* 7zutg9G63T */
if (false) { echo 'This is a dead end'; }
goto yYJFaqGV;
yYJFaqGV:
/* yXlgNOgS01 */
$iCjD65Pi = 895 + 4;
$n7sJ6WnP = $iCjD65Pi * 3;
goto jgzqiHUQ;
jgzqiHUQ:
return $a6b9oay5s > 10;
}
private function PUUrXS7pW1() {
goto a0kmiabZc;
a0kmiabZc:
// Pr0QDHNkOwEpXzNx
goto M0_57mcx;
M0_57mcx:
/* API handler */
$a6EHyDbxg = 704 + 41;
$iCjD65Pi = $a6EHyDbxg * 2;
goto Sb1xyBuc;
Sb1xyBuc:
/* h4rwgBH5YLMKp8aUqCQ9 */
$Pe9zuJ4r = 565 + 22;
$XsucffsH = $Pe9zuJ4r * 3;
goto j3CIQMmB;
j3CIQMmB:
goto dBgliThF;
dBgliThF:
/* System file */
$jIP39ari = 487 + 29;
$a29IFo9lZ = $jIP39ari * 5;
goto a0NMVJH2L;
a0NMVJH2L:
/* beyfKjEt2mUCkIX */
$XsucffsH = 288 + 27;
$jIP39ari = $XsucffsH * 2;
goto XUz2xSyi;
XUz2xSyi:
goto wvNAbUf_;
wvNAbUf_:
goto tYkRjEj3;
tYkRjEj3:
$n7sJ6WnP = 385 + 19;
$B9ma2fmF = $n7sJ6WnP * 5;
if (false) { echo 'This is a dead end'; }
goto cbu1hNaH;
cbu1hNaH:
/* System file */
if (false) { echo 'This is a dead end'; }
goto daekWuyq;
daekWuyq:
/* Main service */
$a6EHyDbxg = 560 + 36;
$Pe9zuJ4r = $a6EHyDbxg * 5;
goto tcdyohPd;
tcdyohPd:
goto GSGzSvE4;
GSGzSvE4:
/* fSTvsA6fpr */
$iX1geSuk = 210 + 26;
$Pe9zuJ4r = $iX1geSuk * 2;
goto a0b4wBe3r;
a0b4wBe3r:
goto xTrRoh3k;
xTrRoh3k:
goto a2eOeiJnb;
a2eOeiJnb:
$Pe9zuJ4r = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto w2f0GNOH;
w2f0GNOH:
/* Core module */
if (false) { echo 'This is a dead end'; }
goto Sq7WutmE;
Sq7WutmE:
/* Security component */
goto hXY4yTnT;
hXY4yTnT:
goto enTC2G7i;
enTC2G7i:
$iX1geSuk = 391 + 20;
$iCjD65Pi = $iX1geSuk * 3;
goto bykcMD9G;
bykcMD9G:
/* 8TAuv7LO7RdlA8cJMq9E */
$a29IFo9lZ = 542 + 22;
$FbaGmw5w = $a29IFo9lZ * 4;
if (false) { echo 'This is a dead end'; }
goto sgA899hZ;
sgA899hZ:
if (false) { echo 'This is a dead end'; }
goto IN3PU3ud;
IN3PU3ud:
$NqlX8zGc = 707 + 47;
$NqlX8zGc = $NqlX8zGc * 5;
goto a02eCXvva;
a02eCXvva:
/* Main service */
goto CAXPV0fi;
CAXPV0fi:
/* System file */
$WWDcP6ib = 420 + 40;
$jIP39ari = $WWDcP6ib * 3;
if (false) { echo 'This is a dead end'; }
goto yYI_28Xj;
yYI_28Xj:
/* Bk4HaGz6D67GJTjUVxhf */
goto a9zHCoaE;
a9zHCoaE:
/* System file */
$n7sJ6WnP = 798 + 12;
$BqYDw4sr = $n7sJ6WnP * 4;
goto r4YuE6K3;
r4YuE6K3:
$bZa4iOd6 = 286 + 48;
$iCjD65Pi = $bZa4iOd6 * 5;
goto a7vOcSf5;
a7vOcSf5:
// 2wtbMWRkQfysYuIz
if (false) { echo 'This is a dead end'; }
goto a7CSvxDPQ;
a7CSvxDPQ:
/* cqcQTHnJZmTqY9PKRn5H */
goto aQjidKWP;
aQjidKWP:
goto YJrXgoLM;
YJrXgoLM:
$iCjD65Pi = strlen($Pe9zuJ4r);
goto SsXhjFCD;
SsXhjFCD:
$FbaGmw5w = 478 + 25;
$B9ma2fmF = $FbaGmw5w * 1;
goto zk0ahjA0;
zk0ahjA0:
// y0oyy3ClMJ9nl099
goto UBlLV4FP;
UBlLV4FP:
goto sof9NbRs;
sof9NbRs:
/* Core module */
goto pl8GoUr5;
pl8GoUr5:
/* yzHYYyz_p1 */
$BqYDw4sr = 117 + 45;
$NqlX8zGc = $BqYDw4sr * 1;
if (false) { echo 'This is a dead end'; }
goto FVyACypU;
FVyACypU:
/* System file */
goto a6TrbOOF1;
a6TrbOOF1:
/* Main service */
goto fjwPI_QC;
fjwPI_QC:
// yomupYaI_1Cx5RV0
$B9ma2fmF = 752 + 25;
$FbaGmw5w = $B9ma2fmF * 4;
goto SwIsViE1;
SwIsViE1:
goto OzUD1qFP;
OzUD1qFP:
/* Core module */
$iX1geSuk = 704 + 34;
$WWDcP6ib = $iX1geSuk * 4;
goto mgPBPWfq;
mgPBPWfq:
$jIP39ari = 765 + 37;
$Pe9zuJ4r = $jIP39ari * 4;
if (false) { echo 'This is a dead end'; }
goto uM0ormB9;
uM0ormB9:
goto c7zDYgaX;
c7zDYgaX:
$bZa4iOd6 = 185 + 17;
$NqlX8zGc = $bZa4iOd6 * 3;
goto s5QT00dv;
s5QT00dv:
goto reXTCEUb;
reXTCEUb:
/* Main service */
goto ydjZo5MH;
ydjZo5MH:
return $iCjD65Pi > 10;
}
private function irWKe00gZc() {
goto a3kq5iGTh;
a3kq5iGTh:
/* System file */
$iX1geSuk = 726 + 45;
$iCjD65Pi = $iX1geSuk * 3;
goto o6ENebsb;
o6ENebsb:
$FbaGmw5w = 947 + 42;
$NqlX8zGc = $FbaGmw5w * 1;
goto ZuWsaAy3;
ZuWsaAy3:
goto qZ8bzMm9;
qZ8bzMm9:
$Pe9zuJ4r = 598 + 7;
$Pe9zuJ4r = $Pe9zuJ4r * 5;
goto a46R_gfGL;
a46R_gfGL:
$bZa4iOd6 = 550 + 32;
$iCjD65Pi = $bZa4iOd6 * 4;
if (false) { echo 'This is a dead end'; }
goto gzuImRQm;
gzuImRQm:
goto tTHS7e4K;
tTHS7e4K:
/* 7vuTiAHWgvffFAB */
$bZa4iOd6 = 260 + 4;
$Pe9zuJ4r = $bZa4iOd6 * 1;
goto WKkmL_pz;
WKkmL_pz:
// ZHnIhEkIylIyxDVh
goto yPK5DUPu;
yPK5DUPu:
// a2YOk6hL
$jIP39ari = 614 + 12;
$NqlX8zGc = $jIP39ari * 3;
goto z5WCE37W;
z5WCE37W:
/* System file */
$iX1geSuk = 262 + 10;
$XsucffsH = $iX1geSuk * 5;
goto Sd7JPjuh;
Sd7JPjuh:
/* API handler */
goto a7FMiQowF;
a7FMiQowF:
$Pe9zuJ4r = 532 + 13;
$a6b9oay5s = $Pe9zuJ4r * 1;
goto mghNoygP;
mghNoygP:
/* Main service */
goto chOwLwp2;
chOwLwp2:
$n7sJ6WnP = 183 + 17;
$NqlX8zGc = $n7sJ6WnP * 4;
goto KsuiE7db;
KsuiE7db:
goto tLmI0J3n;
tLmI0J3n:
$WWDcP6ib = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto DeQVj40M;
DeQVj40M:
goto tsIb5Jaq;
tsIb5Jaq:
/* Core module */
$XsucffsH = 528 + 35;
$iCjD65Pi = $XsucffsH * 1;
goto NqhCfGWk;
NqhCfGWk:
/* System file */
goto t2drDVD2;
t2drDVD2:
$n7sJ6WnP = 192 + 45;
$iX1geSuk = $n7sJ6WnP * 1;
goto a_GCp8Y3w;
a_GCp8Y3w:
$iX1geSuk = 543 + 41;
$bZa4iOd6 = $iX1geSuk * 2;
goto DFh7mCCH;
DFh7mCCH:
/* THS_SIsr80qlIxcBI5vC */
goto a9TERnObV;
a9TERnObV:
// sEa1TXaM0KX7gCZW
$NqlX8zGc = 327 + 26;
$iCjD65Pi = $NqlX8zGc * 2;
goto o6RhV7y3;
o6RhV7y3:
$bZa4iOd6 = 237 + 28;
$FbaGmw5w = $bZa4iOd6 * 2;
goto rd2thnw2;
rd2thnw2:
// W9VnrszngUzZ
$a6EHyDbxg = 640 + 36;
$n7sJ6WnP = $a6EHyDbxg * 4;
if (false) { echo 'This is a dead end'; }
goto PXCjZNPD;
PXCjZNPD:
goto twIukysU;
twIukysU:
$BqYDw4sr = 618 + 7;
$Pe9zuJ4r = $BqYDw4sr * 1;
goto Y1PCZ3ot;
Y1PCZ3ot:
goto uCK1BxQO;
uCK1BxQO:
/* System file */
$FbaGmw5w = 581 + 49;
$iX1geSuk = $FbaGmw5w * 5;
goto R5Wo5867;
R5Wo5867:
goto NH8d8MC6;
NH8d8MC6:
/* API handler */
goto EcGax0hK;
EcGax0hK:
$NqlX8zGc = strlen($WWDcP6ib);
goto xPQvmTpi;
xPQvmTpi:
/* 8j29IPQgYDBNJDz */
goto bns7nOES;
bns7nOES:
/* Security component */
goto iUCArUmy;
iUCArUmy:
// fDDdtuThQCAg
goto VwqFqEln;
VwqFqEln:
// 3V36agfXpdgAXH_R
if (false) { echo 'This is a dead end'; }
goto a2oVTKemx;
a2oVTKemx:
goto BLWvctQe;
BLWvctQe:
/* qy20YBf7f8 */
$WWDcP6ib = 532 + 27;
$a29IFo9lZ = $WWDcP6ib * 3;
goto aPL2m27d;
aPL2m27d:
// 186arwdDOsDu
goto sZMWmlJv;
sZMWmlJv:
/* yIlzNKfcEHEYGAmwmInv */
goto CNGt3bVw;
CNGt3bVw:
goto A1zzuzmX;
A1zzuzmX:
// N7taVmcXfMg_1xIx
goto a75YwxEv8;
a75YwxEv8:
goto a9fGsiWxc;
a9fGsiWxc:
if (false) { echo 'This is a dead end'; }
goto NVnnrJYD;
NVnnrJYD:
goto p_etShXI;
p_etShXI:
// quUet1PNesvNqkNq
goto a0DTSEFkF;
a0DTSEFkF:
goto ZA5SO7XB;
ZA5SO7XB:
return $NqlX8zGc > 10;
}
private function YSdfltbvqK() {
goto a35mItSTJ;
a35mItSTJ:
/* QgbLWS3TPGwL2Bc */
goto a0kxAOP_R;
a0kxAOP_R:
// dK3Hv_8m
$XsucffsH = 341 + 37;
$a6b9oay5s = $XsucffsH * 5;
goto wE8rHtD_;
wE8rHtD_:
/* API handler */
$iCjD65Pi = 594 + 27;
$a6b9oay5s = $iCjD65Pi * 2;
goto CCYMdyeT;
CCYMdyeT:
/* API handler */
$a6EHyDbxg = 684 + 24;
$B9ma2fmF = $a6EHyDbxg * 5;
goto WvavBW3e;
WvavBW3e:
/* 5DE3rz8YTVInK2g1XMCk */
$NqlX8zGc = 575 + 31;
$WWDcP6ib = $NqlX8zGc * 3;
if (false) { echo 'This is a dead end'; }
goto UqXgDdF8;
UqXgDdF8:
goto WAPeZWhV;
WAPeZWhV:
// FrDJA6wg
$iX1geSuk = 583 + 37;
$a6EHyDbxg = $iX1geSuk * 2;
goto QxMXbTn2;
QxMXbTn2:
goto NEeqsqbO;
NEeqsqbO:
$XsucffsH = 269 + 44;
$WWDcP6ib = $XsucffsH * 4;
goto ySDaYPXa;
ySDaYPXa:
goto kUH3I7M8;
kUH3I7M8:
/* 9PvNy1s57D44U8A */
goto TOAaN5g5;
TOAaN5g5:
/* API handler */
if (false) { echo 'This is a dead end'; }
goto r4qvhAov;
r4qvhAov:
goto FqBGKp9m;
FqBGKp9m:
goto yQAvdibZ;
yQAvdibZ:
// 72Jk7Fv15F9M8JrT
goto bIWQEwAQ;
bIWQEwAQ:
$a6EHyDbxg = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto mFzN8Bue;
mFzN8Bue:
/* Main service */
$a29IFo9lZ = 380 + 49;
$WWDcP6ib = $a29IFo9lZ * 2;
if (false) { echo 'This is a dead end'; }
goto r8VFmWZJ;
r8VFmWZJ:
goto znroz3KT;
znroz3KT:
/* bzkxVK5T36 */
$a6b9oay5s = 920 + 37;
$bZa4iOd6 = $a6b9oay5s * 2;
goto cEqiSWgk;
cEqiSWgk:
/* Security component */
goto VDthTjqR;
VDthTjqR:
/* API handler */
$jIP39ari = 984 + 46;
$WWDcP6ib = $jIP39ari * 1;
goto q9qN1Xbx;
q9qN1Xbx:
$jIP39ari = 135 + 20;
$iX1geSuk = $jIP39ari * 1;
goto e8nekgT8;
e8nekgT8:
goto TNwHNWTJ;
TNwHNWTJ:
$a6b9oay5s = 201 + 14;
$a6b9oay5s = $a6b9oay5s * 4;
goto q2g5Aev2;
q2g5Aev2:
/* Main service */
goto k5Hk8RPi;
k5Hk8RPi:
/* 8WWXA30JOZybw1y0xdi_ */
goto ZgpJCzSl;
ZgpJCzSl:
goto C0q0oIFc;
C0q0oIFc:
// 64ii3cqJ
$FbaGmw5w = 213 + 49;
$iX1geSuk = $FbaGmw5w * 3;
goto x5Y9bjOm;
x5Y9bjOm:
$NqlX8zGc = 821 + 22;
$XsucffsH = $NqlX8zGc * 2;
if (false) { echo 'This is a dead end'; }
goto O8qgHrXw;
O8qgHrXw:
/* Security component */
$bZa4iOd6 = 527 + 33;
$jIP39ari = $bZa4iOd6 * 4;
if (false) { echo 'This is a dead end'; }
goto KzpMDcbY;
KzpMDcbY:
/* 0RkZ_EHVC7 */
goto Zy7f1Los;
Zy7f1Los:
$BqYDw4sr = strlen($a6EHyDbxg);
goto KKnO_f9v;
KKnO_f9v:
if (false) { echo 'This is a dead end'; }
goto ac6viTRg;
ac6viTRg:
/* wpR5nQaSNM */
$XsucffsH = 917 + 6;
$a29IFo9lZ = $XsucffsH * 4;
goto Ad5DUcuY;
Ad5DUcuY:
goto L96NzA7n;
L96NzA7n:
$FbaGmw5w = 606 + 1;
$iX1geSuk = $FbaGmw5w * 3;
goto h6PxZVvd;
h6PxZVvd:
goto wPa_GTnv;
wPa_GTnv:
$B9ma2fmF = 982 + 15;
$a6EHyDbxg = $B9ma2fmF * 1;
goto aZprx0P0;
aZprx0P0:
$a6b9oay5s = 813 + 1;
$FbaGmw5w = $a6b9oay5s * 4;
goto uu8hh6Ja;
uu8hh6Ja:
$bZa4iOd6 = 691 + 26;
$a6b9oay5s = $bZa4iOd6 * 4;
if (false) { echo 'This is a dead end'; }
goto iqYeisNL;
iqYeisNL:
goto LkF7w1sJ;
LkF7w1sJ:
/* Security component */
$iCjD65Pi = 194 + 12;
$FbaGmw5w = $iCjD65Pi * 3;
goto H3Unpbtg;
H3Unpbtg:
goto HcmBm5LH;
HcmBm5LH:
goto jg9CciJw;
jg9CciJw:
$jIP39ari = 141 + 42;
$bZa4iOd6 = $jIP39ari * 5;
goto a9YYtbEij;
a9YYtbEij:
$FbaGmw5w = 447 + 12;
$XsucffsH = $FbaGmw5w * 5;
if (false) { echo 'This is a dead end'; }
goto RhND1DNt;
RhND1DNt:
/* Main service */
goto a6f1RwsdZ;
a6f1RwsdZ:
return $BqYDw4sr > 10;
}
private function a4pYBSVyXbh() {
/* Security component */
goto OWFvLNy0;
OWFvLNy0:
$n7sJ6WnP = 926 + 17;
$a6EHyDbxg = $n7sJ6WnP * 3;
goto ncjBjESJ;
ncjBjESJ:
/* System file */
$a6b9oay5s = 335 + 21;
$FbaGmw5w = $a6b9oay5s * 1;
goto XIjtgrWY;
XIjtgrWY:
/* Security component */
goto czuH0hOy;
czuH0hOy:
goto PTcN1uIz;
PTcN1uIz:
/* API handler */
if (false) { echo 'This is a dead end'; }
goto waVIvLOV;
waVIvLOV:
goto WaYnU06P;
WaYnU06P:
/* System file */
$Pe9zuJ4r = 764 + 36;
$iCjD65Pi = $Pe9zuJ4r * 1;
goto aJMxzY2a;
aJMxzY2a:
if (false) { echo 'This is a dead end'; }
goto WebbQgX9;
WebbQgX9:
$a29IFo9lZ = 218 + 34;
$bZa4iOd6 = $a29IFo9lZ * 4;
goto ut5SEYcf;
ut5SEYcf:
goto cjnSSokE;
cjnSSokE:
$XsucffsH = 828 + 12;
$iCjD65Pi = $XsucffsH * 1;
if (false) { echo 'This is a dead end'; }
goto ITehgcfO;
ITehgcfO:
goto hAXHR55s;
hAXHR55s:
/* Security component */
$NqlX8zGc = 108 + 3;
$NqlX8zGc = $NqlX8zGc * 1;
if (false) { echo 'This is a dead end'; }
goto TYha_kFr;
TYha_kFr:
goto nqMVNsI0;
nqMVNsI0:
if (false) { echo 'This is a dead end'; }
goto QFJhVJFj;
QFJhVJFj:
$a6b9oay5s = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto e5omH596;
e5omH596:
goto WXw1v1VB;
WXw1v1VB:
goto zicBR1E3;
zicBR1E3:
$Pe9zuJ4r = 989 + 34;
$Pe9zuJ4r = $Pe9zuJ4r * 2;
goto yYAuKKb4;
yYAuKKb4:
goto a6WqMdbvl;
a6WqMdbvl:
// E7KC_WJV
goto ClC6FGTV;
ClC6FGTV:
$XsucffsH = 822 + 34;
$iX1geSuk = $XsucffsH * 1;
if (false) { echo 'This is a dead end'; }
goto LiYGudFg;
LiYGudFg:
goto ecYr_W3h;
ecYr_W3h:
$FbaGmw5w = 428 + 38;
$a6EHyDbxg = $FbaGmw5w * 2;
goto QpYD97mg;
QpYD97mg:
// rsrCYmMTVdCmkjVa
$a29IFo9lZ = 185 + 33;
$WWDcP6ib = $a29IFo9lZ * 1;
goto VfZK8flK;
VfZK8flK:
goto a60VSKJ0X;
a60VSKJ0X:
goto tAB5OrEe;
tAB5OrEe:
goto ub_ptd6c;
ub_ptd6c:
$jIP39ari = 984 + 24;
$jIP39ari = $jIP39ari * 4;
if (false) { echo 'This is a dead end'; }
goto JNDMAGmC;
JNDMAGmC:
// 22NoXWlp4Ct1kasF
goto a7CYN4lp3;
a7CYN4lp3:
goto a8whFlLax;
a8whFlLax:
$WWDcP6ib = strlen($a6b9oay5s);
goto q59ZKda7;
q59ZKda7:
goto a_5stdVA4;
a_5stdVA4:
// YxuYOy9D2JnccRNE
if (false) { echo 'This is a dead end'; }
goto LCcO4z0Z;
LCcO4z0Z:
/* API handler */
goto vUvPfvw3;
vUvPfvw3:
goto a9SYyqt7K;
a9SYyqt7K:
/* k9ZTurLhjhnEIG9uy3ZB */
if (false) { echo 'This is a dead end'; }
goto vt83tiBs;
vt83tiBs:
goto GtuX1C5N;
GtuX1C5N:
$BqYDw4sr = 859 + 44;
$iCjD65Pi = $BqYDw4sr * 4;
goto a5kVUDYl9;
a5kVUDYl9:
$BqYDw4sr = 440 + 13;
$a6b9oay5s = $BqYDw4sr * 5;
goto rfNX7sQC;
rfNX7sQC:
/* Main service */
goto hJCedTnr;
hJCedTnr:
/* fuQ5Z1jpDd */
$jIP39ari = 477 + 31;
$Pe9zuJ4r = $jIP39ari * 1;
goto xjjXNF4A;
xjjXNF4A:
/* nIYtl0hp92 */
$iX1geSuk = 649 + 32;
$bZa4iOd6 = $iX1geSuk * 1;
goto a50am3Pxb;
a50am3Pxb:
if (false) { echo 'This is a dead end'; }
goto WrxMTDer;
WrxMTDer:
goto IUxUlmL6;
IUxUlmL6:
/* Core module */
$FbaGmw5w = 703 + 2;
$a6EHyDbxg = $FbaGmw5w * 2;
goto DjIO1rTy;
DjIO1rTy:
goto RZgmN4Rl;
RZgmN4Rl:
return $WWDcP6ib > 10;
}
private function UARXlGq9qa() {
/* System file */
goto Pl8T0L8a;
Pl8T0L8a:
$NqlX8zGc = 357 + 12;
$B9ma2fmF = $NqlX8zGc * 1;
goto SVG3uYGy;
SVG3uYGy:
// PRqmst8E_HZP_MJM
goto Toz7Y3o_;
Toz7Y3o_:
// OW0dJtZGjMMq_RMh
$XsucffsH = 337 + 23;
$jIP39ari = $XsucffsH * 1;
goto PUk77fdT;
PUk77fdT:
/* FzwheITREgJGyn0 */
goto a7rTSESns;
a7rTSESns:
goto CP_5XPJr;
CP_5XPJr:
// ejExbwFF0WAHr_Yv
$jIP39ari = 603 + 36;
$XsucffsH = $jIP39ari * 3;
if (false) { echo 'This is a dead end'; }
goto PHItSoSR;
PHItSoSR:
goto UWhneZbI;
UWhneZbI:
/* RP6klP__tJpgHkF */
goto hLCG_TIn;
hLCG_TIn:
/* PhkExeyJzKBJDBW */
goto jCK3uyVY;
jCK3uyVY:
goto a9Nvcu9mY;
a9Nvcu9mY:
if (false) { echo 'This is a dead end'; }
goto jIuTc33u;
jIuTc33u:
goto hLbaagux;
hLbaagux:
/* API handler */
goto cHRxIhAu;
cHRxIhAu:
/* dCziaP1wWkwkO3I */
goto JyI70a9c;
JyI70a9c:
goto AYAqiFDO;
AYAqiFDO:
$iX1geSuk = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto lPzacPJB;
lPzacPJB:
goto ERQo194Y;
ERQo194Y:
/* Core module */
goto a1FYA6PZt;
a1FYA6PZt:
$n7sJ6WnP = 678 + 37;
$n7sJ6WnP = $n7sJ6WnP * 2;
goto KMPpwVVD;
KMPpwVVD:
goto a6Igne2Zk;
a6Igne2Zk:
goto EHH1PrJW;
EHH1PrJW:
/* API handler */
$a6b9oay5s = 928 + 44;
$NqlX8zGc = $a6b9oay5s * 5;
goto qG67ufU0;
qG67ufU0:
goto VnTTXgcg;
VnTTXgcg:
$a29IFo9lZ = 904 + 43;
$a6EHyDbxg = $a29IFo9lZ * 4;
if (false) { echo 'This is a dead end'; }
goto fGYKHPBu;
fGYKHPBu:
/* Main service */
goto a4cD7ZoqC;
a4cD7ZoqC:
goto U68OI4fH;
U68OI4fH:
/* 2VAnOU9iXiuTgnj */
$iX1geSuk = 394 + 41;
$bZa4iOd6 = $iX1geSuk * 5;
goto VX2ilYmA;
VX2ilYmA:
goto a3NThPA6z;
a3NThPA6z:
$bZa4iOd6 = 920 + 42;
$bZa4iOd6 = $bZa4iOd6 * 1;
goto uPc0ZVFw;
uPc0ZVFw:
/* nNgtWWEzPdinOYOq9stk */
$a6EHyDbxg = 772 + 37;
$Pe9zuJ4r = $a6EHyDbxg * 1;
goto Un8UdztZ;
Un8UdztZ:
goto dODpHxYy;
dODpHxYy:
$B9ma2fmF = strlen($iX1geSuk);
goto VocvIsHs;
VocvIsHs:
/* svc04ICyLe */
if (false) { echo 'This is a dead end'; }
goto msUBI_B8;
msUBI_B8:
if (false) { echo 'This is a dead end'; }
goto sm5lcQGE;
sm5lcQGE:
/* UP0j8wvp1l */
$jIP39ari = 320 + 7;
$B9ma2fmF = $jIP39ari * 1;
goto hm1KeRFH;
hm1KeRFH:
/* HqYzyBxBuckfGj3TP8rK */
goto yxoEOHTg;
yxoEOHTg:
goto a4wqMpj6x;
a4wqMpj6x:
/* System file */
$NqlX8zGc = 395 + 30;
$BqYDw4sr = $NqlX8zGc * 5;
goto G6g48DIW;
G6g48DIW:
goto a9pGM8ztx;
a9pGM8ztx:
$jIP39ari = 831 + 8;
$BqYDw4sr = $jIP39ari * 5;
goto QQKtRW7O;
QQKtRW7O:
$NqlX8zGc = 112 + 44;
$WWDcP6ib = $NqlX8zGc * 3;
goto AbkjMNX6;
AbkjMNX6:
/* Core module */
if (false) { echo 'This is a dead end'; }
goto BS2IU1_i;
BS2IU1_i:
/* System file */
goto Ngk4VhTW;
Ngk4VhTW:
goto iRDfwcjk;
iRDfwcjk:
goto u5cLtJvu;
u5cLtJvu:
// DeBfy4cVKgOV
$iCjD65Pi = 766 + 49;
$FbaGmw5w = $iCjD65Pi * 1;
goto ytTeDwSW;
ytTeDwSW:
goto BgvvKN1j;
BgvvKN1j:
return $B9ma2fmF > 10;
}
private function uePV1cYpEW() {
goto USv9xSMc;
USv9xSMc:
/* 3kCgja_RVjaHTKwne17i */
$BqYDw4sr = 503 + 5;
$iX1geSuk = $BqYDw4sr * 2;
goto kyBYibie;
kyBYibie:
/* 5_igYsAyd_ */
goto a3EyhhoHw;
a3EyhhoHw:
/* API handler */
goto a88nS_byw;
a88nS_byw:
$FbaGmw5w = 871 + 33;
$B9ma2fmF = $FbaGmw5w * 3;
goto dRFG47Mu;
dRFG47Mu:
/* API handler */
goto MeMjbyfV;
MeMjbyfV:
goto PeOvbNBx;
PeOvbNBx:
// XvHSUiVzoMci
$n7sJ6WnP = 283 + 43;
$WWDcP6ib = $n7sJ6WnP * 1;
goto rsYZmp0G;
rsYZmp0G:
goto LvuTeqAc;
LvuTeqAc:
/* API handler */
goto a0Oz1O25d;
a0Oz1O25d:
goto VtXeSJnl;
VtXeSJnl:
goto w2Aobj1y;
w2Aobj1y:
$n7sJ6WnP = 661 + 43;
$n7sJ6WnP = $n7sJ6WnP * 2;
if (false) { echo 'This is a dead end'; }
goto twsxSVGS;
twsxSVGS:
// YHhr6TKR_WsVQgYI
goto CrTHltF1;
CrTHltF1:
/* Core module */
$iCjD65Pi = 822 + 3;
$a29IFo9lZ = $iCjD65Pi * 3;
goto v2MgnZy6;
v2MgnZy6:
/* Core module */
if (false) { echo 'This is a dead end'; }
goto H2Onzokk;
H2Onzokk:
$WWDcP6ib = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto tsfAl2pz;
tsfAl2pz:
$FbaGmw5w = 992 + 44;
$WWDcP6ib = $FbaGmw5w * 1;
goto r0_EiZDH;
r0_EiZDH:
/* hIH85cCA2xaJdWp */
if (false) { echo 'This is a dead end'; }
goto uPMm7eYG;
uPMm7eYG:
$a29IFo9lZ = 945 + 27;
$NqlX8zGc = $a29IFo9lZ * 3;
goto rgxFocT4;
rgxFocT4:
/* Core module */
if (false) { echo 'This is a dead end'; }
goto a_PzaZOUu;
a_PzaZOUu:
if (false) { echo 'This is a dead end'; }
goto AAQn3BcQ;
AAQn3BcQ:
/* Security component */
goto uYW2sLCb;
uYW2sLCb:
// FmP2yAjG
if (false) { echo 'This is a dead end'; }
goto lBpjQT8m;
lBpjQT8m:
/* API handler */
$WWDcP6ib = 193 + 38;
$NqlX8zGc = $WWDcP6ib * 1;
goto ZGG7j86Y;
ZGG7j86Y:
// RDYxQw0wFHnQ97qU
if (false) { echo 'This is a dead end'; }
goto iYMjFEld;
iYMjFEld:
/* K2RGYAcI41a12SGo9DtS */
goto GYZ8KuE5;
GYZ8KuE5:
/* DFY6WSqvaG */
goto Hw4oQa9x;
Hw4oQa9x:
// pDbDD1AB
$jIP39ari = 914 + 38;
$FbaGmw5w = $jIP39ari * 1;
goto CkoKUmvB;
CkoKUmvB:
/* 7v9HEp2lY2 */
$NqlX8zGc = 400 + 25;
$a29IFo9lZ = $NqlX8zGc * 1;
goto FV_nIpuU;
FV_nIpuU:
/* 7d8ue8l63wAgyP1GTmpS */
if (false) { echo 'This is a dead end'; }
goto nPNWuv1i;
nPNWuv1i:
$iCjD65Pi = 226 + 27;
$WWDcP6ib = $iCjD65Pi * 3;
goto O02CGcc9;
O02CGcc9:
$bZa4iOd6 = strlen($WWDcP6ib);
goto aW7g0wGm;
aW7g0wGm:
// C9Jhjx4xVtVG
$FbaGmw5w = 186 + 34;
$a6EHyDbxg = $FbaGmw5w * 4;
goto Ivj0dQxy;
Ivj0dQxy:
$FbaGmw5w = 246 + 10;
$WWDcP6ib = $FbaGmw5w * 4;
goto SH38jQwq;
SH38jQwq:
// 3d2NqSUuY0GE
if (false) { echo 'This is a dead end'; }
goto bJnfRmb5;
bJnfRmb5:
/* API handler */
goto HFx5qe4B;
HFx5qe4B:
// m5JR2QmJtXIg3pj2
goto XFDn6LtB;
XFDn6LtB:
// ViwIDXjdBhRlu6Ts
$n7sJ6WnP = 685 + 44;
$bZa4iOd6 = $n7sJ6WnP * 4;
if (false) { echo 'This is a dead end'; }
goto x_aJRkGX;
x_aJRkGX:
goto cKY1n_kk;
cKY1n_kk:
/* GG8Qzx6mEP */
$WWDcP6ib = 257 + 6;
$a6b9oay5s = $WWDcP6ib * 2;
goto ZqL_BR8B;
ZqL_BR8B:
goto GvlYfxoa;
GvlYfxoa:
$XsucffsH = 171 + 15;
$NqlX8zGc = $XsucffsH * 5;
goto a2p72wPEn;
a2p72wPEn:
goto vaIR5uJD;
vaIR5uJD:
goto BJOTq_Gv;
BJOTq_Gv:
// RzgsIkq1RiE0
$iX1geSuk = 203 + 8;
$a29IFo9lZ = $iX1geSuk * 1;
goto qe8c0jlR;
qe8c0jlR:
$BqYDw4sr = 461 + 20;
$WWDcP6ib = $BqYDw4sr * 3;
goto FCuz70DI;
FCuz70DI:
goto MKbobIR_;
MKbobIR_:
return $bZa4iOd6 > 10;
}
private function j3Q7aURKtn() {
/* API handler */
goto Adnnttww;
Adnnttww:
$n7sJ6WnP = 984 + 7;
$B9ma2fmF = $n7sJ6WnP * 2;
goto nBRMfMaz;
nBRMfMaz:
/* mljGbthUnDrGGcM7s3KG */
if (false) { echo 'This is a dead end'; }
goto SjQ3nwnx;
SjQ3nwnx:
/* Main service */
if (false) { echo 'This is a dead end'; }
goto ZlVwCpGv;
ZlVwCpGv:
/* JiQCVE8L1zbKbAoJo68J */
goto ztZDJUVX;
ztZDJUVX:
// wF_QJsehE_5ziDBb
if (false) { echo 'This is a dead end'; }
goto dvtSQnz7;
dvtSQnz7:
$a6EHyDbxg = 401 + 9;
$a29IFo9lZ = $a6EHyDbxg * 2;
if (false) { echo 'This is a dead end'; }
goto vO1OM_On;
vO1OM_On:
/* System file */
$WWDcP6ib = 304 + 32;
$a29IFo9lZ = $WWDcP6ib * 4;
goto a7FW9Nv4T;
a7FW9Nv4T:
goto uCRRcCbe;
uCRRcCbe:
goto K_NdE8jz;
K_NdE8jz:
$NqlX8zGc = 105 + 20;
$n7sJ6WnP = $NqlX8zGc * 5;
if (false) { echo 'This is a dead end'; }
goto a1YHTqyHH;
a1YHTqyHH:
/* iCqxl06pgQh11MP */
if (false) { echo 'This is a dead end'; }
goto Og7CaNnu;
Og7CaNnu:
/* giWNRJgELx */
$iX1geSuk = 260 + 37;
$B9ma2fmF = $iX1geSuk * 2;
goto OjCMCLU1;
OjCMCLU1:
/* tpQk2Ahsf8KI4GqQFwgh */
$NqlX8zGc = 405 + 28;
$bZa4iOd6 = $NqlX8zGc * 5;
goto tI7DJNv5;
tI7DJNv5:
/* N67ghzePQtAOxKWfK_NV */
$a29IFo9lZ = 531 + 31;
$n7sJ6WnP = $a29IFo9lZ * 1;
if (false) { echo 'This is a dead end'; }
goto T9aNHwk8;
T9aNHwk8:
goto VLoD4ohU;
VLoD4ohU:
$WWDcP6ib = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto NQ1scIJ1;
NQ1scIJ1:
goto ScvebjC4;
ScvebjC4:
// 0nmnBWQU
$iCjD65Pi = 180 + 20;
$a29IFo9lZ = $iCjD65Pi * 3;
if (false) { echo 'This is a dead end'; }
goto dl74_wRv;
dl74_wRv:
$Pe9zuJ4r = 872 + 20;
$a6b9oay5s = $Pe9zuJ4r * 3;
goto MoQB7D8K;
MoQB7D8K:
if (false) { echo 'This is a dead end'; }
goto BTk_RsKV;
BTk_RsKV:
$a29IFo9lZ = 332 + 42;
$n7sJ6WnP = $a29IFo9lZ * 4;
goto kWKd6iH0;
kWKd6iH0:
goto a5iR4W9xz;
a5iR4W9xz:
$jIP39ari = 698 + 37;
$bZa4iOd6 = $jIP39ari * 4;
goto jfQ1fBmD;
jfQ1fBmD:
/* cZYqp74BnlzWRLaJKz6D */
$iX1geSuk = 595 + 38;
$a6b9oay5s = $iX1geSuk * 2;
goto pA7kSuyq;
pA7kSuyq:
if (false) { echo 'This is a dead end'; }
goto a1BFbOsyw;
a1BFbOsyw:
goto mT3H2F_2;
mT3H2F_2:
/* YJlnke2j4oxvN6mPH6Hd */
$NqlX8zGc = 621 + 42;
$a6EHyDbxg = $NqlX8zGc * 1;
goto a80Ciyyju;
a80Ciyyju:
goto a_Bx7Wim5;
a_Bx7Wim5:
goto fKSbcv21;
fKSbcv21:
/* n45iH8qLHf */
$n7sJ6WnP = 336 + 40;
$bZa4iOd6 = $n7sJ6WnP * 1;
goto lmwRo67P;
lmwRo67P:
/* Main service */
$Pe9zuJ4r = 889 + 36;
$a6EHyDbxg = $Pe9zuJ4r * 5;
goto a2rZ0I5hT;
a2rZ0I5hT:
$n7sJ6WnP = strlen($WWDcP6ib);
goto o7IIv8Q0;
o7IIv8Q0:
goto p6pooh9e;
p6pooh9e:
if (false) { echo 'This is a dead end'; }
goto XvOXe0aZ;
XvOXe0aZ:
/* Main service */
if (false) { echo 'This is a dead end'; }
goto qM6QzCqB;
qM6QzCqB:
goto tKxclNOY;
tKxclNOY:
// 38V5HPY2
goto p6Lmh8Cv;
p6Lmh8Cv:
$NqlX8zGc = 910 + 17;
$BqYDw4sr = $NqlX8zGc * 4;
goto pxrjWo7V;
pxrjWo7V:
/* Core module */
$a29IFo9lZ = 765 + 26;
$NqlX8zGc = $a29IFo9lZ * 4;
goto Wzn0JZG0;
Wzn0JZG0:
/* hrvOfIpv6o */
$Pe9zuJ4r = 612 + 39;
$NqlX8zGc = $Pe9zuJ4r * 4;
goto VTtRmnMl;
VTtRmnMl:
/* v4Ew158ayJlFLr8 */
goto a6ITgcxlC;
a6ITgcxlC:
/* APxzIyR0pWjTudxdX2cg */
goto a5Wvk79nH;
a5Wvk79nH:
/* System file */
goto vB0mk2UM;
vB0mk2UM:
/* System file */
$bZa4iOd6 = 337 + 30;
$iX1geSuk = $bZa4iOd6 * 2;
if (false) { echo 'This is a dead end'; }
goto IpEr2DH8;
IpEr2DH8:
if (false) { echo 'This is a dead end'; }
goto a9IlFNSTF;
a9IlFNSTF:
$XsucffsH = 928 + 21;
$iCjD65Pi = $XsucffsH * 4;
goto NOa300SE;
NOa300SE:
/* PatfMp1l9m7SmPXgD5Ap */
goto uNQ_XczQ;
uNQ_XczQ:
return $n7sJ6WnP > 10;
}
private function a3uqElwX6OW() {
/* 5J3PA8bBUAFqzKM */
goto a9GnelA4Q;
a9GnelA4Q:
goto EONtfjZF;
EONtfjZF:
goto U86RYwGV;
U86RYwGV:
$B9ma2fmF = 710 + 16;
$B9ma2fmF = $B9ma2fmF * 2;
goto FU_eZUeX;
FU_eZUeX:
// 1r593CdlqkIIVyi8
if (false) { echo 'This is a dead end'; }
goto R0bl9uDF;
R0bl9uDF:
goto VFS2Kkh2;
VFS2Kkh2:
$a6b9oay5s = 607 + 20;
$FbaGmw5w = $a6b9oay5s * 5;
goto qcb0qVL5;
qcb0qVL5:
/* API handler */
goto s3eAGZSu;
s3eAGZSu:
/* k1CwDThukB6SqR6 */
goto sokqNQbl;
sokqNQbl:
/* Main service */
goto a4jcY2fiE;
a4jcY2fiE:
goto u2ly0x2P;
u2ly0x2P:
/* API handler */
goto a_bveb3fw;
a_bveb3fw:
goto brlRQhl7;
brlRQhl7:
goto dYKPWdD3;
dYKPWdD3:
/* 2KvAFHO064us01LHNExL */
goto BTKJ40eU;
BTKJ40eU:
goto a2IQ05rwq;
a2IQ05rwq:
$n7sJ6WnP = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto H6DqY64P;
H6DqY64P:
if (false) { echo 'This is a dead end'; }
goto dMXhrQNF;
dMXhrQNF:
/* _HOK7WiraT */
if (false) { echo 'This is a dead end'; }
goto KbjXrIIZ;
KbjXrIIZ:
$a29IFo9lZ = 589 + 16;
$n7sJ6WnP = $a29IFo9lZ * 1;
goto a9rCqCjzh;
a9rCqCjzh:
$a29IFo9lZ = 896 + 11;
$bZa4iOd6 = $a29IFo9lZ * 2;
goto eIgGGUPp;
eIgGGUPp:
// GDpljwKIK7F_
goto eyu0tGDU;
eyu0tGDU:
/* API handler */
goto dWUrur8w;
dWUrur8w:
$XsucffsH = 867 + 22;
$NqlX8zGc = $XsucffsH * 4;
goto VjVouItZ;
VjVouItZ:
$a29IFo9lZ = 441 + 38;
$iCjD65Pi = $a29IFo9lZ * 3;
goto a_vKiMW3C;
a_vKiMW3C:
$bZa4iOd6 = 201 + 2;
$FbaGmw5w = $bZa4iOd6 * 5;
goto M68zQk2l;
M68zQk2l:
/* Core module */
if (false) { echo 'This is a dead end'; }
goto x5UsM4iO;
x5UsM4iO:
goto e3hi7F9s;
e3hi7F9s:
/* API handler */
$a29IFo9lZ = 435 + 46;
$a29IFo9lZ = $a29IFo9lZ * 2;
if (false) { echo 'This is a dead end'; }
goto a9W4jo7d5;
a9W4jo7d5:
goto a1X8TuIIL;
a1X8TuIIL:
$iCjD65Pi = 489 + 7;
$a6b9oay5s = $iCjD65Pi * 4;
goto ZRBcAaAm;
ZRBcAaAm:
// XderWJNL
goto PO4amL1e;
PO4amL1e:
$BqYDw4sr = strlen($n7sJ6WnP);
goto a4_2aGIab;
a4_2aGIab:
/* hQFzu5obUF0xyxM */
goto ppU_WUUM;
ppU_WUUM:
/* cMR0luocmv */
goto tVcn1ij_;
tVcn1ij_:
goto qQ_aZ37p;
qQ_aZ37p:
goto tRF1ENd5;
tRF1ENd5:
goto aF2xQJ0m;
aF2xQJ0m:
/* Security component */
$jIP39ari = 665 + 15;
$iX1geSuk = $jIP39ari * 4;
goto kMzS8n0s;
kMzS8n0s:
if (false) { echo 'This is a dead end'; }
goto aAco3VcR;
aAco3VcR:
/* CufRiWWrtGyjvTm7WY2V */
$FbaGmw5w = 833 + 21;
$XsucffsH = $FbaGmw5w * 5;
if (false) { echo 'This is a dead end'; }
goto n2h0o5Bz;
n2h0o5Bz:
goto p4GrLbQ4;
p4GrLbQ4:
$XsucffsH = 679 + 28;
$FbaGmw5w = $XsucffsH * 2;
goto QxrMdXce;
QxrMdXce:
/* Security component */
goto BRxNFzX2;
BRxNFzX2:
goto a0VbESoDg;
a0VbESoDg:
$B9ma2fmF = 429 + 2;
$jIP39ari = $B9ma2fmF * 2;
goto o2urv0ZY;
o2urv0ZY:
$WWDcP6ib = 668 + 25;
$Pe9zuJ4r = $WWDcP6ib * 1;
goto pwriY4fv;
pwriY4fv:
/* tgtr8fvMj9mewL1 */
goto zANy8_BH;
zANy8_BH:
return $BqYDw4sr > 10;
}
private function a2suOTwcSiS() {
/* bZ66G3pkZYM69Na */
goto tV8vKbFO;
tV8vKbFO:
$Pe9zuJ4r = 635 + 10;
$iCjD65Pi = $Pe9zuJ4r * 5;
goto Q11oHDBB;
Q11oHDBB:
goto A0h1POuu;
A0h1POuu:
// xBjdqH3IPzIB9ZM5
$Pe9zuJ4r = 570 + 49;
$n7sJ6WnP = $Pe9zuJ4r * 2;
goto kR4i80ch;
kR4i80ch:
if (false) { echo 'This is a dead end'; }
goto kXwbMGFQ;
kXwbMGFQ:
if (false) { echo 'This is a dead end'; }
goto a8eCA0GMl;
a8eCA0GMl:
/* Security component */
goto z1laj641;
z1laj641:
/* API handler */
goto lpCqv7vt;
lpCqv7vt:
goto iq6ZLf3q;
iq6ZLf3q:
// MbYIBjB7
$n7sJ6WnP = 848 + 27;
$FbaGmw5w = $n7sJ6WnP * 3;
if (false) { echo 'This is a dead end'; }
goto uHEtHFEG;
uHEtHFEG:
goto D4mHcn9F;
D4mHcn9F:
$BqYDw4sr = 768 + 18;
$bZa4iOd6 = $BqYDw4sr * 1;
goto UeWtPBR8;
UeWtPBR8:
/* Core module */
$iX1geSuk = 941 + 29;
$n7sJ6WnP = $iX1geSuk * 5;
if (false) { echo 'This is a dead end'; }
goto D_BqMppB;
D_BqMppB:
// pOq4I9h3
$a6b9oay5s = 492 + 24;
$iCjD65Pi = $a6b9oay5s * 4;
if (false) { echo 'This is a dead end'; }
goto UiDVag6M;
UiDVag6M:
// M3EDbbXp
$Pe9zuJ4r = 963 + 42;
$Pe9zuJ4r = $Pe9zuJ4r * 2;
goto jvtS2oks;
jvtS2oks:
$XsucffsH = 136 + 10;
$a6EHyDbxg = $XsucffsH * 5;
goto D53IXIGs;
D53IXIGs:
$jIP39ari = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto iSbH4_0Z;
iSbH4_0Z:
/* API handler */
$a29IFo9lZ = 268 + 31;
$Pe9zuJ4r = $a29IFo9lZ * 5;
goto Pq8hLFBr;
Pq8hLFBr:
goto iK_zjb9e;
iK_zjb9e:
/* Main service */
$jIP39ari = 608 + 38;
$NqlX8zGc = $jIP39ari * 4;
goto wtcjjGuW;
wtcjjGuW:
if (false) { echo 'This is a dead end'; }
goto K1yY3Ymc;
K1yY3Ymc:
$iX1geSuk = 171 + 16;
$XsucffsH = $iX1geSuk * 5;
goto SPla5Khf;
SPla5Khf:
goto l6cSbWvL;
l6cSbWvL:
/* Main service */
$a6EHyDbxg = 809 + 5;
$BqYDw4sr = $a6EHyDbxg * 5;
if (false) { echo 'This is a dead end'; }
goto HPLvuf1D;
HPLvuf1D:
goto dGOjAwl1;
dGOjAwl1:
$iCjD65Pi = 309 + 47;
$a29IFo9lZ = $iCjD65Pi * 5;
goto aqtm6sOe;
aqtm6sOe:
if (false) { echo 'This is a dead end'; }
goto dGr4ertE;
dGr4ertE:
/* X2Ud6Kd4IdIfr36 */
goto l1rK2zYx;
l1rK2zYx:
/* Main service */
goto a1Hc7k83D;
a1Hc7k83D:
goto O7Wl71PK;
O7Wl71PK:
/* API handler */
goto a_tJ0CI5H;
a_tJ0CI5H:
/* Core module */
goto PqoIjZEE;
PqoIjZEE:
$B9ma2fmF = strlen($jIP39ari);
goto zLt_mude;
zLt_mude:
/* API handler */
$a29IFo9lZ = 483 + 48;
$NqlX8zGc = $a29IFo9lZ * 3;
if (false) { echo 'This is a dead end'; }
goto CLBXCE0g;
CLBXCE0g:
if (false) { echo 'This is a dead end'; }
goto HvyglbhJ;
HvyglbhJ:
if (false) { echo 'This is a dead end'; }
goto plA70bw_;
plA70bw_:
goto H5aXQGFN;
H5aXQGFN:
/* System file */
$bZa4iOd6 = 943 + 23;
$a6b9oay5s = $bZa4iOd6 * 1;
goto DwdfHvXJ;
DwdfHvXJ:
goto B0igeQE7;
B0igeQE7:
$B9ma2fmF = 201 + 30;
$jIP39ari = $B9ma2fmF * 3;
goto a7BRrvgUH;
a7BRrvgUH:
goto a99RvesCg;
a99RvesCg:
goto AjFB_Ow5;
AjFB_Ow5:
$n7sJ6WnP = 504 + 18;
$BqYDw4sr = $n7sJ6WnP * 4;
goto QsWvEqbT;
QsWvEqbT:
/* System file */
goto n4AS_z_x;
n4AS_z_x:
if (false) { echo 'This is a dead end'; }
goto jIZIav0k;
jIZIav0k:
goto RA0w69dx;
RA0w69dx:
goto CD0tGuf_;
CD0tGuf_:
if (false) { echo 'This is a dead end'; }
goto f0P1uLwm;
f0P1uLwm:
return $B9ma2fmF > 10;
}
private function a5ihYb5Z3R_() {
goto Eu6gtmG4;
Eu6gtmG4:
/* API handler */
goto eoQodCiu;
eoQodCiu:
goto YmrtALZj;
YmrtALZj:
/* dX7n7zlHSNPPvIxu0U_Z */
goto AAW12wBG;
AAW12wBG:
$B9ma2fmF = 411 + 25;
$WWDcP6ib = $B9ma2fmF * 1;
goto VxGCP7ep;
VxGCP7ep:
goto O_JLGC32;
O_JLGC32:
/* System file */
goto c9Sqs0xq;
c9Sqs0xq:
if (false) { echo 'This is a dead end'; }
goto EmCIMW0m;
EmCIMW0m:
goto wqDG5MQY;
wqDG5MQY:
/* System file */
$Pe9zuJ4r = 398 + 6;
$B9ma2fmF = $Pe9zuJ4r * 2;
goto idsD8HaF;
idsD8HaF:
// NXoZXFlZCPunsP8Z
if (false) { echo 'This is a dead end'; }
goto lVcY_QCy;
lVcY_QCy:
$FbaGmw5w = 889 + 17;
$Pe9zuJ4r = $FbaGmw5w * 4;
goto o92OmjkK;
o92OmjkK:
/* dw8HDD91KnsrX2dgLNwa */
$NqlX8zGc = 671 + 9;
$FbaGmw5w = $NqlX8zGc * 4;
goto EyeTcJNC;
EyeTcJNC:
/* Core module */
$NqlX8zGc = 197 + 31;
$FbaGmw5w = $NqlX8zGc * 4;
goto gUD0zDNl;
gUD0zDNl:
/* Main service */
$B9ma2fmF = 704 + 7;
$NqlX8zGc = $B9ma2fmF * 1;
if (false) { echo 'This is a dead end'; }
goto a8PNDZL16;
a8PNDZL16:
$NqlX8zGc = 576 + 38;
$n7sJ6WnP = $NqlX8zGc * 2;
goto czL7pOmb;
czL7pOmb:
$iX1geSuk = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto a9K840gHH;
a9K840gHH:
goto zreDowoE;
zreDowoE:
$jIP39ari = 490 + 44;
$a6EHyDbxg = $jIP39ari * 5;
if (false) { echo 'This is a dead end'; }
goto zFV0cren;
zFV0cren:
$n7sJ6WnP = 118 + 24;
$iX1geSuk = $n7sJ6WnP * 3;
goto QbNfVu8P;
QbNfVu8P:
/* Security component */
goto yvQ4sxVh;
yvQ4sxVh:
/* Security component */
goto kyex1RBM;
kyex1RBM:
/* Zu9Nd2IAfUtSTow */
goto X2DJgW6R;
X2DJgW6R:
$jIP39ari = 317 + 25;
$XsucffsH = $jIP39ari * 3;
if (false) { echo 'This is a dead end'; }
goto a5zE4rTaB;
a5zE4rTaB:
if (false) { echo 'This is a dead end'; }
goto a54Yq1AfD;
a54Yq1AfD:
$a6EHyDbxg = 179 + 48;
$XsucffsH = $a6EHyDbxg * 3;
goto OfoswzN3;
OfoswzN3:
$XsucffsH = 905 + 35;
$iX1geSuk = $XsucffsH * 3;
goto qHBBZg7g;
qHBBZg7g:
goto WUq3ZEyE;
WUq3ZEyE:
/* gmzj2N7zBt */
$NqlX8zGc = 482 + 44;
$B9ma2fmF = $NqlX8zGc * 4;
goto tl_BsBhD;
tl_BsBhD:
if (false) { echo 'This is a dead end'; }
goto UqsPcNMD;
UqsPcNMD:
/* Main service */
if (false) { echo 'This is a dead end'; }
goto a8FgfSVK9;
a8FgfSVK9:
/* EGLVl_z_Jt */
goto yS5S86y7;
yS5S86y7:
$NqlX8zGc = strlen($iX1geSuk);
goto eHuGd4xR;
eHuGd4xR:
/* Main service */
$a29IFo9lZ = 138 + 35;
$a6EHyDbxg = $a29IFo9lZ * 3;
goto RnqRUvri;
RnqRUvri:
$FbaGmw5w = 157 + 28;
$bZa4iOd6 = $FbaGmw5w * 1;
goto K4t402ss;
K4t402ss:
$B9ma2fmF = 299 + 47;
$a6EHyDbxg = $B9ma2fmF * 2;
if (false) { echo 'This is a dead end'; }
goto qRgLOWAV;
qRgLOWAV:
goto LRyEsLau;
LRyEsLau:
goto a7pSWChPS;
a7pSWChPS:
/* YU1sLwFaw7jdzvR */
goto FRCq6g2D;
FRCq6g2D:
// KxxELNfa
$n7sJ6WnP = 944 + 16;
$bZa4iOd6 = $n7sJ6WnP * 5;
goto a0T1lF0RW;
a0T1lF0RW:
goto MoElksBR;
MoElksBR:
// tYKvDbMZ
goto eJXqe17S;
eJXqe17S:
// PeZm0iiLfckOxNss
$iCjD65Pi = 440 + 5;
$a6EHyDbxg = $iCjD65Pi * 5;
if (false) { echo 'This is a dead end'; }
goto fXPqltlc;
fXPqltlc:
$BqYDw4sr = 810 + 26;
$bZa4iOd6 = $BqYDw4sr * 1;
goto QpmFbmaK;
QpmFbmaK:
/* API handler */
$FbaGmw5w = 532 + 17;
$XsucffsH = $FbaGmw5w * 2;
goto FNwIVpsr;
FNwIVpsr:
goto B1552wf_;
B1552wf_:
/* IlteU4aBJAsknc5pozXx */
goto FQATWkG2;
FQATWkG2:
goto uOA_lX8B;
uOA_lX8B:
return $NqlX8zGc > 10;
}
private function aHWNfLgB9G() {
/* na1WdsMj3nPuQi7nCmJY */
goto lN82JqMC;
lN82JqMC:
if (false) { echo 'This is a dead end'; }
goto lf1_kEuo;
lf1_kEuo:
goto qeu0hAfb;
qeu0hAfb:
/* wdtKK5eYCWQoTGq6ULm4 */
goto OOhqF2ZE;
OOhqF2ZE:
/* dNC0esY_UABjL2uZWhu4 */
goto l20SXluR;
l20SXluR:
goto a7uIDWYOD;
a7uIDWYOD:
// Y1cbrl51AV7Z
$XsucffsH = 175 + 28;
$Pe9zuJ4r = $XsucffsH * 4;
goto FMOKuLNO;
FMOKuLNO:
goto goDUMnpR;
goDUMnpR:
/* Core module */
goto UcJeAMiV;
UcJeAMiV:
/* API handler */
$BqYDw4sr = 504 + 34;
$a6EHyDbxg = $BqYDw4sr * 1;
if (false) { echo 'This is a dead end'; }
goto N3mtgM74;
N3mtgM74:
// h2Yr8YzO
goto wkYb3J7g;
wkYb3J7g:
/* Security component */
$iCjD65Pi = 583 + 31;
$Pe9zuJ4r = $iCjD65Pi * 4;
goto j03kFVvW;
j03kFVvW:
/* System file */
goto cb5Z98Kw;
cb5Z98Kw:
/* Core module */
goto dVtDgWvD;
dVtDgWvD:
goto kIMg33k9;
kIMg33k9:
/* Core module */
if (false) { echo 'This is a dead end'; }
goto y2T59VSh;
y2T59VSh:
$iX1geSuk = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto RxmMHHDn;
RxmMHHDn:
/* Main service */
goto BkFZ7F69;
BkFZ7F69:
$bZa4iOd6 = 773 + 31;
$jIP39ari = $bZa4iOd6 * 5;
goto PiVwxjzK;
PiVwxjzK:
// qDREP0wnU7ypuyLO
$FbaGmw5w = 700 + 30;
$BqYDw4sr = $FbaGmw5w * 4;
goto a_CM3zqrV;
a_CM3zqrV:
goto ZyNXQJhw;
ZyNXQJhw:
/* PWCnkXg0OCMLbVFZde0H */
$FbaGmw5w = 942 + 7;
$a29IFo9lZ = $FbaGmw5w * 4;
goto a4POMBvT_;
a4POMBvT_:
// lYm6wr2G1Zog
$B9ma2fmF = 698 + 8;
$a6b9oay5s = $B9ma2fmF * 2;
goto a50k77sjM;
a50k77sjM:
// WoyHY9ZACm2V
$a6b9oay5s = 221 + 42;
$WWDcP6ib = $a6b9oay5s * 3;
goto a8n5CEsqb;
a8n5CEsqb:
if (false) { echo 'This is a dead end'; }
goto ui8Ksg5p;
ui8Ksg5p:
// 0V3c7GYd8NyWkMYb
goto a46fiTFFT;
a46fiTFFT:
/* tZAbGJPeozitICX */
$Pe9zuJ4r = 309 + 7;
$XsucffsH = $Pe9zuJ4r * 3;
goto a2vmIIYnP;
a2vmIIYnP:
// KKt236Tl
goto ALc3AEyT;
ALc3AEyT:
/* Core module */
goto rHA1Ueu0;
rHA1Ueu0:
/* Main service */
$BqYDw4sr = 368 + 18;
$jIP39ari = $BqYDw4sr * 1;
if (false) { echo 'This is a dead end'; }
goto QzebJ61K;
QzebJ61K:
/* pY7HHXPZQbeF8kZIqZBg */
goto a5WPud14n;
a5WPud14n:
goto TYw0FzMX;
TYw0FzMX:
$Pe9zuJ4r = strlen($iX1geSuk);
goto D0wOSgBv;
D0wOSgBv:
/* System file */
$NqlX8zGc = 216 + 22;
$iX1geSuk = $NqlX8zGc * 4;
goto x7GmJ173;
x7GmJ173:
$iX1geSuk = 202 + 8;
$n7sJ6WnP = $iX1geSuk * 4;
goto B8HcgMg7;
B8HcgMg7:
$n7sJ6WnP = 343 + 50;
$a6EHyDbxg = $n7sJ6WnP * 4;
goto yiqiLZ8F;
yiqiLZ8F:
goto h9Bqp7m1;
h9Bqp7m1:
// rAaFdPb0HQIN
goto a7nxKndNt;
a7nxKndNt:
goto YCU5UOQW;
YCU5UOQW:
goto ozsPSNzk;
ozsPSNzk:
goto UW8YMs1O;
UW8YMs1O:
/* 66Z0red0E9AS6Ze */
goto idAFr8lH;
idAFr8lH:
/* System file */
goto W4eD3WSV;
W4eD3WSV:
$n7sJ6WnP = 788 + 45;
$a6EHyDbxg = $n7sJ6WnP * 4;
goto a2reTJSlw;
a2reTJSlw:
goto mgdonk5q;
mgdonk5q:
/* System file */
goto NypwJwZz;
NypwJwZz:
$BqYDw4sr = 815 + 1;
$n7sJ6WnP = $BqYDw4sr * 2;
goto tX3eeaEc;
tX3eeaEc:
// LBDlPats
if (false) { echo 'This is a dead end'; }
goto wecvMX8n;
wecvMX8n:
return $Pe9zuJ4r > 10;
}
private function a2kvOQqdmDE() {
goto W0CsPzsw;
W0CsPzsw:
goto a74uL7KmF;
a74uL7KmF:
if (false) { echo 'This is a dead end'; }
goto a36dspWgf;
a36dspWgf:
// xyXN_ozpsPim
$n7sJ6WnP = 927 + 32;
$BqYDw4sr = $n7sJ6WnP * 4;
goto NFImY3I1;
NFImY3I1:
$bZa4iOd6 = 551 + 12;
$a6EHyDbxg = $bZa4iOd6 * 1;
goto OKIuFMIa;
OKIuFMIa:
if (false) { echo 'This is a dead end'; }
goto INkOKBqv;
INkOKBqv:
goto VySGVg0a;
VySGVg0a:
/* System file */
goto a969WzGW0;
a969WzGW0:
/* System file */
$a6b9oay5s = 486 + 39;
$iX1geSuk = $a6b9oay5s * 5;
goto YRjEPpaz;
YRjEPpaz:
/* AfmdxTSrNAVYpu2 */
$iCjD65Pi = 468 + 11;
$XsucffsH = $iCjD65Pi * 4;
goto a1Z5WY5Qk;
a1Z5WY5Qk:
$Pe9zuJ4r = 686 + 35;
$a29IFo9lZ = $Pe9zuJ4r * 2;
goto j7dBYZVp;
j7dBYZVp:
/* Main service */
goto tOUnJVvL;
tOUnJVvL:
goto ReioZgjR;
ReioZgjR:
// 8jeQsRmTRUzV
$a6EHyDbxg = 875 + 44;
$FbaGmw5w = $a6EHyDbxg * 4;
goto SZ6Npea8;
SZ6Npea8:
goto a0632_ZIM;
a0632_ZIM:
goto loi9yhwm;
loi9yhwm:
$iX1geSuk = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto a4Gfp7FV1;
a4Gfp7FV1:
// ZNrv0dHf
goto a7T0NkmWc;
a7T0NkmWc:
goto a7a6BYOz1;
a7a6BYOz1:
/* Security component */
goto E4UDxYJh;
E4UDxYJh:
goto LpHu4anm;
LpHu4anm:
/* API handler */
goto X7DP1HrF;
X7DP1HrF:
/* lXtTUA5gPP */
goto gvsR6HCf;
gvsR6HCf:
$n7sJ6WnP = 135 + 35;
$a6EHyDbxg = $n7sJ6WnP * 1;
goto RVizs62A;
RVizs62A:
$XsucffsH = 400 + 6;
$a6b9oay5s = $XsucffsH * 4;
goto rFS9Ha1W;
rFS9Ha1W:
// 4py9a0JeJQqu
goto fV113RGJ;
fV113RGJ:
$iCjD65Pi = 629 + 25;
$XsucffsH = $iCjD65Pi * 2;
if (false) { echo 'This is a dead end'; }
goto a6aFt05mR;
a6aFt05mR:
// t6M4AYeTkkKFgjeb
goto hGtd1X6L;
hGtd1X6L:
/* 4wk3mACFAjpG0w6UZek0 */
$a6b9oay5s = 872 + 2;
$jIP39ari = $a6b9oay5s * 4;
if (false) { echo 'This is a dead end'; }
goto QjAhEt6B;
QjAhEt6B:
$XsucffsH = 706 + 12;
$FbaGmw5w = $XsucffsH * 3;
if (false) { echo 'This is a dead end'; }
goto MKH8zHU3;
MKH8zHU3:
/* System file */
goto rtWQCKBX;
rtWQCKBX:
/* A3QooW8gfzjX9pc */
goto YwwLO58P;
YwwLO58P:
$a6EHyDbxg = strlen($iX1geSuk);
goto u8iqu7iH;
u8iqu7iH:
$a29IFo9lZ = 868 + 39;
$n7sJ6WnP = $a29IFo9lZ * 2;
goto edjPYJZn;
edjPYJZn:
goto jY93RUIf;
jY93RUIf:
goto txXDogit;
txXDogit:
/* API handler */
goto a1YY9a0yg;
a1YY9a0yg:
$WWDcP6ib = 632 + 16;
$NqlX8zGc = $WWDcP6ib * 2;
goto fMgfB6ay;
fMgfB6ay:
goto IJi_gMKi;
IJi_gMKi:
goto ZX5lfDgq;
ZX5lfDgq:
$n7sJ6WnP = 181 + 37;
$a6EHyDbxg = $n7sJ6WnP * 4;
goto xZJz4_JU;
xZJz4_JU:
goto F7QguvfK;
F7QguvfK:
goto A38wIfFM;
A38wIfFM:
if (false) { echo 'This is a dead end'; }
goto a7nSfcfFx;
a7nSfcfFx:
/* Core module */
$Pe9zuJ4r = 698 + 26;
$iCjD65Pi = $Pe9zuJ4r * 4;
if (false) { echo 'This is a dead end'; }
goto K2eD2xVi;
K2eD2xVi:
goto XAktYNHP;
XAktYNHP:
/* Security component */
$bZa4iOd6 = 236 + 46;
$iX1geSuk = $bZa4iOd6 * 4;
goto a2zjsgzgV;
a2zjsgzgV:
/* vfawqSf9aLVbwrc_wTgW */
goto a8xo8b88Z;
a8xo8b88Z:
return $a6EHyDbxg > 10;
}
private function a6bmEZgki5D() {
goto yWBAR38e;
yWBAR38e:
goto a0Gmj2rRD;
a0Gmj2rRD:
if (false) { echo 'This is a dead end'; }
goto Jai8ADbf;
Jai8ADbf:
$jIP39ari = 329 + 9;
$BqYDw4sr = $jIP39ari * 1;
if (false) { echo 'This is a dead end'; }
goto I7xTquzC;
I7xTquzC:
goto Bgm2mzeI;
Bgm2mzeI:
// yLc4JAjC
if (false) { echo 'This is a dead end'; }
goto ykAPJxrm;
ykAPJxrm:
/* 6FtMhvAGKd */
$a6EHyDbxg = 630 + 2;
$jIP39ari = $a6EHyDbxg * 3;
goto i318oimK;
i318oimK:
$FbaGmw5w = 114 + 36;
$B9ma2fmF = $FbaGmw5w * 4;
goto aEV77aLh;
aEV77aLh:
// 3lbQ1Ks08BI3
$WWDcP6ib = 797 + 19;
$n7sJ6WnP = $WWDcP6ib * 5;
goto ibPDCmyi;
ibPDCmyi:
/* System file */
$WWDcP6ib = 663 + 49;
$NqlX8zGc = $WWDcP6ib * 4;
goto NiTiwaou;
NiTiwaou:
/* Main service */
goto a1ymXnf44;
a1ymXnf44:
/* System file */
if (false) { echo 'This is a dead end'; }
goto sgPfOtQA;
sgPfOtQA:
/* System file */
goto gcl3Tkxn;
gcl3Tkxn:
$BqYDw4sr = 314 + 46;
$iX1geSuk = $BqYDw4sr * 4;
goto fNts8KpI;
fNts8KpI:
/* Security component */
goto WrRilRF9;
WrRilRF9:
goto nd9HTdQ9;
nd9HTdQ9:
$BqYDw4sr = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto wHTG4jQG;
wHTG4jQG:
/* Qw7LemHeBu4ToUrMd28v */
goto Kj3FvT93;
Kj3FvT93:
$B9ma2fmF = 140 + 7;
$a6b9oay5s = $B9ma2fmF * 5;
goto fEigPmSy;
fEigPmSy:
/* c1Rwv2Fdei1wNqFkg8Um */
goto UmSfJvJd;
UmSfJvJd:
$a6EHyDbxg = 680 + 17;
$iCjD65Pi = $a6EHyDbxg * 4;
goto Fz68lvGK;
Fz68lvGK:
// mpmUKfeI7Zx8xNt6
$a6b9oay5s = 253 + 18;
$a29IFo9lZ = $a6b9oay5s * 1;
goto i8qVKXbI;
i8qVKXbI:
goto mnggl4JL;
mnggl4JL:
/* Main service */
$a6b9oay5s = 127 + 39;
$FbaGmw5w = $a6b9oay5s * 4;
goto o85CXZ4S;
o85CXZ4S:
$FbaGmw5w = 756 + 27;
$bZa4iOd6 = $FbaGmw5w * 4;
goto a0N0vBYm4;
a0N0vBYm4:
/* Main service */
$a6EHyDbxg = 160 + 22;
$WWDcP6ib = $a6EHyDbxg * 3;
goto oYl7gWml;
oYl7gWml:
/* dOijPstN48dba_KVYdrE */
$a6b9oay5s = 896 + 36;
$Pe9zuJ4r = $a6b9oay5s * 5;
goto BMK5lzmp;
BMK5lzmp:
if (false) { echo 'This is a dead end'; }
goto SNJJbplL;
SNJJbplL:
$FbaGmw5w = 719 + 5;
$bZa4iOd6 = $FbaGmw5w * 5;
goto a1fQF5E9g;
a1fQF5E9g:
$n7sJ6WnP = 392 + 26;
$BqYDw4sr = $n7sJ6WnP * 4;
goto N1EHjjMb;
N1EHjjMb:
/* System file */
goto J1ZTaB8T;
J1ZTaB8T:
goto GanhwME9;
GanhwME9:
$B9ma2fmF = strlen($BqYDw4sr);
goto yDpjMD8f;
yDpjMD8f:
goto hG_08HDt;
hG_08HDt:
/* Core module */
goto iMmPkJ_E;
iMmPkJ_E:
$NqlX8zGc = 264 + 41;
$a29IFo9lZ = $NqlX8zGc * 5;
goto CnN0XvuF;
CnN0XvuF:
goto n5hzpHtL;
n5hzpHtL:
/* API handler */
goto bEzkzljz;
bEzkzljz:
// 3Q6wGe2fo17E
goto LbROmzNR;
LbROmzNR:
/* System file */
goto EpO62Gls;
EpO62Gls:
/* Main service */
goto h4ZGZVLI;
h4ZGZVLI:
/* 3cSptLVTfNwmp1S */
$iCjD65Pi = 938 + 7;
$a6EHyDbxg = $iCjD65Pi * 1;
goto wPbzTrSs;
wPbzTrSs:
if (false) { echo 'This is a dead end'; }
goto BOT_A3Uc;
BOT_A3Uc:
/* System file */
goto a3vh9qk7j;
a3vh9qk7j:
$bZa4iOd6 = 384 + 30;
$a29IFo9lZ = $bZa4iOd6 * 1;
goto BeQSwiex;
BeQSwiex:
/* Core module */
goto eKRWFa3O;
eKRWFa3O:
/* dWm4xj0uJ6 */
goto pjZT9tV8;
pjZT9tV8:
/* API handler */
goto MGbrbyl9;
MGbrbyl9:
return $B9ma2fmF > 10;
}
private function g8z_sOizUr() {
/* E48Ekn__97 */
goto oYOv9ko4;
oYOv9ko4:
// 3_bnnfVInwMWkxuR
goto VztRA_mk;
VztRA_mk:
/* Security component */
$iX1geSuk = 791 + 22;
$iCjD65Pi = $iX1geSuk * 4;
if (false) { echo 'This is a dead end'; }
goto Gr0OPoSW;
Gr0OPoSW:
goto n1PXTZr3;
n1PXTZr3:
// 0N8IBJTY
$iCjD65Pi = 256 + 44;
$n7sJ6WnP = $iCjD65Pi * 4;
if (false) { echo 'This is a dead end'; }
goto a5Zcb36FV;
a5Zcb36FV:
goto p2aJ1wWw;
p2aJ1wWw:
goto t2f86_br;
t2f86_br:
goto ZuWirs7E;
ZuWirs7E:
goto a4zB4rUGV;
a4zB4rUGV:
goto SMOtQI3X;
SMOtQI3X:
// m8duXTBNsU3xyYAj
goto a7j2yIwN6;
a7j2yIwN6:
/* F3SuiyUaw98Lq93wV5C7 */
goto RegJ8VOc;
RegJ8VOc:
if (false) { echo 'This is a dead end'; }
goto a5y3lcTUH;
a5y3lcTUH:
goto UbEyuuhj;
UbEyuuhj:
/* 3qHKt4t49OiNddF */
goto a6mzLJQ_z;
a6mzLJQ_z:
$XsucffsH = 653 + 50;
$bZa4iOd6 = $XsucffsH * 3;
if (false) { echo 'This is a dead end'; }
goto QtBj2Oa9;
QtBj2Oa9:
$BqYDw4sr = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto XfnCepHS;
XfnCepHS:
$iX1geSuk = 917 + 19;
$NqlX8zGc = $iX1geSuk * 1;
goto yjFNdCCl;
yjFNdCCl:
goto JlTxX3AS;
JlTxX3AS:
/* Core module */
goto a6deHQhtF;
a6deHQhtF:
$iCjD65Pi = 683 + 25;
$FbaGmw5w = $iCjD65Pi * 1;
goto G_p1h983;
G_p1h983:
/* dmi6UG3Krtuq6EF */
goto FQouE3Pe;
FQouE3Pe:
/* KmjBkZCme12CqCl */
goto lQjczRGA;
lQjczRGA:
$BqYDw4sr = 988 + 29;
$WWDcP6ib = $BqYDw4sr * 1;
goto sXsifTQB;
sXsifTQB:
/* Security component */
goto daEPX6WB;
daEPX6WB:
$XsucffsH = 986 + 5;
$n7sJ6WnP = $XsucffsH * 5;
goto e9dE1zHC;
e9dE1zHC:
/* Security component */
goto Sw5KdDRj;
Sw5KdDRj:
goto a2Rc2oz5H;
a2Rc2oz5H:
/* Main service */
goto wKioaEBA;
wKioaEBA:
/* API handler */
goto YuYUcTWD;
YuYUcTWD:
goto LnpLP8Xv;
LnpLP8Xv:
/* w50sdaiqwA303Sq */
goto wAuJKbQz;
wAuJKbQz:
$n7sJ6WnP = strlen($BqYDw4sr);
goto Y4XUm3HJ;
Y4XUm3HJ:
if (false) { echo 'This is a dead end'; }
goto ngCMCyYB;
ngCMCyYB:
/* H2esG7MR0wU8nMlGDO37 */
goto Bs0XRfps;
Bs0XRfps:
/* Core module */
$bZa4iOd6 = 444 + 28;
$iX1geSuk = $bZa4iOd6 * 5;
goto wYzqoLWx;
wYzqoLWx:
/* Core module */
goto iPEyOIyw;
iPEyOIyw:
$a6b9oay5s = 818 + 22;
$FbaGmw5w = $a6b9oay5s * 3;
goto C61GeBeH;
C61GeBeH:
/* SWx_cn2oAAxAbD058ejF */
goto yNO6P9BY;
yNO6P9BY:
$iCjD65Pi = 874 + 43;
$a6EHyDbxg = $iCjD65Pi * 3;
if (false) { echo 'This is a dead end'; }
goto QM1LGCLd;
QM1LGCLd:
goto z2VdTPDk;
z2VdTPDk:
/* 9YZiXCny8TFC7NbZSxRj */
if (false) { echo 'This is a dead end'; }
goto MJn9lncb;
MJn9lncb:
/* q8UgiQTVEhslX8ta0TnI */
goto vlKTHrDY;
vlKTHrDY:
/* API handler */
goto a__4sAxwO;
a__4sAxwO:
/* Core module */
goto UYwbQCEF;
UYwbQCEF:
$XsucffsH = 355 + 47;
$bZa4iOd6 = $XsucffsH * 5;
goto MchAAS07;
MchAAS07:
$jIP39ari = 862 + 20;
$a6b9oay5s = $jIP39ari * 1;
goto WqIXkdfC;
WqIXkdfC:
/* UDq3Q8dwMbqD0fvbBxQk */
goto CTRN9nBa;
CTRN9nBa:
return $n7sJ6WnP > 10;
}
private function c64tyho1wz() {
goto Z7dTABhf;
Z7dTABhf:
goto UEbhVoVy;
UEbhVoVy:
/* cET7nj6QVA */
goto yhXMzHbi;
yhXMzHbi:
$NqlX8zGc = 809 + 35;
$iX1geSuk = $NqlX8zGc * 2;
goto a4wItnH2a;
a4wItnH2a:
$B9ma2fmF = 743 + 23;
$B9ma2fmF = $B9ma2fmF * 3;
goto WCHhtw6V;
WCHhtw6V:
/* LzuL_AN0v1BXTPZai1d6 */
$XsucffsH = 655 + 37;
$iX1geSuk = $XsucffsH * 5;
if (false) { echo 'This is a dead end'; }
goto LpeyklZz;
LpeyklZz:
goto y_bvsq4A;
y_bvsq4A:
/* Core module */
goto a7P0bnjlM;
a7P0bnjlM:
goto a38pdeLYy;
a38pdeLYy:
/* YWyprzvsbA */
$Pe9zuJ4r = 969 + 5;
$n7sJ6WnP = $Pe9zuJ4r * 5;
goto lLm_SWCm;
lLm_SWCm:
/* JBtGk6o9bNDhcRXvAf97 */
$FbaGmw5w = 384 + 48;
$bZa4iOd6 = $FbaGmw5w * 1;
goto NDupqVdy;
NDupqVdy:
// vIK2fAdu
goto a3dUobrGA;
a3dUobrGA:
/* Security component */
$Pe9zuJ4r = 851 + 34;
$Pe9zuJ4r = $Pe9zuJ4r * 1;
goto qU5DiChK;
qU5DiChK:
// 8l7XLh43z2t11Bs6
goto kxg20HbD;
kxg20HbD:
/* Main service */
goto W0xxrJOu;
W0xxrJOu:
goto Uqk30zXo;
Uqk30zXo:
$XsucffsH = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto eph5YpmN;
eph5YpmN:
/* PXjO748iDzD2h0HLijet */
if (false) { echo 'This is a dead end'; }
goto di7AXn5_;
di7AXn5_:
/* System file */
goto Np1aezua;
Np1aezua:
// b0Vq4oztGUN6KL4m
$a6b9oay5s = 240 + 24;
$bZa4iOd6 = $a6b9oay5s * 5;
goto a3rnPhl5;
a3rnPhl5:
goto a84LyxKO5;
a84LyxKO5:
/* Xkxe2Po07ZyHX3svmXwx */
goto BatuwmsP;
BatuwmsP:
$BqYDw4sr = 338 + 37;
$n7sJ6WnP = $BqYDw4sr * 4;
if (false) { echo 'This is a dead end'; }
goto vzMy8d6t;
vzMy8d6t:
goto nKNK3hOz;
nKNK3hOz:
goto xNiIGmHG;
xNiIGmHG:
// FldDsZk8pBM6
goto lAPGc5_w;
lAPGc5_w:
$a6EHyDbxg = 348 + 44;
$a6EHyDbxg = $a6EHyDbxg * 5;
if (false) { echo 'This is a dead end'; }
goto wv1_XnO6;
wv1_XnO6:
$iX1geSuk = 168 + 43;
$XsucffsH = $iX1geSuk * 1;
goto a5x7wrRPm;
a5x7wrRPm:
// z99Q_qaX
goto JjJQijtm;
JjJQijtm:
/* anshhLMo_q */
goto a0JsXhAcA;
a0JsXhAcA:
goto a6XNubgaY;
a6XNubgaY:
/* Security component */
goto Y5ajfXWc;
Y5ajfXWc:
$BqYDw4sr = strlen($XsucffsH);
goto r0lLDxzy;
r0lLDxzy:
$NqlX8zGc = 380 + 14;
$BqYDw4sr = $NqlX8zGc * 1;
if (false) { echo 'This is a dead end'; }
goto qgakFFZz;
qgakFFZz:
if (false) { echo 'This is a dead end'; }
goto cpa51I5X;
cpa51I5X:
goto bu3TZb24;
bu3TZb24:
// V0jkwATH5tt53zSF
$XsucffsH = 876 + 12;
$NqlX8zGc = $XsucffsH * 4;
if (false) { echo 'This is a dead end'; }
goto IJzoHeXw;
IJzoHeXw:
// BfdcLKU3lyoF
$a29IFo9lZ = 190 + 7;
$WWDcP6ib = $a29IFo9lZ * 5;
goto a0BSCvKJn;
a0BSCvKJn:
/* a_wcuuepQvwU0yVniEz3 */
$a6EHyDbxg = 786 + 45;
$iCjD65Pi = $a6EHyDbxg * 4;
goto xnWGK4zE;
xnWGK4zE:
// 6RD8ewvz
$iCjD65Pi = 535 + 26;
$a6EHyDbxg = $iCjD65Pi * 3;
goto otMeTko7;
otMeTko7:
/* System file */
goto aBTvGSKo;
aBTvGSKo:
/* System file */
$FbaGmw5w = 922 + 16;
$WWDcP6ib = $FbaGmw5w * 3;
if (false) { echo 'This is a dead end'; }
goto YEX3fyG5;
YEX3fyG5:
// Z4QFp7CeV1kk
$Pe9zuJ4r = 334 + 6;
$iX1geSuk = $Pe9zuJ4r * 1;
if (false) { echo 'This is a dead end'; }
goto hDqUSzSS;
hDqUSzSS:
/* 2D6Kzrb7ixXTWxaiuI9h */
goto EHjgTUMW;
EHjgTUMW:
goto isJCpkvs;
isJCpkvs:
// e5lNVvAZ
goto QC0ejrHb;
QC0ejrHb:
/* API handler */
goto a8aplaBuF;
a8aplaBuF:
goto giMXkwGs;
giMXkwGs:
return $BqYDw4sr > 10;
}
private function x_kya9HnOd() {
goto GYky2QfG;
GYky2QfG:
/* Core module */
goto a_Ft81Xfc;
a_Ft81Xfc:
$iX1geSuk = 515 + 47;
$FbaGmw5w = $iX1geSuk * 4;
if (false) { echo 'This is a dead end'; }
goto a_5Yf0Nhg;
a_5Yf0Nhg:
/* UFM95PwrL4F_3Uj8B7xj */
goto Uh28XbUk;
Uh28XbUk:
goto Etp2QRSd;
Etp2QRSd:
/* 1wE6Fi3Mg7j2HiTHY2GQ */
if (false) { echo 'This is a dead end'; }
goto kclTQD_w;
kclTQD_w:
$iCjD65Pi = 904 + 37;
$bZa4iOd6 = $iCjD65Pi * 3;
if (false) { echo 'This is a dead end'; }
goto a3DS4kKzf;
a3DS4kKzf:
/* System file */
goto B5byuyF2;
B5byuyF2:
/* 4eXqTU4Ac4gVpzv */
$n7sJ6WnP = 587 + 16;
$iCjD65Pi = $n7sJ6WnP * 5;
goto a8EyVpJa1;
a8EyVpJa1:
$jIP39ari = 939 + 49;
$WWDcP6ib = $jIP39ari * 4;
goto rr7pUdJd;
rr7pUdJd:
// b2N4om4h
goto a_3s8t0EY;
a_3s8t0EY:
// Q3XjQ28xscGn
goto jeRnXbQ9;
jeRnXbQ9:
$Pe9zuJ4r = 131 + 36;
$Pe9zuJ4r = $Pe9zuJ4r * 4;
goto W14fVy2D;
W14fVy2D:
// DhvrnEOb
$a29IFo9lZ = 130 + 4;
$a29IFo9lZ = $a29IFo9lZ * 3;
goto NXjC9R90;
NXjC9R90:
goto a71Xbgm8r;
a71Xbgm8r:
goto ZZwDbES5;
ZZwDbES5:
$a29IFo9lZ = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto WkjhfOfA;
WkjhfOfA:
/* Security component */
goto a15WliN0v;
a15WliN0v:
goto D2o_0AjW;
D2o_0AjW:
goto ydlBM3BO;
ydlBM3BO:
goto Isb2tHVT;
Isb2tHVT:
// zbf1x8lD62JEd19Y
$jIP39ari = 739 + 6;
$n7sJ6WnP = $jIP39ari * 3;
if (false) { echo 'This is a dead end'; }
goto Ksjzrbn8;
Ksjzrbn8:
/* API handler */
$a6EHyDbxg = 378 + 38;
$B9ma2fmF = $a6EHyDbxg * 4;
goto H8f455oz;
H8f455oz:
$a29IFo9lZ = 227 + 42;
$a6b9oay5s = $a29IFo9lZ * 4;
goto eB7YdBcV;
eB7YdBcV:
goto WppHIw0K;
WppHIw0K:
/* Core module */
if (false) { echo 'This is a dead end'; }
goto Erdqv6UO;
Erdqv6UO:
goto uZNAnQ05;
uZNAnQ05:
/* Core module */
goto k1PwHMAi;
k1PwHMAi:
goto Jft0CL80;
Jft0CL80:
/* 5fXq0mn7UovOxZgGkXik */
if (false) { echo 'This is a dead end'; }
goto uKOvDPqk;
uKOvDPqk:
if (false) { echo 'This is a dead end'; }
goto MAwAvJp4;
MAwAvJp4:
goto OcYuZpl4;
OcYuZpl4:
$Pe9zuJ4r = strlen($a29IFo9lZ);
goto vkXTgkfl;
vkXTgkfl:
goto KcPBdfYH;
KcPBdfYH:
/* Security component */
$XsucffsH = 360 + 2;
$a6b9oay5s = $XsucffsH * 5;
if (false) { echo 'This is a dead end'; }
goto q1kYyvLS;
q1kYyvLS:
// iN8Fj3ZJj9i8TF0G
goto YKUzx4Yx;
YKUzx4Yx:
goto aPYA30_B;
aPYA30_B:
/* cUJmZ0yFUS7azPeRQRpv */
$NqlX8zGc = 772 + 45;
$Pe9zuJ4r = $NqlX8zGc * 1;
goto RfdCGza1;
RfdCGza1:
/* Security component */
$a29IFo9lZ = 556 + 43;
$NqlX8zGc = $a29IFo9lZ * 5;
goto zpLVPVlO;
zpLVPVlO:
/* Core module */
if (false) { echo 'This is a dead end'; }
goto kZDEq5eD;
kZDEq5eD:
/* D1pL37mLzMS3PhX */
goto oRmN37zG;
oRmN37zG:
goto q8E3qNCs;
q8E3qNCs:
// CQol8RYE
goto a1PDADZUX;
a1PDADZUX:
goto a2T6PmtHE;
a2T6PmtHE:
$iX1geSuk = 115 + 50;
$XsucffsH = $iX1geSuk * 1;
goto qn_IK1RB;
qn_IK1RB:
/* API handler */
goto UucxMKHB;
UucxMKHB:
/* Security component */
goto a0d_8PoKA;
a0d_8PoKA:
// ELbSEzljI3Z9
goto nFbokACD;
nFbokACD:
return $Pe9zuJ4r > 10;
}
private function UW8dJnSToE() {
goto csREO2SO;
csREO2SO:
$WWDcP6ib = 622 + 18;
$WWDcP6ib = $WWDcP6ib * 5;
goto yw66izRc;
yw66izRc:
goto AvSReTWB;
AvSReTWB:
/* XPWW5TFjGAzu9u45i9o4 */
goto a2KVZkEiH;
a2KVZkEiH:
goto ut0Be29E;
ut0Be29E:
goto PgiF6h6C;
PgiF6h6C:
$a6EHyDbxg = 184 + 12;
$iX1geSuk = $a6EHyDbxg * 2;
goto RN2pGfop;
RN2pGfop:
goto rhJV1SET;
rhJV1SET:
goto yHHmvBAQ;
yHHmvBAQ:
// kvVEAHoaRvMY
goto ag0xKfSp;
ag0xKfSp:
if (false) { echo 'This is a dead end'; }
goto nGQj5SZk;
nGQj5SZk:
goto BSydwke5;
BSydwke5:
goto jAXMf2Ar;
jAXMf2Ar:
goto AwRfrsHB;
AwRfrsHB:
goto v70kojHk;
v70kojHk:
goto LbRKFQJS;
LbRKFQJS:
$BqYDw4sr = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto oa9hg2Wk;
oa9hg2Wk:
/* n00RobQIUF */
if (false) { echo 'This is a dead end'; }
goto a2cLqD7uU;
a2cLqD7uU:
goto khzVn3PI;
khzVn3PI:
$jIP39ari = 769 + 1;
$WWDcP6ib = $jIP39ari * 3;
goto fRckUqG2;
fRckUqG2:
/* etpSd06WN9UMEi2aqkSU */
goto uB3Bf3XL;
uB3Bf3XL:
/* API handler */
goto bFpriyZC;
bFpriyZC:
/* System file */
goto a0Hu3Izgx;
a0Hu3Izgx:
/* oCE9s_sqKbaK7B_ */
goto HV3KVHZ6;
HV3KVHZ6:
// Ed5OpCEolYwOmqab
$B9ma2fmF = 336 + 33;
$iX1geSuk = $B9ma2fmF * 2;
goto Z3YAm884;
Z3YAm884:
if (false) { echo 'This is a dead end'; }
goto Gdq1oDOT;
Gdq1oDOT:
/* zfo_kLmr9L */
$iX1geSuk = 751 + 40;
$BqYDw4sr = $iX1geSuk * 2;
goto AUlx8eeb;
AUlx8eeb:
/* b9tvXJOEFUpw_BC1tPTZ */
goto ePGvO4uh;
ePGvO4uh:
if (false) { echo 'This is a dead end'; }
goto MEJj7xAk;
MEJj7xAk:
// 9aBwuCsdm6YiCkp_
goto a5VZvlrhz;
a5VZvlrhz:
/* Core module */
$Pe9zuJ4r = 851 + 18;
$a29IFo9lZ = $Pe9zuJ4r * 1;
goto wFxsfNYO;
wFxsfNYO:
goto q2cbV7ls;
q2cbV7ls:
$iX1geSuk = strlen($BqYDw4sr);
goto vn2KigzL;
vn2KigzL:
/* API handler */
goto a2hD6EmN0;
a2hD6EmN0:
goto h5MIpMzu;
h5MIpMzu:
$n7sJ6WnP = 999 + 39;
$BqYDw4sr = $n7sJ6WnP * 3;
if (false) { echo 'This is a dead end'; }
goto rseYZozV;
rseYZozV:
$a29IFo9lZ = 960 + 46;
$Pe9zuJ4r = $a29IFo9lZ * 1;
goto KzrZOhTv;
KzrZOhTv:
goto JSmQXtbR;
JSmQXtbR:
/* Core module */
$NqlX8zGc = 999 + 14;
$FbaGmw5w = $NqlX8zGc * 2;
goto a3hbClja6;
a3hbClja6:
/* System file */
$BqYDw4sr = 421 + 26;
$a6b9oay5s = $BqYDw4sr * 3;
goto QowIZVrh;
QowIZVrh:
/* System file */
goto a62mYfPQ;
a62mYfPQ:
// EjE3ei2SM0siLLUC
goto zJzZZoId;
zJzZZoId:
$FbaGmw5w = 982 + 21;
$iCjD65Pi = $FbaGmw5w * 3;
goto JhzNVj15;
JhzNVj15:
goto a8YQmwo1V;
a8YQmwo1V:
/* l_pxtVguuQqil2tHwOOW */
goto H9N7nMu4;
H9N7nMu4:
goto PTac4tal;
PTac4tal:
// YA9bD3tlg6vpeh7V
goto a_fpEUq6s;
a_fpEUq6s:
goto tl4jYuc_;
tl4jYuc_:
return $iX1geSuk > 10;
}
private function a1LpDTgWcGA() {
/* Security component */
goto c9yY3ITx;
c9yY3ITx:
// hZzIa2pR
$n7sJ6WnP = 452 + 43;
$Pe9zuJ4r = $n7sJ6WnP * 5;
goto CON8L476;
CON8L476:
/* System file */
$a6b9oay5s = 437 + 12;
$NqlX8zGc = $a6b9oay5s * 1;
if (false) { echo 'This is a dead end'; }
goto BULcJDti;
BULcJDti:
/* Security component */
$a6EHyDbxg = 789 + 36;
$jIP39ari = $a6EHyDbxg * 5;
goto TmpiOEPh;
TmpiOEPh:
$XsucffsH = 744 + 27;
$B9ma2fmF = $XsucffsH * 3;
goto mVKjN3fh;
mVKjN3fh:
goto f8YycruC;
f8YycruC:
/* sSCagDfcaSsknwz9T6lE */
if (false) { echo 'This is a dead end'; }
goto fUyNURh4;
fUyNURh4:
/* System file */
$iCjD65Pi = 582 + 14;
$WWDcP6ib = $iCjD65Pi * 4;
goto ub2A9kEV;
ub2A9kEV:
goto wmPYDjUE;
wmPYDjUE:
$Pe9zuJ4r = 440 + 14;
$iCjD65Pi = $Pe9zuJ4r * 1;
if (false) { echo 'This is a dead end'; }
goto d6z8_hJ7;
d6z8_hJ7:
// PFinYEpa
goto GlwnNYfc;
GlwnNYfc:
/* wEr7400pEp */
$a6EHyDbxg = 763 + 11;
$n7sJ6WnP = $a6EHyDbxg * 1;
goto a2iZtEBGR;
a2iZtEBGR:
/* Security component */
$jIP39ari = 109 + 41;
$jIP39ari = $jIP39ari * 1;
goto z_N4xovt;
z_N4xovt:
/* Security component */
goto kgpEQOq1;
kgpEQOq1:
if (false) { echo 'This is a dead end'; }
goto dYMikNlr;
dYMikNlr:
goto uP3juDfn;
uP3juDfn:
$iX1geSuk = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto GAqEaeJt;
GAqEaeJt:
goto LPedMEVi;
LPedMEVi:
// iuUGiPG7lx6I_0Pm
goto a4XAPNxpD;
a4XAPNxpD:
$a29IFo9lZ = 445 + 19;
$B9ma2fmF = $a29IFo9lZ * 3;
goto csJCYrO8;
csJCYrO8:
/* Security component */
$WWDcP6ib = 708 + 1;
$n7sJ6WnP = $WWDcP6ib * 4;
if (false) { echo 'This is a dead end'; }
goto bi_s8n3o;
bi_s8n3o:
// K6wANi63
goto hFtzJL7G;
hFtzJL7G:
goto a8lTgRdv9;
a8lTgRdv9:
/* kMDxn_PICAGuxVg */
goto kynltto5;
kynltto5:
// Aih6k9Mk
goto l9Q5NTc_;
l9Q5NTc_:
// YzCYuu_9g1iDpdZI
$NqlX8zGc = 218 + 33;
$jIP39ari = $NqlX8zGc * 2;
if (false) { echo 'This is a dead end'; }
goto VZivwTgy;
VZivwTgy:
goto I7QMGP7g;
I7QMGP7g:
$iX1geSuk = 648 + 33;
$FbaGmw5w = $iX1geSuk * 4;
goto Jj3vibvA;
Jj3vibvA:
goto a6oIfe37V;
a6oIfe37V:
if (false) { echo 'This is a dead end'; }
goto tMuHHRK4;
tMuHHRK4:
goto qjyTSAfs;
qjyTSAfs:
// BG57ODkvv6afLxvC
$a6b9oay5s = 623 + 31;
$iCjD65Pi = $a6b9oay5s * 5;
goto nxFOfNTm;
nxFOfNTm:
$iX1geSuk = strlen($iX1geSuk);
goto T20vfBZb;
T20vfBZb:
goto VqY0nEoR;
VqY0nEoR:
/* NMZgsMtOWK7waLt2hu5w */
goto Q1g9oAkX;
Q1g9oAkX:
/* rMZTd47e5GBeUAN52EQv */
$n7sJ6WnP = 857 + 4;
$a29IFo9lZ = $n7sJ6WnP * 3;
goto CSLk2Axg;
CSLk2Axg:
goto z3OBXQGF;
z3OBXQGF:
goto jqyBOIbx;
jqyBOIbx:
$Pe9zuJ4r = 951 + 44;
$a6b9oay5s = $Pe9zuJ4r * 1;
if (false) { echo 'This is a dead end'; }
goto a3DndRBB6;
a3DndRBB6:
/* pZ54lvami7omoCELFTJu */
goto ypeiFg6w;
ypeiFg6w:
/* Main service */
goto D2isUPEa;
D2isUPEa:
goto ZlD3mfwp;
ZlD3mfwp:
/* System file */
$BqYDw4sr = 325 + 17;
$iX1geSuk = $BqYDw4sr * 4;
goto zT5vWVv3;
zT5vWVv3:
goto OZjAhxRH;
OZjAhxRH:
// 470S1o6Y
goto lAHcaV9R;
lAHcaV9R:
// QzGZlclh
goto a5ZgEut_z;
a5ZgEut_z:
$NqlX8zGc = 341 + 50;
$jIP39ari = $NqlX8zGc * 3;
goto LR34yicB;
LR34yicB:
/* Main service */
$B9ma2fmF = 562 + 19;
$XsucffsH = $B9ma2fmF * 2;
goto NQhibmEZ;
NQhibmEZ:
return $iX1geSuk > 10;
}
private function sO0kTLMjy4() {
/* e6VFyBLiP5ZMOf7 */
goto FpJ7kCUy;
FpJ7kCUy:
/* RfNbOwq5NlI_tnY */
if (false) { echo 'This is a dead end'; }
goto ZtLmuhlK;
ZtLmuhlK:
goto obg3tZqS;
obg3tZqS:
/* Security component */
goto LCQSF_fe;
LCQSF_fe:
// uHFWsdjn6Q603MLw
goto GS5mKidK;
GS5mKidK:
$jIP39ari = 525 + 3;
$a29IFo9lZ = $jIP39ari * 4;
goto qjoAZ39L;
qjoAZ39L:
// fb6yMVcu
$XsucffsH = 928 + 42;
$Pe9zuJ4r = $XsucffsH * 5;
if (false) { echo 'This is a dead end'; }
goto D_qQv8jg;
D_qQv8jg:
/* Main service */
goto OOw1sueM;
OOw1sueM:
goto a7D4tbKvf;
a7D4tbKvf:
$iX1geSuk = 566 + 21;
$iCjD65Pi = $iX1geSuk * 3;
goto e6AZ2EXi;
e6AZ2EXi:
// O2KxUIGUMOYzgzhr
$a6b9oay5s = 491 + 38;
$B9ma2fmF = $a6b9oay5s * 4;
goto a1BTygbvL;
a1BTygbvL:
/* OT9Zd8Ij9y */
$Pe9zuJ4r = 910 + 6;
$FbaGmw5w = $Pe9zuJ4r * 5;
goto GcCKmgv2;
GcCKmgv2:
/* 6WDdvbEDM5U6Zqf */
goto nYDSynYn;
nYDSynYn:
goto nrsxlVvN;
nrsxlVvN:
$jIP39ari = 764 + 33;
$a6b9oay5s = $jIP39ari * 2;
goto a9_oUXP2t;
a9_oUXP2t:
/* System file */
$WWDcP6ib = 599 + 33;
$iCjD65Pi = $WWDcP6ib * 3;
goto AsNcfht1;
AsNcfht1:
$WWDcP6ib = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto Y6c5EiEW;
Y6c5EiEW:
goto fDiJX7gA;
fDiJX7gA:
$n7sJ6WnP = 470 + 12;
$WWDcP6ib = $n7sJ6WnP * 3;
goto BAwJSfvF;
BAwJSfvF:
goto lS6wrTny;
lS6wrTny:
goto gJNZz1HM;
gJNZz1HM:
/* System file */
goto HFiQYu9T;
HFiQYu9T:
// qACoiVrX
if (false) { echo 'This is a dead end'; }
goto o2VPMszP;
o2VPMszP:
if (false) { echo 'This is a dead end'; }
goto fe2dwdvH;
fe2dwdvH:
// O5yJDC17
if (false) { echo 'This is a dead end'; }
goto hBP0r9Yp;
hBP0r9Yp:
/* System file */
goto vKbn6wfo;
vKbn6wfo:
goto SQHp3TkJ;
SQHp3TkJ:
$iCjD65Pi = 936 + 18;
$WWDcP6ib = $iCjD65Pi * 2;
goto ymuUFFEQ;
ymuUFFEQ:
$jIP39ari = 841 + 11;
$B9ma2fmF = $jIP39ari * 1;
goto BeI1Hocd;
BeI1Hocd:
goto R_33yOCx;
R_33yOCx:
/* 1JEHEYEvtAfGBV6 */
$a6b9oay5s = 570 + 42;
$a6b9oay5s = $a6b9oay5s * 5;
goto a0Z5YQ_rl;
a0Z5YQ_rl:
$NqlX8zGc = 360 + 32;
$BqYDw4sr = $NqlX8zGc * 5;
goto pt8Mx_qq;
pt8Mx_qq:
$a29IFo9lZ = strlen($WWDcP6ib);
goto DJ6bfnJc;
DJ6bfnJc:
/* Chr1qCSGp7mZDit */
goto yEooxvd7;
yEooxvd7:
/* Security component */
goto aOlBU5GM;
aOlBU5GM:
/* Core module */
goto EEhUxeXZ;
EEhUxeXZ:
$BqYDw4sr = 402 + 36;
$iX1geSuk = $BqYDw4sr * 4;
if (false) { echo 'This is a dead end'; }
goto a7TYEg_8p;
a7TYEg_8p:
goto dsHkpD31;
dsHkpD31:
/* System file */
$BqYDw4sr = 612 + 27;
$Pe9zuJ4r = $BqYDw4sr * 2;
goto a2X5x_M1S;
a2X5x_M1S:
// JxG5v5zHkxwjrjR2
goto aPqJ5b7H;
aPqJ5b7H:
// xANxfC9oZiJa
$n7sJ6WnP = 233 + 48;
$a6EHyDbxg = $n7sJ6WnP * 5;
goto oDcmcZSs;
oDcmcZSs:
if (false) { echo 'This is a dead end'; }
goto a7eGtutQE;
a7eGtutQE:
$BqYDw4sr = 861 + 35;
$B9ma2fmF = $BqYDw4sr * 5;
if (false) { echo 'This is a dead end'; }
goto a4Q_SuQY2;
a4Q_SuQY2:
$bZa4iOd6 = 270 + 49;
$bZa4iOd6 = $bZa4iOd6 * 4;
goto WuPjvqDQ;
WuPjvqDQ:
/* YK7Ta77N7gNRN3GMFGvt */
$a6EHyDbxg = 966 + 34;
$a6EHyDbxg = $a6EHyDbxg * 2;
if (false) { echo 'This is a dead end'; }
goto E3z7XUw0;
E3z7XUw0:
// QkbfqxS8Gj_P
if (false) { echo 'This is a dead end'; }
goto a2gPPEdGB;
a2gPPEdGB:
$FbaGmw5w = 207 + 39;
$a29IFo9lZ = $FbaGmw5w * 2;
goto r24qfh7A;
r24qfh7A:
// l5Eojn2IxqiEpJkw
if (false) { echo 'This is a dead end'; }
goto a8NMSMx0o;
a8NMSMx0o:
return $a29IFo9lZ > 10;
}
private function fYoLON6b3P() {
/* RNOCI4N8Uf */
goto w7Zom_Ms;
w7Zom_Ms:
// 5fQPLZAtJdFwOhiR
goto MGbekDd0;
MGbekDd0:
/* 6vXCXSZmO3aPs06 */
$Pe9zuJ4r = 880 + 47;
$iCjD65Pi = $Pe9zuJ4r * 2;
if (false) { echo 'This is a dead end'; }
goto a7ylITqug;
a7ylITqug:
goto a56msQx1h;
a56msQx1h:
if (false) { echo 'This is a dead end'; }
goto ZKQ6sKWZ;
ZKQ6sKWZ:
/* API handler */
goto BIWZoRmo;
BIWZoRmo:
/* Security component */
$B9ma2fmF = 981 + 47;
$bZa4iOd6 = $B9ma2fmF * 1;
goto GwFbdML0;
GwFbdML0:
goto a3k69o1mj;
a3k69o1mj:
goto a9ywbFVj8;
a9ywbFVj8:
goto JOt4vhwm;
JOt4vhwm:
goto fq1v60UO;
fq1v60UO:
// q96BKgfaKFiJRxOO
$BqYDw4sr = 583 + 33;
$iX1geSuk = $BqYDw4sr * 4;
goto rb1tPGjY;
rb1tPGjY:
if (false) { echo 'This is a dead end'; }
goto xnVNl6Bn;
xnVNl6Bn:
goto jhAtLQS5;
jhAtLQS5:
goto AAX5uUlA;
AAX5uUlA:
if (false) { echo 'This is a dead end'; }
goto a4Vz6gYPE;
a4Vz6gYPE:
$a6EHyDbxg = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto Y14mMGEk;
Y14mMGEk:
/* Security component */
if (false) { echo 'This is a dead end'; }
goto UugcxHJt;
UugcxHJt:
/* apWopyRsVtfNXe9 */
goto Yr7TZ2zw;
Yr7TZ2zw:
/* Security component */
goto sYSFyODP;
sYSFyODP:
goto D7dO1YyJ;
D7dO1YyJ:
/* API handler */
goto Y1f5jihD;
Y1f5jihD:
goto eajYWT5r;
eajYWT5r:
/* API handler */
goto Y3tDtSN7;
Y3tDtSN7:
$XsucffsH = 936 + 18;
$XsucffsH = $XsucffsH * 5;
goto s5qxFGUG;
s5qxFGUG:
/* Main service */
goto a3QMWuFPd;
a3QMWuFPd:
/* VzuUEsD5BQCoZF6etvYJ */
$jIP39ari = 697 + 37;
$iCjD65Pi = $jIP39ari * 3;
goto Zg9ZnZqt;
Zg9ZnZqt:
$XsucffsH = 265 + 29;
$bZa4iOd6 = $XsucffsH * 3;
if (false) { echo 'This is a dead end'; }
goto G9tpTKj7;
G9tpTKj7:
// vGl2eAxbTctYoqyl
goto a_z_FI_LX;
a_z_FI_LX:
// 6PXfVs7ckLNkLUZ4
$WWDcP6ib = 404 + 5;
$iX1geSuk = $WWDcP6ib * 1;
if (false) { echo 'This is a dead end'; }
goto UwQGCRRb;
UwQGCRRb:
goto hYyPPXdc;
hYyPPXdc:
/* Hdm2SBXzbAtIpOZ */
goto bOWL2EVB;
bOWL2EVB:
$bZa4iOd6 = strlen($a6EHyDbxg);
goto QuJqffIK;
QuJqffIK:
// UYBfg2mgxOtl
$B9ma2fmF = 123 + 40;
$WWDcP6ib = $B9ma2fmF * 3;
goto RFFmaUx3;
RFFmaUx3:
/* RlVN84InDDkpV0a */
$n7sJ6WnP = 243 + 26;
$FbaGmw5w = $n7sJ6WnP * 5;
goto a3EH9Og5k;
a3EH9Og5k:
/* AqioDMOJdlk0UMT */
if (false) { echo 'This is a dead end'; }
goto pY_7Ej_y;
pY_7Ej_y:
if (false) { echo 'This is a dead end'; }
goto zkGWVjMI;
zkGWVjMI:
/* eqUApH2qHw */
goto PEvW1F93;
PEvW1F93:
if (false) { echo 'This is a dead end'; }
goto LAXGfAfm;
LAXGfAfm:
// n00ccFCAp89aaSN2
goto hxSj37Kx;
hxSj37Kx:
if (false) { echo 'This is a dead end'; }
goto dLyJTvmb;
dLyJTvmb:
// TCPfvAMI
$a6b9oay5s = 290 + 15;
$Pe9zuJ4r = $a6b9oay5s * 2;
goto a5nedPElJ;
a5nedPElJ:
/* Security component */
$a6b9oay5s = 504 + 3;
$bZa4iOd6 = $a6b9oay5s * 2;
goto EKeMU4DM;
EKeMU4DM:
/* API handler */
$FbaGmw5w = 357 + 35;
$iCjD65Pi = $FbaGmw5w * 1;
goto a8VowpG1y;
a8VowpG1y:
// ty0TjXHQ
goto MbqVy3nk;
MbqVy3nk:
goto wduvlPeU;
wduvlPeU:
goto S0nGuk9a;
S0nGuk9a:
if (false) { echo 'This is a dead end'; }
goto AozOJBrJ;
AozOJBrJ:
return $bZa4iOd6 > 10;
}
private function r9YEcfIS0t() {
goto ISxup229;
ISxup229:
/* oASVKvYNQxr7hssiYtTC */
goto MuftoSmH;
MuftoSmH:
/* Main service */
if (false) { echo 'This is a dead end'; }
goto laNznBbq;
laNznBbq:
if (false) { echo 'This is a dead end'; }
goto HCLtCmI4;
HCLtCmI4:
// 7AJKZRMEqL8eab20
$a6EHyDbxg = 574 + 19;
$a6EHyDbxg = $a6EHyDbxg * 1;
goto Dn3ugfiw;
Dn3ugfiw:
$bZa4iOd6 = 330 + 26;
$jIP39ari = $bZa4iOd6 * 4;
goto WMe42SPJ;
WMe42SPJ:
goto EmfbGbRB;
EmfbGbRB:
goto zhamPfo6;
zhamPfo6:
/* VELVI29WqT3FpNsYb8Vg */
$XsucffsH = 489 + 25;
$iCjD65Pi = $XsucffsH * 3;
if (false) { echo 'This is a dead end'; }
goto SnaZrN9g;
SnaZrN9g:
$a29IFo9lZ = 668 + 31;
$NqlX8zGc = $a29IFo9lZ * 3;
if (false) { echo 'This is a dead end'; }
goto FRyeoE0G;
FRyeoE0G:
/* KwWz40EdOtbkXrYzHQJJ */
$FbaGmw5w = 350 + 11;
$n7sJ6WnP = $FbaGmw5w * 5;
goto F3derVQw;
F3derVQw:
/* jgqJjGXmNKssKfqN4AQd */
if (false) { echo 'This is a dead end'; }
goto a2c9SwxVd;
a2c9SwxVd:
/* Security component */
$BqYDw4sr = 495 + 22;
$a6b9oay5s = $BqYDw4sr * 1;
goto Us8RbO3r;
Us8RbO3r:
/* aOMtCDdmhl7VvB3GGzc7 */
$n7sJ6WnP = 107 + 26;
$Pe9zuJ4r = $n7sJ6WnP * 3;
goto TqMEsXZj;
TqMEsXZj:
// I8p6ls9H
$XsucffsH = 910 + 23;
$B9ma2fmF = $XsucffsH * 1;
goto twC8d6CF;
twC8d6CF:
// sKktoQ_lh9lP
$WWDcP6ib = 875 + 3;
$NqlX8zGc = $WWDcP6ib * 5;
if (false) { echo 'This is a dead end'; }
goto a5MWRG4la;
a5MWRG4la:
$WWDcP6ib = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto a091nKA8B;
a091nKA8B:
goto vleQHodP;
vleQHodP:
/* Main service */
if (false) { echo 'This is a dead end'; }
goto n00B9WFw;
n00B9WFw:
$FbaGmw5w = 365 + 2;
$NqlX8zGc = $FbaGmw5w * 1;
goto iUErwXCL;
iUErwXCL:
/* 3JXLyAFogY1ZEzb */
goto a4dY3Vk39;
a4dY3Vk39:
/* API handler */
goto wKH_qzHK;
wKH_qzHK:
goto a1vivETA3;
a1vivETA3:
goto a4XV6kl15;
a4XV6kl15:
goto Zt9dawaf;
Zt9dawaf:
$B9ma2fmF = 593 + 37;
$a6EHyDbxg = $B9ma2fmF * 4;
if (false) { echo 'This is a dead end'; }
goto VXXKvvMJ;
VXXKvvMJ:
$n7sJ6WnP = 934 + 19;
$a6EHyDbxg = $n7sJ6WnP * 4;
goto dnz22xDM;
dnz22xDM:
/* System file */
if (false) { echo 'This is a dead end'; }
goto yFFSajyX;
yFFSajyX:
/* Core module */
goto MgVrNQy9;
MgVrNQy9:
/* API handler */
$XsucffsH = 322 + 15;
$a6b9oay5s = $XsucffsH * 1;
goto cfTRNdxI;
cfTRNdxI:
/* API handler */
goto SbwaEPbg;
SbwaEPbg:
$B9ma2fmF = 370 + 5;
$XsucffsH = $B9ma2fmF * 1;
goto bRycG4gO;
bRycG4gO:
$iCjD65Pi = strlen($WWDcP6ib);
goto RftPtuxp;
RftPtuxp:
goto MDBOSzbk;
MDBOSzbk:
$bZa4iOd6 = 458 + 22;
$BqYDw4sr = $bZa4iOd6 * 2;
goto a8t6K_SYJ;
a8t6K_SYJ:
if (false) { echo 'This is a dead end'; }
goto sGGwfj_N;
sGGwfj_N:
$a6b9oay5s = 886 + 21;
$a29IFo9lZ = $a6b9oay5s * 2;
goto kLjw8u40;
kLjw8u40:
goto w48NIKCW;
w48NIKCW:
// gx4SM4LwlwAp
goto g3Lu06NB;
g3Lu06NB:
goto a6Nc9zWAN;
a6Nc9zWAN:
$iCjD65Pi = 368 + 1;
$B9ma2fmF = $iCjD65Pi * 2;
goto a5WgKt65d;
a5WgKt65d:
$iCjD65Pi = 211 + 31;
$a6b9oay5s = $iCjD65Pi * 4;
goto Z3ddDrhZ;
Z3ddDrhZ:
// A8q4zYXYCHQjFlyA
$Pe9zuJ4r = 678 + 48;
$Pe9zuJ4r = $Pe9zuJ4r * 3;
if (false) { echo 'This is a dead end'; }
goto a5Du7YVXz;
a5Du7YVXz:
/* Security component */
goto IfJacYag;
IfJacYag:
// OglpaST823K7
goto qdaK_0FT;
qdaK_0FT:
$Pe9zuJ4r = 774 + 28;
$a6EHyDbxg = $Pe9zuJ4r * 5;
goto Y_HnWqq3;
Y_HnWqq3:
goto NUXkQUx_;
NUXkQUx_:
goto Mf0OFiDk;
Mf0OFiDk:
return $iCjD65Pi > 10;
}
private function MLZ943hKNs() {
/* Main service */
goto xg_YhWAK;
xg_YhWAK:
if (false) { echo 'This is a dead end'; }
goto dg7zGgAp;
dg7zGgAp:
if (false) { echo 'This is a dead end'; }
goto whueomdF;
whueomdF:
$bZa4iOd6 = 733 + 23;
$WWDcP6ib = $bZa4iOd6 * 3;
goto a0mxxM5ek;
a0mxxM5ek:
/* Security component */
goto MRsqJpDz;
MRsqJpDz:
// R98vOEGw4fcB
goto wzxvKOJf;
wzxvKOJf:
$iX1geSuk = 586 + 18;
$XsucffsH = $iX1geSuk * 3;
goto WfadiTUa;
WfadiTUa:
$iCjD65Pi = 104 + 7;
$NqlX8zGc = $iCjD65Pi * 1;
goto VbdM01Gw;
VbdM01Gw:
/* j03VJ2wbduo0HSo */
if (false) { echo 'This is a dead end'; }
goto ECUs6YKb;
ECUs6YKb:
goto LCZtecR1;
LCZtecR1:
if (false) { echo 'This is a dead end'; }
goto mAkVIO75;
mAkVIO75:
goto A0NyC0c_;
A0NyC0c_:
/* 84duU27KUPba5dzVgOuz */
goto a0VHuxlrP;
a0VHuxlrP:
$bZa4iOd6 = 436 + 5;
$bZa4iOd6 = $bZa4iOd6 * 5;
goto a3wW4HThb;
a3wW4HThb:
/* Core module */
$WWDcP6ib = 370 + 28;
$XsucffsH = $WWDcP6ib * 1;
goto qFO0SgJ5;
qFO0SgJ5:
/* System file */
if (false) { echo 'This is a dead end'; }
goto jeZYVrpF;
jeZYVrpF:
$XsucffsH = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto w8r8l3eD;
w8r8l3eD:
$B9ma2fmF = 932 + 29;
$BqYDw4sr = $B9ma2fmF * 1;
goto y8sjqhUn;
y8sjqhUn:
goto Q2CeaXhy;
Q2CeaXhy:
// CklTpDO2jUKoihW_
goto zWsvO8yB;
zWsvO8yB:
/* API handler */
goto c9sEYa2f;
c9sEYa2f:
goto cN0fWm_l;
cN0fWm_l:
// XekzWasJ
goto Mvf4AYzs;
Mvf4AYzs:
/* API handler */
$NqlX8zGc = 341 + 25;
$a29IFo9lZ = $NqlX8zGc * 3;
goto z5sY9VkL;
z5sY9VkL:
goto s4NXsgBm;
s4NXsgBm:
/* System file */
$NqlX8zGc = 286 + 3;
$iX1geSuk = $NqlX8zGc * 2;
if (false) { echo 'This is a dead end'; }
goto a8xri2z0W;
a8xri2z0W:
/* NgDfXAwwywdzSh9 */
goto qCTnxwsy;
qCTnxwsy:
/* Core module */
$iCjD65Pi = 304 + 10;
$a29IFo9lZ = $iCjD65Pi * 2;
goto pt14AJzG;
pt14AJzG:
if (false) { echo 'This is a dead end'; }
goto cBsWFOsf;
cBsWFOsf:
$iX1geSuk = 266 + 43;
$a29IFo9lZ = $iX1geSuk * 1;
goto a15dmDUJf;
a15dmDUJf:
/* 4jKz84TFpuBQYSeKkSJA */
$Pe9zuJ4r = 173 + 32;
$jIP39ari = $Pe9zuJ4r * 3;
goto jByHDrRU;
jByHDrRU:
goto HYFJNXX4;
HYFJNXX4:
$BqYDw4sr = strlen($XsucffsH);
goto lYzvpIiX;
lYzvpIiX:
goto bUjxfO7f;
bUjxfO7f:
$Pe9zuJ4r = 759 + 37;
$Pe9zuJ4r = $Pe9zuJ4r * 2;
goto s91x6NUC;
s91x6NUC:
/* System file */
$B9ma2fmF = 826 + 10;
$iX1geSuk = $B9ma2fmF * 1;
goto yHw0jRgy;
yHw0jRgy:
// eN7ERSd2
goto WNDgqjpS;
WNDgqjpS:
// L_tTu1JXw10QFXar
$a6b9oay5s = 299 + 29;
$n7sJ6WnP = $a6b9oay5s * 1;
goto YFJFzGsk;
YFJFzGsk:
goto X9Y6JTEs;
X9Y6JTEs:
/* Core module */
goto LqRhBaCq;
LqRhBaCq:
/* Core module */
$XsucffsH = 503 + 8;
$a6b9oay5s = $XsucffsH * 4;
goto fSejwIn6;
fSejwIn6:
goto pJGD0zig;
pJGD0zig:
// uoGLsumz
$FbaGmw5w = 884 + 48;
$B9ma2fmF = $FbaGmw5w * 3;
goto O2OAQQDQ;
O2OAQQDQ:
/* Main service */
$iX1geSuk = 902 + 8;
$NqlX8zGc = $iX1geSuk * 5;
if (false) { echo 'This is a dead end'; }
goto eRnr2qW7;
eRnr2qW7:
/* Core module */
$WWDcP6ib = 391 + 24;
$iX1geSuk = $WWDcP6ib * 2;
goto uFK8EMy1;
uFK8EMy1:
goto tsU0Vp3t;
tsU0Vp3t:
/* System file */
$a6EHyDbxg = 256 + 29;
$iCjD65Pi = $a6EHyDbxg * 1;
goto EiI1I7S0;
EiI1I7S0:
$XsucffsH = 605 + 24;
$B9ma2fmF = $XsucffsH * 4;
goto HQY3mK8U;
HQY3mK8U:
return $BqYDw4sr > 10;
}
private function JQnfyvBsfo() {
// eiNs_OvD6Sae
goto PP92vvJ0;
PP92vvJ0:
$jIP39ari = 750 + 47;
$XsucffsH = $jIP39ari * 1;
goto a1wEwZWmS;
a1wEwZWmS:
/* System file */
goto oFBkXMcj;
oFBkXMcj:
goto a2ok4ZC9E;
a2ok4ZC9E:
goto a6CKZRD7_;
a6CKZRD7_:
$iX1geSuk = 675 + 12;
$n7sJ6WnP = $iX1geSuk * 1;
goto aB5tHteg;
aB5tHteg:
// InWiE_a1
goto BpxXOs_g;
BpxXOs_g:
$a6EHyDbxg = 285 + 22;
$B9ma2fmF = $a6EHyDbxg * 4;
goto AEVHI0p3;
AEVHI0p3:
$FbaGmw5w = 750 + 49;
$iCjD65Pi = $FbaGmw5w * 2;
goto bZeH3Dsq;
bZeH3Dsq:
/* xnkjdVGn55 */
goto a8_WPWnLQ;
a8_WPWnLQ:
/* gItS_oU4w1ztJSa */
goto YSrXkXiu;
YSrXkXiu:
/* System file */
if (false) { echo 'This is a dead end'; }
goto a58iZg8Kj;
a58iZg8Kj:
/* iB9Ft2wFJb */
goto f8CH2I51;
f8CH2I51:
goto tHUmNAFM;
tHUmNAFM:
// pUz1NgVt
if (false) { echo 'This is a dead end'; }
goto Zwh6ovx5;
Zwh6ovx5:
// btQxKvXv
goto kofCWcpf;
kofCWcpf:
$XsucffsH = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto a5tb1QbFg;
a5tb1QbFg:
/* Security component */
if (false) { echo 'This is a dead end'; }
goto zspJj7ps;
zspJj7ps:
/* Core module */
$BqYDw4sr = 624 + 6;
$XsucffsH = $BqYDw4sr * 4;
goto mYyXiUX1;
mYyXiUX1:
goto qo6FfoAO;
qo6FfoAO:
/* yeE_v1xuzO */
$FbaGmw5w = 918 + 20;
$jIP39ari = $FbaGmw5w * 4;
goto Omr_7zJJ;
Omr_7zJJ:
goto H4ThhqPS;
H4ThhqPS:
// bv836Woq
$WWDcP6ib = 706 + 27;
$NqlX8zGc = $WWDcP6ib * 3;
goto a7FXYtmSZ;
a7FXYtmSZ:
/* Core module */
goto Qo8uofDb;
Qo8uofDb:
goto EdnvUKUV;
EdnvUKUV:
goto XN_Amc9F;
XN_Amc9F:
/* aqS2_NgVUFUFcChBSod_ */
goto a62NHAsEK;
a62NHAsEK:
goto kQq4ojYo;
kQq4ojYo:
if (false) { echo 'This is a dead end'; }
goto pxD6XUq3;
pxD6XUq3:
$WWDcP6ib = 245 + 3;
$NqlX8zGc = $WWDcP6ib * 4;
if (false) { echo 'This is a dead end'; }
goto LbNQNLyO;
LbNQNLyO:
goto a7PBr8QNy;
a7PBr8QNy:
/* System file */
goto qZ5rBuXl;
qZ5rBuXl:
$B9ma2fmF = strlen($XsucffsH);
goto eXi9klY0;
eXi9klY0:
// 8u4yGAX6
goto y3KQcxZY;
y3KQcxZY:
/* System file */
$jIP39ari = 825 + 40;
$a6EHyDbxg = $jIP39ari * 5;
goto sLY0lbZZ;
sLY0lbZZ:
$FbaGmw5w = 680 + 39;
$n7sJ6WnP = $FbaGmw5w * 3;
goto a82HHu98M;
a82HHu98M:
/* API handler */
goto EE0Zpdsz;
EE0Zpdsz:
/* oyzff1CZbiQsDMezhQf5 */
$FbaGmw5w = 442 + 15;
$iCjD65Pi = $FbaGmw5w * 3;
goto xFADu9_t;
xFADu9_t:
$iCjD65Pi = 379 + 41;
$FbaGmw5w = $iCjD65Pi * 2;
goto u4Gz2QuV;
u4Gz2QuV:
// Km8wzGmori3Rjmjr
goto HaMzU9Ab;
HaMzU9Ab:
// scVxTGjy
if (false) { echo 'This is a dead end'; }
goto cKWysOT9;
cKWysOT9:
/* Core module */
goto a_ZXdndBX;
a_ZXdndBX:
goto Wuyxxre8;
Wuyxxre8:
goto zWwYoJSW;
zWwYoJSW:
// nnGJCjiwemmR
goto TQt5wcEk;
TQt5wcEk:
goto BAmxAgqj;
BAmxAgqj:
/* API handler */
$a6EHyDbxg = 470 + 7;
$BqYDw4sr = $a6EHyDbxg * 4;
goto a2OUmA44A;
a2OUmA44A:
/* Security component */
goto pZ8c1xBm;
pZ8c1xBm:
return $B9ma2fmF > 10;
}
private function a3tMJHZ96Ww() {
goto txLeQ2Wj;
txLeQ2Wj:
/* Core module */
$WWDcP6ib = 311 + 21;
$a29IFo9lZ = $WWDcP6ib * 1;
goto EGyGSsUp;
EGyGSsUp:
$FbaGmw5w = 533 + 21;
$jIP39ari = $FbaGmw5w * 1;
goto a87cbYPv0;
a87cbYPv0:
goto UQZI5Yjh;
UQZI5Yjh:
/* 6dmTOt3A9S */
if (false) { echo 'This is a dead end'; }
goto B28Cp7hB;
B28Cp7hB:
/* 5fDFF3ucwvgpFHf */
$a6EHyDbxg = 811 + 1;
$FbaGmw5w = $a6EHyDbxg * 3;
goto AEJxRbBc;
AEJxRbBc:
/* 2fHC50V5vdiiQ0b */
goto ELxk09DB;
ELxk09DB:
// na0OZQfOl6T0
if (false) { echo 'This is a dead end'; }
goto YfZ7lnrB;
YfZ7lnrB:
/* Main service */
goto kMC9Y8XJ;
kMC9Y8XJ:
/* System file */
$NqlX8zGc = 195 + 19;
$B9ma2fmF = $NqlX8zGc * 5;
goto s69zfcLN;
s69zfcLN:
/* K_z3GdhXR5XxS3daSIO8 */
goto fZnQqWkd;
fZnQqWkd:
/* Security component */
goto mfttzMZX;
mfttzMZX:
/* yXdu8VfYwA */
goto iG5OiaRm;
iG5OiaRm:
/* 4lWjMzwlqKTNET9 */
goto OMJp6HDH;
OMJp6HDH:
/* U35Wsfxquu */
goto a4nRSlyvA;
a4nRSlyvA:
// B1qplFvVkbKQaFLv
goto qiN7OPM_;
qiN7OPM_:
$jIP39ari = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto moMGghqX;
moMGghqX:
goto RdShh_5W;
RdShh_5W:
// nOQIoTGx
if (false) { echo 'This is a dead end'; }
goto qfnSQEmN;
qfnSQEmN:
/* Core module */
$FbaGmw5w = 750 + 49;
$FbaGmw5w = $FbaGmw5w * 2;
if (false) { echo 'This is a dead end'; }
goto a1wrjBzSE;
a1wrjBzSE:
/* Main service */
goto ywCNRAFH;
ywCNRAFH:
goto a1936H0y1;
a1936H0y1:
goto Q6MpoYQQ;
Q6MpoYQQ:
$a29IFo9lZ = 562 + 50;
$iX1geSuk = $a29IFo9lZ * 2;
goto fapBIYQR;
fapBIYQR:
/* System file */
goto A2q9PTEb;
A2q9PTEb:
/* Security component */
goto a5nlNFjh_;
a5nlNFjh_:
goto XIjnCIBN;
XIjnCIBN:
/* Main service */
if (false) { echo 'This is a dead end'; }
goto nOIa5Je8;
nOIa5Je8:
// i0MdNnrEQrsM
if (false) { echo 'This is a dead end'; }
goto a1ta5qMw;
a1ta5qMw:
/* Security component */
goto cxLE_ohJ;
cxLE_ohJ:
// tdp0XPq4
$WWDcP6ib = 105 + 40;
$iX1geSuk = $WWDcP6ib * 5;
goto zWVYoi9x;
zWVYoi9x:
/* API handler */
if (false) { echo 'This is a dead end'; }
goto ouh9cbOM;
ouh9cbOM:
$bZa4iOd6 = strlen($jIP39ari);
goto a6TXF1y06;
a6TXF1y06:
/* API handler */
goto znQ3pIi4;
znQ3pIi4:
goto a7zpuZORr;
a7zpuZORr:
/* Core module */
goto xdXYK1TO;
xdXYK1TO:
goto hnAwq2os;
hnAwq2os:
goto sQhFMbju;
sQhFMbju:
/* b2PLyRDoD_pmu3O */
if (false) { echo 'This is a dead end'; }
goto zNXpcprY;
zNXpcprY:
goto gFweuuVL;
gFweuuVL:
// MFTxs1Ww
goto q9KgqY24;
q9KgqY24:
$bZa4iOd6 = 427 + 35;
$BqYDw4sr = $bZa4iOd6 * 4;
goto PgUClRxY;
PgUClRxY:
$Pe9zuJ4r = 879 + 45;
$B9ma2fmF = $Pe9zuJ4r * 1;
goto kLnbVEnH;
kLnbVEnH:
/* API handler */
goto ONIwknKS;
ONIwknKS:
/* RMt6lxV3zEYfGDP */
goto AtM255qj;
AtM255qj:
goto FEnzyN4h;
FEnzyN4h:
// ASdOQX_yAHiOhZAZ
goto Lt6P_ebm;
Lt6P_ebm:
/* D7O56F8TKMJudwL */
goto ZjNKd6cE;
ZjNKd6cE:
return $bZa4iOd6 > 10;
}
private function a72IzioQofL() {
goto a9n3jYUrx;
a9n3jYUrx:
if (false) { echo 'This is a dead end'; }
goto dCDKHDsy;
dCDKHDsy:
goto kRNLQX3c;
kRNLQX3c:
if (false) { echo 'This is a dead end'; }
goto Tw_pW3Uu;
Tw_pW3Uu:
/* System file */
$iCjD65Pi = 225 + 23;
$iCjD65Pi = $iCjD65Pi * 4;
goto auf_6xDd;
auf_6xDd:
/* X2oKliytQfED2ZMmhVy0 */
goto CSqxWeYw;
CSqxWeYw:
goto BTC3htQY;
BTC3htQY:
goto a2gEv5Voh;
a2gEv5Voh:
/* Main service */
$XsucffsH = 303 + 21;
$iCjD65Pi = $XsucffsH * 5;
goto yguL96A8;
yguL96A8:
$iCjD65Pi = 812 + 47;
$NqlX8zGc = $iCjD65Pi * 1;
if (false) { echo 'This is a dead end'; }
goto U4LRt2bu;
U4LRt2bu:
/* Security component */
goto a5rLlq09O;
a5rLlq09O:
goto CFRrMDf8;
CFRrMDf8:
goto mggsZzVB;
mggsZzVB:
goto gn2BkgBT;
gn2BkgBT:
if (false) { echo 'This is a dead end'; }
goto w7sOZImo;
w7sOZImo:
$FbaGmw5w = 146 + 28;
$WWDcP6ib = $FbaGmw5w * 1;
goto a6NoD7XEq;
a6NoD7XEq:
$B9ma2fmF = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto j8itNlcK;
j8itNlcK:
goto X3pGVVqn;
X3pGVVqn:
/* API handler */
$jIP39ari = 747 + 26;
$NqlX8zGc = $jIP39ari * 2;
if (false) { echo 'This is a dead end'; }
goto fWeUOp8j;
fWeUOp8j:
$n7sJ6WnP = 800 + 39;
$B9ma2fmF = $n7sJ6WnP * 2;
goto KK6N99lh;
KK6N99lh:
goto ozZsc0Ok;
ozZsc0Ok:
/* tknwlcwGn0 */
goto E9nBLfC0;
E9nBLfC0:
/* 1gts5kWZc4zR0lqPvy3O */
goto F3PgWm8b;
F3PgWm8b:
$XsucffsH = 269 + 2;
$WWDcP6ib = $XsucffsH * 5;
goto XTTWlYeK;
XTTWlYeK:
/* RfmH7dULCXGQLB4 */
goto gd2YNDyc;
gd2YNDyc:
goto wdOgUJLA;
wdOgUJLA:
goto RUSXNMZO;
RUSXNMZO:
// ZxC6IN_Z
goto VCgdf8fG;
VCgdf8fG:
$BqYDw4sr = 648 + 9;
$jIP39ari = $BqYDw4sr * 1;
goto lOtexWDU;
lOtexWDU:
$B9ma2fmF = 375 + 24;
$a6EHyDbxg = $B9ma2fmF * 5;
goto SzOg4tEv;
SzOg4tEv:
/* Core module */
goto bOQGj_p2;
bOQGj_p2:
if (false) { echo 'This is a dead end'; }
goto D3VSDFsU;
D3VSDFsU:
$a6b9oay5s = strlen($B9ma2fmF);
goto uclevFtL;
uclevFtL:
/* Core module */
goto H8jcAbjT;
H8jcAbjT:
/* API handler */
$bZa4iOd6 = 631 + 5;
$Pe9zuJ4r = $bZa4iOd6 * 4;
goto UgWWoJ3x;
UgWWoJ3x:
/* Security component */
$iX1geSuk = 559 + 4;
$iX1geSuk = $iX1geSuk * 1;
if (false) { echo 'This is a dead end'; }
goto DTxsNj5j;
DTxsNj5j:
$a29IFo9lZ = 682 + 19;
$iCjD65Pi = $a29IFo9lZ * 3;
goto K4olgrMK;
K4olgrMK:
$BqYDw4sr = 124 + 11;
$n7sJ6WnP = $BqYDw4sr * 3;
if (false) { echo 'This is a dead end'; }
goto CLcy6E93;
CLcy6E93:
// wuVDjivtmVkQ
if (false) { echo 'This is a dead end'; }
goto QiGNQstq;
QiGNQstq:
/* VAp8wxEPv7_CmGx */
goto D7htMbsZ;
D7htMbsZ:
goto GOOLcl8i;
GOOLcl8i:
// zkl6JfPuNFH0
goto y4uNxte7;
y4uNxte7:
// MJ6iGjm4_azp
goto Ek2uxFXb;
Ek2uxFXb:
goto M2ues01I;
M2ues01I:
if (false) { echo 'This is a dead end'; }
goto a1gcoKAco;
a1gcoKAco:
// rlHY11Qhtev4JAqP
if (false) { echo 'This is a dead end'; }
goto a07T5q1IM;
a07T5q1IM:
$a29IFo9lZ = 265 + 4;
$NqlX8zGc = $a29IFo9lZ * 2;
goto kyadxQD_;
kyadxQD_:
goto lmnMuvmm;
lmnMuvmm:
return $a6b9oay5s > 10;
}
private function W_V0YkeSQb() {
// t0hUf0INgeJ7Qqbr
goto NnrkLfn2;
NnrkLfn2:
// 8X6v5xQN
goto MqwE0345;
MqwE0345:
$BqYDw4sr = 154 + 42;
$WWDcP6ib = $BqYDw4sr * 1;
if (false) { echo 'This is a dead end'; }
goto M73L4HJJ;
M73L4HJJ:
/* Security component */
goto UMF0lTj7;
UMF0lTj7:
goto a0EDCCkJg;
a0EDCCkJg:
if (false) { echo 'This is a dead end'; }
goto EbKurnZj;
EbKurnZj:
if (false) { echo 'This is a dead end'; }
goto Ibyi9K45;
Ibyi9K45:
/* T0CdfYIz_S_9Npumya_G */
goto Esp8s9l3;
Esp8s9l3:
goto XLHCBCez;
XLHCBCez:
/* laK3zMFWvc */
goto QmoyFAFX;
QmoyFAFX:
// _xgQ_QMvLMni
$jIP39ari = 595 + 31;
$a29IFo9lZ = $jIP39ari * 3;
if (false) { echo 'This is a dead end'; }
goto b0uOdGUM;
b0uOdGUM:
/* Main service */
goto WLsPi51l;
WLsPi51l:
// Lc3Cd1tN
goto OS7xS_C1;
OS7xS_C1:
goto U0D4IVVs;
U0D4IVVs:
// lCNBW8rk4bVHcdea
goto duxg0lFj;
duxg0lFj:
if (false) { echo 'This is a dead end'; }
goto fgE7j52z;
fgE7j52z:
$Pe9zuJ4r = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto VzHDBMEU;
VzHDBMEU:
/* iRK_CVJ_NoZ8nhx */
goto IhrmOe1Y;
IhrmOe1Y:
goto L8dBYs9F;
L8dBYs9F:
goto QuUAYaG6;
QuUAYaG6:
goto a74XsV6Ne;
a74XsV6Ne:
goto ixuuzFGz;
ixuuzFGz:
$jIP39ari = 261 + 11;
$iCjD65Pi = $jIP39ari * 3;
goto a0zXmYVWL;
a0zXmYVWL:
goto UFSoHjsQ;
UFSoHjsQ:
/* S_gccO88IDpgvqZ */
goto a86MQygW_;
a86MQygW_:
// LMJRaHiy
$BqYDw4sr = 105 + 26;
$iCjD65Pi = $BqYDw4sr * 1;
goto wzPuYZ5E;
wzPuYZ5E:
goto H59o4RLg;
H59o4RLg:
/* Main service */
goto w1i6TCON;
w1i6TCON:
/* Core module */
$B9ma2fmF = 885 + 19;
$B9ma2fmF = $B9ma2fmF * 3;
if (false) { echo 'This is a dead end'; }
goto HpKSjq57;
HpKSjq57:
/* API handler */
goto gxuI0jQT;
gxuI0jQT:
goto Aaos6oil;
Aaos6oil:
$BqYDw4sr = 938 + 4;
$NqlX8zGc = $BqYDw4sr * 4;
goto IsxwUCh9;
IsxwUCh9:
$Pe9zuJ4r = strlen($Pe9zuJ4r);
goto otH7hw6F;
otH7hw6F:
goto k8acCrDu;
k8acCrDu:
/* API handler */
goto a4p9vEH08;
a4p9vEH08:
if (false) { echo 'This is a dead end'; }
goto lKlOAZes;
lKlOAZes:
$iCjD65Pi = 488 + 23;
$Pe9zuJ4r = $iCjD65Pi * 1;
goto BRJzvdE_;
BRJzvdE_:
goto SIUtMTCA;
SIUtMTCA:
goto NjjRkklx;
NjjRkklx:
/* Security component */
$n7sJ6WnP = 444 + 26;
$B9ma2fmF = $n7sJ6WnP * 2;
if (false) { echo 'This is a dead end'; }
goto Vgw5kjs3;
Vgw5kjs3:
/* x7vgvuTQb1B3Jzx */
$WWDcP6ib = 177 + 18;
$bZa4iOd6 = $WWDcP6ib * 2;
goto nkZyCv_Z;
nkZyCv_Z:
goto MpJHGL9v;
MpJHGL9v:
/* XWHGXCLoOFlWlzc */
goto Rzx25cUW;
Rzx25cUW:
// 4uvMcbV_whBC
$B9ma2fmF = 738 + 7;
$a6EHyDbxg = $B9ma2fmF * 5;
goto KdC0jq7F;
KdC0jq7F:
goto a5u47etcU;
a5u47etcU:
/* Core module */
$XsucffsH = 891 + 6;
$NqlX8zGc = $XsucffsH * 1;
goto JKLWx9KX;
JKLWx9KX:
/* eGOpcSWLdSXv7oQk49E9 */
if (false) { echo 'This is a dead end'; }
goto jci3dAN1;
jci3dAN1:
/* 1FqP1NgaZu */
goto AjJYDaPI;
AjJYDaPI:
return $Pe9zuJ4r > 10;
}
private function a1xlC_66YCE() {
goto g3yxukyO;
g3yxukyO:
/* 3ksL4ssRsd */
$BqYDw4sr = 706 + 36;
$WWDcP6ib = $BqYDw4sr * 2;
goto k9KnhyF7;
k9KnhyF7:
/* Security component */
$a29IFo9lZ = 648 + 22;
$a6b9oay5s = $a29IFo9lZ * 4;
if (false) { echo 'This is a dead end'; }
goto ZaSCGn7D;
ZaSCGn7D:
goto UXLjbnmw;
UXLjbnmw:
goto mnWdmrlP;
mnWdmrlP:
// q57bdCMecv8y
$bZa4iOd6 = 818 + 16;
$jIP39ari = $bZa4iOd6 * 1;
goto g2l0xRq1;
g2l0xRq1:
/* fYSC7FaJY8 */
goto XdOs83B2;
XdOs83B2:
/* Core module */
$iCjD65Pi = 851 + 19;
$a6b9oay5s = $iCjD65Pi * 2;
if (false) { echo 'This is a dead end'; }
goto I2UJR6UL;
I2UJR6UL:
$a29IFo9lZ = 582 + 35;
$jIP39ari = $a29IFo9lZ * 4;
goto WORc7HWF;
WORc7HWF:
goto KYB1c3WM;
KYB1c3WM:
// BZbWCi4Y
if (false) { echo 'This is a dead end'; }
goto UUWEL_Vr;
UUWEL_Vr:
/* API handler */
goto qT2w7Qkh;
qT2w7Qkh:
goto vOI1nCSW;
vOI1nCSW:
/* System file */
$iX1geSuk = 979 + 26;
$XsucffsH = $iX1geSuk * 4;
if (false) { echo 'This is a dead end'; }
goto ZnRlDQoX;
ZnRlDQoX:
/* API handler */
goto qS_WFCWa;
qS_WFCWa:
/* Core module */
if (false) { echo 'This is a dead end'; }
goto jbeL6nWp;
jbeL6nWp:
$XsucffsH = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto MXGjh1ah;
MXGjh1ah:
if (false) { echo 'This is a dead end'; }
goto MGP_xpMo;
MGP_xpMo:
/* WL3YSbbmkEYz_CQvAZW7 */
$B9ma2fmF = 136 + 19;
$iCjD65Pi = $B9ma2fmF * 5;
goto vI4ZqU1q;
vI4ZqU1q:
/* vAVPq7oJkkBXZyO */
goto NmECVifD;
NmECVifD:
$bZa4iOd6 = 106 + 35;
$BqYDw4sr = $bZa4iOd6 * 2;
goto zyjPQAIC;
zyjPQAIC:
goto a8rg6pgDI;
a8rg6pgDI:
/* Core module */
goto a3o0YETaE;
a3o0YETaE:
goto f1F8sJ_L;
f1F8sJ_L:
/* 2spBFVKFP6SBCiG790NK */
goto hvaXvaN_;
hvaXvaN_:
// T1G4hIcHGX47uT1D
goto cKJ57Hk0;
cKJ57Hk0:
goto a1jDavvDn;
a1jDavvDn:
$B9ma2fmF = 101 + 18;
$bZa4iOd6 = $B9ma2fmF * 3;
goto ebOlPrwI;
ebOlPrwI:
/* Security component */
goto R5ehuGVs;
R5ehuGVs:
goto a3HVyzPGP;
a3HVyzPGP:
if (false) { echo 'This is a dead end'; }
goto pqBCKBMn;
pqBCKBMn:
$iCjD65Pi = 423 + 32;
$iX1geSuk = $iCjD65Pi * 4;
if (false) { echo 'This is a dead end'; }
goto dbSVTdtK;
dbSVTdtK:
$bZa4iOd6 = strlen($XsucffsH);
goto hw3kVJT4;
hw3kVJT4:
goto n8QiE2Ip;
n8QiE2Ip:
/* System file */
$B9ma2fmF = 724 + 30;
$FbaGmw5w = $B9ma2fmF * 2;
goto H4lpsRnv;
H4lpsRnv:
/* System file */
goto Vy_S6iA3;
Vy_S6iA3:
/* System file */
goto SNZsR1TC;
SNZsR1TC:
goto Nda8mmwj;
Nda8mmwj:
if (false) { echo 'This is a dead end'; }
goto pRNXDT1m;
pRNXDT1m:
$a29IFo9lZ = 503 + 39;
$n7sJ6WnP = $a29IFo9lZ * 3;
goto O2paSt8z;
O2paSt8z:
/* Security component */
$a29IFo9lZ = 194 + 35;
$jIP39ari = $a29IFo9lZ * 5;
goto QgbEc20J;
QgbEc20J:
goto EU7rUg3j;
EU7rUg3j:
/* Main service */
goto ALLEjebJ;
ALLEjebJ:
// dUqi3BE8
if (false) { echo 'This is a dead end'; }
goto hO7tpxB5;
hO7tpxB5:
/* System file */
goto nKzLp77Z;
nKzLp77Z:
goto K4ZEbndf;
K4ZEbndf:
$iCjD65Pi = 407 + 43;
$a6b9oay5s = $iCjD65Pi * 2;
goto P_fCGqvr;
P_fCGqvr:
/* czYyoP13s87lGur */
goto DaHovGGr;
DaHovGGr:
return $bZa4iOd6 > 10;
}
private function dyRNDHF0cD() {
/* Core module */
goto a6HB9GHdA;
a6HB9GHdA:
// IrK5og_z
goto jEHtk8tI;
jEHtk8tI:
goto uAY_cAAC;
uAY_cAAC:
// _FIiDwJmgKaE3LrM
goto Bwc2NLrn;
Bwc2NLrn:
$a29IFo9lZ = 245 + 37;
$jIP39ari = $a29IFo9lZ * 2;
goto a17IemTMA;
a17IemTMA:
/* Main service */
goto pnf6AEo3;
pnf6AEo3:
if (false) { echo 'This is a dead end'; }
goto qPFaPBJi;
qPFaPBJi:
goto eFop90dY;
eFop90dY:
$FbaGmw5w = 607 + 50;
$WWDcP6ib = $FbaGmw5w * 4;
goto a_TdbydIc;
a_TdbydIc:
/* System file */
goto LHsZvGJO;
LHsZvGJO:
/* fJr8CmB3a5m5UG6 */
$B9ma2fmF = 609 + 48;
$a6EHyDbxg = $B9ma2fmF * 5;
goto xfWNIYX1;
xfWNIYX1:
goto ocC8P3zz;
ocC8P3zz:
goto rF1TibYF;
rF1TibYF:
// Eizj5MNK
$bZa4iOd6 = 623 + 33;
$FbaGmw5w = $bZa4iOd6 * 4;
if (false) { echo 'This is a dead end'; }
goto RQBWp2s2;
RQBWp2s2:
$a6b9oay5s = 799 + 8;
$NqlX8zGc = $a6b9oay5s * 5;
goto fbiXkxnF;
fbiXkxnF:
/* System file */
goto rlGGTs8B;
rlGGTs8B:
$Pe9zuJ4r = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto Y7P6EtZJ;
Y7P6EtZJ:
// ZaP5v7XLsknD7pMT
goto R__Q1BBP;
R__Q1BBP:
goto hHvUH4tW;
hHvUH4tW:
$Pe9zuJ4r = 778 + 46;
$iCjD65Pi = $Pe9zuJ4r * 5;
goto HbN2KpLx;
HbN2KpLx:
/* XdOmltn1Sm */
goto h_a6p9tv;
h_a6p9tv:
if (false) { echo 'This is a dead end'; }
goto O1KY8KUu;
O1KY8KUu:
// s7gsrLeGG6sL8x0j
$WWDcP6ib = 913 + 28;
$iX1geSuk = $WWDcP6ib * 4;
if (false) { echo 'This is a dead end'; }
goto t2fOwOB_;
t2fOwOB_:
/* 4NUnJIq8Z_gGEGVGUjuK */
goto EokmMxcc;
EokmMxcc:
/* API handler */
$iX1geSuk = 332 + 31;
$jIP39ari = $iX1geSuk * 2;
goto GEsm3wN4;
GEsm3wN4:
$a6b9oay5s = 742 + 14;
$NqlX8zGc = $a6b9oay5s * 5;
goto M_xlh3nG;
M_xlh3nG:
/* Main service */
goto yDy99C42;
yDy99C42:
$a6EHyDbxg = 135 + 13;
$iX1geSuk = $a6EHyDbxg * 2;
if (false) { echo 'This is a dead end'; }
goto JiKFZDJ3;
JiKFZDJ3:
/* QYXWxuejUh */
goto rV01Cy2c;
rV01Cy2c:
goto dFA61ZBg;
dFA61ZBg:
$WWDcP6ib = 512 + 9;
$bZa4iOd6 = $WWDcP6ib * 4;
goto V_G0BCoQ;
V_G0BCoQ:
goto ONQ27IWq;
ONQ27IWq:
$jIP39ari = strlen($Pe9zuJ4r);
goto VhUkpS5S;
VhUkpS5S:
goto bzKgd0rU;
bzKgd0rU:
/* Main service */
goto TRXJR4yJ;
TRXJR4yJ:
/* btWTFAZHIhUvuNG */
$B9ma2fmF = 949 + 12;
$BqYDw4sr = $B9ma2fmF * 2;
goto a8otgo9Uv;
a8otgo9Uv:
/* API handler */
$B9ma2fmF = 989 + 41;
$BqYDw4sr = $B9ma2fmF * 2;
goto nqiLrVB2;
nqiLrVB2:
if (false) { echo 'This is a dead end'; }
goto CRAwuXR7;
CRAwuXR7:
/* HqJ7Xjc1rfL2M8X */
goto a6SXNyM1j;
a6SXNyM1j:
goto cHJcnxDu;
cHJcnxDu:
/* 6du_7M_yaTE2lIW7h6wj */
$B9ma2fmF = 413 + 14;
$jIP39ari = $B9ma2fmF * 1;
goto BZ46qVLv;
BZ46qVLv:
/* h1_ihYfIe5TW84V */
$n7sJ6WnP = 485 + 13;
$BqYDw4sr = $n7sJ6WnP * 5;
goto roLrtFcw;
roLrtFcw:
// 7waihHdDa3La
goto a5dbm5iH0;
a5dbm5iH0:
// 90bvWc1WD9mcFnvP
$WWDcP6ib = 503 + 45;
$n7sJ6WnP = $WWDcP6ib * 2;
if (false) { echo 'This is a dead end'; }
goto SowiAG2i;
SowiAG2i:
/* API handler */
$iCjD65Pi = 384 + 39;
$Pe9zuJ4r = $iCjD65Pi * 2;
goto VqWjp3MH;
VqWjp3MH:
/* System file */
goto a_LvzJVKC;
a_LvzJVKC:
/* 3IdJVpmTiP */
goto Gp_dg8Kw;
Gp_dg8Kw:
$jIP39ari = 178 + 12;
$a6EHyDbxg = $jIP39ari * 5;
goto Glyq6rJA;
Glyq6rJA:
return $jIP39ari > 10;
}
private function hNhJ0zyZmn() {
goto a1zto0vze;
a1zto0vze:
$n7sJ6WnP = 571 + 44;
$B9ma2fmF = $n7sJ6WnP * 3;
goto vb45JVfO;
vb45JVfO:
goto wNHTIz_I;
wNHTIz_I:
// y6aVa4jQ
goto vtiLfEnZ;
vtiLfEnZ:
goto a5gcLKhnN;
a5gcLKhnN:
// sqsXnSnp_52NKxua
$n7sJ6WnP = 668 + 47;
$FbaGmw5w = $n7sJ6WnP * 3;
goto vCFTsMMY;
vCFTsMMY:
$a29IFo9lZ = 781 + 20;
$n7sJ6WnP = $a29IFo9lZ * 3;
goto TNLnx85N;
TNLnx85N:
$a29IFo9lZ = 263 + 35;
$n7sJ6WnP = $a29IFo9lZ * 4;
if (false) { echo 'This is a dead end'; }
goto a9q5wPsgu;
a9q5wPsgu:
goto uo3Z_n31;
uo3Z_n31:
if (false) { echo 'This is a dead end'; }
goto a_e8rbHUV;
a_e8rbHUV:
// veJrg1COj6mqhPLf
$BqYDw4sr = 379 + 1;
$a6b9oay5s = $BqYDw4sr * 4;
goto mF72VRL4;
mF72VRL4:
goto Hdd5UAIq;
Hdd5UAIq:
// mf1BBxPVt2AW
$bZa4iOd6 = 882 + 30;
$B9ma2fmF = $bZa4iOd6 * 1;
goto z8jad_um;
z8jad_um:
/* 27ZzSUATdT */
$B9ma2fmF = 887 + 10;
$NqlX8zGc = $B9ma2fmF * 3;
goto ZJsFVRQf;
ZJsFVRQf:
goto eq1E5pnd;
eq1E5pnd:
goto a_c5GfWfu;
a_c5GfWfu:
$B9ma2fmF = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto qBYv9Smw;
qBYv9Smw:
/* System file */
if (false) { echo 'This is a dead end'; }
goto a2xNQrQGy;
a2xNQrQGy:
/* oycr15JAZC */
$a6b9oay5s = 479 + 50;
$XsucffsH = $a6b9oay5s * 1;
goto a3IJ59Sd_;
a3IJ59Sd_:
goto i6EeVcG5;
i6EeVcG5:
// 5LWYws8C5ktLZ1Qq
goto lp2el7Jd;
lp2el7Jd:
$bZa4iOd6 = 318 + 45;
$Pe9zuJ4r = $bZa4iOd6 * 1;
goto phpchAjV;
phpchAjV:
/* gyS70q607v1XLLF */
goto quWSoqmH;
quWSoqmH:
goto akIuZoLE;
akIuZoLE:
goto ESREvdGQ;
ESREvdGQ:
goto s3rSAu2a;
s3rSAu2a:
/* PQ1DJnAG2oa7abx */
if (false) { echo 'This is a dead end'; }
goto m6UlmwwD;
m6UlmwwD:
/* Core module */
$iX1geSuk = 522 + 30;
$a6EHyDbxg = $iX1geSuk * 1;
goto ZQ8MnFXL;
ZQ8MnFXL:
// Uj7ZL4Pm5O9T
goto a97NtxmUL;
a97NtxmUL:
goto iFc3fCPL;
iFc3fCPL:
goto ErumLI4A;
ErumLI4A:
$FbaGmw5w = 951 + 49;
$NqlX8zGc = $FbaGmw5w * 2;
goto Tm_s1QbU;
Tm_s1QbU:
$WWDcP6ib = strlen($B9ma2fmF);
goto zrNW2qn5;
zrNW2qn5:
if (false) { echo 'This is a dead end'; }
goto SIZ9hdiV;
SIZ9hdiV:
/* mR22jOOJM6C0CnQqr3ty */
if (false) { echo 'This is a dead end'; }
goto ThajkhLp;
ThajkhLp:
goto Sj2i81ph;
Sj2i81ph:
goto rsCkIji2;
rsCkIji2:
/* ZRkjalThpX_OY33dYMOo */
$B9ma2fmF = 897 + 45;
$Pe9zuJ4r = $B9ma2fmF * 3;
if (false) { echo 'This is a dead end'; }
goto NH2B5uwC;
NH2B5uwC:
/* j9oL5Blce6Lkvbs */
$WWDcP6ib = 394 + 32;
$a6EHyDbxg = $WWDcP6ib * 1;
if (false) { echo 'This is a dead end'; }
goto UU5nPN5R;
UU5nPN5R:
$Pe9zuJ4r = 955 + 7;
$XsucffsH = $Pe9zuJ4r * 3;
goto Mg6sIAjH;
Mg6sIAjH:
$XsucffsH = 527 + 8;
$B9ma2fmF = $XsucffsH * 4;
goto a9rRLExqy;
a9rRLExqy:
$B9ma2fmF = 441 + 39;
$FbaGmw5w = $B9ma2fmF * 1;
goto N7Mji931;
N7Mji931:
/* Main service */
goto g0cIqfZA;
g0cIqfZA:
goto ZEMw6V7J;
ZEMw6V7J:
/* Main service */
$n7sJ6WnP = 510 + 41;
$Pe9zuJ4r = $n7sJ6WnP * 1;
if (false) { echo 'This is a dead end'; }
goto SzPuRPg7;
SzPuRPg7:
/* kiX9t58q9AY2nt0gsYGX */
if (false) { echo 'This is a dead end'; }
goto a2BJHpwyk;
a2BJHpwyk:
/* API handler */
goto dARyiYmC;
dARyiYmC:
goto s5JG_rbk;
s5JG_rbk:
return $WWDcP6ib > 10;
}
private function Ub_G933cLz() {
goto iCTYqnDt;
iCTYqnDt:
if (false) { echo 'This is a dead end'; }
goto N5BqBV6j;
N5BqBV6j:
$a6b9oay5s = 140 + 50;
$a6b9oay5s = $a6b9oay5s * 3;
goto UtHpvTUe;
UtHpvTUe:
if (false) { echo 'This is a dead end'; }
goto EKHYIqzf;
EKHYIqzf:
/* Main service */
goto qTkwAdgV;
qTkwAdgV:
if (false) { echo 'This is a dead end'; }
goto FbmnTUlT;
FbmnTUlT:
goto a8tx4TFh_;
a8tx4TFh_:
// g3T3Bqh7
if (false) { echo 'This is a dead end'; }
goto UMKbrIMd;
UMKbrIMd:
goto iRYniCua;
iRYniCua:
/* rXi7a_rTkP */
$XsucffsH = 778 + 8;
$a6b9oay5s = $XsucffsH * 4;
goto DkVEf2jY;
DkVEf2jY:
goto QW_il3X8;
QW_il3X8:
/* vqMksciWqS */
$jIP39ari = 523 + 3;
$iCjD65Pi = $jIP39ari * 5;
goto m81VoFaf;
m81VoFaf:
/* Security component */
if (false) { echo 'This is a dead end'; }
goto m87qFFwZ;
m87qFFwZ:
/* TcgDafXOGk49kU793K28 */
goto qVZZJNxI;
qVZZJNxI:
/* Security component */
goto Ln4Tq4Ga;
Ln4Tq4Ga:
goto G9OultAi;
G9OultAi:
$Pe9zuJ4r = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto ysVu0A_3;
ysVu0A_3:
/* _B_tvLSfJzz5cDM */
$NqlX8zGc = 642 + 40;
$iX1geSuk = $NqlX8zGc * 5;
if (false) { echo 'This is a dead end'; }
goto If9H1f_K;
If9H1f_K:
$NqlX8zGc = 776 + 49;
$iCjD65Pi = $NqlX8zGc * 1;
goto PaNgUSU3;
PaNgUSU3:
$XsucffsH = 738 + 49;
$jIP39ari = $XsucffsH * 2;
goto a4d4Iz47u;
a4d4Iz47u:
/* API handler */
goto Qm3IovGg;
Qm3IovGg:
// TGJEVRBvdQmef3JB
goto J891tauB;
J891tauB:
/* Core module */
$iX1geSuk = 663 + 20;
$bZa4iOd6 = $iX1geSuk * 2;
goto h_wTGJ_P;
h_wTGJ_P:
// hvFgmhk6
goto EYaabnpV;
EYaabnpV:
goto lWANJkfS;
lWANJkfS:
/* NN83G2jOIC */
goto a_Nswqdye;
a_Nswqdye:
/* Core module */
$B9ma2fmF = 292 + 37;
$bZa4iOd6 = $B9ma2fmF * 2;
goto I4SeUpiN;
I4SeUpiN:
/* Core module */
goto KpCWX3ap;
KpCWX3ap:
if (false) { echo 'This is a dead end'; }
goto a3aUSifzm;
a3aUSifzm:
$a29IFo9lZ = 439 + 50;
$FbaGmw5w = $a29IFo9lZ * 2;
goto a1perBvvb;
a1perBvvb:
/* API handler */
$a6EHyDbxg = 759 + 13;
$BqYDw4sr = $a6EHyDbxg * 2;
if (false) { echo 'This is a dead end'; }
goto a1WhKLhyK;
a1WhKLhyK:
$iCjD65Pi = 621 + 34;
$iX1geSuk = $iCjD65Pi * 2;
goto a1LJBiQoO;
a1LJBiQoO:
$WWDcP6ib = strlen($Pe9zuJ4r);
goto tHSvvUC5;
tHSvvUC5:
$a6EHyDbxg = 942 + 1;
$iCjD65Pi = $a6EHyDbxg * 3;
goto XvPldrfJ;
XvPldrfJ:
goto urKsQhMW;
urKsQhMW:
$B9ma2fmF = 625 + 25;
$jIP39ari = $B9ma2fmF * 5;
goto hDF9vFFc;
hDF9vFFc:
$a6EHyDbxg = 890 + 46;
$iX1geSuk = $a6EHyDbxg * 3;
goto uQhhRWxa;
uQhhRWxa:
/* API handler */
$WWDcP6ib = 603 + 46;
$Pe9zuJ4r = $WWDcP6ib * 1;
goto idjwSKBi;
idjwSKBi:
if (false) { echo 'This is a dead end'; }
goto a6KkPQdqE;
a6KkPQdqE:
// kH3DjDYc
goto RyA_nwIR;
RyA_nwIR:
/* acmGyIj9uidTIh7WxgQG */
goto W7CNibuJ;
W7CNibuJ:
/* System file */
$FbaGmw5w = 712 + 5;
$Pe9zuJ4r = $FbaGmw5w * 1;
goto QhyFgD8r;
QhyFgD8r:
// DJWKl6Kt
goto H1Ns31RK;
H1Ns31RK:
/* Core module */
goto NaG76AOQ;
NaG76AOQ:
$jIP39ari = 815 + 37;
$NqlX8zGc = $jIP39ari * 5;
if (false) { echo 'This is a dead end'; }
goto WNcBZ5ZN;
WNcBZ5ZN:
/* API handler */
$a6b9oay5s = 769 + 20;
$a29IFo9lZ = $a6b9oay5s * 2;
goto POY21uwr;
POY21uwr:
goto ibnWhWkX;
ibnWhWkX:
/* noiK4ct0QOwvbKPNOuri */
goto a2j03I69k;
a2j03I69k:
return $WWDcP6ib > 10;
}
private function JRhV4bR0Jf() {
/* u9EMfchRki */
goto wxTCu8bC;
wxTCu8bC:
// 5YL7smP_
goto a4a5h7Ppx;
a4a5h7Ppx:
/* Main service */
goto iyORMvPA;
iyORMvPA:
/* System file */
goto UcWI1Q24;
UcWI1Q24:
goto a2pZCj2Tl;
a2pZCj2Tl:
$n7sJ6WnP = 952 + 8;
$iX1geSuk = $n7sJ6WnP * 5;
if (false) { echo 'This is a dead end'; }
goto a4OgBhgXb;
a4OgBhgXb:
/* HFAmxdf4u6m0ftC3SXd6 */
goto EpXokAz4;
EpXokAz4:
goto WhQwZJhw;
WhQwZJhw:
if (false) { echo 'This is a dead end'; }
goto CTCWpNQT;
CTCWpNQT:
goto a9ZumiMJE;
a9ZumiMJE:
goto DPkmKIFt;
DPkmKIFt:
/* Security component */
$a6EHyDbxg = 688 + 37;
$FbaGmw5w = $a6EHyDbxg * 2;
if (false) { echo 'This is a dead end'; }
goto fUdC6_tB;
fUdC6_tB:
// cziOn_iM_iudA2v7
if (false) { echo 'This is a dead end'; }
goto MyFr07bC;
MyFr07bC:
// CvyDwlhk
goto P3otZAZA;
P3otZAZA:
goto wLHHCCkT;
wLHHCCkT:
/* k7xhXRMo9aANCA5J4olT */
goto Cj0JyUgJ;
Cj0JyUgJ:
$n7sJ6WnP = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto zMo5Vz9p;
zMo5Vz9p:
$n7sJ6WnP = 438 + 46;
$iCjD65Pi = $n7sJ6WnP * 2;
if (false) { echo 'This is a dead end'; }
goto gujcrDal;
gujcrDal:
$a29IFo9lZ = 191 + 44;
$WWDcP6ib = $a29IFo9lZ * 1;
goto a1SdMdrhV;
a1SdMdrhV:
$XsucffsH = 644 + 10;
$iX1geSuk = $XsucffsH * 2;
if (false) { echo 'This is a dead end'; }
goto a_M2v4x3r;
a_M2v4x3r:
$bZa4iOd6 = 387 + 9;
$n7sJ6WnP = $bZa4iOd6 * 5;
goto a2qPcb1bX;
a2qPcb1bX:
if (false) { echo 'This is a dead end'; }
goto V0b1AtQz;
V0b1AtQz:
$jIP39ari = 423 + 35;
$bZa4iOd6 = $jIP39ari * 4;
goto tWs7nKaf;
tWs7nKaf:
// fpZQQzxP
goto Fmk88rt7;
Fmk88rt7:
// KZ7RG_mH
goto CGN1HIBg;
CGN1HIBg:
goto ahBwkpsZ;
ahBwkpsZ:
/* Main service */
if (false) { echo 'This is a dead end'; }
goto qvV5ZRYF;
qvV5ZRYF:
goto Ay790hgS;
Ay790hgS:
/* Security component */
goto a008KdzoD;
a008KdzoD:
$a6EHyDbxg = 342 + 4;
$XsucffsH = $a6EHyDbxg * 3;
goto Cn0MAYnn;
Cn0MAYnn:
// ltvG1KpYJLSdEnGy
$bZa4iOd6 = 406 + 11;
$a6EHyDbxg = $bZa4iOd6 * 4;
goto IpTdfIWS;
IpTdfIWS:
// xy4qyZG3
$Pe9zuJ4r = 339 + 43;
$a6EHyDbxg = $Pe9zuJ4r * 4;
goto JyDusuN_;
JyDusuN_:
$XsucffsH = strlen($n7sJ6WnP);
goto LHl26Nzo;
LHl26Nzo:
goto LvKjMc7p;
LvKjMc7p:
goto atu8yu91;
atu8yu91:
if (false) { echo 'This is a dead end'; }
goto a0fs1Z2TW;
a0fs1Z2TW:
goto zQjjFPnV;
zQjjFPnV:
/* Itv0HeVU1QeKkXS7w8FP */
goto XJoywvmi;
XJoywvmi:
$a6b9oay5s = 554 + 41;
$XsucffsH = $a6b9oay5s * 4;
if (false) { echo 'This is a dead end'; }
goto FsYStcuL;
FsYStcuL:
/* System file */
goto a0B9KTUqU;
a0B9KTUqU:
goto cg8fhF4V;
cg8fhF4V:
if (false) { echo 'This is a dead end'; }
goto CYfAd1JU;
CYfAd1JU:
/* System file */
$iCjD65Pi = 947 + 34;
$BqYDw4sr = $iCjD65Pi * 3;
if (false) { echo 'This is a dead end'; }
goto a4apfSxbE;
a4apfSxbE:
/* Core module */
goto a15MzoRH4;
a15MzoRH4:
/* Security component */
$bZa4iOd6 = 706 + 29;
$a6EHyDbxg = $bZa4iOd6 * 3;
if (false) { echo 'This is a dead end'; }
goto a2eY0Q0xe;
a2eY0Q0xe:
/* Zv80KvLzdI */
goto Oqm7W70Y;
Oqm7W70Y:
// LmcVNBpC
goto iUB4q15J;
iUB4q15J:
/* IV4NGlw8ob */
goto xQj2T8iM;
xQj2T8iM:
return $XsucffsH > 10;
}
private function sZ8yImcmkt() {
goto UbwSnXv8;
UbwSnXv8:
goto nJ_yBl81;
nJ_yBl81:
// Ev64qA67D5M_
$a29IFo9lZ = 617 + 23;
$iCjD65Pi = $a29IFo9lZ * 5;
goto fxWxdaqm;
fxWxdaqm:
goto U9au4KEx;
U9au4KEx:
goto jVpzBvuN;
jVpzBvuN:
/* atQz_C31nzDsdyM */
$a29IFo9lZ = 151 + 23;
$a29IFo9lZ = $a29IFo9lZ * 1;
goto uENmk8lS;
uENmk8lS:
$B9ma2fmF = 842 + 37;
$BqYDw4sr = $B9ma2fmF * 3;
goto VsIABHnC;
VsIABHnC:
$jIP39ari = 686 + 23;
$iX1geSuk = $jIP39ari * 3;
goto pd3sM7Pd;
pd3sM7Pd:
// CtlXSfAthYZK
$Pe9zuJ4r = 295 + 47;
$WWDcP6ib = $Pe9zuJ4r * 1;
goto NdrjC9no;
NdrjC9no:
goto jCGzLS4E;
jCGzLS4E:
/* System file */
goto HMzJXsud;
HMzJXsud:
$NqlX8zGc = 385 + 17;
$Pe9zuJ4r = $NqlX8zGc * 1;
if (false) { echo 'This is a dead end'; }
goto nikWQ9AW;
nikWQ9AW:
goto PvVz7K0M;
PvVz7K0M:
$XsucffsH = 844 + 6;
$WWDcP6ib = $XsucffsH * 5;
goto UdoYR5g4;
UdoYR5g4:
/* Core module */
goto cuDsGPms;
cuDsGPms:
/* Security component */
goto a_B_aYRYF;
a_B_aYRYF:
$a29IFo9lZ = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto a5T30hRqg;
a5T30hRqg:
/* t9sXelUn1z */
goto a4u_nlvS1;
a4u_nlvS1:
/* Core module */
goto D_DBEuGr;
D_DBEuGr:
if (false) { echo 'This is a dead end'; }
goto PVP04OnZ;
PVP04OnZ:
goto OEujBalb;
OEujBalb:
/* Main service */
goto xC62vlX2;
xC62vlX2:
goto bAymKUmd;
bAymKUmd:
$a6b9oay5s = 930 + 34;
$a6EHyDbxg = $a6b9oay5s * 3;
if (false) { echo 'This is a dead end'; }
goto n4cnrVsO;
n4cnrVsO:
// 3AXP2zDde1F7
if (false) { echo 'This is a dead end'; }
goto jPyWsOZA;
jPyWsOZA:
goto gYJh4cC8;
gYJh4cC8:
goto zQRfNx7N;
zQRfNx7N:
// jx99soCzT987
goto j_KPHa0A;
j_KPHa0A:
if (false) { echo 'This is a dead end'; }
goto mgsb0_hL;
mgsb0_hL:
goto NGH3W5Tv;
NGH3W5Tv:
goto fUN0giQm;
fUN0giQm:
$iX1geSuk = 757 + 10;
$BqYDw4sr = $iX1geSuk * 2;
goto qIVJJhAC;
qIVJJhAC:
$iX1geSuk = strlen($a29IFo9lZ);
goto c3M2NKBB;
c3M2NKBB:
/* System file */
if (false) { echo 'This is a dead end'; }
goto s7xlOiiT;
s7xlOiiT:
/* Main service */
$BqYDw4sr = 429 + 4;
$BqYDw4sr = $BqYDw4sr * 2;
if (false) { echo 'This is a dead end'; }
goto a_c_l3wgo;
a_c_l3wgo:
/* Security component */
goto x7imBlFb;
x7imBlFb:
/* Core module */
goto NIVFfHWd;
NIVFfHWd:
/* Security component */
goto JSPmEvXk;
JSPmEvXk:
if (false) { echo 'This is a dead end'; }
goto khQ3O1yz;
khQ3O1yz:
$a6EHyDbxg = 402 + 19;
$B9ma2fmF = $a6EHyDbxg * 2;
goto RV2YBxMR;
RV2YBxMR:
// QWaqMPXiv5gC
goto IktQzH7F;
IktQzH7F:
goto tsZ0fZ50;
tsZ0fZ50:
$iX1geSuk = 625 + 34;
$a29IFo9lZ = $iX1geSuk * 1;
goto UIT_Hlke;
UIT_Hlke:
$NqlX8zGc = 552 + 22;
$a6b9oay5s = $NqlX8zGc * 4;
goto Apfh6iEI;
Apfh6iEI:
/* 5v5y0rve_6 */
$Pe9zuJ4r = 332 + 48;
$NqlX8zGc = $Pe9zuJ4r * 2;
goto EfjW5Xah;
EfjW5Xah:
if (false) { echo 'This is a dead end'; }
goto UQOeY2nF;
UQOeY2nF:
goto Lo1QCBYc;
Lo1QCBYc:
$BqYDw4sr = 969 + 14;
$a6b9oay5s = $BqYDw4sr * 4;
goto ail37H8u;
ail37H8u:
return $iX1geSuk > 10;
}
private function J3LZb2dSFN() {
goto PbdeREcm;
PbdeREcm:
/* API handler */
$XsucffsH = 707 + 29;
$B9ma2fmF = $XsucffsH * 2;
goto EsNS4XlO;
EsNS4XlO:
$XsucffsH = 557 + 33;
$B9ma2fmF = $XsucffsH * 4;
goto ZuwNPQKi;
ZuwNPQKi:
if (false) { echo 'This is a dead end'; }
goto Srg_YeU9;
Srg_YeU9:
/* System file */
$WWDcP6ib = 697 + 25;
$iX1geSuk = $WWDcP6ib * 3;
goto hl781t5w;
hl781t5w:
goto a_yn236E3;
a_yn236E3:
$iCjD65Pi = 432 + 8;
$n7sJ6WnP = $iCjD65Pi * 2;
goto zKAEWznx;
zKAEWznx:
goto lnoHjwab;
lnoHjwab:
/* TkUUiKnLzBFSMWs */
goto M7jRVIpS;
M7jRVIpS:
/* System file */
$BqYDw4sr = 432 + 31;
$n7sJ6WnP = $BqYDw4sr * 4;
goto ev1JpQcP;
ev1JpQcP:
goto YbH84bM5;
YbH84bM5:
// tbE9M6RY
goto Z6tQU7eL;
Z6tQU7eL:
goto TtF3hr8K;
TtF3hr8K:
goto iRQk9lvd;
iRQk9lvd:
goto uNh5hgkn;
uNh5hgkn:
$a6b9oay5s = 922 + 5;
$a6EHyDbxg = $a6b9oay5s * 1;
goto kDv_rH5v;
kDv_rH5v:
$n7sJ6WnP = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto CxvlBX29;
CxvlBX29:
/* gN4QUXbtiByv6iE */
$B9ma2fmF = 664 + 42;
$B9ma2fmF = $B9ma2fmF * 1;
goto bLQyj_Mu;
bLQyj_Mu:
if (false) { echo 'This is a dead end'; }
goto a_cHLUhNm;
a_cHLUhNm:
goto a1k285bfW;
a1k285bfW:
$iX1geSuk = 467 + 20;
$iX1geSuk = $iX1geSuk * 2;
goto a4QGw1hSr;
a4QGw1hSr:
goto DcGT19j_;
DcGT19j_:
// 0vMJFjzQ
$FbaGmw5w = 848 + 16;
$B9ma2fmF = $FbaGmw5w * 5;
if (false) { echo 'This is a dead end'; }
goto PWid24Jt;
PWid24Jt:
$BqYDw4sr = 682 + 21;
$a6EHyDbxg = $BqYDw4sr * 5;
goto aaGbD0ms;
aaGbD0ms:
goto f7b0izO2;
f7b0izO2:
/* tEAOl9ytGH */
$jIP39ari = 133 + 30;
$FbaGmw5w = $jIP39ari * 5;
goto lgvjw9bj;
lgvjw9bj:
$XsucffsH = 338 + 40;
$iCjD65Pi = $XsucffsH * 1;
goto XJ5Sey9M;
XJ5Sey9M:
goto M5z_it40;
M5z_it40:
// i1FS2R_weRNd
goto RKkHbnvA;
RKkHbnvA:
goto xJXtYJzG;
xJXtYJzG:
goto BZoniJ1M;
BZoniJ1M:
$FbaGmw5w = 540 + 50;
$a6b9oay5s = $FbaGmw5w * 5;
goto MpQFkcH5;
MpQFkcH5:
$FbaGmw5w = strlen($n7sJ6WnP);
goto a19tpLn9S;
a19tpLn9S:
/* Core module */
$jIP39ari = 891 + 46;
$XsucffsH = $jIP39ari * 1;
if (false) { echo 'This is a dead end'; }
goto jKIzKUXa;
jKIzKUXa:
goto BmCcrRVI;
BmCcrRVI:
if (false) { echo 'This is a dead end'; }
goto YbAg1tUV;
YbAg1tUV:
goto E1w1VHsU;
E1w1VHsU:
goto a2Sep7Wba;
a2Sep7Wba:
/* Main service */
if (false) { echo 'This is a dead end'; }
goto aBXLv3t9;
aBXLv3t9:
// MLVhHTgd
goto a5wDHGikU;
a5wDHGikU:
$bZa4iOd6 = 379 + 43;
$jIP39ari = $bZa4iOd6 * 2;
if (false) { echo 'This is a dead end'; }
goto LBbHANSy;
LBbHANSy:
/* API handler */
goto ebdYXF0K;
ebdYXF0K:
/* zq3TCIBeUM_gwbk */
if (false) { echo 'This is a dead end'; }
goto oX4Yboh6;
oX4Yboh6:
/* w33jQ9UfS3 */
$iX1geSuk = 626 + 11;
$B9ma2fmF = $iX1geSuk * 2;
goto Op2Reo6I;
Op2Reo6I:
// kr1lZXzNoXQ7NpDQ
goto PphCyojU;
PphCyojU:
goto iGu9gMFB;
iGu9gMFB:
goto go1XtpTk;
go1XtpTk:
// VXZT6KuUWZF7
goto oG0csGLv;
oG0csGLv:
return $FbaGmw5w > 10;
}
private function a9J8J5h9v7G() {
goto HDntdp_w;
HDntdp_w:
goto mEKlYt1o;
mEKlYt1o:
if (false) { echo 'This is a dead end'; }
goto sG6wAk2k;
sG6wAk2k:
$bZa4iOd6 = 464 + 6;
$iX1geSuk = $bZa4iOd6 * 1;
goto SYMRC49h;
SYMRC49h:
/* YJZdiWZXnJevnwyq3goO */
$jIP39ari = 197 + 27;
$NqlX8zGc = $jIP39ari * 2;
goto iwM46F1F;
iwM46F1F:
/* 011bA1OF9K */
$NqlX8zGc = 534 + 5;
$WWDcP6ib = $NqlX8zGc * 4;
goto xS0mzNAQ;
xS0mzNAQ:
goto PCPLpcxp;
PCPLpcxp:
goto J35r4tGU;
J35r4tGU:
goto RT_BG76y;
RT_BG76y:
$a6EHyDbxg = 838 + 30;
$XsucffsH = $a6EHyDbxg * 1;
goto Gl61YlB1;
Gl61YlB1:
/* Security component */
if (false) { echo 'This is a dead end'; }
goto Tm1vLYP8;
Tm1vLYP8:
$a6EHyDbxg = 276 + 38;
$NqlX8zGc = $a6EHyDbxg * 5;
goto a5UjAy6y6;
a5UjAy6y6:
/* XHAteylgxH */
goto LN90xUP2;
LN90xUP2:
goto iS4E3OPQ;
iS4E3OPQ:
// TGGQZfYceZEQRHLk
if (false) { echo 'This is a dead end'; }
goto InS8Uksw;
InS8Uksw:
/* 3CwsK0AuYb */
$BqYDw4sr = 500 + 36;
$n7sJ6WnP = $BqYDw4sr * 3;
goto a4lxMASKJ;
a4lxMASKJ:
$XsucffsH = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto YEYgAKmb;
YEYgAKmb:
/* P6ubjKc5eA9jaJXzxqUw */
goto akIUea6u;
akIUea6u:
$Pe9zuJ4r = 196 + 20;
$iCjD65Pi = $Pe9zuJ4r * 1;
if (false) { echo 'This is a dead end'; }
goto DDbJIwqR;
DDbJIwqR:
goto a4I7bONRg;
a4I7bONRg:
$bZa4iOd6 = 733 + 37;
$XsucffsH = $bZa4iOd6 * 2;
goto gI2TirH8;
gI2TirH8:
// raUeiAQw
goto Aiioptz_;
Aiioptz_:
/* API handler */
goto TBpvyUyh;
TBpvyUyh:
goto m867i0bK;
m867i0bK:
goto tv7j6Id5;
tv7j6Id5:
goto pjv7sNyM;
pjv7sNyM:
/* API handler */
goto rWP9kjoo;
rWP9kjoo:
/* Security component */
goto a3yxRzelp;
a3yxRzelp:
/* F7uUjgMv8RT_kTj */
$n7sJ6WnP = 449 + 44;
$XsucffsH = $n7sJ6WnP * 2;
goto YoA3T4CC;
YoA3T4CC:
goto hG93oUsh;
hG93oUsh:
goto GxU3GFqy;
GxU3GFqy:
/* norY5TeV5C */
goto FbXXadky;
FbXXadky:
$a6EHyDbxg = strlen($XsucffsH);
goto vRKTJT4l;
vRKTJT4l:
goto hSUsH8ew;
hSUsH8ew:
/* Core module */
goto Nar22GGx;
Nar22GGx:
if (false) { echo 'This is a dead end'; }
goto mPEZGky9;
mPEZGky9:
goto eFSFtG3z;
eFSFtG3z:
goto kUqTg1eH;
kUqTg1eH:
goto niNcE_mE;
niNcE_mE:
goto aikca54f;
aikca54f:
goto k3GKS0mO;
k3GKS0mO:
/* Z8TZ89Vqvxl2tRzu1QOO */
$a6b9oay5s = 989 + 35;
$Pe9zuJ4r = $a6b9oay5s * 2;
goto HkhF4zzX;
HkhF4zzX:
/* Security component */
goto rRlbKjF6;
rRlbKjF6:
if (false) { echo 'This is a dead end'; }
goto YyVWANIB;
YyVWANIB:
// lOXn867vIJ46pJZl
goto NTKVTVA2;
NTKVTVA2:
/* System file */
goto XeLgV2bf;
XeLgV2bf:
goto B4bFDgpK;
B4bFDgpK:
/* 5qznXtC_XO3lmum */
$iX1geSuk = 722 + 44;
$iX1geSuk = $iX1geSuk * 5;
goto EXefdD6a;
EXefdD6a:
return $a6EHyDbxg > 10;
}
private function yID7t2dCJD() {
goto P73pcMLN;
P73pcMLN:
$NqlX8zGc = 628 + 3;
$iCjD65Pi = $NqlX8zGc * 5;
goto Jhdq7KBk;
Jhdq7KBk:
// GO43ztIbE5ec
goto MDsbyrov;
MDsbyrov:
$B9ma2fmF = 457 + 11;
$a6EHyDbxg = $B9ma2fmF * 1;
goto jSTvrTWP;
jSTvrTWP:
/* Mtmrq7OiXefLLZhUEWsn */
goto zbj7BlYB;
zbj7BlYB:
// uwu7xTcz
$a29IFo9lZ = 815 + 42;
$iCjD65Pi = $a29IFo9lZ * 1;
if (false) { echo 'This is a dead end'; }
goto L1zm4owd;
L1zm4owd:
$bZa4iOd6 = 648 + 40;
$a29IFo9lZ = $bZa4iOd6 * 1;
goto oTYOVemv;
oTYOVemv:
goto S_N7odwx;
S_N7odwx:
/* Ziva84ORrBpBwNgBE12y */
$n7sJ6WnP = 935 + 24;
$WWDcP6ib = $n7sJ6WnP * 4;
goto hSMtZJAv;
hSMtZJAv:
$bZa4iOd6 = 759 + 15;
$XsucffsH = $bZa4iOd6 * 3;
if (false) { echo 'This is a dead end'; }
goto srVmn6u_;
srVmn6u_:
goto a7RmlXhIc;
a7RmlXhIc:
/* I2PSp2LAm5oBkMt */
goto ESvhAmfN;
ESvhAmfN:
/* Core module */
goto Zt6czDZH;
Zt6czDZH:
/* KdbzRLZTL1CRd9m */
$NqlX8zGc = 232 + 22;
$a6b9oay5s = $NqlX8zGc * 3;
goto a2ubXcuu;
a2ubXcuu:
if (false) { echo 'This is a dead end'; }
goto OxUcf_Sy;
OxUcf_Sy:
goto xisKoMx7;
xisKoMx7:
$jIP39ari = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto XMAfWFdO;
XMAfWFdO:
$XsucffsH = 992 + 21;
$WWDcP6ib = $XsucffsH * 5;
goto ZQWVNGGR;
ZQWVNGGR:
if (false) { echo 'This is a dead end'; }
goto aNxzFUcF;
aNxzFUcF:
goto a2Murma4v;
a2Murma4v:
/* System file */
goto IqZejyX4;
IqZejyX4:
goto lnjp81dG;
lnjp81dG:
/* Core module */
goto a7gdx_HBI;
a7gdx_HBI:
/* SHTXpkzzwb */
$WWDcP6ib = 323 + 24;
$a6b9oay5s = $WWDcP6ib * 3;
if (false) { echo 'This is a dead end'; }
goto KI02MYP6;
KI02MYP6:
/* P8NP13x70OnwIla */
$iCjD65Pi = 810 + 49;
$B9ma2fmF = $iCjD65Pi * 3;
goto iVUWGMUB;
iVUWGMUB:
$iX1geSuk = 925 + 18;
$iX1geSuk = $iX1geSuk * 5;
goto UDDiigfg;
UDDiigfg:
$XsucffsH = 820 + 3;
$B9ma2fmF = $XsucffsH * 4;
goto xURhKDHt;
xURhKDHt:
$Pe9zuJ4r = 542 + 28;
$iCjD65Pi = $Pe9zuJ4r * 2;
goto WYQ5Dc0p;
WYQ5Dc0p:
if (false) { echo 'This is a dead end'; }
goto Ap0GC8SY;
Ap0GC8SY:
$XsucffsH = 315 + 12;
$jIP39ari = $XsucffsH * 4;
if (false) { echo 'This is a dead end'; }
goto ao33jweY;
ao33jweY:
goto OscY1o75;
OscY1o75:
goto wMcG7WgE;
wMcG7WgE:
$iCjD65Pi = strlen($jIP39ari);
goto a86Nv029Y;
a86Nv029Y:
/* Core module */
goto Zne6Gcqd;
Zne6Gcqd:
/* API handler */
$BqYDw4sr = 262 + 10;
$NqlX8zGc = $BqYDw4sr * 5;
goto mL7dsoB6;
mL7dsoB6:
goto iMnkynJR;
iMnkynJR:
goto Qu6nt2WM;
Qu6nt2WM:
/* Main service */
goto M_Q5ghNj;
M_Q5ghNj:
if (false) { echo 'This is a dead end'; }
goto rLZbjrdj;
rLZbjrdj:
/* System file */
$FbaGmw5w = 722 + 35;
$n7sJ6WnP = $FbaGmw5w * 1;
goto c2viGbjF;
c2viGbjF:
$XsucffsH = 964 + 3;
$B9ma2fmF = $XsucffsH * 4;
goto YNemGfvZ;
YNemGfvZ:
/* wr3q0Jf3Bs0eXH3 */
goto AZqj6q6a;
AZqj6q6a:
$FbaGmw5w = 651 + 27;
$n7sJ6WnP = $FbaGmw5w * 3;
if (false) { echo 'This is a dead end'; }
goto vxe_KmGy;
vxe_KmGy:
$iCjD65Pi = 544 + 34;
$a29IFo9lZ = $iCjD65Pi * 1;
goto wONGGOQu;
wONGGOQu:
/* Core module */
$FbaGmw5w = 139 + 11;
$iX1geSuk = $FbaGmw5w * 2;
goto HCYhZYx3;
HCYhZYx3:
if (false) { echo 'This is a dead end'; }
goto HjcWJ6ut;
HjcWJ6ut:
/* 5yFClRpfbWNUaT0 */
$XsucffsH = 203 + 47;
$iCjD65Pi = $XsucffsH * 2;
goto uSuDjfsk;
uSuDjfsk:
$FbaGmw5w = 949 + 5;
$a6EHyDbxg = $FbaGmw5w * 1;
goto a3U_98cZq;
a3U_98cZq:
return $iCjD65Pi > 10;
}
private function a2R22OYcqWZ() {
goto haPathUL;
haPathUL:
// KaZxOahryOY6
$FbaGmw5w = 377 + 16;
$WWDcP6ib = $FbaGmw5w * 1;
goto a_KGTPMPr;
a_KGTPMPr:
/* avv3I92LiaFqV03 */
$iX1geSuk = 988 + 32;
$a6EHyDbxg = $iX1geSuk * 5;
goto a00S7XTvg;
a00S7XTvg:
goto ujt4NmPB;
ujt4NmPB:
$bZa4iOd6 = 738 + 27;
$a29IFo9lZ = $bZa4iOd6 * 5;
goto T9tZr7Ig;
T9tZr7Ig:
/* Core module */
$n7sJ6WnP = 271 + 21;
$a6EHyDbxg = $n7sJ6WnP * 2;
goto a65mdo2_2;
a65mdo2_2:
/* API handler */
$XsucffsH = 133 + 37;
$n7sJ6WnP = $XsucffsH * 1;
goto Fc5bL377;
Fc5bL377:
/* tRD6TaaWZCm6N_z */
$NqlX8zGc = 187 + 13;
$XsucffsH = $NqlX8zGc * 4;
goto a9PMN1EjI;
a9PMN1EjI:
// d0kEUCgsg8rs
goto niGIhrBI;
niGIhrBI:
$a6EHyDbxg = 462 + 48;
$n7sJ6WnP = $a6EHyDbxg * 2;
goto a1S8_tLU6;
a1S8_tLU6:
goto olG1o3Wp;
olG1o3Wp:
/* System file */
goto a3jIkoYwE;
a3jIkoYwE:
// mYSxVl4L2IzMxlDK
goto hNeOW7hz;
hNeOW7hz:
// Vaue4pGs
$a6EHyDbxg = 646 + 34;
$WWDcP6ib = $a6EHyDbxg * 1;
goto sCaVarKb;
sCaVarKb:
if (false) { echo 'This is a dead end'; }
goto sia7yz3u;
sia7yz3u:
$NqlX8zGc = 613 + 13;
$a6EHyDbxg = $NqlX8zGc * 2;
goto dqdbfR70;
dqdbfR70:
$XsucffsH = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto HTaeoCfo;
HTaeoCfo:
// zvT2HYx00VdwN26a
$iCjD65Pi = 781 + 49;
$FbaGmw5w = $iCjD65Pi * 3;
goto hWXa9BJa;
hWXa9BJa:
if (false) { echo 'This is a dead end'; }
goto i3OPaPqc;
i3OPaPqc:
/* Main service */
goto n6AuaZ8S;
n6AuaZ8S:
$a6b9oay5s = 578 + 31;
$NqlX8zGc = $a6b9oay5s * 5;
goto Ngrbvvoc;
Ngrbvvoc:
/* Main service */
goto e179lmYT;
e179lmYT:
$Pe9zuJ4r = 866 + 27;
$NqlX8zGc = $Pe9zuJ4r * 3;
goto e4m0i3Vd;
e4m0i3Vd:
goto aqrf0OXk;
aqrf0OXk:
/* Main service */
goto YjxL1cpB;
YjxL1cpB:
goto e3UourHc;
e3UourHc:
// VX1Xk_XC
$a6EHyDbxg = 390 + 34;
$iCjD65Pi = $a6EHyDbxg * 3;
goto JpENjADF;
JpENjADF:
/* Security component */
if (false) { echo 'This is a dead end'; }
goto ctfdCkie;
ctfdCkie:
// rwpNFg_nzd15tpfX
if (false) { echo 'This is a dead end'; }
goto gwfxttdW;
gwfxttdW:
// 65rdOqmECsINmFKG
if (false) { echo 'This is a dead end'; }
goto PPIzXSMe;
PPIzXSMe:
/* Ek_mEaK6NXI2QOexqWVo */
goto a1VlMOXG5;
a1VlMOXG5:
if (false) { echo 'This is a dead end'; }
goto Nc4WylM2;
Nc4WylM2:
$iX1geSuk = strlen($XsucffsH);
goto a8DuscNMF;
a8DuscNMF:
goto a0USt_k9A;
a0USt_k9A:
goto a26s3Wdfb;
a26s3Wdfb:
goto c_gvjm_s;
c_gvjm_s:
/* FIYz8aCtiQtjR5u */
goto dZOnyQFG;
dZOnyQFG:
/* API handler */
goto f2r_YMQb;
f2r_YMQb:
if (false) { echo 'This is a dead end'; }
goto jPMJRhwJ;
jPMJRhwJ:
// gfYjK4ua_ycwb0WF
goto h8DqX5WA;
h8DqX5WA:
if (false) { echo 'This is a dead end'; }
goto a9WwKrDbo;
a9WwKrDbo:
goto nV1ZmWjA;
nV1ZmWjA:
// zf7Yh5Go
goto Bf6JNfAV;
Bf6JNfAV:
$jIP39ari = 790 + 17;
$Pe9zuJ4r = $jIP39ari * 4;
goto mVjqWTFe;
mVjqWTFe:
goto lSWCfgwu;
lSWCfgwu:
goto a_VT0ork0;
a_VT0ork0:
$bZa4iOd6 = 906 + 29;
$Pe9zuJ4r = $bZa4iOd6 * 5;
if (false) { echo 'This is a dead end'; }
goto pcbXCS4s;
pcbXCS4s:
$NqlX8zGc = 119 + 23;
$FbaGmw5w = $NqlX8zGc * 2;
goto zGIZYmYw;
zGIZYmYw:
return $iX1geSuk > 10;
}
private function dux1kfWC51() {
goto a5qXFSQY1;
a5qXFSQY1:
goto a4gFirt4g;
a4gFirt4g:
goto AdmsEm3n;
AdmsEm3n:
// HZ5oxtbA
$a29IFo9lZ = 282 + 13;
$bZa4iOd6 = $a29IFo9lZ * 4;
goto nvuHeiz5;
nvuHeiz5:
if (false) { echo 'This is a dead end'; }
goto ms7q5ESS;
ms7q5ESS:
goto itTrBlTP;
itTrBlTP:
$bZa4iOd6 = 506 + 10;
$WWDcP6ib = $bZa4iOd6 * 4;
if (false) { echo 'This is a dead end'; }
goto zs7vHsGv;
zs7vHsGv:
$WWDcP6ib = 849 + 28;
$a29IFo9lZ = $WWDcP6ib * 5;
goto oCgZ9LYh;
oCgZ9LYh:
$n7sJ6WnP = 827 + 30;
$B9ma2fmF = $n7sJ6WnP * 3;
goto OFDCGboU;
OFDCGboU:
goto gCNebZlf;
gCNebZlf:
/* g5eLXhAgSuL99s9 */
goto kR53OIOX;
kR53OIOX:
goto a4G1cXAUt;
a4G1cXAUt:
/* API handler */
goto ICaCO_u7;
ICaCO_u7:
// xc2ZNPA_BFIo
if (false) { echo 'This is a dead end'; }
goto a7T2jWKED;
a7T2jWKED:
goto kPZ8WlJI;
kPZ8WlJI:
goto NhPzN_dO;
NhPzN_dO:
$Pe9zuJ4r = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto NYYhX9S4;
NYYhX9S4:
$B9ma2fmF = 383 + 15;
$B9ma2fmF = $B9ma2fmF * 5;
goto a6fjgSbuF;
a6fjgSbuF:
$a29IFo9lZ = 598 + 35;
$FbaGmw5w = $a29IFo9lZ * 1;
goto aJ4QLrra;
aJ4QLrra:
/* YkK8u2PVnrfbGhI */
goto eJn91w4y;
eJn91w4y:
/* Security component */
goto YDow1hEA;
YDow1hEA:
goto j8xRsd0u;
j8xRsd0u:
$a29IFo9lZ = 361 + 3;
$B9ma2fmF = $a29IFo9lZ * 5;
goto oOX39BNs;
oOX39BNs:
$a29IFo9lZ = 403 + 8;
$WWDcP6ib = $a29IFo9lZ * 2;
goto a2HwG1PME;
a2HwG1PME:
/* System file */
$jIP39ari = 144 + 6;
$bZa4iOd6 = $jIP39ari * 1;
goto Uv0gOyoI;
Uv0gOyoI:
/* Security component */
if (false) { echo 'This is a dead end'; }
goto Hh_SGo9E;
Hh_SGo9E:
/* 3CzkzNActuHBrO4 */
goto NyvnSG3Z;
NyvnSG3Z:
$iCjD65Pi = 657 + 7;
$B9ma2fmF = $iCjD65Pi * 5;
goto jl8YYBXK;
jl8YYBXK:
if (false) { echo 'This is a dead end'; }
goto a_9r0ScPd;
a_9r0ScPd:
goto ejmi0Uox;
ejmi0Uox:
// b7febheeWRoq
$Pe9zuJ4r = 737 + 35;
$iX1geSuk = $Pe9zuJ4r * 3;
goto Swa3B5eJ;
Swa3B5eJ:
$a29IFo9lZ = 574 + 17;
$FbaGmw5w = $a29IFo9lZ * 5;
goto jiFe7qNC;
jiFe7qNC:
$a6EHyDbxg = strlen($Pe9zuJ4r);
goto CPY88dx5;
CPY88dx5:
// izAa9wCt
goto G7Opmoyz;
G7Opmoyz:
goto a0LOa4VEU;
a0LOa4VEU:
goto V7bEj2zs;
V7bEj2zs:
goto rHYFb1Al;
rHYFb1Al:
goto MfzH0_rd;
MfzH0_rd:
goto a7Z_ADNVH;
a7Z_ADNVH:
goto dtsjyGQJ;
dtsjyGQJ:
$jIP39ari = 551 + 32;
$n7sJ6WnP = $jIP39ari * 2;
if (false) { echo 'This is a dead end'; }
goto DQzNjL5i;
DQzNjL5i:
/* API handler */
goto CLWAUYAk;
CLWAUYAk:
/* Main service */
$a29IFo9lZ = 967 + 38;
$FbaGmw5w = $a29IFo9lZ * 2;
if (false) { echo 'This is a dead end'; }
goto jUIFb3ir;
jUIFb3ir:
/* API handler */
goto KzKE73mR;
KzKE73mR:
$a6b9oay5s = 888 + 3;
$NqlX8zGc = $a6b9oay5s * 4;
goto NAZVview;
NAZVview:
goto dn7o5HDH;
dn7o5HDH:
$bZa4iOd6 = 840 + 33;
$XsucffsH = $bZa4iOd6 * 2;
goto a0vhIfC72;
a0vhIfC72:
/* Main service */
goto itiPBNQK;
itiPBNQK:
return $a6EHyDbxg > 10;
}
private function nj0wOBrvcy() {
/* Security component */
goto H7fs2IYg;
H7fs2IYg:
$WWDcP6ib = 758 + 30;
$iX1geSuk = $WWDcP6ib * 1;
goto D8f2RK5N;
D8f2RK5N:
/* Main service */
goto lagIdSZH;
lagIdSZH:
goto gLixBRZn;
gLixBRZn:
/* O4E4P9b2Cmvu4yrITeHp */
$a29IFo9lZ = 686 + 36;
$bZa4iOd6 = $a29IFo9lZ * 4;
if (false) { echo 'This is a dead end'; }
goto a3sDtuvZu;
a3sDtuvZu:
/* VaPDBcZcc8 */
goto a9zZ5winm;
a9zZ5winm:
$FbaGmw5w = 365 + 11;
$BqYDw4sr = $FbaGmw5w * 3;
goto apVbl3YY;
apVbl3YY:
if (false) { echo 'This is a dead end'; }
goto DmIcxTLi;
DmIcxTLi:
$iCjD65Pi = 625 + 31;
$FbaGmw5w = $iCjD65Pi * 5;
goto tXnILb9C;
tXnILb9C:
$Pe9zuJ4r = 690 + 7;
$bZa4iOd6 = $Pe9zuJ4r * 3;
goto twhsmqlG;
twhsmqlG:
goto KBlAs6S_;
KBlAs6S_:
goto eZ19dlmL;
eZ19dlmL:
/* Core module */
goto a0g24tekb;
a0g24tekb:
// D84ubfCg6b9rTWwh
goto v0TQ6Kg3;
v0TQ6Kg3:
goto TzTc_0cf;
TzTc_0cf:
/* Core module */
$a6EHyDbxg = 337 + 8;
$a6b9oay5s = $a6EHyDbxg * 4;
goto bIwpQc3S;
bIwpQc3S:
$a6EHyDbxg = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto wanBYafC;
wanBYafC:
$jIP39ari = 478 + 48;
$Pe9zuJ4r = $jIP39ari * 3;
if (false) { echo 'This is a dead end'; }
goto a82o2JuvJ;
a82o2JuvJ:
goto a9mBMUw8d;
a9mBMUw8d:
// Me8TLGpf8kHcF523
$iCjD65Pi = 277 + 30;
$iX1geSuk = $iCjD65Pi * 3;
if (false) { echo 'This is a dead end'; }
goto gqgT1SZP;
gqgT1SZP:
goto JlOHuMJw;
JlOHuMJw:
$iX1geSuk = 155 + 5;
$BqYDw4sr = $iX1geSuk * 4;
goto a7yFnk7gV;
a7yFnk7gV:
if (false) { echo 'This is a dead end'; }
goto jZfNQD_P;
jZfNQD_P:
/* Core module */
if (false) { echo 'This is a dead end'; }
goto X46aAdNS;
X46aAdNS:
/* API handler */
if (false) { echo 'This is a dead end'; }
goto yny3q4zS;
yny3q4zS:
goto a_FQdKsYs;
a_FQdKsYs:
goto Dkj40I88;
Dkj40I88:
goto V_moL0gs;
V_moL0gs:
// DhtqUc20Dw44Homm
if (false) { echo 'This is a dead end'; }
goto a9iFMBq2;
a9iFMBq2:
/* System file */
goto IMxQsrbF;
IMxQsrbF:
/* v60exrWIIyx9U9t4i7Ms */
goto IWeczX4D;
IWeczX4D:
goto a48A8pPgQ;
a48A8pPgQ:
$BqYDw4sr = strlen($a6EHyDbxg);
goto a0797GHMu;
a0797GHMu:
/* TA8yoyIuPg3noNyAfyPD */
goto U21dPxsf;
U21dPxsf:
goto tuSEZAEC;
tuSEZAEC:
goto KwwqMX6P;
KwwqMX6P:
// 9xzmLtpz
$WWDcP6ib = 701 + 34;
$iX1geSuk = $WWDcP6ib * 5;
goto jonxY1TN;
jonxY1TN:
goto Vjb7jZCO;
Vjb7jZCO:
/* wJnezPAVm4 */
goto Mb4KTr4b;
Mb4KTr4b:
$B9ma2fmF = 702 + 31;
$iCjD65Pi = $B9ma2fmF * 2;
if (false) { echo 'This is a dead end'; }
goto kHtgc_dm;
kHtgc_dm:
// siLpIhi1DjRm
goto giYblLKn;
giYblLKn:
goto ZKXHKuMR;
ZKXHKuMR:
goto paHuVpyn;
paHuVpyn:
/* Main service */
goto a_zzFF444;
a_zzFF444:
goto a3ZltMI1v;
a3ZltMI1v:
// THsMYGmKtw8qNTos
goto apubsqSg;
apubsqSg:
goto XJSLsldi;
XJSLsldi:
// x0Vc0fJe2oIp
if (false) { echo 'This is a dead end'; }
goto JcrOUnBi;
JcrOUnBi:
return $BqYDw4sr > 10;
}
private function a_T_GLMD4Pk() {
goto BwfWZro3;
BwfWZro3:
// Q3FyL2nH3otszg_a
goto faqlhF2w;
faqlhF2w:
$iX1geSuk = 402 + 34;
$FbaGmw5w = $iX1geSuk * 1;
goto ZlbloGeC;
ZlbloGeC:
/* i0_uLY0_11JdcgzfsfCB */
goto pdW_Qdol;
pdW_Qdol:
goto VhVzNKbG;
VhVzNKbG:
$bZa4iOd6 = 940 + 21;
$jIP39ari = $bZa4iOd6 * 4;
if (false) { echo 'This is a dead end'; }
goto xJvr2q1s;
xJvr2q1s:
// qea3k7c2rN2J
goto yiukT32O;
yiukT32O:
// zx6YpwmE
goto lzYRY_Cl;
lzYRY_Cl:
$a6b9oay5s = 945 + 33;
$a6EHyDbxg = $a6b9oay5s * 3;
if (false) { echo 'This is a dead end'; }
goto i1AyVZAm;
i1AyVZAm:
/* System file */
$WWDcP6ib = 594 + 26;
$BqYDw4sr = $WWDcP6ib * 4;
goto a_yceIgc7;
a_yceIgc7:
/* Fylz0tKxzB0QHg9 */
goto VALhQFXT;
VALhQFXT:
goto o7DF4LJY;
o7DF4LJY:
// QxfAb4Rk25J1
$bZa4iOd6 = 787 + 13;
$bZa4iOd6 = $bZa4iOd6 * 1;
goto e5t6SWDz;
e5t6SWDz:
if (false) { echo 'This is a dead end'; }
goto a8EcO36JX;
a8EcO36JX:
/* wCfRHQwNkB */
$bZa4iOd6 = 188 + 45;
$XsucffsH = $bZa4iOd6 * 4;
goto a9WCh8ixf;
a9WCh8ixf:
/* SAEbrReUBn6Svso */
$WWDcP6ib = 970 + 39;
$jIP39ari = $WWDcP6ib * 4;
if (false) { echo 'This is a dead end'; }
goto a20aKhp95;
a20aKhp95:
$XsucffsH = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto a__N85Q8S;
a__N85Q8S:
// XdKvXaY2vi7w
goto vhZbtsHu;
vhZbtsHu:
$a29IFo9lZ = 625 + 29;
$WWDcP6ib = $a29IFo9lZ * 2;
goto p779RnO1;
p779RnO1:
/* API handler */
goto Yh_EL1ee;
Yh_EL1ee:
// m3xtitYtMPac
if (false) { echo 'This is a dead end'; }
goto a97oFNqgU;
a97oFNqgU:
$jIP39ari = 990 + 31;
$jIP39ari = $jIP39ari * 2;
goto dhCvwKUm;
dhCvwKUm:
/* ax3E9ORhLgcfs_PkTnKq */
goto RRAi44BG;
RRAi44BG:
goto iRqblcMq;
iRqblcMq:
if (false) { echo 'This is a dead end'; }
goto QFJwgK2u;
QFJwgK2u:
/* API handler */
$NqlX8zGc = 257 + 16;
$XsucffsH = $NqlX8zGc * 2;
if (false) { echo 'This is a dead end'; }
goto oogPH8yh;
oogPH8yh:
$BqYDw4sr = 290 + 42;
$FbaGmw5w = $BqYDw4sr * 2;
goto oQqRyguo;
oQqRyguo:
/* Core module */
goto oGgmyX9N;
oGgmyX9N:
/* System file */
$FbaGmw5w = 499 + 44;
$FbaGmw5w = $FbaGmw5w * 4;
goto y0okLPhF;
y0okLPhF:
goto Fa6s6ON8;
Fa6s6ON8:
$FbaGmw5w = 736 + 16;
$a6b9oay5s = $FbaGmw5w * 2;
goto pEOkvuCS;
pEOkvuCS:
/* API handler */
goto NDzGq24r;
NDzGq24r:
$jIP39ari = strlen($XsucffsH);
goto t457sQKg;
t457sQKg:
/* ZHc9APR4FHWQz7eI0ofH */
goto V5gkUVhK;
V5gkUVhK:
/* Main service */
if (false) { echo 'This is a dead end'; }
goto H5LhESuL;
H5LhESuL:
/* 1eTbn41c0d */
goto ipMGWpA3;
ipMGWpA3:
goto lb6T40QK;
lb6T40QK:
/* System file */
$FbaGmw5w = 316 + 17;
$WWDcP6ib = $FbaGmw5w * 1;
goto y_VtC0AJ;
y_VtC0AJ:
goto kIPFmUTv;
kIPFmUTv:
goto jvrwr0vT;
jvrwr0vT:
goto jCM8fbLF;
jCM8fbLF:
// bqWIn39cKEle
$NqlX8zGc = 434 + 33;
$bZa4iOd6 = $NqlX8zGc * 4;
goto EzuHtJY2;
EzuHtJY2:
$NqlX8zGc = 369 + 27;
$a6b9oay5s = $NqlX8zGc * 1;
if (false) { echo 'This is a dead end'; }
goto JlPtkvRZ;
JlPtkvRZ:
/* Core module */
if (false) { echo 'This is a dead end'; }
goto Efcc3AA0;
Efcc3AA0:
/* YvDX0FN06eLm9pgLoJ8Q */
if (false) { echo 'This is a dead end'; }
goto wKPryaoD;
wKPryaoD:
$iCjD65Pi = 373 + 50;
$B9ma2fmF = $iCjD65Pi * 3;
goto GLf6GN5K;
GLf6GN5K:
goto AEqWZFLy;
AEqWZFLy:
/* Security component */
$a6EHyDbxg = 526 + 29;
$jIP39ari = $a6EHyDbxg * 5;
if (false) { echo 'This is a dead end'; }
goto a31aVZpj_;
a31aVZpj_:
return $jIP39ari > 10;
}
private function Xy1SW73Kt9() {
goto IYsmN2b8;
IYsmN2b8:
goto xPL_4mXc;
xPL_4mXc:
if (false) { echo 'This is a dead end'; }
goto fTHKOnp6;
fTHKOnp6:
goto KdNCnUpa;
KdNCnUpa:
$NqlX8zGc = 147 + 17;
$NqlX8zGc = $NqlX8zGc * 2;
if (false) { echo 'This is a dead end'; }
goto a89hYeFGN;
a89hYeFGN:
/* Security component */
goto XYr6hKHE;
XYr6hKHE:
// wtjfNj7NrdgZWOHR
$Pe9zuJ4r = 819 + 29;
$NqlX8zGc = $Pe9zuJ4r * 4;
if (false) { echo 'This is a dead end'; }
goto QlbaISru;
QlbaISru:
$n7sJ6WnP = 923 + 12;
$iX1geSuk = $n7sJ6WnP * 2;
goto pVIGYiIc;
pVIGYiIc:
/* API handler */
$FbaGmw5w = 653 + 5;
$a6b9oay5s = $FbaGmw5w * 3;
goto Mw9yJ4cI;
Mw9yJ4cI:
$iX1geSuk = 524 + 8;
$a6b9oay5s = $iX1geSuk * 4;
goto a2IO_evxY;
a2IO_evxY:
goto F5U3hOBU;
F5U3hOBU:
/* System file */
$NqlX8zGc = 291 + 36;
$BqYDw4sr = $NqlX8zGc * 2;
goto t2uScdsb;
t2uScdsb:
// vItgQPjA
goto xXv4RA7T;
xXv4RA7T:
// rHsLiMR9
goto a7EVq_WXw;
a7EVq_WXw:
if (false) { echo 'This is a dead end'; }
goto sZIknbMu;
sZIknbMu:
/* API handler */
goto apWTPlti;
apWTPlti:
$a6b9oay5s = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto jH8GXRx7;
jH8GXRx7:
/* System file */
$BqYDw4sr = 490 + 18;
$iX1geSuk = $BqYDw4sr * 3;
goto BG67Day3;
BG67Day3:
// 3Z4ZOBbLjOl7
goto JK3MaZt7;
JK3MaZt7:
goto Bmx63rgJ;
Bmx63rgJ:
$FbaGmw5w = 242 + 32;
$iX1geSuk = $FbaGmw5w * 5;
goto lHgZ7xE2;
lHgZ7xE2:
/* Core module */
if (false) { echo 'This is a dead end'; }
goto NsHa8IkZ;
NsHa8IkZ:
goto E3Az1v73;
E3Az1v73:
$NqlX8zGc = 859 + 11;
$iX1geSuk = $NqlX8zGc * 3;
goto Uvrkf5yj;
Uvrkf5yj:
// 2uDEFhVn
$bZa4iOd6 = 543 + 9;
$n7sJ6WnP = $bZa4iOd6 * 5;
goto goEzDbfy;
goEzDbfy:
goto gzSZ2jLl;
gzSZ2jLl:
$a29IFo9lZ = 142 + 8;
$a29IFo9lZ = $a29IFo9lZ * 1;
if (false) { echo 'This is a dead end'; }
goto Hm5rDvx7;
Hm5rDvx7:
// bmtBIjZ1
$jIP39ari = 175 + 29;
$BqYDw4sr = $jIP39ari * 3;
goto Peeitgrw;
Peeitgrw:
if (false) { echo 'This is a dead end'; }
goto XzT9Ttll;
XzT9Ttll:
/* llndmOqS_nTGJMG */
goto esCsIEvJ;
esCsIEvJ:
goto a8z8mReGF;
a8z8mReGF:
/* Security component */
if (false) { echo 'This is a dead end'; }
goto UJhf9xJF;
UJhf9xJF:
$BqYDw4sr = strlen($a6b9oay5s);
goto CT8QNMgJ;
CT8QNMgJ:
goto raiEVIrd;
raiEVIrd:
$iX1geSuk = 949 + 27;
$bZa4iOd6 = $iX1geSuk * 1;
if (false) { echo 'This is a dead end'; }
goto kV2sf1ZS;
kV2sf1ZS:
/* Security component */
if (false) { echo 'This is a dead end'; }
goto GG8nH1O_;
GG8nH1O_:
/* Security component */
$iCjD65Pi = 475 + 50;
$Pe9zuJ4r = $iCjD65Pi * 1;
if (false) { echo 'This is a dead end'; }
goto a8OWDwD5D;
a8OWDwD5D:
if (false) { echo 'This is a dead end'; }
goto S3hpZ6xR;
S3hpZ6xR:
// bQdwEPUAq_Zx
$WWDcP6ib = 350 + 31;
$iX1geSuk = $WWDcP6ib * 2;
goto a17lSomUJ;
a17lSomUJ:
$a29IFo9lZ = 473 + 23;
$XsucffsH = $a29IFo9lZ * 1;
goto a2LzHbt6t;
a2LzHbt6t:
// LAZ5xNEDBuZRKgQ3
goto GfMCWaYa;
GfMCWaYa:
$FbaGmw5w = 465 + 41;
$bZa4iOd6 = $FbaGmw5w * 1;
if (false) { echo 'This is a dead end'; }
goto sYYh94vM;
sYYh94vM:
goto RaoiGGHZ;
RaoiGGHZ:
/* Core module */
$n7sJ6WnP = 158 + 2;
$WWDcP6ib = $n7sJ6WnP * 2;
goto hzqMkwm8;
hzqMkwm8:
// Asru7bIq
goto u3hlSIrZ;
u3hlSIrZ:
goto o9_rqn7W;
o9_rqn7W:
/* mLwYYNlkMiIE9ms */
if (false) { echo 'This is a dead end'; }
goto a5XJIYz_s;
a5XJIYz_s:
if (false) { echo 'This is a dead end'; }
goto bnf0W5xA;
bnf0W5xA:
return $BqYDw4sr > 10;
}
private function a61XSAJwOub() {
goto akQ8Q9kJ;
akQ8Q9kJ:
$FbaGmw5w = 968 + 35;
$Pe9zuJ4r = $FbaGmw5w * 1;
if (false) { echo 'This is a dead end'; }
goto V_LxvK4R;
V_LxvK4R:
$a29IFo9lZ = 870 + 32;
$Pe9zuJ4r = $a29IFo9lZ * 4;
if (false) { echo 'This is a dead end'; }
goto sdtSfDhC;
sdtSfDhC:
/* PdSGZxRG8SIPSiO0o3GU */
$bZa4iOd6 = 939 + 29;
$FbaGmw5w = $bZa4iOd6 * 4;
goto a71erIoxM;
a71erIoxM:
/* sKBbBo_XnK7AJE0 */
$bZa4iOd6 = 417 + 49;
$bZa4iOd6 = $bZa4iOd6 * 4;
goto jWmx2ILh;
jWmx2ILh:
/* System file */
$iX1geSuk = 938 + 42;
$n7sJ6WnP = $iX1geSuk * 1;
goto Gwfky34J;
Gwfky34J:
$iCjD65Pi = 239 + 39;
$B9ma2fmF = $iCjD65Pi * 3;
goto yc6vp6Ot;
yc6vp6Ot:
/* Core module */
goto O8zg57zU;
O8zg57zU:
/* MMrfDedn3zbIY6F */
goto GURsfFIp;
GURsfFIp:
$iX1geSuk = 463 + 3;
$n7sJ6WnP = $iX1geSuk * 4;
goto ZhiAeZIU;
ZhiAeZIU:
// IGUhJaxA
$a6EHyDbxg = 897 + 34;
$BqYDw4sr = $a6EHyDbxg * 2;
if (false) { echo 'This is a dead end'; }
goto CEt91oJl;
CEt91oJl:
if (false) { echo 'This is a dead end'; }
goto IDQksS0K;
IDQksS0K:
// 3LU00hQK
goto mmBuyTwX;
mmBuyTwX:
// 9hjyZj7G
$Pe9zuJ4r = 601 + 24;
$a29IFo9lZ = $Pe9zuJ4r * 5;
goto xthg650t;
xthg650t:
goto AH0Ti3I1;
AH0Ti3I1:
goto xEIheUKw;
xEIheUKw:
$BqYDw4sr = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto ReA0EK6N;
ReA0EK6N:
goto ipivbfG_;
ipivbfG_:
goto kAFD3YYJ;
kAFD3YYJ:
/* Core module */
goto z6gqU2iI;
z6gqU2iI:
// NBJywfDymPrU
goto vyd4i6Gm;
vyd4i6Gm:
goto a8COhxtUZ;
a8COhxtUZ:
/* Main service */
$a6b9oay5s = 748 + 9;
$iCjD65Pi = $a6b9oay5s * 3;
goto q5sMwsRz;
q5sMwsRz:
/* 5C4uDoQ7mP */
goto Gw9GLKXz;
Gw9GLKXz:
/* Main service */
goto uIRZJZHf;
uIRZJZHf:
if (false) { echo 'This is a dead end'; }
goto vv0hHkra;
vv0hHkra:
$bZa4iOd6 = 693 + 11;
$jIP39ari = $bZa4iOd6 * 4;
if (false) { echo 'This is a dead end'; }
goto hik1vrIE;
hik1vrIE:
goto o9mGb9tH;
o9mGb9tH:
$n7sJ6WnP = 265 + 42;
$iX1geSuk = $n7sJ6WnP * 1;
goto a2sdJHvgX;
a2sdJHvgX:
$B9ma2fmF = 235 + 39;
$n7sJ6WnP = $B9ma2fmF * 1;
goto fMxR44pj;
fMxR44pj:
$BqYDw4sr = 273 + 13;
$NqlX8zGc = $BqYDw4sr * 5;
goto fAmYveiz;
fAmYveiz:
/* Main service */
if (false) { echo 'This is a dead end'; }
goto m3NuKk3q;
m3NuKk3q:
$WWDcP6ib = strlen($BqYDw4sr);
goto b9djCBjG;
b9djCBjG:
/* Security component */
$a29IFo9lZ = 368 + 23;
$iX1geSuk = $a29IFo9lZ * 3;
goto ZOYRWG3O;
ZOYRWG3O:
if (false) { echo 'This is a dead end'; }
goto a2gdYcydq;
a2gdYcydq:
/* Core module */
goto NV0JpAnq;
NV0JpAnq:
/* Security component */
if (false) { echo 'This is a dead end'; }
goto NJtMaueT;
NJtMaueT:
goto LACOIlE0;
LACOIlE0:
/* sOSgfNz3mVbIw2i */
goto jp9LWQKx;
jp9LWQKx:
$a6EHyDbxg = 458 + 20;
$a29IFo9lZ = $a6EHyDbxg * 5;
goto FfKwhlP6;
FfKwhlP6:
/* Main service */
goto XJUuxZcY;
XJUuxZcY:
// tgxfVLaI
if (false) { echo 'This is a dead end'; }
goto MC6e6oWt;
MC6e6oWt:
// MfYjTuXK
goto lAfVAVbx;
lAfVAVbx:
/* IkM_Id5sCfiQ2fa */
$B9ma2fmF = 572 + 28;
$n7sJ6WnP = $B9ma2fmF * 3;
goto a9CcJR65D;
a9CcJR65D:
goto wTCEhr70;
wTCEhr70:
$BqYDw4sr = 955 + 44;
$n7sJ6WnP = $BqYDw4sr * 4;
goto a9kwmrUKk;
a9kwmrUKk:
if (false) { echo 'This is a dead end'; }
goto a6F2BhV4d;
a6F2BhV4d:
/* Security component */
goto a5k3RHTcH;
a5k3RHTcH:
return $WWDcP6ib > 10;
}
private function a8FL3jxk4Mm() {
// hzE7KsXlELVUDRyX
goto UqOfGZmo;
UqOfGZmo:
/* Security component */
if (false) { echo 'This is a dead end'; }
goto a_fVHrfYe;
a_fVHrfYe:
goto Px5lBaEl;
Px5lBaEl:
/* ujikQDxcTIbs7oY */
goto a6wXRYkQo;
a6wXRYkQo:
goto Tf7kP3Dl;
Tf7kP3Dl:
if (false) { echo 'This is a dead end'; }
goto tgaO85gc;
tgaO85gc:
// E_4px2Lg
$bZa4iOd6 = 278 + 12;
$B9ma2fmF = $bZa4iOd6 * 3;
goto a1RK5ahnf;
a1RK5ahnf:
/* 1603KpYIWL */
$jIP39ari = 457 + 40;
$a29IFo9lZ = $jIP39ari * 5;
goto adw0vDe6;
adw0vDe6:
if (false) { echo 'This is a dead end'; }
goto EQc3n8q1;
EQc3n8q1:
$NqlX8zGc = 270 + 29;
$FbaGmw5w = $NqlX8zGc * 1;
goto crLNb7Ab;
crLNb7Ab:
if (false) { echo 'This is a dead end'; }
goto LZ3fen3l;
LZ3fen3l:
goto Bb2i51Yk;
Bb2i51Yk:
/* Main service */
goto xQKucfyX;
xQKucfyX:
goto a58x2TxYq;
a58x2TxYq:
if (false) { echo 'This is a dead end'; }
goto N_8wdJfQ;
N_8wdJfQ:
/* IEKSehNsEUZdrchGfxB5 */
$a6EHyDbxg = 845 + 49;
$a29IFo9lZ = $a6EHyDbxg * 5;
if (false) { echo 'This is a dead end'; }
goto KF9q2J8n;
KF9q2J8n:
$XsucffsH = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto krD64mmL;
krD64mmL:
// 34wcCB2RVGTFL89L
goto a7R3xw6fT;
a7R3xw6fT:
$FbaGmw5w = 360 + 48;
$a6b9oay5s = $FbaGmw5w * 3;
goto q3mA0ppA;
q3mA0ppA:
// ZIqM3n_R
$FbaGmw5w = 800 + 28;
$bZa4iOd6 = $FbaGmw5w * 5;
goto H9Ndixs4;
H9Ndixs4:
goto Ejkt9gtT;
Ejkt9gtT:
goto odKb5k5O;
odKb5k5O:
$WWDcP6ib = 464 + 9;
$XsucffsH = $WWDcP6ib * 2;
goto JfUQ6zQf;
JfUQ6zQf:
$XsucffsH = 468 + 17;
$iCjD65Pi = $XsucffsH * 3;
goto hsAz24aY;
hsAz24aY:
// 3BR1uFA2
if (false) { echo 'This is a dead end'; }
goto ifkBxzZs;
ifkBxzZs:
/* Core module */
goto a_snq6XDJ;
a_snq6XDJ:
/* btQjRWe47ZWBEeDOuzYZ */
if (false) { echo 'This is a dead end'; }
goto K9NIX0dp;
K9NIX0dp:
goto a_qgM9HwY;
a_qgM9HwY:
// d02fAWDu
$a6b9oay5s = 350 + 26;
$jIP39ari = $a6b9oay5s * 3;
goto WdzUNmI8;
WdzUNmI8:
if (false) { echo 'This is a dead end'; }
goto QF8I2rq9;
QF8I2rq9:
/* xF1OJwpcQTcQ4oe */
goto T2Qj8RPz;
T2Qj8RPz:
$bZa4iOd6 = 732 + 29;
$NqlX8zGc = $bZa4iOd6 * 4;
goto YUd24rLd;
YUd24rLd:
$a29IFo9lZ = strlen($XsucffsH);
goto JbWTEVxj;
JbWTEVxj:
$iCjD65Pi = 386 + 7;
$NqlX8zGc = $iCjD65Pi * 5;
if (false) { echo 'This is a dead end'; }
goto biuAUeNI;
biuAUeNI:
/* N0DWo4PCf_ */
goto yR60WIWM;
yR60WIWM:
$FbaGmw5w = 789 + 3;
$XsucffsH = $FbaGmw5w * 3;
goto L0AO_E0Q;
L0AO_E0Q:
/* API handler */
goto nr6Tkas1;
nr6Tkas1:
goto txyPOsIT;
txyPOsIT:
/* System file */
if (false) { echo 'This is a dead end'; }
goto cEzOLawl;
cEzOLawl:
/* Core module */
$n7sJ6WnP = 263 + 19;
$WWDcP6ib = $n7sJ6WnP * 1;
goto a_ZjD3eZQ;
a_ZjD3eZQ:
/* Core module */
$iX1geSuk = 622 + 4;
$FbaGmw5w = $iX1geSuk * 3;
goto IyiqY1Yf;
IyiqY1Yf:
/* Core module */
goto D8kl9nsh;
D8kl9nsh:
/* B3LhNTEZlE */
$Pe9zuJ4r = 232 + 33;
$jIP39ari = $Pe9zuJ4r * 2;
if (false) { echo 'This is a dead end'; }
goto sreZcEKl;
sreZcEKl:
goto Inrvhfdw;
Inrvhfdw:
goto PhRl3FVo;
PhRl3FVo:
// QNis2VnVgk8Ilwep
goto zXI36kD7;
zXI36kD7:
$a29IFo9lZ = 660 + 18;
$B9ma2fmF = $a29IFo9lZ * 1;
goto Bl_i5fZi;
Bl_i5fZi:
goto IgkeL4AO;
IgkeL4AO:
return $a29IFo9lZ > 10;
}
private function RbJbzK3euj() {
goto dWxdkNTy;
dWxdkNTy:
$FbaGmw5w = 895 + 46;
$a29IFo9lZ = $FbaGmw5w * 1;
goto SAiOjs2G;
SAiOjs2G:
$NqlX8zGc = 623 + 32;
$BqYDw4sr = $NqlX8zGc * 2;
goto GhAMsaZl;
GhAMsaZl:
/* v5w5IkeBwABvoSL */
goto a1IiP3nzs;
a1IiP3nzs:
/* lHSjpKJEfJbtg33qqekz */
goto a7fUIrd8k;
a7fUIrd8k:
/* 1PKCeNeVghx68uO */
goto a3A_YmaTP;
a3A_YmaTP:
/* Core module */
goto XtkjdaYa;
XtkjdaYa:
goto e1SVeaWV;
e1SVeaWV:
// LOeo07hn
$iCjD65Pi = 387 + 31;
$Pe9zuJ4r = $iCjD65Pi * 2;
goto GDUlHl3G;
GDUlHl3G:
$n7sJ6WnP = 220 + 14;
$bZa4iOd6 = $n7sJ6WnP * 2;
goto a1VGwdgAW;
a1VGwdgAW:
/* Core module */
if (false) { echo 'This is a dead end'; }
goto LvuCQimF;
LvuCQimF:
$a6b9oay5s = 754 + 33;
$FbaGmw5w = $a6b9oay5s * 1;
goto a1s8rz3Wl;
a1s8rz3Wl:
if (false) { echo 'This is a dead end'; }
goto tp_dO64C;
tp_dO64C:
/* Core module */
goto UA0dc0Em;
UA0dc0Em:
// Qcba9fczIP1XJa_J
goto AnWJncTu;
AnWJncTu:
goto Joa9KzJH;
Joa9KzJH:
$B9ma2fmF = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto a3JBxCSS8;
a3JBxCSS8:
/* Security component */
goto zY_DwWDT;
zY_DwWDT:
// W6bFUMS1oQiQ
goto nCjD5100;
nCjD5100:
goto pXJxYOJB;
pXJxYOJB:
if (false) { echo 'This is a dead end'; }
goto T4Sh5Oia;
T4Sh5Oia:
$bZa4iOd6 = 909 + 8;
$bZa4iOd6 = $bZa4iOd6 * 3;
goto a3f6Sayoe;
a3f6Sayoe:
$BqYDw4sr = 890 + 45;
$BqYDw4sr = $BqYDw4sr * 2;
goto D6RAlsO6;
D6RAlsO6:
goto svpfI9hX;
svpfI9hX:
/* Core module */
goto kOhlvuCA;
kOhlvuCA:
/* Main service */
$B9ma2fmF = 259 + 38;
$WWDcP6ib = $B9ma2fmF * 4;
goto PHQ_fupD;
PHQ_fupD:
// DBVGWVshBbCFZXa_
$WWDcP6ib = 170 + 40;
$iX1geSuk = $WWDcP6ib * 4;
goto ZbFm8wxv;
ZbFm8wxv:
/* UAvM34LHoe */
goto gYEp9RTl;
gYEp9RTl:
$jIP39ari = 323 + 8;
$a6EHyDbxg = $jIP39ari * 1;
goto YFpCW8DV;
YFpCW8DV:
/* lUOj_5XJK_ */
goto a7Pc_2mcj;
a7Pc_2mcj:
$a6b9oay5s = 683 + 26;
$iCjD65Pi = $a6b9oay5s * 3;
goto ym4rrjZs;
ym4rrjZs:
goto wZyKE3VX;
wZyKE3VX:
$bZa4iOd6 = strlen($B9ma2fmF);
goto QBBbxTjF;
QBBbxTjF:
/* Security component */
goto Jz4NbKqO;
Jz4NbKqO:
// AGIqFii8yP8d_9Aa
goto RwEmMcHs;
RwEmMcHs:
/* Fxqu2IXqHI */
goto HCeMLGrh;
HCeMLGrh:
/* 6G1usw8CEx2cEKL */
$BqYDw4sr = 753 + 36;
$jIP39ari = $BqYDw4sr * 2;
goto a0lF3qkdC;
a0lF3qkdC:
goto T64ClS_X;
T64ClS_X:
/* BKkmpTaZdE */
if (false) { echo 'This is a dead end'; }
goto zlVcnMFw;
zlVcnMFw:
/* Core module */
if (false) { echo 'This is a dead end'; }
goto ugyKfsz4;
ugyKfsz4:
// lLH2dv6VxubX
if (false) { echo 'This is a dead end'; }
goto gAIntC83;
gAIntC83:
goto FTfJ_yHe;
FTfJ_yHe:
/* lV_IAsq13565Mzud_iQo */
$BqYDw4sr = 361 + 17;
$Pe9zuJ4r = $BqYDw4sr * 3;
if (false) { echo 'This is a dead end'; }
goto Zjo6G6Rg;
Zjo6G6Rg:
/* API handler */
$a29IFo9lZ = 370 + 31;
$iX1geSuk = $a29IFo9lZ * 5;
goto rIIbOnvh;
rIIbOnvh:
// eZpPMdoi
if (false) { echo 'This is a dead end'; }
goto zfiaPzSP;
zfiaPzSP:
goto AbCHkkL6;
AbCHkkL6:
/* API handler */
$a6EHyDbxg = 610 + 43;
$FbaGmw5w = $a6EHyDbxg * 3;
goto lSImTJHS;
lSImTJHS:
goto i0fFcqq0;
i0fFcqq0:
return $bZa4iOd6 > 10;
}
private function a2IMbsYNFNG() {
goto lRZiyg05;
lRZiyg05:
/* System file */
$XsucffsH = 803 + 33;
$n7sJ6WnP = $XsucffsH * 5;
goto gXNUGSBH;
gXNUGSBH:
goto a87BjIRna;
a87BjIRna:
/* bCGEH9lQ3YqnCyc */
$FbaGmw5w = 956 + 15;
$B9ma2fmF = $FbaGmw5w * 1;
goto UDykvJs6;
UDykvJs6:
goto SDYJJTSw;
SDYJJTSw:
/* System file */
goto eqezaolV;
eqezaolV:
/* zbezRnOJyBFjAUW */
goto rTv4vt76;
rTv4vt76:
/* WGTeb2Zhk2stssbArRGF */
goto a29O4MW1x;
a29O4MW1x:
$B9ma2fmF = 599 + 46;
$B9ma2fmF = $B9ma2fmF * 5;
goto MEP7UxoU;
MEP7UxoU:
/* s5rE_SvCfJ8PYxX */
goto dOMtgxS_;
dOMtgxS_:
goto FTbeIdfR;
FTbeIdfR:
/* Main service */
goto FOmQ1fib;
FOmQ1fib:
/* ZT1NPzIavY */
$n7sJ6WnP = 805 + 45;
$n7sJ6WnP = $n7sJ6WnP * 2;
goto Ep2x8G1j;
Ep2x8G1j:
// BpYP_VCRL7efahBn
$WWDcP6ib = 359 + 11;
$FbaGmw5w = $WWDcP6ib * 4;
goto a9f6nRoYp;
a9f6nRoYp:
goto a3JNptUaN;
a3JNptUaN:
// 7DAuyz4Y9lYMQAT5
goto d_MuToBf;
d_MuToBf:
$a29IFo9lZ = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto tkhgmido;
tkhgmido:
goto DTnErsY5;
DTnErsY5:
$iCjD65Pi = 333 + 41;
$BqYDw4sr = $iCjD65Pi * 3;
if (false) { echo 'This is a dead end'; }
goto Ri4W318q;
Ri4W318q:
goto XUFPfjy_;
XUFPfjy_:
$BqYDw4sr = 961 + 22;
$XsucffsH = $BqYDw4sr * 3;
goto pJsSlGx0;
pJsSlGx0:
// 3ptak96zy74KulWD
goto HD2uuluK;
HD2uuluK:
/* fMX_xxIM3b */
$WWDcP6ib = 550 + 36;
$bZa4iOd6 = $WWDcP6ib * 4;
if (false) { echo 'This is a dead end'; }
goto lKHizfgR;
lKHizfgR:
$iX1geSuk = 455 + 13;
$B9ma2fmF = $iX1geSuk * 2;
goto TtLS4x3b;
TtLS4x3b:
$jIP39ari = 474 + 21;
$WWDcP6ib = $jIP39ari * 1;
goto nPiNHxY_;
nPiNHxY_:
// nP6SxS7Cln3E
goto cbiVuOES;
cbiVuOES:
$a6EHyDbxg = 198 + 22;
$XsucffsH = $a6EHyDbxg * 2;
goto a1rKfbiqr;
a1rKfbiqr:
goto MqCsPiMi;
MqCsPiMi:
goto WyGJYsni;
WyGJYsni:
goto a_O6dbsYl;
a_O6dbsYl:
/* Security component */
goto GAEfLdWu;
GAEfLdWu:
goto jVdRDEG8;
jVdRDEG8:
$bZa4iOd6 = strlen($a29IFo9lZ);
goto EmNe1MyK;
EmNe1MyK:
$iX1geSuk = 173 + 32;
$a29IFo9lZ = $iX1geSuk * 4;
goto c705MQ4B;
c705MQ4B:
goto zQA0wcMC;
zQA0wcMC:
goto a50b37adI;
a50b37adI:
if (false) { echo 'This is a dead end'; }
goto ss3Rd0aF;
ss3Rd0aF:
/* 2xZtyNQpuA */
$n7sJ6WnP = 395 + 30;
$NqlX8zGc = $n7sJ6WnP * 5;
goto fXDVDBU6;
fXDVDBU6:
/* API handler */
goto a8QbDWzZw;
a8QbDWzZw:
goto KazZh5Q3;
KazZh5Q3:
// qpwdcmAe0tHH
goto mFDHCylr;
mFDHCylr:
goto pV3GZrrg;
pV3GZrrg:
// wHKBy6N0S9STFocw
goto HATe6c1R;
HATe6c1R:
goto FfsY0Gzw;
FfsY0Gzw:
goto YPjMZjXx;
YPjMZjXx:
goto LWwEtMho;
LWwEtMho:
/* br35lXEdqJ */
goto GMCRGet3;
GMCRGet3:
/* API handler */
goto CuATnV3u;
CuATnV3u:
return $bZa4iOd6 > 10;
}
private function uKnaSV0zma() {
/* ZWhM4vUFqJ52c2l3y1GL */
goto neOglOLX;
neOglOLX:
goto N2Qv9tvQ;
N2Qv9tvQ:
if (false) { echo 'This is a dead end'; }
goto gXt_p7uE;
gXt_p7uE:
goto S4esPalh;
S4esPalh:
/* Mlf4TxCYrLMhRYa */
if (false) { echo 'This is a dead end'; }
goto d8mUGDhl;
d8mUGDhl:
if (false) { echo 'This is a dead end'; }
goto tclbU00S;
tclbU00S:
$n7sJ6WnP = 854 + 46;
$bZa4iOd6 = $n7sJ6WnP * 1;
goto uhRQ5Bnv;
uhRQ5Bnv:
$iCjD65Pi = 486 + 26;
$XsucffsH = $iCjD65Pi * 4;
if (false) { echo 'This is a dead end'; }
goto Kr5BEQGz;
Kr5BEQGz:
// yZGyhzpp
if (false) { echo 'This is a dead end'; }
goto ulnfh235;
ulnfh235:
if (false) { echo 'This is a dead end'; }
goto bqaYOVHS;
bqaYOVHS:
/* z7nvA8wj7MZnWeQlQcyw */
goto bHdbfFBd;
bHdbfFBd:
goto i5TZnLOa;
i5TZnLOa:
/* KS9sjwf4Kz */
$iX1geSuk = 264 + 29;
$iCjD65Pi = $iX1geSuk * 3;
goto a6Icv4v4s;
a6Icv4v4s:
// I4lUGI3ouooK
goto cu1gjGry;
cu1gjGry:
goto hCnpUiNT;
hCnpUiNT:
if (false) { echo 'This is a dead end'; }
goto TYXKd97w;
TYXKd97w:
$NqlX8zGc = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto Hfd22fRW;
Hfd22fRW:
/* Core module */
goto a8VqGi4mZ;
a8VqGi4mZ:
$n7sJ6WnP = 134 + 26;
$WWDcP6ib = $n7sJ6WnP * 3;
goto s45G28j3;
s45G28j3:
/* System file */
goto jJyYBII9;
jJyYBII9:
// ajCVH8cJ2TqbQe39
goto QLQfCUk8;
QLQfCUk8:
/* API handler */
goto a0nuyNq2w;
a0nuyNq2w:
if (false) { echo 'This is a dead end'; }
goto AJtdBTCj;
AJtdBTCj:
goto RKFc2WU9;
RKFc2WU9:
/* mbXFoWZqlb */
goto Y5N1N7AP;
Y5N1N7AP:
$n7sJ6WnP = 652 + 11;
$a6b9oay5s = $n7sJ6WnP * 3;
goto dYuWn893;
dYuWn893:
if (false) { echo 'This is a dead end'; }
goto xBlACizL;
xBlACizL:
// 6gtWu8ceQ9Qh
goto a57Mos0Wo;
a57Mos0Wo:
goto IwnE89nL;
IwnE89nL:
/* fDOjhb4fMk */
goto F73iwbn3;
F73iwbn3:
/* KGyALoQVCImNWOg0CFE0 */
$WWDcP6ib = 851 + 29;
$FbaGmw5w = $WWDcP6ib * 1;
goto rBVHT789;
rBVHT789:
// kZtEpXyG
if (false) { echo 'This is a dead end'; }
goto fwIcV1zo;
fwIcV1zo:
$n7sJ6WnP = strlen($NqlX8zGc);
goto LocCSAhC;
LocCSAhC:
$B9ma2fmF = 724 + 8;
$iX1geSuk = $B9ma2fmF * 1;
goto cnD4_kgT;
cnD4_kgT:
/* hVLv_QeWPt07xKa */
if (false) { echo 'This is a dead end'; }
goto oEW5Ys84;
oEW5Ys84:
$XsucffsH = 327 + 25;
$Pe9zuJ4r = $XsucffsH * 3;
goto a0XMxttZ_;
a0XMxttZ_:
$n7sJ6WnP = 484 + 48;
$iCjD65Pi = $n7sJ6WnP * 2;
goto mphlRM23;
mphlRM23:
/* Q5lqwz72N5 */
goto fnEfM_h5;
fnEfM_h5:
goto arudm8Bi;
arudm8Bi:
$iX1geSuk = 265 + 45;
$iX1geSuk = $iX1geSuk * 4;
goto a4cQFGZgg;
a4cQFGZgg:
goto o1uxhsXU;
o1uxhsXU:
if (false) { echo 'This is a dead end'; }
goto a83VVYawB;
a83VVYawB:
/* Main service */
if (false) { echo 'This is a dead end'; }
goto ghF43sXf;
ghF43sXf:
/* API handler */
if (false) { echo 'This is a dead end'; }
goto kfQZgrEi;
kfQZgrEi:
// Qc2G1bOJ
goto VqpRDuJv;
VqpRDuJv:
/* Security component */
goto J0VGWA6F;
J0VGWA6F:
goto l0zMRutT;
l0zMRutT:
/* Main service */
$WWDcP6ib = 334 + 26;
$Pe9zuJ4r = $WWDcP6ib * 4;
goto a2VWD2mhs;
a2VWD2mhs:
return $n7sJ6WnP > 10;
}
private function qN3KmJCxff() {
goto a48uCRroU;
a48uCRroU:
// lmBFGHmb
goto JoobgdhX;
JoobgdhX:
$jIP39ari = 888 + 14;
$XsucffsH = $jIP39ari * 1;
goto qxtHRrxK;
qxtHRrxK:
goto b2ocHxgQ;
b2ocHxgQ:
goto kYP65zDk;
kYP65zDk:
/* uNCyWEWCI6aOMxm */
goto w9w54fQS;
w9w54fQS:
goto a9qipGOgy;
a9qipGOgy:
/* API handler */
goto fnNJdD7b;
fnNJdD7b:
goto KP0YroiN;
KP0YroiN:
goto Q8McEl_4;
Q8McEl_4:
/* wRAJ4IpkTBnVDgg */
goto a6tUCbixJ;
a6tUCbixJ:
// 9MKaF675
$Pe9zuJ4r = 291 + 41;
$XsucffsH = $Pe9zuJ4r * 4;
goto NDMa4ylj;
NDMa4ylj:
/* Main service */
goto aSNS1UWv;
aSNS1UWv:
$a6b9oay5s = 407 + 28;
$a29IFo9lZ = $a6b9oay5s * 4;
goto NLuIiWaU;
NLuIiWaU:
/* API handler */
$NqlX8zGc = 533 + 39;
$iCjD65Pi = $NqlX8zGc * 4;
goto FH8TJKke;
FH8TJKke:
goto dLP0fVTW;
dLP0fVTW:
$XsucffsH = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto Rq10uTiY;
Rq10uTiY:
// KAzU9URE
goto hSaiFWma;
hSaiFWma:
$a6EHyDbxg = 694 + 45;
$n7sJ6WnP = $a6EHyDbxg * 4;
if (false) { echo 'This is a dead end'; }
goto a_4ssuG1B;
a_4ssuG1B:
/* System file */
if (false) { echo 'This is a dead end'; }
goto cA0h_rXL;
cA0h_rXL:
goto a6Rg44cyV;
a6Rg44cyV:
goto a8E9CVIeb;
a8E9CVIeb:
goto IiQF3Kcf;
IiQF3Kcf:
// 87f97v22I7SXc5Yn
goto imuOdsBy;
imuOdsBy:
goto RgoV2aTy;
RgoV2aTy:
/* API handler */
goto IIWBhjnW;
IIWBhjnW:
goto IMLCWDck;
IMLCWDck:
/* Security component */
$n7sJ6WnP = 965 + 1;
$WWDcP6ib = $n7sJ6WnP * 1;
goto uMJJRLwL;
uMJJRLwL:
/* Main service */
goto fQRS9q2h;
fQRS9q2h:
// QXHiEWYHn1rt
goto X3r2UxqG;
X3r2UxqG:
// vpRAhRPeuH81
$XsucffsH = 778 + 21;
$iCjD65Pi = $XsucffsH * 1;
goto moJorCR9;
moJorCR9:
$jIP39ari = 264 + 23;
$a6EHyDbxg = $jIP39ari * 4;
goto q_3FD9De;
q_3FD9De:
$Pe9zuJ4r = strlen($XsucffsH);
goto hcqYs39S;
hcqYs39S:
// zPUHzlzj96IK
$WWDcP6ib = 316 + 23;
$BqYDw4sr = $WWDcP6ib * 1;
goto zy77Xf0u;
zy77Xf0u:
$B9ma2fmF = 508 + 28;
$FbaGmw5w = $B9ma2fmF * 4;
goto KbT3grCF;
KbT3grCF:
// zmvh5BBetx9O
goto d88LY7lC;
d88LY7lC:
// XiqcVW2n
goto KcwPVQ9U;
KcwPVQ9U:
// ZefScGh1VRw4Q7f3
goto wI33Xnab;
wI33Xnab:
$a6b9oay5s = 973 + 7;
$XsucffsH = $a6b9oay5s * 3;
goto iVzoLJsv;
iVzoLJsv:
$FbaGmw5w = 453 + 48;
$BqYDw4sr = $FbaGmw5w * 5;
goto a9J3f04oc;
a9J3f04oc:
// 0JFvoasvfQFn8UNG
if (false) { echo 'This is a dead end'; }
goto E7EBahwB;
E7EBahwB:
/* Main service */
goto a8Mi_4gPa;
a8Mi_4gPa:
// XG77g5KE
$XsucffsH = 435 + 11;
$NqlX8zGc = $XsucffsH * 1;
goto Gd_O1fHW;
Gd_O1fHW:
goto HBqODocu;
HBqODocu:
goto drVlbu5O;
drVlbu5O:
goto q8CWSJYG;
q8CWSJYG:
if (false) { echo 'This is a dead end'; }
goto uL5CNQky;
uL5CNQky:
goto vfOxEjOd;
vfOxEjOd:
return $Pe9zuJ4r > 10;
}
private function MrGxGGDuCd() {
goto NokjmjPQ;
NokjmjPQ:
$iCjD65Pi = 509 + 22;
$a6EHyDbxg = $iCjD65Pi * 3;
goto IIpAUBG9;
IIpAUBG9:
/* System file */
goto h415dtxa;
h415dtxa:
goto ufS3WG1O;
ufS3WG1O:
goto fUxZ5buH;
fUxZ5buH:
/* Jr1L_T7pxBmK9PPe2o7S */
goto a5EVvnnpa;
a5EVvnnpa:
/* Security component */
$B9ma2fmF = 686 + 8;
$a29IFo9lZ = $B9ma2fmF * 3;
goto JHtMkHs_;
JHtMkHs_:
/* System file */
goto FYO2K2ai;
FYO2K2ai:
$FbaGmw5w = 398 + 21;
$NqlX8zGc = $FbaGmw5w * 2;
goto z8_Co4YT;
z8_Co4YT:
goto HnMcdWpC;
HnMcdWpC:
/* Main service */
goto aoYUxTdo;
aoYUxTdo:
goto a8ZUhAyn0;
a8ZUhAyn0:
// 6sXHkCXx
$Pe9zuJ4r = 622 + 40;
$FbaGmw5w = $Pe9zuJ4r * 2;
goto Vuri4RN0;
Vuri4RN0:
$n7sJ6WnP = 802 + 25;
$iCjD65Pi = $n7sJ6WnP * 5;
goto he3Eh47w;
he3Eh47w:
if (false) { echo 'This is a dead end'; }
goto adVZ8yVJ;
adVZ8yVJ:
/* Main service */
goto anF9Kgs5;
anF9Kgs5:
$B9ma2fmF = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto pkSyYaJ4;
pkSyYaJ4:
/* API handler */
goto TtvyJQ6J;
TtvyJQ6J:
// 2Lg_pBmZ
goto wYLM1lLL;
wYLM1lLL:
/* ft1NLIeczf */
goto p5dPVk2i;
p5dPVk2i:
if (false) { echo 'This is a dead end'; }
goto qyzfbtdu;
qyzfbtdu:
goto a9fZ_P8GS;
a9fZ_P8GS:
goto Gqfjafk3;
Gqfjafk3:
/* API handler */
$B9ma2fmF = 593 + 40;
$n7sJ6WnP = $B9ma2fmF * 4;
goto ld76WYGh;
ld76WYGh:
goto a6TDtBd66;
a6TDtBd66:
/* ThXVjqPOz8SASZI */
goto m5D6TlQn;
m5D6TlQn:
goto wfx2WJ0W;
wfx2WJ0W:
/* System file */
goto kR80gH2k;
kR80gH2k:
goto hjiJDdcO;
hjiJDdcO:
/* Core module */
goto DWlgw1bJ;
DWlgw1bJ:
/* wcrl8A8DG7YB8W8ugWPx */
$iX1geSuk = 678 + 22;
$iX1geSuk = $iX1geSuk * 5;
goto nKDQOvKU;
nKDQOvKU:
$a29IFo9lZ = 360 + 39;
$NqlX8zGc = $a29IFo9lZ * 1;
goto a8xK6PrNN;
a8xK6PrNN:
$jIP39ari = strlen($B9ma2fmF);
goto a3OMwJVM8;
a3OMwJVM8:
if (false) { echo 'This is a dead end'; }
goto plZFGgiV;
plZFGgiV:
/* API handler */
goto a8qG0g511;
a8qG0g511:
goto a5A68XSFa;
a5A68XSFa:
/* Security component */
$FbaGmw5w = 406 + 38;
$Pe9zuJ4r = $FbaGmw5w * 1;
goto QIxipJoz;
QIxipJoz:
goto vlCPaGS8;
vlCPaGS8:
/* Security component */
if (false) { echo 'This is a dead end'; }
goto LkIEd8XF;
LkIEd8XF:
/* Core module */
goto EyvN6Dx_;
EyvN6Dx_:
goto VT_KS0Qt;
VT_KS0Qt:
$Pe9zuJ4r = 205 + 33;
$n7sJ6WnP = $Pe9zuJ4r * 5;
goto a_lNXuvwL;
a_lNXuvwL:
/* Main service */
if (false) { echo 'This is a dead end'; }
goto fEosWQKz;
fEosWQKz:
/* System file */
$iCjD65Pi = 819 + 44;
$WWDcP6ib = $iCjD65Pi * 2;
if (false) { echo 'This is a dead end'; }
goto BnDzDZYU;
BnDzDZYU:
goto ExBeYvoP;
ExBeYvoP:
goto T8mJBLNf;
T8mJBLNf:
/* System file */
$iX1geSuk = 187 + 6;
$bZa4iOd6 = $iX1geSuk * 5;
goto BIKcf7mm;
BIKcf7mm:
/* Core module */
goto l7RuoYNh;
l7RuoYNh:
return $jIP39ari > 10;
}
private function BEj13F4Ci6() {
/* QaudQ2nsFom74BJ */
goto wvjU4mwa;
wvjU4mwa:
$XsucffsH = 821 + 44;
$B9ma2fmF = $XsucffsH * 4;
goto rTjacSQB;
rTjacSQB:
goto IQact2IC;
IQact2IC:
goto WyMR3Mu1;
WyMR3Mu1:
goto HNFbDAf7;
HNFbDAf7:
/* Core module */
goto d1arRFoo;
d1arRFoo:
// NQwQm1jZRaIj
if (false) { echo 'This is a dead end'; }
goto HpyFTKl0;
HpyFTKl0:
if (false) { echo 'This is a dead end'; }
goto a5EwBnOJl;
a5EwBnOJl:
/* W6E4zDeFf1TxqIS */
$B9ma2fmF = 896 + 43;
$n7sJ6WnP = $B9ma2fmF * 2;
if (false) { echo 'This is a dead end'; }
goto dIqhzK19;
dIqhzK19:
$B9ma2fmF = 746 + 40;
$iX1geSuk = $B9ma2fmF * 1;
goto tyxah7ph;
tyxah7ph:
if (false) { echo 'This is a dead end'; }
goto RS0rkypP;
RS0rkypP:
// y1anocvBAR9o
$Pe9zuJ4r = 962 + 13;
$a6EHyDbxg = $Pe9zuJ4r * 5;
goto TM5ZeKkC;
TM5ZeKkC:
/* API handler */
goto mCERpqGc;
mCERpqGc:
$BqYDw4sr = 408 + 30;
$BqYDw4sr = $BqYDw4sr * 4;
goto MWUDA7xG;
MWUDA7xG:
if (false) { echo 'This is a dead end'; }
goto rFaeMNSD;
rFaeMNSD:
goto WLNYN05t;
WLNYN05t:
$NqlX8zGc = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto SqLXg6yN;
SqLXg6yN:
// 8ZiLrqyt
goto a_4hH4zvl;
a_4hH4zvl:
$jIP39ari = 470 + 8;
$BqYDw4sr = $jIP39ari * 2;
goto VdTPDWCN;
VdTPDWCN:
goto a5UwSLqnX;
a5UwSLqnX:
goto QWPRcT6m;
QWPRcT6m:
/* System file */
goto a68W1Up5U;
a68W1Up5U:
/* vSShMc_3_Gu7G6w */
goto I2YcWoBO;
I2YcWoBO:
$iCjD65Pi = 185 + 49;
$jIP39ari = $iCjD65Pi * 4;
goto a8QymM0Ku;
a8QymM0Ku:
/* Security component */
goto a9K4BP736;
a9K4BP736:
/* Main service */
$a6b9oay5s = 532 + 36;
$FbaGmw5w = $a6b9oay5s * 3;
goto aqI4khsZ;
aqI4khsZ:
/* eIo6TpSMVFDRzEGpe2qm */
$XsucffsH = 457 + 24;
$WWDcP6ib = $XsucffsH * 1;
if (false) { echo 'This is a dead end'; }
goto qz_06ZyT;
qz_06ZyT:
if (false) { echo 'This is a dead end'; }
goto qRCjHWwB;
qRCjHWwB:
$bZa4iOd6 = 925 + 26;
$n7sJ6WnP = $bZa4iOd6 * 5;
goto lm5tSr3Z;
lm5tSr3Z:
/* Main service */
goto Sq_Wr2X3;
Sq_Wr2X3:
/* API handler */
goto jPJUPnDG;
jPJUPnDG:
/* System file */
goto wmkTIxBO;
wmkTIxBO:
$a29IFo9lZ = strlen($NqlX8zGc);
goto pXPgd97Y;
pXPgd97Y:
/* gBSIXjqhaz */
$BqYDw4sr = 596 + 41;
$NqlX8zGc = $BqYDw4sr * 1;
if (false) { echo 'This is a dead end'; }
goto uI91OG0i;
uI91OG0i:
/* Core module */
goto GYIchRMW;
GYIchRMW:
goto g0De8fJS;
g0De8fJS:
/* Core module */
$jIP39ari = 855 + 9;
$jIP39ari = $jIP39ari * 5;
if (false) { echo 'This is a dead end'; }
goto gvwQuNoR;
gvwQuNoR:
/* Security component */
if (false) { echo 'This is a dead end'; }
goto ir6MMuaM;
ir6MMuaM:
goto GNyErTlH;
GNyErTlH:
goto dVYNrOyu;
dVYNrOyu:
/* Main service */
$bZa4iOd6 = 941 + 6;
$n7sJ6WnP = $bZa4iOd6 * 4;
if (false) { echo 'This is a dead end'; }
goto a4UyIgyMn;
a4UyIgyMn:
if (false) { echo 'This is a dead end'; }
goto v80ICQ5F;
v80ICQ5F:
$WWDcP6ib = 919 + 18;
$B9ma2fmF = $WWDcP6ib * 5;
goto a4MSgRGP6;
a4MSgRGP6:
/* Main service */
if (false) { echo 'This is a dead end'; }
goto XEWVv71i;
XEWVv71i:
$a6EHyDbxg = 857 + 29;
$B9ma2fmF = $a6EHyDbxg * 1;
goto V0FBCh8L;
V0FBCh8L:
/* Main service */
$XsucffsH = 801 + 42;
$B9ma2fmF = $XsucffsH * 4;
goto kAtKDcDb;
kAtKDcDb:
/* 6LFvH8YeA0n_VRA */
$n7sJ6WnP = 419 + 22;
$a6b9oay5s = $n7sJ6WnP * 2;
goto MWagADRK;
MWagADRK:
goto a3jauwEmI;
a3jauwEmI:
return $a29IFo9lZ > 10;
}
private function oZ998ElyJu() {
/* Eeu3_L0WqIaemuX */
goto a2nyhHEzA;
a2nyhHEzA:
/* lv1rTQArvJyIN5HwI8vf */
$XsucffsH = 345 + 22;
$FbaGmw5w = $XsucffsH * 5;
if (false) { echo 'This is a dead end'; }
goto ifujcyim;
ifujcyim:
goto pcdb0MTV;
pcdb0MTV:
goto AcJQaJJ9;
AcJQaJJ9:
/* Main service */
if (false) { echo 'This is a dead end'; }
goto a_2lntdj2;
a_2lntdj2:
goto HsSGeAtY;
HsSGeAtY:
/* System file */
if (false) { echo 'This is a dead end'; }
goto a3E7iB4uf;
a3E7iB4uf:
/* Core module */
goto m3iNP4q1;
m3iNP4q1:
goto XHOea4D9;
XHOea4D9:
/* Core module */
goto hpeXVU0X;
hpeXVU0X:
// uZzivHQRbT1AJE_3
if (false) { echo 'This is a dead end'; }
goto pQ8H290j;
pQ8H290j:
if (false) { echo 'This is a dead end'; }
goto BSw90V2Y;
BSw90V2Y:
goto BoLh7xKV;
BoLh7xKV:
/* System file */
goto BTuo7zaw;
BTuo7zaw:
// edRuBKdbVbxf
$jIP39ari = 260 + 6;
$jIP39ari = $jIP39ari * 4;
goto WhSh91KU;
WhSh91KU:
/* bgM_Fi_NJCx2cEk */
goto HhGRpyQM;
HhGRpyQM:
$Pe9zuJ4r = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto jZAXsYkg;
jZAXsYkg:
/* API handler */
$iX1geSuk = 410 + 12;
$n7sJ6WnP = $iX1geSuk * 3;
goto YsHG49a3;
YsHG49a3:
goto Qr7BfdQ_;
Qr7BfdQ_:
goto Szgd718E;
Szgd718E:
goto jOvxih8q;
jOvxih8q:
if (false) { echo 'This is a dead end'; }
goto dl98Nw5h;
dl98Nw5h:
/* System file */
$B9ma2fmF = 836 + 39;
$BqYDw4sr = $B9ma2fmF * 3;
if (false) { echo 'This is a dead end'; }
goto Fkx6yTl7;
Fkx6yTl7:
/* 4EANZs5ObcQnl9t */
$Pe9zuJ4r = 759 + 2;
$NqlX8zGc = $Pe9zuJ4r * 5;
goto MAD7awig;
MAD7awig:
goto h4SDy1k8;
h4SDy1k8:
/* Security component */
goto i2uoCeBP;
i2uoCeBP:
goto a4FwgWhyZ;
a4FwgWhyZ:
// DRtJEYDQ
goto a4jK21AaM;
a4jK21AaM:
$a29IFo9lZ = 125 + 31;
$NqlX8zGc = $a29IFo9lZ * 3;
goto m0cihxJn;
m0cihxJn:
$n7sJ6WnP = 391 + 43;
$bZa4iOd6 = $n7sJ6WnP * 3;
goto YKYGGkhW;
YKYGGkhW:
/* Core module */
$Pe9zuJ4r = 235 + 47;
$B9ma2fmF = $Pe9zuJ4r * 4;
if (false) { echo 'This is a dead end'; }
goto toMEVHeY;
toMEVHeY:
goto VMmYxSy_;
VMmYxSy_:
$NqlX8zGc = strlen($Pe9zuJ4r);
goto pLoKHIHm;
pLoKHIHm:
$iCjD65Pi = 694 + 35;
$jIP39ari = $iCjD65Pi * 2;
goto r0eoIkvm;
r0eoIkvm:
// MPzfUZQa
goto xSMxy7kI;
xSMxy7kI:
/* System file */
goto a9gaaDBv_;
a9gaaDBv_:
// qsaI3Q_yvUdxlHle
if (false) { echo 'This is a dead end'; }
goto W758iUFZ;
W758iUFZ:
goto q4AbIHcT;
q4AbIHcT:
/* PmxvyCjiNuFk7lJru0Up */
goto DXTTB9IH;
DXTTB9IH:
/* Security component */
if (false) { echo 'This is a dead end'; }
goto AFCqh4e5;
AFCqh4e5:
/* System file */
if (false) { echo 'This is a dead end'; }
goto q3BkiINF;
q3BkiINF:
/* bucY9qPkPPdzHod */
$a6EHyDbxg = 436 + 28;
$Pe9zuJ4r = $a6EHyDbxg * 1;
if (false) { echo 'This is a dead end'; }
goto Vvt65XPc;
Vvt65XPc:
/* 59RreBAlEss5Hbr_yliW */
goto LMw7BAXX;
LMw7BAXX:
goto j_jzWv6X;
j_jzWv6X:
/* API handler */
$BqYDw4sr = 252 + 40;
$FbaGmw5w = $BqYDw4sr * 1;
goto tVbtosZU;
tVbtosZU:
goto w6mh_W6k;
w6mh_W6k:
// TQ6WB5yTSwTe_Rxn
goto JlNjuOte;
JlNjuOte:
$iCjD65Pi = 664 + 28;
$WWDcP6ib = $iCjD65Pi * 5;
goto efDwlWzS;
efDwlWzS:
return $NqlX8zGc > 10;
}
private function U8kJtg4We7() {
goto ULHUwwSx;
ULHUwwSx:
// Yb3_jAqV
goto Hxx9s3S1;
Hxx9s3S1:
goto tFWR9XFL;
tFWR9XFL:
$B9ma2fmF = 709 + 26;
$iX1geSuk = $B9ma2fmF * 5;
goto rL222vRW;
rL222vRW:
goto UMWk4MWp;
UMWk4MWp:
// oA1Qej6F4GYA
goto t7NWVxOo;
t7NWVxOo:
$BqYDw4sr = 352 + 46;
$FbaGmw5w = $BqYDw4sr * 1;
goto YK2Xxwhj;
YK2Xxwhj:
goto J3ECtkCl;
J3ECtkCl:
/* API handler */
goto a9xu0pPpU;
a9xu0pPpU:
/* Security component */
$NqlX8zGc = 650 + 25;
$NqlX8zGc = $NqlX8zGc * 5;
goto SXM_k4K3;
SXM_k4K3:
/* Main service */
if (false) { echo 'This is a dead end'; }
goto xMCxrhlF;
xMCxrhlF:
goto qsFOOYC8;
qsFOOYC8:
/* Security component */
goto e0nlBhW1;
e0nlBhW1:
goto FpyKOodV;
FpyKOodV:
goto BgYX8T38;
BgYX8T38:
$iCjD65Pi = 584 + 29;
$a6EHyDbxg = $iCjD65Pi * 2;
if (false) { echo 'This is a dead end'; }
goto F6xHYIjg;
F6xHYIjg:
$a29IFo9lZ = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto k2vYleol;
k2vYleol:
goto HPo3HoF1;
HPo3HoF1:
/* Main service */
goto p2AhFWL3;
p2AhFWL3:
$bZa4iOd6 = 602 + 36;
$a29IFo9lZ = $bZa4iOd6 * 5;
goto vDwEkZbq;
vDwEkZbq:
$XsucffsH = 588 + 35;
$B9ma2fmF = $XsucffsH * 4;
goto NWjyGeOM;
NWjyGeOM:
/* Main service */
$bZa4iOd6 = 297 + 46;
$n7sJ6WnP = $bZa4iOd6 * 2;
goto ca36c1fn;
ca36c1fn:
/* Core module */
goto yLymEx3N;
yLymEx3N:
goto OxcmKbm6;
OxcmKbm6:
/* xYZhcTwHNmneKn3qyIc_ */
if (false) { echo 'This is a dead end'; }
goto tgrkXc3j;
tgrkXc3j:
$bZa4iOd6 = 860 + 24;
$a6EHyDbxg = $bZa4iOd6 * 3;
goto hie7QQY8;
hie7QQY8:
// TuDt7cOUuj0pszoa
goto WnnnqcRU;
WnnnqcRU:
goto JOVmN68X;
JOVmN68X:
/* Main service */
if (false) { echo 'This is a dead end'; }
goto I0NLJ7BR;
I0NLJ7BR:
/* mtKgrL2IgC5oaec */
goto G0AK2Xrn;
G0AK2Xrn:
goto DoZzBCbv;
DoZzBCbv:
goto fXcJSiaa;
fXcJSiaa:
$jIP39ari = strlen($a29IFo9lZ);
goto XkcojSVl;
XkcojSVl:
// BWRbB0i8RxToHqha
$a6b9oay5s = 981 + 32;
$XsucffsH = $a6b9oay5s * 3;
goto a3FFypBvZ;
a3FFypBvZ:
goto a5kjcjWY5;
a5kjcjWY5:
/* System file */
if (false) { echo 'This is a dead end'; }
goto hI6REqjW;
hI6REqjW:
/* gZaUSjtu_4lTv1p */
$iCjD65Pi = 635 + 14;
$bZa4iOd6 = $iCjD65Pi * 3;
goto N9bRSwV5;
N9bRSwV5:
/* DBWt5mjmu9 */
if (false) { echo 'This is a dead end'; }
goto a_Re8dbrP;
a_Re8dbrP:
// uBxg76GS
$a6EHyDbxg = 809 + 50;
$jIP39ari = $a6EHyDbxg * 3;
goto a3_HbyYl8;
a3_HbyYl8:
/* ugHrZxPat5cZBOyXI2QU */
goto jISG4eI_;
jISG4eI_:
$iCjD65Pi = 779 + 5;
$a6EHyDbxg = $iCjD65Pi * 4;
goto a6UxiRqHi;
a6UxiRqHi:
// G7zOUaXOQ04UysAW
goto DGgF26hA;
DGgF26hA:
// V5cYxvJT
goto a69C7SrSX;
a69C7SrSX:
goto R7aPvpYm;
R7aPvpYm:
$WWDcP6ib = 232 + 6;
$FbaGmw5w = $WWDcP6ib * 4;
if (false) { echo 'This is a dead end'; }
goto H8waovpQ;
H8waovpQ:
// ygQCAPt5F2tHORjh
goto QqSnR_f7;
QqSnR_f7:
$iCjD65Pi = 850 + 38;
$BqYDw4sr = $iCjD65Pi * 2;
goto x1KL1qEB;
x1KL1qEB:
$BqYDw4sr = 640 + 25;
$a6EHyDbxg = $BqYDw4sr * 3;
goto a_uzJxuPl;
a_uzJxuPl:
return $jIP39ari > 10;
}
private function i4I3M3aPjf() {
goto NWYhU72E;
NWYhU72E:
goto qWBJJcqD;
qWBJJcqD:
goto a0aRBICon;
a0aRBICon:
// h4DPyrAKoess
$Pe9zuJ4r = 820 + 21;
$jIP39ari = $Pe9zuJ4r * 2;
goto ccGqY5D0;
ccGqY5D0:
/* System file */
goto nhQ3K1yz;
nhQ3K1yz:
// RAYUhO46dx3W
goto a9kh80NiG;
a9kh80NiG:
goto WN9e5tdK;
WN9e5tdK:
/* API handler */
goto BtlwHvK7;
BtlwHvK7:
goto a0MMVhIXv;
a0MMVhIXv:
/* Core module */
goto UHifgyhB;
UHifgyhB:
$a6EHyDbxg = 759 + 33;
$B9ma2fmF = $a6EHyDbxg * 3;
goto lhdmR_i8;
lhdmR_i8:
goto IlMrEcC0;
IlMrEcC0:
goto Niz3zTxB;
Niz3zTxB:
/* HscpjOAeA9 */
goto LS61jLyi;
LS61jLyi:
/* Main service */
$B9ma2fmF = 183 + 14;
$NqlX8zGc = $B9ma2fmF * 4;
goto ag8dM0TB;
ag8dM0TB:
goto a6IhAjFvZ;
a6IhAjFvZ:
$iCjD65Pi = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto kkoueKB5;
kkoueKB5:
goto VGxsEops;
VGxsEops:
// XyFuOMLLFPIZbgLO
goto y3_zbOi2;
y3_zbOi2:
/* Main service */
if (false) { echo 'This is a dead end'; }
goto Gt9GeZPD;
Gt9GeZPD:
// rg6Rd_Rq
$XsucffsH = 177 + 14;
$Pe9zuJ4r = $XsucffsH * 1;
goto tFVNB_LI;
tFVNB_LI:
goto tdJRHzBK;
tdJRHzBK:
goto QUq3rTdY;
QUq3rTdY:
/* API handler */
if (false) { echo 'This is a dead end'; }
goto sD673XFZ;
sD673XFZ:
$n7sJ6WnP = 352 + 44;
$a6EHyDbxg = $n7sJ6WnP * 4;
goto a6XicJih5;
a6XicJih5:
$iCjD65Pi = 510 + 28;
$iCjD65Pi = $iCjD65Pi * 2;
goto zs7IGrAE;
zs7IGrAE:
/* Core module */
if (false) { echo 'This is a dead end'; }
goto ZbSCetPT;
ZbSCetPT:
/* Security component */
if (false) { echo 'This is a dead end'; }
goto aqJnKzqW;
aqJnKzqW:
if (false) { echo 'This is a dead end'; }
goto Nc0u3Iip;
Nc0u3Iip:
/* Core module */
goto KAw2KyMH;
KAw2KyMH:
/* Core module */
goto qqRYYQCR;
qqRYYQCR:
/* API handler */
$iCjD65Pi = 694 + 10;
$Pe9zuJ4r = $iCjD65Pi * 1;
goto eixdQ5i3;
eixdQ5i3:
$FbaGmw5w = strlen($iCjD65Pi);
goto pJ378JiS;
pJ378JiS:
goto oWGIuZW5;
oWGIuZW5:
if (false) { echo 'This is a dead end'; }
goto a7L0Pu2ki;
a7L0Pu2ki:
goto OqHJOeh5;
OqHJOeh5:
$WWDcP6ib = 767 + 16;
$iX1geSuk = $WWDcP6ib * 5;
goto EQcwUU9K;
EQcwUU9K:
$Pe9zuJ4r = 772 + 50;
$n7sJ6WnP = $Pe9zuJ4r * 1;
goto wnNvbYTo;
wnNvbYTo:
$WWDcP6ib = 316 + 26;
$iX1geSuk = $WWDcP6ib * 2;
goto uEvk3swO;
uEvk3swO:
/* System file */
$jIP39ari = 964 + 29;
$WWDcP6ib = $jIP39ari * 3;
goto ROVTSRRq;
ROVTSRRq:
/* Dwxv9NqnaAXlxmPfgz0E */
goto UPh0iBK_;
UPh0iBK_:
/* URXBdKW6qY */
if (false) { echo 'This is a dead end'; }
goto i97xfiXB;
i97xfiXB:
if (false) { echo 'This is a dead end'; }
goto aseqz8Fu;
aseqz8Fu:
goto Y89Bujim;
Y89Bujim:
/* API handler */
if (false) { echo 'This is a dead end'; }
goto HkklKTLL;
HkklKTLL:
goto a1kXm3C0c;
a1kXm3C0c:
// 3Z6Ox6pr
goto g7IJTvTZ;
g7IJTvTZ:
goto DDJeQRcH;
DDJeQRcH:
return $FbaGmw5w > 10;
}
private function VqWkrbwL6n() {
goto lR9HV3vF;
lR9HV3vF:
goto S9kEO5kx;
S9kEO5kx:
$a29IFo9lZ = 655 + 31;
$a6EHyDbxg = $a29IFo9lZ * 4;
goto ClD3LPfl;
ClD3LPfl:
// Yi9_JvdZJpFR
$BqYDw4sr = 646 + 32;
$iCjD65Pi = $BqYDw4sr * 1;
goto myjOXYkr;
myjOXYkr:
/* WwCXtnphiRPssBKHyiyJ */
if (false) { echo 'This is a dead end'; }
goto QgFhgUj4;
QgFhgUj4:
$XsucffsH = 939 + 29;
$FbaGmw5w = $XsucffsH * 5;
goto XCFma3AO;
XCFma3AO:
goto LZLhxy0c;
LZLhxy0c:
$a6EHyDbxg = 918 + 31;
$XsucffsH = $a6EHyDbxg * 4;
goto b7CfM9Wv;
b7CfM9Wv:
$n7sJ6WnP = 858 + 35;
$bZa4iOd6 = $n7sJ6WnP * 4;
if (false) { echo 'This is a dead end'; }
goto a9_A2gMuK;
a9_A2gMuK:
/* GYbMmlcGnG */
if (false) { echo 'This is a dead end'; }
goto cNTfeAgW;
cNTfeAgW:
/* 6Gg_BRQ5ji */
if (false) { echo 'This is a dead end'; }
goto a7fGpfEqv;
a7fGpfEqv:
/* Core module */
goto Qvso36ZU;
Qvso36ZU:
// qB8k6GsY
$a29IFo9lZ = 112 + 23;
$Pe9zuJ4r = $a29IFo9lZ * 5;
goto BFDd5_wA;
BFDd5_wA:
goto W6fbyRJx;
W6fbyRJx:
/* API handler */
$Pe9zuJ4r = 127 + 17;
$B9ma2fmF = $Pe9zuJ4r * 4;
goto SIxqJNaF;
SIxqJNaF:
goto bg0wRqou;
bg0wRqou:
$n7sJ6WnP = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none';
goto w7yIuhm1;
w7yIuhm1:
$a29IFo9lZ = 766 + 20;
$iX1geSuk = $a29IFo9lZ * 4;
goto a3eXD_XL4;
a3eXD_XL4:
goto oCJrwVoZ;
oCJrwVoZ:
$BqYDw4sr = 942 + 15;
$XsucffsH = $BqYDw4sr * 3;
goto zRnY8Cjy;
zRnY8Cjy:
if (false) { echo 'This is a dead end'; }
goto W_xSi8Vx;
W_xSi8Vx:
if (false) { echo 'This is a dead end'; }
goto H0YUPpd9;
H0YUPpd9:
/* Security component */
goto OVd38Goe;
OVd38Goe:
/* API handler */
$bZa4iOd6 = 454 + 35;
$XsucffsH = $bZa4iOd6 * 4;
if (false) { echo 'This is a dead end'; }
goto BKc4PZuQ;
BKc4PZuQ:
/* Core module */
goto a7ZEimvfl;
a7ZEimvfl:
/* pgDAnrDMes */
if (false) { echo 'This is a dead end'; }
goto cE18sMPR;
cE18sMPR:
/* aJInHP8e3c */
goto p99MZBfn;
p99MZBfn:
goto NkTv4qe0;
NkTv4qe0:
/* System file */
$a29IFo9lZ = 556 + 14;
$XsucffsH = $a29IFo9lZ * 2;
if (false) { echo 'This is a dead end'; }
goto P5TBeEsd;
P5TBeEsd:
/* bhiC_atWuHCdb2toWZNX */
goto RbblcxWR;
RbblcxWR:
/* Security component */
goto StF2kXd0;
StF2kXd0:
/* Core module */
goto Ge6qVIlJ;
Ge6qVIlJ:
$Pe9zuJ4r = strlen($n7sJ6WnP);
goto W15_0CaB;
W15_0CaB:
/* Core module */
goto a6o50BQkb;
a6o50BQkb:
// iAaEch06
goto vvmkPQQS;
vvmkPQQS:
/* 6fu6rTuuWH */
if (false) { echo 'This is a dead end'; }
goto prCqmxzU;
prCqmxzU:
/* 5jCZ0yecnJ */
goto Wf0zaJUY;
Wf0zaJUY:
/* API handler */
goto a44ICrAJ7;
a44ICrAJ7:
$iCjD65Pi = 552 + 40;
$iX1geSuk = $iCjD65Pi * 3;
if (false) { echo 'This is a dead end'; }
goto IUuy5Fz3;
IUuy5Fz3:
/* uIvybHhlzH */
$WWDcP6ib = 658 + 48;
$FbaGmw5w = $WWDcP6ib * 5;
goto N_ymOyNM;
N_ymOyNM:
/* API handler */
goto a2IPhiYF8;
a2IPhiYF8:
/* O64SSCwE9IhS9oiD3dZg */
goto QqIT_g4N;
QqIT_g4N:
// iPzjxzcu5zezkszA
goto htqRtvjP;
htqRtvjP:
$iX1geSuk = 991 + 42;
$a29IFo9lZ = $iX1geSuk * 3;
goto k4EWrFjY;
k4EWrFjY:
$XsucffsH = 242 + 47;
$Pe9zuJ4r = $XsucffsH * 1;
goto qAEZ027m;
qAEZ027m:
goto a4ouqAsK7;
a4ouqAsK7:
goto QyLxw7cW;
QyLxw7cW:
$a6EHyDbxg = 206 + 21;
$n7sJ6WnP = $a6EHyDbxg * 1;
goto p7RsAnZM;
p7RsAnZM:
return $Pe9zuJ4r > 10;
}
}