(()=>{var I,t,g={31:(I,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=(I=[],t)=>{switch(t.type){case"API_TO_SERVER[REQUEST]:changeThread":return[];case"SERVER_TO_API[EMIT]:fetchPosts":case"SERVER_TO_API[BROADCAST]:posts":if(t.postsTimeline&&t.postsTimeline.length>0&&t.tuneCh.connection===t.postsTimeline[0].connection)return[...I,...t.postsTimeline];break;case"SERVER_TO_API[EMIT]:getMore":if(t.postsTimeline&&t.postsTimeline.length>0)return[...t.postsTimeline,...I]}return I}},124:I=>{"use strict";var t,g=Object.defineProperty,e=Object.getOwnPropertyDescriptor,C=Object.getOwnPropertyNames,c=Object.prototype.hasOwnProperty,s={};((I,t)=>{for(var e in t)g(I,e,{get:t[e],enumerable:!0})})(s,{Immer:()=>P,applyPatches:()=>sI,castDraft:()=>lI,castImmutable:()=>BI,createDraft:()=>iI,current:()=>_,enableMapSet:()=>II,enablePatches:()=>$,finishDraft:()=>FI,freeze:()=>X,immerable:()=>F,isDraft:()=>Q,isDraftable:()=>A,nothing:()=>i,original:()=>o,produce:()=>gI,produceWithPatches:()=>eI,setAutoFreeze:()=>CI,setUseStrictShallowCopy:()=>cI}),I.exports=(t=s,((I,t,s,i)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of C(t))!c.call(I,s)&&undefined!==s&&g(I,s,{get:()=>t[s],enumerable:!(i=e(t,s))||i.enumerable});return I})(g({},"__esModule",{value:!0}),t));var i=Symbol.for("immer-nothing"),F=Symbol.for("immer-draftable"),l=Symbol.for("immer-state");function B(I,...t){throw new Error(`[Immer] minified error nr: ${I}. Full error at: https://bit.ly/3cXEKWf`)}var n=Object.getPrototypeOf;function Q(I){return!!I&&!!I[l]}function A(I){return!!I&&(d(I)||Array.isArray(I)||!!I[F]||!!I.constructor?.[F]||G(I)||x(I))}var U=Object.prototype.constructor.toString();function d(I){if(!I||"object"!=typeof I)return!1;let t=n(I);if(null===t)return!0;let g=Object.hasOwnProperty.call(t,"constructor")&&t.constructor;return g===Object||"function"==typeof g&&Function.toString.call(g)===U}function o(I){return Q(I)||B(15),I[l].t}function V(I,t){0===b(I)?Reflect.ownKeys(I).forEach(g=>{t(g,I[g],I)}):I.forEach((g,e)=>t(e,g,I))}function b(I){let t=I[l];return t?t.o:Array.isArray(I)?1:G(I)?2:x(I)?3:0}function a(I,t){return 2===b(I)?I.has(t):Object.prototype.hasOwnProperty.call(I,t)}function u(I,t){return 2===b(I)?I.get(t):I[t]}function r(I,t,g){let e=b(I);2===e?I.set(t,g):3===e?I.add(g):I[t]=g}function G(I){return I instanceof Map}function x(I){return I instanceof Set}function Z(I){return I.e||I.t}function R(I,t){if(G(I))return new Map(I);if(x(I))return new Set(I);if(Array.isArray(I))return Array.prototype.slice.call(I);let g=d(I);if(!0===t||"class_only"===t&&!g){let t=Object.getOwnPropertyDescriptors(I);delete t[l];let g=Reflect.ownKeys(t);for(let e=0;e1&&(I.set=I.add=I.clear=I.delete=L),Object.freeze(I),t&&Object.entries(I).forEach(([I,t])=>X(t,!0))),I}function L(){B(2)}function h(I){return Object.isFrozen(I)}var y,m={};function p(I){let t=m[I];return t||B(0),t}function W(I,t){m[I]||(m[I]=t)}function E(){return y}function N(I,t){t&&(p("Patches"),I.f=[],I.h=[],I.b=t)}function S(I){Y(I),I.a.forEach(H),I.a=null}function Y(I){I===y&&(y=I.i)}function J(I){return y=function(I,t){return{a:[],i:I,p:t,P:!0,d:0}}(y,I)}function H(I){let t=I[l];0===t.o||1===t.o?t.x():t.m=!0}function T(I,t){t.d=t.a.length;let g=t.a[0];return void 0!==I&&I!==g?(g[l].s&&(S(t),B(4)),A(I)&&(I=k(t,I),t.i||w(t,I)),t.f&&p("Patches").T(g[l].t,I,t.f,t.h)):I=k(t,g,[]),S(t),t.f&&t.b(t.f,t.h),I!==i?I:void 0}function k(I,t,g){if(h(t))return t;let e=t[l];if(!e)return V(t,(C,c)=>v(I,e,t,C,c,g)),t;if(e.n!==I)return t;if(!e.s)return w(I,e.t,!0),e.t;if(!e.c){e.c=!0,e.n.d--;let t=e.e,C=t,c=!1;3===e.o&&(C=new Set(t),t.clear(),c=!0),V(C,(C,s)=>v(I,e,t,C,s,g,c)),w(I,t,!1),g&&I.f&&p("Patches").g(e,g,I.f,I.h)}return e.e}function v(I,t,g,e,C,c,s){if(Q(C)){let s=k(I,C,c&&t&&3!==t.o&&!a(t.r,e)?c.concat(e):void 0);if(r(g,e,s),!Q(s))return;I.P=!1}else s&&g.add(C);if(A(C)&&!h(C)){if(!I.p.y&&I.d<1)return;k(I,C),(!t||!t.n.i)&&"symbol"!=typeof e&&Object.prototype.propertyIsEnumerable.call(g,e)&&w(I,C)}}function w(I,t,g=!1){!I.i&&I.p.y&&I.P&&X(t,g)}var f={get(I,t){if(t===l)return I;let g=Z(I);if(!a(g,t))return function(I,t,g){let e=M(t,g);return e?"value"in e?e.value:e.get?.call(I.u):void 0}(I,g,t);let e=g[t];return I.c||!A(e)?e:e===D(I.t,t)?(O(I),I.e[t]=K(e,I)):e},has:(I,t)=>t in Z(I),ownKeys:I=>Reflect.ownKeys(Z(I)),set(I,t,g){let e=M(Z(I),t);if(e?.set)return e.set.call(I.u,g),!0;if(!I.s){let e=D(Z(I),t),C=e?.[l];if(C&&C.t===g)return I.e[t]=g,I.r[t]=!1,!0;if(function(I,t){return I===t?0!==I||1/I==1/t:I!=I&&t!=t}(g,e)&&(void 0!==g||a(I.t,t)))return!0;O(I),j(I)}return I.e[t]===g&&(void 0!==g||t in I.e)||Number.isNaN(g)&&Number.isNaN(I.e[t])||(I.e[t]=g,I.r[t]=!0),!0},deleteProperty:(I,t)=>(void 0!==D(I.t,t)||t in I.t?(I.r[t]=!1,O(I),j(I)):delete I.r[t],I.e&&delete I.e[t],!0),getOwnPropertyDescriptor(I,t){let g=Z(I),e=Reflect.getOwnPropertyDescriptor(g,t);return e&&{writable:!0,configurable:1!==I.o||"length"!==t,enumerable:e.enumerable,value:g[t]}},defineProperty(){B(11)},getPrototypeOf:I=>n(I.t),setPrototypeOf(){B(12)}},z={};function D(I,t){let g=I[l];return(g?Z(g):I)[t]}function M(I,t){if(!(t in I))return;let g=n(I);for(;g;){let I=Object.getOwnPropertyDescriptor(g,t);if(I)return I;g=n(g)}}function j(I){I.s||(I.s=!0,I.i&&j(I.i))}function O(I){I.e||(I.e=R(I.t,I.n.p.S))}V(f,(I,t)=>{z[I]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}}),z.deleteProperty=function(I,t){return z.set.call(this,I,t,void 0)},z.set=function(I,t,g){return f.set.call(this,I[0],t,g,I[0])};var P=class{constructor(I){this.y=!0,this.S=!1,this.produce=(I,t,g)=>{if("function"==typeof I&&"function"!=typeof t){let g=t;t=I;let e=this;return function(I=g,...C){return e.produce(I,I=>t.call(this,I,...C))}}let e;if("function"!=typeof t&&B(6),void 0!==g&&"function"!=typeof g&&B(7),A(I)){let C=J(this),c=K(I,void 0),s=!0;try{e=t(c),s=!1}finally{s?S(C):Y(C)}return N(C,g),T(e,C)}if(!I||"object"!=typeof I){if(e=t(I),void 0===e&&(e=I),e===i&&(e=void 0),this.y&&X(e,!0),g){let t=[],C=[];p("Patches").T(I,e,t,C),g(t,C)}return e}B(1)},this.produceWithPatches=(I,t)=>{if("function"==typeof I)return(t,...g)=>this.produceWithPatches(t,t=>I(t,...g));let g,e;return[this.produce(I,t,(I,t)=>{g=I,e=t}),g,e]},"boolean"==typeof I?.autoFreeze&&this.setAutoFreeze(I.autoFreeze),"boolean"==typeof I?.useStrictShallowCopy&&this.setUseStrictShallowCopy(I.useStrictShallowCopy)}createDraft(I){A(I)||B(8),Q(I)&&(I=_(I));let t=J(this),g=K(I,void 0);return g[l].l=!0,Y(t),g}finishDraft(I,t){let g=I&&I[l];(!g||!g.l)&&B(9);let{n:e}=g;return N(e,t),T(void 0,e)}setAutoFreeze(I){this.y=I}setUseStrictShallowCopy(I){this.S=I}applyPatches(I,t){let g;for(g=t.length-1;g>=0;g--){let e=t[g];if(0===e.path.length&&"replace"===e.op){I=e.value;break}}g>-1&&(t=t.slice(g+1));let e=p("Patches").A;return Q(I)?e(I,t):this.produce(I,I=>e(I,t))}};function K(I,t){let g=G(I)?p("MapSet").I(I,t):x(I)?p("MapSet").D(I,t):function(I,t){let g=Array.isArray(I),e={o:g?1:0,n:t?t.n:E(),s:!1,c:!1,r:{},i:t,t:I,u:null,e:null,x:null,l:!1},C=e,c=f;g&&(C=[e],c=z);let{revoke:s,proxy:i}=Proxy.revocable(C,c);return e.u=i,e.x=s,i}(I,t);return(t?t.n:E()).a.push(g),g}function _(I){return Q(I)||B(10),q(I)}function q(I){if(!A(I)||h(I))return I;let t,g=I[l];if(g){if(!g.s)return g.t;g.c=!0,t=R(I,g.n.p.S)}else t=R(I,!0);return V(t,(I,g)=>{r(t,I,q(g))}),g&&(g.c=!1),t}function $(){let I="replace",t="add",g="remove";function e(I){if(!A(I))return I;if(Array.isArray(I))return I.map(e);if(G(I))return new Map(Array.from(I.entries()).map(([I,t])=>[I,e(t)]));if(x(I))return new Set(Array.from(I).map(e));let t=Object.create(n(I));for(let g in I)t[g]=e(I[g]);return a(I,F)&&(t[F]=I[F]),t}function C(I){return Q(I)?e(I):I}W("Patches",{A:function(C,c){return c.forEach(c=>{let{path:s,op:i}=c,F=C;for(let I=0;I{let n=u(F,e),Q=u(l,e),A=B?a(F,e)?I:t:g;if(n===Q&&A===I)return;let U=c.concat(e);s.push(A===g?{op:A,path:U}:{op:A,path:U,value:Q}),i.push(A===t?{op:g,path:U}:A===g?{op:t,path:U,value:C(n)}:{op:I,path:U,value:C(n)})})}(e,c,s,i);case 1:return function(e,c,s,i){let{t:F,r:l}=e,B=e.e;B.length{if(!i.has(I)){let s=e.concat([F]);C.push({op:g,path:s,value:I}),c.unshift({op:t,path:s,value:I})}F++}),F=0,i.forEach(I=>{if(!s.has(I)){let s=e.concat([F]);C.push({op:t,path:s,value:I}),c.unshift({op:g,path:s,value:I})}F++})}(e,c,s,i)}},T:function(t,g,e,C){e.push({op:I,path:[],value:g===i?void 0:g}),C.push({op:I,path:[],value:t})}})}function II(){class I extends Map{constructor(I,t){super(),this[l]={o:2,i:t,n:t?t.n:E(),s:!1,c:!1,e:void 0,r:void 0,t:I,u:this,l:!1,m:!1}}get size(){return Z(this[l]).size}has(I){return Z(this[l]).has(I)}set(I,g){let e=this[l];return C(e),(!Z(e).has(I)||Z(e).get(I)!==g)&&(t(e),j(e),e.r.set(I,!0),e.e.set(I,g),e.r.set(I,!0)),this}delete(I){if(!this.has(I))return!1;let g=this[l];return C(g),t(g),j(g),g.t.has(I)?g.r.set(I,!1):g.r.delete(I),g.e.delete(I),!0}clear(){let I=this[l];C(I),Z(I).size&&(t(I),j(I),I.r=new Map,V(I.t,t=>{I.r.set(t,!1)}),I.e.clear())}forEach(I,t){Z(this[l]).forEach((g,e,C)=>{I.call(t,this.get(e),e,this)})}get(I){let g=this[l];C(g);let e=Z(g).get(I);if(g.c||!A(e)||e!==g.t.get(I))return e;let c=K(e,g);return t(g),g.e.set(I,c),c}keys(){return Z(this[l]).keys()}values(){let I=this.keys();return{[Symbol.iterator]:()=>this.values(),next:()=>{let t=I.next();return t.done?t:{done:!1,value:this.get(t.value)}}}}entries(){let I=this.keys();return{[Symbol.iterator]:()=>this.entries(),next:()=>{let t=I.next();if(t.done)return t;let g=this.get(t.value);return{done:!1,value:[t.value,g]}}}}[Symbol.iterator](){return this.entries()}}function t(I){I.e||(I.r=new Map,I.e=new Map(I.t))}class g extends Set{constructor(I,t){super(),this[l]={o:3,i:t,n:t?t.n:E(),s:!1,c:!1,e:void 0,t:I,u:this,a:new Map,m:!1,l:!1}}get size(){return Z(this[l]).size}has(I){let t=this[l];return C(t),t.e?!!(t.e.has(I)||t.a.has(I)&&t.e.has(t.a.get(I))):t.t.has(I)}add(I){let t=this[l];return C(t),this.has(I)||(e(t),j(t),t.e.add(I)),this}delete(I){if(!this.has(I))return!1;let t=this[l];return C(t),e(t),j(t),t.e.delete(I)||!!t.a.has(I)&&t.e.delete(t.a.get(I))}clear(){let I=this[l];C(I),Z(I).size&&(e(I),j(I),I.e.clear())}values(){let I=this[l];return C(I),e(I),I.e.values()}entries(){let I=this[l];return C(I),e(I),I.e.entries()}keys(){return this.values()}[Symbol.iterator](){return this.values()}forEach(I,t){let g=this.values(),e=g.next();for(;!e.done;)I.call(t,e.value,e.value,this),e=g.next()}}function e(I){I.e||(I.e=new Set,I.t.forEach(t=>{if(A(t)){let g=K(t,I);I.a.set(t,g),I.e.add(g)}else I.e.add(t)}))}function C(I){I.m&&B(3,JSON.stringify(Z(I)))}W("MapSet",{I:function(t,g){return new I(t,g)},D:function(I,t){return new g(I,t)}})}var tI=new P,gI=tI.produce,eI=tI.produceWithPatches.bind(tI),CI=tI.setAutoFreeze.bind(tI),cI=tI.setUseStrictShallowCopy.bind(tI),sI=tI.applyPatches.bind(tI),iI=tI.createDraft.bind(tI),FI=tI.finishDraft.bind(tI);function lI(I){return I}function BI(I){return I}},178:(I,t,g)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const e=g(9633);t.default=(I=e.inits.bootOption,t)=>t.bootOption?t.bootOption:I},435:function(I,t,g){"use strict";var e,C=this&&this.__createBinding||(Object.create?function(I,t,g,e){void 0===e&&(e=g);var C=Object.getOwnPropertyDescriptor(t,g);C&&!("get"in C?!t.__esModule:C.writable||C.configurable)||(C={enumerable:!0,get:function(){return t[g]}}),Object.defineProperty(I,e,C)}:function(I,t,g,e){void 0===e&&(e=g),I[e]=t[g]}),c=this&&this.__setModuleDefault||(Object.create?function(I,t){Object.defineProperty(I,"default",{enumerable:!0,value:t})}:function(I,t){I.default=t}),s=this&&this.__importStar||(e=function(I){return e=Object.getOwnPropertyNames||function(I){var t=[];for(var g in I)Object.prototype.hasOwnProperty.call(I,g)&&(t[t.length]=g);return t},e(I)},function(I){if(I&&I.__esModule)return I;var t={};if(null!=I)for(var g=e(I),s=0;s({connection:I.value,liveCnt:I.score}))}constructor(I={}){const t=new i.default(I);return Object.assign(this,I,t)}},t.init={...i.init,liveCnt:0}},528:function(I,t,g){"use strict";var e=this&&this.__importDefault||function(I){return I&&I.__esModule?I:{default:I}};Object.defineProperty(t,"__esModule",{value:!0}),t.Request=t.Polling=void 0;const C=g(4689),c=e(g(6617)),s=g(732),i=g(6376),F=g(3519),l=g(4454),B=g(5374),n=g(6235),Q=(0,c.default)("engine.io-client:polling");function A(){}const U=null!=new F.XHR({xdomain:!1}).responseType;class d extends C.Transport{constructor(I){if(super(I),this.polling=!1,"undefined"!=typeof location){const t="https:"===location.protocol;let g=location.port;g||(g=t?"443":"80"),this.xd="undefined"!=typeof location&&I.hostname!==location.hostname||g!==I.port}const t=I&&I.forceBase64;this.supportsBinary=U&&!t,this.opts.withCredentials&&(this.cookieJar=(0,F.createCookieJar)())}get name(){return"polling"}doOpen(){this.poll()}pause(I){this.readyState="pausing";const t=()=>{Q("paused"),this.readyState="paused",I()};if(this.polling||!this.writable){let I=0;this.polling&&(Q("we are currently polling - waiting to pause"),I++,this.once("pollComplete",function(){Q("pre-pause polling complete"),--I||t()})),this.writable||(Q("we are currently writing - waiting to pause"),I++,this.once("drain",function(){Q("pre-pause writing complete"),--I||t()}))}else t()}poll(){Q("polling"),this.polling=!0,this.doPoll(),this.emitReserved("poll")}onData(I){Q("polling got data %s",I),(0,i.decodePayload)(I,this.socket.binaryType).forEach(I=>{if("opening"===this.readyState&&"open"===I.type&&this.onOpen(),"close"===I.type)return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(I)}),"closed"!==this.readyState&&(this.polling=!1,this.emitReserved("pollComplete"),"open"===this.readyState?this.poll():Q('ignoring poll - transport state "%s"',this.readyState))}doClose(){const I=()=>{Q("writing close packet"),this.write([{type:"close"}])};"open"===this.readyState?(Q("transport open - closing"),I()):(Q("transport not open - deferring close"),this.once("open",I))}write(I){this.writable=!1,(0,i.encodePayload)(I,I=>{this.doWrite(I,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){const I=this.opts.secure?"https":"http",t=this.query||{};return!1!==this.opts.timestampRequests&&(t[this.opts.timestampParam]=(0,s.yeast)()),this.supportsBinary||t.sid||(t.b64=1),this.createUri(I,t)}request(I={}){return Object.assign(I,{xd:this.xd,cookieJar:this.cookieJar},this.opts),new o(this.uri(),I)}doWrite(I,t){const g=this.request({method:"POST",data:I});g.on("success",t),g.on("error",(I,t)=>{this.onError("xhr post error",I,t)})}doPoll(){Q("xhr poll");const I=this.request();I.on("data",this.onData.bind(this)),I.on("error",(I,t)=>{this.onError("xhr poll error",I,t)}),this.pollXhr=I}}t.Polling=d;class o extends l.Emitter{constructor(I,t){super(),(0,B.installTimerFunctions)(this,t),this.opts=t,this.method=t.method||"GET",this.uri=I,this.data=void 0!==t.data?t.data:null,this.create()}create(){var I;const t=(0,B.pick)(this.opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");t.xdomain=!!this.opts.xd;const g=this.xhr=new F.XHR(t);try{Q("xhr open %s: %s",this.method,this.uri),g.open(this.method,this.uri,!0);try{if(this.opts.extraHeaders){g.setDisableHeaderCheck&&g.setDisableHeaderCheck(!0);for(let I in this.opts.extraHeaders)this.opts.extraHeaders.hasOwnProperty(I)&&g.setRequestHeader(I,this.opts.extraHeaders[I])}}catch(I){}if("POST"===this.method)try{g.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch(I){}try{g.setRequestHeader("Accept","*/*")}catch(I){}null===(I=this.opts.cookieJar)||void 0===I||I.addCookies(g),"withCredentials"in g&&(g.withCredentials=this.opts.withCredentials),this.opts.requestTimeout&&(g.timeout=this.opts.requestTimeout),g.onreadystatechange=()=>{var I;3===g.readyState&&(null===(I=this.opts.cookieJar)||void 0===I||I.parseCookies(g)),4===g.readyState&&(200===g.status||1223===g.status?this.onLoad():this.setTimeoutFn(()=>{this.onError("number"==typeof g.status?g.status:0)},0))},Q("xhr data %s",this.data),g.send(this.data)}catch(I){return void this.setTimeoutFn(()=>{this.onError(I)},0)}"undefined"!=typeof document&&(this.index=o.requestsCount++,o.requests[this.index]=this)}onError(I){this.emitReserved("error",I,this.xhr),this.cleanup(!0)}cleanup(I){if(void 0!==this.xhr&&null!==this.xhr){if(this.xhr.onreadystatechange=A,I)try{this.xhr.abort()}catch(I){}"undefined"!=typeof document&&delete o.requests[this.index],this.xhr=null}}onLoad(){const I=this.xhr.responseText;null!==I&&(this.emitReserved("data",I),this.emitReserved("success"),this.cleanup())}abort(){this.cleanup()}}if(t.Request=o,o.requestsCount=0,o.requests={},"undefined"!=typeof document)if("function"==typeof attachEvent)attachEvent("onunload",V);else if("function"==typeof addEventListener){const I="onpagehide"in n.globalThisShim?"pagehide":"unload";addEventListener(I,V,!1)}function V(){for(let I in o.requests)o.requests.hasOwnProperty(I)&&o.requests[I].abort()}},732:(I,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.yeast=t.decode=t.encode=void 0;const g="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""),e={};let C,c=0,s=0;function i(I){let t="";do{t=g[I%64]+t,I=Math.floor(I/64)}while(I>0);return t}for(t.encode=i,t.decode=function(I){let t=0;for(s=0;s{t.formatArgs=function(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+I.exports.humanize(this.diff),!this.useColors)return;const g="color: "+this.color;t.splice(1,0,g,"color: inherit");let e=0,C=0;t[0].replace(/%[a-zA-Z%]/g,I=>{"%%"!==I&&(e++,"%c"===I&&(C=e))}),t.splice(C,0,g)},t.save=function(I){try{I?t.storage.setItem("debug",I):t.storage.removeItem("debug")}catch(I){}},t.load=function(){let I;try{I=t.storage.getItem("debug")}catch(I){}return!I&&"undefined"!=typeof process&&"env"in process&&(I=process.env.DEBUG),I},t.useColors=function(){if("undefined"!=typeof window&&window.process&&("renderer"===window.process.type||window.process.__nwjs))return!0;if("undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let I;return"undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&(I=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(I[1],10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},t.storage=function(){try{return localStorage}catch(I){}}(),t.destroy=(()=>{let I=!1;return()=>{I||(I=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],t.log=console.debug||console.log||(()=>{}),I.exports=g(3995)(t);const{formatters:e}=I.exports;e.j=function(I){try{return JSON.stringify(I)}catch(I){return"[UnexpectedJSONParseError]: "+I.message}}},983:(I,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.init=t.typeTimelineStock=t.typeTimeline=t.typeChild=t.typeMulti=t.typeSingle=void 0,t.typeSingle="Single",t.typeMulti="Multi",t.typeChild="Child",t.typeTimeline="Timeline",t.typeTimelineStock="TimelineStock";class g{constructor(I={}){this.uid="",this.connection="",this.content="",this.stampId=0,this.favicon="",this.type=t.typeSingle,this.createTime=String(new Date),this.updateTime=String(new Date),this.currentTime="",Object.assign(this,{...t.init,...I})}}t.default=g,t.init=new g},1015:(I,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.parse=void 0;const g=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,e=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];t.parse=function(I){if(I.length>2e3)throw"URI too long";const t=I,C=I.indexOf("["),c=I.indexOf("]");-1!=C&&-1!=c&&(I=I.substring(0,C)+I.substring(C,c).replace(/:/g,";")+I.substring(c,I.length));let s=g.exec(I||""),i={},F=14;for(;F--;)i[e[F]]=s[F]||"";return-1!=C&&-1!=c&&(i.source=t,i.host=i.host.substring(1,i.host.length-1).replace(/;/g,":"),i.authority=i.authority.replace("[","").replace("]","").replace(/;/g,":"),i.ipv6uri=!0),i.pathNames=function(I,t){const g=t.replace(/\/{2,9}/g,"/").split("/");return"/"!=t.slice(0,1)&&0!==t.length||g.splice(0,1),"/"==t.slice(-1)&&g.splice(g.length-1,1),g}(0,i.path),i.queryKey=function(I,t){const g={};return t.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(I,t,e){t&&(g[t]=e)}),g}(0,i.query),i}},1308:function(I,t,g){"use strict";var e=this&&this.__importDefault||function(I){return I&&I.__esModule?I:{default:I}};Object.defineProperty(t,"__esModule",{value:!0}),t.init=void 0;const C=e(g(7006));t.init={gateway:null,ioServer:{location:"",host:"localhost",port:0},redis:{cluster:[],client:{host:"127.0.0.1",port:6379}},accept:{rankAll:!1},children:[]};class c{constructor(I=t.init){return Object.assign(this,I)}static getMyChConfig(I,t){const g=(I,e="")=>{const C=e+I.ioServer.location;if(C===t)return{...I,children:[],connection:t};if(I.children&&I.children.length>0)for(const t of I.children){const I=g(t,C);if(I)return I}return null},e=g(I);return null!==e?e:{...I,children:[],connection:t}}static getChRootsConfig(I){const{chConfigJson:t,tuneConnection:g}=I,e=(I,t,g,C=[])=>{const c=I.find(I=>t.indexOf(g+I.ioServer.location)>=0);if(c){const I=g+c.ioServer.location;return C.push({...c,children:[],connection:I}),e(c.children,t,I,C)}return C};return e(t.children,g,C.default.rootConnection,[{...t,children:[],connection:C.default.rootConnection}])}static getGateway(I){const t=c.getChRootsConfig(I);return t[1]?t[1].gateway:t[0].gateway}static getRootsConnections(I,t=!1){const g=c.getChRootsConfig(I).map(I=>I.connection);return t?g.filter(t=>t!==I.tuneConnection):g}}t.default=c},1703:(I,t,g)=>{I.exports=function(I){function t(I){let g,C,c,s=null;function i(...I){if(!i.enabled)return;const e=i,C=Number(new Date),c=C-(g||C);e.diff=c,e.prev=g,e.curr=C,g=C,I[0]=t.coerce(I[0]),"string"!=typeof I[0]&&I.unshift("%O");let s=0;I[0]=I[0].replace(/%([a-zA-Z%])/g,(g,C)=>{if("%%"===g)return"%";s++;const c=t.formatters[C];if("function"==typeof c){const t=I[s];g=c.call(e,t),I.splice(s,1),s--}return g}),t.formatArgs.call(e,I),(e.log||t.log).apply(e,I)}return i.namespace=I,i.useColors=t.useColors(),i.color=t.selectColor(I),i.extend=e,i.destroy=t.destroy,Object.defineProperty(i,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==s?s:(C!==t.namespaces&&(C=t.namespaces,c=t.enabled(I)),c),set:I=>{s=I}}),"function"==typeof t.init&&t.init(i),i}function e(I,g){const e=t(this.namespace+(void 0===g?":":g)+I);return e.log=this.log,e}function C(I){return I.toString().substring(2,I.toString().length-2).replace(/\.\*\?$/,"*")}return t.debug=t,t.default=t,t.coerce=function(I){return I instanceof Error?I.stack||I.message:I},t.disable=function(){const I=[...t.names.map(C),...t.skips.map(C).map(I=>"-"+I)].join(",");return t.enable(""),I},t.enable=function(I){let g;t.save(I),t.namespaces=I,t.names=[],t.skips=[];const e=("string"==typeof I?I:"").split(/[\s,]+/),C=e.length;for(g=0;g{t[g]=I[g]}),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(I){let g=0;for(let t=0;t{"use strict";I.exports=JSON.parse('{"gateway":{"host":"api.talkn.io","port":443},"ioServer":{"location":"/","host":"api.talkn.io","port":443},"redis":{"client":{"host":"api.talkn.io","port":6379},"cluster":[]},"accept":{"rankAll":false},"payjp":{},"service":{"type":"ec2","plan":{}},"children":[{"gateway":{"host":"api.talkn.io","port":443},"ioServer":{"location":"aa.com/","host":"api.talkn.io","port":443},"redis":{"client":{"host":"api.talkn.io","port":6379},"cluster":[]},"accept":{"rankAll":false},"payjp":{},"service":{"type":"ec2","plan":{}},"children":[{"gateway":null,"ioServer":{"location":"11/22/33/","host":"api.talkn.io","port":443},"redis":{"client":{"host":"api.talkn.io","port":6379},"cluster":[]},"accept":{"rankAll":false},"payjp":{},"service":{"type":"ec2","plan":{}},"children":[]}]},{"gateway":{"host":"api.talkn.io","port":443},"ioServer":{"location":"bb.com/","host":"api.talkn.io","port":443},"redis":{"client":{"host":"api.talkn.io","port":6379},"cluster":[]},"accept":{"rankAll":false},"payjp":{},"service":{"type":"ec2","plan":{}},"children":[{"gateway":null,"ioServer":{"location":"11/22/","host":"api.talkn.io","port":443},"redis":{"client":{"host":"api.talkn.io","port":6379},"cluster":[]},"accept":{"rankAll":false},"payjp":{},"service":{"type":"ec2","plan":{}},"children":[{"gateway":null,"ioServer":{"location":"BBBB/","host":"api.talkn.io","port":443},"redis":{"client":{"host":"api.talkn.io","port":6379},"cluster":[]},"accept":{"rankAll":false},"payjp":{},"service":{"type":"ec2","plan":{}},"children":[]}]}]},{"gateway":{"host":"api.talkn.io","port":443},"ioServer":{"location":"cc.com/","host":"api.talkn.io","port":443},"redis":{"client":{"host":"api.talkn.io","port":6379},"cluster":[]},"accept":{"rankAll":false},"payjp":{},"service":{"type":"ec2","plan":{}},"children":[]},{"gateway":{"host":"api.talkn.io","port":443},"ioServer":{"location":"dd.com/","host":"api.talkn.io","port":443},"redis":{"client":{"host":"api.talkn.io","port":6379},"cluster":[]},"accept":{"rankAll":false},"payjp":{},"service":{"type":"ec2","plan":{}},"children":[{"gateway":null,"ioServer":{"location":"a11/b22/","host":"api.talkn.io","port":443},"redis":{"client":{"host":"api.talkn.io","port":6379},"cluster":[]},"accept":{"rankAll":false},"payjp":{},"service":{"type":"ec2","plan":{}},"children":[{"gateway":null,"ioServer":{"location":"sBBBB/","host":"api.talkn.io","port":443},"redis":{"client":{"host":"api.talkn.io","port":6379},"cluster":[]},"accept":{"rankAll":false},"payjp":{},"service":{"type":"ec2","plan":{}},"children":[]}]}]}]}')},2046:(I,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERROR_PACKET=t.PACKET_TYPES_REVERSE=t.PACKET_TYPES=void 0;const g=Object.create(null);t.PACKET_TYPES=g,g.open="0",g.close="1",g.ping="2",g.pong="3",g.message="4",g.upgrade="5",g.noop="6";const e=Object.create(null);t.PACKET_TYPES_REVERSE=e,Object.keys(g).forEach(I=>{e[g[I]]=I}),t.ERROR_PACKET={type:"error",data:"parser error"}},2120:(I,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=(I=[],t)=>0!==t.type.indexOf("@@redux")?[t.type,...I]:I},2427:(I,t,g)=>{"use strict";g.r(t),g.d(t,{default:()=>c});var e=g(5512),C=g.n(e);function c(){return C()('(()=>{var e={528:function(e,t,n){"use strict";var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Request=t.Polling=void 0;const o=n(4689),r=s(n(6617)),i=n(732),a=n(6376),c=n(3519),l=n(4454),u=n(5374),h=n(6235),p=(0,r.default)("engine.io-client:polling");function d(){}const f=null!=new c.XHR({xdomain:!1}).responseType;class g extends o.Transport{constructor(e){if(super(e),this.polling=!1,"undefined"!=typeof location){const t="https:"===location.protocol;let n=location.port;n||(n=t?"443":"80"),this.xd="undefined"!=typeof location&&e.hostname!==location.hostname||n!==e.port}const t=e&&e.forceBase64;this.supportsBinary=f&&!t,this.opts.withCredentials&&(this.cookieJar=(0,c.createCookieJar)())}get name(){return"polling"}doOpen(){this.poll()}pause(e){this.readyState="pausing";const t=()=>{p("paused"),this.readyState="paused",e()};if(this.polling||!this.writable){let e=0;this.polling&&(p("we are currently polling - waiting to pause"),e++,this.once("pollComplete",function(){p("pre-pause polling complete"),--e||t()})),this.writable||(p("we are currently writing - waiting to pause"),e++,this.once("drain",function(){p("pre-pause writing complete"),--e||t()}))}else t()}poll(){p("polling"),this.polling=!0,this.doPoll(),this.emitReserved("poll")}onData(e){p("polling got data %s",e),(0,a.decodePayload)(e,this.socket.binaryType).forEach(e=>{if("opening"===this.readyState&&"open"===e.type&&this.onOpen(),"close"===e.type)return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(e)}),"closed"!==this.readyState&&(this.polling=!1,this.emitReserved("pollComplete"),"open"===this.readyState?this.poll():p(\'ignoring poll - transport state "%s"\',this.readyState))}doClose(){const e=()=>{p("writing close packet"),this.write([{type:"close"}])};"open"===this.readyState?(p("transport open - closing"),e()):(p("transport not open - deferring close"),this.once("open",e))}write(e){this.writable=!1,(0,a.encodePayload)(e,e=>{this.doWrite(e,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){const e=this.opts.secure?"https":"http",t=this.query||{};return!1!==this.opts.timestampRequests&&(t[this.opts.timestampParam]=(0,i.yeast)()),this.supportsBinary||t.sid||(t.b64=1),this.createUri(e,t)}request(e={}){return Object.assign(e,{xd:this.xd,cookieJar:this.cookieJar},this.opts),new y(this.uri(),e)}doWrite(e,t){const n=this.request({method:"POST",data:e});n.on("success",t),n.on("error",(e,t)=>{this.onError("xhr post error",e,t)})}doPoll(){p("xhr poll");const e=this.request();e.on("data",this.onData.bind(this)),e.on("error",(e,t)=>{this.onError("xhr poll error",e,t)}),this.pollXhr=e}}t.Polling=g;class y extends l.Emitter{constructor(e,t){super(),(0,u.installTimerFunctions)(this,t),this.opts=t,this.method=t.method||"GET",this.uri=e,this.data=void 0!==t.data?t.data:null,this.create()}create(){var e;const t=(0,u.pick)(this.opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");t.xdomain=!!this.opts.xd;const n=this.xhr=new c.XHR(t);try{p("xhr open %s: %s",this.method,this.uri),n.open(this.method,this.uri,!0);try{if(this.opts.extraHeaders){n.setDisableHeaderCheck&&n.setDisableHeaderCheck(!0);for(let e in this.opts.extraHeaders)this.opts.extraHeaders.hasOwnProperty(e)&&n.setRequestHeader(e,this.opts.extraHeaders[e])}}catch(e){}if("POST"===this.method)try{n.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch(e){}try{n.setRequestHeader("Accept","*/*")}catch(e){}null===(e=this.opts.cookieJar)||void 0===e||e.addCookies(n),"withCredentials"in n&&(n.withCredentials=this.opts.withCredentials),this.opts.requestTimeout&&(n.timeout=this.opts.requestTimeout),n.onreadystatechange=()=>{var e;3===n.readyState&&(null===(e=this.opts.cookieJar)||void 0===e||e.parseCookies(n)),4===n.readyState&&(200===n.status||1223===n.status?this.onLoad():this.setTimeoutFn(()=>{this.onError("number"==typeof n.status?n.status:0)},0))},p("xhr data %s",this.data),n.send(this.data)}catch(e){return void this.setTimeoutFn(()=>{this.onError(e)},0)}"undefined"!=typeof document&&(this.index=y.requestsCount++,y.requests[this.index]=this)}onError(e){this.emitReserved("error",e,this.xhr),this.cleanup(!0)}cleanup(e){if(void 0!==this.xhr&&null!==this.xhr){if(this.xhr.onreadystatechange=d,e)try{this.xhr.abort()}catch(e){}"undefined"!=typeof document&&delete y.requests[this.index],this.xhr=null}}onLoad(){const e=this.xhr.responseText;null!==e&&(this.emitReserved("data",e),this.emitReserved("success"),this.cleanup())}abort(){this.cleanup()}}if(t.Request=y,y.requestsCount=0,y.requests={},"undefined"!=typeof document)if("function"==typeof attachEvent)attachEvent("onunload",m);else if("function"==typeof addEventListener){const e="onpagehide"in h.globalThisShim?"pagehide":"unload";addEventListener(e,m,!1)}function m(){for(let e in y.requests)y.requests.hasOwnProperty(e)&&y.requests[e].abort()}},732:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.yeast=t.decode=t.encode=void 0;const n="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""),s={};let o,r=0,i=0;function a(e){let t="";do{t=n[e%64]+t,e=Math.floor(e/64)}while(e>0);return t}for(t.encode=a,t.decode=function(e){let t=0;for(i=0;i{t.formatArgs=function(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff),!this.useColors)return;const n="color: "+this.color;t.splice(1,0,n,"color: inherit");let s=0,o=0;t[0].replace(/%[a-zA-Z%]/g,e=>{"%%"!==e&&(s++,"%c"===e&&(o=s))}),t.splice(o,0,n)},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(e){}},t.load=function(){let e;try{e=t.storage.getItem("debug")}catch(e){}return!e&&"undefined"!=typeof process&&"env"in process&&(e=process.env.DEBUG),e},t.useColors=function(){if("undefined"!=typeof window&&window.process&&("renderer"===window.process.type||window.process.__nwjs))return!0;if("undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/))return!1;let e;return"undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/))&&parseInt(e[1],10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/)},t.storage=function(){try{return localStorage}catch(e){}}(),t.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],t.log=console.debug||console.log||(()=>{}),e.exports=n(3995)(t);const{formatters:s}=e.exports;s.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},1015:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.parse=void 0;const n=/^(?:(?![^:@\\/?#]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@\\/?#]*)(?::([^:@\\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/,s=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];t.parse=function(e){if(e.length>2e3)throw"URI too long";const t=e,o=e.indexOf("["),r=e.indexOf("]");-1!=o&&-1!=r&&(e=e.substring(0,o)+e.substring(o,r).replace(/:/g,";")+e.substring(r,e.length));let i=n.exec(e||""),a={},c=14;for(;c--;)a[s[c]]=i[c]||"";return-1!=o&&-1!=r&&(a.source=t,a.host=a.host.substring(1,a.host.length-1).replace(/;/g,":"),a.authority=a.authority.replace("[","").replace("]","").replace(/;/g,":"),a.ipv6uri=!0),a.pathNames=function(e,t){const n=t.replace(/\\/{2,9}/g,"/").split("/");return"/"!=t.slice(0,1)&&0!==t.length||n.splice(0,1),"/"==t.slice(-1)&&n.splice(n.length-1,1),n}(0,a.path),a.queryKey=function(e,t){const n={};return t.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(e,t,s){t&&(n[t]=s)}),n}(0,a.query),a}},1308:function(e,t,n){"use strict";var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.init=void 0;const o=s(n(7006));t.init={gateway:null,ioServer:{location:"",host:"localhost",port:0},redis:{cluster:[],client:{host:"127.0.0.1",port:6379}},accept:{rankAll:!1},children:[]};class r{constructor(e=t.init){return Object.assign(this,e)}static getMyChConfig(e,t){const n=(e,s="")=>{const o=s+e.ioServer.location;if(o===t)return{...e,children:[],connection:t};if(e.children&&e.children.length>0)for(const t of e.children){const e=n(t,o);if(e)return e}return null},s=n(e);return null!==s?s:{...e,children:[],connection:t}}static getChRootsConfig(e){const{chConfigJson:t,tuneConnection:n}=e,s=(e,t,n,o=[])=>{const r=e.find(e=>t.indexOf(n+e.ioServer.location)>=0);if(r){const e=n+r.ioServer.location;return o.push({...r,children:[],connection:e}),s(r.children,t,e,o)}return o};return s(t.children,n,o.default.rootConnection,[{...t,children:[],connection:o.default.rootConnection}])}static getGateway(e){const t=r.getChRootsConfig(e);return t[1]?t[1].gateway:t[0].gateway}static getRootsConnections(e,t=!1){const n=r.getChRootsConfig(e).map(e=>e.connection);return t?n.filter(t=>t!==e.tuneConnection):n}}t.default=r},1703:(e,t,n)=>{e.exports=function(e){function t(e){let n,o,r,i=null;function a(...e){if(!a.enabled)return;const s=a,o=Number(new Date),r=o-(n||o);s.diff=r,s.prev=n,s.curr=o,n=o,e[0]=t.coerce(e[0]),"string"!=typeof e[0]&&e.unshift("%O");let i=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,(n,o)=>{if("%%"===n)return"%";i++;const r=t.formatters[o];if("function"==typeof r){const t=e[i];n=r.call(s,t),e.splice(i,1),i--}return n}),t.formatArgs.call(s,e),(s.log||t.log).apply(s,e)}return a.namespace=e,a.useColors=t.useColors(),a.color=t.selectColor(e),a.extend=s,a.destroy=t.destroy,Object.defineProperty(a,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==i?i:(o!==t.namespaces&&(o=t.namespaces,r=t.enabled(e)),r),set:e=>{i=e}}),"function"==typeof t.init&&t.init(a),a}function s(e,n){const s=t(this.namespace+(void 0===n?":":n)+e);return s.log=this.log,s}function o(e){return e.toString().substring(2,e.toString().length-2).replace(/\\.\\*\\?$/,"*")}return t.debug=t,t.default=t,t.coerce=function(e){return e instanceof Error?e.stack||e.message:e},t.disable=function(){const e=[...t.names.map(o),...t.skips.map(o).map(e=>"-"+e)].join(",");return t.enable(""),e},t.enable=function(e){let n;t.save(e),t.namespaces=e,t.names=[],t.skips=[];const s=("string"==typeof e?e:"").split(/[\\s,]+/),o=s.length;for(n=0;n{t[n]=e[n]}),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let n=0;for(let t=0;t{"use strict";e.exports=JSON.parse(\'{"gateway":{"host":"api.talkn.io","port":443},"ioServer":{"location":"/","host":"api.talkn.io","port":443},"redis":{"client":{"host":"api.talkn.io","port":6379},"cluster":[]},"accept":{"rankAll":false},"payjp":{},"service":{"type":"ec2","plan":{}},"children":[{"gateway":{"host":"api.talkn.io","port":443},"ioServer":{"location":"aa.com/","host":"api.talkn.io","port":443},"redis":{"client":{"host":"api.talkn.io","port":6379},"cluster":[]},"accept":{"rankAll":false},"payjp":{},"service":{"type":"ec2","plan":{}},"children":[{"gateway":null,"ioServer":{"location":"11/22/33/","host":"api.talkn.io","port":443},"redis":{"client":{"host":"api.talkn.io","port":6379},"cluster":[]},"accept":{"rankAll":false},"payjp":{},"service":{"type":"ec2","plan":{}},"children":[]}]},{"gateway":{"host":"api.talkn.io","port":443},"ioServer":{"location":"bb.com/","host":"api.talkn.io","port":443},"redis":{"client":{"host":"api.talkn.io","port":6379},"cluster":[]},"accept":{"rankAll":false},"payjp":{},"service":{"type":"ec2","plan":{}},"children":[{"gateway":null,"ioServer":{"location":"11/22/","host":"api.talkn.io","port":443},"redis":{"client":{"host":"api.talkn.io","port":6379},"cluster":[]},"accept":{"rankAll":false},"payjp":{},"service":{"type":"ec2","plan":{}},"children":[{"gateway":null,"ioServer":{"location":"BBBB/","host":"api.talkn.io","port":443},"redis":{"client":{"host":"api.talkn.io","port":6379},"cluster":[]},"accept":{"rankAll":false},"payjp":{},"service":{"type":"ec2","plan":{}},"children":[]}]}]},{"gateway":{"host":"api.talkn.io","port":443},"ioServer":{"location":"cc.com/","host":"api.talkn.io","port":443},"redis":{"client":{"host":"api.talkn.io","port":6379},"cluster":[]},"accept":{"rankAll":false},"payjp":{},"service":{"type":"ec2","plan":{}},"children":[]},{"gateway":{"host":"api.talkn.io","port":443},"ioServer":{"location":"dd.com/","host":"api.talkn.io","port":443},"redis":{"client":{"host":"api.talkn.io","port":6379},"cluster":[]},"accept":{"rankAll":false},"payjp":{},"service":{"type":"ec2","plan":{}},"children":[{"gateway":null,"ioServer":{"location":"a11/b22/","host":"api.talkn.io","port":443},"redis":{"client":{"host":"api.talkn.io","port":6379},"cluster":[]},"accept":{"rankAll":false},"payjp":{},"service":{"type":"ec2","plan":{}},"children":[{"gateway":null,"ioServer":{"location":"sBBBB/","host":"api.talkn.io","port":443},"redis":{"client":{"host":"api.talkn.io","port":6379},"cluster":[]},"accept":{"rankAll":false},"payjp":{},"service":{"type":"ec2","plan":{}},"children":[]}]}]}]}\')},2046:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ERROR_PACKET=t.PACKET_TYPES_REVERSE=t.PACKET_TYPES=void 0;const n=Object.create(null);t.PACKET_TYPES=n,n.open="0",n.close="1",n.ping="2",n.pong="3",n.message="4",n.upgrade="5",n.noop="6";const s=Object.create(null);t.PACKET_TYPES_REVERSE=s,Object.keys(n).forEach(e=>{s[n[e]]=e}),t.ERROR_PACKET={type:"error",data:"parser error"}},2662:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.decodePacket=void 0;const s=n(2046),o=n(2745),r="function"==typeof ArrayBuffer;t.decodePacket=(e,t)=>{if("string"!=typeof e)return{type:"message",data:a(e,t)};const n=e.charAt(0);return"b"===n?{type:"message",data:i(e.substring(1),t)}:s.PACKET_TYPES_REVERSE[n]?e.length>1?{type:s.PACKET_TYPES_REVERSE[n],data:e.substring(1)}:{type:s.PACKET_TYPES_REVERSE[n]}:s.ERROR_PACKET};const i=(e,t)=>{if(r){const n=(0,o.decode)(e);return a(n,t)}return{base64:!0,data:e}},a=(e,t)=>"blob"===t?e instanceof Blob?e:new Blob([e]):e instanceof ArrayBuffer?e:e.buffer},2686:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.encodePacket=void 0,t.encodePacketToBinary=function(e,t){return o&&e.data instanceof Blob?e.data.arrayBuffer().then(l).then(t):r&&(e.data instanceof ArrayBuffer||i(e.data))?t(l(e.data)):void a(e,!1,e=>{u||(u=new TextEncoder),t(u.encode(e))})};const s=n(2046),o="function"==typeof Blob||"undefined"!=typeof Blob&&"[object BlobConstructor]"===Object.prototype.toString.call(Blob),r="function"==typeof ArrayBuffer,i=e=>"function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer instanceof ArrayBuffer,a=({type:e,data:t},n,a)=>o&&t instanceof Blob?n?a(t):c(t,a):r&&(t instanceof ArrayBuffer||i(t))?n?a(t):c(new Blob([t]),a):a(s.PACKET_TYPES[e]+(t||""));t.encodePacket=a;const c=(e,t)=>{const n=new FileReader;return n.onload=function(){const e=n.result.split(",")[1];t("b"+(e||""))},n.readAsDataURL(e)};function l(e){return e instanceof Uint8Array?e:e instanceof ArrayBuffer?new Uint8Array(e):new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}let u},2745:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.decode=t.encode=void 0;const n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s="undefined"==typeof Uint8Array?[]:new Uint8Array(256);for(let e=0;e<64;e++)s[n.charCodeAt(e)]=e;t.encode=e=>{let t,s=new Uint8Array(e),o=s.length,r="";for(t=0;t>2],r+=n[(3&s[t])<<4|s[t+1]>>4],r+=n[(15&s[t+1])<<2|s[t+2]>>6],r+=n[63&s[t+2]];return o%3==2?r=r.substring(0,r.length-1)+"=":o%3==1&&(r=r.substring(0,r.length-2)+"=="),r},t.decode=e=>{let t,n,o,r,i,a=.75*e.length,c=e.length,l=0;"="===e[e.length-1]&&(a--,"="===e[e.length-2]&&a--);const u=new ArrayBuffer(a),h=new Uint8Array(u);for(t=0;t>4,h[l++]=(15&o)<<4|r>>2,h[l++]=(3&r)<<6|63&i;return u}},3062:()=>{},3519:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createCookieJar=t.XHR=void 0;const s=n(4110),o=n(6235);t.XHR=function(e){const t=e.xdomain;try{if("undefined"!=typeof XMLHttpRequest&&(!t||s.hasCORS))return new XMLHttpRequest}catch(e){}if(!t)try{return new(o.globalThisShim[["Active"].concat("Object").join("X")])("Microsoft.XMLHTTP")}catch(e){}},t.createCookieJar=function(){}},3776:function(e,t,n){"use strict";var s=this&&this.__createBinding||(Object.create?function(e,t,n,s){void 0===s&&(s=n),Object.defineProperty(e,s,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,s){void 0===s&&(s=n),e[s]=t[n]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&s(t,e,n);return o(t,e),t},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Manager=void 0;const a=n(4956),c=n(6214),l=r(n(4627)),u=n(5942),h=n(7743),p=n(4454),d=i(n(9368)).default("socket.io-client:manager");class f extends p.Emitter{constructor(e,t){var n;super(),this.nsps={},this.subs=[],e&&"object"==typeof e&&(t=e,e=void 0),(t=t||{}).path=t.path||"/socket.io",this.opts=t,a.installTimerFunctions(this,t),this.reconnection(!1!==t.reconnection),this.reconnectionAttempts(t.reconnectionAttempts||1/0),this.reconnectionDelay(t.reconnectionDelay||1e3),this.reconnectionDelayMax(t.reconnectionDelayMax||5e3),this.randomizationFactor(null!==(n=t.randomizationFactor)&&void 0!==n?n:.5),this.backoff=new h.Backoff({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(null==t.timeout?2e4:t.timeout),this._readyState="closed",this.uri=e;const s=t.parser||l;this.encoder=new s.Encoder,this.decoder=new s.Decoder,this._autoConnect=!1!==t.autoConnect,this._autoConnect&&this.open()}reconnection(e){return arguments.length?(this._reconnection=!!e,this):this._reconnection}reconnectionAttempts(e){return void 0===e?this._reconnectionAttempts:(this._reconnectionAttempts=e,this)}reconnectionDelay(e){var t;return void 0===e?this._reconnectionDelay:(this._reconnectionDelay=e,null===(t=this.backoff)||void 0===t||t.setMin(e),this)}randomizationFactor(e){var t;return void 0===e?this._randomizationFactor:(this._randomizationFactor=e,null===(t=this.backoff)||void 0===t||t.setJitter(e),this)}reconnectionDelayMax(e){var t;return void 0===e?this._reconnectionDelayMax:(this._reconnectionDelayMax=e,null===(t=this.backoff)||void 0===t||t.setMax(e),this)}timeout(e){return arguments.length?(this._timeout=e,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&0===this.backoff.attempts&&this.reconnect()}open(e){if(d("readyState %s",this._readyState),~this._readyState.indexOf("open"))return this;d("opening %s",this.uri),this.engine=new a.Socket(this.uri,this.opts);const t=this.engine,n=this;this._readyState="opening",this.skipReconnect=!1;const s=u.on(t,"open",function(){n.onopen(),e&&e()}),o=t=>{d("error"),this.cleanup(),this._readyState="closed",this.emitReserved("error",t),e?e(t):this.maybeReconnectOnOpen()},r=u.on(t,"error",o);if(!1!==this._timeout){const e=this._timeout;d("connect attempt will timeout after %d",e);const n=this.setTimeoutFn(()=>{d("connect attempt timed out after %d",e),s(),o(new Error("timeout")),t.close()},e);this.opts.autoUnref&&n.unref(),this.subs.push(()=>{this.clearTimeoutFn(n)})}return this.subs.push(s),this.subs.push(r),this}connect(e){return this.open(e)}onopen(){d("open"),this.cleanup(),this._readyState="open",this.emitReserved("open");const e=this.engine;this.subs.push(u.on(e,"ping",this.onping.bind(this)),u.on(e,"data",this.ondata.bind(this)),u.on(e,"error",this.onerror.bind(this)),u.on(e,"close",this.onclose.bind(this)),u.on(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(e){try{this.decoder.add(e)}catch(e){this.onclose("parse error",e)}}ondecoded(e){a.nextTick(()=>{this.emitReserved("packet",e)},this.setTimeoutFn)}onerror(e){d("error",e),this.emitReserved("error",e)}socket(e,t){let n=this.nsps[e];return n?this._autoConnect&&!n.active&&n.connect():(n=new c.Socket(this,e,t),this.nsps[e]=n),n}_destroy(e){const t=Object.keys(this.nsps);for(const e of t)if(this.nsps[e].active)return void d("socket %s is still active, skipping close",e);this._close()}_packet(e){d("writing packet %j",e);const t=this.encoder.encode(e);for(let n=0;ne()),this.subs.length=0,this.decoder.destroy()}_close(){d("disconnect"),this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close"),this.engine&&this.engine.close()}disconnect(){return this._close()}onclose(e,t){d("closed due to %s",e),this.cleanup(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",e,t),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;const e=this;if(this.backoff.attempts>=this._reconnectionAttempts)d("reconnect failed"),this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{const t=this.backoff.duration();d("will wait %dms before reconnect attempt",t),this._reconnecting=!0;const n=this.setTimeoutFn(()=>{e.skipReconnect||(d("attempting reconnect"),this.emitReserved("reconnect_attempt",e.backoff.attempts),e.skipReconnect||e.open(t=>{t?(d("reconnect attempt error"),e._reconnecting=!1,e.reconnect(),this.emitReserved("reconnect_error",t)):(d("reconnect success"),e.onreconnect())}))},t);this.opts.autoUnref&&n.unref(),this.subs.push(()=>{this.clearTimeoutFn(n)})}}onreconnect(){const e=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",e)}}t.Manager=f},3995:(e,t,n)=>{e.exports=function(e){function t(e){let n,o,r,i=null;function a(...e){if(!a.enabled)return;const s=a,o=Number(new Date),r=o-(n||o);s.diff=r,s.prev=n,s.curr=o,n=o,e[0]=t.coerce(e[0]),"string"!=typeof e[0]&&e.unshift("%O");let i=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,(n,o)=>{if("%%"===n)return"%";i++;const r=t.formatters[o];if("function"==typeof r){const t=e[i];n=r.call(s,t),e.splice(i,1),i--}return n}),t.formatArgs.call(s,e),(s.log||t.log).apply(s,e)}return a.namespace=e,a.useColors=t.useColors(),a.color=t.selectColor(e),a.extend=s,a.destroy=t.destroy,Object.defineProperty(a,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==i?i:(o!==t.namespaces&&(o=t.namespaces,r=t.enabled(e)),r),set:e=>{i=e}}),"function"==typeof t.init&&t.init(a),a}function s(e,n){const s=t(this.namespace+(void 0===n?":":n)+e);return s.log=this.log,s}function o(e){return e.toString().substring(2,e.toString().length-2).replace(/\\.\\*\\?$/,"*")}return t.debug=t,t.default=t,t.coerce=function(e){return e instanceof Error?e.stack||e.message:e},t.disable=function(){const e=[...t.names.map(o),...t.skips.map(o).map(e=>"-"+e)].join(",");return t.enable(""),e},t.enable=function(e){let n;t.save(e),t.namespaces=e,t.names=[],t.skips=[];const s=("string"==typeof e?e:"").split(/[\\s,]+/),o=s.length;for(n=0;n{t[n]=e[n]}),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let n=0;for(let t=0;t{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.defaultBinaryType=t.usingBrowserWebSocket=t.WebSocket=t.nextTick=void 0;const s=n(6235);t.nextTick="function"==typeof Promise&&"function"==typeof Promise.resolve?e=>Promise.resolve().then(e):(e,t)=>t(e,0),t.WebSocket=s.globalThisShim.WebSocket||s.globalThisShim.MozWebSocket,t.usingBrowserWebSocket=!0,t.defaultBinaryType="arraybuffer"},4110:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.hasCORS=void 0;let n=!1;try{n="undefined"!=typeof XMLHttpRequest&&"withCredentials"in new XMLHttpRequest}catch(e){}t.hasCORS=n},4454:(e,t,n)=>{"use strict";function s(e){if(e)return function(e){for(var t in s.prototype)e[t]=s.prototype[t];return e}(e)}n.r(t),n.d(t,{Emitter:()=>s}),s.prototype.on=s.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks["$"+e]=this._callbacks["$"+e]||[]).push(t),this},s.prototype.once=function(e,t){function n(){this.off(e,n),t.apply(this,arguments)}return n.fn=t,this.on(e,n),this},s.prototype.off=s.prototype.removeListener=s.prototype.removeAllListeners=s.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var n,s=this._callbacks["$"+e];if(!s)return this;if(1==arguments.length)return delete this._callbacks["$"+e],this;for(var o=0;o{a("transport closed gracefully"),this.onClose()}).catch(e=>{a("transport closed due to %s",e),this.onError("webtransport error",e)}),this.transport.ready.then(()=>{this.transport.createBidirectionalStream().then(e=>{const t=(0,i.createPacketDecoderStream)(Number.MAX_SAFE_INTEGER,this.socket.binaryType),n=e.readable.pipeThrough(t).getReader(),s=(0,i.createPacketEncoderStream)();s.readable.pipeTo(e.writable),this.writer=s.writable.getWriter();const o=()=>{n.read().then(({done:e,value:t})=>{e?a("session is closed"):(a("received chunk: %o",t),this.onPacket(t),o())}).catch(e=>{a("an error occurred while reading: %s",e)})};o();const r={type:"open"};this.query.sid&&(r.data=`{"sid":"${this.query.sid}"}`),this.writer.write(r).then(()=>this.onOpen())})}))}write(e){this.writable=!1;for(let t=0;t{s&&(0,r.nextTick)(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var e;null===(e=this.transport)||void 0===e||e.close()}}t.WT=c},4627:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Decoder=t.Encoder=t.PacketType=t.protocol=void 0;const s=n(4454),o=n(4926),r=n(9133),i=(0,n(852).default)("socket.io-parser"),a=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"];var c;function l(e){return"[object Object]"===Object.prototype.toString.call(e)}t.protocol=5,function(e){e[e.CONNECT=0]="CONNECT",e[e.DISCONNECT=1]="DISCONNECT",e[e.EVENT=2]="EVENT",e[e.ACK=3]="ACK",e[e.CONNECT_ERROR=4]="CONNECT_ERROR",e[e.BINARY_EVENT=5]="BINARY_EVENT",e[e.BINARY_ACK=6]="BINARY_ACK"}(c=t.PacketType||(t.PacketType={})),t.Encoder=class{constructor(e){this.replacer=e}encode(e){return i("encoding packet %j",e),e.type!==c.EVENT&&e.type!==c.ACK||!(0,r.hasBinary)(e)?[this.encodeAsString(e)]:this.encodeAsBinary({type:e.type===c.EVENT?c.BINARY_EVENT:c.BINARY_ACK,nsp:e.nsp,data:e.data,id:e.id})}encodeAsString(e){let t=""+e.type;return e.type!==c.BINARY_EVENT&&e.type!==c.BINARY_ACK||(t+=e.attachments+"-"),e.nsp&&"/"!==e.nsp&&(t+=e.nsp+","),null!=e.id&&(t+=e.id),null!=e.data&&(t+=JSON.stringify(e.data,this.replacer)),i("encoded %j as %s",e,t),t}encodeAsBinary(e){const t=(0,o.deconstructPacket)(e),n=this.encodeAsString(t.packet),s=t.buffers;return s.unshift(n),s}};class u extends s.Emitter{constructor(e){super(),this.reviver=e}add(e){let t;if("string"==typeof e){if(this.reconstructor)throw new Error("got plaintext data when reconstructing a packet");t=this.decodeString(e);const n=t.type===c.BINARY_EVENT;n||t.type===c.BINARY_ACK?(t.type=n?c.EVENT:c.ACK,this.reconstructor=new h(t),0===t.attachments&&super.emitReserved("decoded",t)):super.emitReserved("decoded",t)}else{if(!(0,r.isBinary)(e)&&!e.base64)throw new Error("Unknown type: "+e);if(!this.reconstructor)throw new Error("got binary data when not reconstructing a packet");t=this.reconstructor.takeBinaryData(e),t&&(this.reconstructor=null,super.emitReserved("decoded",t))}}decodeString(e){let t=0;const n={type:Number(e.charAt(0))};if(void 0===c[n.type])throw new Error("unknown packet type "+n.type);if(n.type===c.BINARY_EVENT||n.type===c.BINARY_ACK){const s=t+1;for(;"-"!==e.charAt(++t)&&t!=e.length;);const o=e.substring(s,t);if(o!=Number(o)||"-"!==e.charAt(t))throw new Error("Illegal attachments");n.attachments=Number(o)}if("/"===e.charAt(t+1)){const s=t+1;for(;++t&&","!==e.charAt(t)&&t!==e.length;);n.nsp=e.substring(s,t)}else n.nsp="/";const s=e.charAt(t+1);if(""!==s&&Number(s)==s){const s=t+1;for(;++t;){const n=e.charAt(t);if(null==n||Number(n)!=n){--t;break}if(t===e.length)break}n.id=Number(e.substring(s,t+1))}if(e.charAt(++t)){const s=this.tryParse(e.substr(t));if(!u.isPayloadValid(n.type,s))throw new Error("invalid payload");n.data=s}return i("decoded %s as %j",e,n),n}tryParse(e){try{return JSON.parse(e,this.reviver)}catch(e){return!1}}static isPayloadValid(e,t){switch(e){case c.CONNECT:return l(t);case c.DISCONNECT:return void 0===t;case c.CONNECT_ERROR:return"string"==typeof t||l(t);case c.EVENT:case c.BINARY_EVENT:return Array.isArray(t)&&("number"==typeof t[0]||"string"==typeof t[0]&&-1===a.indexOf(t[0]));case c.ACK:case c.BINARY_ACK:return Array.isArray(t)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}}t.Decoder=u;class h{constructor(e){this.packet=e,this.buffers=[],this.reconPack=e}takeBinaryData(e){if(this.buffers.push(e),this.buffers.length===this.reconPack.attachments){const e=(0,o.reconstructPacket)(this.reconPack,this.buffers);return this.finishedReconstruction(),e}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}},4689:function(e,t,n){"use strict";var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Transport=t.TransportError=void 0;const o=n(6376),r=n(4454),i=n(5374),a=s(n(6617)),c=n(8661),l=(0,a.default)("engine.io-client:transport");class u extends Error{constructor(e,t,n){super(e),this.description=t,this.context=n,this.type="TransportError"}}t.TransportError=u;class h extends r.Emitter{constructor(e){super(),this.writable=!1,(0,i.installTimerFunctions)(this,e),this.opts=e,this.query=e.query,this.socket=e.socket}onError(e,t,n){return super.emitReserved("error",new u(e,t,n)),this}open(){return this.readyState="opening",this.doOpen(),this}close(){return"opening"!==this.readyState&&"open"!==this.readyState||(this.doClose(),this.onClose()),this}send(e){"open"===this.readyState?this.write(e):l("transport is not open, discarding packets")}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(e){const t=(0,o.decodePacket)(e,this.socket.binaryType);this.onPacket(t)}onPacket(e){super.emitReserved("packet",e)}onClose(e){this.readyState="closed",super.emitReserved("close",e)}pause(e){}createUri(e,t={}){return e+"://"+this._hostname()+this._port()+this.opts.path+this._query(t)}_hostname(){const e=this.opts.hostname;return-1===e.indexOf(":")?e:"["+e+"]"}_port(){return this.opts.port&&(this.opts.secure&&Number(443!==this.opts.port)||!this.opts.secure&&80!==Number(this.opts.port))?":"+this.opts.port:""}_query(e){const t=(0,c.encode)(e);return t.length?"?"+t:""}}t.Transport=h},4926:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.reconstructPacket=t.deconstructPacket=void 0;const s=n(9133);function o(e,t){if(!e)return e;if((0,s.isBinary)(e)){const n={_placeholder:!0,num:t.length};return t.push(e),n}if(Array.isArray(e)){const n=new Array(e.length);for(let s=0;s=0&&e.num{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.nextTick=t.parse=t.installTimerFunctions=t.transports=t.TransportError=t.Transport=t.protocol=t.Socket=void 0;const s=n(8223);Object.defineProperty(t,"Socket",{enumerable:!0,get:function(){return s.Socket}}),t.protocol=s.Socket.protocol;var o=n(4689);Object.defineProperty(t,"Transport",{enumerable:!0,get:function(){return o.Transport}}),Object.defineProperty(t,"TransportError",{enumerable:!0,get:function(){return o.TransportError}});var r=n(9419);Object.defineProperty(t,"transports",{enumerable:!0,get:function(){return r.transports}});var i=n(5374);Object.defineProperty(t,"installTimerFunctions",{enumerable:!0,get:function(){return i.installTimerFunctions}});var a=n(1015);Object.defineProperty(t,"parse",{enumerable:!0,get:function(){return a.parse}});var c=n(4087);Object.defineProperty(t,"nextTick",{enumerable:!0,get:function(){return c.nextTick}})},5028:function(e,t,n){"use strict";var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.init=void 0;const o=s(n(7006)),r=n(9934);t.default=class{static getConnection(e){return""===e?o.default.rootConnection:(e=e.endsWith(o.default.rootConnection)?e:`${e}${o.default.rootConnection}`).startsWith(o.default.rootConnection)?e:`${o.default.rootConnection}${e}`}static getTuneOptionString(e){let t={};Object.keys(e).forEach(n=>{const s=n,o=Number(e[s]);o&&(t[s]=o)});const n=JSON.parse(JSON.stringify(t));return new URLSearchParams(n).toString()}constructor(e=t.init){return this.hasSlash=!1,this.protocol="",this.host="",this.connection=o.default.rootConnection,this.tuneOption=r.init,Object.assign(this,e)}},t.init={hasSlash:!1,protocol:"",host:"",connection:"",tuneOption:{}}},5374:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.byteLength=t.installTimerFunctions=t.pick=void 0;const s=n(6235);t.pick=function(e,...t){return t.reduce((t,n)=>(e.hasOwnProperty(n)&&(t[n]=e[n]),t),{})};const o=s.globalThisShim.setTimeout,r=s.globalThisShim.clearTimeout;t.installTimerFunctions=function(e,t){t.useNativeTimers?(e.setTimeoutFn=o.bind(s.globalThisShim),e.clearTimeoutFn=r.bind(s.globalThisShim)):(e.setTimeoutFn=s.globalThisShim.setTimeout.bind(s.globalThisShim),e.clearTimeoutFn=s.globalThisShim.clearTimeout.bind(s.globalThisShim))},t.byteLength=function(e){return"string"==typeof e?function(e){let t=0,n=0;for(let s=0,o=e.length;s=57344?n+=3:(s++,n+=4);return n}(e):Math.ceil(1.33*(e.byteLength||e.size))}},5379:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={APP_NAME:"talkn",PRODUCTION:"PRODUCTION",LOCALHOST:"LOCALHOST",DEVELOPMENT:"DEVELOPMENT",PRODUCTION_DOMAIN:"talkn.io",PRODUCTION_API_DOMAIN:"api.talkn.io",DEVELOPMENT_DOMAIN:"localhost",AWS_HOST_KEY:"compute.internal",PORTS:{HTTP:80,HTTPS:443,DEVELOPMENT_COVER:8e3,DEVELOPMENT_API:8001,DEVELOPMENT_COMPONENTS:8002,DEVELOPMENT_TUNE:8003,DEVELOPMENT_CLIENT:8080,REDIS:6379,MONGO:27017,IO_LB:10440,IO_ROOT:10444},SUB_DOMAINS:{WWW:"www",API:"api",DESC:"desc",PORTAL:"portal",CLIENT:"client",ASSETS:"assets",SESSION:"session",AUTO:"auto",OWN:"own",NEWS:"news",BANNER:"banner",COVER:"cover",RANK:"rank",EXT:"ext",COMPONENTS:"components",TUNE:"tune",TRANSACTION:"transaction",AUTH:"auth"},APP_TYPES:{CLIENT:"CLIENT",PORTAL:"PORTAL",EXTENSION:"EXTENSION",API:"API",COVER:"COVER",COMPONENTS:"COMPONENTS",TUNE:"TUNE"},URL:{twitter:"https://twitter.com/",facebook:"https://www.facebook.com/",appstore:"https://itunes.apple.com/app/id",playstore:"https://play.google.com/store/apps/details?id=",chromeExtension:"https://chrome.google.com/webstore/detail/talkn-for-chrome/dkngnmdlcofambpfaccepbnjgfholgbo?hl=en"},talknClientJs:"talkn.client.js",talknApiJs:"talkn.api.js",talknRankJs:"talkn.rank.js",noInnerNotif:"Sorry, No Function.",bannerClass:"talkn_banner",storageKey:{baseKey:"@talkn@",postsTimelineZero:"postsTimelineZero",postsTimeline:"postsTimeline",postsSingle:"postsSingle",postsMulti:"postsMulti",postsChild:"postsChild",postsLogs:"postsLogs",threads:"threads"}}},5606:e=>{var t,n,s=e.exports={};function o(){throw new Error("setTimeout has not been defined")}function r(){throw new Error("clearTimeout has not been defined")}function i(e){if(t===setTimeout)return setTimeout(e,0);if((t===o||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(n){try{return t.call(null,e,0)}catch(n){return t.call(this,e,0)}}}!function(){try{t="function"==typeof setTimeout?setTimeout:o}catch(e){t=o}try{n="function"==typeof clearTimeout?clearTimeout:r}catch(e){n=r}}();var a,c=[],l=!1,u=-1;function h(){l&&a&&(l=!1,a.length?c=a.concat(c):u=-1,c.length&&p())}function p(){if(!l){var e=i(h);l=!0;for(var t=c.length;t;){for(a=c,c=[];++u1)for(var n=1;n{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.generateUniqueKey=t.generateUniqueKeySeparator=t.isValidKey=t.IS_NODE=t.IS_BROWSER=t.isNodeServer=void 0,t.getEnvVar=function(e){if(t.IS_NODE)return process.env?.[e]},t.isNodeServer=()=>"undefined"==typeof window,t.IS_BROWSER="undefined"!=typeof window,t.IS_NODE="undefined"!=typeof process&&!!process.release?.name,t.isValidKey=(e,t)=>e in t,t.generateUniqueKeySeparator="::",t.generateUniqueKey=(e="id",n=t.generateUniqueKeySeparator)=>e+n+Date.now().toString(36)+Math.random().toString(36).substr(2,5)},5942:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.on=void 0,t.on=function(e,t,n){return e.on(t,n),function(){e.off(t,n)}}},6214:function(e,t,n){"use strict";var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Socket=void 0;const o=n(4627),r=n(5942),i=n(4454),a=s(n(9368)).default("socket.io-client:socket"),c=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1});class l extends i.Emitter{constructor(e,t,n){super(),this.connected=!1,this.recovered=!1,this.receiveBuffer=[],this.sendBuffer=[],this._queue=[],this._queueSeq=0,this.ids=0,this.acks={},this.flags={},this.io=e,this.nsp=t,n&&n.auth&&(this.auth=n.auth),this._opts=Object.assign({},n),this.io._autoConnect&&this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;const e=this.io;this.subs=[r.on(e,"open",this.onopen.bind(this)),r.on(e,"packet",this.onpacket.bind(this)),r.on(e,"error",this.onerror.bind(this)),r.on(e,"close",this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected||(this.subEvents(),this.io._reconnecting||this.io.open(),"open"===this.io._readyState&&this.onopen()),this}open(){return this.connect()}send(...e){return e.unshift("message"),this.emit.apply(this,e),this}emit(e,...t){if(c.hasOwnProperty(e))throw new Error(\'"\'+e.toString()+\'" is a reserved event name\');if(t.unshift(e),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(t),this;const n={type:o.PacketType.EVENT,data:t,options:{}};if(n.options.compress=!1!==this.flags.compress,"function"==typeof t[t.length-1]){const e=this.ids++;a("emitting packet with ack id %d",e);const s=t.pop();this._registerAckCallback(e,s),n.id=e}const s=this.io.engine&&this.io.engine.transport&&this.io.engine.transport.writable;return!this.flags.volatile||s&&this.connected?this.connected?(this.notifyOutgoingListeners(n),this.packet(n)):this.sendBuffer.push(n):a("discard packet as the transport is not currently writable"),this.flags={},this}_registerAckCallback(e,t){var n;const s=null!==(n=this.flags.timeout)&&void 0!==n?n:this._opts.ackTimeout;if(void 0===s)return void(this.acks[e]=t);const o=this.io.setTimeoutFn(()=>{delete this.acks[e];for(let t=0;t{this.io.clearTimeoutFn(o),t.apply(this,[null,...e])}}emitWithAck(e,...t){const n=void 0!==this.flags.timeout||void 0!==this._opts.ackTimeout;return new Promise((s,o)=>{t.push((e,t)=>n?e?o(e):s(t):s(e)),this.emit(e,...t)})}_addToQueue(e){let t;"function"==typeof e[e.length-1]&&(t=e.pop());const n={id:this._queueSeq++,tryCount:0,pending:!1,args:e,flags:Object.assign({fromQueue:!0},this.flags)};e.push((e,...s)=>{if(n===this._queue[0])return null!==e?n.tryCount>this._opts.retries&&(a("packet [%d] is discarded after %d tries",n.id,n.tryCount),this._queue.shift(),t&&t(e)):(a("packet [%d] was successfully sent",n.id),this._queue.shift(),t&&t(null,...s)),n.pending=!1,this._drainQueue()}),this._queue.push(n),this._drainQueue()}_drainQueue(e=!1){if(a("draining queue"),!this.connected||0===this._queue.length)return;const t=this._queue[0];!t.pending||e?(t.pending=!0,t.tryCount++,a("sending packet [%d] (try n°%d)",t.id,t.tryCount),this.flags=t.flags,this.emit.apply(this,t.args)):a("packet [%d] has already been sent and is waiting for an ack",t.id)}packet(e){e.nsp=this.nsp,this.io._packet(e)}onopen(){a("transport is open - connecting"),"function"==typeof this.auth?this.auth(e=>{this._sendConnectPacket(e)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(e){this.packet({type:o.PacketType.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},e):e})}onerror(e){this.connected||this.emitReserved("connect_error",e)}onclose(e,t){a("close (%s)",e),this.connected=!1,delete this.id,this.emitReserved("disconnect",e,t)}onpacket(e){if(e.nsp===this.nsp)switch(e.type){case o.PacketType.CONNECT:e.data&&e.data.sid?this.onconnect(e.data.sid,e.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case o.PacketType.EVENT:case o.PacketType.BINARY_EVENT:this.onevent(e);break;case o.PacketType.ACK:case o.PacketType.BINARY_ACK:this.onack(e);break;case o.PacketType.DISCONNECT:this.ondisconnect();break;case o.PacketType.CONNECT_ERROR:this.destroy();const t=new Error(e.data.message);t.data=e.data.data,this.emitReserved("connect_error",t)}}onevent(e){const t=e.data||[];a("emitting event %j",t),null!=e.id&&(a("attaching ack callback to event"),t.push(this.ack(e.id))),this.connected?this.emitEvent(t):this.receiveBuffer.push(Object.freeze(t))}emitEvent(e){if(this._anyListeners&&this._anyListeners.length){const t=this._anyListeners.slice();for(const n of t)n.apply(this,e)}super.emit.apply(this,e),this._pid&&e.length&&"string"==typeof e[e.length-1]&&(this._lastOffset=e[e.length-1])}ack(e){const t=this;let n=!1;return function(...s){n||(n=!0,a("sending ack %j",s),t.packet({type:o.PacketType.ACK,id:e,data:s}))}}onack(e){const t=this.acks[e.id];"function"==typeof t?(a("calling ack %s with %j",e.id,e.data),t.apply(this,e.data),delete this.acks[e.id]):a("bad ack %s",e.id)}onconnect(e,t){a("socket connected with id %s",e),this.id=e,this.recovered=t&&this._pid===t,this._pid=t,this.connected=!0,this.emitBuffered(),this.emitReserved("connect"),this._drainQueue(!0)}emitBuffered(){this.receiveBuffer.forEach(e=>this.emitEvent(e)),this.receiveBuffer=[],this.sendBuffer.forEach(e=>{this.notifyOutgoingListeners(e),this.packet(e)}),this.sendBuffer=[]}ondisconnect(){a("server disconnect (%s)",this.nsp),this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(e=>e()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&(a("performing disconnect (%s)",this.nsp),this.packet({type:o.PacketType.DISCONNECT})),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(e){return this.flags.compress=e,this}get volatile(){return this.flags.volatile=!0,this}timeout(e){return this.flags.timeout=e,this}onAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(e),this}prependAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(e),this}offAny(e){if(!this._anyListeners)return this;if(e){const t=this._anyListeners;for(let n=0;n{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.globalThisShim=void 0,t.globalThisShim="undefined"!=typeof self?self:"undefined"!=typeof window?window:Function("return this")()},6270:function(e,t,n){"use strict";var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=s(n(5606)),r=s(n(8007)),i=s(n(1308)),a=s(n(8203)),c=s(n(1973)),l=s(n(5028)),u=s(n(6529)),h=s(n(6950)),p=s(n(5379)),d=n(5919),f=s(n(7006)),g=n(9934),y=n(8626),m=(Boolean(o.default.env.IS_DOCKER),location.href.indexOf("localhost")>=0?a.default:c.default);class C{static get domain(){return h.default.env===p.default.DEVELOPMENT||h.default.env===p.default.LOCALHOST?p.default.DEVELOPMENT_DOMAIN:p.default.PRODUCTION_API_DOMAIN}static get option(){return{autoConnect:!0,reconnection:!0,reconnectionAttempts:1/0,reconnectionDelay:1e3,reconnectionDelayMax:5e3,timeout:2e4,transports:["websocket"],upgrade:!1,forceNew:!1,query:{},withCredentials:!1,extraHeaders:{}}}constructor(e){this.tune=this.tune.bind(this),this.untune=this.untune.bind(this),this.exe=this.exe.bind(this),this.onConnect=this.onConnect.bind(this),this.onConnectError=this.onConnectError.bind(this),this.onResponseEmit=this.onResponseEmit.bind(this),this.onResponseBoardcast=this.onResponseBoardcast.bind(this),this.offResponse=this.offResponse.bind(this),this.pid="",this.ios={},this.methods={},this.wssWorker=e}exe(e,t,n,s){(0,d.isValidKey)(n,this)&&"function"==typeof this[n]&&(this.pid=e,this[n](t,s)),this.ios[t]&&(this.pid=e,this.ios[t].emit(n,s))}tune(e,{bootOption:t}){const n=this.pid;let s=f.default.rootConnection,o={...g.init},a=`?tuneId=${e}`,c=`${C.domain}:${p.default.PORTS.HTTPS}`;if(t){s=l.default.getConnection(t.connection),o=t.tuneOption,a+=`&${l.default.getTuneOptionString(t.tuneOption)}`;const e=i.default.getGateway({chConfigJson:m,tuneConnection:s});c=`${e.host}:${e.port}`}const h=`${u.default.HTTPS_PROTOCOL}//${c}${a}`;this.ios[e]=(0,r.default)(h,{...C.option}),this.ios[e].on("connect",()=>this.wssWorker.postMessage({pid:n,tuneId:e,method:y.statusTunning})),this.ios[e].on("disconnect",()=>{const t={type:"untune"};this.wssWorker.postMessage({pid:n,tuneId:e,method:t.type,apiState:t}),delete this.ios[e]}),this.ios[e].on("connect_error",t=>{console.error("Connection error:",e,t)}),this.onResponseEmit(e,s),this.onResponseBoardcast(e,s,o)}untune(e,t){(0,d.isValidKey)(t,this.ios)&&this.ios[t].disconnect()}onConnect(){}onConnectError(){}onResponseEmit(e,t){this.ios[e]._callbacks[t]||this.ios[e].on(e,t=>{const n=this.pid,s=t.type,o=u.default.SERVER_TO_API_EMIT;this.wssWorker.postMessage({pid:n,tuneId:e,method:s,serverToApiType:o,apiState:t})})}onResponseBoardcast(e,t,n){if(!this.ios[e]._callbacks[t]){const s=t=>{const n=this.pid,s=t.type,o=u.default.SERVER_TO_API_BROADCAST;this.wssWorker.postMessage({pid:n,tuneId:e,method:s,serverToApiType:o,apiState:t})};this.ios[e].on(`tune:${t}`,s),Object.keys(n).forEach(o=>{n[o]&&this.ios[e].on(`${o}:${t}`,s)})}}offResponse(e,t){this.ios[e]&&this.ios[e]._callbacks[e]&&(this.ios[e].off(e),this.ios[e].off(t))}}t.default=C},6376:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.decodePayload=t.decodePacket=t.encodePayload=t.encodePacket=t.protocol=void 0,t.createPacketEncoderStream=function(){return new TransformStream({transform(e,t){(0,s.encodePacketToBinary)(e,n=>{const s=n.length;let o;if(s<126)o=new Uint8Array(1),new DataView(o.buffer).setUint8(0,s);else if(s<65536){o=new Uint8Array(3);const e=new DataView(o.buffer);e.setUint8(0,126),e.setUint16(1,s)}else{o=new Uint8Array(9);const e=new DataView(o.buffer);e.setUint8(0,127),e.setBigUint64(1,BigInt(s))}e.data&&"string"!=typeof e.data&&(o[0]|=128),t.enqueue(o),t.enqueue(n)})}})},t.createPacketDecoderStream=function(e,t){a||(a=new TextDecoder);const n=[];let s=0,i=-1,u=!1;return new TransformStream({transform(h,p){for(n.push(h);;){if(0===s){if(c(n)<1)break;const e=l(n,1);u=!(128&~e[0]),i=127&e[0],s=i<126?3:126===i?1:2}else if(1===s){if(c(n)<2)break;const e=l(n,2);i=new DataView(e.buffer,e.byteOffset,e.length).getUint16(0),s=3}else if(2===s){if(c(n)<8)break;const e=l(n,8),t=new DataView(e.buffer,e.byteOffset,e.length),o=t.getUint32(0);if(o>Math.pow(2,21)-1){p.enqueue(r.ERROR_PACKET);break}i=o*Math.pow(2,32)+t.getUint32(4),s=3}else{if(c(n)e){p.enqueue(r.ERROR_PACKET);break}}}})};const s=n(2686);Object.defineProperty(t,"encodePacket",{enumerable:!0,get:function(){return s.encodePacket}});const o=n(2662);Object.defineProperty(t,"decodePacket",{enumerable:!0,get:function(){return o.decodePacket}});const r=n(2046),i=String.fromCharCode(30);let a;function c(e){return e.reduce((e,t)=>e+t.length,0)}function l(e,t){if(e[0].length===t)return e.shift();const n=new Uint8Array(t);let s=0;for(let o=0;o{const n=e.length,o=new Array(n);let r=0;e.forEach((e,a)=>{(0,s.encodePacket)(e,!1,e=>{o[a]=e,++r===n&&t(o.join(i))})})},t.decodePayload=(e,t)=>{const n=e.split(i),s=[];for(let e=0;e{"use strict";Object.defineProperty(t,"__esModule",{value:!0});class n{static get TALKN_PROTOCOL(){return"talkn:"}static get HTTP_PROTOCOL(){return"http:"}static get HTTPS_PROTOCOL(){return"https:"}static get WSS_PROTOCOL(){return"wss:"}static get UNKNOWN_PROTOCOL(){return"????:"}static get EMIT_ME_KEY(){return"@EMIT_ME"}static get API_SEPARATE_IO_TYPE_START(){return"["}static get API_SEPARATE_IO_TYPE_END(){return"]"}static get API_REQUEST_TYPE(){return"REQUEST"}static get API_RESPONSE_TYPE_EMIT(){return"EMIT"}static get API_RESPONSE_TYPE_BROADCAST(){return"BROADCAST"}static get API_SETUP(){return"API_SETUP"}static get UNKNOWN(){return"UNKNOWN"}static get CONNECTION_SERVER_KEY(){return"CONNECTION_SERVER"}static get API_TO_SERVER_REQUEST(){return`API_TO_SERVER[${n.API_REQUEST_TYPE}]${n.METHOD_COLON}`}static get SERVER_TO_API_EMIT(){return`SERVER_TO_API[${n.API_RESPONSE_TYPE_EMIT}]${n.METHOD_COLON}`}static get SERVER_TO_API_BROADCAST(){return`SERVER_TO_API[${n.API_RESPONSE_TYPE_BROADCAST}]${n.METHOD_COLON}`}static get API_TO_CLIENT_REQUEST(){return`API_TO_CLIENT[${n.API_REQUEST_TYPE}]${n.METHOD_COLON}`}static get API_TO_CLIENT_EMIT(){return`API_TO_CLIENT[${n.API_RESPONSE_TYPE_EMIT}]${n.METHOD_COLON}`}static get API_TO_CLIENT_BROADCAST(){return`API_TO_CLIENT[${n.API_RESPONSE_TYPE_BROADCAST}]${n.METHOD_COLON}`}static get API_BROADCAST_CALLBACK(){return"tune"}static get REDUX_ACTION_KEY(){return"type"}static get METHOD_COLON(){return":"}static get ADD_CLIENT_ACTION_PREFIX(){return"API_TO_CLIENT"}static get map(){return{tune:{requestPublicState:{tuneCh:["connection"]},requestPrivateState:{},responseEmitState:{user:["uid"],setting:"*",thread:"*"},responseBroadcastState:{thread:["liveCnt","ch"]}},fetchPosts:{requestPublicState:{},requestPrivateState:{thread:["ch","protocol","host","hasSlash"],app:["multistream","rootCh","dispThreadType","actioned","offsetFindId","isToggleMultistream"]},responseEmitState:{posts:"*",thread:"*"},responseBroadcastState:{}},getMore:{requestPublicState:{},requestPrivateState:{thread:["ch"],app:["multistream","dispThreadType","offsetFindId"]},responseEmitState:{app:["dispThreadType","offsetFindId"],posts:"*"},responseBroadcastState:{}},updateThread:{requestPublicState:{},requestPrivateState:{thread:["ch","protocol","host","hasSlash"]},responseEmitState:{thread:"*"},responseBroadcastState:{}},changeThread:{requestPublicState:{},requestPrivateState:{thread:["ch","hasSlash","protocol"],app:["tunedCh","multistream","rootCh","dispThreadType","actioned","offsetFindId","isToggleMultistream"]},responseEmitState:{thread:"*"},responseBroadcastState:{thread:["liveCnt","ch"]}},changeThreadDetail:{requestPublicState:{},requestPrivateState:{thread:["ch"]},responseEmitState:{thread:"*"},responseBroadcastState:{}},addFindChild:{requestPublicState:{},requestPrivateState:{thread:["ch"]},responseEmitState:{thread:"*"},responseBroadcastState:{}},fetchRank:{requestPublicState:{},requestPrivateState:{app:["findType","rootCh","isRankDetailMode"]},responseEmitState:{rank:"*"},responseBroadcastState:{}},post:{requestPublicState:{},requestPrivateState:{user:["uid","utype"],app:["inputPost","inputStampId","inputCurrentTime","dispThreadType"],thread:["findType","title","protocol","ch","chs","emotions","favicon","contentType"]},responseEmitState:{},responseBroadcastState:{posts:"*",thread:["ch","emotions","postCnt"],user:["uid"]}},updateThreadServerMetas:{requestPublicState:{thread:["serverMetas"]},requestPrivateState:{thread:["host","protocol","ch"],user:["uid"]},responseEmitState:{thread:"*"},responseBroadcastState:{}},disconnect:{requestPublicState:{},requestPrivateState:{},responseEmitState:{},responseBroadcastState:{thread:["liveCnt","ch"]}}}}static getSequenceActionMap(e){const t=e.split(n.METHOD_COLON);if(t&&t[0]){const e=String(t[0].split("[")[0]);let s;return s=t[0].indexOf(`[${n.API_REQUEST_TYPE}]`)>0?n.API_REQUEST_TYPE:t[0].indexOf(`[${n.API_RESPONSE_TYPE_EMIT}]`)>0?n.API_RESPONSE_TYPE_EMIT:n.API_RESPONSE_TYPE_BROADCAST,{sequence:e,actionType:s,actionName:String(t[1])}}throw"Error: Sequence getSequenceActionMap"}static updateCallbackExeConditionMap(e){let t={emit:!0,broadcast:!0};const s=n.map;return s[e]&&(t.emit=!(Object.keys(s[e].responseEmitState).length>0),t.broadcast=!(Object.keys(s[e].responseBroadcastState).length>0)),t}static convertServerToApiIoType(e,t){return t.indexOf(`${n.API_SEPARATE_IO_TYPE_START}${n.API_REQUEST_TYPE}${n.API_SEPARATE_IO_TYPE_END}`)>=0?n.API_REQUEST_TYPE:t.indexOf(`${n.API_SEPARATE_IO_TYPE_START}${n.API_RESPONSE_TYPE_BROADCAST}${n.API_SEPARATE_IO_TYPE_END}`)>=0?n.API_RESPONSE_TYPE_BROADCAST:t.indexOf(`${n.API_SEPARATE_IO_TYPE_START}${n.API_RESPONSE_TYPE_EMIT}${n.API_SEPARATE_IO_TYPE_END}`)>=0?n.API_RESPONSE_TYPE_EMIT:n.API_SETUP}static convertExtToClientActionType(e,t){return n.convertApiToClientActionType(t)}static convertApiToClientActionType(e){return 0===e.indexOf(n.API_TO_SERVER_REQUEST)?e.replace(n.API_TO_SERVER_REQUEST,n.API_TO_CLIENT_REQUEST):0===e.indexOf(n.SERVER_TO_API_EMIT)?e.replace(n.SERVER_TO_API_EMIT,n.API_TO_CLIENT_EMIT):0===e.indexOf(n.SERVER_TO_API_BROADCAST)?e.replace(n.SERVER_TO_API_BROADCAST,n.API_TO_CLIENT_BROADCAST):e}static getRequestState(e,t,s){const o=e.replace(n.API_TO_SERVER_REQUEST,""),r=n.map,{requestPublicState:i,requestPrivateState:a}=r[o];let c={[n.REDUX_ACTION_KEY]:o};return Object.keys(a).forEach(e=>{c[e]||(c[e]={}),a[e].forEach(n=>{if(!c[e][n]){let o=t[e][n];s&&s[e]&&s[e][n]&&(o=s[e][n]),c[e][n]=o}})}),Object.keys(i).forEach(e=>{c[e]||(c[e]={}),i[e].forEach(t=>{c[e][t]||(c[e][t]=s)})}),c}static getResponseState(e,t,s){const o=t.type,r=n.map[o][`response${e}State`];let i={[n.REDUX_ACTION_KEY]:o};return Object.keys(r).forEach(e=>{if(!s[e])throw`SEQUENCE ERROR: NO_UPDATE_STATE_KEY: ${t.type}: ${e}`;{const n=r[e];let o=s[e];"model"===o.constructor.name&&(o=o.toJSON(),delete o._id,delete o.__v),"*"===n?i={...i,[e]:o}:n.forEach(n=>{if(void 0===s[e][n])throw`SEQUENCE ERROR: NO_UPDATE_STATE_COLUMN_NAME: ${t.type}: ${e}.${n}`;i={...i,[e]:{...i[e],[n]:s[e][n]}}})}}),i}static getRequestActionState(e,t=null,n=null){return"string"==typeof t&&null===n?{type:e}:"object"==typeof t&&"object"==typeof n?{...t,...n,type:e}:"string"==typeof t&&"object"==typeof n?{...n,type:e}:{...t,type:e}}}t.default=n},6585:e=>{var t=1e3,n=60*t,s=60*n,o=24*s,r=7*o;function i(e,t,n,s){var o=t>=1.5*n;return Math.round(e/n)+" "+s+(o?"s":"")}e.exports=function(e,a){a=a||{};var c,l,u=typeof e;if("string"===u&&e.length>0)return function(e){if(!((e=String(e)).length>100)){var i=/^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(i){var a=parseFloat(i[1]);switch((i[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*a;case"weeks":case"week":case"w":return a*r;case"days":case"day":case"d":return a*o;case"hours":case"hour":case"hrs":case"hr":case"h":return a*s;case"minutes":case"minute":case"mins":case"min":case"m":return a*n;case"seconds":case"second":case"secs":case"sec":case"s":return a*t;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return a;default:return}}}}(e);if("number"===u&&isFinite(e))return a.long?(c=e,(l=Math.abs(c))>=o?i(c,l,o,"day"):l>=s?i(c,l,s,"hour"):l>=n?i(c,l,n,"minute"):l>=t?i(c,l,t,"second"):c+" ms"):function(e){var r=Math.abs(e);return r>=o?Math.round(e/o)+"d":r>=s?Math.round(e/s)+"h":r>=n?Math.round(e/n)+"m":r>=t?Math.round(e/t)+"s":e+"ms"}(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},6617:(e,t,n)=>{t.formatArgs=function(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff),!this.useColors)return;const n="color: "+this.color;t.splice(1,0,n,"color: inherit");let s=0,o=0;t[0].replace(/%[a-zA-Z%]/g,e=>{"%%"!==e&&(s++,"%c"===e&&(o=s))}),t.splice(o,0,n)},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(e){}},t.load=function(){let e;try{e=t.storage.getItem("debug")}catch(e){}return!e&&"undefined"!=typeof process&&"env"in process&&(e=process.env.DEBUG),e},t.useColors=function(){if("undefined"!=typeof window&&window.process&&("renderer"===window.process.type||window.process.__nwjs))return!0;if("undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/))return!1;let e;return"undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/))&&parseInt(e[1],10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/)},t.storage=function(){try{return localStorage}catch(e){}}(),t.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],t.log=console.debug||console.log||(()=>{}),e.exports=n(9040)(t);const{formatters:s}=e.exports;s.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},6894:function(e,t,n){"use strict";var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.url=void 0;const o=n(4956),r=s(n(9368)).default("socket.io-client:url");t.url=function(e,t="",n){let s=e;n=n||"undefined"!=typeof location&&location,null==e&&(e=n.protocol+"//"+n.host),"string"==typeof e&&("/"===e.charAt(0)&&(e="/"===e.charAt(1)?n.protocol+e:n.host+e),/^(https?|wss?):\\/\\//.test(e)||(r("protocol-less url %s",e),e=void 0!==n?n.protocol+"//"+e:"https://"+e),r("parse %s",e),s=o.parse(e)),s.port||(/^(http|ws)$/.test(s.protocol)?s.port="80":/^(http|ws)s$/.test(s.protocol)&&(s.port="443")),s.path=s.path||"/";const i=-1!==s.host.indexOf(":")?"["+s.host+"]":s.host;return s.id=s.protocol+"://"+i+":"+s.port+t,s.href=s.protocol+"://"+i+(n&&n.port===s.port?"":":"+s.port),s}},6950:function(e,t,n){"use strict";var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getHostName=P;const o=s(n(5379)),r=n(5919),{PRODUCTION:i,DEVELOPMENT:a,PRODUCTION_DOMAIN:c,DEVELOPMENT_DOMAIN:l,SUB_DOMAINS:u,PORTS:h}=o.default,p=P(),d=function(e){return r.IS_NODE&&"localhost"===e?o.default.DEVELOPMENT:o.default.PRODUCTION}(p),f={client:"talkn.client.js",api:"talkn.api.js",wsWorker:"ws.api.worker.js",ext:"talkn.ext.js",cover:"talkn.cover.js",tune:"talkn.tune.js",components:"talkn.components.js"},g=d===a,y=d===i?c:l,m=`${u.WWW}.${y}`,C=`${u.COVER}.${y}`,_=`${u.API}.${y}`,E=g?`${y}:${h.DEVELOPMENT_API}/${f.api}`:`${_}/v1`,b=g?`${y}:${h.DEVELOPMENT_CLIENT}/${f.client}`:`${u.CLIENT}.${y}`,T=g?`${y}:${h.DEVELOPMENT_COMPONENTS}/${f.components}`:`${u.COMPONENTS}.${y}`,v=`${u.DESC}.${y}`,O=`${u.PORTAL}.${y}`,S=`${u.ASSETS}.${y}`,k=`${S}/img/`,w={domain:y,isDev:g,env:d,files:f,hostName:p,apiURL:_,apiAccessURL:E,coverURL:C,wwwURL:m,descURL:v,portalURL:O,clientURL:b,assetsURL:S,autoURL:`${u.AUTO}.${y}`,extURL:`${u.EXT}.${y}`,compURL:`${u.COMP}.${y}`,ownURL:`${u.OWN}.${y}`,newsURL:`${u.NEWS}.${y}`,tuneURL:`${u.TUNE}.${y}`,bannerURL:`${u.BANNER}.${y}`,componentsURL:T,transactionURL:`${u.TRANSACTION}.${y}`,authURL:`${u.AUTH}.${y}`,assetsImgPath:k,assetsCoverPath:`${S}/cover/`,assetsIconPath:`${S}/icon/`,assetsJsPath:`${S}/js/`,sessionURL:`${u.SESSION}.${y}`,description:"talkn can share comments with users watching the same WEB page. Please enjoy the world of talkn.",apiVer:1,favicon:`https://${S}/favicon.ico`,lpLanguages:["en","zh","ja","de","fr","hi","pt","it","ru","ko","es","id","tr","nl","ar","zh-TW","pl","sv","th","fa","nn","ga","he","mr"],defaultBirthdayUnixtime:1e12,findOneThreadActiveHour:1,findOnePostCnt:30,findOneLimitCnt:300,ogpImages:{Html:`//${k}talkn_logo_html.png`,Music:`//${k}talkn_logo_music.png`,Video:`//${k}talkn_logo_video.png`},defaultFavicon:`//${u.ASSETS}.${y}/favicon.ico`};function P(){if(r.IS_NODE){const e=process.env?.HOSTNAME||process.env?.HOST||process.env?.NODE_HOSTNAME;return e?.trim()?e.trim():n(3062).hostname()}return r.IS_BROWSER?location.hostname:"localhost"}t.default={...w}},7006:function(e,t,n){"use strict";var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getConnectionsOptions=t.init=void 0;const o=n(5919),r=s(n(6529)),i=s(n(5379)),a=s(n(5028));t.init={tuneId:"",connection:"",connections:[],type:"",liveCnt:0,favicon:"",gateway:"",server:"",active:!1,audios:[],videos:[]},t.getConnectionsOptions={isSelfExclude:!1,isSortUpperLayer:!0};class c{constructor(e=t.init){return Object.assign(this,e)}static getParentConnection(e){if(e===c.rootConnection)return;let t=e.replace(/.$/,"");const n=t.lastIndexOf("/");return t.substring(0,n+1)}static getTopConnection(e){if(e===c.rootConnection)return c.rootConnection;const t=this.separetor;return`${t}${e.split(t)[1]}${t}`}static getConnection(e){return a.default.getConnection(e)}static getConnectionFromUrl(e){const t=e.split("?")[1],n=new URLSearchParams(t).get("tuneId");return null===n?c.rootConnection:c.getConnectionFromTuneId(n)}static getConnectionFromTuneId(e){const t=decodeURIComponent(e??""),n=o.generateUniqueKeySeparator.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,"\\\\$&"),s=new RegExp(`^con${n}(.*?)${n}`),r=t.match(s);let i=r?.[1]?r?.[1]:c.rootConnection;return i=i.startsWith(c.rootConnection)?i:`${c.rootConnection}${i}`,i=i.endsWith(c.rootConnection)?i:`${i}${c.rootConnection}`,i}static getFavicon(e){return e===i.default.DEVELOPMENT_DOMAIN||e===c.rootConnection?"":`${e}/favicon.ico`}static getConnections(e,n=t.getConnectionsOptions){const{isSelfExclude:s,isSortUpperLayer:o}=n;let r=[c.rootConnection];if(e&&e!==c.rootConnection){const t=e.split(c.connectionSeparator).filter(e=>""!==e);let n="";t.forEach(t=>{n+=`${this.separetor}${t}`;const o=`${n}${this.separetor}`;s&&o===e||r.push(o)})}return o?r.sort((e,t)=>e.length-t.length):r.sort((e,t)=>t.length-e.length),r}static getMyConnectionClass(e,t,n){const s=[],o=e.slice().sort((e,t)=>e.length-t.length);n=n||o[o.length-1];let r=!1;for(const i in o){if(e[i]===t&&(r=!0),e[i]===n)break;r&&s.push(e[i])}return s}static getType(e){return e.startsWith(r.default.HTTPS_PROTOCOL)||e.startsWith(r.default.HTTP_PROTOCOL)?c.defultType:c.plainType}static isMediaCh(e){return e.startsWith("audio")||e.startsWith("video")}static getGateway(e){return e&&e.gateway?.host&&e.gateway.port?`${e.gateway.host}:${e.gateway.port}`:`127.0.0.1:${i.default.PORTS.IO_ROOT}`}static getServer(e){return e&&e.ioServer.host&&e.ioServer.port?`${e.ioServer.host}:${e.ioServer.port}`:`127.0.0.1:${i.default.PORTS.IO_ROOT}`}}c.separetor="/",c.rootConnection=c.separetor,c.connectionSeparator="/",c.defaultProtocol="talkn::",c.defultType="text/html",c.plainType="plain",c.getChParams=e=>{const{tuneId:t,connection:n,host:s,liveCnt:o,chConfig:r}=e,i=c.getConnection(n);return{tuneId:t,connection:i,connections:c.getConnections(i),favicon:c.getFavicon(s),type:c.getType(s),liveCnt:o,gateway:c.getGateway(r),server:c.getServer(r)}},t.default=c},7743:(e,t)=>{"use strict";function n(e){e=e||{},this.ms=e.min||100,this.max=e.max||1e4,this.factor=e.factor||2,this.jitter=e.jitter>0&&e.jitter<=1?e.jitter:0,this.attempts=0}Object.defineProperty(t,"__esModule",{value:!0}),t.Backoff=void 0,t.Backoff=n,n.prototype.duration=function(){var e=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var t=Math.random(),n=Math.floor(t*this.jitter*e);e=1&Math.floor(10*t)?e+n:e-n}return 0|Math.min(e,this.max)},n.prototype.reset=function(){this.attempts=0},n.prototype.setMin=function(e){this.ms=e},n.prototype.setMax=function(e){this.max=e},n.prototype.setJitter=function(e){this.jitter=e}},8007:function(e,t,n){"use strict";var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.connect=t.io=t.Socket=t.Manager=t.protocol=void 0;const o=n(6894),r=n(3776);Object.defineProperty(t,"Manager",{enumerable:!0,get:function(){return r.Manager}});const i=n(6214);Object.defineProperty(t,"Socket",{enumerable:!0,get:function(){return i.Socket}});const a=s(n(9368)).default("socket.io-client"),c={};function l(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};const n=o.url(e,t.path||"/socket.io"),s=n.source,i=n.id,l=n.path,u=c[i]&&l in c[i].nsps;let h;return t.forceNew||t["force new connection"]||!1===t.multiplex||u?(a("ignoring socket cache for %s",s),h=new r.Manager(s,t)):(c[i]||(a("new io instance for %s",s),c[i]=new r.Manager(s,t)),h=c[i]),n.query&&!t.query&&(t.query=n.queryKey),h.socket(n.path,t)}t.io=l,t.connect=l,t.default=l,Object.assign(l,{Manager:r.Manager,Socket:i.Socket,io:l,connect:l});var u=n(4627);Object.defineProperty(t,"protocol",{enumerable:!0,get:function(){return u.protocol}}),e.exports=l},8203:e=>{"use strict";e.exports=JSON.parse(\'{"gateway":{"host":"localhost","port":443},"ioServer":{"location":"/","host":"localhost","port":443},"redis":{"client":{"host":"localhost","port":6379},"cluster":[]},"accept":{"rankAll":true},"payjp":{},"service":{"type":"Lightsail","plan":{}},"children":[{"gateway":{"host":"localhost","port":10001},"ioServer":{"location":"aa.com/","host":"localhost","port":443},"redis":{"client":{"host":"localhost","port":6379},"cluster":[]},"accept":{"rankAll":false},"payjp":{},"service":{"type":"Lightsail","plan":{}},"children":[{"gateway":null,"ioServer":{"location":"11/22/33/","host":"localhost","port":443},"redis":{"client":{"host":"localhost","port":6379},"cluster":[]},"accept":{"rankAll":false},"payjp":{},"service":{"type":"Lightsail","plan":{}},"children":[]}]},{"gateway":{"host":"localhost","port":10002},"ioServer":{"location":"bb.com/","host":"localhost","port":443},"redis":{"client":{"host":"localhost","port":6379},"cluster":[]},"accept":{"rankAll":false},"payjp":{},"service":{"type":"Lightsail","plan":{}},"children":[{"gateway":null,"ioServer":{"location":"11/22/","host":"localhost","port":443},"redis":{"client":{"host":"localhost","port":6379},"cluster":[]},"accept":{"rankAll":false},"payjp":{},"service":{"type":"Lightsail","plan":{}},"children":[{"gateway":null,"ioServer":{"location":"BBBB/","host":"localhost","port":443},"redis":{"client":{"host":"localhost","port":6379},"cluster":[]},"accept":{"rankAll":false},"payjp":{},"service":{"type":"Lightsail","plan":{}},"children":[]}]}]},{"gateway":{"host":"localhost","port":10003},"ioServer":{"location":"cc.com/","host":"localhost","port":443},"redis":{"client":{"host":"localhost","port":6379},"cluster":[]},"accept":{"rankAll":false},"payjp":{},"service":{"type":"Lightsail","plan":{}},"children":[]},{"gateway":{"host":"localhost","port":10004},"ioServer":{"location":"dd.com/","host":"localhost","port":443},"redis":{"client":{"host":"localhost","port":6379},"cluster":[]},"accept":{"rankAll":false},"payjp":{},"service":{"type":"Lightsail","plan":{}},"children":[{"gateway":null,"ioServer":{"location":"a11/b22/","host":"localhost","port":443},"redis":{"client":{"host":"localhost","port":6379},"cluster":[]},"accept":{"rankAll":false},"payjp":{},"service":{"type":"Lightsail","plan":{}},"children":[{"gateway":null,"ioServer":{"location":"sBBBB/","host":"localhost","port":443},"redis":{"client":{"host":"localhost","port":6379},"cluster":[]},"accept":{"rankAll":false},"payjp":{},"service":{"type":"Lightsail","plan":{}},"children":[]}]}]}]}\')},8223:function(e,t,n){"use strict";var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Socket=void 0;const o=n(9419),r=n(5374),i=n(8661),a=n(1015),c=s(n(6617)),l=n(4454),u=n(6376),h=n(4087),p=(0,c.default)("engine.io-client:socket");class d extends l.Emitter{constructor(e,t={}){super(),this.binaryType=h.defaultBinaryType,this.writeBuffer=[],e&&"object"==typeof e&&(t=e,e=null),e?(e=(0,a.parse)(e),t.hostname=e.host,t.secure="https"===e.protocol||"wss"===e.protocol,t.port=e.port,e.query&&(t.query=e.query)):t.host&&(t.hostname=(0,a.parse)(t.host).host),(0,r.installTimerFunctions)(this,t),this.secure=null!=t.secure?t.secure:"undefined"!=typeof location&&"https:"===location.protocol,t.hostname&&!t.port&&(t.port=this.secure?"443":"80"),this.hostname=t.hostname||("undefined"!=typeof location?location.hostname:"localhost"),this.port=t.port||("undefined"!=typeof location&&location.port?location.port:this.secure?"443":"80"),this.transports=t.transports||["polling","websocket","webtransport"],this.writeBuffer=[],this.prevBufferLen=0,this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},t),this.opts.path=this.opts.path.replace(/\\/$/,"")+(this.opts.addTrailingSlash?"/":""),"string"==typeof this.opts.query&&(this.opts.query=(0,i.decode)(this.opts.query)),this.id=null,this.upgrades=null,this.pingInterval=null,this.pingTimeout=null,this.pingTimeoutTimer=null,"function"==typeof addEventListener&&(this.opts.closeOnBeforeunload&&(this.beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this.beforeunloadEventListener,!1)),"localhost"!==this.hostname&&(this.offlineEventListener=()=>{this.onClose("transport close",{description:"network connection lost"})},addEventListener("offline",this.offlineEventListener,!1))),this.open()}createTransport(e){p(\'creating transport "%s"\',e);const t=Object.assign({},this.opts.query);t.EIO=u.protocol,t.transport=e,this.id&&(t.sid=this.id);const n=Object.assign({},this.opts,{query:t,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[e]);return p("options: %j",n),new o.transports[e](n)}open(){let e;if(this.opts.rememberUpgrade&&d.priorWebsocketSuccess&&-1!==this.transports.indexOf("websocket"))e="websocket";else{if(0===this.transports.length)return void this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);e=this.transports[0]}this.readyState="opening";try{e=this.createTransport(e)}catch(e){return p("error while creating transport: %s",e),this.transports.shift(),void this.open()}e.open(),this.setTransport(e)}setTransport(e){p("setting transport %s",e.name),this.transport&&(p("clearing existing transport %s",this.transport.name),this.transport.removeAllListeners()),this.transport=e,e.on("drain",this.onDrain.bind(this)).on("packet",this.onPacket.bind(this)).on("error",this.onError.bind(this)).on("close",e=>this.onClose("transport close",e))}probe(e){p(\'probing transport "%s"\',e);let t=this.createTransport(e),n=!1;d.priorWebsocketSuccess=!1;const s=()=>{n||(p(\'probe transport "%s" opened\',e),t.send([{type:"ping",data:"probe"}]),t.once("packet",s=>{if(!n)if("pong"===s.type&&"probe"===s.data){if(p(\'probe transport "%s" pong\',e),this.upgrading=!0,this.emitReserved("upgrading",t),!t)return;d.priorWebsocketSuccess="websocket"===t.name,p(\'pausing current transport "%s"\',this.transport.name),this.transport.pause(()=>{n||"closed"!==this.readyState&&(p("changing transport and sending upgrade packet"),l(),this.setTransport(t),t.send([{type:"upgrade"}]),this.emitReserved("upgrade",t),t=null,this.upgrading=!1,this.flush())})}else{p(\'probe transport "%s" failed\',e);const n=new Error("probe error");n.transport=t.name,this.emitReserved("upgradeError",n)}}))};function o(){n||(n=!0,l(),t.close(),t=null)}const r=n=>{const s=new Error("probe error: "+n);s.transport=t.name,o(),p(\'probe transport "%s" failed because of error: %s\',e,n),this.emitReserved("upgradeError",s)};function i(){r("transport closed")}function a(){r("socket closed")}function c(e){t&&e.name!==t.name&&(p(\'"%s" works - aborting "%s"\',e.name,t.name),o())}const l=()=>{t.removeListener("open",s),t.removeListener("error",r),t.removeListener("close",i),this.off("close",a),this.off("upgrading",c)};t.once("open",s),t.once("error",r),t.once("close",i),this.once("close",a),this.once("upgrading",c),-1!==this.upgrades.indexOf("webtransport")&&"webtransport"!==e?this.setTimeoutFn(()=>{n||t.open()},200):t.open()}onOpen(){if(p("socket open"),this.readyState="open",d.priorWebsocketSuccess="websocket"===this.transport.name,this.emitReserved("open"),this.flush(),"open"===this.readyState&&this.opts.upgrade){p("starting upgrade probes");let e=0;const t=this.upgrades.length;for(;e{this.onClose("ping timeout")},this.pingInterval+this.pingTimeout),this.opts.autoUnref&&this.pingTimeoutTimer.unref()}onDrain(){this.writeBuffer.splice(0,this.prevBufferLen),this.prevBufferLen=0,0===this.writeBuffer.length?this.emitReserved("drain"):this.flush()}flush(){if("closed"!==this.readyState&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){const e=this.getWritablePackets();p("flushing %d packets in socket",e.length),this.transport.send(e),this.prevBufferLen=e.length,this.emitReserved("flush")}}getWritablePackets(){if(!(this.maxPayload&&"polling"===this.transport.name&&this.writeBuffer.length>1))return this.writeBuffer;let e=1;for(let t=0;t0&&e>this.maxPayload)return p("only send %d out of %d packets",t,this.writeBuffer.length),this.writeBuffer.slice(0,t);e+=2}return p("payload size is %d (max: %d)",e,this.maxPayload),this.writeBuffer}write(e,t,n){return this.sendPacket("message",e,t,n),this}send(e,t,n){return this.sendPacket("message",e,t,n),this}sendPacket(e,t,n,s){if("function"==typeof t&&(s=t,t=void 0),"function"==typeof n&&(s=n,n=null),"closing"===this.readyState||"closed"===this.readyState)return;(n=n||{}).compress=!1!==n.compress;const o={type:e,data:t,options:n};this.emitReserved("packetCreate",o),this.writeBuffer.push(o),s&&this.once("flush",s),this.flush()}close(){const e=()=>{this.onClose("forced close"),p("socket closing - telling transport to close"),this.transport.close()},t=()=>{this.off("upgrade",t),this.off("upgradeError",t),e()},n=()=>{this.once("upgrade",t),this.once("upgradeError",t)};return"opening"!==this.readyState&&"open"!==this.readyState||(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?n():e()}):this.upgrading?n():e()),this}onError(e){p("socket error %j",e),d.priorWebsocketSuccess=!1,this.emitReserved("error",e),this.onClose("transport error",e)}onClose(e,t){"opening"!==this.readyState&&"open"!==this.readyState&&"closing"!==this.readyState||(p(\'socket close with reason: "%s"\',e),this.clearTimeoutFn(this.pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),"function"==typeof removeEventListener&&(removeEventListener("beforeunload",this.beforeunloadEventListener,!1),removeEventListener("offline",this.offlineEventListener,!1)),this.readyState="closed",this.id=null,this.emitReserved("close",e,t),this.writeBuffer=[],this.prevBufferLen=0)}filterUpgrades(e){const t=[];let n=0;const s=e.length;for(;n{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.decode=t.encode=void 0,t.encode=function(e){let t="";for(let n in e)e.hasOwnProperty(n)&&(t.length&&(t+="&"),t+=encodeURIComponent(n)+"="+encodeURIComponent(e[n]));return t},t.decode=function(e){let t={},n=e.split("&");for(let e=0,s=n.length;e{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=e=>this.onClose({description:"websocket connection closed",context:e}),this.ws.onmessage=e=>this.onData(e.data),this.ws.onerror=e=>this.onError("websocket error",e)}write(e){this.writable=!1;for(let t=0;t{const t={};!a.usingBrowserWebSocket&&(n.options&&(t.compress=n.options.compress),this.opts.perMessageDeflate)&&("string"==typeof e?Buffer.byteLength(e):e.length){this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){void 0!==this.ws&&(this.ws.close(),this.ws=null)}uri(){const e=this.opts.secure?"wss":"ws",t=this.query||{};return this.opts.timestampRequests&&(t[this.opts.timestampParam]=(0,r.yeast)()),this.supportsBinary||(t.b64=1),this.createUri(e,t)}check(){return!!a.WebSocket}}t.WS=p},9040:(e,t,n)=>{e.exports=function(e){function t(e){let n,o,r,i=null;function a(...e){if(!a.enabled)return;const s=a,o=Number(new Date),r=o-(n||o);s.diff=r,s.prev=n,s.curr=o,n=o,e[0]=t.coerce(e[0]),"string"!=typeof e[0]&&e.unshift("%O");let i=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,(n,o)=>{if("%%"===n)return"%";i++;const r=t.formatters[o];if("function"==typeof r){const t=e[i];n=r.call(s,t),e.splice(i,1),i--}return n}),t.formatArgs.call(s,e),(s.log||t.log).apply(s,e)}return a.namespace=e,a.useColors=t.useColors(),a.color=t.selectColor(e),a.extend=s,a.destroy=t.destroy,Object.defineProperty(a,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==i?i:(o!==t.namespaces&&(o=t.namespaces,r=t.enabled(e)),r),set:e=>{i=e}}),"function"==typeof t.init&&t.init(a),a}function s(e,n){const s=t(this.namespace+(void 0===n?":":n)+e);return s.log=this.log,s}function o(e){return e.toString().substring(2,e.toString().length-2).replace(/\\.\\*\\?$/,"*")}return t.debug=t,t.default=t,t.coerce=function(e){return e instanceof Error?e.stack||e.message:e},t.disable=function(){const e=[...t.names.map(o),...t.skips.map(o).map(e=>"-"+e)].join(",");return t.enable(""),e},t.enable=function(e){let n;t.save(e),t.namespaces=e,t.names=[],t.skips=[];const s=("string"==typeof e?e:"").split(/[\\s,]+/),o=s.length;for(n=0;n{t[n]=e[n]}),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let n=0;for(let t=0;t{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.hasBinary=t.isBinary=void 0;const n="function"==typeof ArrayBuffer,s=Object.prototype.toString,o="function"==typeof Blob||"undefined"!=typeof Blob&&"[object BlobConstructor]"===s.call(Blob),r="function"==typeof File||"undefined"!=typeof File&&"[object FileConstructor]"===s.call(File);function i(e){return n&&(e instanceof ArrayBuffer||(e=>"function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(e):e.buffer instanceof ArrayBuffer)(e))||o&&e instanceof Blob||r&&e instanceof File}t.isBinary=i,t.hasBinary=function e(t,n){if(!t||"object"!=typeof t)return!1;if(Array.isArray(t)){for(let n=0,s=t.length;n{t.formatArgs=function(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff),!this.useColors)return;const n="color: "+this.color;t.splice(1,0,n,"color: inherit");let s=0,o=0;t[0].replace(/%[a-zA-Z%]/g,e=>{"%%"!==e&&(s++,"%c"===e&&(o=s))}),t.splice(o,0,n)},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(e){}},t.load=function(){let e;try{e=t.storage.getItem("debug")}catch(e){}return!e&&"undefined"!=typeof process&&"env"in process&&(e=process.env.DEBUG),e},t.useColors=function(){if("undefined"!=typeof window&&window.process&&("renderer"===window.process.type||window.process.__nwjs))return!0;if("undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/))return!1;let e;return"undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/))&&parseInt(e[1],10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/)},t.storage=function(){try{return localStorage}catch(e){}}(),t.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],t.log=console.debug||console.log||(()=>{}),e.exports=n(1703)(t);const{formatters:s}=e.exports;s.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},9419:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.transports=void 0;const s=n(528),o=n(8716),r=n(4480);t.transports={websocket:o.WS,webtransport:r.WT,polling:s.Polling}},9934:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.tuneOptionMethods=t.init=t.tuneOptionDetailMeta=t.tuneOptionDetailEmotion=t.tuneOptionRankAllHasLatestPost=t.tuneOptionRankHasLatestPost=t.tuneOptionHasLatestPost=t.tuneOptionRankAll=t.tuneOptionRank=t.tuneOptionPosts=void 0,t.tuneOptionPosts="posts",t.tuneOptionRank="rank",t.tuneOptionRankAll="rankAll",t.tuneOptionHasLatestPost="hasLatestPost",t.tuneOptionRankHasLatestPost="rankHasLatestPost",t.tuneOptionRankAllHasLatestPost="rankAllHasLatestPost",t.tuneOptionDetailEmotion="detailEmotion",t.tuneOptionDetailMeta="detailMeta",t.init={[t.tuneOptionPosts]:!1,[t.tuneOptionRank]:!1,[t.tuneOptionRankAll]:!1,[t.tuneOptionHasLatestPost]:!1,[t.tuneOptionRankHasLatestPost]:!1,[t.tuneOptionRankAllHasLatestPost]:!1,[t.tuneOptionDetailEmotion]:!1,[t.tuneOptionDetailMeta]:!1},t.tuneOptionMethods=Object.keys(t.init),t.default=class{constructor(e=t.init){return Object.assign(this,e)}static getTuneOptionFromUrl(e){const n=e.split("?")[1];if(!n)return{...t.init};const s=new URLSearchParams(n),o={};for(const e of t.tuneOptionMethods){const t=s.get(e);o[e]="true"===t||"false"!==t&&Boolean(t)}return{...t.init,...o}}}}},t={};function n(s){var o=t[s];if(void 0!==o){if(void 0!==o.error)throw o.error;return o.exports}var r=t[s]={exports:{}};try{e[s].call(r.exports,r,r.exports,n)}catch(e){throw r.error=e,e}return r.exports}n.d=(e,t)=>{for(var s in t)n.o(t,s)&&!n.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n(8626)})();\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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RTdESCxPQUFPQyxlQUFlQyxFQUFTLGFBQWMsQ0FBRUMsT0FBTyxLQ0Y3QnVqQyxFQUFvQixLIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC8uL25vZGVfbW9kdWxlcy9lbmdpbmUuaW8tY2xpZW50L2J1aWxkL2Nqcy90cmFuc3BvcnRzL3BvbGxpbmcuanMiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC8uL25vZGVfbW9kdWxlcy9lbmdpbmUuaW8tY2xpZW50L2J1aWxkL2Nqcy9jb250cmliL3llYXN0LmpzIiwid2VicGFjazovL3RhbGtuLWFwaS1jbGllbnQvLi9ub2RlX21vZHVsZXMvc29ja2V0LmlvLXBhcnNlci9ub2RlX21vZHVsZXMvZGVidWcvc3JjL2Jyb3dzZXIuanMiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC8uL25vZGVfbW9kdWxlcy9lbmdpbmUuaW8tY2xpZW50L2J1aWxkL2Nqcy9jb250cmliL3BhcnNldXJpLmpzIiwid2VicGFjazovL3RhbGtuLWFwaS1jbGllbnQvLi4vY29tbW9uL3NyYy9tb2RlbHMvQ2hDb25maWcudHMiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC8uL25vZGVfbW9kdWxlcy9zb2NrZXQuaW8tY2xpZW50L25vZGVfbW9kdWxlcy9kZWJ1Zy9zcmMvY29tbW9uLmpzIiwid2VicGFjazovL3RhbGtuLWFwaS1jbGllbnQvLi9ub2RlX21vZHVsZXMvZW5naW5lLmlvLXBhcnNlci9idWlsZC9janMvY29tbW9ucy5qcyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50Ly4vbm9kZV9tb2R1bGVzL2VuZ2luZS5pby1wYXJzZXIvYnVpbGQvY2pzL2RlY29kZVBhY2tldC5icm93c2VyLmpzIiwid2VicGFjazovL3RhbGtuLWFwaS1jbGllbnQvLi9ub2RlX21vZHVsZXMvZW5naW5lLmlvLXBhcnNlci9idWlsZC9janMvZW5jb2RlUGFja2V0LmJyb3dzZXIuanMiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC8uL25vZGVfbW9kdWxlcy9lbmdpbmUuaW8tcGFyc2VyL2J1aWxkL2Nqcy9jb250cmliL2Jhc2U2NC1hcnJheWJ1ZmZlci5qcyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50Ly4vbm9kZV9tb2R1bGVzL2VuZ2luZS5pby1jbGllbnQvYnVpbGQvY2pzL3RyYW5zcG9ydHMveG1saHR0cHJlcXVlc3QuYnJvd3Nlci5qcyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50Ly4vbm9kZV9tb2R1bGVzL3NvY2tldC5pby1jbGllbnQvYnVpbGQvY2pzL21hbmFnZXIuanMiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC8uL25vZGVfbW9kdWxlcy9zb2NrZXQuaW8tcGFyc2VyL25vZGVfbW9kdWxlcy9kZWJ1Zy9zcmMvY29tbW9uLmpzIiwid2VicGFjazovL3RhbGtuLWFwaS1jbGllbnQvLi9ub2RlX21vZHVsZXMvZW5naW5lLmlvLWNsaWVudC9idWlsZC9janMvdHJhbnNwb3J0cy93ZWJzb2NrZXQtY29uc3RydWN0b3IuYnJvd3Nlci5qcyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50Ly4vbm9kZV9tb2R1bGVzL2VuZ2luZS5pby1jbGllbnQvYnVpbGQvY2pzL2NvbnRyaWIvaGFzLWNvcnMuanMiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC8uL25vZGVfbW9kdWxlcy9Ac29ja2V0LmlvL2NvbXBvbmVudC1lbWl0dGVyL2xpYi9lc20vaW5kZXguanMiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC8uL25vZGVfbW9kdWxlcy9lbmdpbmUuaW8tY2xpZW50L2J1aWxkL2Nqcy90cmFuc3BvcnRzL3dlYnRyYW5zcG9ydC5qcyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50Ly4vbm9kZV9tb2R1bGVzL3NvY2tldC5pby1wYXJzZXIvYnVpbGQvY2pzL2luZGV4LmpzIiwid2VicGFjazovL3RhbGtuLWFwaS1jbGllbnQvLi9ub2RlX21vZHVsZXMvZW5naW5lLmlvLWNsaWVudC9idWlsZC9janMvdHJhbnNwb3J0LmpzIiwid2VicGFjazovL3RhbGtuLWFwaS1jbGllbnQvLi9ub2RlX21vZHVsZXMvc29ja2V0LmlvLXBhcnNlci9idWlsZC9janMvYmluYXJ5LmpzIiwid2VicGFjazovL3RhbGtuLWFwaS1jbGllbnQvLi9ub2RlX21vZHVsZXMvZW5naW5lLmlvLWNsaWVudC9idWlsZC9janMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC8uLi9jb21tb24vc3JjL21vZGVscy9Cb290T3B0aW9uLnRzIiwid2VicGFjazovL3RhbGtuLWFwaS1jbGllbnQvLi9ub2RlX21vZHVsZXMvZW5naW5lLmlvLWNsaWVudC9idWlsZC9janMvdXRpbC5qcyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50Ly4uL2NvbW1vbi9zcmMvZGVmaW5lLnRzIiwid2VicGFjazovL3RhbGtuLWFwaS1jbGllbnQvLi9ub2RlX21vZHVsZXMvcHJvY2Vzcy9icm93c2VyLmpzIiwid2VicGFjazovL3RhbGtuLWFwaS1jbGllbnQvLi4vY29tbW9uL3NyYy91dGlscy50cyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50Ly4vbm9kZV9tb2R1bGVzL3NvY2tldC5pby1jbGllbnQvYnVpbGQvY2pzL29uLmpzIiwid2VicGFjazovL3RhbGtuLWFwaS1jbGllbnQvLi9ub2RlX21vZHVsZXMvc29ja2V0LmlvLWNsaWVudC9idWlsZC9janMvc29ja2V0LmpzIiwid2VicGFjazovL3RhbGtuLWFwaS1jbGllbnQvLi9ub2RlX21vZHVsZXMvZW5naW5lLmlvLWNsaWVudC9idWlsZC9janMvZ2xvYmFsVGhpcy5icm93c2VyLmpzIiwid2VicGFjazovL3RhbGtuLWFwaS1jbGllbnQvLi9zcmMvd3NzV29ya2VyL1RvU2VydmVyLnRzIiwid2VicGFjazovL3RhbGtuLWFwaS1jbGllbnQvLi9ub2RlX21vZHVsZXMvZW5naW5lLmlvLXBhcnNlci9idWlsZC9janMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC8uLi9jb21tb24vc3JjL1NlcXVlbmNlLnRzIiwid2VicGFjazovL3RhbGtuLWFwaS1jbGllbnQvLi9ub2RlX21vZHVsZXMvbXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC8uL25vZGVfbW9kdWxlcy9lbmdpbmUuaW8tY2xpZW50L25vZGVfbW9kdWxlcy9kZWJ1Zy9zcmMvYnJvd3Nlci5qcyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50Ly4vbm9kZV9tb2R1bGVzL3NvY2tldC5pby1jbGllbnQvYnVpbGQvY2pzL3VybC5qcyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50Ly4uL2NvbW1vbi9zcmMvY29uZi50cyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50Ly4uL2NvbW1vbi9zcmMvbW9kZWxzL0NoLnRzIiwid2VicGFjazovL3RhbGtuLWFwaS1jbGllbnQvLi9ub2RlX21vZHVsZXMvc29ja2V0LmlvLWNsaWVudC9idWlsZC9janMvY29udHJpYi9iYWNrbzIuanMiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC8uL25vZGVfbW9kdWxlcy9zb2NrZXQuaW8tY2xpZW50L2J1aWxkL2Nqcy9pbmRleC5qcyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50Ly4vbm9kZV9tb2R1bGVzL2VuZ2luZS5pby1jbGllbnQvYnVpbGQvY2pzL3NvY2tldC5qcyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50Ly4vc3JjL3dzc1dvcmtlci9pbmRleC50cyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50Ly4vbm9kZV9tb2R1bGVzL2VuZ2luZS5pby1jbGllbnQvYnVpbGQvY2pzL2NvbnRyaWIvcGFyc2Vxcy5qcyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50Ly4vbm9kZV9tb2R1bGVzL2VuZ2luZS5pby1jbGllbnQvYnVpbGQvY2pzL3RyYW5zcG9ydHMvd2Vic29ja2V0LmpzIiwid2VicGFjazovL3RhbGtuLWFwaS1jbGllbnQvLi9ub2RlX21vZHVsZXMvZW5naW5lLmlvLWNsaWVudC9ub2RlX21vZHVsZXMvZGVidWcvc3JjL2NvbW1vbi5qcyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50Ly4vbm9kZV9tb2R1bGVzL3NvY2tldC5pby1wYXJzZXIvYnVpbGQvY2pzL2lzLWJpbmFyeS5qcyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50Ly4vbm9kZV9tb2R1bGVzL3NvY2tldC5pby1jbGllbnQvbm9kZV9tb2R1bGVzL2RlYnVnL3NyYy9icm93c2VyLmpzIiwid2VicGFjazovL3RhbGtuLWFwaS1jbGllbnQvLi9ub2RlX21vZHVsZXMvZW5naW5lLmlvLWNsaWVudC9idWlsZC9janMvdHJhbnNwb3J0cy9pbmRleC5qcyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50Ly4uL2NvbW1vbi9zcmMvbW9kZWxzL1R1bmVPcHRpb24udHMiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC93ZWJwYWNrL2Jvb3RzdHJhcCIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50L3dlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50L3dlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC93ZWJwYWNrL3J1bnRpbWUvbWFrZSBuYW1lc3BhY2Ugb2JqZWN0Iiwid2VicGFjazovL3RhbGtuLWFwaS1jbGllbnQvd2VicGFjay9zdGFydHVwIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5SZXF1ZXN0ID0gZXhwb3J0cy5Qb2xsaW5nID0gdm9pZCAwO1xuY29uc3QgdHJhbnNwb3J0X2pzXzEgPSByZXF1aXJlKFwiLi4vdHJhbnNwb3J0LmpzXCIpO1xuY29uc3QgZGVidWdfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiZGVidWdcIikpOyAvLyBkZWJ1ZygpXG5jb25zdCB5ZWFzdF9qc18xID0gcmVxdWlyZShcIi4uL2NvbnRyaWIveWVhc3QuanNcIik7XG5jb25zdCBlbmdpbmVfaW9fcGFyc2VyXzEgPSByZXF1aXJlKFwiZW5naW5lLmlvLXBhcnNlclwiKTtcbmNvbnN0IHhtbGh0dHByZXF1ZXN0X2pzXzEgPSByZXF1aXJlKFwiLi94bWxodHRwcmVxdWVzdC5qc1wiKTtcbmNvbnN0IGNvbXBvbmVudF9lbWl0dGVyXzEgPSByZXF1aXJlKFwiQHNvY2tldC5pby9jb21wb25lbnQtZW1pdHRlclwiKTtcbmNvbnN0IHV0aWxfanNfMSA9IHJlcXVpcmUoXCIuLi91dGlsLmpzXCIpO1xuY29uc3QgZ2xvYmFsVGhpc19qc18xID0gcmVxdWlyZShcIi4uL2dsb2JhbFRoaXMuanNcIik7XG5jb25zdCBkZWJ1ZyA9ICgwLCBkZWJ1Z18xLmRlZmF1bHQpKFwiZW5naW5lLmlvLWNsaWVudDpwb2xsaW5nXCIpOyAvLyBkZWJ1ZygpXG5mdW5jdGlvbiBlbXB0eSgpIHsgfVxuY29uc3QgaGFzWEhSMiA9IChmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgeGhyID0gbmV3IHhtbGh0dHByZXF1ZXN0X2pzXzEuWEhSKHtcbiAgICAgICAgeGRvbWFpbjogZmFsc2UsXG4gICAgfSk7XG4gICAgcmV0dXJuIG51bGwgIT0geGhyLnJlc3BvbnNlVHlwZTtcbn0pKCk7XG5jbGFzcyBQb2xsaW5nIGV4dGVuZHMgdHJhbnNwb3J0X2pzXzEuVHJhbnNwb3J0IHtcbiAgICAvKipcbiAgICAgKiBYSFIgUG9sbGluZyBjb25zdHJ1Y3Rvci5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzXG4gICAgICogQHBhY2thZ2VcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKG9wdHMpO1xuICAgICAgICB0aGlzLnBvbGxpbmcgPSBmYWxzZTtcbiAgICAgICAgaWYgKHR5cGVvZiBsb2NhdGlvbiAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgY29uc3QgaXNTU0wgPSBcImh0dHBzOlwiID09PSBsb2NhdGlvbi5wcm90b2NvbDtcbiAgICAgICAgICAgIGxldCBwb3J0ID0gbG9jYXRpb24ucG9ydDtcbiAgICAgICAgICAgIC8vIHNvbWUgdXNlciBhZ2VudHMgaGF2ZSBlbXB0eSBgbG9jYXRpb24ucG9ydGBcbiAgICAgICAgICAgIGlmICghcG9ydCkge1xuICAgICAgICAgICAgICAgIHBvcnQgPSBpc1NTTCA/IFwiNDQzXCIgOiBcIjgwXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnhkID1cbiAgICAgICAgICAgICAgICAodHlwZW9mIGxvY2F0aW9uICE9PSBcInVuZGVmaW5lZFwiICYmXG4gICAgICAgICAgICAgICAgICAgIG9wdHMuaG9zdG5hbWUgIT09IGxvY2F0aW9uLmhvc3RuYW1lKSB8fFxuICAgICAgICAgICAgICAgICAgICBwb3J0ICE9PSBvcHRzLnBvcnQ7XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFhIUiBzdXBwb3J0cyBiaW5hcnlcbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IGZvcmNlQmFzZTY0ID0gb3B0cyAmJiBvcHRzLmZvcmNlQmFzZTY0O1xuICAgICAgICB0aGlzLnN1cHBvcnRzQmluYXJ5ID0gaGFzWEhSMiAmJiAhZm9yY2VCYXNlNjQ7XG4gICAgICAgIGlmICh0aGlzLm9wdHMud2l0aENyZWRlbnRpYWxzKSB7XG4gICAgICAgICAgICB0aGlzLmNvb2tpZUphciA9ICgwLCB4bWxodHRwcmVxdWVzdF9qc18xLmNyZWF0ZUNvb2tpZUphcikoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgbmFtZSgpIHtcbiAgICAgICAgcmV0dXJuIFwicG9sbGluZ1wiO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBPcGVucyB0aGUgc29ja2V0ICh0cmlnZ2VycyBwb2xsaW5nKS4gV2Ugd3JpdGUgYSBQSU5HIG1lc3NhZ2UgdG8gZGV0ZXJtaW5lXG4gICAgICogd2hlbiB0aGUgdHJhbnNwb3J0IGlzIG9wZW4uXG4gICAgICpcbiAgICAgKiBAcHJvdGVjdGVkXG4gICAgICovXG4gICAgZG9PcGVuKCkge1xuICAgICAgICB0aGlzLnBvbGwoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUGF1c2VzIHBvbGxpbmcuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBvblBhdXNlIC0gY2FsbGJhY2sgdXBvbiBidWZmZXJzIGFyZSBmbHVzaGVkIGFuZCB0cmFuc3BvcnQgaXMgcGF1c2VkXG4gICAgICogQHBhY2thZ2VcbiAgICAgKi9cbiAgICBwYXVzZShvblBhdXNlKSB7XG4gICAgICAgIHRoaXMucmVhZHlTdGF0ZSA9IFwicGF1c2luZ1wiO1xuICAgICAgICBjb25zdCBwYXVzZSA9ICgpID0+IHtcbiAgICAgICAgICAgIGRlYnVnKFwicGF1c2VkXCIpO1xuICAgICAgICAgICAgdGhpcy5yZWFkeVN0YXRlID0gXCJwYXVzZWRcIjtcbiAgICAgICAgICAgIG9uUGF1c2UoKTtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHRoaXMucG9sbGluZyB8fCAhdGhpcy53cml0YWJsZSkge1xuICAgICAgICAgICAgbGV0IHRvdGFsID0gMDtcbiAgICAgICAgICAgIGlmICh0aGlzLnBvbGxpbmcpIHtcbiAgICAgICAgICAgICAgICBkZWJ1ZyhcIndlIGFyZSBjdXJyZW50bHkgcG9sbGluZyAtIHdhaXRpbmcgdG8gcGF1c2VcIik7XG4gICAgICAgICAgICAgICAgdG90YWwrKztcbiAgICAgICAgICAgICAgICB0aGlzLm9uY2UoXCJwb2xsQ29tcGxldGVcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBkZWJ1ZyhcInByZS1wYXVzZSBwb2xsaW5nIGNvbXBsZXRlXCIpO1xuICAgICAgICAgICAgICAgICAgICAtLXRvdGFsIHx8IHBhdXNlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXRoaXMud3JpdGFibGUpIHtcbiAgICAgICAgICAgICAgICBkZWJ1ZyhcIndlIGFyZSBjdXJyZW50bHkgd3JpdGluZyAtIHdhaXRpbmcgdG8gcGF1c2VcIik7XG4gICAgICAgICAgICAgICAgdG90YWwrKztcbiAgICAgICAgICAgICAgICB0aGlzLm9uY2UoXCJkcmFpblwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlYnVnKFwicHJlLXBhdXNlIHdyaXRpbmcgY29tcGxldGVcIik7XG4gICAgICAgICAgICAgICAgICAgIC0tdG90YWwgfHwgcGF1c2UoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHBhdXNlKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogU3RhcnRzIHBvbGxpbmcgY3ljbGUuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHBvbGwoKSB7XG4gICAgICAgIGRlYnVnKFwicG9sbGluZ1wiKTtcbiAgICAgICAgdGhpcy5wb2xsaW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5kb1BvbGwoKTtcbiAgICAgICAgdGhpcy5lbWl0UmVzZXJ2ZWQoXCJwb2xsXCIpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBPdmVybG9hZHMgb25EYXRhIHRvIGRldGVjdCBwYXlsb2Fkcy5cbiAgICAgKlxuICAgICAqIEBwcm90ZWN0ZWRcbiAgICAgKi9cbiAgICBvbkRhdGEoZGF0YSkge1xuICAgICAgICBkZWJ1ZyhcInBvbGxpbmcgZ290IGRhdGEgJXNcIiwgZGF0YSk7XG4gICAgICAgIGNvbnN0IGNhbGxiYWNrID0gKHBhY2tldCkgPT4ge1xuICAgICAgICAgICAgLy8gaWYgaXRzIHRoZSBmaXJzdCBtZXNzYWdlIHdlIGNvbnNpZGVyIHRoZSB0cmFuc3BvcnQgb3BlblxuICAgICAgICAgICAgaWYgKFwib3BlbmluZ1wiID09PSB0aGlzLnJlYWR5U3RhdGUgJiYgcGFja2V0LnR5cGUgPT09IFwib3BlblwiKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbk9wZW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGlmIGl0cyBhIGNsb3NlIHBhY2tldCwgd2UgY2xvc2UgdGhlIG9uZ29pbmcgcmVxdWVzdHNcbiAgICAgICAgICAgIGlmIChcImNsb3NlXCIgPT09IHBhY2tldC50eXBlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkNsb3NlKHsgZGVzY3JpcHRpb246IFwidHJhbnNwb3J0IGNsb3NlZCBieSB0aGUgc2VydmVyXCIgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gb3RoZXJ3aXNlIGJ5cGFzcyBvbkRhdGEgYW5kIGhhbmRsZSB0aGUgbWVzc2FnZVxuICAgICAgICAgICAgdGhpcy5vblBhY2tldChwYWNrZXQpO1xuICAgICAgICB9O1xuICAgICAgICAvLyBkZWNvZGUgcGF5bG9hZFxuICAgICAgICAoMCwgZW5naW5lX2lvX3BhcnNlcl8xLmRlY29kZVBheWxvYWQpKGRhdGEsIHRoaXMuc29ja2V0LmJpbmFyeVR5cGUpLmZvckVhY2goY2FsbGJhY2spO1xuICAgICAgICAvLyBpZiBhbiBldmVudCBkaWQgbm90IHRyaWdnZXIgY2xvc2luZ1xuICAgICAgICBpZiAoXCJjbG9zZWRcIiAhPT0gdGhpcy5yZWFkeVN0YXRlKSB7XG4gICAgICAgICAgICAvLyBpZiB3ZSBnb3QgZGF0YSB3ZSdyZSBub3QgcG9sbGluZ1xuICAgICAgICAgICAgdGhpcy5wb2xsaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmVtaXRSZXNlcnZlZChcInBvbGxDb21wbGV0ZVwiKTtcbiAgICAgICAgICAgIGlmIChcIm9wZW5cIiA9PT0gdGhpcy5yZWFkeVN0YXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wb2xsKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBkZWJ1ZygnaWdub3JpbmcgcG9sbCAtIHRyYW5zcG9ydCBzdGF0ZSBcIiVzXCInLCB0aGlzLnJlYWR5U3RhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEZvciBwb2xsaW5nLCBzZW5kIGEgY2xvc2UgcGFja2V0LlxuICAgICAqXG4gICAgICogQHByb3RlY3RlZFxuICAgICAqL1xuICAgIGRvQ2xvc2UoKSB7XG4gICAgICAgIGNvbnN0IGNsb3NlID0gKCkgPT4ge1xuICAgICAgICAgICAgZGVidWcoXCJ3cml0aW5nIGNsb3NlIHBhY2tldFwiKTtcbiAgICAgICAgICAgIHRoaXMud3JpdGUoW3sgdHlwZTogXCJjbG9zZVwiIH1dKTtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKFwib3BlblwiID09PSB0aGlzLnJlYWR5U3RhdGUpIHtcbiAgICAgICAgICAgIGRlYnVnKFwidHJhbnNwb3J0IG9wZW4gLSBjbG9zaW5nXCIpO1xuICAgICAgICAgICAgY2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIC8vIGluIGNhc2Ugd2UncmUgdHJ5aW5nIHRvIGNsb3NlIHdoaWxlXG4gICAgICAgICAgICAvLyBoYW5kc2hha2luZyBpcyBpbiBwcm9ncmVzcyAoR0gtMTY0KVxuICAgICAgICAgICAgZGVidWcoXCJ0cmFuc3BvcnQgbm90IG9wZW4gLSBkZWZlcnJpbmcgY2xvc2VcIik7XG4gICAgICAgICAgICB0aGlzLm9uY2UoXCJvcGVuXCIsIGNsb3NlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBXcml0ZXMgYSBwYWNrZXRzIHBheWxvYWQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBwYWNrZXRzIC0gZGF0YSBwYWNrZXRzXG4gICAgICogQHByb3RlY3RlZFxuICAgICAqL1xuICAgIHdyaXRlKHBhY2tldHMpIHtcbiAgICAgICAgdGhpcy53cml0YWJsZSA9IGZhbHNlO1xuICAgICAgICAoMCwgZW5naW5lX2lvX3BhcnNlcl8xLmVuY29kZVBheWxvYWQpKHBhY2tldHMsIChkYXRhKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRvV3JpdGUoZGF0YSwgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMud3JpdGFibGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdFJlc2VydmVkKFwiZHJhaW5cIik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEdlbmVyYXRlcyB1cmkgZm9yIGNvbm5lY3Rpb24uXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHVyaSgpIHtcbiAgICAgICAgY29uc3Qgc2NoZW1hID0gdGhpcy5vcHRzLnNlY3VyZSA/IFwiaHR0cHNcIiA6IFwiaHR0cFwiO1xuICAgICAgICBjb25zdCBxdWVyeSA9IHRoaXMucXVlcnkgfHwge307XG4gICAgICAgIC8vIGNhY2hlIGJ1c3RpbmcgaXMgZm9yY2VkXG4gICAgICAgIGlmIChmYWxzZSAhPT0gdGhpcy5vcHRzLnRpbWVzdGFtcFJlcXVlc3RzKSB7XG4gICAgICAgICAgICBxdWVyeVt0aGlzLm9wdHMudGltZXN0YW1wUGFyYW1dID0gKDAsIHllYXN0X2pzXzEueWVhc3QpKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLnN1cHBvcnRzQmluYXJ5ICYmICFxdWVyeS5zaWQpIHtcbiAgICAgICAgICAgIHF1ZXJ5LmI2NCA9IDE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlVXJpKHNjaGVtYSwgcXVlcnkpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgcmVxdWVzdC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSBtZXRob2RcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHJlcXVlc3Qob3B0cyA9IHt9KSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24ob3B0cywgeyB4ZDogdGhpcy54ZCwgY29va2llSmFyOiB0aGlzLmNvb2tpZUphciB9LCB0aGlzLm9wdHMpO1xuICAgICAgICByZXR1cm4gbmV3IFJlcXVlc3QodGhpcy51cmkoKSwgb3B0cyk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFNlbmRzIGRhdGEuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gZGF0YSB0byBzZW5kLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxlZCB1cG9uIGZsdXNoLlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgZG9Xcml0ZShkYXRhLCBmbikge1xuICAgICAgICBjb25zdCByZXEgPSB0aGlzLnJlcXVlc3Qoe1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGRhdGE6IGRhdGEsXG4gICAgICAgIH0pO1xuICAgICAgICByZXEub24oXCJzdWNjZXNzXCIsIGZuKTtcbiAgICAgICAgcmVxLm9uKFwiZXJyb3JcIiwgKHhoclN0YXR1cywgY29udGV4dCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5vbkVycm9yKFwieGhyIHBvc3QgZXJyb3JcIiwgeGhyU3RhdHVzLCBjb250ZXh0KTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFN0YXJ0cyBhIHBvbGwgY3ljbGUuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIGRvUG9sbCgpIHtcbiAgICAgICAgZGVidWcoXCJ4aHIgcG9sbFwiKTtcbiAgICAgICAgY29uc3QgcmVxID0gdGhpcy5yZXF1ZXN0KCk7XG4gICAgICAgIHJlcS5vbihcImRhdGFcIiwgdGhpcy5vbkRhdGEuYmluZCh0aGlzKSk7XG4gICAgICAgIHJlcS5vbihcImVycm9yXCIsICh4aHJTdGF0dXMsIGNvbnRleHQpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25FcnJvcihcInhociBwb2xsIGVycm9yXCIsIHhoclN0YXR1cywgY29udGV4dCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnBvbGxYaHIgPSByZXE7XG4gICAgfVxufVxuZXhwb3J0cy5Qb2xsaW5nID0gUG9sbGluZztcbmNsYXNzIFJlcXVlc3QgZXh0ZW5kcyBjb21wb25lbnRfZW1pdHRlcl8xLkVtaXR0ZXIge1xuICAgIC8qKlxuICAgICAqIFJlcXVlc3QgY29uc3RydWN0b3JcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zXG4gICAgICogQHBhY2thZ2VcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3Rvcih1cmksIG9wdHMpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgKDAsIHV0aWxfanNfMS5pbnN0YWxsVGltZXJGdW5jdGlvbnMpKHRoaXMsIG9wdHMpO1xuICAgICAgICB0aGlzLm9wdHMgPSBvcHRzO1xuICAgICAgICB0aGlzLm1ldGhvZCA9IG9wdHMubWV0aG9kIHx8IFwiR0VUXCI7XG4gICAgICAgIHRoaXMudXJpID0gdXJpO1xuICAgICAgICB0aGlzLmRhdGEgPSB1bmRlZmluZWQgIT09IG9wdHMuZGF0YSA/IG9wdHMuZGF0YSA6IG51bGw7XG4gICAgICAgIHRoaXMuY3JlYXRlKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgdGhlIFhIUiBvYmplY3QgYW5kIHNlbmRzIHRoZSByZXF1ZXN0LlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBjcmVhdGUoKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgY29uc3Qgb3B0cyA9ICgwLCB1dGlsX2pzXzEucGljaykodGhpcy5vcHRzLCBcImFnZW50XCIsIFwicGZ4XCIsIFwia2V5XCIsIFwicGFzc3BocmFzZVwiLCBcImNlcnRcIiwgXCJjYVwiLCBcImNpcGhlcnNcIiwgXCJyZWplY3RVbmF1dGhvcml6ZWRcIiwgXCJhdXRvVW5yZWZcIik7XG4gICAgICAgIG9wdHMueGRvbWFpbiA9ICEhdGhpcy5vcHRzLnhkO1xuICAgICAgICBjb25zdCB4aHIgPSAodGhpcy54aHIgPSBuZXcgeG1saHR0cHJlcXVlc3RfanNfMS5YSFIob3B0cykpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgZGVidWcoXCJ4aHIgb3BlbiAlczogJXNcIiwgdGhpcy5tZXRob2QsIHRoaXMudXJpKTtcbiAgICAgICAgICAgIHhoci5vcGVuKHRoaXMubWV0aG9kLCB0aGlzLnVyaSwgdHJ1ZSk7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdHMuZXh0cmFIZWFkZXJzKSB7XG4gICAgICAgICAgICAgICAgICAgIHhoci5zZXREaXNhYmxlSGVhZGVyQ2hlY2sgJiYgeGhyLnNldERpc2FibGVIZWFkZXJDaGVjayh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSBpbiB0aGlzLm9wdHMuZXh0cmFIZWFkZXJzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5vcHRzLmV4dHJhSGVhZGVycy5oYXNPd25Qcm9wZXJ0eShpKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKGksIHRoaXMub3B0cy5leHRyYUhlYWRlcnNbaV0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGUpIHsgfVxuICAgICAgICAgICAgaWYgKFwiUE9TVFwiID09PSB0aGlzLm1ldGhvZCkge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKFwiQ29udGVudC10eXBlXCIsIFwidGV4dC9wbGFpbjtjaGFyc2V0PVVURi04XCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXRjaCAoZSkgeyB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKFwiQWNjZXB0XCIsIFwiKi8qXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGUpIHsgfVxuICAgICAgICAgICAgKF9hID0gdGhpcy5vcHRzLmNvb2tpZUphcikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmFkZENvb2tpZXMoeGhyKTtcbiAgICAgICAgICAgIC8vIGllNiBjaGVja1xuICAgICAgICAgICAgaWYgKFwid2l0aENyZWRlbnRpYWxzXCIgaW4geGhyKSB7XG4gICAgICAgICAgICAgICAgeGhyLndpdGhDcmVkZW50aWFscyA9IHRoaXMub3B0cy53aXRoQ3JlZGVudGlhbHM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5vcHRzLnJlcXVlc3RUaW1lb3V0KSB7XG4gICAgICAgICAgICAgICAgeGhyLnRpbWVvdXQgPSB0aGlzLm9wdHMucmVxdWVzdFRpbWVvdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB4aHIub25yZWFkeXN0YXRlY2hhbmdlID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICBpZiAoeGhyLnJlYWR5U3RhdGUgPT09IDMpIHtcbiAgICAgICAgICAgICAgICAgICAgKF9hID0gdGhpcy5vcHRzLmNvb2tpZUphcikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnBhcnNlQ29va2llcyh4aHIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoNCAhPT0geGhyLnJlYWR5U3RhdGUpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICBpZiAoMjAwID09PSB4aHIuc3RhdHVzIHx8IDEyMjMgPT09IHhoci5zdGF0dXMpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkxvYWQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGUgYGVycm9yYCBldmVudCBoYW5kbGVyIHRoYXQncyB1c2VyLXNldFxuICAgICAgICAgICAgICAgICAgICAvLyBkb2VzIG5vdCB0aHJvdyBpbiB0aGUgc2FtZSB0aWNrIGFuZCBnZXRzIGNhdWdodCBoZXJlXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0VGltZW91dEZuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25FcnJvcih0eXBlb2YgeGhyLnN0YXR1cyA9PT0gXCJudW1iZXJcIiA/IHhoci5zdGF0dXMgOiAwKTtcbiAgICAgICAgICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGRlYnVnKFwieGhyIGRhdGEgJXNcIiwgdGhpcy5kYXRhKTtcbiAgICAgICAgICAgIHhoci5zZW5kKHRoaXMuZGF0YSk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIC8vIE5lZWQgdG8gZGVmZXIgc2luY2UgLmNyZWF0ZSgpIGlzIGNhbGxlZCBkaXJlY3RseSBmcm9tIHRoZSBjb25zdHJ1Y3RvclxuICAgICAgICAgICAgLy8gYW5kIHRodXMgdGhlICdlcnJvcicgZXZlbnQgY2FuIG9ubHkgYmUgb25seSBib3VuZCAqYWZ0ZXIqIHRoaXMgZXhjZXB0aW9uXG4gICAgICAgICAgICAvLyBvY2N1cnMuICBUaGVyZWZvcmUsIGFsc28sIHdlIGNhbm5vdCB0aHJvdyBoZXJlIGF0IGFsbC5cbiAgICAgICAgICAgIHRoaXMuc2V0VGltZW91dEZuKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uRXJyb3IoZSk7XG4gICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIGRvY3VtZW50ICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICB0aGlzLmluZGV4ID0gUmVxdWVzdC5yZXF1ZXN0c0NvdW50Kys7XG4gICAgICAgICAgICBSZXF1ZXN0LnJlcXVlc3RzW3RoaXMuaW5kZXhdID0gdGhpcztcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgdXBvbiBlcnJvci5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgb25FcnJvcihlcnIpIHtcbiAgICAgICAgdGhpcy5lbWl0UmVzZXJ2ZWQoXCJlcnJvclwiLCBlcnIsIHRoaXMueGhyKTtcbiAgICAgICAgdGhpcy5jbGVhbnVwKHRydWUpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDbGVhbnMgdXAgaG91c2UuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIGNsZWFudXAoZnJvbUVycm9yKSB7XG4gICAgICAgIGlmIChcInVuZGVmaW5lZFwiID09PSB0eXBlb2YgdGhpcy54aHIgfHwgbnVsbCA9PT0gdGhpcy54aHIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnhoci5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBlbXB0eTtcbiAgICAgICAgaWYgKGZyb21FcnJvcikge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICB0aGlzLnhoci5hYm9ydCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGUpIHsgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgZG9jdW1lbnQgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgIGRlbGV0ZSBSZXF1ZXN0LnJlcXVlc3RzW3RoaXMuaW5kZXhdO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMueGhyID0gbnVsbDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2FsbGVkIHVwb24gbG9hZC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgb25Mb2FkKCkge1xuICAgICAgICBjb25zdCBkYXRhID0gdGhpcy54aHIucmVzcG9uc2VUZXh0O1xuICAgICAgICBpZiAoZGF0YSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5lbWl0UmVzZXJ2ZWQoXCJkYXRhXCIsIGRhdGEpO1xuICAgICAgICAgICAgdGhpcy5lbWl0UmVzZXJ2ZWQoXCJzdWNjZXNzXCIpO1xuICAgICAgICAgICAgdGhpcy5jbGVhbnVwKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQWJvcnRzIHRoZSByZXF1ZXN0LlxuICAgICAqXG4gICAgICogQHBhY2thZ2VcbiAgICAgKi9cbiAgICBhYm9ydCgpIHtcbiAgICAgICAgdGhpcy5jbGVhbnVwKCk7XG4gICAgfVxufVxuZXhwb3J0cy5SZXF1ZXN0ID0gUmVxdWVzdDtcblJlcXVlc3QucmVxdWVzdHNDb3VudCA9IDA7XG5SZXF1ZXN0LnJlcXVlc3RzID0ge307XG4vKipcbiAqIEFib3J0cyBwZW5kaW5nIHJlcXVlc3RzIHdoZW4gdW5sb2FkaW5nIHRoZSB3aW5kb3cuIFRoaXMgaXMgbmVlZGVkIHRvIHByZXZlbnRcbiAqIG1lbW9yeSBsZWFrcyAoZS5nLiB3aGVuIHVzaW5nIElFKSBhbmQgdG8gZW5zdXJlIHRoYXQgbm8gc3B1cmlvdXMgZXJyb3IgaXNcbiAqIGVtaXR0ZWQuXG4gKi9cbmlmICh0eXBlb2YgZG9jdW1lbnQgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgaWYgKHR5cGVvZiBhdHRhY2hFdmVudCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgYXR0YWNoRXZlbnQoXCJvbnVubG9hZFwiLCB1bmxvYWRIYW5kbGVyKTtcbiAgICB9XG4gICAgZWxzZSBpZiAodHlwZW9mIGFkZEV2ZW50TGlzdGVuZXIgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICBjb25zdCB0ZXJtaW5hdGlvbkV2ZW50ID0gXCJvbnBhZ2VoaWRlXCIgaW4gZ2xvYmFsVGhpc19qc18xLmdsb2JhbFRoaXNTaGltID8gXCJwYWdlaGlkZVwiIDogXCJ1bmxvYWRcIjtcbiAgICAgICAgYWRkRXZlbnRMaXN0ZW5lcih0ZXJtaW5hdGlvbkV2ZW50LCB1bmxvYWRIYW5kbGVyLCBmYWxzZSk7XG4gICAgfVxufVxuZnVuY3Rpb24gdW5sb2FkSGFuZGxlcigpIHtcbiAgICBmb3IgKGxldCBpIGluIFJlcXVlc3QucmVxdWVzdHMpIHtcbiAgICAgICAgaWYgKFJlcXVlc3QucmVxdWVzdHMuaGFzT3duUHJvcGVydHkoaSkpIHtcbiAgICAgICAgICAgIFJlcXVlc3QucmVxdWVzdHNbaV0uYWJvcnQoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vIGltcG9ydGVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3Vuc2hpZnRpby95ZWFzdFxuJ3VzZSBzdHJpY3QnO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy55ZWFzdCA9IGV4cG9ydHMuZGVjb2RlID0gZXhwb3J0cy5lbmNvZGUgPSB2b2lkIDA7XG5jb25zdCBhbHBoYWJldCA9ICcwMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ei1fJy5zcGxpdCgnJyksIGxlbmd0aCA9IDY0LCBtYXAgPSB7fTtcbmxldCBzZWVkID0gMCwgaSA9IDAsIHByZXY7XG4vKipcbiAqIFJldHVybiBhIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIHNwZWNpZmllZCBudW1iZXIuXG4gKlxuICogQHBhcmFtIHtOdW1iZXJ9IG51bSBUaGUgbnVtYmVyIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyB7U3RyaW5nfSBUaGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBudW1iZXIuXG4gKiBAYXBpIHB1YmxpY1xuICovXG5mdW5jdGlvbiBlbmNvZGUobnVtKSB7XG4gICAgbGV0IGVuY29kZWQgPSAnJztcbiAgICBkbyB7XG4gICAgICAgIGVuY29kZWQgPSBhbHBoYWJldFtudW0gJSBsZW5ndGhdICsgZW5jb2RlZDtcbiAgICAgICAgbnVtID0gTWF0aC5mbG9vcihudW0gLyBsZW5ndGgpO1xuICAgIH0gd2hpbGUgKG51bSA+IDApO1xuICAgIHJldHVybiBlbmNvZGVkO1xufVxuZXhwb3J0cy5lbmNvZGUgPSBlbmNvZGU7XG4vKipcbiAqIFJldHVybiB0aGUgaW50ZWdlciB2YWx1ZSBzcGVjaWZpZWQgYnkgdGhlIGdpdmVuIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyIFRoZSBzdHJpbmcgdG8gY29udmVydC5cbiAqIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBpbnRlZ2VyIHZhbHVlIHJlcHJlc2VudGVkIGJ5IHRoZSBzdHJpbmcuXG4gKiBAYXBpIHB1YmxpY1xuICovXG5mdW5jdGlvbiBkZWNvZGUoc3RyKSB7XG4gICAgbGV0IGRlY29kZWQgPSAwO1xuICAgIGZvciAoaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgZGVjb2RlZCA9IGRlY29kZWQgKiBsZW5ndGggKyBtYXBbc3RyLmNoYXJBdChpKV07XG4gICAgfVxuICAgIHJldHVybiBkZWNvZGVkO1xufVxuZXhwb3J0cy5kZWNvZGUgPSBkZWNvZGU7XG4vKipcbiAqIFllYXN0OiBBIHRpbnkgZ3Jvd2luZyBpZCBnZW5lcmF0b3IuXG4gKlxuICogQHJldHVybnMge1N0cmluZ30gQSB1bmlxdWUgaWQuXG4gKiBAYXBpIHB1YmxpY1xuICovXG5mdW5jdGlvbiB5ZWFzdCgpIHtcbiAgICBjb25zdCBub3cgPSBlbmNvZGUoK25ldyBEYXRlKCkpO1xuICAgIGlmIChub3cgIT09IHByZXYpXG4gICAgICAgIHJldHVybiBzZWVkID0gMCwgcHJldiA9IG5vdztcbiAgICByZXR1cm4gbm93ICsgJy4nICsgZW5jb2RlKHNlZWQrKyk7XG59XG5leHBvcnRzLnllYXN0ID0geWVhc3Q7XG4vL1xuLy8gTWFwIGVhY2ggY2hhcmFjdGVyIHRvIGl0cyBpbmRleC5cbi8vXG5mb3IgKDsgaSA8IGxlbmd0aDsgaSsrKVxuICAgIG1hcFthbHBoYWJldFtpXV0gPSBpO1xuIiwiLyogZXNsaW50LWVudiBicm93c2VyICovXG5cbi8qKlxuICogVGhpcyBpcyB0aGUgd2ViIGJyb3dzZXIgaW1wbGVtZW50YXRpb24gb2YgYGRlYnVnKClgLlxuICovXG5cbmV4cG9ydHMuZm9ybWF0QXJncyA9IGZvcm1hdEFyZ3M7XG5leHBvcnRzLnNhdmUgPSBzYXZlO1xuZXhwb3J0cy5sb2FkID0gbG9hZDtcbmV4cG9ydHMudXNlQ29sb3JzID0gdXNlQ29sb3JzO1xuZXhwb3J0cy5zdG9yYWdlID0gbG9jYWxzdG9yYWdlKCk7XG5leHBvcnRzLmRlc3Ryb3kgPSAoKCkgPT4ge1xuXHRsZXQgd2FybmVkID0gZmFsc2U7XG5cblx0cmV0dXJuICgpID0+IHtcblx0XHRpZiAoIXdhcm5lZCkge1xuXHRcdFx0d2FybmVkID0gdHJ1ZTtcblx0XHRcdGNvbnNvbGUud2FybignSW5zdGFuY2UgbWV0aG9kIGBkZWJ1Zy5kZXN0cm95KClgIGlzIGRlcHJlY2F0ZWQgYW5kIG5vIGxvbmdlciBkb2VzIGFueXRoaW5nLiBJdCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiBvZiBgZGVidWdgLicpO1xuXHRcdH1cblx0fTtcbn0pKCk7XG5cbi8qKlxuICogQ29sb3JzLlxuICovXG5cbmV4cG9ydHMuY29sb3JzID0gW1xuXHQnIzAwMDBDQycsXG5cdCcjMDAwMEZGJyxcblx0JyMwMDMzQ0MnLFxuXHQnIzAwMzNGRicsXG5cdCcjMDA2NkNDJyxcblx0JyMwMDY2RkYnLFxuXHQnIzAwOTlDQycsXG5cdCcjMDA5OUZGJyxcblx0JyMwMENDMDAnLFxuXHQnIzAwQ0MzMycsXG5cdCcjMDBDQzY2Jyxcblx0JyMwMENDOTknLFxuXHQnIzAwQ0NDQycsXG5cdCcjMDBDQ0ZGJyxcblx0JyMzMzAwQ0MnLFxuXHQnIzMzMDBGRicsXG5cdCcjMzMzM0NDJyxcblx0JyMzMzMzRkYnLFxuXHQnIzMzNjZDQycsXG5cdCcjMzM2NkZGJyxcblx0JyMzMzk5Q0MnLFxuXHQnIzMzOTlGRicsXG5cdCcjMzNDQzAwJyxcblx0JyMzM0NDMzMnLFxuXHQnIzMzQ0M2NicsXG5cdCcjMzNDQzk5Jyxcblx0JyMzM0NDQ0MnLFxuXHQnIzMzQ0NGRicsXG5cdCcjNjYwMENDJyxcblx0JyM2NjAwRkYnLFxuXHQnIzY2MzNDQycsXG5cdCcjNjYzM0ZGJyxcblx0JyM2NkNDMDAnLFxuXHQnIzY2Q0MzMycsXG5cdCcjOTkwMENDJyxcblx0JyM5OTAwRkYnLFxuXHQnIzk5MzNDQycsXG5cdCcjOTkzM0ZGJyxcblx0JyM5OUNDMDAnLFxuXHQnIzk5Q0MzMycsXG5cdCcjQ0MwMDAwJyxcblx0JyNDQzAwMzMnLFxuXHQnI0NDMDA2NicsXG5cdCcjQ0MwMDk5Jyxcblx0JyNDQzAwQ0MnLFxuXHQnI0NDMDBGRicsXG5cdCcjQ0MzMzAwJyxcblx0JyNDQzMzMzMnLFxuXHQnI0NDMzM2NicsXG5cdCcjQ0MzMzk5Jyxcblx0JyNDQzMzQ0MnLFxuXHQnI0NDMzNGRicsXG5cdCcjQ0M2NjAwJyxcblx0JyNDQzY2MzMnLFxuXHQnI0NDOTkwMCcsXG5cdCcjQ0M5OTMzJyxcblx0JyNDQ0NDMDAnLFxuXHQnI0NDQ0MzMycsXG5cdCcjRkYwMDAwJyxcblx0JyNGRjAwMzMnLFxuXHQnI0ZGMDA2NicsXG5cdCcjRkYwMDk5Jyxcblx0JyNGRjAwQ0MnLFxuXHQnI0ZGMDBGRicsXG5cdCcjRkYzMzAwJyxcblx0JyNGRjMzMzMnLFxuXHQnI0ZGMzM2NicsXG5cdCcjRkYzMzk5Jyxcblx0JyNGRjMzQ0MnLFxuXHQnI0ZGMzNGRicsXG5cdCcjRkY2NjAwJyxcblx0JyNGRjY2MzMnLFxuXHQnI0ZGOTkwMCcsXG5cdCcjRkY5OTMzJyxcblx0JyNGRkNDMDAnLFxuXHQnI0ZGQ0MzMydcbl07XG5cbi8qKlxuICogQ3VycmVudGx5IG9ubHkgV2ViS2l0LWJhc2VkIFdlYiBJbnNwZWN0b3JzLCBGaXJlZm94ID49IHYzMSxcbiAqIGFuZCB0aGUgRmlyZWJ1ZyBleHRlbnNpb24gKGFueSBGaXJlZm94IHZlcnNpb24pIGFyZSBrbm93blxuICogdG8gc3VwcG9ydCBcIiVjXCIgQ1NTIGN1c3RvbWl6YXRpb25zLlxuICpcbiAqIFRPRE86IGFkZCBhIGBsb2NhbFN0b3JhZ2VgIHZhcmlhYmxlIHRvIGV4cGxpY2l0bHkgZW5hYmxlL2Rpc2FibGUgY29sb3JzXG4gKi9cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbXBsZXhpdHlcbmZ1bmN0aW9uIHVzZUNvbG9ycygpIHtcblx0Ly8gTkI6IEluIGFuIEVsZWN0cm9uIHByZWxvYWQgc2NyaXB0LCBkb2N1bWVudCB3aWxsIGJlIGRlZmluZWQgYnV0IG5vdCBmdWxseVxuXHQvLyBpbml0aWFsaXplZC4gU2luY2Ugd2Uga25vdyB3ZSdyZSBpbiBDaHJvbWUsIHdlJ2xsIGp1c3QgZGV0ZWN0IHRoaXMgY2FzZVxuXHQvLyBleHBsaWNpdGx5XG5cdGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB3aW5kb3cucHJvY2VzcyAmJiAod2luZG93LnByb2Nlc3MudHlwZSA9PT0gJ3JlbmRlcmVyJyB8fCB3aW5kb3cucHJvY2Vzcy5fX253anMpKSB7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cblxuXHQvLyBJbnRlcm5ldCBFeHBsb3JlciBhbmQgRWRnZSBkbyBub3Qgc3VwcG9ydCBjb2xvcnMuXG5cdGlmICh0eXBlb2YgbmF2aWdhdG9yICE9PSAndW5kZWZpbmVkJyAmJiBuYXZpZ2F0b3IudXNlckFnZW50ICYmIG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5tYXRjaCgvKGVkZ2V8dHJpZGVudClcXC8oXFxkKykvKSkge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdGxldCBtO1xuXG5cdC8vIElzIHdlYmtpdD8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMTY0NTk2MDYvMzc2NzczXG5cdC8vIGRvY3VtZW50IGlzIHVuZGVmaW5lZCBpbiByZWFjdC1uYXRpdmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC1uYXRpdmUvcHVsbC8xNjMyXG5cdHJldHVybiAodHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJyAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQgJiYgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlICYmIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5XZWJraXRBcHBlYXJhbmNlKSB8fFxuXHRcdC8vIElzIGZpcmVidWc/IGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9hLzM5ODEyMC8zNzY3NzNcblx0XHQodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LmNvbnNvbGUgJiYgKHdpbmRvdy5jb25zb2xlLmZpcmVidWcgfHwgKHdpbmRvdy5jb25zb2xlLmV4Y2VwdGlvbiAmJiB3aW5kb3cuY29uc29sZS50YWJsZSkpKSB8fFxuXHRcdC8vIElzIGZpcmVmb3ggPj0gdjMxP1xuXHRcdC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvVG9vbHMvV2ViX0NvbnNvbGUjU3R5bGluZ19tZXNzYWdlc1xuXHRcdCh0eXBlb2YgbmF2aWdhdG9yICE9PSAndW5kZWZpbmVkJyAmJiBuYXZpZ2F0b3IudXNlckFnZW50ICYmIChtID0gbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLm1hdGNoKC9maXJlZm94XFwvKFxcZCspLykpICYmIHBhcnNlSW50KG1bMV0sIDEwKSA+PSAzMSkgfHxcblx0XHQvLyBEb3VibGUgY2hlY2sgd2Via2l0IGluIHVzZXJBZ2VudCBqdXN0IGluIGNhc2Ugd2UgYXJlIGluIGEgd29ya2VyXG5cdFx0KHR5cGVvZiBuYXZpZ2F0b3IgIT09ICd1bmRlZmluZWQnICYmIG5hdmlnYXRvci51c2VyQWdlbnQgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLm1hdGNoKC9hcHBsZXdlYmtpdFxcLyhcXGQrKS8pKTtcbn1cblxuLyoqXG4gKiBDb2xvcml6ZSBsb2cgYXJndW1lbnRzIGlmIGVuYWJsZWQuXG4gKlxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5mdW5jdGlvbiBmb3JtYXRBcmdzKGFyZ3MpIHtcblx0YXJnc1swXSA9ICh0aGlzLnVzZUNvbG9ycyA/ICclYycgOiAnJykgK1xuXHRcdHRoaXMubmFtZXNwYWNlICtcblx0XHQodGhpcy51c2VDb2xvcnMgPyAnICVjJyA6ICcgJykgK1xuXHRcdGFyZ3NbMF0gK1xuXHRcdCh0aGlzLnVzZUNvbG9ycyA/ICclYyAnIDogJyAnKSArXG5cdFx0JysnICsgbW9kdWxlLmV4cG9ydHMuaHVtYW5pemUodGhpcy5kaWZmKTtcblxuXHRpZiAoIXRoaXMudXNlQ29sb3JzKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Y29uc3QgYyA9ICdjb2xvcjogJyArIHRoaXMuY29sb3I7XG5cdGFyZ3Muc3BsaWNlKDEsIDAsIGMsICdjb2xvcjogaW5oZXJpdCcpO1xuXG5cdC8vIFRoZSBmaW5hbCBcIiVjXCIgaXMgc29tZXdoYXQgdHJpY2t5LCBiZWNhdXNlIHRoZXJlIGNvdWxkIGJlIG90aGVyXG5cdC8vIGFyZ3VtZW50cyBwYXNzZWQgZWl0aGVyIGJlZm9yZSBvciBhZnRlciB0aGUgJWMsIHNvIHdlIG5lZWQgdG9cblx0Ly8gZmlndXJlIG91dCB0aGUgY29ycmVjdCBpbmRleCB0byBpbnNlcnQgdGhlIENTUyBpbnRvXG5cdGxldCBpbmRleCA9IDA7XG5cdGxldCBsYXN0QyA9IDA7XG5cdGFyZ3NbMF0ucmVwbGFjZSgvJVthLXpBLVolXS9nLCBtYXRjaCA9PiB7XG5cdFx0aWYgKG1hdGNoID09PSAnJSUnKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGluZGV4Kys7XG5cdFx0aWYgKG1hdGNoID09PSAnJWMnKSB7XG5cdFx0XHQvLyBXZSBvbmx5IGFyZSBpbnRlcmVzdGVkIGluIHRoZSAqbGFzdCogJWNcblx0XHRcdC8vICh0aGUgdXNlciBtYXkgaGF2ZSBwcm92aWRlZCB0aGVpciBvd24pXG5cdFx0XHRsYXN0QyA9IGluZGV4O1xuXHRcdH1cblx0fSk7XG5cblx0YXJncy5zcGxpY2UobGFzdEMsIDAsIGMpO1xufVxuXG4vKipcbiAqIEludm9rZXMgYGNvbnNvbGUuZGVidWcoKWAgd2hlbiBhdmFpbGFibGUuXG4gKiBOby1vcCB3aGVuIGBjb25zb2xlLmRlYnVnYCBpcyBub3QgYSBcImZ1bmN0aW9uXCIuXG4gKiBJZiBgY29uc29sZS5kZWJ1Z2AgaXMgbm90IGF2YWlsYWJsZSwgZmFsbHMgYmFja1xuICogdG8gYGNvbnNvbGUubG9nYC5cbiAqXG4gKiBAYXBpIHB1YmxpY1xuICovXG5leHBvcnRzLmxvZyA9IGNvbnNvbGUuZGVidWcgfHwgY29uc29sZS5sb2cgfHwgKCgpID0+IHt9KTtcblxuLyoqXG4gKiBTYXZlIGBuYW1lc3BhY2VzYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gbmFtZXNwYWNlc1xuICogQGFwaSBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIHNhdmUobmFtZXNwYWNlcykge1xuXHR0cnkge1xuXHRcdGlmIChuYW1lc3BhY2VzKSB7XG5cdFx0XHRleHBvcnRzLnN0b3JhZ2Uuc2V0SXRlbSgnZGVidWcnLCBuYW1lc3BhY2VzKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0ZXhwb3J0cy5zdG9yYWdlLnJlbW92ZUl0ZW0oJ2RlYnVnJyk7XG5cdFx0fVxuXHR9IGNhdGNoIChlcnJvcikge1xuXHRcdC8vIFN3YWxsb3dcblx0XHQvLyBYWFggKEBRaXgtKSBzaG91bGQgd2UgYmUgbG9nZ2luZyB0aGVzZT9cblx0fVxufVxuXG4vKipcbiAqIExvYWQgYG5hbWVzcGFjZXNgLlxuICpcbiAqIEByZXR1cm4ge1N0cmluZ30gcmV0dXJucyB0aGUgcHJldmlvdXNseSBwZXJzaXN0ZWQgZGVidWcgbW9kZXNcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5mdW5jdGlvbiBsb2FkKCkge1xuXHRsZXQgcjtcblx0dHJ5IHtcblx0XHRyID0gZXhwb3J0cy5zdG9yYWdlLmdldEl0ZW0oJ2RlYnVnJyk7XG5cdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0Ly8gU3dhbGxvd1xuXHRcdC8vIFhYWCAoQFFpeC0pIHNob3VsZCB3ZSBiZSBsb2dnaW5nIHRoZXNlP1xuXHR9XG5cblx0Ly8gSWYgZGVidWcgaXNuJ3Qgc2V0IGluIExTLCBhbmQgd2UncmUgaW4gRWxlY3Ryb24sIHRyeSB0byBsb2FkICRERUJVR1xuXHRpZiAoIXIgJiYgdHlwZW9mIHByb2Nlc3MgIT09ICd1bmRlZmluZWQnICYmICdlbnYnIGluIHByb2Nlc3MpIHtcblx0XHRyID0gcHJvY2Vzcy5lbnYuREVCVUc7XG5cdH1cblxuXHRyZXR1cm4gcjtcbn1cblxuLyoqXG4gKiBMb2NhbHN0b3JhZ2UgYXR0ZW1wdHMgdG8gcmV0dXJuIHRoZSBsb2NhbHN0b3JhZ2UuXG4gKlxuICogVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSBzYWZhcmkgdGhyb3dzXG4gKiB3aGVuIGEgdXNlciBkaXNhYmxlcyBjb29raWVzL2xvY2Fsc3RvcmFnZVxuICogYW5kIHlvdSBhdHRlbXB0IHRvIGFjY2VzcyBpdC5cbiAqXG4gKiBAcmV0dXJuIHtMb2NhbFN0b3JhZ2V9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBsb2NhbHN0b3JhZ2UoKSB7XG5cdHRyeSB7XG5cdFx0Ly8gVFZNTEtpdCAoQXBwbGUgVFYgSlMgUnVudGltZSkgZG9lcyBub3QgaGF2ZSBhIHdpbmRvdyBvYmplY3QsIGp1c3QgbG9jYWxTdG9yYWdlIGluIHRoZSBnbG9iYWwgY29udGV4dFxuXHRcdC8vIFRoZSBCcm93c2VyIGFsc28gaGFzIGxvY2FsU3RvcmFnZSBpbiB0aGUgZ2xvYmFsIGNvbnRleHQuXG5cdFx0cmV0dXJuIGxvY2FsU3RvcmFnZTtcblx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHQvLyBTd2FsbG93XG5cdFx0Ly8gWFhYIChAUWl4LSkgc2hvdWxkIHdlIGJlIGxvZ2dpbmcgdGhlc2U/XG5cdH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2NvbW1vbicpKGV4cG9ydHMpO1xuXG5jb25zdCB7Zm9ybWF0dGVyc30gPSBtb2R1bGUuZXhwb3J0cztcblxuLyoqXG4gKiBNYXAgJWogdG8gYEpTT04uc3RyaW5naWZ5KClgLCBzaW5jZSBubyBXZWIgSW5zcGVjdG9ycyBkbyB0aGF0IGJ5IGRlZmF1bHQuXG4gKi9cblxuZm9ybWF0dGVycy5qID0gZnVuY3Rpb24gKHYpIHtcblx0dHJ5IHtcblx0XHRyZXR1cm4gSlNPTi5zdHJpbmdpZnkodik7XG5cdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0cmV0dXJuICdbVW5leHBlY3RlZEpTT05QYXJzZUVycm9yXTogJyArIGVycm9yLm1lc3NhZ2U7XG5cdH1cbn07XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMucGFyc2UgPSB2b2lkIDA7XG4vLyBpbXBvcnRlZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9nYWxrbi9wYXJzZXVyaVxuLyoqXG4gKiBQYXJzZXMgYSBVUklcbiAqXG4gKiBOb3RlOiB3ZSBjb3VsZCBhbHNvIGhhdmUgdXNlZCB0aGUgYnVpbHQtaW4gVVJMIG9iamVjdCwgYnV0IGl0IGlzbid0IHN1cHBvcnRlZCBvbiBhbGwgcGxhdGZvcm1zLlxuICpcbiAqIFNlZTpcbiAqIC0gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1VSTFxuICogLSBodHRwczovL2Nhbml1c2UuY29tL3VybFxuICogLSBodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9yZmMvcmZjMzk4NiNhcHBlbmRpeC1CXG4gKlxuICogSGlzdG9yeSBvZiB0aGUgcGFyc2UoKSBtZXRob2Q6XG4gKiAtIGZpcnN0IGNvbW1pdDogaHR0cHM6Ly9naXRodWIuY29tL3NvY2tldGlvL3NvY2tldC5pby1jbGllbnQvY29tbWl0LzRlZTFkNWQ5NGIzOTA2YTljMDUyYjQ1OWYxYTgxOGIxNWYzOGY5MWNcbiAqIC0gZXhwb3J0IGludG8gaXRzIG93biBtb2R1bGU6IGh0dHBzOi8vZ2l0aHViLmNvbS9zb2NrZXRpby9lbmdpbmUuaW8tY2xpZW50L2NvbW1pdC9kZTJjNTYxZTQ1NjRlZmViNzhmMWJkYjFiYTM5ZWY4MWIyODIyY2IzXG4gKiAtIHJlaW1wb3J0OiBodHRwczovL2dpdGh1Yi5jb20vc29ja2V0aW8vZW5naW5lLmlvLWNsaWVudC9jb21taXQvZGYzMjI3N2MzZjZkNjIyZWVjNWVkMDlmNDkzY2FlM2YzMzkxZDI0MlxuICpcbiAqIEBhdXRob3IgU3RldmVuIExldml0aGFuIDxzdGV2ZW5sZXZpdGhhbi5jb20+IChNSVQgbGljZW5zZSlcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5jb25zdCByZSA9IC9eKD86KD8hW146QFxcLz8jXSs6W146QFxcL10qQCkoaHR0cHxodHRwc3x3c3x3c3MpOlxcL1xcLyk/KCg/OigoW146QFxcLz8jXSopKD86OihbXjpAXFwvPyNdKikpPyk/QCk/KCg/OlthLWYwLTldezAsNH06KXsyLDd9W2EtZjAtOV17MCw0fXxbXjpcXC8/I10qKSg/OjooXFxkKikpPykoKChcXC8oPzpbXj8jXSg/IVtePyNcXC9dKlxcLltePyNcXC8uXSsoPzpbPyNdfCQpKSkqXFwvPyk/KFtePyNcXC9dKikpKD86XFw/KFteI10qKSk/KD86IyguKikpPykvO1xuY29uc3QgcGFydHMgPSBbXG4gICAgJ3NvdXJjZScsICdwcm90b2NvbCcsICdhdXRob3JpdHknLCAndXNlckluZm8nLCAndXNlcicsICdwYXNzd29yZCcsICdob3N0JywgJ3BvcnQnLCAncmVsYXRpdmUnLCAncGF0aCcsICdkaXJlY3RvcnknLCAnZmlsZScsICdxdWVyeScsICdhbmNob3InXG5dO1xuZnVuY3Rpb24gcGFyc2Uoc3RyKSB7XG4gICAgaWYgKHN0ci5sZW5ndGggPiAyMDAwKSB7XG4gICAgICAgIHRocm93IFwiVVJJIHRvbyBsb25nXCI7XG4gICAgfVxuICAgIGNvbnN0IHNyYyA9IHN0ciwgYiA9IHN0ci5pbmRleE9mKCdbJyksIGUgPSBzdHIuaW5kZXhPZignXScpO1xuICAgIGlmIChiICE9IC0xICYmIGUgIT0gLTEpIHtcbiAgICAgICAgc3RyID0gc3RyLnN1YnN0cmluZygwLCBiKSArIHN0ci5zdWJzdHJpbmcoYiwgZSkucmVwbGFjZSgvOi9nLCAnOycpICsgc3RyLnN1YnN0cmluZyhlLCBzdHIubGVuZ3RoKTtcbiAgICB9XG4gICAgbGV0IG0gPSByZS5leGVjKHN0ciB8fCAnJyksIHVyaSA9IHt9LCBpID0gMTQ7XG4gICAgd2hpbGUgKGktLSkge1xuICAgICAgICB1cmlbcGFydHNbaV1dID0gbVtpXSB8fCAnJztcbiAgICB9XG4gICAgaWYgKGIgIT0gLTEgJiYgZSAhPSAtMSkge1xuICAgICAgICB1cmkuc291cmNlID0gc3JjO1xuICAgICAgICB1cmkuaG9zdCA9IHVyaS5ob3N0LnN1YnN0cmluZygxLCB1cmkuaG9zdC5sZW5ndGggLSAxKS5yZXBsYWNlKC87L2csICc6Jyk7XG4gICAgICAgIHVyaS5hdXRob3JpdHkgPSB1cmkuYXV0aG9yaXR5LnJlcGxhY2UoJ1snLCAnJykucmVwbGFjZSgnXScsICcnKS5yZXBsYWNlKC87L2csICc6Jyk7XG4gICAgICAgIHVyaS5pcHY2dXJpID0gdHJ1ZTtcbiAgICB9XG4gICAgdXJpLnBhdGhOYW1lcyA9IHBhdGhOYW1lcyh1cmksIHVyaVsncGF0aCddKTtcbiAgICB1cmkucXVlcnlLZXkgPSBxdWVyeUtleSh1cmksIHVyaVsncXVlcnknXSk7XG4gICAgcmV0dXJuIHVyaTtcbn1cbmV4cG9ydHMucGFyc2UgPSBwYXJzZTtcbmZ1bmN0aW9uIHBhdGhOYW1lcyhvYmosIHBhdGgpIHtcbiAgICBjb25zdCByZWd4ID0gL1xcL3syLDl9L2csIG5hbWVzID0gcGF0aC5yZXBsYWNlKHJlZ3gsIFwiL1wiKS5zcGxpdChcIi9cIik7XG4gICAgaWYgKHBhdGguc2xpY2UoMCwgMSkgPT0gJy8nIHx8IHBhdGgubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIG5hbWVzLnNwbGljZSgwLCAxKTtcbiAgICB9XG4gICAgaWYgKHBhdGguc2xpY2UoLTEpID09ICcvJykge1xuICAgICAgICBuYW1lcy5zcGxpY2UobmFtZXMubGVuZ3RoIC0gMSwgMSk7XG4gICAgfVxuICAgIHJldHVybiBuYW1lcztcbn1cbmZ1bmN0aW9uIHF1ZXJ5S2V5KHVyaSwgcXVlcnkpIHtcbiAgICBjb25zdCBkYXRhID0ge307XG4gICAgcXVlcnkucmVwbGFjZSgvKD86XnwmKShbXiY9XSopPT8oW14mXSopL2csIGZ1bmN0aW9uICgkMCwgJDEsICQyKSB7XG4gICAgICAgIGlmICgkMSkge1xuICAgICAgICAgICAgZGF0YVskMV0gPSAkMjtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBkYXRhO1xufVxuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmluaXQgPSB2b2lkIDA7XG5jb25zdCBDaF8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL0NoXCIpKTtcbmV4cG9ydHMuaW5pdCA9IHtcbiAgICBnYXRld2F5OiBudWxsLFxuICAgIGlvU2VydmVyOiB7XG4gICAgICAgIGxvY2F0aW9uOiAnJyxcbiAgICAgICAgaG9zdDogJ2xvY2FsaG9zdCcsXG4gICAgICAgIHBvcnQ6IDAsXG4gICAgfSxcbiAgICByZWRpczoge1xuICAgICAgICBjbHVzdGVyOiBbXSxcbiAgICAgICAgY2xpZW50OiB7XG4gICAgICAgICAgICBob3N0OiAnMTI3LjAuMC4xJyxcbiAgICAgICAgICAgIHBvcnQ6IDYzNzksXG4gICAgICAgIH0sXG4gICAgfSxcbiAgICBhY2NlcHQ6IHtcbiAgICAgICAgcmFua0FsbDogZmFsc2UsXG4gICAgfSxcbiAgICBjaGlsZHJlbjogW10sXG59O1xuY2xhc3MgQ2hDb25maWdNb2RlbCB7XG4gICAgY29uc3RydWN0b3IocGFyYW1zID0gZXhwb3J0cy5pbml0KSB7XG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHRoaXMsIHBhcmFtcyk7XG4gICAgfVxuICAgIHN0YXRpYyBnZXRNeUNoQ29uZmlnKGNoQ29uZmlnSnNvbiwgbXlDb25uZWN0aW9uKSB7XG4gICAgICAgIGNvbnN0IG1hdGNoaW5nID0gKGNoQ29uZmlnLCBwYXJlbnRMb2NhdGlvbiA9ICcnKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50TG9jYXRpb24gPSBwYXJlbnRMb2NhdGlvbiArIGNoQ29uZmlnLmlvU2VydmVyLmxvY2F0aW9uO1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRMb2NhdGlvbiA9PT0gbXlDb25uZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgLi4uY2hDb25maWcsXG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbjogbXlDb25uZWN0aW9uLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY2hDb25maWcuY2hpbGRyZW4gJiYgY2hDb25maWcuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgY2hpbGQgb2YgY2hDb25maWcuY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gbWF0Y2hpbmcoY2hpbGQsIGN1cnJlbnRMb2NhdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBtYXRjaGVkID0gbWF0Y2hpbmcoY2hDb25maWdKc29uKTtcbiAgICAgICAgcmV0dXJuIG1hdGNoZWQgIT09IG51bGwgPyBtYXRjaGVkIDogeyAuLi5jaENvbmZpZ0pzb24sIGNoaWxkcmVuOiBbXSwgY29ubmVjdGlvbjogbXlDb25uZWN0aW9uIH07XG4gICAgfVxuICAgIHN0YXRpYyBnZXRDaFJvb3RzQ29uZmlnKHBhcmFtcykge1xuICAgICAgICBjb25zdCB7IGNoQ29uZmlnSnNvbiwgdHVuZUNvbm5lY3Rpb24gfSA9IHBhcmFtcztcbiAgICAgICAgY29uc3QgcmVjY3VyZW50RmluZCA9IChjaGlsZHJlbiwgdHVuZUNvbm5lY3Rpb24sIHBhcmVudENvbm5lY3Rpb24sIHJvb3RzID0gW10pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZpbmRlZCA9IGNoaWxkcmVuLmZpbmQoKGNoaWxkKSA9PiB0dW5lQ29ubmVjdGlvbi5pbmRleE9mKHBhcmVudENvbm5lY3Rpb24gKyBjaGlsZC5pb1NlcnZlci5sb2NhdGlvbikgPj0gMCk7XG4gICAgICAgICAgICBpZiAoZmluZGVkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudENvbm5lY3Rpb24gPSBwYXJlbnRDb25uZWN0aW9uICsgZmluZGVkLmlvU2VydmVyLmxvY2F0aW9uO1xuICAgICAgICAgICAgICAgIHJvb3RzLnB1c2goeyAuLi5maW5kZWQsIGNoaWxkcmVuOiBbXSwgY29ubmVjdGlvbjogY3VycmVudENvbm5lY3Rpb24gfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlY2N1cmVudEZpbmQoZmluZGVkLmNoaWxkcmVuLCB0dW5lQ29ubmVjdGlvbiwgY3VycmVudENvbm5lY3Rpb24sIHJvb3RzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiByb290cztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgY29uZmlncyA9IHJlY2N1cmVudEZpbmQoY2hDb25maWdKc29uLmNoaWxkcmVuLCB0dW5lQ29ubmVjdGlvbiwgQ2hfMS5kZWZhdWx0LnJvb3RDb25uZWN0aW9uLCBbXG4gICAgICAgICAgICB7IC4uLmNoQ29uZmlnSnNvbiwgY2hpbGRyZW46IFtdLCBjb25uZWN0aW9uOiBDaF8xLmRlZmF1bHQucm9vdENvbm5lY3Rpb24gfSxcbiAgICAgICAgXSk7XG4gICAgICAgIHJldHVybiBjb25maWdzO1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0R2F0ZXdheShwYXJhbXMpIHtcbiAgICAgICAgY29uc3QgY2hSb290c0NvbmZpZyA9IENoQ29uZmlnTW9kZWwuZ2V0Q2hSb290c0NvbmZpZyhwYXJhbXMpO1xuICAgICAgICBjb25zdCBnYXRld2F5ID0gY2hSb290c0NvbmZpZ1sxXSA/IGNoUm9vdHNDb25maWdbMV0uZ2F0ZXdheSA6IGNoUm9vdHNDb25maWdbMF0uZ2F0ZXdheTtcbiAgICAgICAgcmV0dXJuIGdhdGV3YXk7XG4gICAgfVxuICAgIHN0YXRpYyBnZXRSb290c0Nvbm5lY3Rpb25zKHBhcmFtcywgaXNFeGNsdWRlVHVuZUNvbm5lY3Rpb24gPSBmYWxzZSkge1xuICAgICAgICBjb25zdCBteVJvb3RzQ29uZmlnID0gQ2hDb25maWdNb2RlbC5nZXRDaFJvb3RzQ29uZmlnKHBhcmFtcyk7XG4gICAgICAgIGNvbnN0IG15Um9vdHNDb25uZWN0aW9ucyA9IG15Um9vdHNDb25maWcubWFwKChjb25maWcpID0+IGNvbmZpZy5jb25uZWN0aW9uKTtcbiAgICAgICAgcmV0dXJuIGlzRXhjbHVkZVR1bmVDb25uZWN0aW9uID8gbXlSb290c0Nvbm5lY3Rpb25zLmZpbHRlcigoYykgPT4gYyAhPT0gcGFyYW1zLnR1bmVDb25uZWN0aW9uKSA6IG15Um9vdHNDb25uZWN0aW9ucztcbiAgICB9XG59XG5leHBvcnRzLmRlZmF1bHQgPSBDaENvbmZpZ01vZGVsO1xuIiwiXG4vKipcbiAqIFRoaXMgaXMgdGhlIGNvbW1vbiBsb2dpYyBmb3IgYm90aCB0aGUgTm9kZS5qcyBhbmQgd2ViIGJyb3dzZXJcbiAqIGltcGxlbWVudGF0aW9ucyBvZiBgZGVidWcoKWAuXG4gKi9cblxuZnVuY3Rpb24gc2V0dXAoZW52KSB7XG5cdGNyZWF0ZURlYnVnLmRlYnVnID0gY3JlYXRlRGVidWc7XG5cdGNyZWF0ZURlYnVnLmRlZmF1bHQgPSBjcmVhdGVEZWJ1Zztcblx0Y3JlYXRlRGVidWcuY29lcmNlID0gY29lcmNlO1xuXHRjcmVhdGVEZWJ1Zy5kaXNhYmxlID0gZGlzYWJsZTtcblx0Y3JlYXRlRGVidWcuZW5hYmxlID0gZW5hYmxlO1xuXHRjcmVhdGVEZWJ1Zy5lbmFibGVkID0gZW5hYmxlZDtcblx0Y3JlYXRlRGVidWcuaHVtYW5pemUgPSByZXF1aXJlKCdtcycpO1xuXHRjcmVhdGVEZWJ1Zy5kZXN0cm95ID0gZGVzdHJveTtcblxuXHRPYmplY3Qua2V5cyhlbnYpLmZvckVhY2goa2V5ID0+IHtcblx0XHRjcmVhdGVEZWJ1Z1trZXldID0gZW52W2tleV07XG5cdH0pO1xuXG5cdC8qKlxuXHQqIFRoZSBjdXJyZW50bHkgYWN0aXZlIGRlYnVnIG1vZGUgbmFtZXMsIGFuZCBuYW1lcyB0byBza2lwLlxuXHQqL1xuXG5cdGNyZWF0ZURlYnVnLm5hbWVzID0gW107XG5cdGNyZWF0ZURlYnVnLnNraXBzID0gW107XG5cblx0LyoqXG5cdCogTWFwIG9mIHNwZWNpYWwgXCIlblwiIGhhbmRsaW5nIGZ1bmN0aW9ucywgZm9yIHRoZSBkZWJ1ZyBcImZvcm1hdFwiIGFyZ3VtZW50LlxuXHQqXG5cdCogVmFsaWQga2V5IG5hbWVzIGFyZSBhIHNpbmdsZSwgbG93ZXIgb3IgdXBwZXItY2FzZSBsZXR0ZXIsIGkuZS4gXCJuXCIgYW5kIFwiTlwiLlxuXHQqL1xuXHRjcmVhdGVEZWJ1Zy5mb3JtYXR0ZXJzID0ge307XG5cblx0LyoqXG5cdCogU2VsZWN0cyBhIGNvbG9yIGZvciBhIGRlYnVnIG5hbWVzcGFjZVxuXHQqIEBwYXJhbSB7U3RyaW5nfSBuYW1lc3BhY2UgVGhlIG5hbWVzcGFjZSBzdHJpbmcgZm9yIHRoZSBkZWJ1ZyBpbnN0YW5jZSB0byBiZSBjb2xvcmVkXG5cdCogQHJldHVybiB7TnVtYmVyfFN0cmluZ30gQW4gQU5TSSBjb2xvciBjb2RlIGZvciB0aGUgZ2l2ZW4gbmFtZXNwYWNlXG5cdCogQGFwaSBwcml2YXRlXG5cdCovXG5cdGZ1bmN0aW9uIHNlbGVjdENvbG9yKG5hbWVzcGFjZSkge1xuXHRcdGxldCBoYXNoID0gMDtcblxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgbmFtZXNwYWNlLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRoYXNoID0gKChoYXNoIDw8IDUpIC0gaGFzaCkgKyBuYW1lc3BhY2UuY2hhckNvZGVBdChpKTtcblx0XHRcdGhhc2ggfD0gMDsgLy8gQ29udmVydCB0byAzMmJpdCBpbnRlZ2VyXG5cdFx0fVxuXG5cdFx0cmV0dXJuIGNyZWF0ZURlYnVnLmNvbG9yc1tNYXRoLmFicyhoYXNoKSAlIGNyZWF0ZURlYnVnLmNvbG9ycy5sZW5ndGhdO1xuXHR9XG5cdGNyZWF0ZURlYnVnLnNlbGVjdENvbG9yID0gc2VsZWN0Q29sb3I7XG5cblx0LyoqXG5cdCogQ3JlYXRlIGEgZGVidWdnZXIgd2l0aCB0aGUgZ2l2ZW4gYG5hbWVzcGFjZWAuXG5cdCpcblx0KiBAcGFyYW0ge1N0cmluZ30gbmFtZXNwYWNlXG5cdCogQHJldHVybiB7RnVuY3Rpb259XG5cdCogQGFwaSBwdWJsaWNcblx0Ki9cblx0ZnVuY3Rpb24gY3JlYXRlRGVidWcobmFtZXNwYWNlKSB7XG5cdFx0bGV0IHByZXZUaW1lO1xuXHRcdGxldCBlbmFibGVPdmVycmlkZSA9IG51bGw7XG5cdFx0bGV0IG5hbWVzcGFjZXNDYWNoZTtcblx0XHRsZXQgZW5hYmxlZENhY2hlO1xuXG5cdFx0ZnVuY3Rpb24gZGVidWcoLi4uYXJncykge1xuXHRcdFx0Ly8gRGlzYWJsZWQ/XG5cdFx0XHRpZiAoIWRlYnVnLmVuYWJsZWQpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBzZWxmID0gZGVidWc7XG5cblx0XHRcdC8vIFNldCBgZGlmZmAgdGltZXN0YW1wXG5cdFx0XHRjb25zdCBjdXJyID0gTnVtYmVyKG5ldyBEYXRlKCkpO1xuXHRcdFx0Y29uc3QgbXMgPSBjdXJyIC0gKHByZXZUaW1lIHx8IGN1cnIpO1xuXHRcdFx0c2VsZi5kaWZmID0gbXM7XG5cdFx0XHRzZWxmLnByZXYgPSBwcmV2VGltZTtcblx0XHRcdHNlbGYuY3VyciA9IGN1cnI7XG5cdFx0XHRwcmV2VGltZSA9IGN1cnI7XG5cblx0XHRcdGFyZ3NbMF0gPSBjcmVhdGVEZWJ1Zy5jb2VyY2UoYXJnc1swXSk7XG5cblx0XHRcdGlmICh0eXBlb2YgYXJnc1swXSAhPT0gJ3N0cmluZycpIHtcblx0XHRcdFx0Ly8gQW55dGhpbmcgZWxzZSBsZXQncyBpbnNwZWN0IHdpdGggJU9cblx0XHRcdFx0YXJncy51bnNoaWZ0KCclTycpO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBBcHBseSBhbnkgYGZvcm1hdHRlcnNgIHRyYW5zZm9ybWF0aW9uc1xuXHRcdFx0bGV0IGluZGV4ID0gMDtcblx0XHRcdGFyZ3NbMF0gPSBhcmdzWzBdLnJlcGxhY2UoLyUoW2EtekEtWiVdKS9nLCAobWF0Y2gsIGZvcm1hdCkgPT4ge1xuXHRcdFx0XHQvLyBJZiB3ZSBlbmNvdW50ZXIgYW4gZXNjYXBlZCAlIHRoZW4gZG9uJ3QgaW5jcmVhc2UgdGhlIGFycmF5IGluZGV4XG5cdFx0XHRcdGlmIChtYXRjaCA9PT0gJyUlJykge1xuXHRcdFx0XHRcdHJldHVybiAnJSc7XG5cdFx0XHRcdH1cblx0XHRcdFx0aW5kZXgrKztcblx0XHRcdFx0Y29uc3QgZm9ybWF0dGVyID0gY3JlYXRlRGVidWcuZm9ybWF0dGVyc1tmb3JtYXRdO1xuXHRcdFx0XHRpZiAodHlwZW9mIGZvcm1hdHRlciA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0XHRcdGNvbnN0IHZhbCA9IGFyZ3NbaW5kZXhdO1xuXHRcdFx0XHRcdG1hdGNoID0gZm9ybWF0dGVyLmNhbGwoc2VsZiwgdmFsKTtcblxuXHRcdFx0XHRcdC8vIE5vdyB3ZSBuZWVkIHRvIHJlbW92ZSBgYXJnc1tpbmRleF1gIHNpbmNlIGl0J3MgaW5saW5lZCBpbiB0aGUgYGZvcm1hdGBcblx0XHRcdFx0XHRhcmdzLnNwbGljZShpbmRleCwgMSk7XG5cdFx0XHRcdFx0aW5kZXgtLTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gbWF0Y2g7XG5cdFx0XHR9KTtcblxuXHRcdFx0Ly8gQXBwbHkgZW52LXNwZWNpZmljIGZvcm1hdHRpbmcgKGNvbG9ycywgZXRjLilcblx0XHRcdGNyZWF0ZURlYnVnLmZvcm1hdEFyZ3MuY2FsbChzZWxmLCBhcmdzKTtcblxuXHRcdFx0Y29uc3QgbG9nRm4gPSBzZWxmLmxvZyB8fCBjcmVhdGVEZWJ1Zy5sb2c7XG5cdFx0XHRsb2dGbi5hcHBseShzZWxmLCBhcmdzKTtcblx0XHR9XG5cblx0XHRkZWJ1Zy5uYW1lc3BhY2UgPSBuYW1lc3BhY2U7XG5cdFx0ZGVidWcudXNlQ29sb3JzID0gY3JlYXRlRGVidWcudXNlQ29sb3JzKCk7XG5cdFx0ZGVidWcuY29sb3IgPSBjcmVhdGVEZWJ1Zy5zZWxlY3RDb2xvcihuYW1lc3BhY2UpO1xuXHRcdGRlYnVnLmV4dGVuZCA9IGV4dGVuZDtcblx0XHRkZWJ1Zy5kZXN0cm95ID0gY3JlYXRlRGVidWcuZGVzdHJveTsgLy8gWFhYIFRlbXBvcmFyeS4gV2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHJlbGVhc2UuXG5cblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZGVidWcsICdlbmFibGVkJywge1xuXHRcdFx0ZW51bWVyYWJsZTogdHJ1ZSxcblx0XHRcdGNvbmZpZ3VyYWJsZTogZmFsc2UsXG5cdFx0XHRnZXQ6ICgpID0+IHtcblx0XHRcdFx0aWYgKGVuYWJsZU92ZXJyaWRlICE9PSBudWxsKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGVuYWJsZU92ZXJyaWRlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChuYW1lc3BhY2VzQ2FjaGUgIT09IGNyZWF0ZURlYnVnLm5hbWVzcGFjZXMpIHtcblx0XHRcdFx0XHRuYW1lc3BhY2VzQ2FjaGUgPSBjcmVhdGVEZWJ1Zy5uYW1lc3BhY2VzO1xuXHRcdFx0XHRcdGVuYWJsZWRDYWNoZSA9IGNyZWF0ZURlYnVnLmVuYWJsZWQobmFtZXNwYWNlKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHJldHVybiBlbmFibGVkQ2FjaGU7XG5cdFx0XHR9LFxuXHRcdFx0c2V0OiB2ID0+IHtcblx0XHRcdFx0ZW5hYmxlT3ZlcnJpZGUgPSB2O1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0Ly8gRW52LXNwZWNpZmljIGluaXRpYWxpemF0aW9uIGxvZ2ljIGZvciBkZWJ1ZyBpbnN0YW5jZXNcblx0XHRpZiAodHlwZW9mIGNyZWF0ZURlYnVnLmluaXQgPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdGNyZWF0ZURlYnVnLmluaXQoZGVidWcpO1xuXHRcdH1cblxuXHRcdHJldHVybiBkZWJ1Zztcblx0fVxuXG5cdGZ1bmN0aW9uIGV4dGVuZChuYW1lc3BhY2UsIGRlbGltaXRlcikge1xuXHRcdGNvbnN0IG5ld0RlYnVnID0gY3JlYXRlRGVidWcodGhpcy5uYW1lc3BhY2UgKyAodHlwZW9mIGRlbGltaXRlciA9PT0gJ3VuZGVmaW5lZCcgPyAnOicgOiBkZWxpbWl0ZXIpICsgbmFtZXNwYWNlKTtcblx0XHRuZXdEZWJ1Zy5sb2cgPSB0aGlzLmxvZztcblx0XHRyZXR1cm4gbmV3RGVidWc7XG5cdH1cblxuXHQvKipcblx0KiBFbmFibGVzIGEgZGVidWcgbW9kZSBieSBuYW1lc3BhY2VzLiBUaGlzIGNhbiBpbmNsdWRlIG1vZGVzXG5cdCogc2VwYXJhdGVkIGJ5IGEgY29sb24gYW5kIHdpbGRjYXJkcy5cblx0KlxuXHQqIEBwYXJhbSB7U3RyaW5nfSBuYW1lc3BhY2VzXG5cdCogQGFwaSBwdWJsaWNcblx0Ki9cblx0ZnVuY3Rpb24gZW5hYmxlKG5hbWVzcGFjZXMpIHtcblx0XHRjcmVhdGVEZWJ1Zy5zYXZlKG5hbWVzcGFjZXMpO1xuXHRcdGNyZWF0ZURlYnVnLm5hbWVzcGFjZXMgPSBuYW1lc3BhY2VzO1xuXG5cdFx0Y3JlYXRlRGVidWcubmFtZXMgPSBbXTtcblx0XHRjcmVhdGVEZWJ1Zy5za2lwcyA9IFtdO1xuXG5cdFx0bGV0IGk7XG5cdFx0Y29uc3Qgc3BsaXQgPSAodHlwZW9mIG5hbWVzcGFjZXMgPT09ICdzdHJpbmcnID8gbmFtZXNwYWNlcyA6ICcnKS5zcGxpdCgvW1xccyxdKy8pO1xuXHRcdGNvbnN0IGxlbiA9IHNwbGl0Lmxlbmd0aDtcblxuXHRcdGZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykge1xuXHRcdFx0aWYgKCFzcGxpdFtpXSkge1xuXHRcdFx0XHQvLyBpZ25vcmUgZW1wdHkgc3RyaW5nc1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblxuXHRcdFx0bmFtZXNwYWNlcyA9IHNwbGl0W2ldLnJlcGxhY2UoL1xcKi9nLCAnLio/Jyk7XG5cblx0XHRcdGlmIChuYW1lc3BhY2VzWzBdID09PSAnLScpIHtcblx0XHRcdFx0Y3JlYXRlRGVidWcuc2tpcHMucHVzaChuZXcgUmVnRXhwKCdeJyArIG5hbWVzcGFjZXMuc2xpY2UoMSkgKyAnJCcpKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGNyZWF0ZURlYnVnLm5hbWVzLnB1c2gobmV3IFJlZ0V4cCgnXicgKyBuYW1lc3BhY2VzICsgJyQnKSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCogRGlzYWJsZSBkZWJ1ZyBvdXRwdXQuXG5cdCpcblx0KiBAcmV0dXJuIHtTdHJpbmd9IG5hbWVzcGFjZXNcblx0KiBAYXBpIHB1YmxpY1xuXHQqL1xuXHRmdW5jdGlvbiBkaXNhYmxlKCkge1xuXHRcdGNvbnN0IG5hbWVzcGFjZXMgPSBbXG5cdFx0XHQuLi5jcmVhdGVEZWJ1Zy5uYW1lcy5tYXAodG9OYW1lc3BhY2UpLFxuXHRcdFx0Li4uY3JlYXRlRGVidWcuc2tpcHMubWFwKHRvTmFtZXNwYWNlKS5tYXAobmFtZXNwYWNlID0+ICctJyArIG5hbWVzcGFjZSlcblx0XHRdLmpvaW4oJywnKTtcblx0XHRjcmVhdGVEZWJ1Zy5lbmFibGUoJycpO1xuXHRcdHJldHVybiBuYW1lc3BhY2VzO1xuXHR9XG5cblx0LyoqXG5cdCogUmV0dXJucyB0cnVlIGlmIHRoZSBnaXZlbiBtb2RlIG5hbWUgaXMgZW5hYmxlZCwgZmFsc2Ugb3RoZXJ3aXNlLlxuXHQqXG5cdCogQHBhcmFtIHtTdHJpbmd9IG5hbWVcblx0KiBAcmV0dXJuIHtCb29sZWFufVxuXHQqIEBhcGkgcHVibGljXG5cdCovXG5cdGZ1bmN0aW9uIGVuYWJsZWQobmFtZSkge1xuXHRcdGlmIChuYW1lW25hbWUubGVuZ3RoIC0gMV0gPT09ICcqJykge1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXG5cdFx0bGV0IGk7XG5cdFx0bGV0IGxlbjtcblxuXHRcdGZvciAoaSA9IDAsIGxlbiA9IGNyZWF0ZURlYnVnLnNraXBzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG5cdFx0XHRpZiAoY3JlYXRlRGVidWcuc2tpcHNbaV0udGVzdChuYW1lKSkge1xuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Zm9yIChpID0gMCwgbGVuID0gY3JlYXRlRGVidWcubmFtZXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcblx0XHRcdGlmIChjcmVhdGVEZWJ1Zy5uYW1lc1tpXS50ZXN0KG5hbWUpKSB7XG5cdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdC8qKlxuXHQqIENvbnZlcnQgcmVnZXhwIHRvIG5hbWVzcGFjZVxuXHQqXG5cdCogQHBhcmFtIHtSZWdFeHB9IHJlZ3hlcFxuXHQqIEByZXR1cm4ge1N0cmluZ30gbmFtZXNwYWNlXG5cdCogQGFwaSBwcml2YXRlXG5cdCovXG5cdGZ1bmN0aW9uIHRvTmFtZXNwYWNlKHJlZ2V4cCkge1xuXHRcdHJldHVybiByZWdleHAudG9TdHJpbmcoKVxuXHRcdFx0LnN1YnN0cmluZygyLCByZWdleHAudG9TdHJpbmcoKS5sZW5ndGggLSAyKVxuXHRcdFx0LnJlcGxhY2UoL1xcLlxcKlxcPyQvLCAnKicpO1xuXHR9XG5cblx0LyoqXG5cdCogQ29lcmNlIGB2YWxgLlxuXHQqXG5cdCogQHBhcmFtIHtNaXhlZH0gdmFsXG5cdCogQHJldHVybiB7TWl4ZWR9XG5cdCogQGFwaSBwcml2YXRlXG5cdCovXG5cdGZ1bmN0aW9uIGNvZXJjZSh2YWwpIHtcblx0XHRpZiAodmFsIGluc3RhbmNlb2YgRXJyb3IpIHtcblx0XHRcdHJldHVybiB2YWwuc3RhY2sgfHwgdmFsLm1lc3NhZ2U7XG5cdFx0fVxuXHRcdHJldHVybiB2YWw7XG5cdH1cblxuXHQvKipcblx0KiBYWFggRE8gTk9UIFVTRS4gVGhpcyBpcyBhIHRlbXBvcmFyeSBzdHViIGZ1bmN0aW9uLlxuXHQqIFhYWCBJdCBXSUxMIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgcmVsZWFzZS5cblx0Ki9cblx0ZnVuY3Rpb24gZGVzdHJveSgpIHtcblx0XHRjb25zb2xlLndhcm4oJ0luc3RhbmNlIG1ldGhvZCBgZGVidWcuZGVzdHJveSgpYCBpcyBkZXByZWNhdGVkIGFuZCBubyBsb25nZXIgZG9lcyBhbnl0aGluZy4gSXQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gb2YgYGRlYnVnYC4nKTtcblx0fVxuXG5cdGNyZWF0ZURlYnVnLmVuYWJsZShjcmVhdGVEZWJ1Zy5sb2FkKCkpO1xuXG5cdHJldHVybiBjcmVhdGVEZWJ1Zztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzZXR1cDtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5FUlJPUl9QQUNLRVQgPSBleHBvcnRzLlBBQ0tFVF9UWVBFU19SRVZFUlNFID0gZXhwb3J0cy5QQUNLRVRfVFlQRVMgPSB2b2lkIDA7XG5jb25zdCBQQUNLRVRfVFlQRVMgPSBPYmplY3QuY3JlYXRlKG51bGwpOyAvLyBubyBNYXAgPSBubyBwb2x5ZmlsbFxuZXhwb3J0cy5QQUNLRVRfVFlQRVMgPSBQQUNLRVRfVFlQRVM7XG5QQUNLRVRfVFlQRVNbXCJvcGVuXCJdID0gXCIwXCI7XG5QQUNLRVRfVFlQRVNbXCJjbG9zZVwiXSA9IFwiMVwiO1xuUEFDS0VUX1RZUEVTW1wicGluZ1wiXSA9IFwiMlwiO1xuUEFDS0VUX1RZUEVTW1wicG9uZ1wiXSA9IFwiM1wiO1xuUEFDS0VUX1RZUEVTW1wibWVzc2FnZVwiXSA9IFwiNFwiO1xuUEFDS0VUX1RZUEVTW1widXBncmFkZVwiXSA9IFwiNVwiO1xuUEFDS0VUX1RZUEVTW1wibm9vcFwiXSA9IFwiNlwiO1xuY29uc3QgUEFDS0VUX1RZUEVTX1JFVkVSU0UgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuZXhwb3J0cy5QQUNLRVRfVFlQRVNfUkVWRVJTRSA9IFBBQ0tFVF9UWVBFU19SRVZFUlNFO1xuT2JqZWN0LmtleXMoUEFDS0VUX1RZUEVTKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICBQQUNLRVRfVFlQRVNfUkVWRVJTRVtQQUNLRVRfVFlQRVNba2V5XV0gPSBrZXk7XG59KTtcbmNvbnN0IEVSUk9SX1BBQ0tFVCA9IHsgdHlwZTogXCJlcnJvclwiLCBkYXRhOiBcInBhcnNlciBlcnJvclwiIH07XG5leHBvcnRzLkVSUk9SX1BBQ0tFVCA9IEVSUk9SX1BBQ0tFVDtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5kZWNvZGVQYWNrZXQgPSB2b2lkIDA7XG5jb25zdCBjb21tb25zX2pzXzEgPSByZXF1aXJlKFwiLi9jb21tb25zLmpzXCIpO1xuY29uc3QgYmFzZTY0X2FycmF5YnVmZmVyX2pzXzEgPSByZXF1aXJlKFwiLi9jb250cmliL2Jhc2U2NC1hcnJheWJ1ZmZlci5qc1wiKTtcbmNvbnN0IHdpdGhOYXRpdmVBcnJheUJ1ZmZlciA9IHR5cGVvZiBBcnJheUJ1ZmZlciA9PT0gXCJmdW5jdGlvblwiO1xuY29uc3QgZGVjb2RlUGFja2V0ID0gKGVuY29kZWRQYWNrZXQsIGJpbmFyeVR5cGUpID0+IHtcbiAgICBpZiAodHlwZW9mIGVuY29kZWRQYWNrZXQgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGU6IFwibWVzc2FnZVwiLFxuICAgICAgICAgICAgZGF0YTogbWFwQmluYXJ5KGVuY29kZWRQYWNrZXQsIGJpbmFyeVR5cGUpLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBjb25zdCB0eXBlID0gZW5jb2RlZFBhY2tldC5jaGFyQXQoMCk7XG4gICAgaWYgKHR5cGUgPT09IFwiYlwiKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiBcIm1lc3NhZ2VcIixcbiAgICAgICAgICAgIGRhdGE6IGRlY29kZUJhc2U2NFBhY2tldChlbmNvZGVkUGFja2V0LnN1YnN0cmluZygxKSwgYmluYXJ5VHlwZSksXG4gICAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0IHBhY2tldFR5cGUgPSBjb21tb25zX2pzXzEuUEFDS0VUX1RZUEVTX1JFVkVSU0VbdHlwZV07XG4gICAgaWYgKCFwYWNrZXRUeXBlKSB7XG4gICAgICAgIHJldHVybiBjb21tb25zX2pzXzEuRVJST1JfUEFDS0VUO1xuICAgIH1cbiAgICByZXR1cm4gZW5jb2RlZFBhY2tldC5sZW5ndGggPiAxXG4gICAgICAgID8ge1xuICAgICAgICAgICAgdHlwZTogY29tbW9uc19qc18xLlBBQ0tFVF9UWVBFU19SRVZFUlNFW3R5cGVdLFxuICAgICAgICAgICAgZGF0YTogZW5jb2RlZFBhY2tldC5zdWJzdHJpbmcoMSksXG4gICAgICAgIH1cbiAgICAgICAgOiB7XG4gICAgICAgICAgICB0eXBlOiBjb21tb25zX2pzXzEuUEFDS0VUX1RZUEVTX1JFVkVSU0VbdHlwZV0sXG4gICAgICAgIH07XG59O1xuZXhwb3J0cy5kZWNvZGVQYWNrZXQgPSBkZWNvZGVQYWNrZXQ7XG5jb25zdCBkZWNvZGVCYXNlNjRQYWNrZXQgPSAoZGF0YSwgYmluYXJ5VHlwZSkgPT4ge1xuICAgIGlmICh3aXRoTmF0aXZlQXJyYXlCdWZmZXIpIHtcbiAgICAgICAgY29uc3QgZGVjb2RlZCA9ICgwLCBiYXNlNjRfYXJyYXlidWZmZXJfanNfMS5kZWNvZGUpKGRhdGEpO1xuICAgICAgICByZXR1cm4gbWFwQmluYXJ5KGRlY29kZWQsIGJpbmFyeVR5cGUpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHsgYmFzZTY0OiB0cnVlLCBkYXRhIH07IC8vIGZhbGxiYWNrIGZvciBvbGQgYnJvd3NlcnNcbiAgICB9XG59O1xuY29uc3QgbWFwQmluYXJ5ID0gKGRhdGEsIGJpbmFyeVR5cGUpID0+IHtcbiAgICBzd2l0Y2ggKGJpbmFyeVR5cGUpIHtcbiAgICAgICAgY2FzZSBcImJsb2JcIjpcbiAgICAgICAgICAgIGlmIChkYXRhIGluc3RhbmNlb2YgQmxvYikge1xuICAgICAgICAgICAgICAgIC8vIGZyb20gV2ViU29ja2V0ICsgYmluYXJ5VHlwZSBcImJsb2JcIlxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gZnJvbSBIVFRQIGxvbmctcG9sbGluZyBvciBXZWJUcmFuc3BvcnRcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEJsb2IoW2RhdGFdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgY2FzZSBcImFycmF5YnVmZmVyXCI6XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBpZiAoZGF0YSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSB7XG4gICAgICAgICAgICAgICAgLy8gZnJvbSBIVFRQIGxvbmctcG9sbGluZyAoYmFzZTY0KSBvciBXZWJTb2NrZXQgKyBiaW5hcnlUeXBlIFwiYXJyYXlidWZmZXJcIlxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gZnJvbSBXZWJUcmFuc3BvcnQgKFVpbnQ4QXJyYXkpXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGEuYnVmZmVyO1xuICAgICAgICAgICAgfVxuICAgIH1cbn07XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuZW5jb2RlUGFja2V0ID0gdm9pZCAwO1xuZXhwb3J0cy5lbmNvZGVQYWNrZXRUb0JpbmFyeSA9IGVuY29kZVBhY2tldFRvQmluYXJ5O1xuY29uc3QgY29tbW9uc19qc18xID0gcmVxdWlyZShcIi4vY29tbW9ucy5qc1wiKTtcbmNvbnN0IHdpdGhOYXRpdmVCbG9iID0gdHlwZW9mIEJsb2IgPT09IFwiZnVuY3Rpb25cIiB8fFxuICAgICh0eXBlb2YgQmxvYiAhPT0gXCJ1bmRlZmluZWRcIiAmJlxuICAgICAgICBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoQmxvYikgPT09IFwiW29iamVjdCBCbG9iQ29uc3RydWN0b3JdXCIpO1xuY29uc3Qgd2l0aE5hdGl2ZUFycmF5QnVmZmVyID0gdHlwZW9mIEFycmF5QnVmZmVyID09PSBcImZ1bmN0aW9uXCI7XG4vLyBBcnJheUJ1ZmZlci5pc1ZpZXcgbWV0aG9kIGlzIG5vdCBkZWZpbmVkIGluIElFMTBcbmNvbnN0IGlzVmlldyA9IChvYmopID0+IHtcbiAgICByZXR1cm4gdHlwZW9mIEFycmF5QnVmZmVyLmlzVmlldyA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgID8gQXJyYXlCdWZmZXIuaXNWaWV3KG9iailcbiAgICAgICAgOiBvYmogJiYgb2JqLmJ1ZmZlciBpbnN0YW5jZW9mIEFycmF5QnVmZmVyO1xufTtcbmNvbnN0IGVuY29kZVBhY2tldCA9ICh7IHR5cGUsIGRhdGEgfSwgc3VwcG9ydHNCaW5hcnksIGNhbGxiYWNrKSA9PiB7XG4gICAgaWYgKHdpdGhOYXRpdmVCbG9iICYmIGRhdGEgaW5zdGFuY2VvZiBCbG9iKSB7XG4gICAgICAgIGlmIChzdXBwb3J0c0JpbmFyeSkge1xuICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKGRhdGEpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGVuY29kZUJsb2JBc0Jhc2U2NChkYXRhLCBjYWxsYmFjayk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSBpZiAod2l0aE5hdGl2ZUFycmF5QnVmZmVyICYmXG4gICAgICAgIChkYXRhIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIgfHwgaXNWaWV3KGRhdGEpKSkge1xuICAgICAgICBpZiAoc3VwcG9ydHNCaW5hcnkpIHtcbiAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhkYXRhKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBlbmNvZGVCbG9iQXNCYXNlNjQobmV3IEJsb2IoW2RhdGFdKSwgY2FsbGJhY2spO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIHBsYWluIHN0cmluZ1xuICAgIHJldHVybiBjYWxsYmFjayhjb21tb25zX2pzXzEuUEFDS0VUX1RZUEVTW3R5cGVdICsgKGRhdGEgfHwgXCJcIikpO1xufTtcbmV4cG9ydHMuZW5jb2RlUGFja2V0ID0gZW5jb2RlUGFja2V0O1xuY29uc3QgZW5jb2RlQmxvYkFzQmFzZTY0ID0gKGRhdGEsIGNhbGxiYWNrKSA9PiB7XG4gICAgY29uc3QgZmlsZVJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgZmlsZVJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSBmaWxlUmVhZGVyLnJlc3VsdC5zcGxpdChcIixcIilbMV07XG4gICAgICAgIGNhbGxiYWNrKFwiYlwiICsgKGNvbnRlbnQgfHwgXCJcIikpO1xuICAgIH07XG4gICAgcmV0dXJuIGZpbGVSZWFkZXIucmVhZEFzRGF0YVVSTChkYXRhKTtcbn07XG5mdW5jdGlvbiB0b0FycmF5KGRhdGEpIHtcbiAgICBpZiAoZGF0YSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpIHtcbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuICAgIGVsc2UgaWYgKGRhdGEgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikge1xuICAgICAgICByZXR1cm4gbmV3IFVpbnQ4QXJyYXkoZGF0YSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICByZXR1cm4gbmV3IFVpbnQ4QXJyYXkoZGF0YS5idWZmZXIsIGRhdGEuYnl0ZU9mZnNldCwgZGF0YS5ieXRlTGVuZ3RoKTtcbiAgICB9XG59XG5sZXQgVEVYVF9FTkNPREVSO1xuZnVuY3Rpb24gZW5jb2RlUGFja2V0VG9CaW5hcnkocGFja2V0LCBjYWxsYmFjaykge1xuICAgIGlmICh3aXRoTmF0aXZlQmxvYiAmJiBwYWNrZXQuZGF0YSBpbnN0YW5jZW9mIEJsb2IpIHtcbiAgICAgICAgcmV0dXJuIHBhY2tldC5kYXRhLmFycmF5QnVmZmVyKCkudGhlbih0b0FycmF5KS50aGVuKGNhbGxiYWNrKTtcbiAgICB9XG4gICAgZWxzZSBpZiAod2l0aE5hdGl2ZUFycmF5QnVmZmVyICYmXG4gICAgICAgIChwYWNrZXQuZGF0YSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyIHx8IGlzVmlldyhwYWNrZXQuZGF0YSkpKSB7XG4gICAgICAgIHJldHVybiBjYWxsYmFjayh0b0FycmF5KHBhY2tldC5kYXRhKSk7XG4gICAgfVxuICAgIGVuY29kZVBhY2tldChwYWNrZXQsIGZhbHNlLCAoZW5jb2RlZCkgPT4ge1xuICAgICAgICBpZiAoIVRFWFRfRU5DT0RFUikge1xuICAgICAgICAgICAgVEVYVF9FTkNPREVSID0gbmV3IFRleHRFbmNvZGVyKCk7XG4gICAgICAgIH1cbiAgICAgICAgY2FsbGJhY2soVEVYVF9FTkNPREVSLmVuY29kZShlbmNvZGVkKSk7XG4gICAgfSk7XG59XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuZGVjb2RlID0gZXhwb3J0cy5lbmNvZGUgPSB2b2lkIDA7XG4vLyBpbXBvcnRlZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9zb2NrZXRpby9iYXNlNjQtYXJyYXlidWZmZXJcbmNvbnN0IGNoYXJzID0gJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8nO1xuLy8gVXNlIGEgbG9va3VwIHRhYmxlIHRvIGZpbmQgdGhlIGluZGV4LlxuY29uc3QgbG9va3VwID0gdHlwZW9mIFVpbnQ4QXJyYXkgPT09ICd1bmRlZmluZWQnID8gW10gOiBuZXcgVWludDhBcnJheSgyNTYpO1xuZm9yIChsZXQgaSA9IDA7IGkgPCBjaGFycy5sZW5ndGg7IGkrKykge1xuICAgIGxvb2t1cFtjaGFycy5jaGFyQ29kZUF0KGkpXSA9IGk7XG59XG5jb25zdCBlbmNvZGUgPSAoYXJyYXlidWZmZXIpID0+IHtcbiAgICBsZXQgYnl0ZXMgPSBuZXcgVWludDhBcnJheShhcnJheWJ1ZmZlciksIGksIGxlbiA9IGJ5dGVzLmxlbmd0aCwgYmFzZTY0ID0gJyc7XG4gICAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSArPSAzKSB7XG4gICAgICAgIGJhc2U2NCArPSBjaGFyc1tieXRlc1tpXSA+PiAyXTtcbiAgICAgICAgYmFzZTY0ICs9IGNoYXJzWygoYnl0ZXNbaV0gJiAzKSA8PCA0KSB8IChieXRlc1tpICsgMV0gPj4gNCldO1xuICAgICAgICBiYXNlNjQgKz0gY2hhcnNbKChieXRlc1tpICsgMV0gJiAxNSkgPDwgMikgfCAoYnl0ZXNbaSArIDJdID4+IDYpXTtcbiAgICAgICAgYmFzZTY0ICs9IGNoYXJzW2J5dGVzW2kgKyAyXSAmIDYzXTtcbiAgICB9XG4gICAgaWYgKGxlbiAlIDMgPT09IDIpIHtcbiAgICAgICAgYmFzZTY0ID0gYmFzZTY0LnN1YnN0cmluZygwLCBiYXNlNjQubGVuZ3RoIC0gMSkgKyAnPSc7XG4gICAgfVxuICAgIGVsc2UgaWYgKGxlbiAlIDMgPT09IDEpIHtcbiAgICAgICAgYmFzZTY0ID0gYmFzZTY0LnN1YnN0cmluZygwLCBiYXNlNjQubGVuZ3RoIC0gMikgKyAnPT0nO1xuICAgIH1cbiAgICByZXR1cm4gYmFzZTY0O1xufTtcbmV4cG9ydHMuZW5jb2RlID0gZW5jb2RlO1xuY29uc3QgZGVjb2RlID0gKGJhc2U2NCkgPT4ge1xuICAgIGxldCBidWZmZXJMZW5ndGggPSBiYXNlNjQubGVuZ3RoICogMC43NSwgbGVuID0gYmFzZTY0Lmxlbmd0aCwgaSwgcCA9IDAsIGVuY29kZWQxLCBlbmNvZGVkMiwgZW5jb2RlZDMsIGVuY29kZWQ0O1xuICAgIGlmIChiYXNlNjRbYmFzZTY0Lmxlbmd0aCAtIDFdID09PSAnPScpIHtcbiAgICAgICAgYnVmZmVyTGVuZ3RoLS07XG4gICAgICAgIGlmIChiYXNlNjRbYmFzZTY0Lmxlbmd0aCAtIDJdID09PSAnPScpIHtcbiAgICAgICAgICAgIGJ1ZmZlckxlbmd0aC0tO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGFycmF5YnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKGJ1ZmZlckxlbmd0aCksIGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoYXJyYXlidWZmZXIpO1xuICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkgKz0gNCkge1xuICAgICAgICBlbmNvZGVkMSA9IGxvb2t1cFtiYXNlNjQuY2hhckNvZGVBdChpKV07XG4gICAgICAgIGVuY29kZWQyID0gbG9va3VwW2Jhc2U2NC5jaGFyQ29kZUF0KGkgKyAxKV07XG4gICAgICAgIGVuY29kZWQzID0gbG9va3VwW2Jhc2U2NC5jaGFyQ29kZUF0KGkgKyAyKV07XG4gICAgICAgIGVuY29kZWQ0ID0gbG9va3VwW2Jhc2U2NC5jaGFyQ29kZUF0KGkgKyAzKV07XG4gICAgICAgIGJ5dGVzW3ArK10gPSAoZW5jb2RlZDEgPDwgMikgfCAoZW5jb2RlZDIgPj4gNCk7XG4gICAgICAgIGJ5dGVzW3ArK10gPSAoKGVuY29kZWQyICYgMTUpIDw8IDQpIHwgKGVuY29kZWQzID4+IDIpO1xuICAgICAgICBieXRlc1twKytdID0gKChlbmNvZGVkMyAmIDMpIDw8IDYpIHwgKGVuY29kZWQ0ICYgNjMpO1xuICAgIH1cbiAgICByZXR1cm4gYXJyYXlidWZmZXI7XG59O1xuZXhwb3J0cy5kZWNvZGUgPSBkZWNvZGU7XG4iLCJcInVzZSBzdHJpY3RcIjtcbi8vIGJyb3dzZXIgc2hpbSBmb3IgeG1saHR0cHJlcXVlc3QgbW9kdWxlXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmNyZWF0ZUNvb2tpZUphciA9IGV4cG9ydHMuWEhSID0gdm9pZCAwO1xuY29uc3QgaGFzX2NvcnNfanNfMSA9IHJlcXVpcmUoXCIuLi9jb250cmliL2hhcy1jb3JzLmpzXCIpO1xuY29uc3QgZ2xvYmFsVGhpc19qc18xID0gcmVxdWlyZShcIi4uL2dsb2JhbFRoaXMuanNcIik7XG5mdW5jdGlvbiBYSFIob3B0cykge1xuICAgIGNvbnN0IHhkb21haW4gPSBvcHRzLnhkb21haW47XG4gICAgLy8gWE1MSHR0cFJlcXVlc3QgY2FuIGJlIGRpc2FibGVkIG9uIElFXG4gICAgdHJ5IHtcbiAgICAgICAgaWYgKFwidW5kZWZpbmVkXCIgIT09IHR5cGVvZiBYTUxIdHRwUmVxdWVzdCAmJiAoIXhkb21haW4gfHwgaGFzX2NvcnNfanNfMS5oYXNDT1JTKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNhdGNoIChlKSB7IH1cbiAgICBpZiAoIXhkb21haW4pIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgZ2xvYmFsVGhpc19qc18xLmdsb2JhbFRoaXNTaGltW1tcIkFjdGl2ZVwiXS5jb25jYXQoXCJPYmplY3RcIikuam9pbihcIlhcIildKFwiTWljcm9zb2Z0LlhNTEhUVFBcIik7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHsgfVxuICAgIH1cbn1cbmV4cG9ydHMuWEhSID0gWEhSO1xuZnVuY3Rpb24gY3JlYXRlQ29va2llSmFyKCkgeyB9XG5leHBvcnRzLmNyZWF0ZUNvb2tpZUphciA9IGNyZWF0ZUNvb2tpZUphcjtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9fY3JlYXRlQmluZGluZyA9ICh0aGlzICYmIHRoaXMuX19jcmVhdGVCaW5kaW5nKSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH0pO1xufSkgOiAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIG9bazJdID0gbVtrXTtcbn0pKTtcbnZhciBfX3NldE1vZHVsZURlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9fc2V0TW9kdWxlRGVmYXVsdCkgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgdikge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBcImRlZmF1bHRcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdiB9KTtcbn0pIDogZnVuY3Rpb24obywgdikge1xuICAgIG9bXCJkZWZhdWx0XCJdID0gdjtcbn0pO1xudmFyIF9faW1wb3J0U3RhciA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnRTdGFyKSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDtcbiAgICB2YXIgcmVzdWx0ID0ge307XG4gICAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrIGluIG1vZCkgaWYgKGsgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChtb2QsIGspKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGspO1xuICAgIF9fc2V0TW9kdWxlRGVmYXVsdChyZXN1bHQsIG1vZCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLk1hbmFnZXIgPSB2b2lkIDA7XG5jb25zdCBlbmdpbmVfaW9fY2xpZW50XzEgPSByZXF1aXJlKFwiZW5naW5lLmlvLWNsaWVudFwiKTtcbmNvbnN0IHNvY2tldF9qc18xID0gcmVxdWlyZShcIi4vc29ja2V0LmpzXCIpO1xuY29uc3QgcGFyc2VyID0gX19pbXBvcnRTdGFyKHJlcXVpcmUoXCJzb2NrZXQuaW8tcGFyc2VyXCIpKTtcbmNvbnN0IG9uX2pzXzEgPSByZXF1aXJlKFwiLi9vbi5qc1wiKTtcbmNvbnN0IGJhY2tvMl9qc18xID0gcmVxdWlyZShcIi4vY29udHJpYi9iYWNrbzIuanNcIik7XG5jb25zdCBjb21wb25lbnRfZW1pdHRlcl8xID0gcmVxdWlyZShcIkBzb2NrZXQuaW8vY29tcG9uZW50LWVtaXR0ZXJcIik7XG5jb25zdCBkZWJ1Z18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJkZWJ1Z1wiKSk7IC8vIGRlYnVnKClcbmNvbnN0IGRlYnVnID0gZGVidWdfMS5kZWZhdWx0KFwic29ja2V0LmlvLWNsaWVudDptYW5hZ2VyXCIpOyAvLyBkZWJ1ZygpXG5jbGFzcyBNYW5hZ2VyIGV4dGVuZHMgY29tcG9uZW50X2VtaXR0ZXJfMS5FbWl0dGVyIHtcbiAgICBjb25zdHJ1Y3Rvcih1cmksIG9wdHMpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLm5zcHMgPSB7fTtcbiAgICAgICAgdGhpcy5zdWJzID0gW107XG4gICAgICAgIGlmICh1cmkgJiYgXCJvYmplY3RcIiA9PT0gdHlwZW9mIHVyaSkge1xuICAgICAgICAgICAgb3B0cyA9IHVyaTtcbiAgICAgICAgICAgIHVyaSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBvcHRzID0gb3B0cyB8fCB7fTtcbiAgICAgICAgb3B0cy5wYXRoID0gb3B0cy5wYXRoIHx8IFwiL3NvY2tldC5pb1wiO1xuICAgICAgICB0aGlzLm9wdHMgPSBvcHRzO1xuICAgICAgICBlbmdpbmVfaW9fY2xpZW50XzEuaW5zdGFsbFRpbWVyRnVuY3Rpb25zKHRoaXMsIG9wdHMpO1xuICAgICAgICB0aGlzLnJlY29ubmVjdGlvbihvcHRzLnJlY29ubmVjdGlvbiAhPT0gZmFsc2UpO1xuICAgICAgICB0aGlzLnJlY29ubmVjdGlvbkF0dGVtcHRzKG9wdHMucmVjb25uZWN0aW9uQXR0ZW1wdHMgfHwgSW5maW5pdHkpO1xuICAgICAgICB0aGlzLnJlY29ubmVjdGlvbkRlbGF5KG9wdHMucmVjb25uZWN0aW9uRGVsYXkgfHwgMTAwMCk7XG4gICAgICAgIHRoaXMucmVjb25uZWN0aW9uRGVsYXlNYXgob3B0cy5yZWNvbm5lY3Rpb25EZWxheU1heCB8fCA1MDAwKTtcbiAgICAgICAgdGhpcy5yYW5kb21pemF0aW9uRmFjdG9yKChfYSA9IG9wdHMucmFuZG9taXphdGlvbkZhY3RvcikgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogMC41KTtcbiAgICAgICAgdGhpcy5iYWNrb2ZmID0gbmV3IGJhY2tvMl9qc18xLkJhY2tvZmYoe1xuICAgICAgICAgICAgbWluOiB0aGlzLnJlY29ubmVjdGlvbkRlbGF5KCksXG4gICAgICAgICAgICBtYXg6IHRoaXMucmVjb25uZWN0aW9uRGVsYXlNYXgoKSxcbiAgICAgICAgICAgIGppdHRlcjogdGhpcy5yYW5kb21pemF0aW9uRmFjdG9yKCksXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnRpbWVvdXQobnVsbCA9PSBvcHRzLnRpbWVvdXQgPyAyMDAwMCA6IG9wdHMudGltZW91dCk7XG4gICAgICAgIHRoaXMuX3JlYWR5U3RhdGUgPSBcImNsb3NlZFwiO1xuICAgICAgICB0aGlzLnVyaSA9IHVyaTtcbiAgICAgICAgY29uc3QgX3BhcnNlciA9IG9wdHMucGFyc2VyIHx8IHBhcnNlcjtcbiAgICAgICAgdGhpcy5lbmNvZGVyID0gbmV3IF9wYXJzZXIuRW5jb2RlcigpO1xuICAgICAgICB0aGlzLmRlY29kZXIgPSBuZXcgX3BhcnNlci5EZWNvZGVyKCk7XG4gICAgICAgIHRoaXMuX2F1dG9Db25uZWN0ID0gb3B0cy5hdXRvQ29ubmVjdCAhPT0gZmFsc2U7XG4gICAgICAgIGlmICh0aGlzLl9hdXRvQ29ubmVjdClcbiAgICAgICAgICAgIHRoaXMub3BlbigpO1xuICAgIH1cbiAgICByZWNvbm5lY3Rpb24odikge1xuICAgICAgICBpZiAoIWFyZ3VtZW50cy5sZW5ndGgpXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fcmVjb25uZWN0aW9uO1xuICAgICAgICB0aGlzLl9yZWNvbm5lY3Rpb24gPSAhIXY7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICByZWNvbm5lY3Rpb25BdHRlbXB0cyh2KSB7XG4gICAgICAgIGlmICh2ID09PSB1bmRlZmluZWQpXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fcmVjb25uZWN0aW9uQXR0ZW1wdHM7XG4gICAgICAgIHRoaXMuX3JlY29ubmVjdGlvbkF0dGVtcHRzID0gdjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIHJlY29ubmVjdGlvbkRlbGF5KHYpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAodiA9PT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3JlY29ubmVjdGlvbkRlbGF5O1xuICAgICAgICB0aGlzLl9yZWNvbm5lY3Rpb25EZWxheSA9IHY7XG4gICAgICAgIChfYSA9IHRoaXMuYmFja29mZikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnNldE1pbih2KTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIHJhbmRvbWl6YXRpb25GYWN0b3Iodikge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICh2ID09PSB1bmRlZmluZWQpXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fcmFuZG9taXphdGlvbkZhY3RvcjtcbiAgICAgICAgdGhpcy5fcmFuZG9taXphdGlvbkZhY3RvciA9IHY7XG4gICAgICAgIChfYSA9IHRoaXMuYmFja29mZikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnNldEppdHRlcih2KTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIHJlY29ubmVjdGlvbkRlbGF5TWF4KHYpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAodiA9PT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3JlY29ubmVjdGlvbkRlbGF5TWF4O1xuICAgICAgICB0aGlzLl9yZWNvbm5lY3Rpb25EZWxheU1heCA9IHY7XG4gICAgICAgIChfYSA9IHRoaXMuYmFja29mZikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnNldE1heCh2KTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIHRpbWVvdXQodikge1xuICAgICAgICBpZiAoIWFyZ3VtZW50cy5sZW5ndGgpXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fdGltZW91dDtcbiAgICAgICAgdGhpcy5fdGltZW91dCA9IHY7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTdGFydHMgdHJ5aW5nIHRvIHJlY29ubmVjdCBpZiByZWNvbm5lY3Rpb24gaXMgZW5hYmxlZCBhbmQgd2UgaGF2ZSBub3RcbiAgICAgKiBzdGFydGVkIHJlY29ubmVjdGluZyB5ZXRcbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgbWF5YmVSZWNvbm5lY3RPbk9wZW4oKSB7XG4gICAgICAgIC8vIE9ubHkgdHJ5IHRvIHJlY29ubmVjdCBpZiBpdCdzIHRoZSBmaXJzdCB0aW1lIHdlJ3JlIGNvbm5lY3RpbmdcbiAgICAgICAgaWYgKCF0aGlzLl9yZWNvbm5lY3RpbmcgJiZcbiAgICAgICAgICAgIHRoaXMuX3JlY29ubmVjdGlvbiAmJlxuICAgICAgICAgICAgdGhpcy5iYWNrb2ZmLmF0dGVtcHRzID09PSAwKSB7XG4gICAgICAgICAgICAvLyBrZWVwcyByZWNvbm5lY3Rpb24gZnJvbSBmaXJpbmcgdHdpY2UgZm9yIHRoZSBzYW1lIHJlY29ubmVjdGlvbiBsb29wXG4gICAgICAgICAgICB0aGlzLnJlY29ubmVjdCgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGN1cnJlbnQgdHJhbnNwb3J0IGBzb2NrZXRgLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZm4gLSBvcHRpb25hbCwgY2FsbGJhY2tcbiAgICAgKiBAcmV0dXJuIHNlbGZcbiAgICAgKiBAcHVibGljXG4gICAgICovXG4gICAgb3Blbihmbikge1xuICAgICAgICBkZWJ1ZyhcInJlYWR5U3RhdGUgJXNcIiwgdGhpcy5fcmVhZHlTdGF0ZSk7XG4gICAgICAgIGlmICh+dGhpcy5fcmVhZHlTdGF0ZS5pbmRleE9mKFwib3BlblwiKSlcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICBkZWJ1ZyhcIm9wZW5pbmcgJXNcIiwgdGhpcy51cmkpO1xuICAgICAgICB0aGlzLmVuZ2luZSA9IG5ldyBlbmdpbmVfaW9fY2xpZW50XzEuU29ja2V0KHRoaXMudXJpLCB0aGlzLm9wdHMpO1xuICAgICAgICBjb25zdCBzb2NrZXQgPSB0aGlzLmVuZ2luZTtcbiAgICAgICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgICAgIHRoaXMuX3JlYWR5U3RhdGUgPSBcIm9wZW5pbmdcIjtcbiAgICAgICAgdGhpcy5za2lwUmVjb25uZWN0ID0gZmFsc2U7XG4gICAgICAgIC8vIGVtaXQgYG9wZW5gXG4gICAgICAgIGNvbnN0IG9wZW5TdWJEZXN0cm95ID0gb25fanNfMS5vbihzb2NrZXQsIFwib3BlblwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBzZWxmLm9ub3BlbigpO1xuICAgICAgICAgICAgZm4gJiYgZm4oKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IG9uRXJyb3IgPSAoZXJyKSA9PiB7XG4gICAgICAgICAgICBkZWJ1ZyhcImVycm9yXCIpO1xuICAgICAgICAgICAgdGhpcy5jbGVhbnVwKCk7XG4gICAgICAgICAgICB0aGlzLl9yZWFkeVN0YXRlID0gXCJjbG9zZWRcIjtcbiAgICAgICAgICAgIHRoaXMuZW1pdFJlc2VydmVkKFwiZXJyb3JcIiwgZXJyKTtcbiAgICAgICAgICAgIGlmIChmbikge1xuICAgICAgICAgICAgICAgIGZuKGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBPbmx5IGRvIHRoaXMgaWYgdGhlcmUgaXMgbm8gZm4gdG8gaGFuZGxlIHRoZSBlcnJvclxuICAgICAgICAgICAgICAgIHRoaXMubWF5YmVSZWNvbm5lY3RPbk9wZW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgLy8gZW1pdCBgZXJyb3JgXG4gICAgICAgIGNvbnN0IGVycm9yU3ViID0gb25fanNfMS5vbihzb2NrZXQsIFwiZXJyb3JcIiwgb25FcnJvcik7XG4gICAgICAgIGlmIChmYWxzZSAhPT0gdGhpcy5fdGltZW91dCkge1xuICAgICAgICAgICAgY29uc3QgdGltZW91dCA9IHRoaXMuX3RpbWVvdXQ7XG4gICAgICAgICAgICBkZWJ1ZyhcImNvbm5lY3QgYXR0ZW1wdCB3aWxsIHRpbWVvdXQgYWZ0ZXIgJWRcIiwgdGltZW91dCk7XG4gICAgICAgICAgICAvLyBzZXQgdGltZXJcbiAgICAgICAgICAgIGNvbnN0IHRpbWVyID0gdGhpcy5zZXRUaW1lb3V0Rm4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIGRlYnVnKFwiY29ubmVjdCBhdHRlbXB0IHRpbWVkIG91dCBhZnRlciAlZFwiLCB0aW1lb3V0KTtcbiAgICAgICAgICAgICAgICBvcGVuU3ViRGVzdHJveSgpO1xuICAgICAgICAgICAgICAgIG9uRXJyb3IobmV3IEVycm9yKFwidGltZW91dFwiKSk7XG4gICAgICAgICAgICAgICAgc29ja2V0LmNsb3NlKCk7XG4gICAgICAgICAgICB9LCB0aW1lb3V0KTtcbiAgICAgICAgICAgIGlmICh0aGlzLm9wdHMuYXV0b1VucmVmKSB7XG4gICAgICAgICAgICAgICAgdGltZXIudW5yZWYoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc3Vicy5wdXNoKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsZWFyVGltZW91dEZuKHRpbWVyKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3Vicy5wdXNoKG9wZW5TdWJEZXN0cm95KTtcbiAgICAgICAgdGhpcy5zdWJzLnB1c2goZXJyb3JTdWIpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogQWxpYXMgZm9yIG9wZW4oKVxuICAgICAqXG4gICAgICogQHJldHVybiBzZWxmXG4gICAgICogQHB1YmxpY1xuICAgICAqL1xuICAgIGNvbm5lY3QoZm4pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3Blbihmbik7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENhbGxlZCB1cG9uIHRyYW5zcG9ydCBvcGVuLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBvbm9wZW4oKSB7XG4gICAgICAgIGRlYnVnKFwib3BlblwiKTtcbiAgICAgICAgLy8gY2xlYXIgb2xkIHN1YnNcbiAgICAgICAgdGhpcy5jbGVhbnVwKCk7XG4gICAgICAgIC8vIG1hcmsgYXMgb3BlblxuICAgICAgICB0aGlzLl9yZWFkeVN0YXRlID0gXCJvcGVuXCI7XG4gICAgICAgIHRoaXMuZW1pdFJlc2VydmVkKFwib3BlblwiKTtcbiAgICAgICAgLy8gYWRkIG5ldyBzdWJzXG4gICAgICAgIGNvbnN0IHNvY2tldCA9IHRoaXMuZW5naW5lO1xuICAgICAgICB0aGlzLnN1YnMucHVzaChvbl9qc18xLm9uKHNvY2tldCwgXCJwaW5nXCIsIHRoaXMub25waW5nLmJpbmQodGhpcykpLCBvbl9qc18xLm9uKHNvY2tldCwgXCJkYXRhXCIsIHRoaXMub25kYXRhLmJpbmQodGhpcykpLCBvbl9qc18xLm9uKHNvY2tldCwgXCJlcnJvclwiLCB0aGlzLm9uZXJyb3IuYmluZCh0aGlzKSksIG9uX2pzXzEub24oc29ja2V0LCBcImNsb3NlXCIsIHRoaXMub25jbG9zZS5iaW5kKHRoaXMpKSwgb25fanNfMS5vbih0aGlzLmRlY29kZXIsIFwiZGVjb2RlZFwiLCB0aGlzLm9uZGVjb2RlZC5iaW5kKHRoaXMpKSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENhbGxlZCB1cG9uIGEgcGluZy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgb25waW5nKCkge1xuICAgICAgICB0aGlzLmVtaXRSZXNlcnZlZChcInBpbmdcIik7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENhbGxlZCB3aXRoIGRhdGEuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIG9uZGF0YShkYXRhKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0aGlzLmRlY29kZXIuYWRkKGRhdGEpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aGlzLm9uY2xvc2UoXCJwYXJzZSBlcnJvclwiLCBlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgd2hlbiBwYXJzZXIgZnVsbHkgZGVjb2RlcyBhIHBhY2tldC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgb25kZWNvZGVkKHBhY2tldCkge1xuICAgICAgICAvLyB0aGUgbmV4dFRpY2sgY2FsbCBwcmV2ZW50cyBhbiBleGNlcHRpb24gaW4gYSB1c2VyLXByb3ZpZGVkIGV2ZW50IGxpc3RlbmVyIGZyb20gdHJpZ2dlcmluZyBhIGRpc2Nvbm5lY3Rpb24gZHVlIHRvIGEgXCJwYXJzZSBlcnJvclwiXG4gICAgICAgIGVuZ2luZV9pb19jbGllbnRfMS5uZXh0VGljaygoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmVtaXRSZXNlcnZlZChcInBhY2tldFwiLCBwYWNrZXQpO1xuICAgICAgICB9LCB0aGlzLnNldFRpbWVvdXRGbik7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENhbGxlZCB1cG9uIHNvY2tldCBlcnJvci5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgb25lcnJvcihlcnIpIHtcbiAgICAgICAgZGVidWcoXCJlcnJvclwiLCBlcnIpO1xuICAgICAgICB0aGlzLmVtaXRSZXNlcnZlZChcImVycm9yXCIsIGVycik7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBuZXcgc29ja2V0IGZvciB0aGUgZ2l2ZW4gYG5zcGAuXG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHtTb2NrZXR9XG4gICAgICogQHB1YmxpY1xuICAgICAqL1xuICAgIHNvY2tldChuc3AsIG9wdHMpIHtcbiAgICAgICAgbGV0IHNvY2tldCA9IHRoaXMubnNwc1tuc3BdO1xuICAgICAgICBpZiAoIXNvY2tldCkge1xuICAgICAgICAgICAgc29ja2V0ID0gbmV3IHNvY2tldF9qc18xLlNvY2tldCh0aGlzLCBuc3AsIG9wdHMpO1xuICAgICAgICAgICAgdGhpcy5uc3BzW25zcF0gPSBzb2NrZXQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodGhpcy5fYXV0b0Nvbm5lY3QgJiYgIXNvY2tldC5hY3RpdmUpIHtcbiAgICAgICAgICAgIHNvY2tldC5jb25uZWN0KCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNvY2tldDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2FsbGVkIHVwb24gYSBzb2NrZXQgY2xvc2UuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc29ja2V0XG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBfZGVzdHJveShzb2NrZXQpIHtcbiAgICAgICAgY29uc3QgbnNwcyA9IE9iamVjdC5rZXlzKHRoaXMubnNwcyk7XG4gICAgICAgIGZvciAoY29uc3QgbnNwIG9mIG5zcHMpIHtcbiAgICAgICAgICAgIGNvbnN0IHNvY2tldCA9IHRoaXMubnNwc1tuc3BdO1xuICAgICAgICAgICAgaWYgKHNvY2tldC5hY3RpdmUpIHtcbiAgICAgICAgICAgICAgICBkZWJ1ZyhcInNvY2tldCAlcyBpcyBzdGlsbCBhY3RpdmUsIHNraXBwaW5nIGNsb3NlXCIsIG5zcCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2Nsb3NlKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFdyaXRlcyBhIHBhY2tldC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYWNrZXRcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIF9wYWNrZXQocGFja2V0KSB7XG4gICAgICAgIGRlYnVnKFwid3JpdGluZyBwYWNrZXQgJWpcIiwgcGFja2V0KTtcbiAgICAgICAgY29uc3QgZW5jb2RlZFBhY2tldHMgPSB0aGlzLmVuY29kZXIuZW5jb2RlKHBhY2tldCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZW5jb2RlZFBhY2tldHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHRoaXMuZW5naW5lLndyaXRlKGVuY29kZWRQYWNrZXRzW2ldLCBwYWNrZXQub3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2xlYW4gdXAgdHJhbnNwb3J0IHN1YnNjcmlwdGlvbnMgYW5kIHBhY2tldCBidWZmZXIuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIGNsZWFudXAoKSB7XG4gICAgICAgIGRlYnVnKFwiY2xlYW51cFwiKTtcbiAgICAgICAgdGhpcy5zdWJzLmZvckVhY2goKHN1YkRlc3Ryb3kpID0+IHN1YkRlc3Ryb3koKSk7XG4gICAgICAgIHRoaXMuc3Vicy5sZW5ndGggPSAwO1xuICAgICAgICB0aGlzLmRlY29kZXIuZGVzdHJveSgpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDbG9zZSB0aGUgY3VycmVudCBzb2NrZXQuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIF9jbG9zZSgpIHtcbiAgICAgICAgZGVidWcoXCJkaXNjb25uZWN0XCIpO1xuICAgICAgICB0aGlzLnNraXBSZWNvbm5lY3QgPSB0cnVlO1xuICAgICAgICB0aGlzLl9yZWNvbm5lY3RpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5vbmNsb3NlKFwiZm9yY2VkIGNsb3NlXCIpO1xuICAgICAgICBpZiAodGhpcy5lbmdpbmUpXG4gICAgICAgICAgICB0aGlzLmVuZ2luZS5jbG9zZSgpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBBbGlhcyBmb3IgY2xvc2UoKVxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBkaXNjb25uZWN0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2xvc2UoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2FsbGVkIHVwb24gZW5naW5lIGNsb3NlLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBvbmNsb3NlKHJlYXNvbiwgZGVzY3JpcHRpb24pIHtcbiAgICAgICAgZGVidWcoXCJjbG9zZWQgZHVlIHRvICVzXCIsIHJlYXNvbik7XG4gICAgICAgIHRoaXMuY2xlYW51cCgpO1xuICAgICAgICB0aGlzLmJhY2tvZmYucmVzZXQoKTtcbiAgICAgICAgdGhpcy5fcmVhZHlTdGF0ZSA9IFwiY2xvc2VkXCI7XG4gICAgICAgIHRoaXMuZW1pdFJlc2VydmVkKFwiY2xvc2VcIiwgcmVhc29uLCBkZXNjcmlwdGlvbik7XG4gICAgICAgIGlmICh0aGlzLl9yZWNvbm5lY3Rpb24gJiYgIXRoaXMuc2tpcFJlY29ubmVjdCkge1xuICAgICAgICAgICAgdGhpcy5yZWNvbm5lY3QoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBBdHRlbXB0IGEgcmVjb25uZWN0aW9uLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICByZWNvbm5lY3QoKSB7XG4gICAgICAgIGlmICh0aGlzLl9yZWNvbm5lY3RpbmcgfHwgdGhpcy5za2lwUmVjb25uZWN0KVxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgICAgICBpZiAodGhpcy5iYWNrb2ZmLmF0dGVtcHRzID49IHRoaXMuX3JlY29ubmVjdGlvbkF0dGVtcHRzKSB7XG4gICAgICAgICAgICBkZWJ1ZyhcInJlY29ubmVjdCBmYWlsZWRcIik7XG4gICAgICAgICAgICB0aGlzLmJhY2tvZmYucmVzZXQoKTtcbiAgICAgICAgICAgIHRoaXMuZW1pdFJlc2VydmVkKFwicmVjb25uZWN0X2ZhaWxlZFwiKTtcbiAgICAgICAgICAgIHRoaXMuX3JlY29ubmVjdGluZyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZGVsYXkgPSB0aGlzLmJhY2tvZmYuZHVyYXRpb24oKTtcbiAgICAgICAgICAgIGRlYnVnKFwid2lsbCB3YWl0ICVkbXMgYmVmb3JlIHJlY29ubmVjdCBhdHRlbXB0XCIsIGRlbGF5KTtcbiAgICAgICAgICAgIHRoaXMuX3JlY29ubmVjdGluZyA9IHRydWU7XG4gICAgICAgICAgICBjb25zdCB0aW1lciA9IHRoaXMuc2V0VGltZW91dEZuKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoc2VsZi5za2lwUmVjb25uZWN0KVxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgZGVidWcoXCJhdHRlbXB0aW5nIHJlY29ubmVjdFwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRSZXNlcnZlZChcInJlY29ubmVjdF9hdHRlbXB0XCIsIHNlbGYuYmFja29mZi5hdHRlbXB0cyk7XG4gICAgICAgICAgICAgICAgLy8gY2hlY2sgYWdhaW4gZm9yIHRoZSBjYXNlIHNvY2tldCBjbG9zZWQgaW4gYWJvdmUgZXZlbnRzXG4gICAgICAgICAgICAgICAgaWYgKHNlbGYuc2tpcFJlY29ubmVjdClcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIHNlbGYub3BlbigoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnKFwicmVjb25uZWN0IGF0dGVtcHQgZXJyb3JcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9yZWNvbm5lY3RpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucmVjb25uZWN0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVtaXRSZXNlcnZlZChcInJlY29ubmVjdF9lcnJvclwiLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVidWcoXCJyZWNvbm5lY3Qgc3VjY2Vzc1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYub25yZWNvbm5lY3QoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSwgZGVsYXkpO1xuICAgICAgICAgICAgaWYgKHRoaXMub3B0cy5hdXRvVW5yZWYpIHtcbiAgICAgICAgICAgICAgICB0aW1lci51bnJlZigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zdWJzLnB1c2goKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJUaW1lb3V0Rm4odGltZXIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2FsbGVkIHVwb24gc3VjY2Vzc2Z1bCByZWNvbm5lY3QuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIG9ucmVjb25uZWN0KCkge1xuICAgICAgICBjb25zdCBhdHRlbXB0ID0gdGhpcy5iYWNrb2ZmLmF0dGVtcHRzO1xuICAgICAgICB0aGlzLl9yZWNvbm5lY3RpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5iYWNrb2ZmLnJlc2V0KCk7XG4gICAgICAgIHRoaXMuZW1pdFJlc2VydmVkKFwicmVjb25uZWN0XCIsIGF0dGVtcHQpO1xuICAgIH1cbn1cbmV4cG9ydHMuTWFuYWdlciA9IE1hbmFnZXI7XG4iLCJcbi8qKlxuICogVGhpcyBpcyB0aGUgY29tbW9uIGxvZ2ljIGZvciBib3RoIHRoZSBOb2RlLmpzIGFuZCB3ZWIgYnJvd3NlclxuICogaW1wbGVtZW50YXRpb25zIG9mIGBkZWJ1ZygpYC5cbiAqL1xuXG5mdW5jdGlvbiBzZXR1cChlbnYpIHtcblx0Y3JlYXRlRGVidWcuZGVidWcgPSBjcmVhdGVEZWJ1Zztcblx0Y3JlYXRlRGVidWcuZGVmYXVsdCA9IGNyZWF0ZURlYnVnO1xuXHRjcmVhdGVEZWJ1Zy5jb2VyY2UgPSBjb2VyY2U7XG5cdGNyZWF0ZURlYnVnLmRpc2FibGUgPSBkaXNhYmxlO1xuXHRjcmVhdGVEZWJ1Zy5lbmFibGUgPSBlbmFibGU7XG5cdGNyZWF0ZURlYnVnLmVuYWJsZWQgPSBlbmFibGVkO1xuXHRjcmVhdGVEZWJ1Zy5odW1hbml6ZSA9IHJlcXVpcmUoJ21zJyk7XG5cdGNyZWF0ZURlYnVnLmRlc3Ryb3kgPSBkZXN0cm95O1xuXG5cdE9iamVjdC5rZXlzKGVudikuZm9yRWFjaChrZXkgPT4ge1xuXHRcdGNyZWF0ZURlYnVnW2tleV0gPSBlbnZba2V5XTtcblx0fSk7XG5cblx0LyoqXG5cdCogVGhlIGN1cnJlbnRseSBhY3RpdmUgZGVidWcgbW9kZSBuYW1lcywgYW5kIG5hbWVzIHRvIHNraXAuXG5cdCovXG5cblx0Y3JlYXRlRGVidWcubmFtZXMgPSBbXTtcblx0Y3JlYXRlRGVidWcuc2tpcHMgPSBbXTtcblxuXHQvKipcblx0KiBNYXAgb2Ygc3BlY2lhbCBcIiVuXCIgaGFuZGxpbmcgZnVuY3Rpb25zLCBmb3IgdGhlIGRlYnVnIFwiZm9ybWF0XCIgYXJndW1lbnQuXG5cdCpcblx0KiBWYWxpZCBrZXkgbmFtZXMgYXJlIGEgc2luZ2xlLCBsb3dlciBvciB1cHBlci1jYXNlIGxldHRlciwgaS5lLiBcIm5cIiBhbmQgXCJOXCIuXG5cdCovXG5cdGNyZWF0ZURlYnVnLmZvcm1hdHRlcnMgPSB7fTtcblxuXHQvKipcblx0KiBTZWxlY3RzIGEgY29sb3IgZm9yIGEgZGVidWcgbmFtZXNwYWNlXG5cdCogQHBhcmFtIHtTdHJpbmd9IG5hbWVzcGFjZSBUaGUgbmFtZXNwYWNlIHN0cmluZyBmb3IgdGhlIGRlYnVnIGluc3RhbmNlIHRvIGJlIGNvbG9yZWRcblx0KiBAcmV0dXJuIHtOdW1iZXJ8U3RyaW5nfSBBbiBBTlNJIGNvbG9yIGNvZGUgZm9yIHRoZSBnaXZlbiBuYW1lc3BhY2Vcblx0KiBAYXBpIHByaXZhdGVcblx0Ki9cblx0ZnVuY3Rpb24gc2VsZWN0Q29sb3IobmFtZXNwYWNlKSB7XG5cdFx0bGV0IGhhc2ggPSAwO1xuXG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBuYW1lc3BhY2UubGVuZ3RoOyBpKyspIHtcblx0XHRcdGhhc2ggPSAoKGhhc2ggPDwgNSkgLSBoYXNoKSArIG5hbWVzcGFjZS5jaGFyQ29kZUF0KGkpO1xuXHRcdFx0aGFzaCB8PSAwOyAvLyBDb252ZXJ0IHRvIDMyYml0IGludGVnZXJcblx0XHR9XG5cblx0XHRyZXR1cm4gY3JlYXRlRGVidWcuY29sb3JzW01hdGguYWJzKGhhc2gpICUgY3JlYXRlRGVidWcuY29sb3JzLmxlbmd0aF07XG5cdH1cblx0Y3JlYXRlRGVidWcuc2VsZWN0Q29sb3IgPSBzZWxlY3RDb2xvcjtcblxuXHQvKipcblx0KiBDcmVhdGUgYSBkZWJ1Z2dlciB3aXRoIHRoZSBnaXZlbiBgbmFtZXNwYWNlYC5cblx0KlxuXHQqIEBwYXJhbSB7U3RyaW5nfSBuYW1lc3BhY2Vcblx0KiBAcmV0dXJuIHtGdW5jdGlvbn1cblx0KiBAYXBpIHB1YmxpY1xuXHQqL1xuXHRmdW5jdGlvbiBjcmVhdGVEZWJ1ZyhuYW1lc3BhY2UpIHtcblx0XHRsZXQgcHJldlRpbWU7XG5cdFx0bGV0IGVuYWJsZU92ZXJyaWRlID0gbnVsbDtcblx0XHRsZXQgbmFtZXNwYWNlc0NhY2hlO1xuXHRcdGxldCBlbmFibGVkQ2FjaGU7XG5cblx0XHRmdW5jdGlvbiBkZWJ1ZyguLi5hcmdzKSB7XG5cdFx0XHQvLyBEaXNhYmxlZD9cblx0XHRcdGlmICghZGVidWcuZW5hYmxlZCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdGNvbnN0IHNlbGYgPSBkZWJ1ZztcblxuXHRcdFx0Ly8gU2V0IGBkaWZmYCB0aW1lc3RhbXBcblx0XHRcdGNvbnN0IGN1cnIgPSBOdW1iZXIobmV3IERhdGUoKSk7XG5cdFx0XHRjb25zdCBtcyA9IGN1cnIgLSAocHJldlRpbWUgfHwgY3Vycik7XG5cdFx0XHRzZWxmLmRpZmYgPSBtcztcblx0XHRcdHNlbGYucHJldiA9IHByZXZUaW1lO1xuXHRcdFx0c2VsZi5jdXJyID0gY3Vycjtcblx0XHRcdHByZXZUaW1lID0gY3VycjtcblxuXHRcdFx0YXJnc1swXSA9IGNyZWF0ZURlYnVnLmNvZXJjZShhcmdzWzBdKTtcblxuXHRcdFx0aWYgKHR5cGVvZiBhcmdzWzBdICE9PSAnc3RyaW5nJykge1xuXHRcdFx0XHQvLyBBbnl0aGluZyBlbHNlIGxldCdzIGluc3BlY3Qgd2l0aCAlT1xuXHRcdFx0XHRhcmdzLnVuc2hpZnQoJyVPJyk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIEFwcGx5IGFueSBgZm9ybWF0dGVyc2AgdHJhbnNmb3JtYXRpb25zXG5cdFx0XHRsZXQgaW5kZXggPSAwO1xuXHRcdFx0YXJnc1swXSA9IGFyZ3NbMF0ucmVwbGFjZSgvJShbYS16QS1aJV0pL2csIChtYXRjaCwgZm9ybWF0KSA9PiB7XG5cdFx0XHRcdC8vIElmIHdlIGVuY291bnRlciBhbiBlc2NhcGVkICUgdGhlbiBkb24ndCBpbmNyZWFzZSB0aGUgYXJyYXkgaW5kZXhcblx0XHRcdFx0aWYgKG1hdGNoID09PSAnJSUnKSB7XG5cdFx0XHRcdFx0cmV0dXJuICclJztcblx0XHRcdFx0fVxuXHRcdFx0XHRpbmRleCsrO1xuXHRcdFx0XHRjb25zdCBmb3JtYXR0ZXIgPSBjcmVhdGVEZWJ1Zy5mb3JtYXR0ZXJzW2Zvcm1hdF07XG5cdFx0XHRcdGlmICh0eXBlb2YgZm9ybWF0dGVyID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRcdFx0Y29uc3QgdmFsID0gYXJnc1tpbmRleF07XG5cdFx0XHRcdFx0bWF0Y2ggPSBmb3JtYXR0ZXIuY2FsbChzZWxmLCB2YWwpO1xuXG5cdFx0XHRcdFx0Ly8gTm93IHdlIG5lZWQgdG8gcmVtb3ZlIGBhcmdzW2luZGV4XWAgc2luY2UgaXQncyBpbmxpbmVkIGluIHRoZSBgZm9ybWF0YFxuXHRcdFx0XHRcdGFyZ3Muc3BsaWNlKGluZGV4LCAxKTtcblx0XHRcdFx0XHRpbmRleC0tO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBtYXRjaDtcblx0XHRcdH0pO1xuXG5cdFx0XHQvLyBBcHBseSBlbnYtc3BlY2lmaWMgZm9ybWF0dGluZyAoY29sb3JzLCBldGMuKVxuXHRcdFx0Y3JlYXRlRGVidWcuZm9ybWF0QXJncy5jYWxsKHNlbGYsIGFyZ3MpO1xuXG5cdFx0XHRjb25zdCBsb2dGbiA9IHNlbGYubG9nIHx8IGNyZWF0ZURlYnVnLmxvZztcblx0XHRcdGxvZ0ZuLmFwcGx5KHNlbGYsIGFyZ3MpO1xuXHRcdH1cblxuXHRcdGRlYnVnLm5hbWVzcGFjZSA9IG5hbWVzcGFjZTtcblx0XHRkZWJ1Zy51c2VDb2xvcnMgPSBjcmVhdGVEZWJ1Zy51c2VDb2xvcnMoKTtcblx0XHRkZWJ1Zy5jb2xvciA9IGNyZWF0ZURlYnVnLnNlbGVjdENvbG9yKG5hbWVzcGFjZSk7XG5cdFx0ZGVidWcuZXh0ZW5kID0gZXh0ZW5kO1xuXHRcdGRlYnVnLmRlc3Ryb3kgPSBjcmVhdGVEZWJ1Zy5kZXN0cm95OyAvLyBYWFggVGVtcG9yYXJ5LiBXaWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgcmVsZWFzZS5cblxuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkZWJ1ZywgJ2VuYWJsZWQnLCB7XG5cdFx0XHRlbnVtZXJhYmxlOiB0cnVlLFxuXHRcdFx0Y29uZmlndXJhYmxlOiBmYWxzZSxcblx0XHRcdGdldDogKCkgPT4ge1xuXHRcdFx0XHRpZiAoZW5hYmxlT3ZlcnJpZGUgIT09IG51bGwpIHtcblx0XHRcdFx0XHRyZXR1cm4gZW5hYmxlT3ZlcnJpZGU7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKG5hbWVzcGFjZXNDYWNoZSAhPT0gY3JlYXRlRGVidWcubmFtZXNwYWNlcykge1xuXHRcdFx0XHRcdG5hbWVzcGFjZXNDYWNoZSA9IGNyZWF0ZURlYnVnLm5hbWVzcGFjZXM7XG5cdFx0XHRcdFx0ZW5hYmxlZENhY2hlID0gY3JlYXRlRGVidWcuZW5hYmxlZChuYW1lc3BhY2UpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmV0dXJuIGVuYWJsZWRDYWNoZTtcblx0XHRcdH0sXG5cdFx0XHRzZXQ6IHYgPT4ge1xuXHRcdFx0XHRlbmFibGVPdmVycmlkZSA9IHY7XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHQvLyBFbnYtc3BlY2lmaWMgaW5pdGlhbGl6YXRpb24gbG9naWMgZm9yIGRlYnVnIGluc3RhbmNlc1xuXHRcdGlmICh0eXBlb2YgY3JlYXRlRGVidWcuaW5pdCA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0Y3JlYXRlRGVidWcuaW5pdChkZWJ1Zyk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGRlYnVnO1xuXHR9XG5cblx0ZnVuY3Rpb24gZXh0ZW5kKG5hbWVzcGFjZSwgZGVsaW1pdGVyKSB7XG5cdFx0Y29uc3QgbmV3RGVidWcgPSBjcmVhdGVEZWJ1Zyh0aGlzLm5hbWVzcGFjZSArICh0eXBlb2YgZGVsaW1pdGVyID09PSAndW5kZWZpbmVkJyA/ICc6JyA6IGRlbGltaXRlcikgKyBuYW1lc3BhY2UpO1xuXHRcdG5ld0RlYnVnLmxvZyA9IHRoaXMubG9nO1xuXHRcdHJldHVybiBuZXdEZWJ1Zztcblx0fVxuXG5cdC8qKlxuXHQqIEVuYWJsZXMgYSBkZWJ1ZyBtb2RlIGJ5IG5hbWVzcGFjZXMuIFRoaXMgY2FuIGluY2x1ZGUgbW9kZXNcblx0KiBzZXBhcmF0ZWQgYnkgYSBjb2xvbiBhbmQgd2lsZGNhcmRzLlxuXHQqXG5cdCogQHBhcmFtIHtTdHJpbmd9IG5hbWVzcGFjZXNcblx0KiBAYXBpIHB1YmxpY1xuXHQqL1xuXHRmdW5jdGlvbiBlbmFibGUobmFtZXNwYWNlcykge1xuXHRcdGNyZWF0ZURlYnVnLnNhdmUobmFtZXNwYWNlcyk7XG5cdFx0Y3JlYXRlRGVidWcubmFtZXNwYWNlcyA9IG5hbWVzcGFjZXM7XG5cblx0XHRjcmVhdGVEZWJ1Zy5uYW1lcyA9IFtdO1xuXHRcdGNyZWF0ZURlYnVnLnNraXBzID0gW107XG5cblx0XHRsZXQgaTtcblx0XHRjb25zdCBzcGxpdCA9ICh0eXBlb2YgbmFtZXNwYWNlcyA9PT0gJ3N0cmluZycgPyBuYW1lc3BhY2VzIDogJycpLnNwbGl0KC9bXFxzLF0rLyk7XG5cdFx0Y29uc3QgbGVuID0gc3BsaXQubGVuZ3RoO1xuXG5cdFx0Zm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG5cdFx0XHRpZiAoIXNwbGl0W2ldKSB7XG5cdFx0XHRcdC8vIGlnbm9yZSBlbXB0eSBzdHJpbmdzXG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXG5cdFx0XHRuYW1lc3BhY2VzID0gc3BsaXRbaV0ucmVwbGFjZSgvXFwqL2csICcuKj8nKTtcblxuXHRcdFx0aWYgKG5hbWVzcGFjZXNbMF0gPT09ICctJykge1xuXHRcdFx0XHRjcmVhdGVEZWJ1Zy5za2lwcy5wdXNoKG5ldyBSZWdFeHAoJ14nICsgbmFtZXNwYWNlcy5zbGljZSgxKSArICckJykpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y3JlYXRlRGVidWcubmFtZXMucHVzaChuZXcgUmVnRXhwKCdeJyArIG5hbWVzcGFjZXMgKyAnJCcpKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvKipcblx0KiBEaXNhYmxlIGRlYnVnIG91dHB1dC5cblx0KlxuXHQqIEByZXR1cm4ge1N0cmluZ30gbmFtZXNwYWNlc1xuXHQqIEBhcGkgcHVibGljXG5cdCovXG5cdGZ1bmN0aW9uIGRpc2FibGUoKSB7XG5cdFx0Y29uc3QgbmFtZXNwYWNlcyA9IFtcblx0XHRcdC4uLmNyZWF0ZURlYnVnLm5hbWVzLm1hcCh0b05hbWVzcGFjZSksXG5cdFx0XHQuLi5jcmVhdGVEZWJ1Zy5za2lwcy5tYXAodG9OYW1lc3BhY2UpLm1hcChuYW1lc3BhY2UgPT4gJy0nICsgbmFtZXNwYWNlKVxuXHRcdF0uam9pbignLCcpO1xuXHRcdGNyZWF0ZURlYnVnLmVuYWJsZSgnJyk7XG5cdFx0cmV0dXJuIG5hbWVzcGFjZXM7XG5cdH1cblxuXHQvKipcblx0KiBSZXR1cm5zIHRydWUgaWYgdGhlIGdpdmVuIG1vZGUgbmFtZSBpcyBlbmFibGVkLCBmYWxzZSBvdGhlcndpc2UuXG5cdCpcblx0KiBAcGFyYW0ge1N0cmluZ30gbmFtZVxuXHQqIEByZXR1cm4ge0Jvb2xlYW59XG5cdCogQGFwaSBwdWJsaWNcblx0Ki9cblx0ZnVuY3Rpb24gZW5hYmxlZChuYW1lKSB7XG5cdFx0aWYgKG5hbWVbbmFtZS5sZW5ndGggLSAxXSA9PT0gJyonKSB7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cblx0XHRsZXQgaTtcblx0XHRsZXQgbGVuO1xuXG5cdFx0Zm9yIChpID0gMCwgbGVuID0gY3JlYXRlRGVidWcuc2tpcHMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcblx0XHRcdGlmIChjcmVhdGVEZWJ1Zy5za2lwc1tpXS50ZXN0KG5hbWUpKSB7XG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRmb3IgKGkgPSAwLCBsZW4gPSBjcmVhdGVEZWJ1Zy5uYW1lcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuXHRcdFx0aWYgKGNyZWF0ZURlYnVnLm5hbWVzW2ldLnRlc3QobmFtZSkpIHtcblx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0LyoqXG5cdCogQ29udmVydCByZWdleHAgdG8gbmFtZXNwYWNlXG5cdCpcblx0KiBAcGFyYW0ge1JlZ0V4cH0gcmVneGVwXG5cdCogQHJldHVybiB7U3RyaW5nfSBuYW1lc3BhY2Vcblx0KiBAYXBpIHByaXZhdGVcblx0Ki9cblx0ZnVuY3Rpb24gdG9OYW1lc3BhY2UocmVnZXhwKSB7XG5cdFx0cmV0dXJuIHJlZ2V4cC50b1N0cmluZygpXG5cdFx0XHQuc3Vic3RyaW5nKDIsIHJlZ2V4cC50b1N0cmluZygpLmxlbmd0aCAtIDIpXG5cdFx0XHQucmVwbGFjZSgvXFwuXFwqXFw/JC8sICcqJyk7XG5cdH1cblxuXHQvKipcblx0KiBDb2VyY2UgYHZhbGAuXG5cdCpcblx0KiBAcGFyYW0ge01peGVkfSB2YWxcblx0KiBAcmV0dXJuIHtNaXhlZH1cblx0KiBAYXBpIHByaXZhdGVcblx0Ki9cblx0ZnVuY3Rpb24gY29lcmNlKHZhbCkge1xuXHRcdGlmICh2YWwgaW5zdGFuY2VvZiBFcnJvcikge1xuXHRcdFx0cmV0dXJuIHZhbC5zdGFjayB8fCB2YWwubWVzc2FnZTtcblx0XHR9XG5cdFx0cmV0dXJuIHZhbDtcblx0fVxuXG5cdC8qKlxuXHQqIFhYWCBETyBOT1QgVVNFLiBUaGlzIGlzIGEgdGVtcG9yYXJ5IHN0dWIgZnVuY3Rpb24uXG5cdCogWFhYIEl0IFdJTEwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciByZWxlYXNlLlxuXHQqL1xuXHRmdW5jdGlvbiBkZXN0cm95KCkge1xuXHRcdGNvbnNvbGUud2FybignSW5zdGFuY2UgbWV0aG9kIGBkZWJ1Zy5kZXN0cm95KClgIGlzIGRlcHJlY2F0ZWQgYW5kIG5vIGxvbmdlciBkb2VzIGFueXRoaW5nLiBJdCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiBvZiBgZGVidWdgLicpO1xuXHR9XG5cblx0Y3JlYXRlRGVidWcuZW5hYmxlKGNyZWF0ZURlYnVnLmxvYWQoKSk7XG5cblx0cmV0dXJuIGNyZWF0ZURlYnVnO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHNldHVwO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmRlZmF1bHRCaW5hcnlUeXBlID0gZXhwb3J0cy51c2luZ0Jyb3dzZXJXZWJTb2NrZXQgPSBleHBvcnRzLldlYlNvY2tldCA9IGV4cG9ydHMubmV4dFRpY2sgPSB2b2lkIDA7XG5jb25zdCBnbG9iYWxUaGlzX2pzXzEgPSByZXF1aXJlKFwiLi4vZ2xvYmFsVGhpcy5qc1wiKTtcbmV4cG9ydHMubmV4dFRpY2sgPSAoKCkgPT4ge1xuICAgIGNvbnN0IGlzUHJvbWlzZUF2YWlsYWJsZSA9IHR5cGVvZiBQcm9taXNlID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFByb21pc2UucmVzb2x2ZSA9PT0gXCJmdW5jdGlvblwiO1xuICAgIGlmIChpc1Byb21pc2VBdmFpbGFibGUpIHtcbiAgICAgICAgcmV0dXJuIChjYikgPT4gUHJvbWlzZS5yZXNvbHZlKCkudGhlbihjYik7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICByZXR1cm4gKGNiLCBzZXRUaW1lb3V0Rm4pID0+IHNldFRpbWVvdXRGbihjYiwgMCk7XG4gICAgfVxufSkoKTtcbmV4cG9ydHMuV2ViU29ja2V0ID0gZ2xvYmFsVGhpc19qc18xLmdsb2JhbFRoaXNTaGltLldlYlNvY2tldCB8fCBnbG9iYWxUaGlzX2pzXzEuZ2xvYmFsVGhpc1NoaW0uTW96V2ViU29ja2V0O1xuZXhwb3J0cy51c2luZ0Jyb3dzZXJXZWJTb2NrZXQgPSB0cnVlO1xuZXhwb3J0cy5kZWZhdWx0QmluYXJ5VHlwZSA9IFwiYXJyYXlidWZmZXJcIjtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5oYXNDT1JTID0gdm9pZCAwO1xuLy8gaW1wb3J0ZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vY29tcG9uZW50L2hhcy1jb3JzXG5sZXQgdmFsdWUgPSBmYWxzZTtcbnRyeSB7XG4gICAgdmFsdWUgPSB0eXBlb2YgWE1MSHR0cFJlcXVlc3QgIT09ICd1bmRlZmluZWQnICYmXG4gICAgICAgICd3aXRoQ3JlZGVudGlhbHMnIGluIG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xufVxuY2F0Y2ggKGVycikge1xuICAgIC8vIGlmIFhNTEh0dHAgc3VwcG9ydCBpcyBkaXNhYmxlZCBpbiBJRSB0aGVuIGl0IHdpbGwgdGhyb3dcbiAgICAvLyB3aGVuIHRyeWluZyB0byBjcmVhdGVcbn1cbmV4cG9ydHMuaGFzQ09SUyA9IHZhbHVlO1xuIiwiLyoqXG4gKiBJbml0aWFsaXplIGEgbmV3IGBFbWl0dGVyYC5cbiAqXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbmV4cG9ydCBmdW5jdGlvbiBFbWl0dGVyKG9iaikge1xuICBpZiAob2JqKSByZXR1cm4gbWl4aW4ob2JqKTtcbn1cblxuLyoqXG4gKiBNaXhpbiB0aGUgZW1pdHRlciBwcm9wZXJ0aWVzLlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmpcbiAqIEByZXR1cm4ge09iamVjdH1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIG1peGluKG9iaikge1xuICBmb3IgKHZhciBrZXkgaW4gRW1pdHRlci5wcm90b3R5cGUpIHtcbiAgICBvYmpba2V5XSA9IEVtaXR0ZXIucHJvdG90eXBlW2tleV07XG4gIH1cbiAgcmV0dXJuIG9iajtcbn1cblxuLyoqXG4gKiBMaXN0ZW4gb24gdGhlIGdpdmVuIGBldmVudGAgd2l0aCBgZm5gLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBldmVudFxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm5cbiAqIEByZXR1cm4ge0VtaXR0ZXJ9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbkVtaXR0ZXIucHJvdG90eXBlLm9uID1cbkVtaXR0ZXIucHJvdG90eXBlLmFkZEV2ZW50TGlzdGVuZXIgPSBmdW5jdGlvbihldmVudCwgZm4pe1xuICB0aGlzLl9jYWxsYmFja3MgPSB0aGlzLl9jYWxsYmFja3MgfHwge307XG4gICh0aGlzLl9jYWxsYmFja3NbJyQnICsgZXZlbnRdID0gdGhpcy5fY2FsbGJhY2tzWyckJyArIGV2ZW50XSB8fCBbXSlcbiAgICAucHVzaChmbik7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBBZGRzIGFuIGBldmVudGAgbGlzdGVuZXIgdGhhdCB3aWxsIGJlIGludm9rZWQgYSBzaW5nbGVcbiAqIHRpbWUgdGhlbiBhdXRvbWF0aWNhbGx5IHJlbW92ZWQuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGV2ZW50XG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmblxuICogQHJldHVybiB7RW1pdHRlcn1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxuRW1pdHRlci5wcm90b3R5cGUub25jZSA9IGZ1bmN0aW9uKGV2ZW50LCBmbil7XG4gIGZ1bmN0aW9uIG9uKCkge1xuICAgIHRoaXMub2ZmKGV2ZW50LCBvbik7XG4gICAgZm4uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfVxuXG4gIG9uLmZuID0gZm47XG4gIHRoaXMub24oZXZlbnQsIG9uKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgZ2l2ZW4gY2FsbGJhY2sgZm9yIGBldmVudGAgb3IgYWxsXG4gKiByZWdpc3RlcmVkIGNhbGxiYWNrcy5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gZXZlbnRcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuXG4gKiBAcmV0dXJuIHtFbWl0dGVyfVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5FbWl0dGVyLnByb3RvdHlwZS5vZmYgPVxuRW1pdHRlci5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXIgPVxuRW1pdHRlci5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzID1cbkVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUV2ZW50TGlzdGVuZXIgPSBmdW5jdGlvbihldmVudCwgZm4pe1xuICB0aGlzLl9jYWxsYmFja3MgPSB0aGlzLl9jYWxsYmFja3MgfHwge307XG5cbiAgLy8gYWxsXG4gIGlmICgwID09IGFyZ3VtZW50cy5sZW5ndGgpIHtcbiAgICB0aGlzLl9jYWxsYmFja3MgPSB7fTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8vIHNwZWNpZmljIGV2ZW50XG4gIHZhciBjYWxsYmFja3MgPSB0aGlzLl9jYWxsYmFja3NbJyQnICsgZXZlbnRdO1xuICBpZiAoIWNhbGxiYWNrcykgcmV0dXJuIHRoaXM7XG5cbiAgLy8gcmVtb3ZlIGFsbCBoYW5kbGVyc1xuICBpZiAoMSA9PSBhcmd1bWVudHMubGVuZ3RoKSB7XG4gICAgZGVsZXRlIHRoaXMuX2NhbGxiYWNrc1snJCcgKyBldmVudF07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvLyByZW1vdmUgc3BlY2lmaWMgaGFuZGxlclxuICB2YXIgY2I7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgY2FsbGJhY2tzLmxlbmd0aDsgaSsrKSB7XG4gICAgY2IgPSBjYWxsYmFja3NbaV07XG4gICAgaWYgKGNiID09PSBmbiB8fCBjYi5mbiA9PT0gZm4pIHtcbiAgICAgIGNhbGxiYWNrcy5zcGxpY2UoaSwgMSk7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICAvLyBSZW1vdmUgZXZlbnQgc3BlY2lmaWMgYXJyYXlzIGZvciBldmVudCB0eXBlcyB0aGF0IG5vXG4gIC8vIG9uZSBpcyBzdWJzY3JpYmVkIGZvciB0byBhdm9pZCBtZW1vcnkgbGVhay5cbiAgaWYgKGNhbGxiYWNrcy5sZW5ndGggPT09IDApIHtcbiAgICBkZWxldGUgdGhpcy5fY2FsbGJhY2tzWyckJyArIGV2ZW50XTtcbiAgfVxuXG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBFbWl0IGBldmVudGAgd2l0aCB0aGUgZ2l2ZW4gYXJncy5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gZXZlbnRcbiAqIEBwYXJhbSB7TWl4ZWR9IC4uLlxuICogQHJldHVybiB7RW1pdHRlcn1cbiAqL1xuXG5FbWl0dGVyLnByb3RvdHlwZS5lbWl0ID0gZnVuY3Rpb24oZXZlbnQpe1xuICB0aGlzLl9jYWxsYmFja3MgPSB0aGlzLl9jYWxsYmFja3MgfHwge307XG5cbiAgdmFyIGFyZ3MgPSBuZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aCAtIDEpXG4gICAgLCBjYWxsYmFja3MgPSB0aGlzLl9jYWxsYmFja3NbJyQnICsgZXZlbnRdO1xuXG4gIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgYXJnc1tpIC0gMV0gPSBhcmd1bWVudHNbaV07XG4gIH1cblxuICBpZiAoY2FsbGJhY2tzKSB7XG4gICAgY2FsbGJhY2tzID0gY2FsbGJhY2tzLnNsaWNlKDApO1xuICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBjYWxsYmFja3MubGVuZ3RoOyBpIDwgbGVuOyArK2kpIHtcbiAgICAgIGNhbGxiYWNrc1tpXS5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGhpcztcbn07XG5cbi8vIGFsaWFzIHVzZWQgZm9yIHJlc2VydmVkIGV2ZW50cyAocHJvdGVjdGVkIG1ldGhvZClcbkVtaXR0ZXIucHJvdG90eXBlLmVtaXRSZXNlcnZlZCA9IEVtaXR0ZXIucHJvdG90eXBlLmVtaXQ7XG5cbi8qKlxuICogUmV0dXJuIGFycmF5IG9mIGNhbGxiYWNrcyBmb3IgYGV2ZW50YC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gZXZlbnRcbiAqIEByZXR1cm4ge0FycmF5fVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5FbWl0dGVyLnByb3RvdHlwZS5saXN0ZW5lcnMgPSBmdW5jdGlvbihldmVudCl7XG4gIHRoaXMuX2NhbGxiYWNrcyA9IHRoaXMuX2NhbGxiYWNrcyB8fCB7fTtcbiAgcmV0dXJuIHRoaXMuX2NhbGxiYWNrc1snJCcgKyBldmVudF0gfHwgW107XG59O1xuXG4vKipcbiAqIENoZWNrIGlmIHRoaXMgZW1pdHRlciBoYXMgYGV2ZW50YCBoYW5kbGVycy5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gZXZlbnRcbiAqIEByZXR1cm4ge0Jvb2xlYW59XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbkVtaXR0ZXIucHJvdG90eXBlLmhhc0xpc3RlbmVycyA9IGZ1bmN0aW9uKGV2ZW50KXtcbiAgcmV0dXJuICEhIHRoaXMubGlzdGVuZXJzKGV2ZW50KS5sZW5ndGg7XG59O1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLldUID0gdm9pZCAwO1xuY29uc3QgdHJhbnNwb3J0X2pzXzEgPSByZXF1aXJlKFwiLi4vdHJhbnNwb3J0LmpzXCIpO1xuY29uc3Qgd2Vic29ja2V0X2NvbnN0cnVjdG9yX2pzXzEgPSByZXF1aXJlKFwiLi93ZWJzb2NrZXQtY29uc3RydWN0b3IuanNcIik7XG5jb25zdCBlbmdpbmVfaW9fcGFyc2VyXzEgPSByZXF1aXJlKFwiZW5naW5lLmlvLXBhcnNlclwiKTtcbmNvbnN0IGRlYnVnXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcImRlYnVnXCIpKTsgLy8gZGVidWcoKVxuY29uc3QgZGVidWcgPSAoMCwgZGVidWdfMS5kZWZhdWx0KShcImVuZ2luZS5pby1jbGllbnQ6d2VidHJhbnNwb3J0XCIpOyAvLyBkZWJ1ZygpXG5jbGFzcyBXVCBleHRlbmRzIHRyYW5zcG9ydF9qc18xLlRyYW5zcG9ydCB7XG4gICAgZ2V0IG5hbWUoKSB7XG4gICAgICAgIHJldHVybiBcIndlYnRyYW5zcG9ydFwiO1xuICAgIH1cbiAgICBkb09wZW4oKSB7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgaWYgKHR5cGVvZiBXZWJUcmFuc3BvcnQgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgdGhpcy50cmFuc3BvcnQgPSBuZXcgV2ViVHJhbnNwb3J0KHRoaXMuY3JlYXRlVXJpKFwiaHR0cHNcIiksIHRoaXMub3B0cy50cmFuc3BvcnRPcHRpb25zW3RoaXMubmFtZV0pO1xuICAgICAgICB0aGlzLnRyYW5zcG9ydC5jbG9zZWRcbiAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIGRlYnVnKFwidHJhbnNwb3J0IGNsb3NlZCBncmFjZWZ1bGx5XCIpO1xuICAgICAgICAgICAgdGhpcy5vbkNsb3NlKCk7XG4gICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgZGVidWcoXCJ0cmFuc3BvcnQgY2xvc2VkIGR1ZSB0byAlc1wiLCBlcnIpO1xuICAgICAgICAgICAgdGhpcy5vbkVycm9yKFwid2VidHJhbnNwb3J0IGVycm9yXCIsIGVycik7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBub3RlOiB3ZSBjb3VsZCBoYXZlIHVzZWQgYXN5bmMvYXdhaXQsIGJ1dCB0aGF0IHdvdWxkIHJlcXVpcmUgc29tZSBhZGRpdGlvbmFsIHBvbHlmaWxsc1xuICAgICAgICB0aGlzLnRyYW5zcG9ydC5yZWFkeS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudHJhbnNwb3J0LmNyZWF0ZUJpZGlyZWN0aW9uYWxTdHJlYW0oKS50aGVuKChzdHJlYW0pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBkZWNvZGVyU3RyZWFtID0gKDAsIGVuZ2luZV9pb19wYXJzZXJfMS5jcmVhdGVQYWNrZXREZWNvZGVyU3RyZWFtKShOdW1iZXIuTUFYX1NBRkVfSU5URUdFUiwgdGhpcy5zb2NrZXQuYmluYXJ5VHlwZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVhZGVyID0gc3RyZWFtLnJlYWRhYmxlLnBpcGVUaHJvdWdoKGRlY29kZXJTdHJlYW0pLmdldFJlYWRlcigpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuY29kZXJTdHJlYW0gPSAoMCwgZW5naW5lX2lvX3BhcnNlcl8xLmNyZWF0ZVBhY2tldEVuY29kZXJTdHJlYW0pKCk7XG4gICAgICAgICAgICAgICAgZW5jb2RlclN0cmVhbS5yZWFkYWJsZS5waXBlVG8oc3RyZWFtLndyaXRhYmxlKTtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlciA9IGVuY29kZXJTdHJlYW0ud3JpdGFibGUuZ2V0V3JpdGVyKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVhZCA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmVhZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAucmVhZCgpXG4gICAgICAgICAgICAgICAgICAgICAgICAudGhlbigoeyBkb25lLCB2YWx1ZSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZG9uZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnKFwic2Vzc2lvbiBpcyBjbG9zZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZGVidWcoXCJyZWNlaXZlZCBjaHVuazogJW9cIiwgdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vblBhY2tldCh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWFkKCk7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVidWcoXCJhbiBlcnJvciBvY2N1cnJlZCB3aGlsZSByZWFkaW5nOiAlc1wiLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHJlYWQoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBwYWNrZXQgPSB7IHR5cGU6IFwib3BlblwiIH07XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucXVlcnkuc2lkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhY2tldC5kYXRhID0gYHtcInNpZFwiOlwiJHt0aGlzLnF1ZXJ5LnNpZH1cIn1gO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlci53cml0ZShwYWNrZXQpLnRoZW4oKCkgPT4gdGhpcy5vbk9wZW4oKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHdyaXRlKHBhY2tldHMpIHtcbiAgICAgICAgdGhpcy53cml0YWJsZSA9IGZhbHNlO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhY2tldHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHBhY2tldCA9IHBhY2tldHNbaV07XG4gICAgICAgICAgICBjb25zdCBsYXN0UGFja2V0ID0gaSA9PT0gcGFja2V0cy5sZW5ndGggLSAxO1xuICAgICAgICAgICAgdGhpcy53cml0ZXIud3JpdGUocGFja2V0KS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAobGFzdFBhY2tldCkge1xuICAgICAgICAgICAgICAgICAgICAoMCwgd2Vic29ja2V0X2NvbnN0cnVjdG9yX2pzXzEubmV4dFRpY2spKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGFibGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbWl0UmVzZXJ2ZWQoXCJkcmFpblwiKTtcbiAgICAgICAgICAgICAgICAgICAgfSwgdGhpcy5zZXRUaW1lb3V0Rm4pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIGRvQ2xvc2UoKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgKF9hID0gdGhpcy50cmFuc3BvcnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jbG9zZSgpO1xuICAgIH1cbn1cbmV4cG9ydHMuV1QgPSBXVDtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5EZWNvZGVyID0gZXhwb3J0cy5FbmNvZGVyID0gZXhwb3J0cy5QYWNrZXRUeXBlID0gZXhwb3J0cy5wcm90b2NvbCA9IHZvaWQgMDtcbmNvbnN0IGNvbXBvbmVudF9lbWl0dGVyXzEgPSByZXF1aXJlKFwiQHNvY2tldC5pby9jb21wb25lbnQtZW1pdHRlclwiKTtcbmNvbnN0IGJpbmFyeV9qc18xID0gcmVxdWlyZShcIi4vYmluYXJ5LmpzXCIpO1xuY29uc3QgaXNfYmluYXJ5X2pzXzEgPSByZXF1aXJlKFwiLi9pcy1iaW5hcnkuanNcIik7XG5jb25zdCBkZWJ1Z18xID0gcmVxdWlyZShcImRlYnVnXCIpOyAvLyBkZWJ1ZygpXG5jb25zdCBkZWJ1ZyA9ICgwLCBkZWJ1Z18xLmRlZmF1bHQpKFwic29ja2V0LmlvLXBhcnNlclwiKTsgLy8gZGVidWcoKVxuLyoqXG4gKiBUaGVzZSBzdHJpbmdzIG11c3Qgbm90IGJlIHVzZWQgYXMgZXZlbnQgbmFtZXMsIGFzIHRoZXkgaGF2ZSBhIHNwZWNpYWwgbWVhbmluZy5cbiAqL1xuY29uc3QgUkVTRVJWRURfRVZFTlRTID0gW1xuICAgIFwiY29ubmVjdFwiLFxuICAgIFwiY29ubmVjdF9lcnJvclwiLFxuICAgIFwiZGlzY29ubmVjdFwiLFxuICAgIFwiZGlzY29ubmVjdGluZ1wiLFxuICAgIFwibmV3TGlzdGVuZXJcIixcbiAgICBcInJlbW92ZUxpc3RlbmVyXCIsIC8vIHVzZWQgYnkgdGhlIE5vZGUuanMgRXZlbnRFbWl0dGVyXG5dO1xuLyoqXG4gKiBQcm90b2NvbCB2ZXJzaW9uLlxuICpcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0cy5wcm90b2NvbCA9IDU7XG52YXIgUGFja2V0VHlwZTtcbihmdW5jdGlvbiAoUGFja2V0VHlwZSkge1xuICAgIFBhY2tldFR5cGVbUGFja2V0VHlwZVtcIkNPTk5FQ1RcIl0gPSAwXSA9IFwiQ09OTkVDVFwiO1xuICAgIFBhY2tldFR5cGVbUGFja2V0VHlwZVtcIkRJU0NPTk5FQ1RcIl0gPSAxXSA9IFwiRElTQ09OTkVDVFwiO1xuICAgIFBhY2tldFR5cGVbUGFja2V0VHlwZVtcIkVWRU5UXCJdID0gMl0gPSBcIkVWRU5UXCI7XG4gICAgUGFja2V0VHlwZVtQYWNrZXRUeXBlW1wiQUNLXCJdID0gM10gPSBcIkFDS1wiO1xuICAgIFBhY2tldFR5cGVbUGFja2V0VHlwZVtcIkNPTk5FQ1RfRVJST1JcIl0gPSA0XSA9IFwiQ09OTkVDVF9FUlJPUlwiO1xuICAgIFBhY2tldFR5cGVbUGFja2V0VHlwZVtcIkJJTkFSWV9FVkVOVFwiXSA9IDVdID0gXCJCSU5BUllfRVZFTlRcIjtcbiAgICBQYWNrZXRUeXBlW1BhY2tldFR5cGVbXCJCSU5BUllfQUNLXCJdID0gNl0gPSBcIkJJTkFSWV9BQ0tcIjtcbn0pKFBhY2tldFR5cGUgPSBleHBvcnRzLlBhY2tldFR5cGUgfHwgKGV4cG9ydHMuUGFja2V0VHlwZSA9IHt9KSk7XG4vKipcbiAqIEEgc29ja2V0LmlvIEVuY29kZXIgaW5zdGFuY2VcbiAqL1xuY2xhc3MgRW5jb2RlciB7XG4gICAgLyoqXG4gICAgICogRW5jb2RlciBjb25zdHJ1Y3RvclxuICAgICAqXG4gICAgICogQHBhcmFtIHtmdW5jdGlvbn0gcmVwbGFjZXIgLSBjdXN0b20gcmVwbGFjZXIgdG8gcGFzcyBkb3duIHRvIEpTT04ucGFyc2VcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihyZXBsYWNlcikge1xuICAgICAgICB0aGlzLnJlcGxhY2VyID0gcmVwbGFjZXI7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEVuY29kZSBhIHBhY2tldCBhcyBhIHNpbmdsZSBzdHJpbmcgaWYgbm9uLWJpbmFyeSwgb3IgYXMgYVxuICAgICAqIGJ1ZmZlciBzZXF1ZW5jZSwgZGVwZW5kaW5nIG9uIHBhY2tldCB0eXBlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iaiAtIHBhY2tldCBvYmplY3RcbiAgICAgKi9cbiAgICBlbmNvZGUob2JqKSB7XG4gICAgICAgIGRlYnVnKFwiZW5jb2RpbmcgcGFja2V0ICVqXCIsIG9iaik7XG4gICAgICAgIGlmIChvYmoudHlwZSA9PT0gUGFja2V0VHlwZS5FVkVOVCB8fCBvYmoudHlwZSA9PT0gUGFja2V0VHlwZS5BQ0spIHtcbiAgICAgICAgICAgIGlmICgoMCwgaXNfYmluYXJ5X2pzXzEuaGFzQmluYXJ5KShvYmopKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZW5jb2RlQXNCaW5hcnkoe1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBvYmoudHlwZSA9PT0gUGFja2V0VHlwZS5FVkVOVFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBQYWNrZXRUeXBlLkJJTkFSWV9FVkVOVFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBQYWNrZXRUeXBlLkJJTkFSWV9BQ0ssXG4gICAgICAgICAgICAgICAgICAgIG5zcDogb2JqLm5zcCxcbiAgICAgICAgICAgICAgICAgICAgZGF0YTogb2JqLmRhdGEsXG4gICAgICAgICAgICAgICAgICAgIGlkOiBvYmouaWQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFt0aGlzLmVuY29kZUFzU3RyaW5nKG9iaildO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBFbmNvZGUgcGFja2V0IGFzIHN0cmluZy5cbiAgICAgKi9cbiAgICBlbmNvZGVBc1N0cmluZyhvYmopIHtcbiAgICAgICAgLy8gZmlyc3QgaXMgdHlwZVxuICAgICAgICBsZXQgc3RyID0gXCJcIiArIG9iai50eXBlO1xuICAgICAgICAvLyBhdHRhY2htZW50cyBpZiB3ZSBoYXZlIHRoZW1cbiAgICAgICAgaWYgKG9iai50eXBlID09PSBQYWNrZXRUeXBlLkJJTkFSWV9FVkVOVCB8fFxuICAgICAgICAgICAgb2JqLnR5cGUgPT09IFBhY2tldFR5cGUuQklOQVJZX0FDSykge1xuICAgICAgICAgICAgc3RyICs9IG9iai5hdHRhY2htZW50cyArIFwiLVwiO1xuICAgICAgICB9XG4gICAgICAgIC8vIGlmIHdlIGhhdmUgYSBuYW1lc3BhY2Ugb3RoZXIgdGhhbiBgL2BcbiAgICAgICAgLy8gd2UgYXBwZW5kIGl0IGZvbGxvd2VkIGJ5IGEgY29tbWEgYCxgXG4gICAgICAgIGlmIChvYmoubnNwICYmIFwiL1wiICE9PSBvYmoubnNwKSB7XG4gICAgICAgICAgICBzdHIgKz0gb2JqLm5zcCArIFwiLFwiO1xuICAgICAgICB9XG4gICAgICAgIC8vIGltbWVkaWF0ZWx5IGZvbGxvd2VkIGJ5IHRoZSBpZFxuICAgICAgICBpZiAobnVsbCAhPSBvYmouaWQpIHtcbiAgICAgICAgICAgIHN0ciArPSBvYmouaWQ7XG4gICAgICAgIH1cbiAgICAgICAgLy8ganNvbiBkYXRhXG4gICAgICAgIGlmIChudWxsICE9IG9iai5kYXRhKSB7XG4gICAgICAgICAgICBzdHIgKz0gSlNPTi5zdHJpbmdpZnkob2JqLmRhdGEsIHRoaXMucmVwbGFjZXIpO1xuICAgICAgICB9XG4gICAgICAgIGRlYnVnKFwiZW5jb2RlZCAlaiBhcyAlc1wiLCBvYmosIHN0cik7XG4gICAgICAgIHJldHVybiBzdHI7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEVuY29kZSBwYWNrZXQgYXMgJ2J1ZmZlciBzZXF1ZW5jZScgYnkgcmVtb3ZpbmcgYmxvYnMsIGFuZFxuICAgICAqIGRlY29uc3RydWN0aW5nIHBhY2tldCBpbnRvIG9iamVjdCB3aXRoIHBsYWNlaG9sZGVycyBhbmRcbiAgICAgKiBhIGxpc3Qgb2YgYnVmZmVycy5cbiAgICAgKi9cbiAgICBlbmNvZGVBc0JpbmFyeShvYmopIHtcbiAgICAgICAgY29uc3QgZGVjb25zdHJ1Y3Rpb24gPSAoMCwgYmluYXJ5X2pzXzEuZGVjb25zdHJ1Y3RQYWNrZXQpKG9iaik7XG4gICAgICAgIGNvbnN0IHBhY2sgPSB0aGlzLmVuY29kZUFzU3RyaW5nKGRlY29uc3RydWN0aW9uLnBhY2tldCk7XG4gICAgICAgIGNvbnN0IGJ1ZmZlcnMgPSBkZWNvbnN0cnVjdGlvbi5idWZmZXJzO1xuICAgICAgICBidWZmZXJzLnVuc2hpZnQocGFjayk7IC8vIGFkZCBwYWNrZXQgaW5mbyB0byBiZWdpbm5pbmcgb2YgZGF0YSBsaXN0XG4gICAgICAgIHJldHVybiBidWZmZXJzOyAvLyB3cml0ZSBhbGwgdGhlIGJ1ZmZlcnNcbiAgICB9XG59XG5leHBvcnRzLkVuY29kZXIgPSBFbmNvZGVyO1xuLy8gc2VlIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzg1MTEyODEvY2hlY2staWYtYS12YWx1ZS1pcy1hbi1vYmplY3QtaW4tamF2YXNjcmlwdFxuZnVuY3Rpb24gaXNPYmplY3QodmFsdWUpIHtcbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbHVlKSA9PT0gXCJbb2JqZWN0IE9iamVjdF1cIjtcbn1cbi8qKlxuICogQSBzb2NrZXQuaW8gRGVjb2RlciBpbnN0YW5jZVxuICpcbiAqIEByZXR1cm4ge09iamVjdH0gZGVjb2RlclxuICovXG5jbGFzcyBEZWNvZGVyIGV4dGVuZHMgY29tcG9uZW50X2VtaXR0ZXJfMS5FbWl0dGVyIHtcbiAgICAvKipcbiAgICAgKiBEZWNvZGVyIGNvbnN0cnVjdG9yXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSByZXZpdmVyIC0gY3VzdG9tIHJldml2ZXIgdG8gcGFzcyBkb3duIHRvIEpTT04uc3RyaW5naWZ5XG4gICAgICovXG4gICAgY29uc3RydWN0b3IocmV2aXZlcikge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnJldml2ZXIgPSByZXZpdmVyO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBEZWNvZGVzIGFuIGVuY29kZWQgcGFja2V0IHN0cmluZyBpbnRvIHBhY2tldCBKU09OLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IG9iaiAtIGVuY29kZWQgcGFja2V0XG4gICAgICovXG4gICAgYWRkKG9iaikge1xuICAgICAgICBsZXQgcGFja2V0O1xuICAgICAgICBpZiAodHlwZW9mIG9iaiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgaWYgKHRoaXMucmVjb25zdHJ1Y3Rvcikge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImdvdCBwbGFpbnRleHQgZGF0YSB3aGVuIHJlY29uc3RydWN0aW5nIGEgcGFja2V0XCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGFja2V0ID0gdGhpcy5kZWNvZGVTdHJpbmcob2JqKTtcbiAgICAgICAgICAgIGNvbnN0IGlzQmluYXJ5RXZlbnQgPSBwYWNrZXQudHlwZSA9PT0gUGFja2V0VHlwZS5CSU5BUllfRVZFTlQ7XG4gICAgICAgICAgICBpZiAoaXNCaW5hcnlFdmVudCB8fCBwYWNrZXQudHlwZSA9PT0gUGFja2V0VHlwZS5CSU5BUllfQUNLKSB7XG4gICAgICAgICAgICAgICAgcGFja2V0LnR5cGUgPSBpc0JpbmFyeUV2ZW50ID8gUGFja2V0VHlwZS5FVkVOVCA6IFBhY2tldFR5cGUuQUNLO1xuICAgICAgICAgICAgICAgIC8vIGJpbmFyeSBwYWNrZXQncyBqc29uXG4gICAgICAgICAgICAgICAgdGhpcy5yZWNvbnN0cnVjdG9yID0gbmV3IEJpbmFyeVJlY29uc3RydWN0b3IocGFja2V0KTtcbiAgICAgICAgICAgICAgICAvLyBubyBhdHRhY2htZW50cywgbGFiZWxlZCBiaW5hcnkgYnV0IG5vIGJpbmFyeSBkYXRhIHRvIGZvbGxvd1xuICAgICAgICAgICAgICAgIGlmIChwYWNrZXQuYXR0YWNobWVudHMgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgc3VwZXIuZW1pdFJlc2VydmVkKFwiZGVjb2RlZFwiLCBwYWNrZXQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIG5vbi1iaW5hcnkgZnVsbCBwYWNrZXRcbiAgICAgICAgICAgICAgICBzdXBlci5lbWl0UmVzZXJ2ZWQoXCJkZWNvZGVkXCIsIHBhY2tldCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoKDAsIGlzX2JpbmFyeV9qc18xLmlzQmluYXJ5KShvYmopIHx8IG9iai5iYXNlNjQpIHtcbiAgICAgICAgICAgIC8vIHJhdyBiaW5hcnkgZGF0YVxuICAgICAgICAgICAgaWYgKCF0aGlzLnJlY29uc3RydWN0b3IpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJnb3QgYmluYXJ5IGRhdGEgd2hlbiBub3QgcmVjb25zdHJ1Y3RpbmcgYSBwYWNrZXRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBwYWNrZXQgPSB0aGlzLnJlY29uc3RydWN0b3IudGFrZUJpbmFyeURhdGEob2JqKTtcbiAgICAgICAgICAgICAgICBpZiAocGFja2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHJlY2VpdmVkIGZpbmFsIGJ1ZmZlclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlY29uc3RydWN0b3IgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICBzdXBlci5lbWl0UmVzZXJ2ZWQoXCJkZWNvZGVkXCIsIHBhY2tldCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5rbm93biB0eXBlOiBcIiArIG9iaik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogRGVjb2RlIGEgcGFja2V0IFN0cmluZyAoSlNPTiBkYXRhKVxuICAgICAqXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IHN0clxuICAgICAqIEByZXR1cm4ge09iamVjdH0gcGFja2V0XG4gICAgICovXG4gICAgZGVjb2RlU3RyaW5nKHN0cikge1xuICAgICAgICBsZXQgaSA9IDA7XG4gICAgICAgIC8vIGxvb2sgdXAgdHlwZVxuICAgICAgICBjb25zdCBwID0ge1xuICAgICAgICAgICAgdHlwZTogTnVtYmVyKHN0ci5jaGFyQXQoMCkpLFxuICAgICAgICB9O1xuICAgICAgICBpZiAoUGFja2V0VHlwZVtwLnR5cGVdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcInVua25vd24gcGFja2V0IHR5cGUgXCIgKyBwLnR5cGUpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGxvb2sgdXAgYXR0YWNobWVudHMgaWYgdHlwZSBiaW5hcnlcbiAgICAgICAgaWYgKHAudHlwZSA9PT0gUGFja2V0VHlwZS5CSU5BUllfRVZFTlQgfHxcbiAgICAgICAgICAgIHAudHlwZSA9PT0gUGFja2V0VHlwZS5CSU5BUllfQUNLKSB7XG4gICAgICAgICAgICBjb25zdCBzdGFydCA9IGkgKyAxO1xuICAgICAgICAgICAgd2hpbGUgKHN0ci5jaGFyQXQoKytpKSAhPT0gXCItXCIgJiYgaSAhPSBzdHIubGVuZ3RoKSB7IH1cbiAgICAgICAgICAgIGNvbnN0IGJ1ZiA9IHN0ci5zdWJzdHJpbmcoc3RhcnQsIGkpO1xuICAgICAgICAgICAgaWYgKGJ1ZiAhPSBOdW1iZXIoYnVmKSB8fCBzdHIuY2hhckF0KGkpICE9PSBcIi1cIikge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIklsbGVnYWwgYXR0YWNobWVudHNcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwLmF0dGFjaG1lbnRzID0gTnVtYmVyKGJ1Zik7XG4gICAgICAgIH1cbiAgICAgICAgLy8gbG9vayB1cCBuYW1lc3BhY2UgKGlmIGFueSlcbiAgICAgICAgaWYgKFwiL1wiID09PSBzdHIuY2hhckF0KGkgKyAxKSkge1xuICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSBpICsgMTtcbiAgICAgICAgICAgIHdoaWxlICgrK2kpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjID0gc3RyLmNoYXJBdChpKTtcbiAgICAgICAgICAgICAgICBpZiAoXCIsXCIgPT09IGMpXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGlmIChpID09PSBzdHIubGVuZ3RoKVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHAubnNwID0gc3RyLnN1YnN0cmluZyhzdGFydCwgaSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBwLm5zcCA9IFwiL1wiO1xuICAgICAgICB9XG4gICAgICAgIC8vIGxvb2sgdXAgaWRcbiAgICAgICAgY29uc3QgbmV4dCA9IHN0ci5jaGFyQXQoaSArIDEpO1xuICAgICAgICBpZiAoXCJcIiAhPT0gbmV4dCAmJiBOdW1iZXIobmV4dCkgPT0gbmV4dCkge1xuICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSBpICsgMTtcbiAgICAgICAgICAgIHdoaWxlICgrK2kpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjID0gc3RyLmNoYXJBdChpKTtcbiAgICAgICAgICAgICAgICBpZiAobnVsbCA9PSBjIHx8IE51bWJlcihjKSAhPSBjKSB7XG4gICAgICAgICAgICAgICAgICAgIC0taTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChpID09PSBzdHIubGVuZ3RoKVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHAuaWQgPSBOdW1iZXIoc3RyLnN1YnN0cmluZyhzdGFydCwgaSArIDEpKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBsb29rIHVwIGpzb24gZGF0YVxuICAgICAgICBpZiAoc3RyLmNoYXJBdCgrK2kpKSB7XG4gICAgICAgICAgICBjb25zdCBwYXlsb2FkID0gdGhpcy50cnlQYXJzZShzdHIuc3Vic3RyKGkpKTtcbiAgICAgICAgICAgIGlmIChEZWNvZGVyLmlzUGF5bG9hZFZhbGlkKHAudHlwZSwgcGF5bG9hZCkpIHtcbiAgICAgICAgICAgICAgICBwLmRhdGEgPSBwYXlsb2FkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaW52YWxpZCBwYXlsb2FkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGRlYnVnKFwiZGVjb2RlZCAlcyBhcyAlalwiLCBzdHIsIHApO1xuICAgICAgICByZXR1cm4gcDtcbiAgICB9XG4gICAgdHJ5UGFyc2Uoc3RyKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShzdHIsIHRoaXMucmV2aXZlcik7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzdGF0aWMgaXNQYXlsb2FkVmFsaWQodHlwZSwgcGF5bG9hZCkge1xuICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgUGFja2V0VHlwZS5DT05ORUNUOlxuICAgICAgICAgICAgICAgIHJldHVybiBpc09iamVjdChwYXlsb2FkKTtcbiAgICAgICAgICAgIGNhc2UgUGFja2V0VHlwZS5ESVNDT05ORUNUOlxuICAgICAgICAgICAgICAgIHJldHVybiBwYXlsb2FkID09PSB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjYXNlIFBhY2tldFR5cGUuQ09OTkVDVF9FUlJPUjpcbiAgICAgICAgICAgICAgICByZXR1cm4gdHlwZW9mIHBheWxvYWQgPT09IFwic3RyaW5nXCIgfHwgaXNPYmplY3QocGF5bG9hZCk7XG4gICAgICAgICAgICBjYXNlIFBhY2tldFR5cGUuRVZFTlQ6XG4gICAgICAgICAgICBjYXNlIFBhY2tldFR5cGUuQklOQVJZX0VWRU5UOlxuICAgICAgICAgICAgICAgIHJldHVybiAoQXJyYXkuaXNBcnJheShwYXlsb2FkKSAmJlxuICAgICAgICAgICAgICAgICAgICAodHlwZW9mIHBheWxvYWRbMF0gPT09IFwibnVtYmVyXCIgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICh0eXBlb2YgcGF5bG9hZFswXSA9PT0gXCJzdHJpbmdcIiAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFU0VSVkVEX0VWRU5UUy5pbmRleE9mKHBheWxvYWRbMF0pID09PSAtMSkpKTtcbiAgICAgICAgICAgIGNhc2UgUGFja2V0VHlwZS5BQ0s6XG4gICAgICAgICAgICBjYXNlIFBhY2tldFR5cGUuQklOQVJZX0FDSzpcbiAgICAgICAgICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheShwYXlsb2FkKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBEZWFsbG9jYXRlcyBhIHBhcnNlcidzIHJlc291cmNlc1xuICAgICAqL1xuICAgIGRlc3Ryb3koKSB7XG4gICAgICAgIGlmICh0aGlzLnJlY29uc3RydWN0b3IpIHtcbiAgICAgICAgICAgIHRoaXMucmVjb25zdHJ1Y3Rvci5maW5pc2hlZFJlY29uc3RydWN0aW9uKCk7XG4gICAgICAgICAgICB0aGlzLnJlY29uc3RydWN0b3IgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5EZWNvZGVyID0gRGVjb2Rlcjtcbi8qKlxuICogQSBtYW5hZ2VyIG9mIGEgYmluYXJ5IGV2ZW50J3MgJ2J1ZmZlciBzZXF1ZW5jZScuIFNob3VsZFxuICogYmUgY29uc3RydWN0ZWQgd2hlbmV2ZXIgYSBwYWNrZXQgb2YgdHlwZSBCSU5BUllfRVZFTlQgaXNcbiAqIGRlY29kZWQuXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHBhY2tldFxuICogQHJldHVybiB7QmluYXJ5UmVjb25zdHJ1Y3Rvcn0gaW5pdGlhbGl6ZWQgcmVjb25zdHJ1Y3RvclxuICovXG5jbGFzcyBCaW5hcnlSZWNvbnN0cnVjdG9yIHtcbiAgICBjb25zdHJ1Y3RvcihwYWNrZXQpIHtcbiAgICAgICAgdGhpcy5wYWNrZXQgPSBwYWNrZXQ7XG4gICAgICAgIHRoaXMuYnVmZmVycyA9IFtdO1xuICAgICAgICB0aGlzLnJlY29uUGFjayA9IHBhY2tldDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogTWV0aG9kIHRvIGJlIGNhbGxlZCB3aGVuIGJpbmFyeSBkYXRhIHJlY2VpdmVkIGZyb20gY29ubmVjdGlvblxuICAgICAqIGFmdGVyIGEgQklOQVJZX0VWRU5UIHBhY2tldC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7QnVmZmVyIHwgQXJyYXlCdWZmZXJ9IGJpbkRhdGEgLSB0aGUgcmF3IGJpbmFyeSBkYXRhIHJlY2VpdmVkXG4gICAgICogQHJldHVybiB7bnVsbCB8IE9iamVjdH0gcmV0dXJucyBudWxsIGlmIG1vcmUgYmluYXJ5IGRhdGEgaXMgZXhwZWN0ZWQgb3JcbiAgICAgKiAgIGEgcmVjb25zdHJ1Y3RlZCBwYWNrZXQgb2JqZWN0IGlmIGFsbCBidWZmZXJzIGhhdmUgYmVlbiByZWNlaXZlZC5cbiAgICAgKi9cbiAgICB0YWtlQmluYXJ5RGF0YShiaW5EYXRhKSB7XG4gICAgICAgIHRoaXMuYnVmZmVycy5wdXNoKGJpbkRhdGEpO1xuICAgICAgICBpZiAodGhpcy5idWZmZXJzLmxlbmd0aCA9PT0gdGhpcy5yZWNvblBhY2suYXR0YWNobWVudHMpIHtcbiAgICAgICAgICAgIC8vIGRvbmUgd2l0aCBidWZmZXIgbGlzdFxuICAgICAgICAgICAgY29uc3QgcGFja2V0ID0gKDAsIGJpbmFyeV9qc18xLnJlY29uc3RydWN0UGFja2V0KSh0aGlzLnJlY29uUGFjaywgdGhpcy5idWZmZXJzKTtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoZWRSZWNvbnN0cnVjdGlvbigpO1xuICAgICAgICAgICAgcmV0dXJuIHBhY2tldDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2xlYW5zIHVwIGJpbmFyeSBwYWNrZXQgcmVjb25zdHJ1Y3Rpb24gdmFyaWFibGVzLlxuICAgICAqL1xuICAgIGZpbmlzaGVkUmVjb25zdHJ1Y3Rpb24oKSB7XG4gICAgICAgIHRoaXMucmVjb25QYWNrID0gbnVsbDtcbiAgICAgICAgdGhpcy5idWZmZXJzID0gW107XG4gICAgfVxufVxuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlRyYW5zcG9ydCA9IGV4cG9ydHMuVHJhbnNwb3J0RXJyb3IgPSB2b2lkIDA7XG5jb25zdCBlbmdpbmVfaW9fcGFyc2VyXzEgPSByZXF1aXJlKFwiZW5naW5lLmlvLXBhcnNlclwiKTtcbmNvbnN0IGNvbXBvbmVudF9lbWl0dGVyXzEgPSByZXF1aXJlKFwiQHNvY2tldC5pby9jb21wb25lbnQtZW1pdHRlclwiKTtcbmNvbnN0IHV0aWxfanNfMSA9IHJlcXVpcmUoXCIuL3V0aWwuanNcIik7XG5jb25zdCBkZWJ1Z18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJkZWJ1Z1wiKSk7IC8vIGRlYnVnKClcbmNvbnN0IHBhcnNlcXNfanNfMSA9IHJlcXVpcmUoXCIuL2NvbnRyaWIvcGFyc2Vxcy5qc1wiKTtcbmNvbnN0IGRlYnVnID0gKDAsIGRlYnVnXzEuZGVmYXVsdCkoXCJlbmdpbmUuaW8tY2xpZW50OnRyYW5zcG9ydFwiKTsgLy8gZGVidWcoKVxuY2xhc3MgVHJhbnNwb3J0RXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IocmVhc29uLCBkZXNjcmlwdGlvbiwgY29udGV4dCkge1xuICAgICAgICBzdXBlcihyZWFzb24pO1xuICAgICAgICB0aGlzLmRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247XG4gICAgICAgIHRoaXMuY29udGV4dCA9IGNvbnRleHQ7XG4gICAgICAgIHRoaXMudHlwZSA9IFwiVHJhbnNwb3J0RXJyb3JcIjtcbiAgICB9XG59XG5leHBvcnRzLlRyYW5zcG9ydEVycm9yID0gVHJhbnNwb3J0RXJyb3I7XG5jbGFzcyBUcmFuc3BvcnQgZXh0ZW5kcyBjb21wb25lbnRfZW1pdHRlcl8xLkVtaXR0ZXIge1xuICAgIC8qKlxuICAgICAqIFRyYW5zcG9ydCBhYnN0cmFjdCBjb25zdHJ1Y3Rvci5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9uc1xuICAgICAqIEBwcm90ZWN0ZWRcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMud3JpdGFibGUgPSBmYWxzZTtcbiAgICAgICAgKDAsIHV0aWxfanNfMS5pbnN0YWxsVGltZXJGdW5jdGlvbnMpKHRoaXMsIG9wdHMpO1xuICAgICAgICB0aGlzLm9wdHMgPSBvcHRzO1xuICAgICAgICB0aGlzLnF1ZXJ5ID0gb3B0cy5xdWVyeTtcbiAgICAgICAgdGhpcy5zb2NrZXQgPSBvcHRzLnNvY2tldDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRW1pdHMgYW4gZXJyb3IuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gcmVhc29uXG4gICAgICogQHBhcmFtIGRlc2NyaXB0aW9uXG4gICAgICogQHBhcmFtIGNvbnRleHQgLSB0aGUgZXJyb3IgY29udGV4dFxuICAgICAqIEByZXR1cm4ge1RyYW5zcG9ydH0gZm9yIGNoYWluaW5nXG4gICAgICogQHByb3RlY3RlZFxuICAgICAqL1xuICAgIG9uRXJyb3IocmVhc29uLCBkZXNjcmlwdGlvbiwgY29udGV4dCkge1xuICAgICAgICBzdXBlci5lbWl0UmVzZXJ2ZWQoXCJlcnJvclwiLCBuZXcgVHJhbnNwb3J0RXJyb3IocmVhc29uLCBkZXNjcmlwdGlvbiwgY29udGV4dCkpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogT3BlbnMgdGhlIHRyYW5zcG9ydC5cbiAgICAgKi9cbiAgICBvcGVuKCkge1xuICAgICAgICB0aGlzLnJlYWR5U3RhdGUgPSBcIm9wZW5pbmdcIjtcbiAgICAgICAgdGhpcy5kb09wZW4oKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENsb3NlcyB0aGUgdHJhbnNwb3J0LlxuICAgICAqL1xuICAgIGNsb3NlKCkge1xuICAgICAgICBpZiAodGhpcy5yZWFkeVN0YXRlID09PSBcIm9wZW5pbmdcIiB8fCB0aGlzLnJlYWR5U3RhdGUgPT09IFwib3BlblwiKSB7XG4gICAgICAgICAgICB0aGlzLmRvQ2xvc2UoKTtcbiAgICAgICAgICAgIHRoaXMub25DbG9zZSgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZW5kcyBtdWx0aXBsZSBwYWNrZXRzLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtBcnJheX0gcGFja2V0c1xuICAgICAqL1xuICAgIHNlbmQocGFja2V0cykge1xuICAgICAgICBpZiAodGhpcy5yZWFkeVN0YXRlID09PSBcIm9wZW5cIikge1xuICAgICAgICAgICAgdGhpcy53cml0ZShwYWNrZXRzKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIC8vIHRoaXMgbWlnaHQgaGFwcGVuIGlmIHRoZSB0cmFuc3BvcnQgd2FzIHNpbGVudGx5IGNsb3NlZCBpbiB0aGUgYmVmb3JldW5sb2FkIGV2ZW50IGhhbmRsZXJcbiAgICAgICAgICAgIGRlYnVnKFwidHJhbnNwb3J0IGlzIG5vdCBvcGVuLCBkaXNjYXJkaW5nIHBhY2tldHNcIik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2FsbGVkIHVwb24gb3BlblxuICAgICAqXG4gICAgICogQHByb3RlY3RlZFxuICAgICAqL1xuICAgIG9uT3BlbigpIHtcbiAgICAgICAgdGhpcy5yZWFkeVN0YXRlID0gXCJvcGVuXCI7XG4gICAgICAgIHRoaXMud3JpdGFibGUgPSB0cnVlO1xuICAgICAgICBzdXBlci5lbWl0UmVzZXJ2ZWQoXCJvcGVuXCIpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgd2l0aCBkYXRhLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IGRhdGFcbiAgICAgKiBAcHJvdGVjdGVkXG4gICAgICovXG4gICAgb25EYXRhKGRhdGEpIHtcbiAgICAgICAgY29uc3QgcGFja2V0ID0gKDAsIGVuZ2luZV9pb19wYXJzZXJfMS5kZWNvZGVQYWNrZXQpKGRhdGEsIHRoaXMuc29ja2V0LmJpbmFyeVR5cGUpO1xuICAgICAgICB0aGlzLm9uUGFja2V0KHBhY2tldCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENhbGxlZCB3aXRoIGEgZGVjb2RlZCBwYWNrZXQuXG4gICAgICpcbiAgICAgKiBAcHJvdGVjdGVkXG4gICAgICovXG4gICAgb25QYWNrZXQocGFja2V0KSB7XG4gICAgICAgIHN1cGVyLmVtaXRSZXNlcnZlZChcInBhY2tldFwiLCBwYWNrZXQpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgdXBvbiBjbG9zZS5cbiAgICAgKlxuICAgICAqIEBwcm90ZWN0ZWRcbiAgICAgKi9cbiAgICBvbkNsb3NlKGRldGFpbHMpIHtcbiAgICAgICAgdGhpcy5yZWFkeVN0YXRlID0gXCJjbG9zZWRcIjtcbiAgICAgICAgc3VwZXIuZW1pdFJlc2VydmVkKFwiY2xvc2VcIiwgZGV0YWlscyk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFBhdXNlcyB0aGUgdHJhbnNwb3J0LCBpbiBvcmRlciBub3QgdG8gbG9zZSBwYWNrZXRzIGR1cmluZyBhbiB1cGdyYWRlLlxuICAgICAqXG4gICAgICogQHBhcmFtIG9uUGF1c2VcbiAgICAgKi9cbiAgICBwYXVzZShvblBhdXNlKSB7IH1cbiAgICBjcmVhdGVVcmkoc2NoZW1hLCBxdWVyeSA9IHt9KSB7XG4gICAgICAgIHJldHVybiAoc2NoZW1hICtcbiAgICAgICAgICAgIFwiOi8vXCIgK1xuICAgICAgICAgICAgdGhpcy5faG9zdG5hbWUoKSArXG4gICAgICAgICAgICB0aGlzLl9wb3J0KCkgK1xuICAgICAgICAgICAgdGhpcy5vcHRzLnBhdGggK1xuICAgICAgICAgICAgdGhpcy5fcXVlcnkocXVlcnkpKTtcbiAgICB9XG4gICAgX2hvc3RuYW1lKCkge1xuICAgICAgICBjb25zdCBob3N0bmFtZSA9IHRoaXMub3B0cy5ob3N0bmFtZTtcbiAgICAgICAgcmV0dXJuIGhvc3RuYW1lLmluZGV4T2YoXCI6XCIpID09PSAtMSA/IGhvc3RuYW1lIDogXCJbXCIgKyBob3N0bmFtZSArIFwiXVwiO1xuICAgIH1cbiAgICBfcG9ydCgpIHtcbiAgICAgICAgaWYgKHRoaXMub3B0cy5wb3J0ICYmXG4gICAgICAgICAgICAoKHRoaXMub3B0cy5zZWN1cmUgJiYgTnVtYmVyKHRoaXMub3B0cy5wb3J0ICE9PSA0NDMpKSB8fFxuICAgICAgICAgICAgICAgICghdGhpcy5vcHRzLnNlY3VyZSAmJiBOdW1iZXIodGhpcy5vcHRzLnBvcnQpICE9PSA4MCkpKSB7XG4gICAgICAgICAgICByZXR1cm4gXCI6XCIgKyB0aGlzLm9wdHMucG9ydDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9xdWVyeShxdWVyeSkge1xuICAgICAgICBjb25zdCBlbmNvZGVkUXVlcnkgPSAoMCwgcGFyc2Vxc19qc18xLmVuY29kZSkocXVlcnkpO1xuICAgICAgICByZXR1cm4gZW5jb2RlZFF1ZXJ5Lmxlbmd0aCA/IFwiP1wiICsgZW5jb2RlZFF1ZXJ5IDogXCJcIjtcbiAgICB9XG59XG5leHBvcnRzLlRyYW5zcG9ydCA9IFRyYW5zcG9ydDtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5yZWNvbnN0cnVjdFBhY2tldCA9IGV4cG9ydHMuZGVjb25zdHJ1Y3RQYWNrZXQgPSB2b2lkIDA7XG5jb25zdCBpc19iaW5hcnlfanNfMSA9IHJlcXVpcmUoXCIuL2lzLWJpbmFyeS5qc1wiKTtcbi8qKlxuICogUmVwbGFjZXMgZXZlcnkgQnVmZmVyIHwgQXJyYXlCdWZmZXIgfCBCbG9iIHwgRmlsZSBpbiBwYWNrZXQgd2l0aCBhIG51bWJlcmVkIHBsYWNlaG9sZGVyLlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwYWNrZXQgLSBzb2NrZXQuaW8gZXZlbnQgcGFja2V0XG4gKiBAcmV0dXJuIHtPYmplY3R9IHdpdGggZGVjb25zdHJ1Y3RlZCBwYWNrZXQgYW5kIGxpc3Qgb2YgYnVmZmVyc1xuICogQHB1YmxpY1xuICovXG5mdW5jdGlvbiBkZWNvbnN0cnVjdFBhY2tldChwYWNrZXQpIHtcbiAgICBjb25zdCBidWZmZXJzID0gW107XG4gICAgY29uc3QgcGFja2V0RGF0YSA9IHBhY2tldC5kYXRhO1xuICAgIGNvbnN0IHBhY2sgPSBwYWNrZXQ7XG4gICAgcGFjay5kYXRhID0gX2RlY29uc3RydWN0UGFja2V0KHBhY2tldERhdGEsIGJ1ZmZlcnMpO1xuICAgIHBhY2suYXR0YWNobWVudHMgPSBidWZmZXJzLmxlbmd0aDsgLy8gbnVtYmVyIG9mIGJpbmFyeSAnYXR0YWNobWVudHMnXG4gICAgcmV0dXJuIHsgcGFja2V0OiBwYWNrLCBidWZmZXJzOiBidWZmZXJzIH07XG59XG5leHBvcnRzLmRlY29uc3RydWN0UGFja2V0ID0gZGVjb25zdHJ1Y3RQYWNrZXQ7XG5mdW5jdGlvbiBfZGVjb25zdHJ1Y3RQYWNrZXQoZGF0YSwgYnVmZmVycykge1xuICAgIGlmICghZGF0YSlcbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgaWYgKCgwLCBpc19iaW5hcnlfanNfMS5pc0JpbmFyeSkoZGF0YSkpIHtcbiAgICAgICAgY29uc3QgcGxhY2Vob2xkZXIgPSB7IF9wbGFjZWhvbGRlcjogdHJ1ZSwgbnVtOiBidWZmZXJzLmxlbmd0aCB9O1xuICAgICAgICBidWZmZXJzLnB1c2goZGF0YSk7XG4gICAgICAgIHJldHVybiBwbGFjZWhvbGRlcjtcbiAgICB9XG4gICAgZWxzZSBpZiAoQXJyYXkuaXNBcnJheShkYXRhKSkge1xuICAgICAgICBjb25zdCBuZXdEYXRhID0gbmV3IEFycmF5KGRhdGEubGVuZ3RoKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBuZXdEYXRhW2ldID0gX2RlY29uc3RydWN0UGFja2V0KGRhdGFbaV0sIGJ1ZmZlcnMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXdEYXRhO1xuICAgIH1cbiAgICBlbHNlIGlmICh0eXBlb2YgZGF0YSA9PT0gXCJvYmplY3RcIiAmJiAhKGRhdGEgaW5zdGFuY2VvZiBEYXRlKSkge1xuICAgICAgICBjb25zdCBuZXdEYXRhID0ge307XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGRhdGEpIHtcbiAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZGF0YSwga2V5KSkge1xuICAgICAgICAgICAgICAgIG5ld0RhdGFba2V5XSA9IF9kZWNvbnN0cnVjdFBhY2tldChkYXRhW2tleV0sIGJ1ZmZlcnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXdEYXRhO1xuICAgIH1cbiAgICByZXR1cm4gZGF0YTtcbn1cbi8qKlxuICogUmVjb25zdHJ1Y3RzIGEgYmluYXJ5IHBhY2tldCBmcm9tIGl0cyBwbGFjZWhvbGRlciBwYWNrZXQgYW5kIGJ1ZmZlcnNcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcGFja2V0IC0gZXZlbnQgcGFja2V0IHdpdGggcGxhY2Vob2xkZXJzXG4gKiBAcGFyYW0ge0FycmF5fSBidWZmZXJzIC0gYmluYXJ5IGJ1ZmZlcnMgdG8gcHV0IGluIHBsYWNlaG9sZGVyIHBvc2l0aW9uc1xuICogQHJldHVybiB7T2JqZWN0fSByZWNvbnN0cnVjdGVkIHBhY2tldFxuICogQHB1YmxpY1xuICovXG5mdW5jdGlvbiByZWNvbnN0cnVjdFBhY2tldChwYWNrZXQsIGJ1ZmZlcnMpIHtcbiAgICBwYWNrZXQuZGF0YSA9IF9yZWNvbnN0cnVjdFBhY2tldChwYWNrZXQuZGF0YSwgYnVmZmVycyk7XG4gICAgZGVsZXRlIHBhY2tldC5hdHRhY2htZW50czsgLy8gbm8gbG9uZ2VyIHVzZWZ1bFxuICAgIHJldHVybiBwYWNrZXQ7XG59XG5leHBvcnRzLnJlY29uc3RydWN0UGFja2V0ID0gcmVjb25zdHJ1Y3RQYWNrZXQ7XG5mdW5jdGlvbiBfcmVjb25zdHJ1Y3RQYWNrZXQoZGF0YSwgYnVmZmVycykge1xuICAgIGlmICghZGF0YSlcbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgaWYgKGRhdGEgJiYgZGF0YS5fcGxhY2Vob2xkZXIgPT09IHRydWUpIHtcbiAgICAgICAgY29uc3QgaXNJbmRleFZhbGlkID0gdHlwZW9mIGRhdGEubnVtID09PSBcIm51bWJlclwiICYmXG4gICAgICAgICAgICBkYXRhLm51bSA+PSAwICYmXG4gICAgICAgICAgICBkYXRhLm51bSA8IGJ1ZmZlcnMubGVuZ3RoO1xuICAgICAgICBpZiAoaXNJbmRleFZhbGlkKSB7XG4gICAgICAgICAgICByZXR1cm4gYnVmZmVyc1tkYXRhLm51bV07IC8vIGFwcHJvcHJpYXRlIGJ1ZmZlciAoc2hvdWxkIGJlIG5hdHVyYWwgb3JkZXIgYW55d2F5KVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaWxsZWdhbCBhdHRhY2htZW50c1wiKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIGlmIChBcnJheS5pc0FycmF5KGRhdGEpKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgZGF0YVtpXSA9IF9yZWNvbnN0cnVjdFBhY2tldChkYXRhW2ldLCBidWZmZXJzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIGlmICh0eXBlb2YgZGF0YSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBkYXRhKSB7XG4gICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGRhdGEsIGtleSkpIHtcbiAgICAgICAgICAgICAgICBkYXRhW2tleV0gPSBfcmVjb25zdHJ1Y3RQYWNrZXQoZGF0YVtrZXldLCBidWZmZXJzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZGF0YTtcbn1cbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5uZXh0VGljayA9IGV4cG9ydHMucGFyc2UgPSBleHBvcnRzLmluc3RhbGxUaW1lckZ1bmN0aW9ucyA9IGV4cG9ydHMudHJhbnNwb3J0cyA9IGV4cG9ydHMuVHJhbnNwb3J0RXJyb3IgPSBleHBvcnRzLlRyYW5zcG9ydCA9IGV4cG9ydHMucHJvdG9jb2wgPSBleHBvcnRzLlNvY2tldCA9IHZvaWQgMDtcbmNvbnN0IHNvY2tldF9qc18xID0gcmVxdWlyZShcIi4vc29ja2V0LmpzXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiU29ja2V0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBzb2NrZXRfanNfMS5Tb2NrZXQ7IH0gfSk7XG5leHBvcnRzLnByb3RvY29sID0gc29ja2V0X2pzXzEuU29ja2V0LnByb3RvY29sO1xudmFyIHRyYW5zcG9ydF9qc18xID0gcmVxdWlyZShcIi4vdHJhbnNwb3J0LmpzXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiVHJhbnNwb3J0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiB0cmFuc3BvcnRfanNfMS5UcmFuc3BvcnQ7IH0gfSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJUcmFuc3BvcnRFcnJvclwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gdHJhbnNwb3J0X2pzXzEuVHJhbnNwb3J0RXJyb3I7IH0gfSk7XG52YXIgaW5kZXhfanNfMSA9IHJlcXVpcmUoXCIuL3RyYW5zcG9ydHMvaW5kZXguanNcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJ0cmFuc3BvcnRzXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBpbmRleF9qc18xLnRyYW5zcG9ydHM7IH0gfSk7XG52YXIgdXRpbF9qc18xID0gcmVxdWlyZShcIi4vdXRpbC5qc1wiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImluc3RhbGxUaW1lckZ1bmN0aW9uc1wiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gdXRpbF9qc18xLmluc3RhbGxUaW1lckZ1bmN0aW9uczsgfSB9KTtcbnZhciBwYXJzZXVyaV9qc18xID0gcmVxdWlyZShcIi4vY29udHJpYi9wYXJzZXVyaS5qc1wiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcInBhcnNlXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBwYXJzZXVyaV9qc18xLnBhcnNlOyB9IH0pO1xudmFyIHdlYnNvY2tldF9jb25zdHJ1Y3Rvcl9qc18xID0gcmVxdWlyZShcIi4vdHJhbnNwb3J0cy93ZWJzb2NrZXQtY29uc3RydWN0b3IuanNcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJuZXh0VGlja1wiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gd2Vic29ja2V0X2NvbnN0cnVjdG9yX2pzXzEubmV4dFRpY2s7IH0gfSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuaW5pdCA9IHZvaWQgMDtcbmNvbnN0IENoXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vQ2hcIikpO1xuY29uc3QgVHVuZU9wdGlvbl8xID0gcmVxdWlyZShcIi4vVHVuZU9wdGlvblwiKTtcbmNsYXNzIEJvb3RPcHRpb25Nb2RlbCB7XG4gICAgc3RhdGljIGdldENvbm5lY3Rpb24oY29ubmVjdGlvbikge1xuICAgICAgICBpZiAoY29ubmVjdGlvbiA9PT0gJycpXG4gICAgICAgICAgICByZXR1cm4gQ2hfMS5kZWZhdWx0LnJvb3RDb25uZWN0aW9uO1xuICAgICAgICBjb25uZWN0aW9uID0gY29ubmVjdGlvbi5lbmRzV2l0aChDaF8xLmRlZmF1bHQucm9vdENvbm5lY3Rpb24pID8gY29ubmVjdGlvbiA6IGAke2Nvbm5lY3Rpb259JHtDaF8xLmRlZmF1bHQucm9vdENvbm5lY3Rpb259YDtcbiAgICAgICAgcmV0dXJuIGNvbm5lY3Rpb24uc3RhcnRzV2l0aChDaF8xLmRlZmF1bHQucm9vdENvbm5lY3Rpb24pID8gY29ubmVjdGlvbiA6IGAke0NoXzEuZGVmYXVsdC5yb290Q29ubmVjdGlvbn0ke2Nvbm5lY3Rpb259YDtcbiAgICB9XG4gICAgc3RhdGljIGdldFR1bmVPcHRpb25TdHJpbmcodHVuZU9wdGlvbikge1xuICAgICAgICBsZXQgdHVuZU9wdGlvbk51bWJlcnMgPSB7fTtcbiAgICAgICAgT2JqZWN0LmtleXModHVuZU9wdGlvbikuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0dW5lT3B0aW9uS2V5ID0ga2V5O1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBOdW1iZXIodHVuZU9wdGlvblt0dW5lT3B0aW9uS2V5XSk7XG4gICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0dW5lT3B0aW9uTnVtYmVyc1t0dW5lT3B0aW9uS2V5XSA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgcGFyc2VkVHVuZU9wdGlvbiA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodHVuZU9wdGlvbk51bWJlcnMpKTtcbiAgICAgICAgcmV0dXJuIG5ldyBVUkxTZWFyY2hQYXJhbXMocGFyc2VkVHVuZU9wdGlvbikudG9TdHJpbmcoKTtcbiAgICB9XG4gICAgY29uc3RydWN0b3IocGFyYW1zID0gZXhwb3J0cy5pbml0KSB7XG4gICAgICAgIHRoaXMuaGFzU2xhc2ggPSBmYWxzZTtcbiAgICAgICAgdGhpcy5wcm90b2NvbCA9ICcnO1xuICAgICAgICB0aGlzLmhvc3QgPSAnJztcbiAgICAgICAgdGhpcy5jb25uZWN0aW9uID0gQ2hfMS5kZWZhdWx0LnJvb3RDb25uZWN0aW9uO1xuICAgICAgICB0aGlzLnR1bmVPcHRpb24gPSBUdW5lT3B0aW9uXzEuaW5pdDtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24odGhpcywgcGFyYW1zKTtcbiAgICB9XG59XG5leHBvcnRzLmRlZmF1bHQgPSBCb290T3B0aW9uTW9kZWw7XG5leHBvcnRzLmluaXQgPSB7XG4gICAgaGFzU2xhc2g6IGZhbHNlLFxuICAgIHByb3RvY29sOiAnJyxcbiAgICBob3N0OiAnJyxcbiAgICBjb25uZWN0aW9uOiAnJyxcbiAgICB0dW5lT3B0aW9uOiB7fSxcbn07XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuYnl0ZUxlbmd0aCA9IGV4cG9ydHMuaW5zdGFsbFRpbWVyRnVuY3Rpb25zID0gZXhwb3J0cy5waWNrID0gdm9pZCAwO1xuY29uc3QgZ2xvYmFsVGhpc19qc18xID0gcmVxdWlyZShcIi4vZ2xvYmFsVGhpcy5qc1wiKTtcbmZ1bmN0aW9uIHBpY2sob2JqLCAuLi5hdHRyKSB7XG4gICAgcmV0dXJuIGF0dHIucmVkdWNlKChhY2MsIGspID0+IHtcbiAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShrKSkge1xuICAgICAgICAgICAgYWNjW2tdID0gb2JqW2tdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30pO1xufVxuZXhwb3J0cy5waWNrID0gcGljaztcbi8vIEtlZXAgYSByZWZlcmVuY2UgdG8gdGhlIHJlYWwgdGltZW91dCBmdW5jdGlvbnMgc28gdGhleSBjYW4gYmUgdXNlZCB3aGVuIG92ZXJyaWRkZW5cbmNvbnN0IE5BVElWRV9TRVRfVElNRU9VVCA9IGdsb2JhbFRoaXNfanNfMS5nbG9iYWxUaGlzU2hpbS5zZXRUaW1lb3V0O1xuY29uc3QgTkFUSVZFX0NMRUFSX1RJTUVPVVQgPSBnbG9iYWxUaGlzX2pzXzEuZ2xvYmFsVGhpc1NoaW0uY2xlYXJUaW1lb3V0O1xuZnVuY3Rpb24gaW5zdGFsbFRpbWVyRnVuY3Rpb25zKG9iaiwgb3B0cykge1xuICAgIGlmIChvcHRzLnVzZU5hdGl2ZVRpbWVycykge1xuICAgICAgICBvYmouc2V0VGltZW91dEZuID0gTkFUSVZFX1NFVF9USU1FT1VULmJpbmQoZ2xvYmFsVGhpc19qc18xLmdsb2JhbFRoaXNTaGltKTtcbiAgICAgICAgb2JqLmNsZWFyVGltZW91dEZuID0gTkFUSVZFX0NMRUFSX1RJTUVPVVQuYmluZChnbG9iYWxUaGlzX2pzXzEuZ2xvYmFsVGhpc1NoaW0pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgb2JqLnNldFRpbWVvdXRGbiA9IGdsb2JhbFRoaXNfanNfMS5nbG9iYWxUaGlzU2hpbS5zZXRUaW1lb3V0LmJpbmQoZ2xvYmFsVGhpc19qc18xLmdsb2JhbFRoaXNTaGltKTtcbiAgICAgICAgb2JqLmNsZWFyVGltZW91dEZuID0gZ2xvYmFsVGhpc19qc18xLmdsb2JhbFRoaXNTaGltLmNsZWFyVGltZW91dC5iaW5kKGdsb2JhbFRoaXNfanNfMS5nbG9iYWxUaGlzU2hpbSk7XG4gICAgfVxufVxuZXhwb3J0cy5pbnN0YWxsVGltZXJGdW5jdGlvbnMgPSBpbnN0YWxsVGltZXJGdW5jdGlvbnM7XG4vLyBiYXNlNjQgZW5jb2RlZCBidWZmZXJzIGFyZSBhYm91dCAzMyUgYmlnZ2VyIChodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9CYXNlNjQpXG5jb25zdCBCQVNFNjRfT1ZFUkhFQUQgPSAxLjMzO1xuLy8gd2UgY291bGQgYWxzbyBoYXZlIHVzZWQgYG5ldyBCbG9iKFtvYmpdKS5zaXplYCwgYnV0IGl0IGlzbid0IHN1cHBvcnRlZCBpbiBJRTlcbmZ1bmN0aW9uIGJ5dGVMZW5ndGgob2JqKSB7XG4gICAgaWYgKHR5cGVvZiBvYmogPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgcmV0dXJuIHV0ZjhMZW5ndGgob2JqKTtcbiAgICB9XG4gICAgLy8gYXJyYXlidWZmZXIgb3IgYmxvYlxuICAgIHJldHVybiBNYXRoLmNlaWwoKG9iai5ieXRlTGVuZ3RoIHx8IG9iai5zaXplKSAqIEJBU0U2NF9PVkVSSEVBRCk7XG59XG5leHBvcnRzLmJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoO1xuZnVuY3Rpb24gdXRmOExlbmd0aChzdHIpIHtcbiAgICBsZXQgYyA9IDAsIGxlbmd0aCA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDAsIGwgPSBzdHIubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgIGMgPSBzdHIuY2hhckNvZGVBdChpKTtcbiAgICAgICAgaWYgKGMgPCAweDgwKSB7XG4gICAgICAgICAgICBsZW5ndGggKz0gMTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChjIDwgMHg4MDApIHtcbiAgICAgICAgICAgIGxlbmd0aCArPSAyO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGMgPCAweGQ4MDAgfHwgYyA+PSAweGUwMDApIHtcbiAgICAgICAgICAgIGxlbmd0aCArPSAzO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgbGVuZ3RoICs9IDQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGxlbmd0aDtcbn1cbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuY29uc3QgZGVmaW5lID0ge1xuICAgIEFQUF9OQU1FOiBcInRhbGtuXCIsXG4gICAgUFJPRFVDVElPTjogXCJQUk9EVUNUSU9OXCIsXG4gICAgTE9DQUxIT1NUOiBcIkxPQ0FMSE9TVFwiLFxuICAgIERFVkVMT1BNRU5UOiBcIkRFVkVMT1BNRU5UXCIsXG4gICAgUFJPRFVDVElPTl9ET01BSU46IFwidGFsa24uaW9cIixcbiAgICBQUk9EVUNUSU9OX0FQSV9ET01BSU46IFwiYXBpLnRhbGtuLmlvXCIsXG4gICAgREVWRUxPUE1FTlRfRE9NQUlOOiBcImxvY2FsaG9zdFwiLFxuICAgIEFXU19IT1NUX0tFWTogXCJjb21wdXRlLmludGVybmFsXCIsIC8vJ2VjMi5pbnRlcm5hbCcsXG4gICAgUE9SVFM6IHtcbiAgICAgICAgSFRUUDogODAsXG4gICAgICAgIEhUVFBTOiA0NDMsXG4gICAgICAgIERFVkVMT1BNRU5UX0NPVkVSOiA4MDAwLFxuICAgICAgICBERVZFTE9QTUVOVF9BUEk6IDgwMDEsXG4gICAgICAgIERFVkVMT1BNRU5UX0NPTVBPTkVOVFM6IDgwMDIsXG4gICAgICAgIERFVkVMT1BNRU5UX1RVTkU6IDgwMDMsXG4gICAgICAgIERFVkVMT1BNRU5UX0NMSUVOVDogODA4MCxcbiAgICAgICAgUkVESVM6IDYzNzksXG4gICAgICAgIE1PTkdPOiAyNzAxNyxcbiAgICAgICAgSU9fTEI6IDEwNDQwLFxuICAgICAgICBJT19ST09UOiAxMDQ0NCxcbiAgICB9LFxuICAgIFNVQl9ET01BSU5TOiB7XG4gICAgICAgIFdXVzogXCJ3d3dcIixcbiAgICAgICAgQVBJOiBcImFwaVwiLFxuICAgICAgICBERVNDOiBcImRlc2NcIixcbiAgICAgICAgUE9SVEFMOiBcInBvcnRhbFwiLFxuICAgICAgICBDTElFTlQ6IFwiY2xpZW50XCIsXG4gICAgICAgIEFTU0VUUzogXCJhc3NldHNcIixcbiAgICAgICAgU0VTU0lPTjogXCJzZXNzaW9uXCIsXG4gICAgICAgIEFVVE86IFwiYXV0b1wiLFxuICAgICAgICBPV046IFwib3duXCIsXG4gICAgICAgIE5FV1M6IFwibmV3c1wiLFxuICAgICAgICBCQU5ORVI6IFwiYmFubmVyXCIsXG4gICAgICAgIENPVkVSOiBcImNvdmVyXCIsXG4gICAgICAgIFJBTks6IFwicmFua1wiLFxuICAgICAgICBFWFQ6IFwiZXh0XCIsXG4gICAgICAgIENPTVBPTkVOVFM6IFwiY29tcG9uZW50c1wiLFxuICAgICAgICBUVU5FOiBcInR1bmVcIixcbiAgICAgICAgVFJBTlNBQ1RJT046IFwidHJhbnNhY3Rpb25cIixcbiAgICAgICAgQVVUSDogXCJhdXRoXCIsXG4gICAgfSxcbiAgICBBUFBfVFlQRVM6IHtcbiAgICAgICAgQ0xJRU5UOiBcIkNMSUVOVFwiLFxuICAgICAgICBQT1JUQUw6IFwiUE9SVEFMXCIsXG4gICAgICAgIEVYVEVOU0lPTjogXCJFWFRFTlNJT05cIixcbiAgICAgICAgQVBJOiBcIkFQSVwiLFxuICAgICAgICBDT1ZFUjogXCJDT1ZFUlwiLFxuICAgICAgICBDT01QT05FTlRTOiBcIkNPTVBPTkVOVFNcIixcbiAgICAgICAgVFVORTogXCJUVU5FXCIsXG4gICAgfSxcbiAgICBVUkw6IHtcbiAgICAgICAgdHdpdHRlcjogXCJodHRwczovL3R3aXR0ZXIuY29tL1wiLFxuICAgICAgICBmYWNlYm9vazogXCJodHRwczovL3d3dy5mYWNlYm9vay5jb20vXCIsXG4gICAgICAgIGFwcHN0b3JlOiBcImh0dHBzOi8vaXR1bmVzLmFwcGxlLmNvbS9hcHAvaWRcIixcbiAgICAgICAgcGxheXN0b3JlOiBcImh0dHBzOi8vcGxheS5nb29nbGUuY29tL3N0b3JlL2FwcHMvZGV0YWlscz9pZD1cIixcbiAgICAgICAgY2hyb21lRXh0ZW5zaW9uOiBcImh0dHBzOi8vY2hyb21lLmdvb2dsZS5jb20vd2Vic3RvcmUvZGV0YWlsL3RhbGtuLWZvci1jaHJvbWUvZGtuZ25tZGxjb2ZhbWJwZmFjY2VwYm5qZ2Zob2xnYm8/aGw9ZW5cIixcbiAgICB9LFxuICAgIHRhbGtuQ2xpZW50SnM6IFwidGFsa24uY2xpZW50LmpzXCIsXG4gICAgdGFsa25BcGlKczogXCJ0YWxrbi5hcGkuanNcIixcbiAgICB0YWxrblJhbmtKczogXCJ0YWxrbi5yYW5rLmpzXCIsXG4gICAgbm9Jbm5lck5vdGlmOiBcIlNvcnJ5LCBObyBGdW5jdGlvbi5cIixcbiAgICBiYW5uZXJDbGFzczogXCJ0YWxrbl9iYW5uZXJcIixcbiAgICBzdG9yYWdlS2V5OiB7XG4gICAgICAgIGJhc2VLZXk6IFwiQHRhbGtuQFwiLFxuICAgICAgICBwb3N0c1RpbWVsaW5lWmVybzogXCJwb3N0c1RpbWVsaW5lWmVyb1wiLFxuICAgICAgICBwb3N0c1RpbWVsaW5lOiBcInBvc3RzVGltZWxpbmVcIixcbiAgICAgICAgcG9zdHNTaW5nbGU6IFwicG9zdHNTaW5nbGVcIixcbiAgICAgICAgcG9zdHNNdWx0aTogXCJwb3N0c011bHRpXCIsXG4gICAgICAgIHBvc3RzQ2hpbGQ6IFwicG9zdHNDaGlsZFwiLFxuICAgICAgICBwb3N0c0xvZ3M6IFwicG9zdHNMb2dzXCIsXG4gICAgICAgIHRocmVhZHM6IFwidGhyZWFkc1wiLFxuICAgIH0sXG59O1xuZXhwb3J0cy5kZWZhdWx0ID0gZGVmaW5lO1xuIiwiLy8gc2hpbSBmb3IgdXNpbmcgcHJvY2VzcyBpbiBicm93c2VyXG52YXIgcHJvY2VzcyA9IG1vZHVsZS5leHBvcnRzID0ge307XG5cbi8vIGNhY2hlZCBmcm9tIHdoYXRldmVyIGdsb2JhbCBpcyBwcmVzZW50IHNvIHRoYXQgdGVzdCBydW5uZXJzIHRoYXQgc3R1YiBpdFxuLy8gZG9uJ3QgYnJlYWsgdGhpbmdzLiAgQnV0IHdlIG5lZWQgdG8gd3JhcCBpdCBpbiBhIHRyeSBjYXRjaCBpbiBjYXNlIGl0IGlzXG4vLyB3cmFwcGVkIGluIHN0cmljdCBtb2RlIGNvZGUgd2hpY2ggZG9lc24ndCBkZWZpbmUgYW55IGdsb2JhbHMuICBJdCdzIGluc2lkZSBhXG4vLyBmdW5jdGlvbiBiZWNhdXNlIHRyeS9jYXRjaGVzIGRlb3B0aW1pemUgaW4gY2VydGFpbiBlbmdpbmVzLlxuXG52YXIgY2FjaGVkU2V0VGltZW91dDtcbnZhciBjYWNoZWRDbGVhclRpbWVvdXQ7XG5cbmZ1bmN0aW9uIGRlZmF1bHRTZXRUaW1vdXQoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdzZXRUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkJyk7XG59XG5mdW5jdGlvbiBkZWZhdWx0Q2xlYXJUaW1lb3V0ICgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2NsZWFyVGltZW91dCBoYXMgbm90IGJlZW4gZGVmaW5lZCcpO1xufVxuKGZ1bmN0aW9uICgpIHtcbiAgICB0cnkge1xuICAgICAgICBpZiAodHlwZW9mIHNldFRpbWVvdXQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGNhY2hlZFNldFRpbWVvdXQgPSBzZXRUaW1lb3V0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2FjaGVkU2V0VGltZW91dCA9IGRlZmF1bHRTZXRUaW1vdXQ7XG4gICAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNhY2hlZFNldFRpbWVvdXQgPSBkZWZhdWx0U2V0VGltb3V0O1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICBpZiAodHlwZW9mIGNsZWFyVGltZW91dCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgY2FjaGVkQ2xlYXJUaW1lb3V0ID0gY2xlYXJUaW1lb3V0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2FjaGVkQ2xlYXJUaW1lb3V0ID0gZGVmYXVsdENsZWFyVGltZW91dDtcbiAgICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY2FjaGVkQ2xlYXJUaW1lb3V0ID0gZGVmYXVsdENsZWFyVGltZW91dDtcbiAgICB9XG59ICgpKVxuZnVuY3Rpb24gcnVuVGltZW91dChmdW4pIHtcbiAgICBpZiAoY2FjaGVkU2V0VGltZW91dCA9PT0gc2V0VGltZW91dCkge1xuICAgICAgICAvL25vcm1hbCBlbnZpcm9tZW50cyBpbiBzYW5lIHNpdHVhdGlvbnNcbiAgICAgICAgcmV0dXJuIHNldFRpbWVvdXQoZnVuLCAwKTtcbiAgICB9XG4gICAgLy8gaWYgc2V0VGltZW91dCB3YXNuJ3QgYXZhaWxhYmxlIGJ1dCB3YXMgbGF0dGVyIGRlZmluZWRcbiAgICBpZiAoKGNhY2hlZFNldFRpbWVvdXQgPT09IGRlZmF1bHRTZXRUaW1vdXQgfHwgIWNhY2hlZFNldFRpbWVvdXQpICYmIHNldFRpbWVvdXQpIHtcbiAgICAgICAgY2FjaGVkU2V0VGltZW91dCA9IHNldFRpbWVvdXQ7XG4gICAgICAgIHJldHVybiBzZXRUaW1lb3V0KGZ1biwgMCk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIC8vIHdoZW4gd2hlbiBzb21lYm9keSBoYXMgc2NyZXdlZCB3aXRoIHNldFRpbWVvdXQgYnV0IG5vIEkuRS4gbWFkZG5lc3NcbiAgICAgICAgcmV0dXJuIGNhY2hlZFNldFRpbWVvdXQoZnVuLCAwKTtcbiAgICB9IGNhdGNoKGUpe1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gV2hlbiB3ZSBhcmUgaW4gSS5FLiBidXQgdGhlIHNjcmlwdCBoYXMgYmVlbiBldmFsZWQgc28gSS5FLiBkb2Vzbid0IHRydXN0IHRoZSBnbG9iYWwgb2JqZWN0IHdoZW4gY2FsbGVkIG5vcm1hbGx5XG4gICAgICAgICAgICByZXR1cm4gY2FjaGVkU2V0VGltZW91dC5jYWxsKG51bGwsIGZ1biwgMCk7XG4gICAgICAgIH0gY2F0Y2goZSl7XG4gICAgICAgICAgICAvLyBzYW1lIGFzIGFib3ZlIGJ1dCB3aGVuIGl0J3MgYSB2ZXJzaW9uIG9mIEkuRS4gdGhhdCBtdXN0IGhhdmUgdGhlIGdsb2JhbCBvYmplY3QgZm9yICd0aGlzJywgaG9wZnVsbHkgb3VyIGNvbnRleHQgY29ycmVjdCBvdGhlcndpc2UgaXQgd2lsbCB0aHJvdyBhIGdsb2JhbCBlcnJvclxuICAgICAgICAgICAgcmV0dXJuIGNhY2hlZFNldFRpbWVvdXQuY2FsbCh0aGlzLCBmdW4sIDApO1xuICAgICAgICB9XG4gICAgfVxuXG5cbn1cbmZ1bmN0aW9uIHJ1bkNsZWFyVGltZW91dChtYXJrZXIpIHtcbiAgICBpZiAoY2FjaGVkQ2xlYXJUaW1lb3V0ID09PSBjbGVhclRpbWVvdXQpIHtcbiAgICAgICAgLy9ub3JtYWwgZW52aXJvbWVudHMgaW4gc2FuZSBzaXR1YXRpb25zXG4gICAgICAgIHJldHVybiBjbGVhclRpbWVvdXQobWFya2VyKTtcbiAgICB9XG4gICAgLy8gaWYgY2xlYXJUaW1lb3V0IHdhc24ndCBhdmFpbGFibGUgYnV0IHdhcyBsYXR0ZXIgZGVmaW5lZFxuICAgIGlmICgoY2FjaGVkQ2xlYXJUaW1lb3V0ID09PSBkZWZhdWx0Q2xlYXJUaW1lb3V0IHx8ICFjYWNoZWRDbGVhclRpbWVvdXQpICYmIGNsZWFyVGltZW91dCkge1xuICAgICAgICBjYWNoZWRDbGVhclRpbWVvdXQgPSBjbGVhclRpbWVvdXQ7XG4gICAgICAgIHJldHVybiBjbGVhclRpbWVvdXQobWFya2VyKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgLy8gd2hlbiB3aGVuIHNvbWVib2R5IGhhcyBzY3Jld2VkIHdpdGggc2V0VGltZW91dCBidXQgbm8gSS5FLiBtYWRkbmVzc1xuICAgICAgICByZXR1cm4gY2FjaGVkQ2xlYXJUaW1lb3V0KG1hcmtlcik7XG4gICAgfSBjYXRjaCAoZSl7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBXaGVuIHdlIGFyZSBpbiBJLkUuIGJ1dCB0aGUgc2NyaXB0IGhhcyBiZWVuIGV2YWxlZCBzbyBJLkUuIGRvZXNuJ3QgIHRydXN0IHRoZSBnbG9iYWwgb2JqZWN0IHdoZW4gY2FsbGVkIG5vcm1hbGx5XG4gICAgICAgICAgICByZXR1cm4gY2FjaGVkQ2xlYXJUaW1lb3V0LmNhbGwobnVsbCwgbWFya2VyKTtcbiAgICAgICAgfSBjYXRjaCAoZSl7XG4gICAgICAgICAgICAvLyBzYW1lIGFzIGFib3ZlIGJ1dCB3aGVuIGl0J3MgYSB2ZXJzaW9uIG9mIEkuRS4gdGhhdCBtdXN0IGhhdmUgdGhlIGdsb2JhbCBvYmplY3QgZm9yICd0aGlzJywgaG9wZnVsbHkgb3VyIGNvbnRleHQgY29ycmVjdCBvdGhlcndpc2UgaXQgd2lsbCB0aHJvdyBhIGdsb2JhbCBlcnJvci5cbiAgICAgICAgICAgIC8vIFNvbWUgdmVyc2lvbnMgb2YgSS5FLiBoYXZlIGRpZmZlcmVudCBydWxlcyBmb3IgY2xlYXJUaW1lb3V0IHZzIHNldFRpbWVvdXRcbiAgICAgICAgICAgIHJldHVybiBjYWNoZWRDbGVhclRpbWVvdXQuY2FsbCh0aGlzLCBtYXJrZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG5cblxufVxudmFyIHF1ZXVlID0gW107XG52YXIgZHJhaW5pbmcgPSBmYWxzZTtcbnZhciBjdXJyZW50UXVldWU7XG52YXIgcXVldWVJbmRleCA9IC0xO1xuXG5mdW5jdGlvbiBjbGVhblVwTmV4dFRpY2soKSB7XG4gICAgaWYgKCFkcmFpbmluZyB8fCAhY3VycmVudFF1ZXVlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZHJhaW5pbmcgPSBmYWxzZTtcbiAgICBpZiAoY3VycmVudFF1ZXVlLmxlbmd0aCkge1xuICAgICAgICBxdWV1ZSA9IGN1cnJlbnRRdWV1ZS5jb25jYXQocXVldWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHF1ZXVlSW5kZXggPSAtMTtcbiAgICB9XG4gICAgaWYgKHF1ZXVlLmxlbmd0aCkge1xuICAgICAgICBkcmFpblF1ZXVlKCk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBkcmFpblF1ZXVlKCkge1xuICAgIGlmIChkcmFpbmluZykge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIHZhciB0aW1lb3V0ID0gcnVuVGltZW91dChjbGVhblVwTmV4dFRpY2spO1xuICAgIGRyYWluaW5nID0gdHJ1ZTtcblxuICAgIHZhciBsZW4gPSBxdWV1ZS5sZW5ndGg7XG4gICAgd2hpbGUobGVuKSB7XG4gICAgICAgIGN1cnJlbnRRdWV1ZSA9IHF1ZXVlO1xuICAgICAgICBxdWV1ZSA9IFtdO1xuICAgICAgICB3aGlsZSAoKytxdWV1ZUluZGV4IDwgbGVuKSB7XG4gICAgICAgICAgICBpZiAoY3VycmVudFF1ZXVlKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudFF1ZXVlW3F1ZXVlSW5kZXhdLnJ1bigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHF1ZXVlSW5kZXggPSAtMTtcbiAgICAgICAgbGVuID0gcXVldWUubGVuZ3RoO1xuICAgIH1cbiAgICBjdXJyZW50UXVldWUgPSBudWxsO1xuICAgIGRyYWluaW5nID0gZmFsc2U7XG4gICAgcnVuQ2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xufVxuXG5wcm9jZXNzLm5leHRUaWNrID0gZnVuY3Rpb24gKGZ1bikge1xuICAgIHZhciBhcmdzID0gbmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGggLSAxKTtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGFyZ3NbaSAtIDFdID0gYXJndW1lbnRzW2ldO1xuICAgICAgICB9XG4gICAgfVxuICAgIHF1ZXVlLnB1c2gobmV3IEl0ZW0oZnVuLCBhcmdzKSk7XG4gICAgaWYgKHF1ZXVlLmxlbmd0aCA9PT0gMSAmJiAhZHJhaW5pbmcpIHtcbiAgICAgICAgcnVuVGltZW91dChkcmFpblF1ZXVlKTtcbiAgICB9XG59O1xuXG4vLyB2OCBsaWtlcyBwcmVkaWN0aWJsZSBvYmplY3RzXG5mdW5jdGlvbiBJdGVtKGZ1biwgYXJyYXkpIHtcbiAgICB0aGlzLmZ1biA9IGZ1bjtcbiAgICB0aGlzLmFycmF5ID0gYXJyYXk7XG59XG5JdGVtLnByb3RvdHlwZS5ydW4gPSBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5mdW4uYXBwbHkobnVsbCwgdGhpcy5hcnJheSk7XG59O1xucHJvY2Vzcy50aXRsZSA9ICdicm93c2VyJztcbnByb2Nlc3MuYnJvd3NlciA9IHRydWU7XG5wcm9jZXNzLmVudiA9IHt9O1xucHJvY2Vzcy5hcmd2ID0gW107XG5wcm9jZXNzLnZlcnNpb24gPSAnJzsgLy8gZW1wdHkgc3RyaW5nIHRvIGF2b2lkIHJlZ2V4cCBpc3N1ZXNcbnByb2Nlc3MudmVyc2lvbnMgPSB7fTtcblxuZnVuY3Rpb24gbm9vcCgpIHt9XG5cbnByb2Nlc3Mub24gPSBub29wO1xucHJvY2Vzcy5hZGRMaXN0ZW5lciA9IG5vb3A7XG5wcm9jZXNzLm9uY2UgPSBub29wO1xucHJvY2Vzcy5vZmYgPSBub29wO1xucHJvY2Vzcy5yZW1vdmVMaXN0ZW5lciA9IG5vb3A7XG5wcm9jZXNzLnJlbW92ZUFsbExpc3RlbmVycyA9IG5vb3A7XG5wcm9jZXNzLmVtaXQgPSBub29wO1xucHJvY2Vzcy5wcmVwZW5kTGlzdGVuZXIgPSBub29wO1xucHJvY2Vzcy5wcmVwZW5kT25jZUxpc3RlbmVyID0gbm9vcDtcblxucHJvY2Vzcy5saXN0ZW5lcnMgPSBmdW5jdGlvbiAobmFtZSkgeyByZXR1cm4gW10gfVxuXG5wcm9jZXNzLmJpbmRpbmcgPSBmdW5jdGlvbiAobmFtZSkge1xuICAgIHRocm93IG5ldyBFcnJvcigncHJvY2Vzcy5iaW5kaW5nIGlzIG5vdCBzdXBwb3J0ZWQnKTtcbn07XG5cbnByb2Nlc3MuY3dkID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gJy8nIH07XG5wcm9jZXNzLmNoZGlyID0gZnVuY3Rpb24gKGRpcikge1xuICAgIHRocm93IG5ldyBFcnJvcigncHJvY2Vzcy5jaGRpciBpcyBub3Qgc3VwcG9ydGVkJyk7XG59O1xucHJvY2Vzcy51bWFzayA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gMDsgfTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5nZW5lcmF0ZVVuaXF1ZUtleSA9IGV4cG9ydHMuZ2VuZXJhdGVVbmlxdWVLZXlTZXBhcmF0b3IgPSBleHBvcnRzLmlzVmFsaWRLZXkgPSBleHBvcnRzLklTX05PREUgPSBleHBvcnRzLklTX0JST1dTRVIgPSBleHBvcnRzLmlzTm9kZVNlcnZlciA9IHZvaWQgMDtcbmV4cG9ydHMuZ2V0RW52VmFyID0gZ2V0RW52VmFyO1xuY29uc3QgaXNOb2RlU2VydmVyID0gKCkgPT4gdHlwZW9mIHdpbmRvdyA9PT0gXCJ1bmRlZmluZWRcIjtcbmV4cG9ydHMuaXNOb2RlU2VydmVyID0gaXNOb2RlU2VydmVyO1xuLy8gcnVudGltZS50c1xuZXhwb3J0cy5JU19CUk9XU0VSID0gdHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIjtcbmV4cG9ydHMuSVNfTk9ERSA9IHR5cGVvZiBwcm9jZXNzICE9PSBcInVuZGVmaW5lZFwiICYmICEhcHJvY2Vzcy5yZWxlYXNlPy5uYW1lO1xuZnVuY3Rpb24gZ2V0RW52VmFyKGtleSkge1xuICAgIGlmIChleHBvcnRzLklTX05PREUpIHtcbiAgICAgICAgLy8gTm9kZe+8iOOCteODvOODkO+8ieOBoOOBkeWPgueFp1xuICAgICAgICByZXR1cm4gcHJvY2Vzcy5lbnY/LltrZXldO1xuICAgIH1cbiAgICAvLyDjg5bjg6njgqbjgrbjgafjga/lj4LnhafjgZfjgarjgYTvvIjlv4XopoHjgarjgokgcHVibGljIOeSsOWig+WkieaVsOOBuO+8iVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG59XG5jb25zdCBpc1ZhbGlkS2V5ID0gKGtleSwgb2JqKSA9PiB7XG4gICAgcmV0dXJuIGtleSBpbiBvYmo7XG59O1xuZXhwb3J0cy5pc1ZhbGlkS2V5ID0gaXNWYWxpZEtleTtcbmV4cG9ydHMuZ2VuZXJhdGVVbmlxdWVLZXlTZXBhcmF0b3IgPSBcIjo6XCI7XG5jb25zdCBnZW5lcmF0ZVVuaXF1ZUtleSA9IChsYWJlbCA9IFwiaWRcIiwgc2VwZXJhdG9yID0gZXhwb3J0cy5nZW5lcmF0ZVVuaXF1ZUtleVNlcGFyYXRvcikgPT4ge1xuICAgIHJldHVybiAobGFiZWwgK1xuICAgICAgICBzZXBlcmF0b3IgK1xuICAgICAgICBEYXRlLm5vdygpLnRvU3RyaW5nKDM2KSArXG4gICAgICAgIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigyLCA1KSk7XG59O1xuZXhwb3J0cy5nZW5lcmF0ZVVuaXF1ZUtleSA9IGdlbmVyYXRlVW5pcXVlS2V5O1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLm9uID0gdm9pZCAwO1xuZnVuY3Rpb24gb24ob2JqLCBldiwgZm4pIHtcbiAgICBvYmoub24oZXYsIGZuKTtcbiAgICByZXR1cm4gZnVuY3Rpb24gc3ViRGVzdHJveSgpIHtcbiAgICAgICAgb2JqLm9mZihldiwgZm4pO1xuICAgIH07XG59XG5leHBvcnRzLm9uID0gb247XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuU29ja2V0ID0gdm9pZCAwO1xuY29uc3Qgc29ja2V0X2lvX3BhcnNlcl8xID0gcmVxdWlyZShcInNvY2tldC5pby1wYXJzZXJcIik7XG5jb25zdCBvbl9qc18xID0gcmVxdWlyZShcIi4vb24uanNcIik7XG5jb25zdCBjb21wb25lbnRfZW1pdHRlcl8xID0gcmVxdWlyZShcIkBzb2NrZXQuaW8vY29tcG9uZW50LWVtaXR0ZXJcIik7XG5jb25zdCBkZWJ1Z18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJkZWJ1Z1wiKSk7IC8vIGRlYnVnKClcbmNvbnN0IGRlYnVnID0gZGVidWdfMS5kZWZhdWx0KFwic29ja2V0LmlvLWNsaWVudDpzb2NrZXRcIik7IC8vIGRlYnVnKClcbi8qKlxuICogSW50ZXJuYWwgZXZlbnRzLlxuICogVGhlc2UgZXZlbnRzIGNhbid0IGJlIGVtaXR0ZWQgYnkgdGhlIHVzZXIuXG4gKi9cbmNvbnN0IFJFU0VSVkVEX0VWRU5UUyA9IE9iamVjdC5mcmVlemUoe1xuICAgIGNvbm5lY3Q6IDEsXG4gICAgY29ubmVjdF9lcnJvcjogMSxcbiAgICBkaXNjb25uZWN0OiAxLFxuICAgIGRpc2Nvbm5lY3Rpbmc6IDEsXG4gICAgLy8gRXZlbnRFbWl0dGVyIHJlc2VydmVkIGV2ZW50czogaHR0cHM6Ly9ub2RlanMub3JnL2FwaS9ldmVudHMuaHRtbCNldmVudHNfZXZlbnRfbmV3bGlzdGVuZXJcbiAgICBuZXdMaXN0ZW5lcjogMSxcbiAgICByZW1vdmVMaXN0ZW5lcjogMSxcbn0pO1xuLyoqXG4gKiBBIFNvY2tldCBpcyB0aGUgZnVuZGFtZW50YWwgY2xhc3MgZm9yIGludGVyYWN0aW5nIHdpdGggdGhlIHNlcnZlci5cbiAqXG4gKiBBIFNvY2tldCBiZWxvbmdzIHRvIGEgY2VydGFpbiBOYW1lc3BhY2UgKGJ5IGRlZmF1bHQgLykgYW5kIHVzZXMgYW4gdW5kZXJseWluZyB7QGxpbmsgTWFuYWdlcn0gdG8gY29tbXVuaWNhdGUuXG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHNvY2tldCA9IGlvKCk7XG4gKlxuICogc29ja2V0Lm9uKFwiY29ubmVjdFwiLCAoKSA9PiB7XG4gKiAgIGNvbnNvbGUubG9nKFwiY29ubmVjdGVkXCIpO1xuICogfSk7XG4gKlxuICogLy8gc2VuZCBhbiBldmVudCB0byB0aGUgc2VydmVyXG4gKiBzb2NrZXQuZW1pdChcImZvb1wiLCBcImJhclwiKTtcbiAqXG4gKiBzb2NrZXQub24oXCJmb29iYXJcIiwgKCkgPT4ge1xuICogICAvLyBhbiBldmVudCB3YXMgcmVjZWl2ZWQgZnJvbSB0aGUgc2VydmVyXG4gKiB9KTtcbiAqXG4gKiAvLyB1cG9uIGRpc2Nvbm5lY3Rpb25cbiAqIHNvY2tldC5vbihcImRpc2Nvbm5lY3RcIiwgKHJlYXNvbikgPT4ge1xuICogICBjb25zb2xlLmxvZyhgZGlzY29ubmVjdGVkIGR1ZSB0byAke3JlYXNvbn1gKTtcbiAqIH0pO1xuICovXG5jbGFzcyBTb2NrZXQgZXh0ZW5kcyBjb21wb25lbnRfZW1pdHRlcl8xLkVtaXR0ZXIge1xuICAgIC8qKlxuICAgICAqIGBTb2NrZXRgIGNvbnN0cnVjdG9yLlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKGlvLCBuc3AsIG9wdHMpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFdoZXRoZXIgdGhlIHNvY2tldCBpcyBjdXJyZW50bHkgY29ubmVjdGVkIHRvIHRoZSBzZXJ2ZXIuXG4gICAgICAgICAqXG4gICAgICAgICAqIEBleGFtcGxlXG4gICAgICAgICAqIGNvbnN0IHNvY2tldCA9IGlvKCk7XG4gICAgICAgICAqXG4gICAgICAgICAqIHNvY2tldC5vbihcImNvbm5lY3RcIiwgKCkgPT4ge1xuICAgICAgICAgKiAgIGNvbnNvbGUubG9nKHNvY2tldC5jb25uZWN0ZWQpOyAvLyB0cnVlXG4gICAgICAgICAqIH0pO1xuICAgICAgICAgKlxuICAgICAgICAgKiBzb2NrZXQub24oXCJkaXNjb25uZWN0XCIsICgpID0+IHtcbiAgICAgICAgICogICBjb25zb2xlLmxvZyhzb2NrZXQuY29ubmVjdGVkKTsgLy8gZmFsc2VcbiAgICAgICAgICogfSk7XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmNvbm5lY3RlZCA9IGZhbHNlO1xuICAgICAgICAvKipcbiAgICAgICAgICogV2hldGhlciB0aGUgY29ubmVjdGlvbiBzdGF0ZSB3YXMgcmVjb3ZlcmVkIGFmdGVyIGEgdGVtcG9yYXJ5IGRpc2Nvbm5lY3Rpb24uIEluIHRoYXQgY2FzZSwgYW55IG1pc3NlZCBwYWNrZXRzIHdpbGxcbiAgICAgICAgICogYmUgdHJhbnNtaXR0ZWQgYnkgdGhlIHNlcnZlci5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMucmVjb3ZlcmVkID0gZmFsc2U7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBCdWZmZXIgZm9yIHBhY2tldHMgcmVjZWl2ZWQgYmVmb3JlIHRoZSBDT05ORUNUIHBhY2tldFxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5yZWNlaXZlQnVmZmVyID0gW107XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBCdWZmZXIgZm9yIHBhY2tldHMgdGhhdCB3aWxsIGJlIHNlbnQgb25jZSB0aGUgc29ja2V0IGlzIGNvbm5lY3RlZFxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5zZW5kQnVmZmVyID0gW107XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgcXVldWUgb2YgcGFja2V0cyB0byBiZSBzZW50IHdpdGggcmV0cnkgaW4gY2FzZSBvZiBmYWlsdXJlLlxuICAgICAgICAgKlxuICAgICAgICAgKiBQYWNrZXRzIGFyZSBzZW50IG9uZSBieSBvbmUsIGVhY2ggd2FpdGluZyBmb3IgdGhlIHNlcnZlciBhY2tub3dsZWRnZW1lbnQsIGluIG9yZGVyIHRvIGd1YXJhbnRlZSB0aGUgZGVsaXZlcnkgb3JkZXIuXG4gICAgICAgICAqIEBwcml2YXRlXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLl9xdWV1ZSA9IFtdO1xuICAgICAgICAvKipcbiAgICAgICAgICogQSBzZXF1ZW5jZSB0byBnZW5lcmF0ZSB0aGUgSUQgb2YgdGhlIHtAbGluayBRdWV1ZWRQYWNrZXR9LlxuICAgICAgICAgKiBAcHJpdmF0ZVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5fcXVldWVTZXEgPSAwO1xuICAgICAgICB0aGlzLmlkcyA9IDA7XG4gICAgICAgIHRoaXMuYWNrcyA9IHt9O1xuICAgICAgICB0aGlzLmZsYWdzID0ge307XG4gICAgICAgIHRoaXMuaW8gPSBpbztcbiAgICAgICAgdGhpcy5uc3AgPSBuc3A7XG4gICAgICAgIGlmIChvcHRzICYmIG9wdHMuYXV0aCkge1xuICAgICAgICAgICAgdGhpcy5hdXRoID0gb3B0cy5hdXRoO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX29wdHMgPSBPYmplY3QuYXNzaWduKHt9LCBvcHRzKTtcbiAgICAgICAgaWYgKHRoaXMuaW8uX2F1dG9Db25uZWN0KVxuICAgICAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIHNvY2tldCBpcyBjdXJyZW50bHkgZGlzY29ubmVjdGVkXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGNvbnN0IHNvY2tldCA9IGlvKCk7XG4gICAgICpcbiAgICAgKiBzb2NrZXQub24oXCJjb25uZWN0XCIsICgpID0+IHtcbiAgICAgKiAgIGNvbnNvbGUubG9nKHNvY2tldC5kaXNjb25uZWN0ZWQpOyAvLyBmYWxzZVxuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogc29ja2V0Lm9uKFwiZGlzY29ubmVjdFwiLCAoKSA9PiB7XG4gICAgICogICBjb25zb2xlLmxvZyhzb2NrZXQuZGlzY29ubmVjdGVkKTsgLy8gdHJ1ZVxuICAgICAqIH0pO1xuICAgICAqL1xuICAgIGdldCBkaXNjb25uZWN0ZWQoKSB7XG4gICAgICAgIHJldHVybiAhdGhpcy5jb25uZWN0ZWQ7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFN1YnNjcmliZSB0byBvcGVuLCBjbG9zZSBhbmQgcGFja2V0IGV2ZW50c1xuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBzdWJFdmVudHMoKSB7XG4gICAgICAgIGlmICh0aGlzLnN1YnMpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGlvID0gdGhpcy5pbztcbiAgICAgICAgdGhpcy5zdWJzID0gW1xuICAgICAgICAgICAgb25fanNfMS5vbihpbywgXCJvcGVuXCIsIHRoaXMub25vcGVuLmJpbmQodGhpcykpLFxuICAgICAgICAgICAgb25fanNfMS5vbihpbywgXCJwYWNrZXRcIiwgdGhpcy5vbnBhY2tldC5iaW5kKHRoaXMpKSxcbiAgICAgICAgICAgIG9uX2pzXzEub24oaW8sIFwiZXJyb3JcIiwgdGhpcy5vbmVycm9yLmJpbmQodGhpcykpLFxuICAgICAgICAgICAgb25fanNfMS5vbihpbywgXCJjbG9zZVwiLCB0aGlzLm9uY2xvc2UuYmluZCh0aGlzKSksXG4gICAgICAgIF07XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIFNvY2tldCB3aWxsIHRyeSB0byByZWNvbm5lY3Qgd2hlbiBpdHMgTWFuYWdlciBjb25uZWN0cyBvciByZWNvbm5lY3RzLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBjb25zdCBzb2NrZXQgPSBpbygpO1xuICAgICAqXG4gICAgICogY29uc29sZS5sb2coc29ja2V0LmFjdGl2ZSk7IC8vIHRydWVcbiAgICAgKlxuICAgICAqIHNvY2tldC5vbihcImRpc2Nvbm5lY3RcIiwgKHJlYXNvbikgPT4ge1xuICAgICAqICAgaWYgKHJlYXNvbiA9PT0gXCJpbyBzZXJ2ZXIgZGlzY29ubmVjdFwiKSB7XG4gICAgICogICAgIC8vIHRoZSBkaXNjb25uZWN0aW9uIHdhcyBpbml0aWF0ZWQgYnkgdGhlIHNlcnZlciwgeW91IG5lZWQgdG8gbWFudWFsbHkgcmVjb25uZWN0XG4gICAgICogICAgIGNvbnNvbGUubG9nKHNvY2tldC5hY3RpdmUpOyAvLyBmYWxzZVxuICAgICAqICAgfVxuICAgICAqICAgLy8gZWxzZSB0aGUgc29ja2V0IHdpbGwgYXV0b21hdGljYWxseSB0cnkgdG8gcmVjb25uZWN0XG4gICAgICogICBjb25zb2xlLmxvZyhzb2NrZXQuYWN0aXZlKTsgLy8gdHJ1ZVxuICAgICAqIH0pO1xuICAgICAqL1xuICAgIGdldCBhY3RpdmUoKSB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuc3VicztcbiAgICB9XG4gICAgLyoqXG4gICAgICogXCJPcGVuc1wiIHRoZSBzb2NrZXQuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGNvbnN0IHNvY2tldCA9IGlvKHtcbiAgICAgKiAgIGF1dG9Db25uZWN0OiBmYWxzZVxuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogc29ja2V0LmNvbm5lY3QoKTtcbiAgICAgKi9cbiAgICBjb25uZWN0KCkge1xuICAgICAgICBpZiAodGhpcy5jb25uZWN0ZWQpXG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgdGhpcy5zdWJFdmVudHMoKTtcbiAgICAgICAgaWYgKCF0aGlzLmlvW1wiX3JlY29ubmVjdGluZ1wiXSlcbiAgICAgICAgICAgIHRoaXMuaW8ub3BlbigpOyAvLyBlbnN1cmUgb3BlblxuICAgICAgICBpZiAoXCJvcGVuXCIgPT09IHRoaXMuaW8uX3JlYWR5U3RhdGUpXG4gICAgICAgICAgICB0aGlzLm9ub3BlbigpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogQWxpYXMgZm9yIHtAbGluayBjb25uZWN0KCl9LlxuICAgICAqL1xuICAgIG9wZW4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbm5lY3QoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogU2VuZHMgYSBgbWVzc2FnZWAgZXZlbnQuXG4gICAgICpcbiAgICAgKiBUaGlzIG1ldGhvZCBtaW1pY3MgdGhlIFdlYlNvY2tldC5zZW5kKCkgbWV0aG9kLlxuICAgICAqXG4gICAgICogQHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvV2ViU29ja2V0L3NlbmRcbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogc29ja2V0LnNlbmQoXCJoZWxsb1wiKTtcbiAgICAgKlxuICAgICAqIC8vIHRoaXMgaXMgZXF1aXZhbGVudCB0b1xuICAgICAqIHNvY2tldC5lbWl0KFwibWVzc2FnZVwiLCBcImhlbGxvXCIpO1xuICAgICAqXG4gICAgICogQHJldHVybiBzZWxmXG4gICAgICovXG4gICAgc2VuZCguLi5hcmdzKSB7XG4gICAgICAgIGFyZ3MudW5zaGlmdChcIm1lc3NhZ2VcIik7XG4gICAgICAgIHRoaXMuZW1pdC5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIE92ZXJyaWRlIGBlbWl0YC5cbiAgICAgKiBJZiB0aGUgZXZlbnQgaXMgaW4gYGV2ZW50c2AsIGl0J3MgZW1pdHRlZCBub3JtYWxseS5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogc29ja2V0LmVtaXQoXCJoZWxsb1wiLCBcIndvcmxkXCIpO1xuICAgICAqXG4gICAgICogLy8gYWxsIHNlcmlhbGl6YWJsZSBkYXRhc3RydWN0dXJlcyBhcmUgc3VwcG9ydGVkIChubyBuZWVkIHRvIGNhbGwgSlNPTi5zdHJpbmdpZnkpXG4gICAgICogc29ja2V0LmVtaXQoXCJoZWxsb1wiLCAxLCBcIjJcIiwgeyAzOiBbXCI0XCJdLCA1OiBVaW50OEFycmF5LmZyb20oWzZdKSB9KTtcbiAgICAgKlxuICAgICAqIC8vIHdpdGggYW4gYWNrbm93bGVkZ2VtZW50IGZyb20gdGhlIHNlcnZlclxuICAgICAqIHNvY2tldC5lbWl0KFwiaGVsbG9cIiwgXCJ3b3JsZFwiLCAodmFsKSA9PiB7XG4gICAgICogICAvLyAuLi5cbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIEByZXR1cm4gc2VsZlxuICAgICAqL1xuICAgIGVtaXQoZXYsIC4uLmFyZ3MpIHtcbiAgICAgICAgaWYgKFJFU0VSVkVEX0VWRU5UUy5oYXNPd25Qcm9wZXJ0eShldikpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignXCInICsgZXYudG9TdHJpbmcoKSArICdcIiBpcyBhIHJlc2VydmVkIGV2ZW50IG5hbWUnKTtcbiAgICAgICAgfVxuICAgICAgICBhcmdzLnVuc2hpZnQoZXYpO1xuICAgICAgICBpZiAodGhpcy5fb3B0cy5yZXRyaWVzICYmICF0aGlzLmZsYWdzLmZyb21RdWV1ZSAmJiAhdGhpcy5mbGFncy52b2xhdGlsZSkge1xuICAgICAgICAgICAgdGhpcy5fYWRkVG9RdWV1ZShhcmdzKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBhY2tldCA9IHtcbiAgICAgICAgICAgIHR5cGU6IHNvY2tldF9pb19wYXJzZXJfMS5QYWNrZXRUeXBlLkVWRU5ULFxuICAgICAgICAgICAgZGF0YTogYXJncyxcbiAgICAgICAgfTtcbiAgICAgICAgcGFja2V0Lm9wdGlvbnMgPSB7fTtcbiAgICAgICAgcGFja2V0Lm9wdGlvbnMuY29tcHJlc3MgPSB0aGlzLmZsYWdzLmNvbXByZXNzICE9PSBmYWxzZTtcbiAgICAgICAgLy8gZXZlbnQgYWNrIGNhbGxiYWNrXG4gICAgICAgIGlmIChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBhcmdzW2FyZ3MubGVuZ3RoIC0gMV0pIHtcbiAgICAgICAgICAgIGNvbnN0IGlkID0gdGhpcy5pZHMrKztcbiAgICAgICAgICAgIGRlYnVnKFwiZW1pdHRpbmcgcGFja2V0IHdpdGggYWNrIGlkICVkXCIsIGlkKTtcbiAgICAgICAgICAgIGNvbnN0IGFjayA9IGFyZ3MucG9wKCk7XG4gICAgICAgICAgICB0aGlzLl9yZWdpc3RlckFja0NhbGxiYWNrKGlkLCBhY2spO1xuICAgICAgICAgICAgcGFja2V0LmlkID0gaWQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaXNUcmFuc3BvcnRXcml0YWJsZSA9IHRoaXMuaW8uZW5naW5lICYmXG4gICAgICAgICAgICB0aGlzLmlvLmVuZ2luZS50cmFuc3BvcnQgJiZcbiAgICAgICAgICAgIHRoaXMuaW8uZW5naW5lLnRyYW5zcG9ydC53cml0YWJsZTtcbiAgICAgICAgY29uc3QgZGlzY2FyZFBhY2tldCA9IHRoaXMuZmxhZ3Mudm9sYXRpbGUgJiYgKCFpc1RyYW5zcG9ydFdyaXRhYmxlIHx8ICF0aGlzLmNvbm5lY3RlZCk7XG4gICAgICAgIGlmIChkaXNjYXJkUGFja2V0KSB7XG4gICAgICAgICAgICBkZWJ1ZyhcImRpc2NhcmQgcGFja2V0IGFzIHRoZSB0cmFuc3BvcnQgaXMgbm90IGN1cnJlbnRseSB3cml0YWJsZVwiKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0aGlzLmNvbm5lY3RlZCkge1xuICAgICAgICAgICAgdGhpcy5ub3RpZnlPdXRnb2luZ0xpc3RlbmVycyhwYWNrZXQpO1xuICAgICAgICAgICAgdGhpcy5wYWNrZXQocGFja2V0KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2VuZEJ1ZmZlci5wdXNoKHBhY2tldCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5mbGFncyA9IHt9O1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBfcmVnaXN0ZXJBY2tDYWxsYmFjayhpZCwgYWNrKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgY29uc3QgdGltZW91dCA9IChfYSA9IHRoaXMuZmxhZ3MudGltZW91dCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogdGhpcy5fb3B0cy5hY2tUaW1lb3V0O1xuICAgICAgICBpZiAodGltZW91dCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmFja3NbaWRdID0gYWNrO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgY29uc3QgdGltZXIgPSB0aGlzLmlvLnNldFRpbWVvdXRGbigoKSA9PiB7XG4gICAgICAgICAgICBkZWxldGUgdGhpcy5hY2tzW2lkXTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5zZW5kQnVmZmVyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc2VuZEJ1ZmZlcltpXS5pZCA9PT0gaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgZGVidWcoXCJyZW1vdmluZyBwYWNrZXQgd2l0aCBhY2sgaWQgJWQgZnJvbSB0aGUgYnVmZmVyXCIsIGlkKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZW5kQnVmZmVyLnNwbGljZShpLCAxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWJ1ZyhcImV2ZW50IHdpdGggYWNrIGlkICVkIGhhcyB0aW1lZCBvdXQgYWZ0ZXIgJWQgbXNcIiwgaWQsIHRpbWVvdXQpO1xuICAgICAgICAgICAgYWNrLmNhbGwodGhpcywgbmV3IEVycm9yKFwib3BlcmF0aW9uIGhhcyB0aW1lZCBvdXRcIikpO1xuICAgICAgICB9LCB0aW1lb3V0KTtcbiAgICAgICAgdGhpcy5hY2tzW2lkXSA9ICguLi5hcmdzKSA9PiB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICB0aGlzLmlvLmNsZWFyVGltZW91dEZuKHRpbWVyKTtcbiAgICAgICAgICAgIGFjay5hcHBseSh0aGlzLCBbbnVsbCwgLi4uYXJnc10pO1xuICAgICAgICB9O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBFbWl0cyBhbiBldmVudCBhbmQgd2FpdHMgZm9yIGFuIGFja25vd2xlZGdlbWVudFxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiAvLyB3aXRob3V0IHRpbWVvdXRcbiAgICAgKiBjb25zdCByZXNwb25zZSA9IGF3YWl0IHNvY2tldC5lbWl0V2l0aEFjayhcImhlbGxvXCIsIFwid29ybGRcIik7XG4gICAgICpcbiAgICAgKiAvLyB3aXRoIGEgc3BlY2lmaWMgdGltZW91dFxuICAgICAqIHRyeSB7XG4gICAgICogICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHNvY2tldC50aW1lb3V0KDEwMDApLmVtaXRXaXRoQWNrKFwiaGVsbG9cIiwgXCJ3b3JsZFwiKTtcbiAgICAgKiB9IGNhdGNoIChlcnIpIHtcbiAgICAgKiAgIC8vIHRoZSBzZXJ2ZXIgZGlkIG5vdCBhY2tub3dsZWRnZSB0aGUgZXZlbnQgaW4gdGhlIGdpdmVuIGRlbGF5XG4gICAgICogfVxuICAgICAqXG4gICAgICogQHJldHVybiBhIFByb21pc2UgdGhhdCB3aWxsIGJlIGZ1bGZpbGxlZCB3aGVuIHRoZSBzZXJ2ZXIgYWNrbm93bGVkZ2VzIHRoZSBldmVudFxuICAgICAqL1xuICAgIGVtaXRXaXRoQWNrKGV2LCAuLi5hcmdzKSB7XG4gICAgICAgIC8vIHRoZSB0aW1lb3V0IGZsYWcgaXMgb3B0aW9uYWxcbiAgICAgICAgY29uc3Qgd2l0aEVyciA9IHRoaXMuZmxhZ3MudGltZW91dCAhPT0gdW5kZWZpbmVkIHx8IHRoaXMuX29wdHMuYWNrVGltZW91dCAhPT0gdW5kZWZpbmVkO1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgYXJncy5wdXNoKChhcmcxLCBhcmcyKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHdpdGhFcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFyZzEgPyByZWplY3QoYXJnMSkgOiByZXNvbHZlKGFyZzIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUoYXJnMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmVtaXQoZXYsIC4uLmFyZ3MpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBwYWNrZXQgdG8gdGhlIHF1ZXVlLlxuICAgICAqIEBwYXJhbSBhcmdzXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBfYWRkVG9RdWV1ZShhcmdzKSB7XG4gICAgICAgIGxldCBhY2s7XG4gICAgICAgIGlmICh0eXBlb2YgYXJnc1thcmdzLmxlbmd0aCAtIDFdID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIGFjayA9IGFyZ3MucG9wKCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGFja2V0ID0ge1xuICAgICAgICAgICAgaWQ6IHRoaXMuX3F1ZXVlU2VxKyssXG4gICAgICAgICAgICB0cnlDb3VudDogMCxcbiAgICAgICAgICAgIHBlbmRpbmc6IGZhbHNlLFxuICAgICAgICAgICAgYXJncyxcbiAgICAgICAgICAgIGZsYWdzOiBPYmplY3QuYXNzaWduKHsgZnJvbVF1ZXVlOiB0cnVlIH0sIHRoaXMuZmxhZ3MpLFxuICAgICAgICB9O1xuICAgICAgICBhcmdzLnB1c2goKGVyciwgLi4ucmVzcG9uc2VBcmdzKSA9PiB7XG4gICAgICAgICAgICBpZiAocGFja2V0ICE9PSB0aGlzLl9xdWV1ZVswXSkge1xuICAgICAgICAgICAgICAgIC8vIHRoZSBwYWNrZXQgaGFzIGFscmVhZHkgYmVlbiBhY2tub3dsZWRnZWRcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBoYXNFcnJvciA9IGVyciAhPT0gbnVsbDtcbiAgICAgICAgICAgIGlmIChoYXNFcnJvcikge1xuICAgICAgICAgICAgICAgIGlmIChwYWNrZXQudHJ5Q291bnQgPiB0aGlzLl9vcHRzLnJldHJpZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgZGVidWcoXCJwYWNrZXQgWyVkXSBpcyBkaXNjYXJkZWQgYWZ0ZXIgJWQgdHJpZXNcIiwgcGFja2V0LmlkLCBwYWNrZXQudHJ5Q291bnQpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9xdWV1ZS5zaGlmdCgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYWNrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhY2soZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGRlYnVnKFwicGFja2V0IFslZF0gd2FzIHN1Y2Nlc3NmdWxseSBzZW50XCIsIHBhY2tldC5pZCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fcXVldWUuc2hpZnQoKTtcbiAgICAgICAgICAgICAgICBpZiAoYWNrKSB7XG4gICAgICAgICAgICAgICAgICAgIGFjayhudWxsLCAuLi5yZXNwb25zZUFyZ3MpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBhY2tldC5wZW5kaW5nID0gZmFsc2U7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZHJhaW5RdWV1ZSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fcXVldWUucHVzaChwYWNrZXQpO1xuICAgICAgICB0aGlzLl9kcmFpblF1ZXVlKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFNlbmQgdGhlIGZpcnN0IHBhY2tldCBvZiB0aGUgcXVldWUsIGFuZCB3YWl0IGZvciBhbiBhY2tub3dsZWRnZW1lbnQgZnJvbSB0aGUgc2VydmVyLlxuICAgICAqIEBwYXJhbSBmb3JjZSAtIHdoZXRoZXIgdG8gcmVzZW5kIGEgcGFja2V0IHRoYXQgaGFzIG5vdCBiZWVuIGFja25vd2xlZGdlZCB5ZXRcbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgX2RyYWluUXVldWUoZm9yY2UgPSBmYWxzZSkge1xuICAgICAgICBkZWJ1ZyhcImRyYWluaW5nIHF1ZXVlXCIpO1xuICAgICAgICBpZiAoIXRoaXMuY29ubmVjdGVkIHx8IHRoaXMuX3F1ZXVlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBhY2tldCA9IHRoaXMuX3F1ZXVlWzBdO1xuICAgICAgICBpZiAocGFja2V0LnBlbmRpbmcgJiYgIWZvcmNlKSB7XG4gICAgICAgICAgICBkZWJ1ZyhcInBhY2tldCBbJWRdIGhhcyBhbHJlYWR5IGJlZW4gc2VudCBhbmQgaXMgd2FpdGluZyBmb3IgYW4gYWNrXCIsIHBhY2tldC5pZCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgcGFja2V0LnBlbmRpbmcgPSB0cnVlO1xuICAgICAgICBwYWNrZXQudHJ5Q291bnQrKztcbiAgICAgICAgZGVidWcoXCJzZW5kaW5nIHBhY2tldCBbJWRdICh0cnkgbsKwJWQpXCIsIHBhY2tldC5pZCwgcGFja2V0LnRyeUNvdW50KTtcbiAgICAgICAgdGhpcy5mbGFncyA9IHBhY2tldC5mbGFncztcbiAgICAgICAgdGhpcy5lbWl0LmFwcGx5KHRoaXMsIHBhY2tldC5hcmdzKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogU2VuZHMgYSBwYWNrZXQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGFja2V0XG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwYWNrZXQocGFja2V0KSB7XG4gICAgICAgIHBhY2tldC5uc3AgPSB0aGlzLm5zcDtcbiAgICAgICAgdGhpcy5pby5fcGFja2V0KHBhY2tldCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENhbGxlZCB1cG9uIGVuZ2luZSBgb3BlbmAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIG9ub3BlbigpIHtcbiAgICAgICAgZGVidWcoXCJ0cmFuc3BvcnQgaXMgb3BlbiAtIGNvbm5lY3RpbmdcIik7XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5hdXRoID09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgdGhpcy5hdXRoKChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2VuZENvbm5lY3RQYWNrZXQoZGF0YSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3NlbmRDb25uZWN0UGFja2V0KHRoaXMuYXV0aCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogU2VuZHMgYSBDT05ORUNUIHBhY2tldCB0byBpbml0aWF0ZSB0aGUgU29ja2V0LklPIHNlc3Npb24uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZGF0YVxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgX3NlbmRDb25uZWN0UGFja2V0KGRhdGEpIHtcbiAgICAgICAgdGhpcy5wYWNrZXQoe1xuICAgICAgICAgICAgdHlwZTogc29ja2V0X2lvX3BhcnNlcl8xLlBhY2tldFR5cGUuQ09OTkVDVCxcbiAgICAgICAgICAgIGRhdGE6IHRoaXMuX3BpZFxuICAgICAgICAgICAgICAgID8gT2JqZWN0LmFzc2lnbih7IHBpZDogdGhpcy5fcGlkLCBvZmZzZXQ6IHRoaXMuX2xhc3RPZmZzZXQgfSwgZGF0YSlcbiAgICAgICAgICAgICAgICA6IGRhdGEsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgdXBvbiBlbmdpbmUgb3IgbWFuYWdlciBgZXJyb3JgLlxuICAgICAqXG4gICAgICogQHBhcmFtIGVyclxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgb25lcnJvcihlcnIpIHtcbiAgICAgICAgaWYgKCF0aGlzLmNvbm5lY3RlZCkge1xuICAgICAgICAgICAgdGhpcy5lbWl0UmVzZXJ2ZWQoXCJjb25uZWN0X2Vycm9yXCIsIGVycik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2FsbGVkIHVwb24gZW5naW5lIGBjbG9zZWAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVhc29uXG4gICAgICogQHBhcmFtIGRlc2NyaXB0aW9uXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBvbmNsb3NlKHJlYXNvbiwgZGVzY3JpcHRpb24pIHtcbiAgICAgICAgZGVidWcoXCJjbG9zZSAoJXMpXCIsIHJlYXNvbik7XG4gICAgICAgIHRoaXMuY29ubmVjdGVkID0gZmFsc2U7XG4gICAgICAgIGRlbGV0ZSB0aGlzLmlkO1xuICAgICAgICB0aGlzLmVtaXRSZXNlcnZlZChcImRpc2Nvbm5lY3RcIiwgcmVhc29uLCBkZXNjcmlwdGlvbik7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENhbGxlZCB3aXRoIHNvY2tldCBwYWNrZXQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGFja2V0XG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBvbnBhY2tldChwYWNrZXQpIHtcbiAgICAgICAgY29uc3Qgc2FtZU5hbWVzcGFjZSA9IHBhY2tldC5uc3AgPT09IHRoaXMubnNwO1xuICAgICAgICBpZiAoIXNhbWVOYW1lc3BhY2UpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHN3aXRjaCAocGFja2V0LnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2Ugc29ja2V0X2lvX3BhcnNlcl8xLlBhY2tldFR5cGUuQ09OTkVDVDpcbiAgICAgICAgICAgICAgICBpZiAocGFja2V0LmRhdGEgJiYgcGFja2V0LmRhdGEuc2lkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25jb25uZWN0KHBhY2tldC5kYXRhLnNpZCwgcGFja2V0LmRhdGEucGlkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW1pdFJlc2VydmVkKFwiY29ubmVjdF9lcnJvclwiLCBuZXcgRXJyb3IoXCJJdCBzZWVtcyB5b3UgYXJlIHRyeWluZyB0byByZWFjaCBhIFNvY2tldC5JTyBzZXJ2ZXIgaW4gdjIueCB3aXRoIGEgdjMueCBjbGllbnQsIGJ1dCB0aGV5IGFyZSBub3QgY29tcGF0aWJsZSAobW9yZSBpbmZvcm1hdGlvbiBoZXJlOiBodHRwczovL3NvY2tldC5pby9kb2NzL3YzL21pZ3JhdGluZy1mcm9tLTIteC10by0zLTAvKVwiKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBzb2NrZXRfaW9fcGFyc2VyXzEuUGFja2V0VHlwZS5FVkVOVDpcbiAgICAgICAgICAgIGNhc2Ugc29ja2V0X2lvX3BhcnNlcl8xLlBhY2tldFR5cGUuQklOQVJZX0VWRU5UOlxuICAgICAgICAgICAgICAgIHRoaXMub25ldmVudChwYWNrZXQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBzb2NrZXRfaW9fcGFyc2VyXzEuUGFja2V0VHlwZS5BQ0s6XG4gICAgICAgICAgICBjYXNlIHNvY2tldF9pb19wYXJzZXJfMS5QYWNrZXRUeXBlLkJJTkFSWV9BQ0s6XG4gICAgICAgICAgICAgICAgdGhpcy5vbmFjayhwYWNrZXQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBzb2NrZXRfaW9fcGFyc2VyXzEuUGFja2V0VHlwZS5ESVNDT05ORUNUOlxuICAgICAgICAgICAgICAgIHRoaXMub25kaXNjb25uZWN0KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIHNvY2tldF9pb19wYXJzZXJfMS5QYWNrZXRUeXBlLkNPTk5FQ1RfRVJST1I6XG4gICAgICAgICAgICAgICAgdGhpcy5kZXN0cm95KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZXJyID0gbmV3IEVycm9yKHBhY2tldC5kYXRhLm1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICBlcnIuZGF0YSA9IHBhY2tldC5kYXRhLmRhdGE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0UmVzZXJ2ZWQoXCJjb25uZWN0X2Vycm9yXCIsIGVycik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2FsbGVkIHVwb24gYSBzZXJ2ZXIgZXZlbnQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGFja2V0XG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBvbmV2ZW50KHBhY2tldCkge1xuICAgICAgICBjb25zdCBhcmdzID0gcGFja2V0LmRhdGEgfHwgW107XG4gICAgICAgIGRlYnVnKFwiZW1pdHRpbmcgZXZlbnQgJWpcIiwgYXJncyk7XG4gICAgICAgIGlmIChudWxsICE9IHBhY2tldC5pZCkge1xuICAgICAgICAgICAgZGVidWcoXCJhdHRhY2hpbmcgYWNrIGNhbGxiYWNrIHRvIGV2ZW50XCIpO1xuICAgICAgICAgICAgYXJncy5wdXNoKHRoaXMuYWNrKHBhY2tldC5pZCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmNvbm5lY3RlZCkge1xuICAgICAgICAgICAgdGhpcy5lbWl0RXZlbnQoYXJncyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJlY2VpdmVCdWZmZXIucHVzaChPYmplY3QuZnJlZXplKGFyZ3MpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbWl0RXZlbnQoYXJncykge1xuICAgICAgICBpZiAodGhpcy5fYW55TGlzdGVuZXJzICYmIHRoaXMuX2FueUxpc3RlbmVycy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGxpc3RlbmVycyA9IHRoaXMuX2FueUxpc3RlbmVycy5zbGljZSgpO1xuICAgICAgICAgICAgZm9yIChjb25zdCBsaXN0ZW5lciBvZiBsaXN0ZW5lcnMpIHtcbiAgICAgICAgICAgICAgICBsaXN0ZW5lci5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBzdXBlci5lbWl0LmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgICAgICBpZiAodGhpcy5fcGlkICYmIGFyZ3MubGVuZ3RoICYmIHR5cGVvZiBhcmdzW2FyZ3MubGVuZ3RoIC0gMV0gPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHRoaXMuX2xhc3RPZmZzZXQgPSBhcmdzW2FyZ3MubGVuZ3RoIC0gMV07XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogUHJvZHVjZXMgYW4gYWNrIGNhbGxiYWNrIHRvIGVtaXQgd2l0aCBhbiBldmVudC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgYWNrKGlkKSB7XG4gICAgICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgICAgICBsZXQgc2VudCA9IGZhbHNlO1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKC4uLmFyZ3MpIHtcbiAgICAgICAgICAgIC8vIHByZXZlbnQgZG91YmxlIGNhbGxiYWNrc1xuICAgICAgICAgICAgaWYgKHNlbnQpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgc2VudCA9IHRydWU7XG4gICAgICAgICAgICBkZWJ1ZyhcInNlbmRpbmcgYWNrICVqXCIsIGFyZ3MpO1xuICAgICAgICAgICAgc2VsZi5wYWNrZXQoe1xuICAgICAgICAgICAgICAgIHR5cGU6IHNvY2tldF9pb19wYXJzZXJfMS5QYWNrZXRUeXBlLkFDSyxcbiAgICAgICAgICAgICAgICBpZDogaWQsXG4gICAgICAgICAgICAgICAgZGF0YTogYXJncyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgdXBvbiBhIHNlcnZlciBhY2tub3dsZWdlbWVudC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYWNrZXRcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIG9uYWNrKHBhY2tldCkge1xuICAgICAgICBjb25zdCBhY2sgPSB0aGlzLmFja3NbcGFja2V0LmlkXTtcbiAgICAgICAgaWYgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGFjaykge1xuICAgICAgICAgICAgZGVidWcoXCJjYWxsaW5nIGFjayAlcyB3aXRoICVqXCIsIHBhY2tldC5pZCwgcGFja2V0LmRhdGEpO1xuICAgICAgICAgICAgYWNrLmFwcGx5KHRoaXMsIHBhY2tldC5kYXRhKTtcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLmFja3NbcGFja2V0LmlkXTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGRlYnVnKFwiYmFkIGFjayAlc1wiLCBwYWNrZXQuaWQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENhbGxlZCB1cG9uIHNlcnZlciBjb25uZWN0LlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBvbmNvbm5lY3QoaWQsIHBpZCkge1xuICAgICAgICBkZWJ1ZyhcInNvY2tldCBjb25uZWN0ZWQgd2l0aCBpZCAlc1wiLCBpZCk7XG4gICAgICAgIHRoaXMuaWQgPSBpZDtcbiAgICAgICAgdGhpcy5yZWNvdmVyZWQgPSBwaWQgJiYgdGhpcy5fcGlkID09PSBwaWQ7XG4gICAgICAgIHRoaXMuX3BpZCA9IHBpZDsgLy8gZGVmaW5lZCBvbmx5IGlmIGNvbm5lY3Rpb24gc3RhdGUgcmVjb3ZlcnkgaXMgZW5hYmxlZFxuICAgICAgICB0aGlzLmNvbm5lY3RlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuZW1pdEJ1ZmZlcmVkKCk7XG4gICAgICAgIHRoaXMuZW1pdFJlc2VydmVkKFwiY29ubmVjdFwiKTtcbiAgICAgICAgdGhpcy5fZHJhaW5RdWV1ZSh0cnVlKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRW1pdCBidWZmZXJlZCBldmVudHMgKHJlY2VpdmVkIGFuZCBlbWl0dGVkKS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgZW1pdEJ1ZmZlcmVkKCkge1xuICAgICAgICB0aGlzLnJlY2VpdmVCdWZmZXIuZm9yRWFjaCgoYXJncykgPT4gdGhpcy5lbWl0RXZlbnQoYXJncykpO1xuICAgICAgICB0aGlzLnJlY2VpdmVCdWZmZXIgPSBbXTtcbiAgICAgICAgdGhpcy5zZW5kQnVmZmVyLmZvckVhY2goKHBhY2tldCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5ub3RpZnlPdXRnb2luZ0xpc3RlbmVycyhwYWNrZXQpO1xuICAgICAgICAgICAgdGhpcy5wYWNrZXQocGFja2V0KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc2VuZEJ1ZmZlciA9IFtdO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgdXBvbiBzZXJ2ZXIgZGlzY29ubmVjdC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgb25kaXNjb25uZWN0KCkge1xuICAgICAgICBkZWJ1ZyhcInNlcnZlciBkaXNjb25uZWN0ICglcylcIiwgdGhpcy5uc3ApO1xuICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5vbmNsb3NlKFwiaW8gc2VydmVyIGRpc2Nvbm5lY3RcIik7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENhbGxlZCB1cG9uIGZvcmNlZCBjbGllbnQvc2VydmVyIHNpZGUgZGlzY29ubmVjdGlvbnMsXG4gICAgICogdGhpcyBtZXRob2QgZW5zdXJlcyB0aGUgbWFuYWdlciBzdG9wcyB0cmFja2luZyB1cyBhbmRcbiAgICAgKiB0aGF0IHJlY29ubmVjdGlvbnMgZG9uJ3QgZ2V0IHRyaWdnZXJlZCBmb3IgdGhpcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgZGVzdHJveSgpIHtcbiAgICAgICAgaWYgKHRoaXMuc3Vicykge1xuICAgICAgICAgICAgLy8gY2xlYW4gc3Vic2NyaXB0aW9ucyB0byBhdm9pZCByZWNvbm5lY3Rpb25zXG4gICAgICAgICAgICB0aGlzLnN1YnMuZm9yRWFjaCgoc3ViRGVzdHJveSkgPT4gc3ViRGVzdHJveSgpKTtcbiAgICAgICAgICAgIHRoaXMuc3VicyA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlvW1wiX2Rlc3Ryb3lcIl0odGhpcyk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIERpc2Nvbm5lY3RzIHRoZSBzb2NrZXQgbWFudWFsbHkuIEluIHRoYXQgY2FzZSwgdGhlIHNvY2tldCB3aWxsIG5vdCB0cnkgdG8gcmVjb25uZWN0LlxuICAgICAqXG4gICAgICogSWYgdGhpcyBpcyB0aGUgbGFzdCBhY3RpdmUgU29ja2V0IGluc3RhbmNlIG9mIHRoZSB7QGxpbmsgTWFuYWdlcn0sIHRoZSBsb3ctbGV2ZWwgY29ubmVjdGlvbiB3aWxsIGJlIGNsb3NlZC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogY29uc3Qgc29ja2V0ID0gaW8oKTtcbiAgICAgKlxuICAgICAqIHNvY2tldC5vbihcImRpc2Nvbm5lY3RcIiwgKHJlYXNvbikgPT4ge1xuICAgICAqICAgLy8gY29uc29sZS5sb2cocmVhc29uKTsgcHJpbnRzIFwiaW8gY2xpZW50IGRpc2Nvbm5lY3RcIlxuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogc29ja2V0LmRpc2Nvbm5lY3QoKTtcbiAgICAgKlxuICAgICAqIEByZXR1cm4gc2VsZlxuICAgICAqL1xuICAgIGRpc2Nvbm5lY3QoKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbm5lY3RlZCkge1xuICAgICAgICAgICAgZGVidWcoXCJwZXJmb3JtaW5nIGRpc2Nvbm5lY3QgKCVzKVwiLCB0aGlzLm5zcCk7XG4gICAgICAgICAgICB0aGlzLnBhY2tldCh7IHR5cGU6IHNvY2tldF9pb19wYXJzZXJfMS5QYWNrZXRUeXBlLkRJU0NPTk5FQ1QgfSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gcmVtb3ZlIHNvY2tldCBmcm9tIHBvb2xcbiAgICAgICAgdGhpcy5kZXN0cm95KCk7XG4gICAgICAgIGlmICh0aGlzLmNvbm5lY3RlZCkge1xuICAgICAgICAgICAgLy8gZmlyZSBldmVudHNcbiAgICAgICAgICAgIHRoaXMub25jbG9zZShcImlvIGNsaWVudCBkaXNjb25uZWN0XCIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBBbGlhcyBmb3Ige0BsaW5rIGRpc2Nvbm5lY3QoKX0uXG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHNlbGZcbiAgICAgKi9cbiAgICBjbG9zZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzY29ubmVjdCgpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBjb21wcmVzcyBmbGFnLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBzb2NrZXQuY29tcHJlc3MoZmFsc2UpLmVtaXQoXCJoZWxsb1wiKTtcbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb21wcmVzcyAtIGlmIGB0cnVlYCwgY29tcHJlc3NlcyB0aGUgc2VuZGluZyBkYXRhXG4gICAgICogQHJldHVybiBzZWxmXG4gICAgICovXG4gICAgY29tcHJlc3MoY29tcHJlc3MpIHtcbiAgICAgICAgdGhpcy5mbGFncy5jb21wcmVzcyA9IGNvbXByZXNzO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogU2V0cyBhIG1vZGlmaWVyIGZvciBhIHN1YnNlcXVlbnQgZXZlbnQgZW1pc3Npb24gdGhhdCB0aGUgZXZlbnQgbWVzc2FnZSB3aWxsIGJlIGRyb3BwZWQgd2hlbiB0aGlzIHNvY2tldCBpcyBub3RcbiAgICAgKiByZWFkeSB0byBzZW5kIG1lc3NhZ2VzLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBzb2NrZXQudm9sYXRpbGUuZW1pdChcImhlbGxvXCIpOyAvLyB0aGUgc2VydmVyIG1heSBvciBtYXkgbm90IHJlY2VpdmUgaXRcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHNlbGZcbiAgICAgKi9cbiAgICBnZXQgdm9sYXRpbGUoKSB7XG4gICAgICAgIHRoaXMuZmxhZ3Mudm9sYXRpbGUgPSB0cnVlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogU2V0cyBhIG1vZGlmaWVyIGZvciBhIHN1YnNlcXVlbnQgZXZlbnQgZW1pc3Npb24gdGhhdCB0aGUgY2FsbGJhY2sgd2lsbCBiZSBjYWxsZWQgd2l0aCBhbiBlcnJvciB3aGVuIHRoZVxuICAgICAqIGdpdmVuIG51bWJlciBvZiBtaWxsaXNlY29uZHMgaGF2ZSBlbGFwc2VkIHdpdGhvdXQgYW4gYWNrbm93bGVkZ2VtZW50IGZyb20gdGhlIHNlcnZlcjpcbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogc29ja2V0LnRpbWVvdXQoNTAwMCkuZW1pdChcIm15LWV2ZW50XCIsIChlcnIpID0+IHtcbiAgICAgKiAgIGlmIChlcnIpIHtcbiAgICAgKiAgICAgLy8gdGhlIHNlcnZlciBkaWQgbm90IGFja25vd2xlZGdlIHRoZSBldmVudCBpbiB0aGUgZ2l2ZW4gZGVsYXlcbiAgICAgKiAgIH1cbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHNlbGZcbiAgICAgKi9cbiAgICB0aW1lb3V0KHRpbWVvdXQpIHtcbiAgICAgICAgdGhpcy5mbGFncy50aW1lb3V0ID0gdGltZW91dDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEFkZHMgYSBsaXN0ZW5lciB0aGF0IHdpbGwgYmUgZmlyZWQgd2hlbiBhbnkgZXZlbnQgaXMgZW1pdHRlZC4gVGhlIGV2ZW50IG5hbWUgaXMgcGFzc2VkIGFzIHRoZSBmaXJzdCBhcmd1bWVudCB0byB0aGVcbiAgICAgKiBjYWxsYmFjay5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogc29ja2V0Lm9uQW55KChldmVudCwgLi4uYXJncykgPT4ge1xuICAgICAqICAgY29uc29sZS5sb2coYGdvdCAke2V2ZW50fWApO1xuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogQHBhcmFtIGxpc3RlbmVyXG4gICAgICovXG4gICAgb25BbnkobGlzdGVuZXIpIHtcbiAgICAgICAgdGhpcy5fYW55TGlzdGVuZXJzID0gdGhpcy5fYW55TGlzdGVuZXJzIHx8IFtdO1xuICAgICAgICB0aGlzLl9hbnlMaXN0ZW5lcnMucHVzaChsaXN0ZW5lcik7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBBZGRzIGEgbGlzdGVuZXIgdGhhdCB3aWxsIGJlIGZpcmVkIHdoZW4gYW55IGV2ZW50IGlzIGVtaXR0ZWQuIFRoZSBldmVudCBuYW1lIGlzIHBhc3NlZCBhcyB0aGUgZmlyc3QgYXJndW1lbnQgdG8gdGhlXG4gICAgICogY2FsbGJhY2suIFRoZSBsaXN0ZW5lciBpcyBhZGRlZCB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaXN0ZW5lcnMgYXJyYXkuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIHNvY2tldC5wcmVwZW5kQW55KChldmVudCwgLi4uYXJncykgPT4ge1xuICAgICAqICAgY29uc29sZS5sb2coYGdvdCBldmVudCAke2V2ZW50fWApO1xuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogQHBhcmFtIGxpc3RlbmVyXG4gICAgICovXG4gICAgcHJlcGVuZEFueShsaXN0ZW5lcikge1xuICAgICAgICB0aGlzLl9hbnlMaXN0ZW5lcnMgPSB0aGlzLl9hbnlMaXN0ZW5lcnMgfHwgW107XG4gICAgICAgIHRoaXMuX2FueUxpc3RlbmVycy51bnNoaWZ0KGxpc3RlbmVyKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgdGhlIGxpc3RlbmVyIHRoYXQgd2lsbCBiZSBmaXJlZCB3aGVuIGFueSBldmVudCBpcyBlbWl0dGVkLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBjb25zdCBjYXRjaEFsbExpc3RlbmVyID0gKGV2ZW50LCAuLi5hcmdzKSA9PiB7XG4gICAgICogICBjb25zb2xlLmxvZyhgZ290IGV2ZW50ICR7ZXZlbnR9YCk7XG4gICAgICogfVxuICAgICAqXG4gICAgICogc29ja2V0Lm9uQW55KGNhdGNoQWxsTGlzdGVuZXIpO1xuICAgICAqXG4gICAgICogLy8gcmVtb3ZlIGEgc3BlY2lmaWMgbGlzdGVuZXJcbiAgICAgKiBzb2NrZXQub2ZmQW55KGNhdGNoQWxsTGlzdGVuZXIpO1xuICAgICAqXG4gICAgICogLy8gb3IgcmVtb3ZlIGFsbCBsaXN0ZW5lcnNcbiAgICAgKiBzb2NrZXQub2ZmQW55KCk7XG4gICAgICpcbiAgICAgKiBAcGFyYW0gbGlzdGVuZXJcbiAgICAgKi9cbiAgICBvZmZBbnkobGlzdGVuZXIpIHtcbiAgICAgICAgaWYgKCF0aGlzLl9hbnlMaXN0ZW5lcnMpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsaXN0ZW5lcikge1xuICAgICAgICAgICAgY29uc3QgbGlzdGVuZXJzID0gdGhpcy5fYW55TGlzdGVuZXJzO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaXN0ZW5lcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAobGlzdGVuZXIgPT09IGxpc3RlbmVyc1tpXSkge1xuICAgICAgICAgICAgICAgICAgICBsaXN0ZW5lcnMuc3BsaWNlKGksIDEpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9hbnlMaXN0ZW5lcnMgPSBbXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhbiBhcnJheSBvZiBsaXN0ZW5lcnMgdGhhdCBhcmUgbGlzdGVuaW5nIGZvciBhbnkgZXZlbnQgdGhhdCBpcyBzcGVjaWZpZWQuIFRoaXMgYXJyYXkgY2FuIGJlIG1hbmlwdWxhdGVkLFxuICAgICAqIGUuZy4gdG8gcmVtb3ZlIGxpc3RlbmVycy5cbiAgICAgKi9cbiAgICBsaXN0ZW5lcnNBbnkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hbnlMaXN0ZW5lcnMgfHwgW107XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEFkZHMgYSBsaXN0ZW5lciB0aGF0IHdpbGwgYmUgZmlyZWQgd2hlbiBhbnkgZXZlbnQgaXMgZW1pdHRlZC4gVGhlIGV2ZW50IG5hbWUgaXMgcGFzc2VkIGFzIHRoZSBmaXJzdCBhcmd1bWVudCB0byB0aGVcbiAgICAgKiBjYWxsYmFjay5cbiAgICAgKlxuICAgICAqIE5vdGU6IGFja25vd2xlZGdlbWVudHMgc2VudCB0byB0aGUgc2VydmVyIGFyZSBub3QgaW5jbHVkZWQuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIHNvY2tldC5vbkFueU91dGdvaW5nKChldmVudCwgLi4uYXJncykgPT4ge1xuICAgICAqICAgY29uc29sZS5sb2coYHNlbnQgZXZlbnQgJHtldmVudH1gKTtcbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIEBwYXJhbSBsaXN0ZW5lclxuICAgICAqL1xuICAgIG9uQW55T3V0Z29pbmcobGlzdGVuZXIpIHtcbiAgICAgICAgdGhpcy5fYW55T3V0Z29pbmdMaXN0ZW5lcnMgPSB0aGlzLl9hbnlPdXRnb2luZ0xpc3RlbmVycyB8fCBbXTtcbiAgICAgICAgdGhpcy5fYW55T3V0Z29pbmdMaXN0ZW5lcnMucHVzaChsaXN0ZW5lcik7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBBZGRzIGEgbGlzdGVuZXIgdGhhdCB3aWxsIGJlIGZpcmVkIHdoZW4gYW55IGV2ZW50IGlzIGVtaXR0ZWQuIFRoZSBldmVudCBuYW1lIGlzIHBhc3NlZCBhcyB0aGUgZmlyc3QgYXJndW1lbnQgdG8gdGhlXG4gICAgICogY2FsbGJhY2suIFRoZSBsaXN0ZW5lciBpcyBhZGRlZCB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaXN0ZW5lcnMgYXJyYXkuXG4gICAgICpcbiAgICAgKiBOb3RlOiBhY2tub3dsZWRnZW1lbnRzIHNlbnQgdG8gdGhlIHNlcnZlciBhcmUgbm90IGluY2x1ZGVkLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBzb2NrZXQucHJlcGVuZEFueU91dGdvaW5nKChldmVudCwgLi4uYXJncykgPT4ge1xuICAgICAqICAgY29uc29sZS5sb2coYHNlbnQgZXZlbnQgJHtldmVudH1gKTtcbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIEBwYXJhbSBsaXN0ZW5lclxuICAgICAqL1xuICAgIHByZXBlbmRBbnlPdXRnb2luZyhsaXN0ZW5lcikge1xuICAgICAgICB0aGlzLl9hbnlPdXRnb2luZ0xpc3RlbmVycyA9IHRoaXMuX2FueU91dGdvaW5nTGlzdGVuZXJzIHx8IFtdO1xuICAgICAgICB0aGlzLl9hbnlPdXRnb2luZ0xpc3RlbmVycy51bnNoaWZ0KGxpc3RlbmVyKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgdGhlIGxpc3RlbmVyIHRoYXQgd2lsbCBiZSBmaXJlZCB3aGVuIGFueSBldmVudCBpcyBlbWl0dGVkLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBjb25zdCBjYXRjaEFsbExpc3RlbmVyID0gKGV2ZW50LCAuLi5hcmdzKSA9PiB7XG4gICAgICogICBjb25zb2xlLmxvZyhgc2VudCBldmVudCAke2V2ZW50fWApO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIHNvY2tldC5vbkFueU91dGdvaW5nKGNhdGNoQWxsTGlzdGVuZXIpO1xuICAgICAqXG4gICAgICogLy8gcmVtb3ZlIGEgc3BlY2lmaWMgbGlzdGVuZXJcbiAgICAgKiBzb2NrZXQub2ZmQW55T3V0Z29pbmcoY2F0Y2hBbGxMaXN0ZW5lcik7XG4gICAgICpcbiAgICAgKiAvLyBvciByZW1vdmUgYWxsIGxpc3RlbmVyc1xuICAgICAqIHNvY2tldC5vZmZBbnlPdXRnb2luZygpO1xuICAgICAqXG4gICAgICogQHBhcmFtIFtsaXN0ZW5lcl0gLSB0aGUgY2F0Y2gtYWxsIGxpc3RlbmVyIChvcHRpb25hbClcbiAgICAgKi9cbiAgICBvZmZBbnlPdXRnb2luZyhsaXN0ZW5lcikge1xuICAgICAgICBpZiAoIXRoaXMuX2FueU91dGdvaW5nTGlzdGVuZXJzKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuICAgICAgICBpZiAobGlzdGVuZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IGxpc3RlbmVycyA9IHRoaXMuX2FueU91dGdvaW5nTGlzdGVuZXJzO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaXN0ZW5lcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAobGlzdGVuZXIgPT09IGxpc3RlbmVyc1tpXSkge1xuICAgICAgICAgICAgICAgICAgICBsaXN0ZW5lcnMuc3BsaWNlKGksIDEpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9hbnlPdXRnb2luZ0xpc3RlbmVycyA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGFuIGFycmF5IG9mIGxpc3RlbmVycyB0aGF0IGFyZSBsaXN0ZW5pbmcgZm9yIGFueSBldmVudCB0aGF0IGlzIHNwZWNpZmllZC4gVGhpcyBhcnJheSBjYW4gYmUgbWFuaXB1bGF0ZWQsXG4gICAgICogZS5nLiB0byByZW1vdmUgbGlzdGVuZXJzLlxuICAgICAqL1xuICAgIGxpc3RlbmVyc0FueU91dGdvaW5nKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYW55T3V0Z29pbmdMaXN0ZW5lcnMgfHwgW107XG4gICAgfVxuICAgIC8qKlxuICAgICAqIE5vdGlmeSB0aGUgbGlzdGVuZXJzIGZvciBlYWNoIHBhY2tldCBzZW50XG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGFja2V0XG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIG5vdGlmeU91dGdvaW5nTGlzdGVuZXJzKHBhY2tldCkge1xuICAgICAgICBpZiAodGhpcy5fYW55T3V0Z29pbmdMaXN0ZW5lcnMgJiYgdGhpcy5fYW55T3V0Z29pbmdMaXN0ZW5lcnMubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBsaXN0ZW5lcnMgPSB0aGlzLl9hbnlPdXRnb2luZ0xpc3RlbmVycy5zbGljZSgpO1xuICAgICAgICAgICAgZm9yIChjb25zdCBsaXN0ZW5lciBvZiBsaXN0ZW5lcnMpIHtcbiAgICAgICAgICAgICAgICBsaXN0ZW5lci5hcHBseSh0aGlzLCBwYWNrZXQuZGF0YSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLlNvY2tldCA9IFNvY2tldDtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5nbG9iYWxUaGlzU2hpbSA9IHZvaWQgMDtcbmV4cG9ydHMuZ2xvYmFsVGhpc1NoaW0gPSAoKCkgPT4ge1xuICAgIGlmICh0eXBlb2Ygc2VsZiAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICByZXR1cm4gc2VsZjtcbiAgICB9XG4gICAgZWxzZSBpZiAodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICByZXR1cm4gd2luZG93O1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcmV0dXJuIEZ1bmN0aW9uKFwicmV0dXJuIHRoaXNcIikoKTtcbiAgICB9XG59KSgpO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5jb25zdCBwcm9jZXNzXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcInByb2Nlc3NcIikpO1xuY29uc3Qgc29ja2V0X2lvX2NsaWVudF8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJzb2NrZXQuaW8tY2xpZW50XCIpKTtcbmNvbnN0IENoQ29uZmlnXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkBjb21tb24vbW9kZWxzL0NoQ29uZmlnXCIpKTtcbmNvbnN0IGNoX2NvbmZpZ19kZXZlbG9wbWVudF9qc29uXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkBjb21tb24vLi4vY2gtY29uZmlnLmRldmVsb3BtZW50Lmpzb25cIikpO1xuY29uc3QgY2hfY29uZmlnX3Byb2R1Y3Rpb25fanNvbl8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJAY29tbW9uLy4uL2NoLWNvbmZpZy5wcm9kdWN0aW9uLmpzb25cIikpO1xuY29uc3QgQm9vdE9wdGlvbl8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJAY29tbW9uL21vZGVscy9Cb290T3B0aW9uXCIpKTtcbmNvbnN0IFNlcXVlbmNlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkBjb21tb24vU2VxdWVuY2VcIikpO1xuY29uc3QgY29uZl8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJAY29tbW9uL2NvbmZcIikpO1xuY29uc3QgZGVmaW5lXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkBjb21tb24vZGVmaW5lXCIpKTtcbmNvbnN0IHV0aWxzXzEgPSByZXF1aXJlKFwiQGNvbW1vbi91dGlsc1wiKTtcbmNvbnN0IENoXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkBjb21tb24vbW9kZWxzL0NoXCIpKTtcbmNvbnN0IFR1bmVPcHRpb25fMSA9IHJlcXVpcmUoXCJAY29tbW9uL21vZGVscy9UdW5lT3B0aW9uXCIpO1xuY29uc3QgXzEgPSByZXF1aXJlKFwiLlwiKTtcbmNvbnN0IGlzRG9ja2VyID0gQm9vbGVhbihwcm9jZXNzXzEuZGVmYXVsdC5lbnYuSVNfRE9DS0VSKTtcbmNvbnN0IGNoQ29uZmlnSnNvbiA9IGxvY2F0aW9uLmhyZWYuaW5kZXhPZihcImxvY2FsaG9zdFwiKSA+PSAwID8gY2hfY29uZmlnX2RldmVsb3BtZW50X2pzb25fMS5kZWZhdWx0IDogY2hfY29uZmlnX3Byb2R1Y3Rpb25fanNvbl8xLmRlZmF1bHQ7XG4vLyDopIfmlbDjga5pb+OBruODquOCr+OCqOOCueODiOOBqOODrOOCueODneODs+OCueOCkuWPl+OBkeWPluOCi+OBruOBq+WwguW/teOBmeOCi1xuY2xhc3MgVG9TZXJ2ZXIge1xuICAgIHN0YXRpYyBnZXQgZG9tYWluKCkge1xuICAgICAgICByZXR1cm4gY29uZl8xLmRlZmF1bHQuZW52ID09PSBkZWZpbmVfMS5kZWZhdWx0LkRFVkVMT1BNRU5UIHx8IGNvbmZfMS5kZWZhdWx0LmVudiA9PT0gZGVmaW5lXzEuZGVmYXVsdC5MT0NBTEhPU1QgPyBkZWZpbmVfMS5kZWZhdWx0LkRFVkVMT1BNRU5UX0RPTUFJTiA6IGRlZmluZV8xLmRlZmF1bHQuUFJPRFVDVElPTl9BUElfRE9NQUlOO1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0IG9wdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGF1dG9Db25uZWN0OiB0cnVlLFxuICAgICAgICAgICAgcmVjb25uZWN0aW9uOiB0cnVlLFxuICAgICAgICAgICAgcmVjb25uZWN0aW9uQXR0ZW1wdHM6IEluZmluaXR5LFxuICAgICAgICAgICAgcmVjb25uZWN0aW9uRGVsYXk6IDEwMDAsXG4gICAgICAgICAgICByZWNvbm5lY3Rpb25EZWxheU1heDogNTAwMCxcbiAgICAgICAgICAgIHRpbWVvdXQ6IDIwMDAwLFxuICAgICAgICAgICAgLy90cmFuc3BvcnRzOiBbJ3BvbGxpbmcnLCAnd2Vic29ja2V0J10sXG4gICAgICAgICAgICAvL3VwZ3JhZGU6IHRydWUsXG4gICAgICAgICAgICB0cmFuc3BvcnRzOiBbJ3dlYnNvY2tldCddLFxuICAgICAgICAgICAgdXBncmFkZTogZmFsc2UsXG4gICAgICAgICAgICBmb3JjZU5ldzogZmFsc2UsXG4gICAgICAgICAgICBxdWVyeToge30sXG4gICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IGZhbHNlLFxuICAgICAgICAgICAgZXh0cmFIZWFkZXJzOiB7fSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgY29uc3RydWN0b3Iod3NzV29ya2VyKSB7XG4gICAgICAgIHRoaXMudHVuZSA9IHRoaXMudHVuZS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLnVudHVuZSA9IHRoaXMudW50dW5lLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuZXhlID0gdGhpcy5leGUuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5vbkNvbm5lY3QgPSB0aGlzLm9uQ29ubmVjdC5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLm9uQ29ubmVjdEVycm9yID0gdGhpcy5vbkNvbm5lY3RFcnJvci5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLm9uUmVzcG9uc2VFbWl0ID0gdGhpcy5vblJlc3BvbnNlRW1pdC5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLm9uUmVzcG9uc2VCb2FyZGNhc3QgPSB0aGlzLm9uUmVzcG9uc2VCb2FyZGNhc3QuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5vZmZSZXNwb25zZSA9IHRoaXMub2ZmUmVzcG9uc2UuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5waWQgPSBcIlwiO1xuICAgICAgICB0aGlzLmlvcyA9IHt9O1xuICAgICAgICB0aGlzLm1ldGhvZHMgPSB7fTtcbiAgICAgICAgdGhpcy53c3NXb3JrZXIgPSB3c3NXb3JrZXI7XG4gICAgfVxuICAgIGV4ZShwaWQsIHR1bmVJZCwgbWV0aG9kLCBwYXJhbXMpIHtcbiAgICAgICAgaWYgKCgwLCB1dGlsc18xLmlzVmFsaWRLZXkpKG1ldGhvZCwgdGhpcykgJiYgdHlwZW9mIHRoaXNbbWV0aG9kXSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdGhpcy5waWQgPSBwaWQ7XG4gICAgICAgICAgICB0aGlzW21ldGhvZF0odHVuZUlkLCBwYXJhbXMpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmlvc1t0dW5lSWRdKSB7XG4gICAgICAgICAgICB0aGlzLnBpZCA9IHBpZDtcbiAgICAgICAgICAgIHRoaXMuaW9zW3R1bmVJZF0uZW1pdChtZXRob2QsIHBhcmFtcyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgdHVuZSh0dW5lSWQsIHsgYm9vdE9wdGlvbiB9KSB7XG4gICAgICAgIGNvbnN0IHBpZCA9IHRoaXMucGlkO1xuICAgICAgICBsZXQgY29ubmVjdGlvbiA9IENoXzEuZGVmYXVsdC5yb290Q29ubmVjdGlvbjtcbiAgICAgICAgbGV0IHR1bmVPcHRpb24gPSB7IC4uLlR1bmVPcHRpb25fMS5pbml0IH07XG4gICAgICAgIGxldCB1cmxTZWFyY2hQYXJhbXMgPSBgP3R1bmVJZD0ke3R1bmVJZH1gO1xuICAgICAgICBsZXQgaG9zdFBvcnQgPSBgJHtUb1NlcnZlci5kb21haW59OiR7ZGVmaW5lXzEuZGVmYXVsdC5QT1JUUy5IVFRQU31gO1xuICAgICAgICBpZiAoYm9vdE9wdGlvbikge1xuICAgICAgICAgICAgY29ubmVjdGlvbiA9IEJvb3RPcHRpb25fMS5kZWZhdWx0LmdldENvbm5lY3Rpb24oYm9vdE9wdGlvbi5jb25uZWN0aW9uKTtcbiAgICAgICAgICAgIHR1bmVPcHRpb24gPSBib290T3B0aW9uLnR1bmVPcHRpb247XG4gICAgICAgICAgICB1cmxTZWFyY2hQYXJhbXMgKz0gYCYke0Jvb3RPcHRpb25fMS5kZWZhdWx0LmdldFR1bmVPcHRpb25TdHJpbmcoYm9vdE9wdGlvbi50dW5lT3B0aW9uKX1gO1xuICAgICAgICAgICAgY29uc3QgZ2F0ZXdheSA9IENoQ29uZmlnXzEuZGVmYXVsdC5nZXRHYXRld2F5KHsgY2hDb25maWdKc29uLCB0dW5lQ29ubmVjdGlvbjogY29ubmVjdGlvbiB9KTtcbiAgICAgICAgICAgIGhvc3RQb3J0ID0gYCR7Z2F0ZXdheS5ob3N0fToke2dhdGV3YXkucG9ydH1gO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVuZHBvaW50ID0gYCR7U2VxdWVuY2VfMS5kZWZhdWx0LkhUVFBTX1BST1RPQ09MfS8vJHtob3N0UG9ydH0ke3VybFNlYXJjaFBhcmFtc31gO1xuICAgICAgICB0aGlzLmlvc1t0dW5lSWRdID0gKDAsIHNvY2tldF9pb19jbGllbnRfMS5kZWZhdWx0KShlbmRwb2ludCwgeyAuLi5Ub1NlcnZlci5vcHRpb24gfSk7XG4gICAgICAgIHRoaXMuaW9zW3R1bmVJZF0ub24oJ2Nvbm5lY3QnLCAoKSA9PiB0aGlzLndzc1dvcmtlci5wb3N0TWVzc2FnZSh7IHBpZCwgdHVuZUlkLCBtZXRob2Q6IF8xLnN0YXR1c1R1bm5pbmcgfSkpO1xuICAgICAgICB0aGlzLmlvc1t0dW5lSWRdLm9uKCdkaXNjb25uZWN0JywgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB7IHR5cGU6ICd1bnR1bmUnIH07XG4gICAgICAgICAgICB0aGlzLndzc1dvcmtlci5wb3N0TWVzc2FnZSh7IHBpZCwgdHVuZUlkLCBtZXRob2Q6IHJlc3BvbnNlLnR5cGUsIGFwaVN0YXRlOiByZXNwb25zZSB9KTtcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLmlvc1t0dW5lSWRdO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5pb3NbdHVuZUlkXS5vbignY29ubmVjdF9lcnJvcicsIChlcnJvcikgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignQ29ubmVjdGlvbiBlcnJvcjonLCB0dW5lSWQsIGVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMub25SZXNwb25zZUVtaXQodHVuZUlkLCBjb25uZWN0aW9uKTtcbiAgICAgICAgdGhpcy5vblJlc3BvbnNlQm9hcmRjYXN0KHR1bmVJZCwgY29ubmVjdGlvbiwgdHVuZU9wdGlvbik7XG4gICAgfVxuICAgIHVudHVuZShfLCB0dW5lSWQpIHtcbiAgICAgICAgaWYgKCgwLCB1dGlsc18xLmlzVmFsaWRLZXkpKHR1bmVJZCwgdGhpcy5pb3MpKSB7XG4gICAgICAgICAgICB0aGlzLmlvc1t0dW5lSWRdWydkaXNjb25uZWN0J10oKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBvbkNvbm5lY3QoKSB7IH1cbiAgICBvbkNvbm5lY3RFcnJvcigpIHsgfVxuICAgIG9uUmVzcG9uc2VFbWl0KHR1bmVJZCwgY29ubmVjdGlvbikge1xuICAgICAgICBpZiAoIXRoaXMuaW9zW3R1bmVJZF0uX2NhbGxiYWNrc1tjb25uZWN0aW9uXSkge1xuICAgICAgICAgICAgdGhpcy5pb3NbdHVuZUlkXS5vbih0dW5lSWQsIChhcGlTdGF0ZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBpZCA9IHRoaXMucGlkO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1ldGhvZCA9IGFwaVN0YXRlLnR5cGU7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VydmVyVG9BcGlUeXBlID0gU2VxdWVuY2VfMS5kZWZhdWx0LlNFUlZFUl9UT19BUElfRU1JVDtcbiAgICAgICAgICAgICAgICB0aGlzLndzc1dvcmtlci5wb3N0TWVzc2FnZSh7IHBpZCwgdHVuZUlkLCBtZXRob2QsIHNlcnZlclRvQXBpVHlwZSwgYXBpU3RhdGUgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBvblJlc3BvbnNlQm9hcmRjYXN0KHR1bmVJZCwgY29ubmVjdGlvbiwgdHVuZU9wdGlvbikge1xuICAgICAgICBpZiAoIXRoaXMuaW9zW3R1bmVJZF0uX2NhbGxiYWNrc1tjb25uZWN0aW9uXSkge1xuICAgICAgICAgICAgY29uc3QgY2FsbGJhY2sgPSAoYXBpU3RhdGUpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBwaWQgPSB0aGlzLnBpZDtcbiAgICAgICAgICAgICAgICBjb25zdCBtZXRob2QgPSBhcGlTdGF0ZS50eXBlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlcnZlclRvQXBpVHlwZSA9IFNlcXVlbmNlXzEuZGVmYXVsdC5TRVJWRVJfVE9fQVBJX0JST0FEQ0FTVDtcbiAgICAgICAgICAgICAgICB0aGlzLndzc1dvcmtlci5wb3N0TWVzc2FnZSh7IHBpZCwgdHVuZUlkLCBtZXRob2QsIHNlcnZlclRvQXBpVHlwZSwgYXBpU3RhdGUgfSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy5pb3NbdHVuZUlkXS5vbihgdHVuZToke2Nvbm5lY3Rpb259YCwgY2FsbGJhY2spO1xuICAgICAgICAgICAgT2JqZWN0LmtleXModHVuZU9wdGlvbikuZm9yRWFjaCgobWV0aG9kKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gbWV0aG9kO1xuICAgICAgICAgICAgICAgIGlmICh0dW5lT3B0aW9uW2tleV0pIHtcbiAgICAgICAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhcIkBAQCBDTElFTiBCb2FyZGNhc3QgT04gXCIsIGAke21ldGhvZH06JHtjb25uZWN0aW9ufWApXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW9zW3R1bmVJZF0ub24oYCR7bWV0aG9kfToke2Nvbm5lY3Rpb259YCwgY2FsbGJhY2spO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIG9mZlJlc3BvbnNlKHR1bmVJZCwgY29ubmVjdGlvbikge1xuICAgICAgICBpZiAodGhpcy5pb3NbdHVuZUlkXSAmJiB0aGlzLmlvc1t0dW5lSWRdLl9jYWxsYmFja3NbdHVuZUlkXSkge1xuICAgICAgICAgICAgdGhpcy5pb3NbdHVuZUlkXS5vZmYodHVuZUlkKTtcbiAgICAgICAgICAgIHRoaXMuaW9zW3R1bmVJZF0ub2ZmKGNvbm5lY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5kZWZhdWx0ID0gVG9TZXJ2ZXI7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuZGVjb2RlUGF5bG9hZCA9IGV4cG9ydHMuZGVjb2RlUGFja2V0ID0gZXhwb3J0cy5lbmNvZGVQYXlsb2FkID0gZXhwb3J0cy5lbmNvZGVQYWNrZXQgPSBleHBvcnRzLnByb3RvY29sID0gdm9pZCAwO1xuZXhwb3J0cy5jcmVhdGVQYWNrZXRFbmNvZGVyU3RyZWFtID0gY3JlYXRlUGFja2V0RW5jb2RlclN0cmVhbTtcbmV4cG9ydHMuY3JlYXRlUGFja2V0RGVjb2RlclN0cmVhbSA9IGNyZWF0ZVBhY2tldERlY29kZXJTdHJlYW07XG5jb25zdCBlbmNvZGVQYWNrZXRfanNfMSA9IHJlcXVpcmUoXCIuL2VuY29kZVBhY2tldC5qc1wiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImVuY29kZVBhY2tldFwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gZW5jb2RlUGFja2V0X2pzXzEuZW5jb2RlUGFja2V0OyB9IH0pO1xuY29uc3QgZGVjb2RlUGFja2V0X2pzXzEgPSByZXF1aXJlKFwiLi9kZWNvZGVQYWNrZXQuanNcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJkZWNvZGVQYWNrZXRcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGRlY29kZVBhY2tldF9qc18xLmRlY29kZVBhY2tldDsgfSB9KTtcbmNvbnN0IGNvbW1vbnNfanNfMSA9IHJlcXVpcmUoXCIuL2NvbW1vbnMuanNcIik7XG5jb25zdCBTRVBBUkFUT1IgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDMwKTsgLy8gc2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0RlbGltaXRlciNBU0NJSV9kZWxpbWl0ZWRfdGV4dFxuY29uc3QgZW5jb2RlUGF5bG9hZCA9IChwYWNrZXRzLCBjYWxsYmFjaykgPT4ge1xuICAgIC8vIHNvbWUgcGFja2V0cyBtYXkgYmUgYWRkZWQgdG8gdGhlIGFycmF5IHdoaWxlIGVuY29kaW5nLCBzbyB0aGUgaW5pdGlhbCBsZW5ndGggbXVzdCBiZSBzYXZlZFxuICAgIGNvbnN0IGxlbmd0aCA9IHBhY2tldHMubGVuZ3RoO1xuICAgIGNvbnN0IGVuY29kZWRQYWNrZXRzID0gbmV3IEFycmF5KGxlbmd0aCk7XG4gICAgbGV0IGNvdW50ID0gMDtcbiAgICBwYWNrZXRzLmZvckVhY2goKHBhY2tldCwgaSkgPT4ge1xuICAgICAgICAvLyBmb3JjZSBiYXNlNjQgZW5jb2RpbmcgZm9yIGJpbmFyeSBwYWNrZXRzXG4gICAgICAgICgwLCBlbmNvZGVQYWNrZXRfanNfMS5lbmNvZGVQYWNrZXQpKHBhY2tldCwgZmFsc2UsIChlbmNvZGVkUGFja2V0KSA9PiB7XG4gICAgICAgICAgICBlbmNvZGVkUGFja2V0c1tpXSA9IGVuY29kZWRQYWNrZXQ7XG4gICAgICAgICAgICBpZiAoKytjb3VudCA9PT0gbGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgY2FsbGJhY2soZW5jb2RlZFBhY2tldHMuam9pbihTRVBBUkFUT1IpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSk7XG59O1xuZXhwb3J0cy5lbmNvZGVQYXlsb2FkID0gZW5jb2RlUGF5bG9hZDtcbmNvbnN0IGRlY29kZVBheWxvYWQgPSAoZW5jb2RlZFBheWxvYWQsIGJpbmFyeVR5cGUpID0+IHtcbiAgICBjb25zdCBlbmNvZGVkUGFja2V0cyA9IGVuY29kZWRQYXlsb2FkLnNwbGl0KFNFUEFSQVRPUik7XG4gICAgY29uc3QgcGFja2V0cyA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZW5jb2RlZFBhY2tldHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgZGVjb2RlZFBhY2tldCA9ICgwLCBkZWNvZGVQYWNrZXRfanNfMS5kZWNvZGVQYWNrZXQpKGVuY29kZWRQYWNrZXRzW2ldLCBiaW5hcnlUeXBlKTtcbiAgICAgICAgcGFja2V0cy5wdXNoKGRlY29kZWRQYWNrZXQpO1xuICAgICAgICBpZiAoZGVjb2RlZFBhY2tldC50eXBlID09PSBcImVycm9yXCIpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBwYWNrZXRzO1xufTtcbmV4cG9ydHMuZGVjb2RlUGF5bG9hZCA9IGRlY29kZVBheWxvYWQ7XG5mdW5jdGlvbiBjcmVhdGVQYWNrZXRFbmNvZGVyU3RyZWFtKCkge1xuICAgIHJldHVybiBuZXcgVHJhbnNmb3JtU3RyZWFtKHtcbiAgICAgICAgdHJhbnNmb3JtKHBhY2tldCwgY29udHJvbGxlcikge1xuICAgICAgICAgICAgKDAsIGVuY29kZVBhY2tldF9qc18xLmVuY29kZVBhY2tldFRvQmluYXJ5KShwYWNrZXQsIChlbmNvZGVkUGFja2V0KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGF5bG9hZExlbmd0aCA9IGVuY29kZWRQYWNrZXQubGVuZ3RoO1xuICAgICAgICAgICAgICAgIGxldCBoZWFkZXI7XG4gICAgICAgICAgICAgICAgLy8gaW5zcGlyZWQgYnkgdGhlIFdlYlNvY2tldCBmb3JtYXQ6IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9XZWJTb2NrZXRzX0FQSS9Xcml0aW5nX1dlYlNvY2tldF9zZXJ2ZXJzI2RlY29kaW5nX3BheWxvYWRfbGVuZ3RoXG4gICAgICAgICAgICAgICAgaWYgKHBheWxvYWRMZW5ndGggPCAxMjYpIHtcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyID0gbmV3IFVpbnQ4QXJyYXkoMSk7XG4gICAgICAgICAgICAgICAgICAgIG5ldyBEYXRhVmlldyhoZWFkZXIuYnVmZmVyKS5zZXRVaW50OCgwLCBwYXlsb2FkTGVuZ3RoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocGF5bG9hZExlbmd0aCA8IDY1NTM2KSB7XG4gICAgICAgICAgICAgICAgICAgIGhlYWRlciA9IG5ldyBVaW50OEFycmF5KDMpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2aWV3ID0gbmV3IERhdGFWaWV3KGhlYWRlci5idWZmZXIpO1xuICAgICAgICAgICAgICAgICAgICB2aWV3LnNldFVpbnQ4KDAsIDEyNik7XG4gICAgICAgICAgICAgICAgICAgIHZpZXcuc2V0VWludDE2KDEsIHBheWxvYWRMZW5ndGgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyID0gbmV3IFVpbnQ4QXJyYXkoOSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZpZXcgPSBuZXcgRGF0YVZpZXcoaGVhZGVyLmJ1ZmZlcik7XG4gICAgICAgICAgICAgICAgICAgIHZpZXcuc2V0VWludDgoMCwgMTI3KTtcbiAgICAgICAgICAgICAgICAgICAgdmlldy5zZXRCaWdVaW50NjQoMSwgQmlnSW50KHBheWxvYWRMZW5ndGgpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gZmlyc3QgYml0IGluZGljYXRlcyB3aGV0aGVyIHRoZSBwYXlsb2FkIGlzIHBsYWluIHRleHQgKDApIG9yIGJpbmFyeSAoMSlcbiAgICAgICAgICAgICAgICBpZiAocGFja2V0LmRhdGEgJiYgdHlwZW9mIHBhY2tldC5kYXRhICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIGhlYWRlclswXSB8PSAweDgwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoaGVhZGVyKTtcbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoZW5jb2RlZFBhY2tldCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICB9KTtcbn1cbmxldCBURVhUX0RFQ09ERVI7XG5mdW5jdGlvbiB0b3RhbExlbmd0aChjaHVua3MpIHtcbiAgICByZXR1cm4gY2h1bmtzLnJlZHVjZSgoYWNjLCBjaHVuaykgPT4gYWNjICsgY2h1bmsubGVuZ3RoLCAwKTtcbn1cbmZ1bmN0aW9uIGNvbmNhdENodW5rcyhjaHVua3MsIHNpemUpIHtcbiAgICBpZiAoY2h1bmtzWzBdLmxlbmd0aCA9PT0gc2l6ZSkge1xuICAgICAgICByZXR1cm4gY2h1bmtzLnNoaWZ0KCk7XG4gICAgfVxuICAgIGNvbnN0IGJ1ZmZlciA9IG5ldyBVaW50OEFycmF5KHNpemUpO1xuICAgIGxldCBqID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNpemU7IGkrKykge1xuICAgICAgICBidWZmZXJbaV0gPSBjaHVua3NbMF1baisrXTtcbiAgICAgICAgaWYgKGogPT09IGNodW5rc1swXS5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNodW5rcy5zaGlmdCgpO1xuICAgICAgICAgICAgaiA9IDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNodW5rcy5sZW5ndGggJiYgaiA8IGNodW5rc1swXS5sZW5ndGgpIHtcbiAgICAgICAgY2h1bmtzWzBdID0gY2h1bmtzWzBdLnNsaWNlKGopO1xuICAgIH1cbiAgICByZXR1cm4gYnVmZmVyO1xufVxuZnVuY3Rpb24gY3JlYXRlUGFja2V0RGVjb2RlclN0cmVhbShtYXhQYXlsb2FkLCBiaW5hcnlUeXBlKSB7XG4gICAgaWYgKCFURVhUX0RFQ09ERVIpIHtcbiAgICAgICAgVEVYVF9ERUNPREVSID0gbmV3IFRleHREZWNvZGVyKCk7XG4gICAgfVxuICAgIGNvbnN0IGNodW5rcyA9IFtdO1xuICAgIGxldCBzdGF0ZSA9IDAgLyogU3RhdGUuUkVBRF9IRUFERVIgKi87XG4gICAgbGV0IGV4cGVjdGVkTGVuZ3RoID0gLTE7XG4gICAgbGV0IGlzQmluYXJ5ID0gZmFsc2U7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2Zvcm1TdHJlYW0oe1xuICAgICAgICB0cmFuc2Zvcm0oY2h1bmssIGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIGNodW5rcy5wdXNoKGNodW5rKTtcbiAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgICAgICAgICAgaWYgKHN0YXRlID09PSAwIC8qIFN0YXRlLlJFQURfSEVBREVSICovKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0b3RhbExlbmd0aChjaHVua3MpIDwgMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaGVhZGVyID0gY29uY2F0Q2h1bmtzKGNodW5rcywgMSk7XG4gICAgICAgICAgICAgICAgICAgIGlzQmluYXJ5ID0gKGhlYWRlclswXSAmIDB4ODApID09PSAweDgwO1xuICAgICAgICAgICAgICAgICAgICBleHBlY3RlZExlbmd0aCA9IGhlYWRlclswXSAmIDB4N2Y7XG4gICAgICAgICAgICAgICAgICAgIGlmIChleHBlY3RlZExlbmd0aCA8IDEyNikge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSAzIC8qIFN0YXRlLlJFQURfUEFZTE9BRCAqLztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChleHBlY3RlZExlbmd0aCA9PT0gMTI2KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IDEgLyogU3RhdGUuUkVBRF9FWFRFTkRFRF9MRU5HVEhfMTYgKi87XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IDIgLyogU3RhdGUuUkVBRF9FWFRFTkRFRF9MRU5HVEhfNjQgKi87XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoc3RhdGUgPT09IDEgLyogU3RhdGUuUkVBRF9FWFRFTkRFRF9MRU5HVEhfMTYgKi8pIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRvdGFsTGVuZ3RoKGNodW5rcykgPCAyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBoZWFkZXJBcnJheSA9IGNvbmNhdENodW5rcyhjaHVua3MsIDIpO1xuICAgICAgICAgICAgICAgICAgICBleHBlY3RlZExlbmd0aCA9IG5ldyBEYXRhVmlldyhoZWFkZXJBcnJheS5idWZmZXIsIGhlYWRlckFycmF5LmJ5dGVPZmZzZXQsIGhlYWRlckFycmF5Lmxlbmd0aCkuZ2V0VWludDE2KDApO1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IDMgLyogU3RhdGUuUkVBRF9QQVlMT0FEICovO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChzdGF0ZSA9PT0gMiAvKiBTdGF0ZS5SRUFEX0VYVEVOREVEX0xFTkdUSF82NCAqLykge1xuICAgICAgICAgICAgICAgICAgICBpZiAodG90YWxMZW5ndGgoY2h1bmtzKSA8IDgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGhlYWRlckFycmF5ID0gY29uY2F0Q2h1bmtzKGNodW5rcywgOCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZpZXcgPSBuZXcgRGF0YVZpZXcoaGVhZGVyQXJyYXkuYnVmZmVyLCBoZWFkZXJBcnJheS5ieXRlT2Zmc2V0LCBoZWFkZXJBcnJheS5sZW5ndGgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBuID0gdmlldy5nZXRVaW50MzIoMCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChuID4gTWF0aC5wb3coMiwgNTMgLSAzMikgLSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgbWF4aW11bSBzYWZlIGludGVnZXIgaW4gSmF2YVNjcmlwdCBpcyAyXjUzIC0gMVxuICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNvbW1vbnNfanNfMS5FUlJPUl9QQUNLRVQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRMZW5ndGggPSBuICogTWF0aC5wb3coMiwgMzIpICsgdmlldy5nZXRVaW50MzIoNCk7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlID0gMyAvKiBTdGF0ZS5SRUFEX1BBWUxPQUQgKi87XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAodG90YWxMZW5ndGgoY2h1bmtzKSA8IGV4cGVjdGVkTGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gY29uY2F0Q2h1bmtzKGNodW5rcywgZXhwZWN0ZWRMZW5ndGgpO1xuICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoKDAsIGRlY29kZVBhY2tldF9qc18xLmRlY29kZVBhY2tldCkoaXNCaW5hcnkgPyBkYXRhIDogVEVYVF9ERUNPREVSLmRlY29kZShkYXRhKSwgYmluYXJ5VHlwZSkpO1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IDAgLyogU3RhdGUuUkVBRF9IRUFERVIgKi87XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChleHBlY3RlZExlbmd0aCA9PT0gMCB8fCBleHBlY3RlZExlbmd0aCA+IG1heFBheWxvYWQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNvbW1vbnNfanNfMS5FUlJPUl9QQUNLRVQpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfSk7XG59XG5leHBvcnRzLnByb3RvY29sID0gNDtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuY2xhc3MgU2VxdWVuY2Uge1xuICAgIHN0YXRpYyBnZXQgVEFMS05fUFJPVE9DT0woKSB7XG4gICAgICAgIHJldHVybiAndGFsa246JztcbiAgICB9XG4gICAgc3RhdGljIGdldCBIVFRQX1BST1RPQ09MKCkge1xuICAgICAgICByZXR1cm4gJ2h0dHA6JztcbiAgICB9XG4gICAgc3RhdGljIGdldCBIVFRQU19QUk9UT0NPTCgpIHtcbiAgICAgICAgcmV0dXJuICdodHRwczonO1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0IFdTU19QUk9UT0NPTCgpIHtcbiAgICAgICAgcmV0dXJuICd3c3M6JztcbiAgICB9XG4gICAgc3RhdGljIGdldCBVTktOT1dOX1BST1RPQ09MKCkge1xuICAgICAgICByZXR1cm4gJz8/Pz86JztcbiAgICB9XG4gICAgc3RhdGljIGdldCBFTUlUX01FX0tFWSgpIHtcbiAgICAgICAgcmV0dXJuICdARU1JVF9NRSc7XG4gICAgfVxuICAgIHN0YXRpYyBnZXQgQVBJX1NFUEFSQVRFX0lPX1RZUEVfU1RBUlQoKSB7XG4gICAgICAgIHJldHVybiAnWyc7XG4gICAgfVxuICAgIHN0YXRpYyBnZXQgQVBJX1NFUEFSQVRFX0lPX1RZUEVfRU5EKCkge1xuICAgICAgICByZXR1cm4gJ10nO1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0IEFQSV9SRVFVRVNUX1RZUEUoKSB7XG4gICAgICAgIHJldHVybiAnUkVRVUVTVCc7XG4gICAgfVxuICAgIHN0YXRpYyBnZXQgQVBJX1JFU1BPTlNFX1RZUEVfRU1JVCgpIHtcbiAgICAgICAgcmV0dXJuICdFTUlUJztcbiAgICB9XG4gICAgc3RhdGljIGdldCBBUElfUkVTUE9OU0VfVFlQRV9CUk9BRENBU1QoKSB7XG4gICAgICAgIHJldHVybiAnQlJPQURDQVNUJztcbiAgICB9XG4gICAgc3RhdGljIGdldCBBUElfU0VUVVAoKSB7XG4gICAgICAgIHJldHVybiAnQVBJX1NFVFVQJztcbiAgICB9XG4gICAgc3RhdGljIGdldCBVTktOT1dOKCkge1xuICAgICAgICByZXR1cm4gJ1VOS05PV04nO1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0IENPTk5FQ1RJT05fU0VSVkVSX0tFWSgpIHtcbiAgICAgICAgcmV0dXJuICdDT05ORUNUSU9OX1NFUlZFUic7XG4gICAgfVxuICAgIHN0YXRpYyBnZXQgQVBJX1RPX1NFUlZFUl9SRVFVRVNUKCkge1xuICAgICAgICByZXR1cm4gYEFQSV9UT19TRVJWRVJbJHtTZXF1ZW5jZS5BUElfUkVRVUVTVF9UWVBFfV0ke1NlcXVlbmNlLk1FVEhPRF9DT0xPTn1gO1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0IFNFUlZFUl9UT19BUElfRU1JVCgpIHtcbiAgICAgICAgcmV0dXJuIGBTRVJWRVJfVE9fQVBJWyR7U2VxdWVuY2UuQVBJX1JFU1BPTlNFX1RZUEVfRU1JVH1dJHtTZXF1ZW5jZS5NRVRIT0RfQ09MT059YDtcbiAgICB9XG4gICAgc3RhdGljIGdldCBTRVJWRVJfVE9fQVBJX0JST0FEQ0FTVCgpIHtcbiAgICAgICAgcmV0dXJuIGBTRVJWRVJfVE9fQVBJWyR7U2VxdWVuY2UuQVBJX1JFU1BPTlNFX1RZUEVfQlJPQURDQVNUfV0ke1NlcXVlbmNlLk1FVEhPRF9DT0xPTn1gO1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0IEFQSV9UT19DTElFTlRfUkVRVUVTVCgpIHtcbiAgICAgICAgcmV0dXJuIGBBUElfVE9fQ0xJRU5UWyR7U2VxdWVuY2UuQVBJX1JFUVVFU1RfVFlQRX1dJHtTZXF1ZW5jZS5NRVRIT0RfQ09MT059YDtcbiAgICB9XG4gICAgc3RhdGljIGdldCBBUElfVE9fQ0xJRU5UX0VNSVQoKSB7XG4gICAgICAgIHJldHVybiBgQVBJX1RPX0NMSUVOVFske1NlcXVlbmNlLkFQSV9SRVNQT05TRV9UWVBFX0VNSVR9XSR7U2VxdWVuY2UuTUVUSE9EX0NPTE9OfWA7XG4gICAgfVxuICAgIHN0YXRpYyBnZXQgQVBJX1RPX0NMSUVOVF9CUk9BRENBU1QoKSB7XG4gICAgICAgIHJldHVybiBgQVBJX1RPX0NMSUVOVFske1NlcXVlbmNlLkFQSV9SRVNQT05TRV9UWVBFX0JST0FEQ0FTVH1dJHtTZXF1ZW5jZS5NRVRIT0RfQ09MT059YDtcbiAgICB9XG4gICAgc3RhdGljIGdldCBBUElfQlJPQURDQVNUX0NBTExCQUNLKCkge1xuICAgICAgICByZXR1cm4gJ3R1bmUnO1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0IFJFRFVYX0FDVElPTl9LRVkoKSB7XG4gICAgICAgIHJldHVybiAndHlwZSc7XG4gICAgfVxuICAgIHN0YXRpYyBnZXQgTUVUSE9EX0NPTE9OKCkge1xuICAgICAgICByZXR1cm4gJzonO1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0IEFERF9DTElFTlRfQUNUSU9OX1BSRUZJWCgpIHtcbiAgICAgICAgcmV0dXJuICdBUElfVE9fQ0xJRU5UJztcbiAgICB9XG4gICAgc3RhdGljIGdldCBtYXAoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0dW5lOiB7XG4gICAgICAgICAgICAgICAgcmVxdWVzdFB1YmxpY1N0YXRlOiB7IHR1bmVDaDogWydjb25uZWN0aW9uJ10gfSxcbiAgICAgICAgICAgICAgICByZXF1ZXN0UHJpdmF0ZVN0YXRlOiB7fSxcbiAgICAgICAgICAgICAgICByZXNwb25zZUVtaXRTdGF0ZTogeyB1c2VyOiBbJ3VpZCddLCBzZXR0aW5nOiAnKicsIHRocmVhZDogJyonIH0sXG4gICAgICAgICAgICAgICAgcmVzcG9uc2VCcm9hZGNhc3RTdGF0ZTogeyB0aHJlYWQ6IFsnbGl2ZUNudCcsICdjaCddIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZmV0Y2hQb3N0czoge1xuICAgICAgICAgICAgICAgIHJlcXVlc3RQdWJsaWNTdGF0ZToge30sXG4gICAgICAgICAgICAgICAgcmVxdWVzdFByaXZhdGVTdGF0ZToge1xuICAgICAgICAgICAgICAgICAgICB0aHJlYWQ6IFsnY2gnLCAncHJvdG9jb2wnLCAnaG9zdCcsICdoYXNTbGFzaCddLFxuICAgICAgICAgICAgICAgICAgICBhcHA6IFsnbXVsdGlzdHJlYW0nLCAncm9vdENoJywgJ2Rpc3BUaHJlYWRUeXBlJywgJ2FjdGlvbmVkJywgJ29mZnNldEZpbmRJZCcsICdpc1RvZ2dsZU11bHRpc3RyZWFtJ10sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICByZXNwb25zZUVtaXRTdGF0ZTogeyBwb3N0czogJyonLCB0aHJlYWQ6ICcqJyB9LFxuICAgICAgICAgICAgICAgIHJlc3BvbnNlQnJvYWRjYXN0U3RhdGU6IHt9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldE1vcmU6IHtcbiAgICAgICAgICAgICAgICByZXF1ZXN0UHVibGljU3RhdGU6IHt9LFxuICAgICAgICAgICAgICAgIHJlcXVlc3RQcml2YXRlU3RhdGU6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhyZWFkOiBbJ2NoJ10sXG4gICAgICAgICAgICAgICAgICAgIGFwcDogWydtdWx0aXN0cmVhbScsICdkaXNwVGhyZWFkVHlwZScsICdvZmZzZXRGaW5kSWQnXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHJlc3BvbnNlRW1pdFN0YXRlOiB7XG4gICAgICAgICAgICAgICAgICAgIGFwcDogWydkaXNwVGhyZWFkVHlwZScsICdvZmZzZXRGaW5kSWQnXSxcbiAgICAgICAgICAgICAgICAgICAgcG9zdHM6ICcqJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHJlc3BvbnNlQnJvYWRjYXN0U3RhdGU6IHt9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHVwZGF0ZVRocmVhZDoge1xuICAgICAgICAgICAgICAgIHJlcXVlc3RQdWJsaWNTdGF0ZToge30sXG4gICAgICAgICAgICAgICAgcmVxdWVzdFByaXZhdGVTdGF0ZToge1xuICAgICAgICAgICAgICAgICAgICB0aHJlYWQ6IFsnY2gnLCAncHJvdG9jb2wnLCAnaG9zdCcsICdoYXNTbGFzaCddLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcmVzcG9uc2VFbWl0U3RhdGU6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhyZWFkOiAnKicsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICByZXNwb25zZUJyb2FkY2FzdFN0YXRlOiB7fSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjaGFuZ2VUaHJlYWQ6IHtcbiAgICAgICAgICAgICAgICByZXF1ZXN0UHVibGljU3RhdGU6IHt9LFxuICAgICAgICAgICAgICAgIHJlcXVlc3RQcml2YXRlU3RhdGU6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhyZWFkOiBbJ2NoJywgJ2hhc1NsYXNoJywgJ3Byb3RvY29sJ10sXG4gICAgICAgICAgICAgICAgICAgIGFwcDogWyd0dW5lZENoJywgJ211bHRpc3RyZWFtJywgJ3Jvb3RDaCcsICdkaXNwVGhyZWFkVHlwZScsICdhY3Rpb25lZCcsICdvZmZzZXRGaW5kSWQnLCAnaXNUb2dnbGVNdWx0aXN0cmVhbSddLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcmVzcG9uc2VFbWl0U3RhdGU6IHsgdGhyZWFkOiAnKicgfSxcbiAgICAgICAgICAgICAgICByZXNwb25zZUJyb2FkY2FzdFN0YXRlOiB7IHRocmVhZDogWydsaXZlQ250JywgJ2NoJ10gfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjaGFuZ2VUaHJlYWREZXRhaWw6IHtcbiAgICAgICAgICAgICAgICByZXF1ZXN0UHVibGljU3RhdGU6IHt9LFxuICAgICAgICAgICAgICAgIHJlcXVlc3RQcml2YXRlU3RhdGU6IHsgdGhyZWFkOiBbJ2NoJ10gfSxcbiAgICAgICAgICAgICAgICByZXNwb25zZUVtaXRTdGF0ZTogeyB0aHJlYWQ6ICcqJyB9LFxuICAgICAgICAgICAgICAgIHJlc3BvbnNlQnJvYWRjYXN0U3RhdGU6IHt9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFkZEZpbmRDaGlsZDoge1xuICAgICAgICAgICAgICAgIHJlcXVlc3RQdWJsaWNTdGF0ZToge30sXG4gICAgICAgICAgICAgICAgcmVxdWVzdFByaXZhdGVTdGF0ZTogeyB0aHJlYWQ6IFsnY2gnXSB9LFxuICAgICAgICAgICAgICAgIHJlc3BvbnNlRW1pdFN0YXRlOiB7IHRocmVhZDogJyonIH0sXG4gICAgICAgICAgICAgICAgcmVzcG9uc2VCcm9hZGNhc3RTdGF0ZToge30sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZmV0Y2hSYW5rOiB7XG4gICAgICAgICAgICAgICAgcmVxdWVzdFB1YmxpY1N0YXRlOiB7fSxcbiAgICAgICAgICAgICAgICByZXF1ZXN0UHJpdmF0ZVN0YXRlOiB7XG4gICAgICAgICAgICAgICAgICAgIGFwcDogWydmaW5kVHlwZScsICdyb290Q2gnLCAnaXNSYW5rRGV0YWlsTW9kZSddLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcmVzcG9uc2VFbWl0U3RhdGU6IHsgcmFuazogJyonIH0sXG4gICAgICAgICAgICAgICAgcmVzcG9uc2VCcm9hZGNhc3RTdGF0ZToge30sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcG9zdDoge1xuICAgICAgICAgICAgICAgIHJlcXVlc3RQdWJsaWNTdGF0ZToge30sXG4gICAgICAgICAgICAgICAgcmVxdWVzdFByaXZhdGVTdGF0ZToge1xuICAgICAgICAgICAgICAgICAgICB1c2VyOiBbJ3VpZCcsICd1dHlwZSddLFxuICAgICAgICAgICAgICAgICAgICBhcHA6IFsnaW5wdXRQb3N0JywgJ2lucHV0U3RhbXBJZCcsICdpbnB1dEN1cnJlbnRUaW1lJywgJ2Rpc3BUaHJlYWRUeXBlJ10sXG4gICAgICAgICAgICAgICAgICAgIHRocmVhZDogWydmaW5kVHlwZScsICd0aXRsZScsICdwcm90b2NvbCcsICdjaCcsICdjaHMnLCAnZW1vdGlvbnMnLCAnZmF2aWNvbicsICdjb250ZW50VHlwZSddLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcmVzcG9uc2VFbWl0U3RhdGU6IHt9LFxuICAgICAgICAgICAgICAgIHJlc3BvbnNlQnJvYWRjYXN0U3RhdGU6IHtcbiAgICAgICAgICAgICAgICAgICAgcG9zdHM6ICcqJyxcbiAgICAgICAgICAgICAgICAgICAgdGhyZWFkOiBbJ2NoJywgJ2Vtb3Rpb25zJywgJ3Bvc3RDbnQnXSxcbiAgICAgICAgICAgICAgICAgICAgdXNlcjogWyd1aWQnXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHVwZGF0ZVRocmVhZFNlcnZlck1ldGFzOiB7XG4gICAgICAgICAgICAgICAgcmVxdWVzdFB1YmxpY1N0YXRlOiB7IHRocmVhZDogWydzZXJ2ZXJNZXRhcyddIH0sXG4gICAgICAgICAgICAgICAgcmVxdWVzdFByaXZhdGVTdGF0ZToge1xuICAgICAgICAgICAgICAgICAgICB0aHJlYWQ6IFsnaG9zdCcsICdwcm90b2NvbCcsICdjaCddLFxuICAgICAgICAgICAgICAgICAgICB1c2VyOiBbJ3VpZCddLCAvLyDmh7jlv7UgLmZvckVhY2jjgZXjgozjgarjgYTjga7jgafkuIDml6bjgZPjga7lvaLjgavkv67mraNcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHJlc3BvbnNlRW1pdFN0YXRlOiB7IHRocmVhZDogJyonIH0sXG4gICAgICAgICAgICAgICAgcmVzcG9uc2VCcm9hZGNhc3RTdGF0ZToge30sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZGlzY29ubmVjdDoge1xuICAgICAgICAgICAgICAgIHJlcXVlc3RQdWJsaWNTdGF0ZToge30sXG4gICAgICAgICAgICAgICAgcmVxdWVzdFByaXZhdGVTdGF0ZToge30sXG4gICAgICAgICAgICAgICAgcmVzcG9uc2VFbWl0U3RhdGU6IHt9LFxuICAgICAgICAgICAgICAgIHJlc3BvbnNlQnJvYWRjYXN0U3RhdGU6IHsgdGhyZWFkOiBbJ2xpdmVDbnQnLCAnY2gnXSB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgc3RhdGljIGdldFNlcXVlbmNlQWN0aW9uTWFwKG1ldGhvZCkge1xuICAgICAgICBjb25zdCBzcGxpdGVkID0gbWV0aG9kLnNwbGl0KFNlcXVlbmNlLk1FVEhPRF9DT0xPTik7XG4gICAgICAgIGlmIChzcGxpdGVkICYmIHNwbGl0ZWRbMF0pIHtcbiAgICAgICAgICAgIGNvbnN0IHNlcXVlbmNlID0gU3RyaW5nKHNwbGl0ZWRbMF0uc3BsaXQoJ1snKVswXSk7XG4gICAgICAgICAgICBsZXQgYWN0aW9uVHlwZTtcbiAgICAgICAgICAgIGlmIChzcGxpdGVkWzBdLmluZGV4T2YoYFske1NlcXVlbmNlLkFQSV9SRVFVRVNUX1RZUEV9XWApID4gMCkge1xuICAgICAgICAgICAgICAgIGFjdGlvblR5cGUgPSBTZXF1ZW5jZS5BUElfUkVRVUVTVF9UWVBFO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgYWN0aW9uVHlwZSA9XG4gICAgICAgICAgICAgICAgICAgIHNwbGl0ZWRbMF0uaW5kZXhPZihgWyR7U2VxdWVuY2UuQVBJX1JFU1BPTlNFX1RZUEVfRU1JVH1dYCkgPiAwXG4gICAgICAgICAgICAgICAgICAgICAgICA/IFNlcXVlbmNlLkFQSV9SRVNQT05TRV9UWVBFX0VNSVRcbiAgICAgICAgICAgICAgICAgICAgICAgIDogU2VxdWVuY2UuQVBJX1JFU1BPTlNFX1RZUEVfQlJPQURDQVNUO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgYWN0aW9uTmFtZSA9IFN0cmluZyhzcGxpdGVkWzFdKTtcbiAgICAgICAgICAgIHJldHVybiB7IHNlcXVlbmNlLCBhY3Rpb25UeXBlLCBhY3Rpb25OYW1lIH07XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyAnRXJyb3I6IFNlcXVlbmNlIGdldFNlcXVlbmNlQWN0aW9uTWFwJztcbiAgICAgICAgfVxuICAgIH1cbiAgICBzdGF0aWMgdXBkYXRlQ2FsbGJhY2tFeGVDb25kaXRpb25NYXAoYWN0aW9uTmFtZSkge1xuICAgICAgICBsZXQgYWN0aXZlUmVzcG9uc2VNYXAgPSB7IGVtaXQ6IHRydWUsIGJyb2FkY2FzdDogdHJ1ZSB9O1xuICAgICAgICBjb25zdCBzZXF1ZW5jZU1hcCA9IFNlcXVlbmNlLm1hcDtcbiAgICAgICAgaWYgKHNlcXVlbmNlTWFwW2FjdGlvbk5hbWVdKSB7XG4gICAgICAgICAgICBhY3RpdmVSZXNwb25zZU1hcC5lbWl0ID0gIShPYmplY3Qua2V5cyhzZXF1ZW5jZU1hcFthY3Rpb25OYW1lXS5yZXNwb25zZUVtaXRTdGF0ZSkubGVuZ3RoID4gMCk7XG4gICAgICAgICAgICBhY3RpdmVSZXNwb25zZU1hcC5icm9hZGNhc3QgPSAhKE9iamVjdC5rZXlzKHNlcXVlbmNlTWFwW2FjdGlvbk5hbWVdLnJlc3BvbnNlQnJvYWRjYXN0U3RhdGUpLmxlbmd0aCA+IDApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY3RpdmVSZXNwb25zZU1hcDtcbiAgICB9XG4gICAgc3RhdGljIGNvbnZlcnRTZXJ2ZXJUb0FwaUlvVHlwZShpRnJhbWVJZCwgYWN0aW9uVHlwZSkge1xuICAgICAgICBpZiAoYWN0aW9uVHlwZS5pbmRleE9mKGAke1NlcXVlbmNlLkFQSV9TRVBBUkFURV9JT19UWVBFX1NUQVJUfSR7U2VxdWVuY2UuQVBJX1JFUVVFU1RfVFlQRX0ke1NlcXVlbmNlLkFQSV9TRVBBUkFURV9JT19UWVBFX0VORH1gKSA+PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gU2VxdWVuY2UuQVBJX1JFUVVFU1RfVFlQRTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWN0aW9uVHlwZS5pbmRleE9mKGAke1NlcXVlbmNlLkFQSV9TRVBBUkFURV9JT19UWVBFX1NUQVJUfSR7U2VxdWVuY2UuQVBJX1JFU1BPTlNFX1RZUEVfQlJPQURDQVNUfSR7U2VxdWVuY2UuQVBJX1NFUEFSQVRFX0lPX1RZUEVfRU5EfWApID49IDApIHtcbiAgICAgICAgICAgIHJldHVybiBTZXF1ZW5jZS5BUElfUkVTUE9OU0VfVFlQRV9CUk9BRENBU1Q7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFjdGlvblR5cGUuaW5kZXhPZihgJHtTZXF1ZW5jZS5BUElfU0VQQVJBVEVfSU9fVFlQRV9TVEFSVH0ke1NlcXVlbmNlLkFQSV9SRVNQT05TRV9UWVBFX0VNSVR9JHtTZXF1ZW5jZS5BUElfU0VQQVJBVEVfSU9fVFlQRV9FTkR9YCkgPj1cbiAgICAgICAgICAgIDApIHtcbiAgICAgICAgICAgIHJldHVybiBTZXF1ZW5jZS5BUElfUkVTUE9OU0VfVFlQRV9FTUlUO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBTZXF1ZW5jZS5BUElfU0VUVVA7XG4gICAgfVxuICAgIHN0YXRpYyBjb252ZXJ0RXh0VG9DbGllbnRBY3Rpb25UeXBlKGlGcmFtZUlkLCBhY3Rpb25UeXBlKSB7XG4gICAgICAgIGFjdGlvblR5cGUgPSBTZXF1ZW5jZS5jb252ZXJ0QXBpVG9DbGllbnRBY3Rpb25UeXBlKGFjdGlvblR5cGUpO1xuICAgICAgICByZXR1cm4gYWN0aW9uVHlwZTtcbiAgICB9XG4gICAgc3RhdGljIGNvbnZlcnRBcGlUb0NsaWVudEFjdGlvblR5cGUoYWN0aW9uVHlwZSkge1xuICAgICAgICBpZiAoYWN0aW9uVHlwZS5pbmRleE9mKFNlcXVlbmNlLkFQSV9UT19TRVJWRVJfUkVRVUVTVCkgPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBhY3Rpb25UeXBlLnJlcGxhY2UoU2VxdWVuY2UuQVBJX1RPX1NFUlZFUl9SRVFVRVNULCBTZXF1ZW5jZS5BUElfVE9fQ0xJRU5UX1JFUVVFU1QpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhY3Rpb25UeXBlLmluZGV4T2YoU2VxdWVuY2UuU0VSVkVSX1RPX0FQSV9FTUlUKSA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGFjdGlvblR5cGUucmVwbGFjZShTZXF1ZW5jZS5TRVJWRVJfVE9fQVBJX0VNSVQsIFNlcXVlbmNlLkFQSV9UT19DTElFTlRfRU1JVCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFjdGlvblR5cGUuaW5kZXhPZihTZXF1ZW5jZS5TRVJWRVJfVE9fQVBJX0JST0FEQ0FTVCkgPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBhY3Rpb25UeXBlLnJlcGxhY2UoU2VxdWVuY2UuU0VSVkVSX1RPX0FQSV9CUk9BRENBU1QsIFNlcXVlbmNlLkFQSV9UT19DTElFTlRfQlJPQURDQVNUKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWN0aW9uVHlwZTtcbiAgICB9XG4gICAgc3RhdGljIGdldFJlcXVlc3RTdGF0ZShhY3Rpb25OYW1lLCByZWR1eFN0YXRlLCByZXF1ZXN0UGFyYW1zKSB7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50S2V5ID0gYWN0aW9uTmFtZS5yZXBsYWNlKFNlcXVlbmNlLkFQSV9UT19TRVJWRVJfUkVRVUVTVCwgJycpO1xuICAgICAgICBjb25zdCBzZXF1ZW5jZU1hcCA9IFNlcXVlbmNlLm1hcDtcbiAgICAgICAgY29uc3QgeyByZXF1ZXN0UHVibGljU3RhdGUsIHJlcXVlc3RQcml2YXRlU3RhdGUgfSA9IHNlcXVlbmNlTWFwW2VuZHBvaW50S2V5XTtcbiAgICAgICAgbGV0IHJlcXVlc3RTdGF0ZSA9IHtcbiAgICAgICAgICAgIFtTZXF1ZW5jZS5SRURVWF9BQ1RJT05fS0VZXTogZW5kcG9pbnRLZXksXG4gICAgICAgIH07XG4gICAgICAgIE9iamVjdC5rZXlzKHJlcXVlc3RQcml2YXRlU3RhdGUpLmZvckVhY2goKHN0YXRlS2V5KSA9PiB7XG4gICAgICAgICAgICBpZiAoIXJlcXVlc3RTdGF0ZVtzdGF0ZUtleV0pXG4gICAgICAgICAgICAgICAgcmVxdWVzdFN0YXRlW3N0YXRlS2V5XSA9IHt9O1xuICAgICAgICAgICAgcmVxdWVzdFByaXZhdGVTdGF0ZVtzdGF0ZUtleV0uZm9yRWFjaCgoY29sdW1uTmFtZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghcmVxdWVzdFN0YXRlW3N0YXRlS2V5XVtjb2x1bW5OYW1lXSkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSByZWR1eFN0YXRlW3N0YXRlS2V5XVtjb2x1bW5OYW1lXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcXVlc3RQYXJhbXMgJiYgcmVxdWVzdFBhcmFtc1tzdGF0ZUtleV0gJiYgcmVxdWVzdFBhcmFtc1tzdGF0ZUtleV1bY29sdW1uTmFtZV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gcmVxdWVzdFBhcmFtc1tzdGF0ZUtleV1bY29sdW1uTmFtZV07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFN0YXRlW3N0YXRlS2V5XVtjb2x1bW5OYW1lXSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LmtleXMocmVxdWVzdFB1YmxpY1N0YXRlKS5mb3JFYWNoKChzdGF0ZUtleSkgPT4ge1xuICAgICAgICAgICAgaWYgKCFyZXF1ZXN0U3RhdGVbc3RhdGVLZXldKVxuICAgICAgICAgICAgICAgIHJlcXVlc3RTdGF0ZVtzdGF0ZUtleV0gPSB7fTtcbiAgICAgICAgICAgIHJlcXVlc3RQdWJsaWNTdGF0ZVtzdGF0ZUtleV0uZm9yRWFjaCgoY29sdW1uTmFtZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghcmVxdWVzdFN0YXRlW3N0YXRlS2V5XVtjb2x1bW5OYW1lXSkge1xuICAgICAgICAgICAgICAgICAgICByZXF1ZXN0U3RhdGVbc3RhdGVLZXldW2NvbHVtbk5hbWVdID0gcmVxdWVzdFBhcmFtcztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiByZXF1ZXN0U3RhdGU7XG4gICAgfVxuICAgIHN0YXRpYyBnZXRSZXNwb25zZVN0YXRlKHJlc3BvbnNlVHlwZSwgcmVxdWVzdFN0YXRlLCB1cGRhdGVTdGF0ZSkge1xuICAgICAgICBjb25zdCBlbmRwb2ludEtleSA9IHJlcXVlc3RTdGF0ZS50eXBlO1xuICAgICAgICBjb25zdCBzZXF1ZW5jZU1hcCA9IFNlcXVlbmNlLm1hcDtcbiAgICAgICAgY29uc3QgcmVzcG9uc2VTY2hlbWEgPSBzZXF1ZW5jZU1hcFtlbmRwb2ludEtleV1bYHJlc3BvbnNlJHtyZXNwb25zZVR5cGV9U3RhdGVgXTtcbiAgICAgICAgbGV0IHJlc3BvbnNlU3RhdGUgPSB7IFtTZXF1ZW5jZS5SRURVWF9BQ1RJT05fS0VZXTogZW5kcG9pbnRLZXkgfTtcbiAgICAgICAgT2JqZWN0LmtleXMocmVzcG9uc2VTY2hlbWEpLmZvckVhY2goKHVwZGF0ZVN0YXRlS2V5KSA9PiB7XG4gICAgICAgICAgICBpZiAodXBkYXRlU3RhdGVbdXBkYXRlU3RhdGVLZXldKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29sdW1uTmFtZXMgPSByZXNwb25zZVNjaGVtYVt1cGRhdGVTdGF0ZUtleV07XG4gICAgICAgICAgICAgICAgbGV0IHVwZGF0ZVN0YXRlVmFsdWUgPSB1cGRhdGVTdGF0ZVt1cGRhdGVTdGF0ZUtleV07XG4gICAgICAgICAgICAgICAgc3dpdGNoICh1cGRhdGVTdGF0ZVZhbHVlLmNvbnN0cnVjdG9yLm5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnbW9kZWwnOlxuICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RhdGVWYWx1ZSA9IHVwZGF0ZVN0YXRlVmFsdWUudG9KU09OKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgdXBkYXRlU3RhdGVWYWx1ZS5faWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgdXBkYXRlU3RhdGVWYWx1ZS5fX3Y7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGNvbHVtbk5hbWVzID09PSAnKicpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VTdGF0ZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnJlc3BvbnNlU3RhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBbdXBkYXRlU3RhdGVLZXldOiB1cGRhdGVTdGF0ZVZhbHVlLFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uTmFtZXMuZm9yRWFjaCgoY29sdW1uTmFtZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVwZGF0ZVN0YXRlW3VwZGF0ZVN0YXRlS2V5XVtjb2x1bW5OYW1lXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VTdGF0ZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucmVzcG9uc2VTdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3VwZGF0ZVN0YXRlS2V5XToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucmVzcG9uc2VTdGF0ZVt1cGRhdGVTdGF0ZUtleV0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sdW1uTmFtZV06IHVwZGF0ZVN0YXRlW3VwZGF0ZVN0YXRlS2V5XVtjb2x1bW5OYW1lXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgYFNFUVVFTkNFIEVSUk9SOiBOT19VUERBVEVfU1RBVEVfQ09MVU1OX05BTUU6ICR7cmVxdWVzdFN0YXRlLnR5cGV9OiAke3VwZGF0ZVN0YXRlS2V5fS4ke2NvbHVtbk5hbWV9YDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgYFNFUVVFTkNFIEVSUk9SOiBOT19VUERBVEVfU1RBVEVfS0VZOiAke3JlcXVlc3RTdGF0ZS50eXBlfTogJHt1cGRhdGVTdGF0ZUtleX1gO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlU3RhdGU7XG4gICAgfVxuICAgIHN0YXRpYyBnZXRSZXF1ZXN0QWN0aW9uU3RhdGUoYWN0aW9uTmFtZSwgcmVxdWVzdFBhcmFtczEgPSBudWxsLCByZXF1ZXN0UGFyYW1zMiA9IG51bGwpIHtcbiAgICAgICAgaWYgKHR5cGVvZiByZXF1ZXN0UGFyYW1zMSA9PT0gJ3N0cmluZycgJiYgcmVxdWVzdFBhcmFtczIgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB7IHR5cGU6IGFjdGlvbk5hbWUgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHJlcXVlc3RQYXJhbXMxID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgcmVxdWVzdFBhcmFtczIgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICByZXR1cm4geyAuLi5yZXF1ZXN0UGFyYW1zMSwgLi4ucmVxdWVzdFBhcmFtczIsIHR5cGU6IGFjdGlvbk5hbWUgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHJlcXVlc3RQYXJhbXMxID09PSAnc3RyaW5nJyAmJiB0eXBlb2YgcmVxdWVzdFBhcmFtczIgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICByZXR1cm4geyAuLi5yZXF1ZXN0UGFyYW1zMiwgdHlwZTogYWN0aW9uTmFtZSB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IC4uLnJlcXVlc3RQYXJhbXMxLCB0eXBlOiBhY3Rpb25OYW1lIH07XG4gICAgfVxufVxuZXhwb3J0cy5kZWZhdWx0ID0gU2VxdWVuY2U7XG4iLCIvKipcbiAqIEhlbHBlcnMuXG4gKi9cblxudmFyIHMgPSAxMDAwO1xudmFyIG0gPSBzICogNjA7XG52YXIgaCA9IG0gKiA2MDtcbnZhciBkID0gaCAqIDI0O1xudmFyIHcgPSBkICogNztcbnZhciB5ID0gZCAqIDM2NS4yNTtcblxuLyoqXG4gKiBQYXJzZSBvciBmb3JtYXQgdGhlIGdpdmVuIGB2YWxgLlxuICpcbiAqIE9wdGlvbnM6XG4gKlxuICogIC0gYGxvbmdgIHZlcmJvc2UgZm9ybWF0dGluZyBbZmFsc2VdXG4gKlxuICogQHBhcmFtIHtTdHJpbmd8TnVtYmVyfSB2YWxcbiAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9uc11cbiAqIEB0aHJvd3Mge0Vycm9yfSB0aHJvdyBhbiBlcnJvciBpZiB2YWwgaXMgbm90IGEgbm9uLWVtcHR5IHN0cmluZyBvciBhIG51bWJlclxuICogQHJldHVybiB7U3RyaW5nfE51bWJlcn1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAodmFsLCBvcHRpb25zKSB7XG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICB2YXIgdHlwZSA9IHR5cGVvZiB2YWw7XG4gIGlmICh0eXBlID09PSAnc3RyaW5nJyAmJiB2YWwubGVuZ3RoID4gMCkge1xuICAgIHJldHVybiBwYXJzZSh2YWwpO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdudW1iZXInICYmIGlzRmluaXRlKHZhbCkpIHtcbiAgICByZXR1cm4gb3B0aW9ucy5sb25nID8gZm10TG9uZyh2YWwpIDogZm10U2hvcnQodmFsKTtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgJ3ZhbCBpcyBub3QgYSBub24tZW1wdHkgc3RyaW5nIG9yIGEgdmFsaWQgbnVtYmVyLiB2YWw9JyArXG4gICAgICBKU09OLnN0cmluZ2lmeSh2YWwpXG4gICk7XG59O1xuXG4vKipcbiAqIFBhcnNlIHRoZSBnaXZlbiBgc3RyYCBhbmQgcmV0dXJuIG1pbGxpc2Vjb25kcy5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gKiBAcmV0dXJuIHtOdW1iZXJ9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBwYXJzZShzdHIpIHtcbiAgc3RyID0gU3RyaW5nKHN0cik7XG4gIGlmIChzdHIubGVuZ3RoID4gMTAwKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIHZhciBtYXRjaCA9IC9eKC0/KD86XFxkKyk/XFwuP1xcZCspICoobWlsbGlzZWNvbmRzP3xtc2Vjcz98bXN8c2Vjb25kcz98c2Vjcz98c3xtaW51dGVzP3xtaW5zP3xtfGhvdXJzP3xocnM/fGh8ZGF5cz98ZHx3ZWVrcz98d3x5ZWFycz98eXJzP3x5KT8kL2kuZXhlYyhcbiAgICBzdHJcbiAgKTtcbiAgaWYgKCFtYXRjaCkge1xuICAgIHJldHVybjtcbiAgfVxuICB2YXIgbiA9IHBhcnNlRmxvYXQobWF0Y2hbMV0pO1xuICB2YXIgdHlwZSA9IChtYXRjaFsyXSB8fCAnbXMnKS50b0xvd2VyQ2FzZSgpO1xuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlICd5ZWFycyc6XG4gICAgY2FzZSAneWVhcic6XG4gICAgY2FzZSAneXJzJzpcbiAgICBjYXNlICd5cic6XG4gICAgY2FzZSAneSc6XG4gICAgICByZXR1cm4gbiAqIHk7XG4gICAgY2FzZSAnd2Vla3MnOlxuICAgIGNhc2UgJ3dlZWsnOlxuICAgIGNhc2UgJ3cnOlxuICAgICAgcmV0dXJuIG4gKiB3O1xuICAgIGNhc2UgJ2RheXMnOlxuICAgIGNhc2UgJ2RheSc6XG4gICAgY2FzZSAnZCc6XG4gICAgICByZXR1cm4gbiAqIGQ7XG4gICAgY2FzZSAnaG91cnMnOlxuICAgIGNhc2UgJ2hvdXInOlxuICAgIGNhc2UgJ2hycyc6XG4gICAgY2FzZSAnaHInOlxuICAgIGNhc2UgJ2gnOlxuICAgICAgcmV0dXJuIG4gKiBoO1xuICAgIGNhc2UgJ21pbnV0ZXMnOlxuICAgIGNhc2UgJ21pbnV0ZSc6XG4gICAgY2FzZSAnbWlucyc6XG4gICAgY2FzZSAnbWluJzpcbiAgICBjYXNlICdtJzpcbiAgICAgIHJldHVybiBuICogbTtcbiAgICBjYXNlICdzZWNvbmRzJzpcbiAgICBjYXNlICdzZWNvbmQnOlxuICAgIGNhc2UgJ3NlY3MnOlxuICAgIGNhc2UgJ3NlYyc6XG4gICAgY2FzZSAncyc6XG4gICAgICByZXR1cm4gbiAqIHM7XG4gICAgY2FzZSAnbWlsbGlzZWNvbmRzJzpcbiAgICBjYXNlICdtaWxsaXNlY29uZCc6XG4gICAgY2FzZSAnbXNlY3MnOlxuICAgIGNhc2UgJ21zZWMnOlxuICAgIGNhc2UgJ21zJzpcbiAgICAgIHJldHVybiBuO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbi8qKlxuICogU2hvcnQgZm9ybWF0IGZvciBgbXNgLlxuICpcbiAqIEBwYXJhbSB7TnVtYmVyfSBtc1xuICogQHJldHVybiB7U3RyaW5nfVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gZm10U2hvcnQobXMpIHtcbiAgdmFyIG1zQWJzID0gTWF0aC5hYnMobXMpO1xuICBpZiAobXNBYnMgPj0gZCkge1xuICAgIHJldHVybiBNYXRoLnJvdW5kKG1zIC8gZCkgKyAnZCc7XG4gIH1cbiAgaWYgKG1zQWJzID49IGgpIHtcbiAgICByZXR1cm4gTWF0aC5yb3VuZChtcyAvIGgpICsgJ2gnO1xuICB9XG4gIGlmIChtc0FicyA+PSBtKSB7XG4gICAgcmV0dXJuIE1hdGgucm91bmQobXMgLyBtKSArICdtJztcbiAgfVxuICBpZiAobXNBYnMgPj0gcykge1xuICAgIHJldHVybiBNYXRoLnJvdW5kKG1zIC8gcykgKyAncyc7XG4gIH1cbiAgcmV0dXJuIG1zICsgJ21zJztcbn1cblxuLyoqXG4gKiBMb25nIGZvcm1hdCBmb3IgYG1zYC5cbiAqXG4gKiBAcGFyYW0ge051bWJlcn0gbXNcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIGZtdExvbmcobXMpIHtcbiAgdmFyIG1zQWJzID0gTWF0aC5hYnMobXMpO1xuICBpZiAobXNBYnMgPj0gZCkge1xuICAgIHJldHVybiBwbHVyYWwobXMsIG1zQWJzLCBkLCAnZGF5Jyk7XG4gIH1cbiAgaWYgKG1zQWJzID49IGgpIHtcbiAgICByZXR1cm4gcGx1cmFsKG1zLCBtc0FicywgaCwgJ2hvdXInKTtcbiAgfVxuICBpZiAobXNBYnMgPj0gbSkge1xuICAgIHJldHVybiBwbHVyYWwobXMsIG1zQWJzLCBtLCAnbWludXRlJyk7XG4gIH1cbiAgaWYgKG1zQWJzID49IHMpIHtcbiAgICByZXR1cm4gcGx1cmFsKG1zLCBtc0FicywgcywgJ3NlY29uZCcpO1xuICB9XG4gIHJldHVybiBtcyArICcgbXMnO1xufVxuXG4vKipcbiAqIFBsdXJhbGl6YXRpb24gaGVscGVyLlxuICovXG5cbmZ1bmN0aW9uIHBsdXJhbChtcywgbXNBYnMsIG4sIG5hbWUpIHtcbiAgdmFyIGlzUGx1cmFsID0gbXNBYnMgPj0gbiAqIDEuNTtcbiAgcmV0dXJuIE1hdGgucm91bmQobXMgLyBuKSArICcgJyArIG5hbWUgKyAoaXNQbHVyYWwgPyAncycgOiAnJyk7XG59XG4iLCIvKiBlc2xpbnQtZW52IGJyb3dzZXIgKi9cblxuLyoqXG4gKiBUaGlzIGlzIHRoZSB3ZWIgYnJvd3NlciBpbXBsZW1lbnRhdGlvbiBvZiBgZGVidWcoKWAuXG4gKi9cblxuZXhwb3J0cy5mb3JtYXRBcmdzID0gZm9ybWF0QXJncztcbmV4cG9ydHMuc2F2ZSA9IHNhdmU7XG5leHBvcnRzLmxvYWQgPSBsb2FkO1xuZXhwb3J0cy51c2VDb2xvcnMgPSB1c2VDb2xvcnM7XG5leHBvcnRzLnN0b3JhZ2UgPSBsb2NhbHN0b3JhZ2UoKTtcbmV4cG9ydHMuZGVzdHJveSA9ICgoKSA9PiB7XG5cdGxldCB3YXJuZWQgPSBmYWxzZTtcblxuXHRyZXR1cm4gKCkgPT4ge1xuXHRcdGlmICghd2FybmVkKSB7XG5cdFx0XHR3YXJuZWQgPSB0cnVlO1xuXHRcdFx0Y29uc29sZS53YXJuKCdJbnN0YW5jZSBtZXRob2QgYGRlYnVnLmRlc3Ryb3koKWAgaXMgZGVwcmVjYXRlZCBhbmQgbm8gbG9uZ2VyIGRvZXMgYW55dGhpbmcuIEl0IHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIG9mIGBkZWJ1Z2AuJyk7XG5cdFx0fVxuXHR9O1xufSkoKTtcblxuLyoqXG4gKiBDb2xvcnMuXG4gKi9cblxuZXhwb3J0cy5jb2xvcnMgPSBbXG5cdCcjMDAwMENDJyxcblx0JyMwMDAwRkYnLFxuXHQnIzAwMzNDQycsXG5cdCcjMDAzM0ZGJyxcblx0JyMwMDY2Q0MnLFxuXHQnIzAwNjZGRicsXG5cdCcjMDA5OUNDJyxcblx0JyMwMDk5RkYnLFxuXHQnIzAwQ0MwMCcsXG5cdCcjMDBDQzMzJyxcblx0JyMwMENDNjYnLFxuXHQnIzAwQ0M5OScsXG5cdCcjMDBDQ0NDJyxcblx0JyMwMENDRkYnLFxuXHQnIzMzMDBDQycsXG5cdCcjMzMwMEZGJyxcblx0JyMzMzMzQ0MnLFxuXHQnIzMzMzNGRicsXG5cdCcjMzM2NkNDJyxcblx0JyMzMzY2RkYnLFxuXHQnIzMzOTlDQycsXG5cdCcjMzM5OUZGJyxcblx0JyMzM0NDMDAnLFxuXHQnIzMzQ0MzMycsXG5cdCcjMzNDQzY2Jyxcblx0JyMzM0NDOTknLFxuXHQnIzMzQ0NDQycsXG5cdCcjMzNDQ0ZGJyxcblx0JyM2NjAwQ0MnLFxuXHQnIzY2MDBGRicsXG5cdCcjNjYzM0NDJyxcblx0JyM2NjMzRkYnLFxuXHQnIzY2Q0MwMCcsXG5cdCcjNjZDQzMzJyxcblx0JyM5OTAwQ0MnLFxuXHQnIzk5MDBGRicsXG5cdCcjOTkzM0NDJyxcblx0JyM5OTMzRkYnLFxuXHQnIzk5Q0MwMCcsXG5cdCcjOTlDQzMzJyxcblx0JyNDQzAwMDAnLFxuXHQnI0NDMDAzMycsXG5cdCcjQ0MwMDY2Jyxcblx0JyNDQzAwOTknLFxuXHQnI0NDMDBDQycsXG5cdCcjQ0MwMEZGJyxcblx0JyNDQzMzMDAnLFxuXHQnI0NDMzMzMycsXG5cdCcjQ0MzMzY2Jyxcblx0JyNDQzMzOTknLFxuXHQnI0NDMzNDQycsXG5cdCcjQ0MzM0ZGJyxcblx0JyNDQzY2MDAnLFxuXHQnI0NDNjYzMycsXG5cdCcjQ0M5OTAwJyxcblx0JyNDQzk5MzMnLFxuXHQnI0NDQ0MwMCcsXG5cdCcjQ0NDQzMzJyxcblx0JyNGRjAwMDAnLFxuXHQnI0ZGMDAzMycsXG5cdCcjRkYwMDY2Jyxcblx0JyNGRjAwOTknLFxuXHQnI0ZGMDBDQycsXG5cdCcjRkYwMEZGJyxcblx0JyNGRjMzMDAnLFxuXHQnI0ZGMzMzMycsXG5cdCcjRkYzMzY2Jyxcblx0JyNGRjMzOTknLFxuXHQnI0ZGMzNDQycsXG5cdCcjRkYzM0ZGJyxcblx0JyNGRjY2MDAnLFxuXHQnI0ZGNjYzMycsXG5cdCcjRkY5OTAwJyxcblx0JyNGRjk5MzMnLFxuXHQnI0ZGQ0MwMCcsXG5cdCcjRkZDQzMzJ1xuXTtcblxuLyoqXG4gKiBDdXJyZW50bHkgb25seSBXZWJLaXQtYmFzZWQgV2ViIEluc3BlY3RvcnMsIEZpcmVmb3ggPj0gdjMxLFxuICogYW5kIHRoZSBGaXJlYnVnIGV4dGVuc2lvbiAoYW55IEZpcmVmb3ggdmVyc2lvbikgYXJlIGtub3duXG4gKiB0byBzdXBwb3J0IFwiJWNcIiBDU1MgY3VzdG9taXphdGlvbnMuXG4gKlxuICogVE9ETzogYWRkIGEgYGxvY2FsU3RvcmFnZWAgdmFyaWFibGUgdG8gZXhwbGljaXRseSBlbmFibGUvZGlzYWJsZSBjb2xvcnNcbiAqL1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY29tcGxleGl0eVxuZnVuY3Rpb24gdXNlQ29sb3JzKCkge1xuXHQvLyBOQjogSW4gYW4gRWxlY3Ryb24gcHJlbG9hZCBzY3JpcHQsIGRvY3VtZW50IHdpbGwgYmUgZGVmaW5lZCBidXQgbm90IGZ1bGx5XG5cdC8vIGluaXRpYWxpemVkLiBTaW5jZSB3ZSBrbm93IHdlJ3JlIGluIENocm9tZSwgd2UnbGwganVzdCBkZXRlY3QgdGhpcyBjYXNlXG5cdC8vIGV4cGxpY2l0bHlcblx0aWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5wcm9jZXNzICYmICh3aW5kb3cucHJvY2Vzcy50eXBlID09PSAncmVuZGVyZXInIHx8IHdpbmRvdy5wcm9jZXNzLl9fbndqcykpIHtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxuXG5cdC8vIEludGVybmV0IEV4cGxvcmVyIGFuZCBFZGdlIGRvIG5vdCBzdXBwb3J0IGNvbG9ycy5cblx0aWYgKHR5cGVvZiBuYXZpZ2F0b3IgIT09ICd1bmRlZmluZWQnICYmIG5hdmlnYXRvci51c2VyQWdlbnQgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLm1hdGNoKC8oZWRnZXx0cmlkZW50KVxcLyhcXGQrKS8pKSB7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0bGV0IG07XG5cblx0Ly8gSXMgd2Via2l0PyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8xNjQ1OTYwNi8zNzY3NzNcblx0Ly8gZG9jdW1lbnQgaXMgdW5kZWZpbmVkIGluIHJlYWN0LW5hdGl2ZTogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0LW5hdGl2ZS9wdWxsLzE2MzJcblx0cmV0dXJuICh0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnICYmIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUgJiYgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLldlYmtpdEFwcGVhcmFuY2UpIHx8XG5cdFx0Ly8gSXMgZmlyZWJ1Zz8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMzk4MTIwLzM3Njc3M1xuXHRcdCh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB3aW5kb3cuY29uc29sZSAmJiAod2luZG93LmNvbnNvbGUuZmlyZWJ1ZyB8fCAod2luZG93LmNvbnNvbGUuZXhjZXB0aW9uICYmIHdpbmRvdy5jb25zb2xlLnRhYmxlKSkpIHx8XG5cdFx0Ly8gSXMgZmlyZWZveCA+PSB2MzE/XG5cdFx0Ly8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9Ub29scy9XZWJfQ29uc29sZSNTdHlsaW5nX21lc3NhZ2VzXG5cdFx0KHR5cGVvZiBuYXZpZ2F0b3IgIT09ICd1bmRlZmluZWQnICYmIG5hdmlnYXRvci51c2VyQWdlbnQgJiYgKG0gPSBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goL2ZpcmVmb3hcXC8oXFxkKykvKSkgJiYgcGFyc2VJbnQobVsxXSwgMTApID49IDMxKSB8fFxuXHRcdC8vIERvdWJsZSBjaGVjayB3ZWJraXQgaW4gdXNlckFnZW50IGp1c3QgaW4gY2FzZSB3ZSBhcmUgaW4gYSB3b3JrZXJcblx0XHQodHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudCAmJiBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goL2FwcGxld2Via2l0XFwvKFxcZCspLykpO1xufVxuXG4vKipcbiAqIENvbG9yaXplIGxvZyBhcmd1bWVudHMgaWYgZW5hYmxlZC5cbiAqXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbmZ1bmN0aW9uIGZvcm1hdEFyZ3MoYXJncykge1xuXHRhcmdzWzBdID0gKHRoaXMudXNlQ29sb3JzID8gJyVjJyA6ICcnKSArXG5cdFx0dGhpcy5uYW1lc3BhY2UgK1xuXHRcdCh0aGlzLnVzZUNvbG9ycyA/ICcgJWMnIDogJyAnKSArXG5cdFx0YXJnc1swXSArXG5cdFx0KHRoaXMudXNlQ29sb3JzID8gJyVjICcgOiAnICcpICtcblx0XHQnKycgKyBtb2R1bGUuZXhwb3J0cy5odW1hbml6ZSh0aGlzLmRpZmYpO1xuXG5cdGlmICghdGhpcy51c2VDb2xvcnMpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRjb25zdCBjID0gJ2NvbG9yOiAnICsgdGhpcy5jb2xvcjtcblx0YXJncy5zcGxpY2UoMSwgMCwgYywgJ2NvbG9yOiBpbmhlcml0Jyk7XG5cblx0Ly8gVGhlIGZpbmFsIFwiJWNcIiBpcyBzb21ld2hhdCB0cmlja3ksIGJlY2F1c2UgdGhlcmUgY291bGQgYmUgb3RoZXJcblx0Ly8gYXJndW1lbnRzIHBhc3NlZCBlaXRoZXIgYmVmb3JlIG9yIGFmdGVyIHRoZSAlYywgc28gd2UgbmVlZCB0b1xuXHQvLyBmaWd1cmUgb3V0IHRoZSBjb3JyZWN0IGluZGV4IHRvIGluc2VydCB0aGUgQ1NTIGludG9cblx0bGV0IGluZGV4ID0gMDtcblx0bGV0IGxhc3RDID0gMDtcblx0YXJnc1swXS5yZXBsYWNlKC8lW2EtekEtWiVdL2csIG1hdGNoID0+IHtcblx0XHRpZiAobWF0Y2ggPT09ICclJScpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0aW5kZXgrKztcblx0XHRpZiAobWF0Y2ggPT09ICclYycpIHtcblx0XHRcdC8vIFdlIG9ubHkgYXJlIGludGVyZXN0ZWQgaW4gdGhlICpsYXN0KiAlY1xuXHRcdFx0Ly8gKHRoZSB1c2VyIG1heSBoYXZlIHByb3ZpZGVkIHRoZWlyIG93bilcblx0XHRcdGxhc3RDID0gaW5kZXg7XG5cdFx0fVxuXHR9KTtcblxuXHRhcmdzLnNwbGljZShsYXN0QywgMCwgYyk7XG59XG5cbi8qKlxuICogSW52b2tlcyBgY29uc29sZS5kZWJ1ZygpYCB3aGVuIGF2YWlsYWJsZS5cbiAqIE5vLW9wIHdoZW4gYGNvbnNvbGUuZGVidWdgIGlzIG5vdCBhIFwiZnVuY3Rpb25cIi5cbiAqIElmIGBjb25zb2xlLmRlYnVnYCBpcyBub3QgYXZhaWxhYmxlLCBmYWxscyBiYWNrXG4gKiB0byBgY29uc29sZS5sb2dgLlxuICpcbiAqIEBhcGkgcHVibGljXG4gKi9cbmV4cG9ydHMubG9nID0gY29uc29sZS5kZWJ1ZyB8fCBjb25zb2xlLmxvZyB8fCAoKCkgPT4ge30pO1xuXG4vKipcbiAqIFNhdmUgYG5hbWVzcGFjZXNgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lc3BhY2VzXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gc2F2ZShuYW1lc3BhY2VzKSB7XG5cdHRyeSB7XG5cdFx0aWYgKG5hbWVzcGFjZXMpIHtcblx0XHRcdGV4cG9ydHMuc3RvcmFnZS5zZXRJdGVtKCdkZWJ1ZycsIG5hbWVzcGFjZXMpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRleHBvcnRzLnN0b3JhZ2UucmVtb3ZlSXRlbSgnZGVidWcnKTtcblx0XHR9XG5cdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0Ly8gU3dhbGxvd1xuXHRcdC8vIFhYWCAoQFFpeC0pIHNob3VsZCB3ZSBiZSBsb2dnaW5nIHRoZXNlP1xuXHR9XG59XG5cbi8qKlxuICogTG9hZCBgbmFtZXNwYWNlc2AuXG4gKlxuICogQHJldHVybiB7U3RyaW5nfSByZXR1cm5zIHRoZSBwcmV2aW91c2x5IHBlcnNpc3RlZCBkZWJ1ZyBtb2Rlc1xuICogQGFwaSBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIGxvYWQoKSB7XG5cdGxldCByO1xuXHR0cnkge1xuXHRcdHIgPSBleHBvcnRzLnN0b3JhZ2UuZ2V0SXRlbSgnZGVidWcnKTtcblx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHQvLyBTd2FsbG93XG5cdFx0Ly8gWFhYIChAUWl4LSkgc2hvdWxkIHdlIGJlIGxvZ2dpbmcgdGhlc2U/XG5cdH1cblxuXHQvLyBJZiBkZWJ1ZyBpc24ndCBzZXQgaW4gTFMsIGFuZCB3ZSdyZSBpbiBFbGVjdHJvbiwgdHJ5IHRvIGxvYWQgJERFQlVHXG5cdGlmICghciAmJiB0eXBlb2YgcHJvY2VzcyAhPT0gJ3VuZGVmaW5lZCcgJiYgJ2VudicgaW4gcHJvY2Vzcykge1xuXHRcdHIgPSBwcm9jZXNzLmVudi5ERUJVRztcblx0fVxuXG5cdHJldHVybiByO1xufVxuXG4vKipcbiAqIExvY2Fsc3RvcmFnZSBhdHRlbXB0cyB0byByZXR1cm4gdGhlIGxvY2Fsc3RvcmFnZS5cbiAqXG4gKiBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHNhZmFyaSB0aHJvd3NcbiAqIHdoZW4gYSB1c2VyIGRpc2FibGVzIGNvb2tpZXMvbG9jYWxzdG9yYWdlXG4gKiBhbmQgeW91IGF0dGVtcHQgdG8gYWNjZXNzIGl0LlxuICpcbiAqIEByZXR1cm4ge0xvY2FsU3RvcmFnZX1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIGxvY2Fsc3RvcmFnZSgpIHtcblx0dHJ5IHtcblx0XHQvLyBUVk1MS2l0IChBcHBsZSBUViBKUyBSdW50aW1lKSBkb2VzIG5vdCBoYXZlIGEgd2luZG93IG9iamVjdCwganVzdCBsb2NhbFN0b3JhZ2UgaW4gdGhlIGdsb2JhbCBjb250ZXh0XG5cdFx0Ly8gVGhlIEJyb3dzZXIgYWxzbyBoYXMgbG9jYWxTdG9yYWdlIGluIHRoZSBnbG9iYWwgY29udGV4dC5cblx0XHRyZXR1cm4gbG9jYWxTdG9yYWdlO1xuXHR9IGNhdGNoIChlcnJvcikge1xuXHRcdC8vIFN3YWxsb3dcblx0XHQvLyBYWFggKEBRaXgtKSBzaG91bGQgd2UgYmUgbG9nZ2luZyB0aGVzZT9cblx0fVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY29tbW9uJykoZXhwb3J0cyk7XG5cbmNvbnN0IHtmb3JtYXR0ZXJzfSA9IG1vZHVsZS5leHBvcnRzO1xuXG4vKipcbiAqIE1hcCAlaiB0byBgSlNPTi5zdHJpbmdpZnkoKWAsIHNpbmNlIG5vIFdlYiBJbnNwZWN0b3JzIGRvIHRoYXQgYnkgZGVmYXVsdC5cbiAqL1xuXG5mb3JtYXR0ZXJzLmogPSBmdW5jdGlvbiAodikge1xuXHR0cnkge1xuXHRcdHJldHVybiBKU09OLnN0cmluZ2lmeSh2KTtcblx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHRyZXR1cm4gJ1tVbmV4cGVjdGVkSlNPTlBhcnNlRXJyb3JdOiAnICsgZXJyb3IubWVzc2FnZTtcblx0fVxufTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy51cmwgPSB2b2lkIDA7XG5jb25zdCBlbmdpbmVfaW9fY2xpZW50XzEgPSByZXF1aXJlKFwiZW5naW5lLmlvLWNsaWVudFwiKTtcbmNvbnN0IGRlYnVnXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcImRlYnVnXCIpKTsgLy8gZGVidWcoKVxuY29uc3QgZGVidWcgPSBkZWJ1Z18xLmRlZmF1bHQoXCJzb2NrZXQuaW8tY2xpZW50OnVybFwiKTsgLy8gZGVidWcoKVxuLyoqXG4gKiBVUkwgcGFyc2VyLlxuICpcbiAqIEBwYXJhbSB1cmkgLSB1cmxcbiAqIEBwYXJhbSBwYXRoIC0gdGhlIHJlcXVlc3QgcGF0aCBvZiB0aGUgY29ubmVjdGlvblxuICogQHBhcmFtIGxvYyAtIEFuIG9iamVjdCBtZWFudCB0byBtaW1pYyB3aW5kb3cubG9jYXRpb24uXG4gKiAgICAgICAgRGVmYXVsdHMgdG8gd2luZG93LmxvY2F0aW9uLlxuICogQHB1YmxpY1xuICovXG5mdW5jdGlvbiB1cmwodXJpLCBwYXRoID0gXCJcIiwgbG9jKSB7XG4gICAgbGV0IG9iaiA9IHVyaTtcbiAgICAvLyBkZWZhdWx0IHRvIHdpbmRvdy5sb2NhdGlvblxuICAgIGxvYyA9IGxvYyB8fCAodHlwZW9mIGxvY2F0aW9uICE9PSBcInVuZGVmaW5lZFwiICYmIGxvY2F0aW9uKTtcbiAgICBpZiAobnVsbCA9PSB1cmkpXG4gICAgICAgIHVyaSA9IGxvYy5wcm90b2NvbCArIFwiLy9cIiArIGxvYy5ob3N0O1xuICAgIC8vIHJlbGF0aXZlIHBhdGggc3VwcG9ydFxuICAgIGlmICh0eXBlb2YgdXJpID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGlmIChcIi9cIiA9PT0gdXJpLmNoYXJBdCgwKSkge1xuICAgICAgICAgICAgaWYgKFwiL1wiID09PSB1cmkuY2hhckF0KDEpKSB7XG4gICAgICAgICAgICAgICAgdXJpID0gbG9jLnByb3RvY29sICsgdXJpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdXJpID0gbG9jLmhvc3QgKyB1cmk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCEvXihodHRwcz98d3NzPyk6XFwvXFwvLy50ZXN0KHVyaSkpIHtcbiAgICAgICAgICAgIGRlYnVnKFwicHJvdG9jb2wtbGVzcyB1cmwgJXNcIiwgdXJpKTtcbiAgICAgICAgICAgIGlmIChcInVuZGVmaW5lZFwiICE9PSB0eXBlb2YgbG9jKSB7XG4gICAgICAgICAgICAgICAgdXJpID0gbG9jLnByb3RvY29sICsgXCIvL1wiICsgdXJpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdXJpID0gXCJodHRwczovL1wiICsgdXJpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIHBhcnNlXG4gICAgICAgIGRlYnVnKFwicGFyc2UgJXNcIiwgdXJpKTtcbiAgICAgICAgb2JqID0gZW5naW5lX2lvX2NsaWVudF8xLnBhcnNlKHVyaSk7XG4gICAgfVxuICAgIC8vIG1ha2Ugc3VyZSB3ZSB0cmVhdCBgbG9jYWxob3N0OjgwYCBhbmQgYGxvY2FsaG9zdGAgZXF1YWxseVxuICAgIGlmICghb2JqLnBvcnQpIHtcbiAgICAgICAgaWYgKC9eKGh0dHB8d3MpJC8udGVzdChvYmoucHJvdG9jb2wpKSB7XG4gICAgICAgICAgICBvYmoucG9ydCA9IFwiODBcIjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICgvXihodHRwfHdzKXMkLy50ZXN0KG9iai5wcm90b2NvbCkpIHtcbiAgICAgICAgICAgIG9iai5wb3J0ID0gXCI0NDNcIjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBvYmoucGF0aCA9IG9iai5wYXRoIHx8IFwiL1wiO1xuICAgIGNvbnN0IGlwdjYgPSBvYmouaG9zdC5pbmRleE9mKFwiOlwiKSAhPT0gLTE7XG4gICAgY29uc3QgaG9zdCA9IGlwdjYgPyBcIltcIiArIG9iai5ob3N0ICsgXCJdXCIgOiBvYmouaG9zdDtcbiAgICAvLyBkZWZpbmUgdW5pcXVlIGlkXG4gICAgb2JqLmlkID0gb2JqLnByb3RvY29sICsgXCI6Ly9cIiArIGhvc3QgKyBcIjpcIiArIG9iai5wb3J0ICsgcGF0aDtcbiAgICAvLyBkZWZpbmUgaHJlZlxuICAgIG9iai5ocmVmID1cbiAgICAgICAgb2JqLnByb3RvY29sICtcbiAgICAgICAgICAgIFwiOi8vXCIgK1xuICAgICAgICAgICAgaG9zdCArXG4gICAgICAgICAgICAobG9jICYmIGxvYy5wb3J0ID09PSBvYmoucG9ydCA/IFwiXCIgOiBcIjpcIiArIG9iai5wb3J0KTtcbiAgICByZXR1cm4gb2JqO1xufVxuZXhwb3J0cy51cmwgPSB1cmw7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuZ2V0SG9zdE5hbWUgPSBnZXRIb3N0TmFtZTtcbmNvbnN0IGRlZmluZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL2RlZmluZVwiKSk7XG5jb25zdCB1dGlsc18xID0gcmVxdWlyZShcIi4vdXRpbHNcIik7XG5jb25zdCB7IFBST0RVQ1RJT04sIERFVkVMT1BNRU5ULCBQUk9EVUNUSU9OX0RPTUFJTiwgREVWRUxPUE1FTlRfRE9NQUlOLCBTVUJfRE9NQUlOUywgUE9SVFMsIH0gPSBkZWZpbmVfMS5kZWZhdWx0O1xuY29uc3QgYXBpVmVyID0gMTtcbmNvbnN0IGhvc3ROYW1lID0gZ2V0SG9zdE5hbWUoKTtcbmNvbnN0IGVudiA9IGdldEVudihob3N0TmFtZSk7XG5jb25zdCBmaWxlcyA9IHtcbiAgICBjbGllbnQ6IFwidGFsa24uY2xpZW50LmpzXCIsXG4gICAgYXBpOiBcInRhbGtuLmFwaS5qc1wiLFxuICAgIHdzV29ya2VyOiBcIndzLmFwaS53b3JrZXIuanNcIixcbiAgICBleHQ6IFwidGFsa24uZXh0LmpzXCIsXG4gICAgY292ZXI6IFwidGFsa24uY292ZXIuanNcIixcbiAgICB0dW5lOiBcInRhbGtuLnR1bmUuanNcIixcbiAgICBjb21wb25lbnRzOiBcInRhbGtuLmNvbXBvbmVudHMuanNcIixcbn07XG5jb25zdCBpc0RldiA9IGVudiA9PT0gREVWRUxPUE1FTlQ7XG5jb25zdCBkb21haW4gPSBlbnYgPT09IFBST0RVQ1RJT04gPyBQUk9EVUNUSU9OX0RPTUFJTiA6IERFVkVMT1BNRU5UX0RPTUFJTjtcbmNvbnN0IHd3d1VSTCA9IGAke1NVQl9ET01BSU5TLldXV30uJHtkb21haW59YDtcbmNvbnN0IGNvdmVyVVJMID0gYCR7U1VCX0RPTUFJTlMuQ09WRVJ9LiR7ZG9tYWlufWA7XG5jb25zdCBhcGlVUkwgPSBgJHtTVUJfRE9NQUlOUy5BUEl9LiR7ZG9tYWlufWA7XG5jb25zdCBhcGlBY2Nlc3NVUkwgPSBpc0RldlxuICAgID8gYCR7ZG9tYWlufToke1BPUlRTLkRFVkVMT1BNRU5UX0FQSX0vJHtmaWxlcy5hcGl9YFxuICAgIDogYCR7YXBpVVJMfS92JHthcGlWZXJ9YDtcbmNvbnN0IGNsaWVudFVSTCA9IGlzRGV2XG4gICAgPyBgJHtkb21haW59OiR7UE9SVFMuREVWRUxPUE1FTlRfQ0xJRU5UfS8ke2ZpbGVzLmNsaWVudH1gXG4gICAgOiBgJHtTVUJfRE9NQUlOUy5DTElFTlR9LiR7ZG9tYWlufWA7XG5jb25zdCBjb21wb25lbnRzVVJMID0gaXNEZXZcbiAgICA/IGAke2RvbWFpbn06JHtQT1JUUy5ERVZFTE9QTUVOVF9DT01QT05FTlRTfS8ke2ZpbGVzLmNvbXBvbmVudHN9YFxuICAgIDogYCR7U1VCX0RPTUFJTlMuQ09NUE9ORU5UU30uJHtkb21haW59YDtcbmNvbnN0IGRlc2NVUkwgPSBgJHtTVUJfRE9NQUlOUy5ERVNDfS4ke2RvbWFpbn1gO1xuY29uc3QgcG9ydGFsVVJMID0gYCR7U1VCX0RPTUFJTlMuUE9SVEFMfS4ke2RvbWFpbn1gO1xuY29uc3QgYXNzZXRzVVJMID0gYCR7U1VCX0RPTUFJTlMuQVNTRVRTfS4ke2RvbWFpbn1gO1xuY29uc3QgYXV0b1VSTCA9IGAke1NVQl9ET01BSU5TLkFVVE99LiR7ZG9tYWlufWA7XG5jb25zdCBleHRVUkwgPSBgJHtTVUJfRE9NQUlOUy5FWFR9LiR7ZG9tYWlufWA7XG5jb25zdCBjb21wVVJMID0gYCR7U1VCX0RPTUFJTlMuQ09NUH0uJHtkb21haW59YDtcbmNvbnN0IG93blVSTCA9IGAke1NVQl9ET01BSU5TLk9XTn0uJHtkb21haW59YDtcbmNvbnN0IG5ld3NVUkwgPSBgJHtTVUJfRE9NQUlOUy5ORVdTfS4ke2RvbWFpbn1gO1xuY29uc3QgdHVuZVVSTCA9IGAke1NVQl9ET01BSU5TLlRVTkV9LiR7ZG9tYWlufWA7XG5jb25zdCBiYW5uZXJVUkwgPSBgJHtTVUJfRE9NQUlOUy5CQU5ORVJ9LiR7ZG9tYWlufWA7XG5jb25zdCB0cmFuc2FjdGlvblVSTCA9IGAke1NVQl9ET01BSU5TLlRSQU5TQUNUSU9OfS4ke2RvbWFpbn1gO1xuY29uc3QgYXV0aFVSTCA9IGAke1NVQl9ET01BSU5TLkFVVEh9LiR7ZG9tYWlufWA7XG5jb25zdCBhc3NldHNJbWdQYXRoID0gYCR7YXNzZXRzVVJMfS9pbWcvYDtcbmNvbnN0IGFzc2V0c0NvdmVyUGF0aCA9IGAke2Fzc2V0c1VSTH0vY292ZXIvYDtcbmNvbnN0IGFzc2V0c0ljb25QYXRoID0gYCR7YXNzZXRzVVJMfS9pY29uL2A7XG5jb25zdCBhc3NldHNKc1BhdGggPSBgJHthc3NldHNVUkx9L2pzL2A7XG5jb25zdCBzZXNzaW9uVVJMID0gYCR7U1VCX0RPTUFJTlMuU0VTU0lPTn0uJHtkb21haW59YDtcbmNvbnN0IGRlc2NyaXB0aW9uID0gXCJ0YWxrbiBjYW4gc2hhcmUgY29tbWVudHMgd2l0aCB1c2VycyB3YXRjaGluZyB0aGUgc2FtZSBXRUIgcGFnZS4gUGxlYXNlIGVuam95IHRoZSB3b3JsZCBvZiB0YWxrbi5cIjtcbmNvbnN0IGZhdmljb24gPSBgaHR0cHM6Ly8ke2Fzc2V0c1VSTH0vZmF2aWNvbi5pY29gO1xuY29uc3QgbHBMYW5ndWFnZXMgPSBbXG4gICAgXCJlblwiLFxuICAgIFwiemhcIixcbiAgICBcImphXCIsXG4gICAgXCJkZVwiLFxuICAgIFwiZnJcIixcbiAgICBcImhpXCIsXG4gICAgXCJwdFwiLFxuICAgIFwiaXRcIixcbiAgICBcInJ1XCIsXG4gICAgXCJrb1wiLFxuICAgIFwiZXNcIixcbiAgICBcImlkXCIsXG4gICAgXCJ0clwiLFxuICAgIFwibmxcIixcbiAgICBcImFyXCIsXG4gICAgXCJ6aC1UV1wiLFxuICAgIFwicGxcIixcbiAgICBcInN2XCIsXG4gICAgXCJ0aFwiLFxuICAgIFwiZmFcIixcbiAgICBcIm5uXCIsXG4gICAgXCJnYVwiLFxuICAgIFwiaGVcIixcbiAgICBcIm1yXCIsXG5dO1xuY29uc3QgZGVmYXVsdEJpcnRoZGF5VW5peHRpbWUgPSAxMDAwMDAwMDAwMDAwO1xuY29uc3QgZmluZE9uZVRocmVhZEFjdGl2ZUhvdXIgPSAxO1xuY29uc3QgZmluZE9uZVBvc3RDbnQgPSAzMDtcbmNvbnN0IGZpbmRPbmVMaW1pdENudCA9IDMwMDtcbmNvbnN0IG9ncEltYWdlcyA9IHtcbiAgICBIdG1sOiBgLy8ke2Fzc2V0c0ltZ1BhdGh9dGFsa25fbG9nb19odG1sLnBuZ2AsXG4gICAgTXVzaWM6IGAvLyR7YXNzZXRzSW1nUGF0aH10YWxrbl9sb2dvX211c2ljLnBuZ2AsXG4gICAgVmlkZW86IGAvLyR7YXNzZXRzSW1nUGF0aH10YWxrbl9sb2dvX3ZpZGVvLnBuZ2AsXG59O1xuY29uc3QgZGVmYXVsdEZhdmljb24gPSBgLy8ke1NVQl9ET01BSU5TLkFTU0VUU30uJHtkb21haW59L2Zhdmljb24uaWNvYDtcbmNvbnN0IGNvbmYgPSB7XG4gICAgZG9tYWluLFxuICAgIGlzRGV2LFxuICAgIGVudixcbiAgICBmaWxlcyxcbiAgICBob3N0TmFtZSxcbiAgICBhcGlVUkwsXG4gICAgYXBpQWNjZXNzVVJMLFxuICAgIGNvdmVyVVJMLFxuICAgIHd3d1VSTCxcbiAgICBkZXNjVVJMLFxuICAgIHBvcnRhbFVSTCxcbiAgICBjbGllbnRVUkwsXG4gICAgYXNzZXRzVVJMLFxuICAgIGF1dG9VUkwsXG4gICAgZXh0VVJMLFxuICAgIGNvbXBVUkwsXG4gICAgb3duVVJMLFxuICAgIG5ld3NVUkwsXG4gICAgdHVuZVVSTCxcbiAgICBiYW5uZXJVUkwsXG4gICAgY29tcG9uZW50c1VSTCxcbiAgICB0cmFuc2FjdGlvblVSTCxcbiAgICBhdXRoVVJMLFxuICAgIGFzc2V0c0ltZ1BhdGgsXG4gICAgYXNzZXRzQ292ZXJQYXRoLFxuICAgIGFzc2V0c0ljb25QYXRoLFxuICAgIGFzc2V0c0pzUGF0aCxcbiAgICBzZXNzaW9uVVJMLFxuICAgIGRlc2NyaXB0aW9uLFxuICAgIGFwaVZlcixcbiAgICBmYXZpY29uLFxuICAgIGxwTGFuZ3VhZ2VzLFxuICAgIGRlZmF1bHRCaXJ0aGRheVVuaXh0aW1lLFxuICAgIGZpbmRPbmVUaHJlYWRBY3RpdmVIb3VyLFxuICAgIGZpbmRPbmVQb3N0Q250LFxuICAgIGZpbmRPbmVMaW1pdENudCxcbiAgICBvZ3BJbWFnZXMsXG4gICAgZGVmYXVsdEZhdmljb24sXG59O1xuZXhwb3J0cy5kZWZhdWx0ID0geyAuLi5jb25mIH07XG5mdW5jdGlvbiBnZXRIb3N0TmFtZSgpIHtcbiAgICBpZiAodXRpbHNfMS5JU19OT0RFKSB7XG4gICAgICAgIC8vIOmBi+eUqO+8muOBvuOBmueSsOWig+WkieaVsOOAgeeEoeOBkeOCjOOBsCBvcy5ob3N0bmFtZSgpXG4gICAgICAgIGNvbnN0IGVudk5hbWUgPSBwcm9jZXNzLmVudj8uSE9TVE5BTUUgfHxcbiAgICAgICAgICAgIHByb2Nlc3MuZW52Py5IT1NUIHx8XG4gICAgICAgICAgICBwcm9jZXNzLmVudj8uTk9ERV9IT1NUTkFNRTtcbiAgICAgICAgaWYgKGVudk5hbWU/LnRyaW0oKSlcbiAgICAgICAgICAgIHJldHVybiBlbnZOYW1lLnRyaW0oKTtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXNcbiAgICAgICAgY29uc3Qgb3MgPSByZXF1aXJlKFwib3NcIik7XG4gICAgICAgIHJldHVybiBvcy5ob3N0bmFtZSgpO1xuICAgIH1cbiAgICBpZiAodXRpbHNfMS5JU19CUk9XU0VSKSB7XG4gICAgICAgIC8vIOODluODqeOCpuOCtu+8muWun+ihjOS4reOBruODm+OCueODiOOBi+OCiVxuICAgICAgICByZXR1cm4gbG9jYXRpb24uaG9zdG5hbWU7XG4gICAgfVxuICAgIC8vIOODleOCqeODvOODq+ODkOODg+OCr1xuICAgIHJldHVybiBcImxvY2FsaG9zdFwiO1xufVxuLy8gVE9ETzogTW92ZSB0byBzZXJ2ZXIgY29uZiggbm90IHVzZSBmcm9tIGNsaWVudCApLlxuZnVuY3Rpb24gZ2V0RW52KGhvc3ROYW1lKSB7XG4gICAgLy8gbm9kZSBzZXJ2ZXIgfCBkb2NrZXJcbiAgICBpZiAodXRpbHNfMS5JU19OT0RFKSB7XG4gICAgICAgIHJldHVybiBob3N0TmFtZSA9PT0gXCJsb2NhbGhvc3RcIlxuICAgICAgICAgICAgPyBkZWZpbmVfMS5kZWZhdWx0LkRFVkVMT1BNRU5UXG4gICAgICAgICAgICA6IGRlZmluZV8xLmRlZmF1bHQuUFJPRFVDVElPTjtcbiAgICB9XG4gICAgcmV0dXJuIGRlZmluZV8xLmRlZmF1bHQuUFJPRFVDVElPTjtcbn1cbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5nZXRDb25uZWN0aW9uc09wdGlvbnMgPSBleHBvcnRzLmluaXQgPSB2b2lkIDA7XG5jb25zdCB1dGlsc18xID0gcmVxdWlyZShcIkBjb21tb24vdXRpbHNcIik7XG5jb25zdCBTZXF1ZW5jZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuLi9TZXF1ZW5jZVwiKSk7XG5jb25zdCBkZWZpbmVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi4vZGVmaW5lXCIpKTtcbmNvbnN0IEJvb3RPcHRpb25fMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi9Cb290T3B0aW9uXCIpKTtcbmV4cG9ydHMuaW5pdCA9IHtcbiAgICB0dW5lSWQ6ICcnLFxuICAgIGNvbm5lY3Rpb246ICcnLFxuICAgIGNvbm5lY3Rpb25zOiBbXSxcbiAgICB0eXBlOiAnJyxcbiAgICBsaXZlQ250OiAwLFxuICAgIGZhdmljb246ICcnLFxuICAgIGdhdGV3YXk6ICcnLFxuICAgIHNlcnZlcjogJycsXG4gICAgYWN0aXZlOiBmYWxzZSxcbiAgICBhdWRpb3M6IFtdLFxuICAgIHZpZGVvczogW11cbn07XG5leHBvcnRzLmdldENvbm5lY3Rpb25zT3B0aW9ucyA9IHtcbiAgICBpc1NlbGZFeGNsdWRlOiBmYWxzZSxcbiAgICBpc1NvcnRVcHBlckxheWVyOiB0cnVlLFxufTtcbmNsYXNzIENoTW9kZWwge1xuICAgIGNvbnN0cnVjdG9yKHBhcmFtcyA9IGV4cG9ydHMuaW5pdCkge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih0aGlzLCBwYXJhbXMpO1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0UGFyZW50Q29ubmVjdGlvbihmaXhDb25uZWN0aW9uKSB7XG4gICAgICAgIGlmIChmaXhDb25uZWN0aW9uID09PSBDaE1vZGVsLnJvb3RDb25uZWN0aW9uKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgbGV0IHJlcGxhY2VkQ29ubmVjdGlvbiA9IGZpeENvbm5lY3Rpb24ucmVwbGFjZSgvLiQvLCAnJyk7XG4gICAgICAgIGNvbnN0IGxhc3RTbGFzaEluZGV4ID0gcmVwbGFjZWRDb25uZWN0aW9uLmxhc3RJbmRleE9mKCcvJyk7XG4gICAgICAgIHJldHVybiByZXBsYWNlZENvbm5lY3Rpb24uc3Vic3RyaW5nKDAsIGxhc3RTbGFzaEluZGV4ICsgMSk7XG4gICAgfVxuICAgIHN0YXRpYyBnZXRUb3BDb25uZWN0aW9uKGNvbm5lY3Rpb24pIHtcbiAgICAgICAgaWYgKGNvbm5lY3Rpb24gPT09IENoTW9kZWwucm9vdENvbm5lY3Rpb24pXG4gICAgICAgICAgICByZXR1cm4gQ2hNb2RlbC5yb290Q29ubmVjdGlvbjtcbiAgICAgICAgY29uc3Qgc2VwID0gdGhpcy5zZXBhcmV0b3I7XG4gICAgICAgIHJldHVybiBgJHtzZXB9JHtjb25uZWN0aW9uLnNwbGl0KHNlcClbMV19JHtzZXB9YDtcbiAgICB9XG4gICAgc3RhdGljIGdldENvbm5lY3Rpb24oY29ubmVjdGlvbikge1xuICAgICAgICByZXR1cm4gQm9vdE9wdGlvbl8xLmRlZmF1bHQuZ2V0Q29ubmVjdGlvbihjb25uZWN0aW9uKTtcbiAgICB9XG4gICAgc3RhdGljIGdldENvbm5lY3Rpb25Gcm9tVXJsKHVybCkge1xuICAgICAgICBjb25zdCBxdWVyeVN0cmluZyA9IHVybC5zcGxpdChcIj9cIilbMV07XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMocXVlcnlTdHJpbmcpO1xuICAgICAgICBjb25zdCByYXdUdW5lSWQgPSBwYXJhbXMuZ2V0KFwidHVuZUlkXCIpO1xuICAgICAgICBpZiAocmF3VHVuZUlkID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gQ2hNb2RlbC5yb290Q29ubmVjdGlvbjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBDaE1vZGVsLmdldENvbm5lY3Rpb25Gcm9tVHVuZUlkKHJhd1R1bmVJZCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc3RhdGljIGdldENvbm5lY3Rpb25Gcm9tVHVuZUlkKHR1bmVJZCkge1xuICAgICAgICBjb25zdCBkZWNvZGVkID0gZGVjb2RlVVJJQ29tcG9uZW50KHR1bmVJZCA/PyBcIlwiKTtcbiAgICAgICAgY29uc3QgZXNjYXBlZFNlcGFyYXRvciA9IHV0aWxzXzEuZ2VuZXJhdGVVbmlxdWVLZXlTZXBhcmF0b3IucmVwbGFjZSgvWy1cXC9cXFxcXiQqKz8uKCl8W1xcXXt9XS9nLCAnXFxcXCQmJyk7XG4gICAgICAgIGNvbnN0IHBhdHRlcm4gPSBuZXcgUmVnRXhwKGBeY29uJHtlc2NhcGVkU2VwYXJhdG9yfSguKj8pJHtlc2NhcGVkU2VwYXJhdG9yfWApO1xuICAgICAgICBjb25zdCBtYXRjaCA9IGRlY29kZWQubWF0Y2gocGF0dGVybik7XG4gICAgICAgIGxldCBjb25uZWN0aW9uID0gbWF0Y2g/LlsxXSA/IG1hdGNoPy5bMV0gOiBDaE1vZGVsLnJvb3RDb25uZWN0aW9uO1xuICAgICAgICBjb25uZWN0aW9uID0gY29ubmVjdGlvbi5zdGFydHNXaXRoKENoTW9kZWwucm9vdENvbm5lY3Rpb24pID8gY29ubmVjdGlvbiA6IGAke0NoTW9kZWwucm9vdENvbm5lY3Rpb259JHtjb25uZWN0aW9ufWA7XG4gICAgICAgIGNvbm5lY3Rpb24gPSBjb25uZWN0aW9uLmVuZHNXaXRoKENoTW9kZWwucm9vdENvbm5lY3Rpb24pID8gY29ubmVjdGlvbiA6IGAke2Nvbm5lY3Rpb259JHtDaE1vZGVsLnJvb3RDb25uZWN0aW9ufWA7XG4gICAgICAgIHJldHVybiBjb25uZWN0aW9uO1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0RmF2aWNvbihob3N0KSB7XG4gICAgICAgIGlmIChob3N0ID09PSBkZWZpbmVfMS5kZWZhdWx0LkRFVkVMT1BNRU5UX0RPTUFJTilcbiAgICAgICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgICBpZiAoaG9zdCA9PT0gQ2hNb2RlbC5yb290Q29ubmVjdGlvbilcbiAgICAgICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgICByZXR1cm4gYCR7aG9zdH0vZmF2aWNvbi5pY29gO1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0Q29ubmVjdGlvbnMoY29ubmVjdGlvbiwgb3B0aW9ucyA9IGV4cG9ydHMuZ2V0Q29ubmVjdGlvbnNPcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IHsgaXNTZWxmRXhjbHVkZSwgaXNTb3J0VXBwZXJMYXllciB9ID0gb3B0aW9ucztcbiAgICAgICAgbGV0IGNvbm5lY3Rpb25zID0gW0NoTW9kZWwucm9vdENvbm5lY3Rpb25dO1xuICAgICAgICBpZiAoY29ubmVjdGlvbiAmJiBjb25uZWN0aW9uICE9PSBDaE1vZGVsLnJvb3RDb25uZWN0aW9uKSB7XG4gICAgICAgICAgICBjb25zdCBjb25uZWN0aW9uQXJyID0gY29ubmVjdGlvbi5zcGxpdChDaE1vZGVsLmNvbm5lY3Rpb25TZXBhcmF0b3IpLmZpbHRlcigocGFydCkgPT4gcGFydCAhPT0gJycpO1xuICAgICAgICAgICAgbGV0IGNvbm5lY3Rpb25QYXJ0ID0gJyc7XG4gICAgICAgICAgICBjb25uZWN0aW9uQXJyLmZvckVhY2goKHNlZ21lbnQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25uZWN0aW9uUGFydCArPSBgJHt0aGlzLnNlcGFyZXRvcn0ke3NlZ21lbnR9YDtcbiAgICAgICAgICAgICAgICBjb25zdCBhZGRDb25uZWN0aW9uID0gYCR7Y29ubmVjdGlvblBhcnR9JHt0aGlzLnNlcGFyZXRvcn1gO1xuICAgICAgICAgICAgICAgIGlmICghKGlzU2VsZkV4Y2x1ZGUgJiYgYWRkQ29ubmVjdGlvbiA9PT0gY29ubmVjdGlvbikpIHtcbiAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbnMucHVzaChhZGRDb25uZWN0aW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNTb3J0VXBwZXJMYXllcikge1xuICAgICAgICAgICAgY29ubmVjdGlvbnMuc29ydCgoYSwgYikgPT4gYS5sZW5ndGggLSBiLmxlbmd0aCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25uZWN0aW9ucy5zb3J0KChhLCBiKSA9PiBiLmxlbmd0aCAtIGEubGVuZ3RoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY29ubmVjdGlvbnM7XG4gICAgfVxuICAgIHN0YXRpYyBnZXRNeUNvbm5lY3Rpb25DbGFzcyhjb25uZWN0aW9ucywgc3RhcnRDb25uZWN0aW9uLCBlbmRDb25uZWN0aW9uKSB7XG4gICAgICAgIGNvbnN0IG15Q29ubmVjdGlvbkNsYXNzID0gW107XG4gICAgICAgIGNvbnN0IGxvb3BDb25uZWN0aW9ucyA9IGNvbm5lY3Rpb25zLnNsaWNlKCkuc29ydCgoYSwgYikgPT4gYS5sZW5ndGggLSBiLmxlbmd0aCk7XG4gICAgICAgIGVuZENvbm5lY3Rpb24gPSBlbmRDb25uZWN0aW9uID8gZW5kQ29ubmVjdGlvbiA6IGxvb3BDb25uZWN0aW9uc1tsb29wQ29ubmVjdGlvbnMubGVuZ3RoIC0gMV07XG4gICAgICAgIGxldCBpc1B1c2ggPSBmYWxzZTtcbiAgICAgICAgZm9yIChjb25zdCBpIGluIGxvb3BDb25uZWN0aW9ucykge1xuICAgICAgICAgICAgaWYgKGNvbm5lY3Rpb25zW2ldID09PSBzdGFydENvbm5lY3Rpb24pIHtcbiAgICAgICAgICAgICAgICBpc1B1c2ggPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGNvbm5lY3Rpb25zW2ldID09PSBlbmRDb25uZWN0aW9uKVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgaWYgKGlzUHVzaCkge1xuICAgICAgICAgICAgICAgIG15Q29ubmVjdGlvbkNsYXNzLnB1c2goY29ubmVjdGlvbnNbaV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBteUNvbm5lY3Rpb25DbGFzcztcbiAgICB9XG4gICAgc3RhdGljIGdldFR5cGUoaG9zdCkge1xuICAgICAgICByZXR1cm4gaG9zdC5zdGFydHNXaXRoKFNlcXVlbmNlXzEuZGVmYXVsdC5IVFRQU19QUk9UT0NPTCkgfHwgaG9zdC5zdGFydHNXaXRoKFNlcXVlbmNlXzEuZGVmYXVsdC5IVFRQX1BST1RPQ09MKSA/IENoTW9kZWwuZGVmdWx0VHlwZSA6IENoTW9kZWwucGxhaW5UeXBlO1xuICAgIH1cbiAgICBzdGF0aWMgaXNNZWRpYUNoKHR5cGUpIHtcbiAgICAgICAgcmV0dXJuIHR5cGUuc3RhcnRzV2l0aCgnYXVkaW8nKSB8fCB0eXBlLnN0YXJ0c1dpdGgoJ3ZpZGVvJyk7XG4gICAgfVxuICAgIHN0YXRpYyBnZXRHYXRld2F5KGNoQ29uZmlnKSB7XG4gICAgICAgIHJldHVybiBjaENvbmZpZyAmJiBjaENvbmZpZy5nYXRld2F5Py5ob3N0ICYmIGNoQ29uZmlnLmdhdGV3YXkucG9ydFxuICAgICAgICAgICAgPyBgJHtjaENvbmZpZy5nYXRld2F5Lmhvc3R9OiR7Y2hDb25maWcuZ2F0ZXdheS5wb3J0fWBcbiAgICAgICAgICAgIDogYDEyNy4wLjAuMToke2RlZmluZV8xLmRlZmF1bHQuUE9SVFMuSU9fUk9PVH1gO1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0U2VydmVyKGNoQ29uZmlnKSB7XG4gICAgICAgIHJldHVybiBjaENvbmZpZyAmJiBjaENvbmZpZy5pb1NlcnZlci5ob3N0ICYmIGNoQ29uZmlnLmlvU2VydmVyLnBvcnRcbiAgICAgICAgICAgID8gYCR7Y2hDb25maWcuaW9TZXJ2ZXIuaG9zdH06JHtjaENvbmZpZy5pb1NlcnZlci5wb3J0fWBcbiAgICAgICAgICAgIDogYDEyNy4wLjAuMToke2RlZmluZV8xLmRlZmF1bHQuUE9SVFMuSU9fUk9PVH1gO1xuICAgIH1cbn1cbkNoTW9kZWwuc2VwYXJldG9yID0gJy8nO1xuQ2hNb2RlbC5yb290Q29ubmVjdGlvbiA9IENoTW9kZWwuc2VwYXJldG9yO1xuQ2hNb2RlbC5jb25uZWN0aW9uU2VwYXJhdG9yID0gJy8nO1xuQ2hNb2RlbC5kZWZhdWx0UHJvdG9jb2wgPSAndGFsa246Oic7XG5DaE1vZGVsLmRlZnVsdFR5cGUgPSAndGV4dC9odG1sJztcbkNoTW9kZWwucGxhaW5UeXBlID0gJ3BsYWluJztcbkNoTW9kZWwuZ2V0Q2hQYXJhbXMgPSAocGFyYW1zKSA9PiB7XG4gICAgY29uc3QgeyB0dW5lSWQsIGNvbm5lY3Rpb246IF9jb25uZWN0aW9uLCBob3N0LCBsaXZlQ250LCBjaENvbmZpZyB9ID0gcGFyYW1zO1xuICAgIGNvbnN0IGNvbm5lY3Rpb24gPSBDaE1vZGVsLmdldENvbm5lY3Rpb24oX2Nvbm5lY3Rpb24pO1xuICAgIGNvbnN0IGNvbm5lY3Rpb25zID0gQ2hNb2RlbC5nZXRDb25uZWN0aW9ucyhjb25uZWN0aW9uKTtcbiAgICBjb25zdCBmYXZpY29uID0gQ2hNb2RlbC5nZXRGYXZpY29uKGhvc3QpO1xuICAgIGNvbnN0IHR5cGUgPSBDaE1vZGVsLmdldFR5cGUoaG9zdCk7XG4gICAgY29uc3QgZ2F0ZXdheSA9IENoTW9kZWwuZ2V0R2F0ZXdheShjaENvbmZpZyk7XG4gICAgY29uc3Qgc2VydmVyID0gQ2hNb2RlbC5nZXRTZXJ2ZXIoY2hDb25maWcpO1xuICAgIHJldHVybiB7XG4gICAgICAgIHR1bmVJZCxcbiAgICAgICAgY29ubmVjdGlvbixcbiAgICAgICAgY29ubmVjdGlvbnMsXG4gICAgICAgIGZhdmljb24sXG4gICAgICAgIHR5cGUsXG4gICAgICAgIGxpdmVDbnQsXG4gICAgICAgIGdhdGV3YXksXG4gICAgICAgIHNlcnZlcixcbiAgICB9O1xufTtcbmV4cG9ydHMuZGVmYXVsdCA9IENoTW9kZWw7XG4iLCJcInVzZSBzdHJpY3RcIjtcbi8qKlxuICogSW5pdGlhbGl6ZSBiYWNrb2ZmIHRpbWVyIHdpdGggYG9wdHNgLlxuICpcbiAqIC0gYG1pbmAgaW5pdGlhbCB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcyBbMTAwXVxuICogLSBgbWF4YCBtYXggdGltZW91dCBbMTAwMDBdXG4gKiAtIGBqaXR0ZXJgIFswXVxuICogLSBgZmFjdG9yYCBbMl1cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0c1xuICogQGFwaSBwdWJsaWNcbiAqL1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5CYWNrb2ZmID0gdm9pZCAwO1xuZnVuY3Rpb24gQmFja29mZihvcHRzKSB7XG4gICAgb3B0cyA9IG9wdHMgfHwge307XG4gICAgdGhpcy5tcyA9IG9wdHMubWluIHx8IDEwMDtcbiAgICB0aGlzLm1heCA9IG9wdHMubWF4IHx8IDEwMDAwO1xuICAgIHRoaXMuZmFjdG9yID0gb3B0cy5mYWN0b3IgfHwgMjtcbiAgICB0aGlzLmppdHRlciA9IG9wdHMuaml0dGVyID4gMCAmJiBvcHRzLmppdHRlciA8PSAxID8gb3B0cy5qaXR0ZXIgOiAwO1xuICAgIHRoaXMuYXR0ZW1wdHMgPSAwO1xufVxuZXhwb3J0cy5CYWNrb2ZmID0gQmFja29mZjtcbi8qKlxuICogUmV0dXJuIHRoZSBiYWNrb2ZmIGR1cmF0aW9uLlxuICpcbiAqIEByZXR1cm4ge051bWJlcn1cbiAqIEBhcGkgcHVibGljXG4gKi9cbkJhY2tvZmYucHJvdG90eXBlLmR1cmF0aW9uID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciBtcyA9IHRoaXMubXMgKiBNYXRoLnBvdyh0aGlzLmZhY3RvciwgdGhpcy5hdHRlbXB0cysrKTtcbiAgICBpZiAodGhpcy5qaXR0ZXIpIHtcbiAgICAgICAgdmFyIHJhbmQgPSBNYXRoLnJhbmRvbSgpO1xuICAgICAgICB2YXIgZGV2aWF0aW9uID0gTWF0aC5mbG9vcihyYW5kICogdGhpcy5qaXR0ZXIgKiBtcyk7XG4gICAgICAgIG1zID0gKE1hdGguZmxvb3IocmFuZCAqIDEwKSAmIDEpID09IDAgPyBtcyAtIGRldmlhdGlvbiA6IG1zICsgZGV2aWF0aW9uO1xuICAgIH1cbiAgICByZXR1cm4gTWF0aC5taW4obXMsIHRoaXMubWF4KSB8IDA7XG59O1xuLyoqXG4gKiBSZXNldCB0aGUgbnVtYmVyIG9mIGF0dGVtcHRzLlxuICpcbiAqIEBhcGkgcHVibGljXG4gKi9cbkJhY2tvZmYucHJvdG90eXBlLnJlc2V0ID0gZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuYXR0ZW1wdHMgPSAwO1xufTtcbi8qKlxuICogU2V0IHRoZSBtaW5pbXVtIGR1cmF0aW9uXG4gKlxuICogQGFwaSBwdWJsaWNcbiAqL1xuQmFja29mZi5wcm90b3R5cGUuc2V0TWluID0gZnVuY3Rpb24gKG1pbikge1xuICAgIHRoaXMubXMgPSBtaW47XG59O1xuLyoqXG4gKiBTZXQgdGhlIG1heGltdW0gZHVyYXRpb25cbiAqXG4gKiBAYXBpIHB1YmxpY1xuICovXG5CYWNrb2ZmLnByb3RvdHlwZS5zZXRNYXggPSBmdW5jdGlvbiAobWF4KSB7XG4gICAgdGhpcy5tYXggPSBtYXg7XG59O1xuLyoqXG4gKiBTZXQgdGhlIGppdHRlclxuICpcbiAqIEBhcGkgcHVibGljXG4gKi9cbkJhY2tvZmYucHJvdG90eXBlLnNldEppdHRlciA9IGZ1bmN0aW9uIChqaXR0ZXIpIHtcbiAgICB0aGlzLmppdHRlciA9IGppdHRlcjtcbn07XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuZGVmYXVsdCA9IGV4cG9ydHMuY29ubmVjdCA9IGV4cG9ydHMuaW8gPSBleHBvcnRzLlNvY2tldCA9IGV4cG9ydHMuTWFuYWdlciA9IGV4cG9ydHMucHJvdG9jb2wgPSB2b2lkIDA7XG5jb25zdCB1cmxfanNfMSA9IHJlcXVpcmUoXCIuL3VybC5qc1wiKTtcbmNvbnN0IG1hbmFnZXJfanNfMSA9IHJlcXVpcmUoXCIuL21hbmFnZXIuanNcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJNYW5hZ2VyXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBtYW5hZ2VyX2pzXzEuTWFuYWdlcjsgfSB9KTtcbmNvbnN0IHNvY2tldF9qc18xID0gcmVxdWlyZShcIi4vc29ja2V0LmpzXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiU29ja2V0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBzb2NrZXRfanNfMS5Tb2NrZXQ7IH0gfSk7XG5jb25zdCBkZWJ1Z18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJkZWJ1Z1wiKSk7IC8vIGRlYnVnKClcbmNvbnN0IGRlYnVnID0gZGVidWdfMS5kZWZhdWx0KFwic29ja2V0LmlvLWNsaWVudFwiKTsgLy8gZGVidWcoKVxuLyoqXG4gKiBNYW5hZ2VycyBjYWNoZS5cbiAqL1xuY29uc3QgY2FjaGUgPSB7fTtcbmZ1bmN0aW9uIGxvb2t1cCh1cmksIG9wdHMpIHtcbiAgICBpZiAodHlwZW9mIHVyaSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICBvcHRzID0gdXJpO1xuICAgICAgICB1cmkgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIG9wdHMgPSBvcHRzIHx8IHt9O1xuICAgIGNvbnN0IHBhcnNlZCA9IHVybF9qc18xLnVybCh1cmksIG9wdHMucGF0aCB8fCBcIi9zb2NrZXQuaW9cIik7XG4gICAgY29uc3Qgc291cmNlID0gcGFyc2VkLnNvdXJjZTtcbiAgICBjb25zdCBpZCA9IHBhcnNlZC5pZDtcbiAgICBjb25zdCBwYXRoID0gcGFyc2VkLnBhdGg7XG4gICAgY29uc3Qgc2FtZU5hbWVzcGFjZSA9IGNhY2hlW2lkXSAmJiBwYXRoIGluIGNhY2hlW2lkXVtcIm5zcHNcIl07XG4gICAgY29uc3QgbmV3Q29ubmVjdGlvbiA9IG9wdHMuZm9yY2VOZXcgfHxcbiAgICAgICAgb3B0c1tcImZvcmNlIG5ldyBjb25uZWN0aW9uXCJdIHx8XG4gICAgICAgIGZhbHNlID09PSBvcHRzLm11bHRpcGxleCB8fFxuICAgICAgICBzYW1lTmFtZXNwYWNlO1xuICAgIGxldCBpbztcbiAgICBpZiAobmV3Q29ubmVjdGlvbikge1xuICAgICAgICBkZWJ1ZyhcImlnbm9yaW5nIHNvY2tldCBjYWNoZSBmb3IgJXNcIiwgc291cmNlKTtcbiAgICAgICAgaW8gPSBuZXcgbWFuYWdlcl9qc18xLk1hbmFnZXIoc291cmNlLCBvcHRzKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGlmICghY2FjaGVbaWRdKSB7XG4gICAgICAgICAgICBkZWJ1ZyhcIm5ldyBpbyBpbnN0YW5jZSBmb3IgJXNcIiwgc291cmNlKTtcbiAgICAgICAgICAgIGNhY2hlW2lkXSA9IG5ldyBtYW5hZ2VyX2pzXzEuTWFuYWdlcihzb3VyY2UsIG9wdHMpO1xuICAgICAgICB9XG4gICAgICAgIGlvID0gY2FjaGVbaWRdO1xuICAgIH1cbiAgICBpZiAocGFyc2VkLnF1ZXJ5ICYmICFvcHRzLnF1ZXJ5KSB7XG4gICAgICAgIG9wdHMucXVlcnkgPSBwYXJzZWQucXVlcnlLZXk7XG4gICAgfVxuICAgIHJldHVybiBpby5zb2NrZXQocGFyc2VkLnBhdGgsIG9wdHMpO1xufVxuZXhwb3J0cy5pbyA9IGxvb2t1cDtcbmV4cG9ydHMuY29ubmVjdCA9IGxvb2t1cDtcbmV4cG9ydHMuZGVmYXVsdCA9IGxvb2t1cDtcbi8vIHNvIHRoYXQgXCJsb29rdXBcIiBjYW4gYmUgdXNlZCBib3RoIGFzIGEgZnVuY3Rpb24gKGUuZy4gYGlvKC4uLilgKSBhbmQgYXMgYVxuLy8gbmFtZXNwYWNlIChlLmcuIGBpby5jb25uZWN0KC4uLilgKSwgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlcbk9iamVjdC5hc3NpZ24obG9va3VwLCB7XG4gICAgTWFuYWdlcjogbWFuYWdlcl9qc18xLk1hbmFnZXIsXG4gICAgU29ja2V0OiBzb2NrZXRfanNfMS5Tb2NrZXQsXG4gICAgaW86IGxvb2t1cCxcbiAgICBjb25uZWN0OiBsb29rdXAsXG59KTtcbi8qKlxuICogUHJvdG9jb2wgdmVyc2lvbi5cbiAqXG4gKiBAcHVibGljXG4gKi9cbnZhciBzb2NrZXRfaW9fcGFyc2VyXzEgPSByZXF1aXJlKFwic29ja2V0LmlvLXBhcnNlclwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcInByb3RvY29sXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBzb2NrZXRfaW9fcGFyc2VyXzEucHJvdG9jb2w7IH0gfSk7XG5cbm1vZHVsZS5leHBvcnRzID0gbG9va3VwO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlNvY2tldCA9IHZvaWQgMDtcbmNvbnN0IGluZGV4X2pzXzEgPSByZXF1aXJlKFwiLi90cmFuc3BvcnRzL2luZGV4LmpzXCIpO1xuY29uc3QgdXRpbF9qc18xID0gcmVxdWlyZShcIi4vdXRpbC5qc1wiKTtcbmNvbnN0IHBhcnNlcXNfanNfMSA9IHJlcXVpcmUoXCIuL2NvbnRyaWIvcGFyc2Vxcy5qc1wiKTtcbmNvbnN0IHBhcnNldXJpX2pzXzEgPSByZXF1aXJlKFwiLi9jb250cmliL3BhcnNldXJpLmpzXCIpO1xuY29uc3QgZGVidWdfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiZGVidWdcIikpOyAvLyBkZWJ1ZygpXG5jb25zdCBjb21wb25lbnRfZW1pdHRlcl8xID0gcmVxdWlyZShcIkBzb2NrZXQuaW8vY29tcG9uZW50LWVtaXR0ZXJcIik7XG5jb25zdCBlbmdpbmVfaW9fcGFyc2VyXzEgPSByZXF1aXJlKFwiZW5naW5lLmlvLXBhcnNlclwiKTtcbmNvbnN0IHdlYnNvY2tldF9jb25zdHJ1Y3Rvcl9qc18xID0gcmVxdWlyZShcIi4vdHJhbnNwb3J0cy93ZWJzb2NrZXQtY29uc3RydWN0b3IuanNcIik7XG5jb25zdCBkZWJ1ZyA9ICgwLCBkZWJ1Z18xLmRlZmF1bHQpKFwiZW5naW5lLmlvLWNsaWVudDpzb2NrZXRcIik7IC8vIGRlYnVnKClcbmNsYXNzIFNvY2tldCBleHRlbmRzIGNvbXBvbmVudF9lbWl0dGVyXzEuRW1pdHRlciB7XG4gICAgLyoqXG4gICAgICogU29ja2V0IGNvbnN0cnVjdG9yLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtTdHJpbmd8T2JqZWN0fSB1cmkgLSB1cmkgb3Igb3B0aW9uc1xuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9uc1xuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHVyaSwgb3B0cyA9IHt9KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuYmluYXJ5VHlwZSA9IHdlYnNvY2tldF9jb25zdHJ1Y3Rvcl9qc18xLmRlZmF1bHRCaW5hcnlUeXBlO1xuICAgICAgICB0aGlzLndyaXRlQnVmZmVyID0gW107XG4gICAgICAgIGlmICh1cmkgJiYgXCJvYmplY3RcIiA9PT0gdHlwZW9mIHVyaSkge1xuICAgICAgICAgICAgb3B0cyA9IHVyaTtcbiAgICAgICAgICAgIHVyaSA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHVyaSkge1xuICAgICAgICAgICAgdXJpID0gKDAsIHBhcnNldXJpX2pzXzEucGFyc2UpKHVyaSk7XG4gICAgICAgICAgICBvcHRzLmhvc3RuYW1lID0gdXJpLmhvc3Q7XG4gICAgICAgICAgICBvcHRzLnNlY3VyZSA9IHVyaS5wcm90b2NvbCA9PT0gXCJodHRwc1wiIHx8IHVyaS5wcm90b2NvbCA9PT0gXCJ3c3NcIjtcbiAgICAgICAgICAgIG9wdHMucG9ydCA9IHVyaS5wb3J0O1xuICAgICAgICAgICAgaWYgKHVyaS5xdWVyeSlcbiAgICAgICAgICAgICAgICBvcHRzLnF1ZXJ5ID0gdXJpLnF1ZXJ5O1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG9wdHMuaG9zdCkge1xuICAgICAgICAgICAgb3B0cy5ob3N0bmFtZSA9ICgwLCBwYXJzZXVyaV9qc18xLnBhcnNlKShvcHRzLmhvc3QpLmhvc3Q7XG4gICAgICAgIH1cbiAgICAgICAgKDAsIHV0aWxfanNfMS5pbnN0YWxsVGltZXJGdW5jdGlvbnMpKHRoaXMsIG9wdHMpO1xuICAgICAgICB0aGlzLnNlY3VyZSA9XG4gICAgICAgICAgICBudWxsICE9IG9wdHMuc2VjdXJlXG4gICAgICAgICAgICAgICAgPyBvcHRzLnNlY3VyZVxuICAgICAgICAgICAgICAgIDogdHlwZW9mIGxvY2F0aW9uICE9PSBcInVuZGVmaW5lZFwiICYmIFwiaHR0cHM6XCIgPT09IGxvY2F0aW9uLnByb3RvY29sO1xuICAgICAgICBpZiAob3B0cy5ob3N0bmFtZSAmJiAhb3B0cy5wb3J0KSB7XG4gICAgICAgICAgICAvLyBpZiBubyBwb3J0IGlzIHNwZWNpZmllZCBtYW51YWxseSwgdXNlIHRoZSBwcm90b2NvbCBkZWZhdWx0XG4gICAgICAgICAgICBvcHRzLnBvcnQgPSB0aGlzLnNlY3VyZSA/IFwiNDQzXCIgOiBcIjgwXCI7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5ob3N0bmFtZSA9XG4gICAgICAgICAgICBvcHRzLmhvc3RuYW1lIHx8XG4gICAgICAgICAgICAgICAgKHR5cGVvZiBsb2NhdGlvbiAhPT0gXCJ1bmRlZmluZWRcIiA/IGxvY2F0aW9uLmhvc3RuYW1lIDogXCJsb2NhbGhvc3RcIik7XG4gICAgICAgIHRoaXMucG9ydCA9XG4gICAgICAgICAgICBvcHRzLnBvcnQgfHxcbiAgICAgICAgICAgICAgICAodHlwZW9mIGxvY2F0aW9uICE9PSBcInVuZGVmaW5lZFwiICYmIGxvY2F0aW9uLnBvcnRcbiAgICAgICAgICAgICAgICAgICAgPyBsb2NhdGlvbi5wb3J0XG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy5zZWN1cmVcbiAgICAgICAgICAgICAgICAgICAgICAgID8gXCI0NDNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgOiBcIjgwXCIpO1xuICAgICAgICB0aGlzLnRyYW5zcG9ydHMgPSBvcHRzLnRyYW5zcG9ydHMgfHwgW1xuICAgICAgICAgICAgXCJwb2xsaW5nXCIsXG4gICAgICAgICAgICBcIndlYnNvY2tldFwiLFxuICAgICAgICAgICAgXCJ3ZWJ0cmFuc3BvcnRcIixcbiAgICAgICAgXTtcbiAgICAgICAgdGhpcy53cml0ZUJ1ZmZlciA9IFtdO1xuICAgICAgICB0aGlzLnByZXZCdWZmZXJMZW4gPSAwO1xuICAgICAgICB0aGlzLm9wdHMgPSBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgICAgIHBhdGg6IFwiL2VuZ2luZS5pb1wiLFxuICAgICAgICAgICAgYWdlbnQ6IGZhbHNlLFxuICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiBmYWxzZSxcbiAgICAgICAgICAgIHVwZ3JhZGU6IHRydWUsXG4gICAgICAgICAgICB0aW1lc3RhbXBQYXJhbTogXCJ0XCIsXG4gICAgICAgICAgICByZW1lbWJlclVwZ3JhZGU6IGZhbHNlLFxuICAgICAgICAgICAgYWRkVHJhaWxpbmdTbGFzaDogdHJ1ZSxcbiAgICAgICAgICAgIHJlamVjdFVuYXV0aG9yaXplZDogdHJ1ZSxcbiAgICAgICAgICAgIHBlck1lc3NhZ2VEZWZsYXRlOiB7XG4gICAgICAgICAgICAgICAgdGhyZXNob2xkOiAxMDI0LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRyYW5zcG9ydE9wdGlvbnM6IHt9LFxuICAgICAgICAgICAgY2xvc2VPbkJlZm9yZXVubG9hZDogZmFsc2UsXG4gICAgICAgIH0sIG9wdHMpO1xuICAgICAgICB0aGlzLm9wdHMucGF0aCA9XG4gICAgICAgICAgICB0aGlzLm9wdHMucGF0aC5yZXBsYWNlKC9cXC8kLywgXCJcIikgK1xuICAgICAgICAgICAgICAgICh0aGlzLm9wdHMuYWRkVHJhaWxpbmdTbGFzaCA/IFwiL1wiIDogXCJcIik7XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5vcHRzLnF1ZXJ5ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICB0aGlzLm9wdHMucXVlcnkgPSAoMCwgcGFyc2Vxc19qc18xLmRlY29kZSkodGhpcy5vcHRzLnF1ZXJ5KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBzZXQgb24gaGFuZHNoYWtlXG4gICAgICAgIHRoaXMuaWQgPSBudWxsO1xuICAgICAgICB0aGlzLnVwZ3JhZGVzID0gbnVsbDtcbiAgICAgICAgdGhpcy5waW5nSW50ZXJ2YWwgPSBudWxsO1xuICAgICAgICB0aGlzLnBpbmdUaW1lb3V0ID0gbnVsbDtcbiAgICAgICAgLy8gc2V0IG9uIGhlYXJ0YmVhdFxuICAgICAgICB0aGlzLnBpbmdUaW1lb3V0VGltZXIgPSBudWxsO1xuICAgICAgICBpZiAodHlwZW9mIGFkZEV2ZW50TGlzdGVuZXIgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgaWYgKHRoaXMub3B0cy5jbG9zZU9uQmVmb3JldW5sb2FkKSB7XG4gICAgICAgICAgICAgICAgLy8gRmlyZWZveCBjbG9zZXMgdGhlIGNvbm5lY3Rpb24gd2hlbiB0aGUgXCJiZWZvcmV1bmxvYWRcIiBldmVudCBpcyBlbWl0dGVkIGJ1dCBub3QgQ2hyb21lLiBUaGlzIGV2ZW50IGxpc3RlbmVyXG4gICAgICAgICAgICAgICAgLy8gZW5zdXJlcyBldmVyeSBicm93c2VyIGJlaGF2ZXMgdGhlIHNhbWUgKG5vIFwiZGlzY29ubmVjdFwiIGV2ZW50IGF0IHRoZSBTb2NrZXQuSU8gbGV2ZWwgd2hlbiB0aGUgcGFnZSBpc1xuICAgICAgICAgICAgICAgIC8vIGNsb3NlZC9yZWxvYWRlZClcbiAgICAgICAgICAgICAgICB0aGlzLmJlZm9yZXVubG9hZEV2ZW50TGlzdGVuZXIgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnRyYW5zcG9ydCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2lsZW50bHkgY2xvc2UgdGhlIHRyYW5zcG9ydFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50cmFuc3BvcnQucmVtb3ZlQWxsTGlzdGVuZXJzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRyYW5zcG9ydC5jbG9zZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBhZGRFdmVudExpc3RlbmVyKFwiYmVmb3JldW5sb2FkXCIsIHRoaXMuYmVmb3JldW5sb2FkRXZlbnRMaXN0ZW5lciwgZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuaG9zdG5hbWUgIT09IFwibG9jYWxob3N0XCIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9mZmxpbmVFdmVudExpc3RlbmVyID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uQ2xvc2UoXCJ0cmFuc3BvcnQgY2xvc2VcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFwibmV0d29yayBjb25uZWN0aW9uIGxvc3RcIixcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBhZGRFdmVudExpc3RlbmVyKFwib2ZmbGluZVwiLCB0aGlzLm9mZmxpbmVFdmVudExpc3RlbmVyLCBmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgdHJhbnNwb3J0IG9mIHRoZSBnaXZlbiB0eXBlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IG5hbWUgLSB0cmFuc3BvcnQgbmFtZVxuICAgICAqIEByZXR1cm4ge1RyYW5zcG9ydH1cbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIGNyZWF0ZVRyYW5zcG9ydChuYW1lKSB7XG4gICAgICAgIGRlYnVnKCdjcmVhdGluZyB0cmFuc3BvcnQgXCIlc1wiJywgbmFtZSk7XG4gICAgICAgIGNvbnN0IHF1ZXJ5ID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5vcHRzLnF1ZXJ5KTtcbiAgICAgICAgLy8gYXBwZW5kIGVuZ2luZS5pbyBwcm90b2NvbCBpZGVudGlmaWVyXG4gICAgICAgIHF1ZXJ5LkVJTyA9IGVuZ2luZV9pb19wYXJzZXJfMS5wcm90b2NvbDtcbiAgICAgICAgLy8gdHJhbnNwb3J0IG5hbWVcbiAgICAgICAgcXVlcnkudHJhbnNwb3J0ID0gbmFtZTtcbiAgICAgICAgLy8gc2Vzc2lvbiBpZCBpZiB3ZSBhbHJlYWR5IGhhdmUgb25lXG4gICAgICAgIGlmICh0aGlzLmlkKVxuICAgICAgICAgICAgcXVlcnkuc2lkID0gdGhpcy5pZDtcbiAgICAgICAgY29uc3Qgb3B0cyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMub3B0cywge1xuICAgICAgICAgICAgcXVlcnksXG4gICAgICAgICAgICBzb2NrZXQ6IHRoaXMsXG4gICAgICAgICAgICBob3N0bmFtZTogdGhpcy5ob3N0bmFtZSxcbiAgICAgICAgICAgIHNlY3VyZTogdGhpcy5zZWN1cmUsXG4gICAgICAgICAgICBwb3J0OiB0aGlzLnBvcnQsXG4gICAgICAgIH0sIHRoaXMub3B0cy50cmFuc3BvcnRPcHRpb25zW25hbWVdKTtcbiAgICAgICAgZGVidWcoXCJvcHRpb25zOiAlalwiLCBvcHRzKTtcbiAgICAgICAgcmV0dXJuIG5ldyBpbmRleF9qc18xLnRyYW5zcG9ydHNbbmFtZV0ob3B0cyk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEluaXRpYWxpemVzIHRyYW5zcG9ydCB0byB1c2UgYW5kIHN0YXJ0cyBwcm9iZS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgb3BlbigpIHtcbiAgICAgICAgbGV0IHRyYW5zcG9ydDtcbiAgICAgICAgaWYgKHRoaXMub3B0cy5yZW1lbWJlclVwZ3JhZGUgJiZcbiAgICAgICAgICAgIFNvY2tldC5wcmlvcldlYnNvY2tldFN1Y2Nlc3MgJiZcbiAgICAgICAgICAgIHRoaXMudHJhbnNwb3J0cy5pbmRleE9mKFwid2Vic29ja2V0XCIpICE9PSAtMSkge1xuICAgICAgICAgICAgdHJhbnNwb3J0ID0gXCJ3ZWJzb2NrZXRcIjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICgwID09PSB0aGlzLnRyYW5zcG9ydHMubGVuZ3RoKSB7XG4gICAgICAgICAgICAvLyBFbWl0IGVycm9yIG9uIG5leHQgdGljayBzbyBpdCBjYW4gYmUgbGlzdGVuZWQgdG9cbiAgICAgICAgICAgIHRoaXMuc2V0VGltZW91dEZuKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRSZXNlcnZlZChcImVycm9yXCIsIFwiTm8gdHJhbnNwb3J0cyBhdmFpbGFibGVcIik7XG4gICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRyYW5zcG9ydCA9IHRoaXMudHJhbnNwb3J0c1swXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlYWR5U3RhdGUgPSBcIm9wZW5pbmdcIjtcbiAgICAgICAgLy8gUmV0cnkgd2l0aCB0aGUgbmV4dCB0cmFuc3BvcnQgaWYgdGhlIHRyYW5zcG9ydCBpcyBkaXNhYmxlZCAoanNvbnA6IGZhbHNlKVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdHJhbnNwb3J0ID0gdGhpcy5jcmVhdGVUcmFuc3BvcnQodHJhbnNwb3J0KTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgZGVidWcoXCJlcnJvciB3aGlsZSBjcmVhdGluZyB0cmFuc3BvcnQ6ICVzXCIsIGUpO1xuICAgICAgICAgICAgdGhpcy50cmFuc3BvcnRzLnNoaWZ0KCk7XG4gICAgICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0cmFuc3BvcnQub3BlbigpO1xuICAgICAgICB0aGlzLnNldFRyYW5zcG9ydCh0cmFuc3BvcnQpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBjdXJyZW50IHRyYW5zcG9ydC4gRGlzYWJsZXMgdGhlIGV4aXN0aW5nIG9uZSAoaWYgYW55KS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgc2V0VHJhbnNwb3J0KHRyYW5zcG9ydCkge1xuICAgICAgICBkZWJ1ZyhcInNldHRpbmcgdHJhbnNwb3J0ICVzXCIsIHRyYW5zcG9ydC5uYW1lKTtcbiAgICAgICAgaWYgKHRoaXMudHJhbnNwb3J0KSB7XG4gICAgICAgICAgICBkZWJ1ZyhcImNsZWFyaW5nIGV4aXN0aW5nIHRyYW5zcG9ydCAlc1wiLCB0aGlzLnRyYW5zcG9ydC5uYW1lKTtcbiAgICAgICAgICAgIHRoaXMudHJhbnNwb3J0LnJlbW92ZUFsbExpc3RlbmVycygpO1xuICAgICAgICB9XG4gICAgICAgIC8vIHNldCB1cCB0cmFuc3BvcnRcbiAgICAgICAgdGhpcy50cmFuc3BvcnQgPSB0cmFuc3BvcnQ7XG4gICAgICAgIC8vIHNldCB1cCB0cmFuc3BvcnQgbGlzdGVuZXJzXG4gICAgICAgIHRyYW5zcG9ydFxuICAgICAgICAgICAgLm9uKFwiZHJhaW5cIiwgdGhpcy5vbkRyYWluLmJpbmQodGhpcykpXG4gICAgICAgICAgICAub24oXCJwYWNrZXRcIiwgdGhpcy5vblBhY2tldC5iaW5kKHRoaXMpKVxuICAgICAgICAgICAgLm9uKFwiZXJyb3JcIiwgdGhpcy5vbkVycm9yLmJpbmQodGhpcykpXG4gICAgICAgICAgICAub24oXCJjbG9zZVwiLCAocmVhc29uKSA9PiB0aGlzLm9uQ2xvc2UoXCJ0cmFuc3BvcnQgY2xvc2VcIiwgcmVhc29uKSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFByb2JlcyBhIHRyYW5zcG9ydC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lIC0gdHJhbnNwb3J0IG5hbWVcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByb2JlKG5hbWUpIHtcbiAgICAgICAgZGVidWcoJ3Byb2JpbmcgdHJhbnNwb3J0IFwiJXNcIicsIG5hbWUpO1xuICAgICAgICBsZXQgdHJhbnNwb3J0ID0gdGhpcy5jcmVhdGVUcmFuc3BvcnQobmFtZSk7XG4gICAgICAgIGxldCBmYWlsZWQgPSBmYWxzZTtcbiAgICAgICAgU29ja2V0LnByaW9yV2Vic29ja2V0U3VjY2VzcyA9IGZhbHNlO1xuICAgICAgICBjb25zdCBvblRyYW5zcG9ydE9wZW4gPSAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoZmFpbGVkKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGRlYnVnKCdwcm9iZSB0cmFuc3BvcnQgXCIlc1wiIG9wZW5lZCcsIG5hbWUpO1xuICAgICAgICAgICAgdHJhbnNwb3J0LnNlbmQoW3sgdHlwZTogXCJwaW5nXCIsIGRhdGE6IFwicHJvYmVcIiB9XSk7XG4gICAgICAgICAgICB0cmFuc3BvcnQub25jZShcInBhY2tldFwiLCAobXNnKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGZhaWxlZClcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGlmIChcInBvbmdcIiA9PT0gbXNnLnR5cGUgJiYgXCJwcm9iZVwiID09PSBtc2cuZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICBkZWJ1ZygncHJvYmUgdHJhbnNwb3J0IFwiJXNcIiBwb25nJywgbmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBncmFkaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbWl0UmVzZXJ2ZWQoXCJ1cGdyYWRpbmdcIiwgdHJhbnNwb3J0KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0cmFuc3BvcnQpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIFNvY2tldC5wcmlvcldlYnNvY2tldFN1Y2Nlc3MgPSBcIndlYnNvY2tldFwiID09PSB0cmFuc3BvcnQubmFtZTtcbiAgICAgICAgICAgICAgICAgICAgZGVidWcoJ3BhdXNpbmcgY3VycmVudCB0cmFuc3BvcnQgXCIlc1wiJywgdGhpcy50cmFuc3BvcnQubmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudHJhbnNwb3J0LnBhdXNlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmYWlsZWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFwiY2xvc2VkXCIgPT09IHRoaXMucmVhZHlTdGF0ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWJ1ZyhcImNoYW5naW5nIHRyYW5zcG9ydCBhbmQgc2VuZGluZyB1cGdyYWRlIHBhY2tldFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFudXAoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0VHJhbnNwb3J0KHRyYW5zcG9ydCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc3BvcnQuc2VuZChbeyB0eXBlOiBcInVwZ3JhZGVcIiB9XSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVtaXRSZXNlcnZlZChcInVwZ3JhZGVcIiwgdHJhbnNwb3J0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zcG9ydCA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZ3JhZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mbHVzaCgpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGRlYnVnKCdwcm9iZSB0cmFuc3BvcnQgXCIlc1wiIGZhaWxlZCcsIG5hbWUpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnIgPSBuZXcgRXJyb3IoXCJwcm9iZSBlcnJvclwiKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgICAgICBlcnIudHJhbnNwb3J0ID0gdHJhbnNwb3J0Lm5hbWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW1pdFJlc2VydmVkKFwidXBncmFkZUVycm9yXCIsIGVycik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICAgIGZ1bmN0aW9uIGZyZWV6ZVRyYW5zcG9ydCgpIHtcbiAgICAgICAgICAgIGlmIChmYWlsZWQpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgLy8gQW55IGNhbGxiYWNrIGNhbGxlZCBieSB0cmFuc3BvcnQgc2hvdWxkIGJlIGlnbm9yZWQgc2luY2Ugbm93XG4gICAgICAgICAgICBmYWlsZWQgPSB0cnVlO1xuICAgICAgICAgICAgY2xlYW51cCgpO1xuICAgICAgICAgICAgdHJhbnNwb3J0LmNsb3NlKCk7XG4gICAgICAgICAgICB0cmFuc3BvcnQgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIC8vIEhhbmRsZSBhbnkgZXJyb3IgdGhhdCBoYXBwZW5zIHdoaWxlIHByb2JpbmdcbiAgICAgICAgY29uc3Qgb25lcnJvciA9IChlcnIpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKFwicHJvYmUgZXJyb3I6IFwiICsgZXJyKTtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIGVycm9yLnRyYW5zcG9ydCA9IHRyYW5zcG9ydC5uYW1lO1xuICAgICAgICAgICAgZnJlZXplVHJhbnNwb3J0KCk7XG4gICAgICAgICAgICBkZWJ1ZygncHJvYmUgdHJhbnNwb3J0IFwiJXNcIiBmYWlsZWQgYmVjYXVzZSBvZiBlcnJvcjogJXMnLCBuYW1lLCBlcnIpO1xuICAgICAgICAgICAgdGhpcy5lbWl0UmVzZXJ2ZWQoXCJ1cGdyYWRlRXJyb3JcIiwgZXJyb3IpO1xuICAgICAgICB9O1xuICAgICAgICBmdW5jdGlvbiBvblRyYW5zcG9ydENsb3NlKCkge1xuICAgICAgICAgICAgb25lcnJvcihcInRyYW5zcG9ydCBjbG9zZWRcIik7XG4gICAgICAgIH1cbiAgICAgICAgLy8gV2hlbiB0aGUgc29ja2V0IGlzIGNsb3NlZCB3aGlsZSB3ZSdyZSBwcm9iaW5nXG4gICAgICAgIGZ1bmN0aW9uIG9uY2xvc2UoKSB7XG4gICAgICAgICAgICBvbmVycm9yKFwic29ja2V0IGNsb3NlZFwiKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBXaGVuIHRoZSBzb2NrZXQgaXMgdXBncmFkZWQgd2hpbGUgd2UncmUgcHJvYmluZ1xuICAgICAgICBmdW5jdGlvbiBvbnVwZ3JhZGUodG8pIHtcbiAgICAgICAgICAgIGlmICh0cmFuc3BvcnQgJiYgdG8ubmFtZSAhPT0gdHJhbnNwb3J0Lm5hbWUpIHtcbiAgICAgICAgICAgICAgICBkZWJ1ZygnXCIlc1wiIHdvcmtzIC0gYWJvcnRpbmcgXCIlc1wiJywgdG8ubmFtZSwgdHJhbnNwb3J0Lm5hbWUpO1xuICAgICAgICAgICAgICAgIGZyZWV6ZVRyYW5zcG9ydCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIFJlbW92ZSBhbGwgbGlzdGVuZXJzIG9uIHRoZSB0cmFuc3BvcnQgYW5kIG9uIHNlbGZcbiAgICAgICAgY29uc3QgY2xlYW51cCA9ICgpID0+IHtcbiAgICAgICAgICAgIHRyYW5zcG9ydC5yZW1vdmVMaXN0ZW5lcihcIm9wZW5cIiwgb25UcmFuc3BvcnRPcGVuKTtcbiAgICAgICAgICAgIHRyYW5zcG9ydC5yZW1vdmVMaXN0ZW5lcihcImVycm9yXCIsIG9uZXJyb3IpO1xuICAgICAgICAgICAgdHJhbnNwb3J0LnJlbW92ZUxpc3RlbmVyKFwiY2xvc2VcIiwgb25UcmFuc3BvcnRDbG9zZSk7XG4gICAgICAgICAgICB0aGlzLm9mZihcImNsb3NlXCIsIG9uY2xvc2UpO1xuICAgICAgICAgICAgdGhpcy5vZmYoXCJ1cGdyYWRpbmdcIiwgb251cGdyYWRlKTtcbiAgICAgICAgfTtcbiAgICAgICAgdHJhbnNwb3J0Lm9uY2UoXCJvcGVuXCIsIG9uVHJhbnNwb3J0T3Blbik7XG4gICAgICAgIHRyYW5zcG9ydC5vbmNlKFwiZXJyb3JcIiwgb25lcnJvcik7XG4gICAgICAgIHRyYW5zcG9ydC5vbmNlKFwiY2xvc2VcIiwgb25UcmFuc3BvcnRDbG9zZSk7XG4gICAgICAgIHRoaXMub25jZShcImNsb3NlXCIsIG9uY2xvc2UpO1xuICAgICAgICB0aGlzLm9uY2UoXCJ1cGdyYWRpbmdcIiwgb251cGdyYWRlKTtcbiAgICAgICAgaWYgKHRoaXMudXBncmFkZXMuaW5kZXhPZihcIndlYnRyYW5zcG9ydFwiKSAhPT0gLTEgJiZcbiAgICAgICAgICAgIG5hbWUgIT09IFwid2VidHJhbnNwb3J0XCIpIHtcbiAgICAgICAgICAgIC8vIGZhdm9yIFdlYlRyYW5zcG9ydFxuICAgICAgICAgICAgdGhpcy5zZXRUaW1lb3V0Rm4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghZmFpbGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zcG9ydC5vcGVuKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgMjAwKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRyYW5zcG9ydC5vcGVuKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2FsbGVkIHdoZW4gY29ubmVjdGlvbiBpcyBkZWVtZWQgb3Blbi5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgb25PcGVuKCkge1xuICAgICAgICBkZWJ1ZyhcInNvY2tldCBvcGVuXCIpO1xuICAgICAgICB0aGlzLnJlYWR5U3RhdGUgPSBcIm9wZW5cIjtcbiAgICAgICAgU29ja2V0LnByaW9yV2Vic29ja2V0U3VjY2VzcyA9IFwid2Vic29ja2V0XCIgPT09IHRoaXMudHJhbnNwb3J0Lm5hbWU7XG4gICAgICAgIHRoaXMuZW1pdFJlc2VydmVkKFwib3BlblwiKTtcbiAgICAgICAgdGhpcy5mbHVzaCgpO1xuICAgICAgICAvLyB3ZSBjaGVjayBmb3IgYHJlYWR5U3RhdGVgIGluIGNhc2UgYW4gYG9wZW5gXG4gICAgICAgIC8vIGxpc3RlbmVyIGFscmVhZHkgY2xvc2VkIHRoZSBzb2NrZXRcbiAgICAgICAgaWYgKFwib3BlblwiID09PSB0aGlzLnJlYWR5U3RhdGUgJiYgdGhpcy5vcHRzLnVwZ3JhZGUpIHtcbiAgICAgICAgICAgIGRlYnVnKFwic3RhcnRpbmcgdXBncmFkZSBwcm9iZXNcIik7XG4gICAgICAgICAgICBsZXQgaSA9IDA7XG4gICAgICAgICAgICBjb25zdCBsID0gdGhpcy51cGdyYWRlcy5sZW5ndGg7XG4gICAgICAgICAgICBmb3IgKDsgaSA8IGw7IGkrKykge1xuICAgICAgICAgICAgICAgIHRoaXMucHJvYmUodGhpcy51cGdyYWRlc1tpXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogSGFuZGxlcyBhIHBhY2tldC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgb25QYWNrZXQocGFja2V0KSB7XG4gICAgICAgIGlmIChcIm9wZW5pbmdcIiA9PT0gdGhpcy5yZWFkeVN0YXRlIHx8XG4gICAgICAgICAgICBcIm9wZW5cIiA9PT0gdGhpcy5yZWFkeVN0YXRlIHx8XG4gICAgICAgICAgICBcImNsb3NpbmdcIiA9PT0gdGhpcy5yZWFkeVN0YXRlKSB7XG4gICAgICAgICAgICBkZWJ1Zygnc29ja2V0IHJlY2VpdmU6IHR5cGUgXCIlc1wiLCBkYXRhIFwiJXNcIicsIHBhY2tldC50eXBlLCBwYWNrZXQuZGF0YSk7XG4gICAgICAgICAgICB0aGlzLmVtaXRSZXNlcnZlZChcInBhY2tldFwiLCBwYWNrZXQpO1xuICAgICAgICAgICAgLy8gU29ja2V0IGlzIGxpdmUgLSBhbnkgcGFja2V0IGNvdW50c1xuICAgICAgICAgICAgdGhpcy5lbWl0UmVzZXJ2ZWQoXCJoZWFydGJlYXRcIik7XG4gICAgICAgICAgICB0aGlzLnJlc2V0UGluZ1RpbWVvdXQoKTtcbiAgICAgICAgICAgIHN3aXRjaCAocGFja2V0LnR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFwib3BlblwiOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uSGFuZHNoYWtlKEpTT04ucGFyc2UocGFja2V0LmRhdGEpKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBcInBpbmdcIjpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZW5kUGFja2V0KFwicG9uZ1wiKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbWl0UmVzZXJ2ZWQoXCJwaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVtaXRSZXNlcnZlZChcInBvbmdcIik7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJlcnJvclwiOlxuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnIgPSBuZXcgRXJyb3IoXCJzZXJ2ZXIgZXJyb3JcIik7XG4gICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgZXJyLmNvZGUgPSBwYWNrZXQuZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkVycm9yKGVycik7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJtZXNzYWdlXCI6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW1pdFJlc2VydmVkKFwiZGF0YVwiLCBwYWNrZXQuZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW1pdFJlc2VydmVkKFwibWVzc2FnZVwiLCBwYWNrZXQuZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgZGVidWcoJ3BhY2tldCByZWNlaXZlZCB3aXRoIHNvY2tldCByZWFkeVN0YXRlIFwiJXNcIicsIHRoaXMucmVhZHlTdGF0ZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2FsbGVkIHVwb24gaGFuZHNoYWtlIGNvbXBsZXRpb24uXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSAtIGhhbmRzaGFrZSBvYmpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIG9uSGFuZHNoYWtlKGRhdGEpIHtcbiAgICAgICAgdGhpcy5lbWl0UmVzZXJ2ZWQoXCJoYW5kc2hha2VcIiwgZGF0YSk7XG4gICAgICAgIHRoaXMuaWQgPSBkYXRhLnNpZDtcbiAgICAgICAgdGhpcy50cmFuc3BvcnQucXVlcnkuc2lkID0gZGF0YS5zaWQ7XG4gICAgICAgIHRoaXMudXBncmFkZXMgPSB0aGlzLmZpbHRlclVwZ3JhZGVzKGRhdGEudXBncmFkZXMpO1xuICAgICAgICB0aGlzLnBpbmdJbnRlcnZhbCA9IGRhdGEucGluZ0ludGVydmFsO1xuICAgICAgICB0aGlzLnBpbmdUaW1lb3V0ID0gZGF0YS5waW5nVGltZW91dDtcbiAgICAgICAgdGhpcy5tYXhQYXlsb2FkID0gZGF0YS5tYXhQYXlsb2FkO1xuICAgICAgICB0aGlzLm9uT3BlbigpO1xuICAgICAgICAvLyBJbiBjYXNlIG9wZW4gaGFuZGxlciBjbG9zZXMgc29ja2V0XG4gICAgICAgIGlmIChcImNsb3NlZFwiID09PSB0aGlzLnJlYWR5U3RhdGUpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHRoaXMucmVzZXRQaW5nVGltZW91dCgpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZXRzIGFuZCByZXNldHMgcGluZyB0aW1lb3V0IHRpbWVyIGJhc2VkIG9uIHNlcnZlciBwaW5ncy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcmVzZXRQaW5nVGltZW91dCgpIHtcbiAgICAgICAgdGhpcy5jbGVhclRpbWVvdXRGbih0aGlzLnBpbmdUaW1lb3V0VGltZXIpO1xuICAgICAgICB0aGlzLnBpbmdUaW1lb3V0VGltZXIgPSB0aGlzLnNldFRpbWVvdXRGbigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uQ2xvc2UoXCJwaW5nIHRpbWVvdXRcIik7XG4gICAgICAgIH0sIHRoaXMucGluZ0ludGVydmFsICsgdGhpcy5waW5nVGltZW91dCk7XG4gICAgICAgIGlmICh0aGlzLm9wdHMuYXV0b1VucmVmKSB7XG4gICAgICAgICAgICB0aGlzLnBpbmdUaW1lb3V0VGltZXIudW5yZWYoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgb24gYGRyYWluYCBldmVudFxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBvbkRyYWluKCkge1xuICAgICAgICB0aGlzLndyaXRlQnVmZmVyLnNwbGljZSgwLCB0aGlzLnByZXZCdWZmZXJMZW4pO1xuICAgICAgICAvLyBzZXR0aW5nIHByZXZCdWZmZXJMZW4gPSAwIGlzIHZlcnkgaW1wb3J0YW50XG4gICAgICAgIC8vIGZvciBleGFtcGxlLCB3aGVuIHVwZ3JhZGluZywgdXBncmFkZSBwYWNrZXQgaXMgc2VudCBvdmVyLFxuICAgICAgICAvLyBhbmQgYSBub256ZXJvIHByZXZCdWZmZXJMZW4gY291bGQgY2F1c2UgcHJvYmxlbXMgb24gYGRyYWluYFxuICAgICAgICB0aGlzLnByZXZCdWZmZXJMZW4gPSAwO1xuICAgICAgICBpZiAoMCA9PT0gdGhpcy53cml0ZUJ1ZmZlci5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuZW1pdFJlc2VydmVkKFwiZHJhaW5cIik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmZsdXNoKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogRmx1c2ggd3JpdGUgYnVmZmVycy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgZmx1c2goKSB7XG4gICAgICAgIGlmIChcImNsb3NlZFwiICE9PSB0aGlzLnJlYWR5U3RhdGUgJiZcbiAgICAgICAgICAgIHRoaXMudHJhbnNwb3J0LndyaXRhYmxlICYmXG4gICAgICAgICAgICAhdGhpcy51cGdyYWRpbmcgJiZcbiAgICAgICAgICAgIHRoaXMud3JpdGVCdWZmZXIubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBwYWNrZXRzID0gdGhpcy5nZXRXcml0YWJsZVBhY2tldHMoKTtcbiAgICAgICAgICAgIGRlYnVnKFwiZmx1c2hpbmcgJWQgcGFja2V0cyBpbiBzb2NrZXRcIiwgcGFja2V0cy5sZW5ndGgpO1xuICAgICAgICAgICAgdGhpcy50cmFuc3BvcnQuc2VuZChwYWNrZXRzKTtcbiAgICAgICAgICAgIC8vIGtlZXAgdHJhY2sgb2YgY3VycmVudCBsZW5ndGggb2Ygd3JpdGVCdWZmZXJcbiAgICAgICAgICAgIC8vIHNwbGljZSB3cml0ZUJ1ZmZlciBhbmQgY2FsbGJhY2tCdWZmZXIgb24gYGRyYWluYFxuICAgICAgICAgICAgdGhpcy5wcmV2QnVmZmVyTGVuID0gcGFja2V0cy5sZW5ndGg7XG4gICAgICAgICAgICB0aGlzLmVtaXRSZXNlcnZlZChcImZsdXNoXCIpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEVuc3VyZSB0aGUgZW5jb2RlZCBzaXplIG9mIHRoZSB3cml0ZUJ1ZmZlciBpcyBiZWxvdyB0aGUgbWF4UGF5bG9hZCB2YWx1ZSBzZW50IGJ5IHRoZSBzZXJ2ZXIgKG9ubHkgZm9yIEhUVFBcbiAgICAgKiBsb25nLXBvbGxpbmcpXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIGdldFdyaXRhYmxlUGFja2V0cygpIHtcbiAgICAgICAgY29uc3Qgc2hvdWxkQ2hlY2tQYXlsb2FkU2l6ZSA9IHRoaXMubWF4UGF5bG9hZCAmJlxuICAgICAgICAgICAgdGhpcy50cmFuc3BvcnQubmFtZSA9PT0gXCJwb2xsaW5nXCIgJiZcbiAgICAgICAgICAgIHRoaXMud3JpdGVCdWZmZXIubGVuZ3RoID4gMTtcbiAgICAgICAgaWYgKCFzaG91bGRDaGVja1BheWxvYWRTaXplKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy53cml0ZUJ1ZmZlcjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgcGF5bG9hZFNpemUgPSAxOyAvLyBmaXJzdCBwYWNrZXQgdHlwZVxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMud3JpdGVCdWZmZXIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLndyaXRlQnVmZmVyW2ldLmRhdGE7XG4gICAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgICAgIHBheWxvYWRTaXplICs9ICgwLCB1dGlsX2pzXzEuYnl0ZUxlbmd0aCkoZGF0YSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaSA+IDAgJiYgcGF5bG9hZFNpemUgPiB0aGlzLm1heFBheWxvYWQpIHtcbiAgICAgICAgICAgICAgICBkZWJ1ZyhcIm9ubHkgc2VuZCAlZCBvdXQgb2YgJWQgcGFja2V0c1wiLCBpLCB0aGlzLndyaXRlQnVmZmVyLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMud3JpdGVCdWZmZXIuc2xpY2UoMCwgaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwYXlsb2FkU2l6ZSArPSAyOyAvLyBzZXBhcmF0b3IgKyBwYWNrZXQgdHlwZVxuICAgICAgICB9XG4gICAgICAgIGRlYnVnKFwicGF5bG9hZCBzaXplIGlzICVkIChtYXg6ICVkKVwiLCBwYXlsb2FkU2l6ZSwgdGhpcy5tYXhQYXlsb2FkKTtcbiAgICAgICAgcmV0dXJuIHRoaXMud3JpdGVCdWZmZXI7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFNlbmRzIGEgbWVzc2FnZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSBtc2cgLSBtZXNzYWdlLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrIGZ1bmN0aW9uLlxuICAgICAqIEByZXR1cm4ge1NvY2tldH0gZm9yIGNoYWluaW5nLlxuICAgICAqL1xuICAgIHdyaXRlKG1zZywgb3B0aW9ucywgZm4pIHtcbiAgICAgICAgdGhpcy5zZW5kUGFja2V0KFwibWVzc2FnZVwiLCBtc2csIG9wdGlvbnMsIGZuKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIHNlbmQobXNnLCBvcHRpb25zLCBmbikge1xuICAgICAgICB0aGlzLnNlbmRQYWNrZXQoXCJtZXNzYWdlXCIsIG1zZywgb3B0aW9ucywgZm4pO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogU2VuZHMgYSBwYWNrZXQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gdHlwZTogcGFja2V0IHR5cGUuXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IGRhdGEuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZm4gLSBjYWxsYmFjayBmdW5jdGlvbi5cbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHNlbmRQYWNrZXQodHlwZSwgZGF0YSwgb3B0aW9ucywgZm4pIHtcbiAgICAgICAgaWYgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGRhdGEpIHtcbiAgICAgICAgICAgIGZuID0gZGF0YTtcbiAgICAgICAgICAgIGRhdGEgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIG9wdGlvbnMpIHtcbiAgICAgICAgICAgIGZuID0gb3B0aW9ucztcbiAgICAgICAgICAgIG9wdGlvbnMgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmIChcImNsb3NpbmdcIiA9PT0gdGhpcy5yZWFkeVN0YXRlIHx8IFwiY2xvc2VkXCIgPT09IHRoaXMucmVhZHlTdGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgICAgICBvcHRpb25zLmNvbXByZXNzID0gZmFsc2UgIT09IG9wdGlvbnMuY29tcHJlc3M7XG4gICAgICAgIGNvbnN0IHBhY2tldCA9IHtcbiAgICAgICAgICAgIHR5cGU6IHR5cGUsXG4gICAgICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICAgICAgb3B0aW9uczogb3B0aW9ucyxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5lbWl0UmVzZXJ2ZWQoXCJwYWNrZXRDcmVhdGVcIiwgcGFja2V0KTtcbiAgICAgICAgdGhpcy53cml0ZUJ1ZmZlci5wdXNoKHBhY2tldCk7XG4gICAgICAgIGlmIChmbilcbiAgICAgICAgICAgIHRoaXMub25jZShcImZsdXNoXCIsIGZuKTtcbiAgICAgICAgdGhpcy5mbHVzaCgpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDbG9zZXMgdGhlIGNvbm5lY3Rpb24uXG4gICAgICovXG4gICAgY2xvc2UoKSB7XG4gICAgICAgIGNvbnN0IGNsb3NlID0gKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5vbkNsb3NlKFwiZm9yY2VkIGNsb3NlXCIpO1xuICAgICAgICAgICAgZGVidWcoXCJzb2NrZXQgY2xvc2luZyAtIHRlbGxpbmcgdHJhbnNwb3J0IHRvIGNsb3NlXCIpO1xuICAgICAgICAgICAgdGhpcy50cmFuc3BvcnQuY2xvc2UoKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgY2xlYW51cEFuZENsb3NlID0gKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5vZmYoXCJ1cGdyYWRlXCIsIGNsZWFudXBBbmRDbG9zZSk7XG4gICAgICAgICAgICB0aGlzLm9mZihcInVwZ3JhZGVFcnJvclwiLCBjbGVhbnVwQW5kQ2xvc2UpO1xuICAgICAgICAgICAgY2xvc2UoKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3Qgd2FpdEZvclVwZ3JhZGUgPSAoKSA9PiB7XG4gICAgICAgICAgICAvLyB3YWl0IGZvciB1cGdyYWRlIHRvIGZpbmlzaCBzaW5jZSB3ZSBjYW4ndCBzZW5kIHBhY2tldHMgd2hpbGUgcGF1c2luZyBhIHRyYW5zcG9ydFxuICAgICAgICAgICAgdGhpcy5vbmNlKFwidXBncmFkZVwiLCBjbGVhbnVwQW5kQ2xvc2UpO1xuICAgICAgICAgICAgdGhpcy5vbmNlKFwidXBncmFkZUVycm9yXCIsIGNsZWFudXBBbmRDbG9zZSk7XG4gICAgICAgIH07XG4gICAgICAgIGlmIChcIm9wZW5pbmdcIiA9PT0gdGhpcy5yZWFkeVN0YXRlIHx8IFwib3BlblwiID09PSB0aGlzLnJlYWR5U3RhdGUpIHtcbiAgICAgICAgICAgIHRoaXMucmVhZHlTdGF0ZSA9IFwiY2xvc2luZ1wiO1xuICAgICAgICAgICAgaWYgKHRoaXMud3JpdGVCdWZmZXIubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbmNlKFwiZHJhaW5cIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy51cGdyYWRpbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdhaXRGb3JVcGdyYWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbG9zZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICh0aGlzLnVwZ3JhZGluZykge1xuICAgICAgICAgICAgICAgIHdhaXRGb3JVcGdyYWRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjbG9zZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgdXBvbiB0cmFuc3BvcnQgZXJyb3JcbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgb25FcnJvcihlcnIpIHtcbiAgICAgICAgZGVidWcoXCJzb2NrZXQgZXJyb3IgJWpcIiwgZXJyKTtcbiAgICAgICAgU29ja2V0LnByaW9yV2Vic29ja2V0U3VjY2VzcyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmVtaXRSZXNlcnZlZChcImVycm9yXCIsIGVycik7XG4gICAgICAgIHRoaXMub25DbG9zZShcInRyYW5zcG9ydCBlcnJvclwiLCBlcnIpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgdXBvbiB0cmFuc3BvcnQgY2xvc2UuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIG9uQ2xvc2UocmVhc29uLCBkZXNjcmlwdGlvbikge1xuICAgICAgICBpZiAoXCJvcGVuaW5nXCIgPT09IHRoaXMucmVhZHlTdGF0ZSB8fFxuICAgICAgICAgICAgXCJvcGVuXCIgPT09IHRoaXMucmVhZHlTdGF0ZSB8fFxuICAgICAgICAgICAgXCJjbG9zaW5nXCIgPT09IHRoaXMucmVhZHlTdGF0ZSkge1xuICAgICAgICAgICAgZGVidWcoJ3NvY2tldCBjbG9zZSB3aXRoIHJlYXNvbjogXCIlc1wiJywgcmVhc29uKTtcbiAgICAgICAgICAgIC8vIGNsZWFyIHRpbWVyc1xuICAgICAgICAgICAgdGhpcy5jbGVhclRpbWVvdXRGbih0aGlzLnBpbmdUaW1lb3V0VGltZXIpO1xuICAgICAgICAgICAgLy8gc3RvcCBldmVudCBmcm9tIGZpcmluZyBhZ2FpbiBmb3IgdHJhbnNwb3J0XG4gICAgICAgICAgICB0aGlzLnRyYW5zcG9ydC5yZW1vdmVBbGxMaXN0ZW5lcnMoXCJjbG9zZVwiKTtcbiAgICAgICAgICAgIC8vIGVuc3VyZSB0cmFuc3BvcnQgd29uJ3Qgc3RheSBvcGVuXG4gICAgICAgICAgICB0aGlzLnRyYW5zcG9ydC5jbG9zZSgpO1xuICAgICAgICAgICAgLy8gaWdub3JlIGZ1cnRoZXIgdHJhbnNwb3J0IGNvbW11bmljYXRpb25cbiAgICAgICAgICAgIHRoaXMudHJhbnNwb3J0LnJlbW92ZUFsbExpc3RlbmVycygpO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiByZW1vdmVFdmVudExpc3RlbmVyID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICByZW1vdmVFdmVudExpc3RlbmVyKFwiYmVmb3JldW5sb2FkXCIsIHRoaXMuYmVmb3JldW5sb2FkRXZlbnRMaXN0ZW5lciwgZmFsc2UpO1xuICAgICAgICAgICAgICAgIHJlbW92ZUV2ZW50TGlzdGVuZXIoXCJvZmZsaW5lXCIsIHRoaXMub2ZmbGluZUV2ZW50TGlzdGVuZXIsIGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHNldCByZWFkeSBzdGF0ZVxuICAgICAgICAgICAgdGhpcy5yZWFkeVN0YXRlID0gXCJjbG9zZWRcIjtcbiAgICAgICAgICAgIC8vIGNsZWFyIHNlc3Npb24gaWRcbiAgICAgICAgICAgIHRoaXMuaWQgPSBudWxsO1xuICAgICAgICAgICAgLy8gZW1pdCBjbG9zZSBldmVudFxuICAgICAgICAgICAgdGhpcy5lbWl0UmVzZXJ2ZWQoXCJjbG9zZVwiLCByZWFzb24sIGRlc2NyaXB0aW9uKTtcbiAgICAgICAgICAgIC8vIGNsZWFuIGJ1ZmZlcnMgYWZ0ZXIsIHNvIHVzZXJzIGNhbiBzdGlsbFxuICAgICAgICAgICAgLy8gZ3JhYiB0aGUgYnVmZmVycyBvbiBgY2xvc2VgIGV2ZW50XG4gICAgICAgICAgICB0aGlzLndyaXRlQnVmZmVyID0gW107XG4gICAgICAgICAgICB0aGlzLnByZXZCdWZmZXJMZW4gPSAwO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEZpbHRlcnMgdXBncmFkZXMsIHJldHVybmluZyBvbmx5IHRob3NlIG1hdGNoaW5nIGNsaWVudCB0cmFuc3BvcnRzLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtBcnJheX0gdXBncmFkZXMgLSBzZXJ2ZXIgdXBncmFkZXNcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIGZpbHRlclVwZ3JhZGVzKHVwZ3JhZGVzKSB7XG4gICAgICAgIGNvbnN0IGZpbHRlcmVkVXBncmFkZXMgPSBbXTtcbiAgICAgICAgbGV0IGkgPSAwO1xuICAgICAgICBjb25zdCBqID0gdXBncmFkZXMubGVuZ3RoO1xuICAgICAgICBmb3IgKDsgaSA8IGo7IGkrKykge1xuICAgICAgICAgICAgaWYgKH50aGlzLnRyYW5zcG9ydHMuaW5kZXhPZih1cGdyYWRlc1tpXSkpXG4gICAgICAgICAgICAgICAgZmlsdGVyZWRVcGdyYWRlcy5wdXNoKHVwZ3JhZGVzW2ldKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmlsdGVyZWRVcGdyYWRlcztcbiAgICB9XG59XG5leHBvcnRzLlNvY2tldCA9IFNvY2tldDtcblNvY2tldC5wcm90b2NvbCA9IGVuZ2luZV9pb19wYXJzZXJfMS5wcm90b2NvbDtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5zdGF0dXNEaXNwYXRjaGVkID0gZXhwb3J0cy5zdGF0dXNEaXNwYXRjaGluZyA9IGV4cG9ydHMuc3RhdHVzUmVzcG9uc2VkID0gZXhwb3J0cy5zdGF0dXNSZXNwb25zaW5nID0gZXhwb3J0cy5zdGF0dXNSZXF1ZXN0aW5nID0gZXhwb3J0cy5zdGF0dXNVblR1bm5pbmcgPSBleHBvcnRzLnN0YXR1c1R1bmVkID0gZXhwb3J0cy5zdGF0dXNUdW5uaW5nID0gdm9pZCAwO1xuY29uc3QgVG9TZXJ2ZXJfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi9Ub1NlcnZlclwiKSk7XG5leHBvcnRzLnN0YXR1c1R1bm5pbmcgPSAndHVubmluZyc7XG5leHBvcnRzLnN0YXR1c1R1bmVkID0gJ3R1bmVkJztcbmV4cG9ydHMuc3RhdHVzVW5UdW5uaW5nID0gJ3VudHVubmluZyc7XG5leHBvcnRzLnN0YXR1c1JlcXVlc3RpbmcgPSAncmVxdWVzdGluZyc7XG5leHBvcnRzLnN0YXR1c1Jlc3BvbnNpbmcgPSAncmVzcG9uc2luZyc7XG5leHBvcnRzLnN0YXR1c1Jlc3BvbnNlZCA9ICdyZXNwb25zZWQnO1xuZXhwb3J0cy5zdGF0dXNEaXNwYXRjaGluZyA9ICdkaXNwYXRjaGluZyc7XG5leHBvcnRzLnN0YXR1c0Rpc3BhdGNoZWQgPSAnZGlzcGF0Y2hlZCc7XG4vLyBNRU1POiDjg6/jg7zjgqvjg7zjga/jg6/jg7zjgqvjg7zjgpLnlJ/miJDjgafjgY3jgotcbmNsYXNzIFdzc1dvcmtlciB7XG4gICAgY29uc3RydWN0b3Iod29ya2VyKSB7XG4gICAgICAgIHRoaXMub25NZXNzYWdlID0gdGhpcy5vbk1lc3NhZ2UuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5vbk1lc3NhZ2VFcnJvciA9IHRoaXMub25NZXNzYWdlRXJyb3IuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5wb3N0TWVzc2FnZSA9IHRoaXMucG9zdE1lc3NhZ2UuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy53b3JrZXIgPSB3b3JrZXI7XG4gICAgICAgIHRoaXMud29ya2VyLm9uZXJyb3IgPSB0aGlzLm9uTWVzc2FnZUVycm9yO1xuICAgICAgICB0aGlzLndvcmtlci5vbm1lc3NhZ2UgPSB0aGlzLm9uTWVzc2FnZTtcbiAgICAgICAgdGhpcy50b1NlcnZlciA9IG5ldyBUb1NlcnZlcl8xLmRlZmF1bHQodGhpcyk7XG4gICAgfVxuICAgIHBvc3RNZXNzYWdlKHsgcGlkLCB0dW5lSWQsIG1ldGhvZCwgc2VydmVyVG9BcGlUeXBlLCBhcGlTdGF0ZSB9KSB7XG4gICAgICAgIGlmIChwaWQgJiYgdHVuZUlkICYmIG1ldGhvZCkge1xuICAgICAgICAgICAgdGhpcy53b3JrZXIucG9zdE1lc3NhZ2UoeyBwaWQsIHR1bmVJZCwgbWV0aG9kLCBzZXJ2ZXJUb0FwaVR5cGUsIGFwaVN0YXRlIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIG9uTWVzc2FnZShlKSB7XG4gICAgICAgIGNvbnN0IHsgcGlkLCB0dW5lSWQsIG1ldGhvZCwgc2VydmVyVG9BcGlUeXBlLCBhcGlTdGF0ZSB9ID0gZS5kYXRhO1xuICAgICAgICBpZiAocGlkICYmIHR1bmVJZCAmJiBtZXRob2QgJiYgYXBpU3RhdGUpIHtcbiAgICAgICAgICAgIHRoaXMudG9TZXJ2ZXIuZXhlKHBpZCwgdHVuZUlkLCBtZXRob2QsIGFwaVN0YXRlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBvbk1lc3NhZ2VFcnJvcihlKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihlKTtcbiAgICB9XG59XG5leHBvcnRzLmRlZmF1bHQgPSBXc3NXb3JrZXI7XG5uZXcgV3NzV29ya2VyKHNlbGYpO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG4vLyBpbXBvcnRlZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9nYWxrbi9xdWVyeXN0cmluZ1xuLyoqXG4gKiBDb21waWxlcyBhIHF1ZXJ5c3RyaW5nXG4gKiBSZXR1cm5zIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0XG4gKlxuICogQHBhcmFtIHtPYmplY3R9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5kZWNvZGUgPSBleHBvcnRzLmVuY29kZSA9IHZvaWQgMDtcbmZ1bmN0aW9uIGVuY29kZShvYmopIHtcbiAgICBsZXQgc3RyID0gJyc7XG4gICAgZm9yIChsZXQgaSBpbiBvYmopIHtcbiAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShpKSkge1xuICAgICAgICAgICAgaWYgKHN0ci5sZW5ndGgpXG4gICAgICAgICAgICAgICAgc3RyICs9ICcmJztcbiAgICAgICAgICAgIHN0ciArPSBlbmNvZGVVUklDb21wb25lbnQoaSkgKyAnPScgKyBlbmNvZGVVUklDb21wb25lbnQob2JqW2ldKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gc3RyO1xufVxuZXhwb3J0cy5lbmNvZGUgPSBlbmNvZGU7XG4vKipcbiAqIFBhcnNlcyBhIHNpbXBsZSBxdWVyeXN0cmluZyBpbnRvIGFuIG9iamVjdFxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBxc1xuICogQGFwaSBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIGRlY29kZShxcykge1xuICAgIGxldCBxcnkgPSB7fTtcbiAgICBsZXQgcGFpcnMgPSBxcy5zcGxpdCgnJicpO1xuICAgIGZvciAobGV0IGkgPSAwLCBsID0gcGFpcnMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgIGxldCBwYWlyID0gcGFpcnNbaV0uc3BsaXQoJz0nKTtcbiAgICAgICAgcXJ5W2RlY29kZVVSSUNvbXBvbmVudChwYWlyWzBdKV0gPSBkZWNvZGVVUklDb21wb25lbnQocGFpclsxXSk7XG4gICAgfVxuICAgIHJldHVybiBxcnk7XG59XG5leHBvcnRzLmRlY29kZSA9IGRlY29kZTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5XUyA9IHZvaWQgMDtcbmNvbnN0IHRyYW5zcG9ydF9qc18xID0gcmVxdWlyZShcIi4uL3RyYW5zcG9ydC5qc1wiKTtcbmNvbnN0IHllYXN0X2pzXzEgPSByZXF1aXJlKFwiLi4vY29udHJpYi95ZWFzdC5qc1wiKTtcbmNvbnN0IHV0aWxfanNfMSA9IHJlcXVpcmUoXCIuLi91dGlsLmpzXCIpO1xuY29uc3Qgd2Vic29ja2V0X2NvbnN0cnVjdG9yX2pzXzEgPSByZXF1aXJlKFwiLi93ZWJzb2NrZXQtY29uc3RydWN0b3IuanNcIik7XG5jb25zdCBkZWJ1Z18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJkZWJ1Z1wiKSk7IC8vIGRlYnVnKClcbmNvbnN0IGVuZ2luZV9pb19wYXJzZXJfMSA9IHJlcXVpcmUoXCJlbmdpbmUuaW8tcGFyc2VyXCIpO1xuY29uc3QgZGVidWcgPSAoMCwgZGVidWdfMS5kZWZhdWx0KShcImVuZ2luZS5pby1jbGllbnQ6d2Vic29ja2V0XCIpOyAvLyBkZWJ1ZygpXG4vLyBkZXRlY3QgUmVhY3ROYXRpdmUgZW52aXJvbm1lbnRcbmNvbnN0IGlzUmVhY3ROYXRpdmUgPSB0eXBlb2YgbmF2aWdhdG9yICE9PSBcInVuZGVmaW5lZFwiICYmXG4gICAgdHlwZW9mIG5hdmlnYXRvci5wcm9kdWN0ID09PSBcInN0cmluZ1wiICYmXG4gICAgbmF2aWdhdG9yLnByb2R1Y3QudG9Mb3dlckNhc2UoKSA9PT0gXCJyZWFjdG5hdGl2ZVwiO1xuY2xhc3MgV1MgZXh0ZW5kcyB0cmFuc3BvcnRfanNfMS5UcmFuc3BvcnQge1xuICAgIC8qKlxuICAgICAqIFdlYlNvY2tldCB0cmFuc3BvcnQgY29uc3RydWN0b3IuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIGNvbm5lY3Rpb24gb3B0aW9uc1xuICAgICAqIEBwcm90ZWN0ZWRcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKG9wdHMpO1xuICAgICAgICB0aGlzLnN1cHBvcnRzQmluYXJ5ID0gIW9wdHMuZm9yY2VCYXNlNjQ7XG4gICAgfVxuICAgIGdldCBuYW1lKCkge1xuICAgICAgICByZXR1cm4gXCJ3ZWJzb2NrZXRcIjtcbiAgICB9XG4gICAgZG9PcGVuKCkge1xuICAgICAgICBpZiAoIXRoaXMuY2hlY2soKSkge1xuICAgICAgICAgICAgLy8gbGV0IHByb2JlIHRpbWVvdXRcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB1cmkgPSB0aGlzLnVyaSgpO1xuICAgICAgICBjb25zdCBwcm90b2NvbHMgPSB0aGlzLm9wdHMucHJvdG9jb2xzO1xuICAgICAgICAvLyBSZWFjdCBOYXRpdmUgb25seSBzdXBwb3J0cyB0aGUgJ2hlYWRlcnMnIG9wdGlvbiwgYW5kIHdpbGwgcHJpbnQgYSB3YXJuaW5nIGlmIGFueXRoaW5nIGVsc2UgaXMgcGFzc2VkXG4gICAgICAgIGNvbnN0IG9wdHMgPSBpc1JlYWN0TmF0aXZlXG4gICAgICAgICAgICA/IHt9XG4gICAgICAgICAgICA6ICgwLCB1dGlsX2pzXzEucGljaykodGhpcy5vcHRzLCBcImFnZW50XCIsIFwicGVyTWVzc2FnZURlZmxhdGVcIiwgXCJwZnhcIiwgXCJrZXlcIiwgXCJwYXNzcGhyYXNlXCIsIFwiY2VydFwiLCBcImNhXCIsIFwiY2lwaGVyc1wiLCBcInJlamVjdFVuYXV0aG9yaXplZFwiLCBcImxvY2FsQWRkcmVzc1wiLCBcInByb3RvY29sVmVyc2lvblwiLCBcIm9yaWdpblwiLCBcIm1heFBheWxvYWRcIiwgXCJmYW1pbHlcIiwgXCJjaGVja1NlcnZlcklkZW50aXR5XCIpO1xuICAgICAgICBpZiAodGhpcy5vcHRzLmV4dHJhSGVhZGVycykge1xuICAgICAgICAgICAgb3B0cy5oZWFkZXJzID0gdGhpcy5vcHRzLmV4dHJhSGVhZGVycztcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdGhpcy53cyA9XG4gICAgICAgICAgICAgICAgd2Vic29ja2V0X2NvbnN0cnVjdG9yX2pzXzEudXNpbmdCcm93c2VyV2ViU29ja2V0ICYmICFpc1JlYWN0TmF0aXZlXG4gICAgICAgICAgICAgICAgICAgID8gcHJvdG9jb2xzXG4gICAgICAgICAgICAgICAgICAgICAgICA/IG5ldyB3ZWJzb2NrZXRfY29uc3RydWN0b3JfanNfMS5XZWJTb2NrZXQodXJpLCBwcm90b2NvbHMpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IG5ldyB3ZWJzb2NrZXRfY29uc3RydWN0b3JfanNfMS5XZWJTb2NrZXQodXJpKVxuICAgICAgICAgICAgICAgICAgICA6IG5ldyB3ZWJzb2NrZXRfY29uc3RydWN0b3JfanNfMS5XZWJTb2NrZXQodXJpLCBwcm90b2NvbHMsIG9wdHMpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmVtaXRSZXNlcnZlZChcImVycm9yXCIsIGVycik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy53cy5iaW5hcnlUeXBlID0gdGhpcy5zb2NrZXQuYmluYXJ5VHlwZTtcbiAgICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVycygpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBBZGRzIGV2ZW50IGxpc3RlbmVycyB0byB0aGUgc29ja2V0XG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIGFkZEV2ZW50TGlzdGVuZXJzKCkge1xuICAgICAgICB0aGlzLndzLm9ub3BlbiA9ICgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLm9wdHMuYXV0b1VucmVmKSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cy5fc29ja2V0LnVucmVmKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLm9uT3BlbigpO1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLndzLm9uY2xvc2UgPSAoY2xvc2VFdmVudCkgPT4gdGhpcy5vbkNsb3NlKHtcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIndlYnNvY2tldCBjb25uZWN0aW9uIGNsb3NlZFwiLFxuICAgICAgICAgICAgY29udGV4dDogY2xvc2VFdmVudCxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMud3Mub25tZXNzYWdlID0gKGV2KSA9PiB0aGlzLm9uRGF0YShldi5kYXRhKTtcbiAgICAgICAgdGhpcy53cy5vbmVycm9yID0gKGUpID0+IHRoaXMub25FcnJvcihcIndlYnNvY2tldCBlcnJvclwiLCBlKTtcbiAgICB9XG4gICAgd3JpdGUocGFja2V0cykge1xuICAgICAgICB0aGlzLndyaXRhYmxlID0gZmFsc2U7XG4gICAgICAgIC8vIGVuY29kZVBhY2tldCBlZmZpY2llbnQgYXMgaXQgdXNlcyBXUyBmcmFtaW5nXG4gICAgICAgIC8vIG5vIG5lZWQgZm9yIGVuY29kZVBheWxvYWRcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYWNrZXRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBwYWNrZXQgPSBwYWNrZXRzW2ldO1xuICAgICAgICAgICAgY29uc3QgbGFzdFBhY2tldCA9IGkgPT09IHBhY2tldHMubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgICgwLCBlbmdpbmVfaW9fcGFyc2VyXzEuZW5jb2RlUGFja2V0KShwYWNrZXQsIHRoaXMuc3VwcG9ydHNCaW5hcnksIChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gYWx3YXlzIGNyZWF0ZSBhIG5ldyBvYmplY3QgKEdILTQzNylcbiAgICAgICAgICAgICAgICBjb25zdCBvcHRzID0ge307XG4gICAgICAgICAgICAgICAgaWYgKCF3ZWJzb2NrZXRfY29uc3RydWN0b3JfanNfMS51c2luZ0Jyb3dzZXJXZWJTb2NrZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBhY2tldC5vcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRzLmNvbXByZXNzID0gcGFja2V0Lm9wdGlvbnMuY29tcHJlc3M7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0cy5wZXJNZXNzYWdlRGVmbGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGVuID0gXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2YgZGF0YSA/IEJ1ZmZlci5ieXRlTGVuZ3RoKGRhdGEpIDogZGF0YS5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobGVuIDwgdGhpcy5vcHRzLnBlck1lc3NhZ2VEZWZsYXRlLnRocmVzaG9sZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdHMuY29tcHJlc3MgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBTb21ldGltZXMgdGhlIHdlYnNvY2tldCBoYXMgYWxyZWFkeSBiZWVuIGNsb3NlZCBidXQgdGhlIGJyb3dzZXIgZGlkbid0XG4gICAgICAgICAgICAgICAgLy8gaGF2ZSBhIGNoYW5jZSBvZiBpbmZvcm1pbmcgdXMgYWJvdXQgaXQgeWV0LCBpbiB0aGF0IGNhc2Ugc2VuZCB3aWxsXG4gICAgICAgICAgICAgICAgLy8gdGhyb3cgYW4gZXJyb3JcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBpZiAod2Vic29ja2V0X2NvbnN0cnVjdG9yX2pzXzEudXNpbmdCcm93c2VyV2ViU29ja2V0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUeXBlRXJyb3IgaXMgdGhyb3duIHdoZW4gcGFzc2luZyB0aGUgc2Vjb25kIGFyZ3VtZW50IG9uIFNhZmFyaVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53cy5zZW5kKGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53cy5zZW5kKGRhdGEsIG9wdHMpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlYnVnKFwid2Vic29ja2V0IGNsb3NlZCBiZWZvcmUgb25jbG9zZSBldmVudFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGxhc3RQYWNrZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gZmFrZSBkcmFpblxuICAgICAgICAgICAgICAgICAgICAvLyBkZWZlciB0byBuZXh0IHRpY2sgdG8gYWxsb3cgU29ja2V0IHRvIGNsZWFyIHdyaXRlQnVmZmVyXG4gICAgICAgICAgICAgICAgICAgICgwLCB3ZWJzb2NrZXRfY29uc3RydWN0b3JfanNfMS5uZXh0VGljaykoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0YWJsZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVtaXRSZXNlcnZlZChcImRyYWluXCIpO1xuICAgICAgICAgICAgICAgICAgICB9LCB0aGlzLnNldFRpbWVvdXRGbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZG9DbG9zZSgpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLndzICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICB0aGlzLndzLmNsb3NlKCk7XG4gICAgICAgICAgICB0aGlzLndzID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBHZW5lcmF0ZXMgdXJpIGZvciBjb25uZWN0aW9uLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICB1cmkoKSB7XG4gICAgICAgIGNvbnN0IHNjaGVtYSA9IHRoaXMub3B0cy5zZWN1cmUgPyBcIndzc1wiIDogXCJ3c1wiO1xuICAgICAgICBjb25zdCBxdWVyeSA9IHRoaXMucXVlcnkgfHwge307XG4gICAgICAgIC8vIGFwcGVuZCB0aW1lc3RhbXAgdG8gVVJJXG4gICAgICAgIGlmICh0aGlzLm9wdHMudGltZXN0YW1wUmVxdWVzdHMpIHtcbiAgICAgICAgICAgIHF1ZXJ5W3RoaXMub3B0cy50aW1lc3RhbXBQYXJhbV0gPSAoMCwgeWVhc3RfanNfMS55ZWFzdCkoKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBjb21tdW5pY2F0ZSBiaW5hcnkgc3VwcG9ydCBjYXBhYmlsaXRpZXNcbiAgICAgICAgaWYgKCF0aGlzLnN1cHBvcnRzQmluYXJ5KSB7XG4gICAgICAgICAgICBxdWVyeS5iNjQgPSAxO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVVyaShzY2hlbWEsIHF1ZXJ5KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRmVhdHVyZSBkZXRlY3Rpb24gZm9yIFdlYlNvY2tldC5cbiAgICAgKlxuICAgICAqIEByZXR1cm4ge0Jvb2xlYW59IHdoZXRoZXIgdGhpcyB0cmFuc3BvcnQgaXMgYXZhaWxhYmxlLlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgY2hlY2soKSB7XG4gICAgICAgIHJldHVybiAhIXdlYnNvY2tldF9jb25zdHJ1Y3Rvcl9qc18xLldlYlNvY2tldDtcbiAgICB9XG59XG5leHBvcnRzLldTID0gV1M7XG4iLCJcbi8qKlxuICogVGhpcyBpcyB0aGUgY29tbW9uIGxvZ2ljIGZvciBib3RoIHRoZSBOb2RlLmpzIGFuZCB3ZWIgYnJvd3NlclxuICogaW1wbGVtZW50YXRpb25zIG9mIGBkZWJ1ZygpYC5cbiAqL1xuXG5mdW5jdGlvbiBzZXR1cChlbnYpIHtcblx0Y3JlYXRlRGVidWcuZGVidWcgPSBjcmVhdGVEZWJ1Zztcblx0Y3JlYXRlRGVidWcuZGVmYXVsdCA9IGNyZWF0ZURlYnVnO1xuXHRjcmVhdGVEZWJ1Zy5jb2VyY2UgPSBjb2VyY2U7XG5cdGNyZWF0ZURlYnVnLmRpc2FibGUgPSBkaXNhYmxlO1xuXHRjcmVhdGVEZWJ1Zy5lbmFibGUgPSBlbmFibGU7XG5cdGNyZWF0ZURlYnVnLmVuYWJsZWQgPSBlbmFibGVkO1xuXHRjcmVhdGVEZWJ1Zy5odW1hbml6ZSA9IHJlcXVpcmUoJ21zJyk7XG5cdGNyZWF0ZURlYnVnLmRlc3Ryb3kgPSBkZXN0cm95O1xuXG5cdE9iamVjdC5rZXlzKGVudikuZm9yRWFjaChrZXkgPT4ge1xuXHRcdGNyZWF0ZURlYnVnW2tleV0gPSBlbnZba2V5XTtcblx0fSk7XG5cblx0LyoqXG5cdCogVGhlIGN1cnJlbnRseSBhY3RpdmUgZGVidWcgbW9kZSBuYW1lcywgYW5kIG5hbWVzIHRvIHNraXAuXG5cdCovXG5cblx0Y3JlYXRlRGVidWcubmFtZXMgPSBbXTtcblx0Y3JlYXRlRGVidWcuc2tpcHMgPSBbXTtcblxuXHQvKipcblx0KiBNYXAgb2Ygc3BlY2lhbCBcIiVuXCIgaGFuZGxpbmcgZnVuY3Rpb25zLCBmb3IgdGhlIGRlYnVnIFwiZm9ybWF0XCIgYXJndW1lbnQuXG5cdCpcblx0KiBWYWxpZCBrZXkgbmFtZXMgYXJlIGEgc2luZ2xlLCBsb3dlciBvciB1cHBlci1jYXNlIGxldHRlciwgaS5lLiBcIm5cIiBhbmQgXCJOXCIuXG5cdCovXG5cdGNyZWF0ZURlYnVnLmZvcm1hdHRlcnMgPSB7fTtcblxuXHQvKipcblx0KiBTZWxlY3RzIGEgY29sb3IgZm9yIGEgZGVidWcgbmFtZXNwYWNlXG5cdCogQHBhcmFtIHtTdHJpbmd9IG5hbWVzcGFjZSBUaGUgbmFtZXNwYWNlIHN0cmluZyBmb3IgdGhlIGRlYnVnIGluc3RhbmNlIHRvIGJlIGNvbG9yZWRcblx0KiBAcmV0dXJuIHtOdW1iZXJ8U3RyaW5nfSBBbiBBTlNJIGNvbG9yIGNvZGUgZm9yIHRoZSBnaXZlbiBuYW1lc3BhY2Vcblx0KiBAYXBpIHByaXZhdGVcblx0Ki9cblx0ZnVuY3Rpb24gc2VsZWN0Q29sb3IobmFtZXNwYWNlKSB7XG5cdFx0bGV0IGhhc2ggPSAwO1xuXG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBuYW1lc3BhY2UubGVuZ3RoOyBpKyspIHtcblx0XHRcdGhhc2ggPSAoKGhhc2ggPDwgNSkgLSBoYXNoKSArIG5hbWVzcGFjZS5jaGFyQ29kZUF0KGkpO1xuXHRcdFx0aGFzaCB8PSAwOyAvLyBDb252ZXJ0IHRvIDMyYml0IGludGVnZXJcblx0XHR9XG5cblx0XHRyZXR1cm4gY3JlYXRlRGVidWcuY29sb3JzW01hdGguYWJzKGhhc2gpICUgY3JlYXRlRGVidWcuY29sb3JzLmxlbmd0aF07XG5cdH1cblx0Y3JlYXRlRGVidWcuc2VsZWN0Q29sb3IgPSBzZWxlY3RDb2xvcjtcblxuXHQvKipcblx0KiBDcmVhdGUgYSBkZWJ1Z2dlciB3aXRoIHRoZSBnaXZlbiBgbmFtZXNwYWNlYC5cblx0KlxuXHQqIEBwYXJhbSB7U3RyaW5nfSBuYW1lc3BhY2Vcblx0KiBAcmV0dXJuIHtGdW5jdGlvbn1cblx0KiBAYXBpIHB1YmxpY1xuXHQqL1xuXHRmdW5jdGlvbiBjcmVhdGVEZWJ1ZyhuYW1lc3BhY2UpIHtcblx0XHRsZXQgcHJldlRpbWU7XG5cdFx0bGV0IGVuYWJsZU92ZXJyaWRlID0gbnVsbDtcblx0XHRsZXQgbmFtZXNwYWNlc0NhY2hlO1xuXHRcdGxldCBlbmFibGVkQ2FjaGU7XG5cblx0XHRmdW5jdGlvbiBkZWJ1ZyguLi5hcmdzKSB7XG5cdFx0XHQvLyBEaXNhYmxlZD9cblx0XHRcdGlmICghZGVidWcuZW5hYmxlZCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdGNvbnN0IHNlbGYgPSBkZWJ1ZztcblxuXHRcdFx0Ly8gU2V0IGBkaWZmYCB0aW1lc3RhbXBcblx0XHRcdGNvbnN0IGN1cnIgPSBOdW1iZXIobmV3IERhdGUoKSk7XG5cdFx0XHRjb25zdCBtcyA9IGN1cnIgLSAocHJldlRpbWUgfHwgY3Vycik7XG5cdFx0XHRzZWxmLmRpZmYgPSBtcztcblx0XHRcdHNlbGYucHJldiA9IHByZXZUaW1lO1xuXHRcdFx0c2VsZi5jdXJyID0gY3Vycjtcblx0XHRcdHByZXZUaW1lID0gY3VycjtcblxuXHRcdFx0YXJnc1swXSA9IGNyZWF0ZURlYnVnLmNvZXJjZShhcmdzWzBdKTtcblxuXHRcdFx0aWYgKHR5cGVvZiBhcmdzWzBdICE9PSAnc3RyaW5nJykge1xuXHRcdFx0XHQvLyBBbnl0aGluZyBlbHNlIGxldCdzIGluc3BlY3Qgd2l0aCAlT1xuXHRcdFx0XHRhcmdzLnVuc2hpZnQoJyVPJyk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIEFwcGx5IGFueSBgZm9ybWF0dGVyc2AgdHJhbnNmb3JtYXRpb25zXG5cdFx0XHRsZXQgaW5kZXggPSAwO1xuXHRcdFx0YXJnc1swXSA9IGFyZ3NbMF0ucmVwbGFjZSgvJShbYS16QS1aJV0pL2csIChtYXRjaCwgZm9ybWF0KSA9PiB7XG5cdFx0XHRcdC8vIElmIHdlIGVuY291bnRlciBhbiBlc2NhcGVkICUgdGhlbiBkb24ndCBpbmNyZWFzZSB0aGUgYXJyYXkgaW5kZXhcblx0XHRcdFx0aWYgKG1hdGNoID09PSAnJSUnKSB7XG5cdFx0XHRcdFx0cmV0dXJuICclJztcblx0XHRcdFx0fVxuXHRcdFx0XHRpbmRleCsrO1xuXHRcdFx0XHRjb25zdCBmb3JtYXR0ZXIgPSBjcmVhdGVEZWJ1Zy5mb3JtYXR0ZXJzW2Zvcm1hdF07XG5cdFx0XHRcdGlmICh0eXBlb2YgZm9ybWF0dGVyID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRcdFx0Y29uc3QgdmFsID0gYXJnc1tpbmRleF07XG5cdFx0XHRcdFx0bWF0Y2ggPSBmb3JtYXR0ZXIuY2FsbChzZWxmLCB2YWwpO1xuXG5cdFx0XHRcdFx0Ly8gTm93IHdlIG5lZWQgdG8gcmVtb3ZlIGBhcmdzW2luZGV4XWAgc2luY2UgaXQncyBpbmxpbmVkIGluIHRoZSBgZm9ybWF0YFxuXHRcdFx0XHRcdGFyZ3Muc3BsaWNlKGluZGV4LCAxKTtcblx0XHRcdFx0XHRpbmRleC0tO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBtYXRjaDtcblx0XHRcdH0pO1xuXG5cdFx0XHQvLyBBcHBseSBlbnYtc3BlY2lmaWMgZm9ybWF0dGluZyAoY29sb3JzLCBldGMuKVxuXHRcdFx0Y3JlYXRlRGVidWcuZm9ybWF0QXJncy5jYWxsKHNlbGYsIGFyZ3MpO1xuXG5cdFx0XHRjb25zdCBsb2dGbiA9IHNlbGYubG9nIHx8IGNyZWF0ZURlYnVnLmxvZztcblx0XHRcdGxvZ0ZuLmFwcGx5KHNlbGYsIGFyZ3MpO1xuXHRcdH1cblxuXHRcdGRlYnVnLm5hbWVzcGFjZSA9IG5hbWVzcGFjZTtcblx0XHRkZWJ1Zy51c2VDb2xvcnMgPSBjcmVhdGVEZWJ1Zy51c2VDb2xvcnMoKTtcblx0XHRkZWJ1Zy5jb2xvciA9IGNyZWF0ZURlYnVnLnNlbGVjdENvbG9yKG5hbWVzcGFjZSk7XG5cdFx0ZGVidWcuZXh0ZW5kID0gZXh0ZW5kO1xuXHRcdGRlYnVnLmRlc3Ryb3kgPSBjcmVhdGVEZWJ1Zy5kZXN0cm95OyAvLyBYWFggVGVtcG9yYXJ5LiBXaWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgcmVsZWFzZS5cblxuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkZWJ1ZywgJ2VuYWJsZWQnLCB7XG5cdFx0XHRlbnVtZXJhYmxlOiB0cnVlLFxuXHRcdFx0Y29uZmlndXJhYmxlOiBmYWxzZSxcblx0XHRcdGdldDogKCkgPT4ge1xuXHRcdFx0XHRpZiAoZW5hYmxlT3ZlcnJpZGUgIT09IG51bGwpIHtcblx0XHRcdFx0XHRyZXR1cm4gZW5hYmxlT3ZlcnJpZGU7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKG5hbWVzcGFjZXNDYWNoZSAhPT0gY3JlYXRlRGVidWcubmFtZXNwYWNlcykge1xuXHRcdFx0XHRcdG5hbWVzcGFjZXNDYWNoZSA9IGNyZWF0ZURlYnVnLm5hbWVzcGFjZXM7XG5cdFx0XHRcdFx0ZW5hYmxlZENhY2hlID0gY3JlYXRlRGVidWcuZW5hYmxlZChuYW1lc3BhY2UpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmV0dXJuIGVuYWJsZWRDYWNoZTtcblx0XHRcdH0sXG5cdFx0XHRzZXQ6IHYgPT4ge1xuXHRcdFx0XHRlbmFibGVPdmVycmlkZSA9IHY7XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHQvLyBFbnYtc3BlY2lmaWMgaW5pdGlhbGl6YXRpb24gbG9naWMgZm9yIGRlYnVnIGluc3RhbmNlc1xuXHRcdGlmICh0eXBlb2YgY3JlYXRlRGVidWcuaW5pdCA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0Y3JlYXRlRGVidWcuaW5pdChkZWJ1Zyk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGRlYnVnO1xuXHR9XG5cblx0ZnVuY3Rpb24gZXh0ZW5kKG5hbWVzcGFjZSwgZGVsaW1pdGVyKSB7XG5cdFx0Y29uc3QgbmV3RGVidWcgPSBjcmVhdGVEZWJ1Zyh0aGlzLm5hbWVzcGFjZSArICh0eXBlb2YgZGVsaW1pdGVyID09PSAndW5kZWZpbmVkJyA/ICc6JyA6IGRlbGltaXRlcikgKyBuYW1lc3BhY2UpO1xuXHRcdG5ld0RlYnVnLmxvZyA9IHRoaXMubG9nO1xuXHRcdHJldHVybiBuZXdEZWJ1Zztcblx0fVxuXG5cdC8qKlxuXHQqIEVuYWJsZXMgYSBkZWJ1ZyBtb2RlIGJ5IG5hbWVzcGFjZXMuIFRoaXMgY2FuIGluY2x1ZGUgbW9kZXNcblx0KiBzZXBhcmF0ZWQgYnkgYSBjb2xvbiBhbmQgd2lsZGNhcmRzLlxuXHQqXG5cdCogQHBhcmFtIHtTdHJpbmd9IG5hbWVzcGFjZXNcblx0KiBAYXBpIHB1YmxpY1xuXHQqL1xuXHRmdW5jdGlvbiBlbmFibGUobmFtZXNwYWNlcykge1xuXHRcdGNyZWF0ZURlYnVnLnNhdmUobmFtZXNwYWNlcyk7XG5cdFx0Y3JlYXRlRGVidWcubmFtZXNwYWNlcyA9IG5hbWVzcGFjZXM7XG5cblx0XHRjcmVhdGVEZWJ1Zy5uYW1lcyA9IFtdO1xuXHRcdGNyZWF0ZURlYnVnLnNraXBzID0gW107XG5cblx0XHRsZXQgaTtcblx0XHRjb25zdCBzcGxpdCA9ICh0eXBlb2YgbmFtZXNwYWNlcyA9PT0gJ3N0cmluZycgPyBuYW1lc3BhY2VzIDogJycpLnNwbGl0KC9bXFxzLF0rLyk7XG5cdFx0Y29uc3QgbGVuID0gc3BsaXQubGVuZ3RoO1xuXG5cdFx0Zm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG5cdFx0XHRpZiAoIXNwbGl0W2ldKSB7XG5cdFx0XHRcdC8vIGlnbm9yZSBlbXB0eSBzdHJpbmdzXG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXG5cdFx0XHRuYW1lc3BhY2VzID0gc3BsaXRbaV0ucmVwbGFjZSgvXFwqL2csICcuKj8nKTtcblxuXHRcdFx0aWYgKG5hbWVzcGFjZXNbMF0gPT09ICctJykge1xuXHRcdFx0XHRjcmVhdGVEZWJ1Zy5za2lwcy5wdXNoKG5ldyBSZWdFeHAoJ14nICsgbmFtZXNwYWNlcy5zbGljZSgxKSArICckJykpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y3JlYXRlRGVidWcubmFtZXMucHVzaChuZXcgUmVnRXhwKCdeJyArIG5hbWVzcGFjZXMgKyAnJCcpKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvKipcblx0KiBEaXNhYmxlIGRlYnVnIG91dHB1dC5cblx0KlxuXHQqIEByZXR1cm4ge1N0cmluZ30gbmFtZXNwYWNlc1xuXHQqIEBhcGkgcHVibGljXG5cdCovXG5cdGZ1bmN0aW9uIGRpc2FibGUoKSB7XG5cdFx0Y29uc3QgbmFtZXNwYWNlcyA9IFtcblx0XHRcdC4uLmNyZWF0ZURlYnVnLm5hbWVzLm1hcCh0b05hbWVzcGFjZSksXG5cdFx0XHQuLi5jcmVhdGVEZWJ1Zy5za2lwcy5tYXAodG9OYW1lc3BhY2UpLm1hcChuYW1lc3BhY2UgPT4gJy0nICsgbmFtZXNwYWNlKVxuXHRcdF0uam9pbignLCcpO1xuXHRcdGNyZWF0ZURlYnVnLmVuYWJsZSgnJyk7XG5cdFx0cmV0dXJuIG5hbWVzcGFjZXM7XG5cdH1cblxuXHQvKipcblx0KiBSZXR1cm5zIHRydWUgaWYgdGhlIGdpdmVuIG1vZGUgbmFtZSBpcyBlbmFibGVkLCBmYWxzZSBvdGhlcndpc2UuXG5cdCpcblx0KiBAcGFyYW0ge1N0cmluZ30gbmFtZVxuXHQqIEByZXR1cm4ge0Jvb2xlYW59XG5cdCogQGFwaSBwdWJsaWNcblx0Ki9cblx0ZnVuY3Rpb24gZW5hYmxlZChuYW1lKSB7XG5cdFx0aWYgKG5hbWVbbmFtZS5sZW5ndGggLSAxXSA9PT0gJyonKSB7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cblx0XHRsZXQgaTtcblx0XHRsZXQgbGVuO1xuXG5cdFx0Zm9yIChpID0gMCwgbGVuID0gY3JlYXRlRGVidWcuc2tpcHMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcblx0XHRcdGlmIChjcmVhdGVEZWJ1Zy5za2lwc1tpXS50ZXN0KG5hbWUpKSB7XG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRmb3IgKGkgPSAwLCBsZW4gPSBjcmVhdGVEZWJ1Zy5uYW1lcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuXHRcdFx0aWYgKGNyZWF0ZURlYnVnLm5hbWVzW2ldLnRlc3QobmFtZSkpIHtcblx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0LyoqXG5cdCogQ29udmVydCByZWdleHAgdG8gbmFtZXNwYWNlXG5cdCpcblx0KiBAcGFyYW0ge1JlZ0V4cH0gcmVneGVwXG5cdCogQHJldHVybiB7U3RyaW5nfSBuYW1lc3BhY2Vcblx0KiBAYXBpIHByaXZhdGVcblx0Ki9cblx0ZnVuY3Rpb24gdG9OYW1lc3BhY2UocmVnZXhwKSB7XG5cdFx0cmV0dXJuIHJlZ2V4cC50b1N0cmluZygpXG5cdFx0XHQuc3Vic3RyaW5nKDIsIHJlZ2V4cC50b1N0cmluZygpLmxlbmd0aCAtIDIpXG5cdFx0XHQucmVwbGFjZSgvXFwuXFwqXFw/JC8sICcqJyk7XG5cdH1cblxuXHQvKipcblx0KiBDb2VyY2UgYHZhbGAuXG5cdCpcblx0KiBAcGFyYW0ge01peGVkfSB2YWxcblx0KiBAcmV0dXJuIHtNaXhlZH1cblx0KiBAYXBpIHByaXZhdGVcblx0Ki9cblx0ZnVuY3Rpb24gY29lcmNlKHZhbCkge1xuXHRcdGlmICh2YWwgaW5zdGFuY2VvZiBFcnJvcikge1xuXHRcdFx0cmV0dXJuIHZhbC5zdGFjayB8fCB2YWwubWVzc2FnZTtcblx0XHR9XG5cdFx0cmV0dXJuIHZhbDtcblx0fVxuXG5cdC8qKlxuXHQqIFhYWCBETyBOT1QgVVNFLiBUaGlzIGlzIGEgdGVtcG9yYXJ5IHN0dWIgZnVuY3Rpb24uXG5cdCogWFhYIEl0IFdJTEwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciByZWxlYXNlLlxuXHQqL1xuXHRmdW5jdGlvbiBkZXN0cm95KCkge1xuXHRcdGNvbnNvbGUud2FybignSW5zdGFuY2UgbWV0aG9kIGBkZWJ1Zy5kZXN0cm95KClgIGlzIGRlcHJlY2F0ZWQgYW5kIG5vIGxvbmdlciBkb2VzIGFueXRoaW5nLiBJdCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiBvZiBgZGVidWdgLicpO1xuXHR9XG5cblx0Y3JlYXRlRGVidWcuZW5hYmxlKGNyZWF0ZURlYnVnLmxvYWQoKSk7XG5cblx0cmV0dXJuIGNyZWF0ZURlYnVnO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHNldHVwO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmhhc0JpbmFyeSA9IGV4cG9ydHMuaXNCaW5hcnkgPSB2b2lkIDA7XG5jb25zdCB3aXRoTmF0aXZlQXJyYXlCdWZmZXIgPSB0eXBlb2YgQXJyYXlCdWZmZXIgPT09IFwiZnVuY3Rpb25cIjtcbmNvbnN0IGlzVmlldyA9IChvYmopID0+IHtcbiAgICByZXR1cm4gdHlwZW9mIEFycmF5QnVmZmVyLmlzVmlldyA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgID8gQXJyYXlCdWZmZXIuaXNWaWV3KG9iailcbiAgICAgICAgOiBvYmouYnVmZmVyIGluc3RhbmNlb2YgQXJyYXlCdWZmZXI7XG59O1xuY29uc3QgdG9TdHJpbmcgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO1xuY29uc3Qgd2l0aE5hdGl2ZUJsb2IgPSB0eXBlb2YgQmxvYiA9PT0gXCJmdW5jdGlvblwiIHx8XG4gICAgKHR5cGVvZiBCbG9iICE9PSBcInVuZGVmaW5lZFwiICYmXG4gICAgICAgIHRvU3RyaW5nLmNhbGwoQmxvYikgPT09IFwiW29iamVjdCBCbG9iQ29uc3RydWN0b3JdXCIpO1xuY29uc3Qgd2l0aE5hdGl2ZUZpbGUgPSB0eXBlb2YgRmlsZSA9PT0gXCJmdW5jdGlvblwiIHx8XG4gICAgKHR5cGVvZiBGaWxlICE9PSBcInVuZGVmaW5lZFwiICYmXG4gICAgICAgIHRvU3RyaW5nLmNhbGwoRmlsZSkgPT09IFwiW29iamVjdCBGaWxlQ29uc3RydWN0b3JdXCIpO1xuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgb2JqIGlzIGEgQnVmZmVyLCBhbiBBcnJheUJ1ZmZlciwgYSBCbG9iIG9yIGEgRmlsZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICovXG5mdW5jdGlvbiBpc0JpbmFyeShvYmopIHtcbiAgICByZXR1cm4gKCh3aXRoTmF0aXZlQXJyYXlCdWZmZXIgJiYgKG9iaiBpbnN0YW5jZW9mIEFycmF5QnVmZmVyIHx8IGlzVmlldyhvYmopKSkgfHxcbiAgICAgICAgKHdpdGhOYXRpdmVCbG9iICYmIG9iaiBpbnN0YW5jZW9mIEJsb2IpIHx8XG4gICAgICAgICh3aXRoTmF0aXZlRmlsZSAmJiBvYmogaW5zdGFuY2VvZiBGaWxlKSk7XG59XG5leHBvcnRzLmlzQmluYXJ5ID0gaXNCaW5hcnk7XG5mdW5jdGlvbiBoYXNCaW5hcnkob2JqLCB0b0pTT04pIHtcbiAgICBpZiAoIW9iaiB8fCB0eXBlb2Ygb2JqICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xuICAgICAgICBmb3IgKGxldCBpID0gMCwgbCA9IG9iai5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChoYXNCaW5hcnkob2JqW2ldKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKGlzQmluYXJ5KG9iaikpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChvYmoudG9KU09OICYmXG4gICAgICAgIHR5cGVvZiBvYmoudG9KU09OID09PSBcImZ1bmN0aW9uXCIgJiZcbiAgICAgICAgYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICByZXR1cm4gaGFzQmluYXJ5KG9iai50b0pTT04oKSwgdHJ1ZSk7XG4gICAgfVxuICAgIGZvciAoY29uc3Qga2V5IGluIG9iaikge1xuICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSAmJiBoYXNCaW5hcnkob2JqW2tleV0pKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59XG5leHBvcnRzLmhhc0JpbmFyeSA9IGhhc0JpbmFyeTtcbiIsIi8qIGVzbGludC1lbnYgYnJvd3NlciAqL1xuXG4vKipcbiAqIFRoaXMgaXMgdGhlIHdlYiBicm93c2VyIGltcGxlbWVudGF0aW9uIG9mIGBkZWJ1ZygpYC5cbiAqL1xuXG5leHBvcnRzLmZvcm1hdEFyZ3MgPSBmb3JtYXRBcmdzO1xuZXhwb3J0cy5zYXZlID0gc2F2ZTtcbmV4cG9ydHMubG9hZCA9IGxvYWQ7XG5leHBvcnRzLnVzZUNvbG9ycyA9IHVzZUNvbG9ycztcbmV4cG9ydHMuc3RvcmFnZSA9IGxvY2Fsc3RvcmFnZSgpO1xuZXhwb3J0cy5kZXN0cm95ID0gKCgpID0+IHtcblx0bGV0IHdhcm5lZCA9IGZhbHNlO1xuXG5cdHJldHVybiAoKSA9PiB7XG5cdFx0aWYgKCF3YXJuZWQpIHtcblx0XHRcdHdhcm5lZCA9IHRydWU7XG5cdFx0XHRjb25zb2xlLndhcm4oJ0luc3RhbmNlIG1ldGhvZCBgZGVidWcuZGVzdHJveSgpYCBpcyBkZXByZWNhdGVkIGFuZCBubyBsb25nZXIgZG9lcyBhbnl0aGluZy4gSXQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gb2YgYGRlYnVnYC4nKTtcblx0XHR9XG5cdH07XG59KSgpO1xuXG4vKipcbiAqIENvbG9ycy5cbiAqL1xuXG5leHBvcnRzLmNvbG9ycyA9IFtcblx0JyMwMDAwQ0MnLFxuXHQnIzAwMDBGRicsXG5cdCcjMDAzM0NDJyxcblx0JyMwMDMzRkYnLFxuXHQnIzAwNjZDQycsXG5cdCcjMDA2NkZGJyxcblx0JyMwMDk5Q0MnLFxuXHQnIzAwOTlGRicsXG5cdCcjMDBDQzAwJyxcblx0JyMwMENDMzMnLFxuXHQnIzAwQ0M2NicsXG5cdCcjMDBDQzk5Jyxcblx0JyMwMENDQ0MnLFxuXHQnIzAwQ0NGRicsXG5cdCcjMzMwMENDJyxcblx0JyMzMzAwRkYnLFxuXHQnIzMzMzNDQycsXG5cdCcjMzMzM0ZGJyxcblx0JyMzMzY2Q0MnLFxuXHQnIzMzNjZGRicsXG5cdCcjMzM5OUNDJyxcblx0JyMzMzk5RkYnLFxuXHQnIzMzQ0MwMCcsXG5cdCcjMzNDQzMzJyxcblx0JyMzM0NDNjYnLFxuXHQnIzMzQ0M5OScsXG5cdCcjMzNDQ0NDJyxcblx0JyMzM0NDRkYnLFxuXHQnIzY2MDBDQycsXG5cdCcjNjYwMEZGJyxcblx0JyM2NjMzQ0MnLFxuXHQnIzY2MzNGRicsXG5cdCcjNjZDQzAwJyxcblx0JyM2NkNDMzMnLFxuXHQnIzk5MDBDQycsXG5cdCcjOTkwMEZGJyxcblx0JyM5OTMzQ0MnLFxuXHQnIzk5MzNGRicsXG5cdCcjOTlDQzAwJyxcblx0JyM5OUNDMzMnLFxuXHQnI0NDMDAwMCcsXG5cdCcjQ0MwMDMzJyxcblx0JyNDQzAwNjYnLFxuXHQnI0NDMDA5OScsXG5cdCcjQ0MwMENDJyxcblx0JyNDQzAwRkYnLFxuXHQnI0NDMzMwMCcsXG5cdCcjQ0MzMzMzJyxcblx0JyNDQzMzNjYnLFxuXHQnI0NDMzM5OScsXG5cdCcjQ0MzM0NDJyxcblx0JyNDQzMzRkYnLFxuXHQnI0NDNjYwMCcsXG5cdCcjQ0M2NjMzJyxcblx0JyNDQzk5MDAnLFxuXHQnI0NDOTkzMycsXG5cdCcjQ0NDQzAwJyxcblx0JyNDQ0NDMzMnLFxuXHQnI0ZGMDAwMCcsXG5cdCcjRkYwMDMzJyxcblx0JyNGRjAwNjYnLFxuXHQnI0ZGMDA5OScsXG5cdCcjRkYwMENDJyxcblx0JyNGRjAwRkYnLFxuXHQnI0ZGMzMwMCcsXG5cdCcjRkYzMzMzJyxcblx0JyNGRjMzNjYnLFxuXHQnI0ZGMzM5OScsXG5cdCcjRkYzM0NDJyxcblx0JyNGRjMzRkYnLFxuXHQnI0ZGNjYwMCcsXG5cdCcjRkY2NjMzJyxcblx0JyNGRjk5MDAnLFxuXHQnI0ZGOTkzMycsXG5cdCcjRkZDQzAwJyxcblx0JyNGRkNDMzMnXG5dO1xuXG4vKipcbiAqIEN1cnJlbnRseSBvbmx5IFdlYktpdC1iYXNlZCBXZWIgSW5zcGVjdG9ycywgRmlyZWZveCA+PSB2MzEsXG4gKiBhbmQgdGhlIEZpcmVidWcgZXh0ZW5zaW9uIChhbnkgRmlyZWZveCB2ZXJzaW9uKSBhcmUga25vd25cbiAqIHRvIHN1cHBvcnQgXCIlY1wiIENTUyBjdXN0b21pemF0aW9ucy5cbiAqXG4gKiBUT0RPOiBhZGQgYSBgbG9jYWxTdG9yYWdlYCB2YXJpYWJsZSB0byBleHBsaWNpdGx5IGVuYWJsZS9kaXNhYmxlIGNvbG9yc1xuICovXG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb21wbGV4aXR5XG5mdW5jdGlvbiB1c2VDb2xvcnMoKSB7XG5cdC8vIE5COiBJbiBhbiBFbGVjdHJvbiBwcmVsb2FkIHNjcmlwdCwgZG9jdW1lbnQgd2lsbCBiZSBkZWZpbmVkIGJ1dCBub3QgZnVsbHlcblx0Ly8gaW5pdGlhbGl6ZWQuIFNpbmNlIHdlIGtub3cgd2UncmUgaW4gQ2hyb21lLCB3ZSdsbCBqdXN0IGRldGVjdCB0aGlzIGNhc2Vcblx0Ly8gZXhwbGljaXRseVxuXHRpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LnByb2Nlc3MgJiYgKHdpbmRvdy5wcm9jZXNzLnR5cGUgPT09ICdyZW5kZXJlcicgfHwgd2luZG93LnByb2Nlc3MuX19ud2pzKSkge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG5cblx0Ly8gSW50ZXJuZXQgRXhwbG9yZXIgYW5kIEVkZ2UgZG8gbm90IHN1cHBvcnQgY29sb3JzLlxuXHRpZiAodHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudCAmJiBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goLyhlZGdlfHRyaWRlbnQpXFwvKFxcZCspLykpIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHRsZXQgbTtcblxuXHQvLyBJcyB3ZWJraXQ/IGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9hLzE2NDU5NjA2LzM3Njc3M1xuXHQvLyBkb2N1bWVudCBpcyB1bmRlZmluZWQgaW4gcmVhY3QtbmF0aXZlOiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QtbmF0aXZlL3B1bGwvMTYzMlxuXHRyZXR1cm4gKHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcgJiYgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ICYmIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZSAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuV2Via2l0QXBwZWFyYW5jZSkgfHxcblx0XHQvLyBJcyBmaXJlYnVnPyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8zOTgxMjAvMzc2NzczXG5cdFx0KHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5jb25zb2xlICYmICh3aW5kb3cuY29uc29sZS5maXJlYnVnIHx8ICh3aW5kb3cuY29uc29sZS5leGNlcHRpb24gJiYgd2luZG93LmNvbnNvbGUudGFibGUpKSkgfHxcblx0XHQvLyBJcyBmaXJlZm94ID49IHYzMT9cblx0XHQvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1Rvb2xzL1dlYl9Db25zb2xlI1N0eWxpbmdfbWVzc2FnZXNcblx0XHQodHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudCAmJiAobSA9IG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5tYXRjaCgvZmlyZWZveFxcLyhcXGQrKS8pKSAmJiBwYXJzZUludChtWzFdLCAxMCkgPj0gMzEpIHx8XG5cdFx0Ly8gRG91YmxlIGNoZWNrIHdlYmtpdCBpbiB1c2VyQWdlbnQganVzdCBpbiBjYXNlIHdlIGFyZSBpbiBhIHdvcmtlclxuXHRcdCh0eXBlb2YgbmF2aWdhdG9yICE9PSAndW5kZWZpbmVkJyAmJiBuYXZpZ2F0b3IudXNlckFnZW50ICYmIG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5tYXRjaCgvYXBwbGV3ZWJraXRcXC8oXFxkKykvKSk7XG59XG5cbi8qKlxuICogQ29sb3JpemUgbG9nIGFyZ3VtZW50cyBpZiBlbmFibGVkLlxuICpcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZnVuY3Rpb24gZm9ybWF0QXJncyhhcmdzKSB7XG5cdGFyZ3NbMF0gPSAodGhpcy51c2VDb2xvcnMgPyAnJWMnIDogJycpICtcblx0XHR0aGlzLm5hbWVzcGFjZSArXG5cdFx0KHRoaXMudXNlQ29sb3JzID8gJyAlYycgOiAnICcpICtcblx0XHRhcmdzWzBdICtcblx0XHQodGhpcy51c2VDb2xvcnMgPyAnJWMgJyA6ICcgJykgK1xuXHRcdCcrJyArIG1vZHVsZS5leHBvcnRzLmh1bWFuaXplKHRoaXMuZGlmZik7XG5cblx0aWYgKCF0aGlzLnVzZUNvbG9ycykge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IGMgPSAnY29sb3I6ICcgKyB0aGlzLmNvbG9yO1xuXHRhcmdzLnNwbGljZSgxLCAwLCBjLCAnY29sb3I6IGluaGVyaXQnKTtcblxuXHQvLyBUaGUgZmluYWwgXCIlY1wiIGlzIHNvbWV3aGF0IHRyaWNreSwgYmVjYXVzZSB0aGVyZSBjb3VsZCBiZSBvdGhlclxuXHQvLyBhcmd1bWVudHMgcGFzc2VkIGVpdGhlciBiZWZvcmUgb3IgYWZ0ZXIgdGhlICVjLCBzbyB3ZSBuZWVkIHRvXG5cdC8vIGZpZ3VyZSBvdXQgdGhlIGNvcnJlY3QgaW5kZXggdG8gaW5zZXJ0IHRoZSBDU1MgaW50b1xuXHRsZXQgaW5kZXggPSAwO1xuXHRsZXQgbGFzdEMgPSAwO1xuXHRhcmdzWzBdLnJlcGxhY2UoLyVbYS16QS1aJV0vZywgbWF0Y2ggPT4ge1xuXHRcdGlmIChtYXRjaCA9PT0gJyUlJykge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRpbmRleCsrO1xuXHRcdGlmIChtYXRjaCA9PT0gJyVjJykge1xuXHRcdFx0Ly8gV2Ugb25seSBhcmUgaW50ZXJlc3RlZCBpbiB0aGUgKmxhc3QqICVjXG5cdFx0XHQvLyAodGhlIHVzZXIgbWF5IGhhdmUgcHJvdmlkZWQgdGhlaXIgb3duKVxuXHRcdFx0bGFzdEMgPSBpbmRleDtcblx0XHR9XG5cdH0pO1xuXG5cdGFyZ3Muc3BsaWNlKGxhc3RDLCAwLCBjKTtcbn1cblxuLyoqXG4gKiBJbnZva2VzIGBjb25zb2xlLmRlYnVnKClgIHdoZW4gYXZhaWxhYmxlLlxuICogTm8tb3Agd2hlbiBgY29uc29sZS5kZWJ1Z2AgaXMgbm90IGEgXCJmdW5jdGlvblwiLlxuICogSWYgYGNvbnNvbGUuZGVidWdgIGlzIG5vdCBhdmFpbGFibGUsIGZhbGxzIGJhY2tcbiAqIHRvIGBjb25zb2xlLmxvZ2AuXG4gKlxuICogQGFwaSBwdWJsaWNcbiAqL1xuZXhwb3J0cy5sb2cgPSBjb25zb2xlLmRlYnVnIHx8IGNvbnNvbGUubG9nIHx8ICgoKSA9PiB7fSk7XG5cbi8qKlxuICogU2F2ZSBgbmFtZXNwYWNlc2AuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IG5hbWVzcGFjZXNcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5mdW5jdGlvbiBzYXZlKG5hbWVzcGFjZXMpIHtcblx0dHJ5IHtcblx0XHRpZiAobmFtZXNwYWNlcykge1xuXHRcdFx0ZXhwb3J0cy5zdG9yYWdlLnNldEl0ZW0oJ2RlYnVnJywgbmFtZXNwYWNlcyk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGV4cG9ydHMuc3RvcmFnZS5yZW1vdmVJdGVtKCdkZWJ1ZycpO1xuXHRcdH1cblx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHQvLyBTd2FsbG93XG5cdFx0Ly8gWFhYIChAUWl4LSkgc2hvdWxkIHdlIGJlIGxvZ2dpbmcgdGhlc2U/XG5cdH1cbn1cblxuLyoqXG4gKiBMb2FkIGBuYW1lc3BhY2VzYC5cbiAqXG4gKiBAcmV0dXJuIHtTdHJpbmd9IHJldHVybnMgdGhlIHByZXZpb3VzbHkgcGVyc2lzdGVkIGRlYnVnIG1vZGVzXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gbG9hZCgpIHtcblx0bGV0IHI7XG5cdHRyeSB7XG5cdFx0ciA9IGV4cG9ydHMuc3RvcmFnZS5nZXRJdGVtKCdkZWJ1ZycpO1xuXHR9IGNhdGNoIChlcnJvcikge1xuXHRcdC8vIFN3YWxsb3dcblx0XHQvLyBYWFggKEBRaXgtKSBzaG91bGQgd2UgYmUgbG9nZ2luZyB0aGVzZT9cblx0fVxuXG5cdC8vIElmIGRlYnVnIGlzbid0IHNldCBpbiBMUywgYW5kIHdlJ3JlIGluIEVsZWN0cm9uLCB0cnkgdG8gbG9hZCAkREVCVUdcblx0aWYgKCFyICYmIHR5cGVvZiBwcm9jZXNzICE9PSAndW5kZWZpbmVkJyAmJiAnZW52JyBpbiBwcm9jZXNzKSB7XG5cdFx0ciA9IHByb2Nlc3MuZW52LkRFQlVHO1xuXHR9XG5cblx0cmV0dXJuIHI7XG59XG5cbi8qKlxuICogTG9jYWxzdG9yYWdlIGF0dGVtcHRzIHRvIHJldHVybiB0aGUgbG9jYWxzdG9yYWdlLlxuICpcbiAqIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2Ugc2FmYXJpIHRocm93c1xuICogd2hlbiBhIHVzZXIgZGlzYWJsZXMgY29va2llcy9sb2NhbHN0b3JhZ2VcbiAqIGFuZCB5b3UgYXR0ZW1wdCB0byBhY2Nlc3MgaXQuXG4gKlxuICogQHJldHVybiB7TG9jYWxTdG9yYWdlfVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gbG9jYWxzdG9yYWdlKCkge1xuXHR0cnkge1xuXHRcdC8vIFRWTUxLaXQgKEFwcGxlIFRWIEpTIFJ1bnRpbWUpIGRvZXMgbm90IGhhdmUgYSB3aW5kb3cgb2JqZWN0LCBqdXN0IGxvY2FsU3RvcmFnZSBpbiB0aGUgZ2xvYmFsIGNvbnRleHRcblx0XHQvLyBUaGUgQnJvd3NlciBhbHNvIGhhcyBsb2NhbFN0b3JhZ2UgaW4gdGhlIGdsb2JhbCBjb250ZXh0LlxuXHRcdHJldHVybiBsb2NhbFN0b3JhZ2U7XG5cdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0Ly8gU3dhbGxvd1xuXHRcdC8vIFhYWCAoQFFpeC0pIHNob3VsZCB3ZSBiZSBsb2dnaW5nIHRoZXNlP1xuXHR9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9jb21tb24nKShleHBvcnRzKTtcblxuY29uc3Qge2Zvcm1hdHRlcnN9ID0gbW9kdWxlLmV4cG9ydHM7XG5cbi8qKlxuICogTWFwICVqIHRvIGBKU09OLnN0cmluZ2lmeSgpYCwgc2luY2Ugbm8gV2ViIEluc3BlY3RvcnMgZG8gdGhhdCBieSBkZWZhdWx0LlxuICovXG5cbmZvcm1hdHRlcnMuaiA9IGZ1bmN0aW9uICh2KSB7XG5cdHRyeSB7XG5cdFx0cmV0dXJuIEpTT04uc3RyaW5naWZ5KHYpO1xuXHR9IGNhdGNoIChlcnJvcikge1xuXHRcdHJldHVybiAnW1VuZXhwZWN0ZWRKU09OUGFyc2VFcnJvcl06ICcgKyBlcnJvci5tZXNzYWdlO1xuXHR9XG59O1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnRyYW5zcG9ydHMgPSB2b2lkIDA7XG5jb25zdCBwb2xsaW5nX2pzXzEgPSByZXF1aXJlKFwiLi9wb2xsaW5nLmpzXCIpO1xuY29uc3Qgd2Vic29ja2V0X2pzXzEgPSByZXF1aXJlKFwiLi93ZWJzb2NrZXQuanNcIik7XG5jb25zdCB3ZWJ0cmFuc3BvcnRfanNfMSA9IHJlcXVpcmUoXCIuL3dlYnRyYW5zcG9ydC5qc1wiKTtcbmV4cG9ydHMudHJhbnNwb3J0cyA9IHtcbiAgICB3ZWJzb2NrZXQ6IHdlYnNvY2tldF9qc18xLldTLFxuICAgIHdlYnRyYW5zcG9ydDogd2VidHJhbnNwb3J0X2pzXzEuV1QsXG4gICAgcG9sbGluZzogcG9sbGluZ19qc18xLlBvbGxpbmcsXG59O1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnR1bmVPcHRpb25NZXRob2RzID0gZXhwb3J0cy5pbml0ID0gZXhwb3J0cy50dW5lT3B0aW9uRGV0YWlsTWV0YSA9IGV4cG9ydHMudHVuZU9wdGlvbkRldGFpbEVtb3Rpb24gPSBleHBvcnRzLnR1bmVPcHRpb25SYW5rQWxsSGFzTGF0ZXN0UG9zdCA9IGV4cG9ydHMudHVuZU9wdGlvblJhbmtIYXNMYXRlc3RQb3N0ID0gZXhwb3J0cy50dW5lT3B0aW9uSGFzTGF0ZXN0UG9zdCA9IGV4cG9ydHMudHVuZU9wdGlvblJhbmtBbGwgPSBleHBvcnRzLnR1bmVPcHRpb25SYW5rID0gZXhwb3J0cy50dW5lT3B0aW9uUG9zdHMgPSB2b2lkIDA7XG5leHBvcnRzLnR1bmVPcHRpb25Qb3N0cyA9ICdwb3N0cyc7XG5leHBvcnRzLnR1bmVPcHRpb25SYW5rID0gJ3JhbmsnO1xuZXhwb3J0cy50dW5lT3B0aW9uUmFua0FsbCA9ICdyYW5rQWxsJztcbmV4cG9ydHMudHVuZU9wdGlvbkhhc0xhdGVzdFBvc3QgPSAnaGFzTGF0ZXN0UG9zdCc7XG5leHBvcnRzLnR1bmVPcHRpb25SYW5rSGFzTGF0ZXN0UG9zdCA9ICdyYW5rSGFzTGF0ZXN0UG9zdCc7XG5leHBvcnRzLnR1bmVPcHRpb25SYW5rQWxsSGFzTGF0ZXN0UG9zdCA9ICdyYW5rQWxsSGFzTGF0ZXN0UG9zdCc7XG5leHBvcnRzLnR1bmVPcHRpb25EZXRhaWxFbW90aW9uID0gJ2RldGFpbEVtb3Rpb24nO1xuZXhwb3J0cy50dW5lT3B0aW9uRGV0YWlsTWV0YSA9ICdkZXRhaWxNZXRhJztcbmV4cG9ydHMuaW5pdCA9IHtcbiAgICBbZXhwb3J0cy50dW5lT3B0aW9uUG9zdHNdOiBmYWxzZSxcbiAgICBbZXhwb3J0cy50dW5lT3B0aW9uUmFua106IGZhbHNlLFxuICAgIFtleHBvcnRzLnR1bmVPcHRpb25SYW5rQWxsXTogZmFsc2UsXG4gICAgW2V4cG9ydHMudHVuZU9wdGlvbkhhc0xhdGVzdFBvc3RdOiBmYWxzZSxcbiAgICBbZXhwb3J0cy50dW5lT3B0aW9uUmFua0hhc0xhdGVzdFBvc3RdOiBmYWxzZSxcbiAgICBbZXhwb3J0cy50dW5lT3B0aW9uUmFua0FsbEhhc0xhdGVzdFBvc3RdOiBmYWxzZSxcbiAgICBbZXhwb3J0cy50dW5lT3B0aW9uRGV0YWlsRW1vdGlvbl06IGZhbHNlLFxuICAgIFtleHBvcnRzLnR1bmVPcHRpb25EZXRhaWxNZXRhXTogZmFsc2UsXG59O1xuZXhwb3J0cy50dW5lT3B0aW9uTWV0aG9kcyA9IE9iamVjdC5rZXlzKGV4cG9ydHMuaW5pdCk7XG5jbGFzcyBUdW5lT3B0aW9uTW9kZWwge1xuICAgIGNvbnN0cnVjdG9yKHBhcmFtcyA9IGV4cG9ydHMuaW5pdCkge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih0aGlzLCBwYXJhbXMpO1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0VHVuZU9wdGlvbkZyb21VcmwodXJsKSB7XG4gICAgICAgIGNvbnN0IHF1ZXJ5U3RyaW5nID0gdXJsLnNwbGl0KFwiP1wiKVsxXTtcbiAgICAgICAgaWYgKCFxdWVyeVN0cmluZylcbiAgICAgICAgICAgIHJldHVybiB7IC4uLmV4cG9ydHMuaW5pdCB9O1xuICAgICAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHF1ZXJ5U3RyaW5nKTtcbiAgICAgICAgY29uc3Qgb3B0aW9uID0ge307XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIGV4cG9ydHMudHVuZU9wdGlvbk1ldGhvZHMpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gcGFyYW1zLmdldChrZXkpO1xuICAgICAgICAgICAgaWYgKHZhbHVlID09PSBcInRydWVcIikge1xuICAgICAgICAgICAgICAgIG9wdGlvbltrZXldID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHZhbHVlID09PSBcImZhbHNlXCIpIHtcbiAgICAgICAgICAgICAgICBvcHRpb25ba2V5XSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgb3B0aW9uW2tleV0gPSBCb29sZWFuKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uZXhwb3J0cy5pbml0LFxuICAgICAgICAgICAgLi4ub3B0aW9uLFxuICAgICAgICB9O1xuICAgIH1cbn1cbmV4cG9ydHMuZGVmYXVsdCA9IFR1bmVPcHRpb25Nb2RlbDtcbiIsIi8vIFRoZSBtb2R1bGUgY2FjaGVcbnZhciBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18gPSB7fTtcblxuLy8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbmZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG5cdHZhciBjYWNoZWRNb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO1xuXHRpZiAoY2FjaGVkTW9kdWxlICE9PSB1bmRlZmluZWQpIHtcblx0XHRpZiAoY2FjaGVkTW9kdWxlLmVycm9yICE9PSB1bmRlZmluZWQpIHRocm93IGNhY2hlZE1vZHVsZS5lcnJvcjtcblx0XHRyZXR1cm4gY2FjaGVkTW9kdWxlLmV4cG9ydHM7XG5cdH1cblx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcblx0dmFyIG1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF0gPSB7XG5cdFx0Ly8gbm8gbW9kdWxlLmlkIG5lZWRlZFxuXHRcdC8vIG5vIG1vZHVsZS5sb2FkZWQgbmVlZGVkXG5cdFx0ZXhwb3J0czoge31cblx0fTtcblxuXHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cblx0dHJ5IHtcblx0XHRfX3dlYnBhY2tfbW9kdWxlc19fW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblx0fSBjYXRjaChlKSB7XG5cdFx0bW9kdWxlLmVycm9yID0gZTtcblx0XHR0aHJvdyBlO1xuXHR9XG5cblx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcblx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xufVxuXG4iLCIvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9ucyBmb3IgaGFybW9ueSBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSAoZXhwb3J0cywgZGVmaW5pdGlvbikgPT4ge1xuXHRmb3IodmFyIGtleSBpbiBkZWZpbml0aW9uKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sIGtleSkgJiYgIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBrZXkpKSB7XG5cdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZGVmaW5pdGlvbltrZXldIH0pO1xuXHRcdH1cblx0fVxufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIiwiLy8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gKGV4cG9ydHMpID0+IHtcblx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG5cdH1cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbn07IiwiLy8gc3RhcnR1cFxuLy8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4vLyBUaGlzIGVudHJ5IG1vZHVsZSBpcyByZWZlcmVuY2VkIGJ5IG90aGVyIG1vZHVsZXMgc28gaXQgY2FuJ3QgYmUgaW5saW5lZFxudmFyIF9fd2VicGFja19leHBvcnRzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDg2MjYpO1xuIl0sIm5hbWVzIjpbIl9faW1wb3J0RGVmYXVsdCIsInRoaXMiLCJtb2QiLCJfX2VzTW9kdWxlIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJSZXF1ZXN0IiwiUG9sbGluZyIsInRyYW5zcG9ydF9qc18xIiwiZGVidWdfMSIsInllYXN0X2pzXzEiLCJlbmdpbmVfaW9fcGFyc2VyXzEiLCJ4bWxodHRwcmVxdWVzdF9qc18xIiwiY29tcG9uZW50X2VtaXR0ZXJfMSIsInV0aWxfanNfMSIsImdsb2JhbFRoaXNfanNfMSIsImRlYnVnIiwiZGVmYXVsdCIsImVtcHR5IiwiaGFzWEhSMiIsIlhIUiIsInhkb21haW4iLCJyZXNwb25zZVR5cGUiLCJUcmFuc3BvcnQiLCJjb25zdHJ1Y3RvciIsIm9wdHMiLCJzdXBlciIsInBvbGxpbmciLCJsb2NhdGlvbiIsImlzU1NMIiwicHJvdG9jb2wiLCJwb3J0IiwieGQiLCJob3N0bmFtZSIsImZvcmNlQmFzZTY0Iiwic3VwcG9ydHNCaW5hcnkiLCJ3aXRoQ3JlZGVudGlhbHMiLCJjb29raWVKYXIiLCJjcmVhdGVDb29raWVKYXIiLCJuYW1lIiwiZG9PcGVuIiwicG9sbCIsInBhdXNlIiwib25QYXVzZSIsInJlYWR5U3RhdGUiLCJ3cml0YWJsZSIsInRvdGFsIiwib25jZSIsImRvUG9sbCIsImVtaXRSZXNlcnZlZCIsIm9uRGF0YSIsImRhdGEiLCJkZWNvZGVQYXlsb2FkIiwic29ja2V0IiwiYmluYXJ5VHlwZSIsImZvckVhY2giLCJwYWNrZXQiLCJ0eXBlIiwib25PcGVuIiwib25DbG9zZSIsImRlc2NyaXB0aW9uIiwib25QYWNrZXQiLCJkb0Nsb3NlIiwiY2xvc2UiLCJ3cml0ZSIsInBhY2tldHMiLCJlbmNvZGVQYXlsb2FkIiwiZG9Xcml0ZSIsInVyaSIsInNjaGVtYSIsInNlY3VyZSIsInF1ZXJ5IiwidGltZXN0YW1wUmVxdWVzdHMiLCJ0aW1lc3RhbXBQYXJhbSIsInllYXN0Iiwic2lkIiwiYjY0IiwiY3JlYXRlVXJpIiwicmVxdWVzdCIsImFzc2lnbiIsImZuIiwicmVxIiwibWV0aG9kIiwib24iLCJ4aHJTdGF0dXMiLCJjb250ZXh0Iiwib25FcnJvciIsImJpbmQiLCJwb2xsWGhyIiwiRW1pdHRlciIsImluc3RhbGxUaW1lckZ1bmN0aW9ucyIsInVuZGVmaW5lZCIsImNyZWF0ZSIsIl9hIiwicGljayIsInhociIsIm9wZW4iLCJleHRyYUhlYWRlcnMiLCJzZXREaXNhYmxlSGVhZGVyQ2hlY2siLCJpIiwiaGFzT3duUHJvcGVydHkiLCJzZXRSZXF1ZXN0SGVhZGVyIiwiZSIsImFkZENvb2tpZXMiLCJyZXF1ZXN0VGltZW91dCIsInRpbWVvdXQiLCJvbnJlYWR5c3RhdGVjaGFuZ2UiLCJwYXJzZUNvb2tpZXMiLCJzdGF0dXMiLCJvbkxvYWQiLCJzZXRUaW1lb3V0Rm4iLCJzZW5kIiwiZG9jdW1lbnQiLCJpbmRleCIsInJlcXVlc3RzQ291bnQiLCJyZXF1ZXN0cyIsImVyciIsImNsZWFudXAiLCJmcm9tRXJyb3IiLCJhYm9ydCIsInJlc3BvbnNlVGV4dCIsImF0dGFjaEV2ZW50IiwidW5sb2FkSGFuZGxlciIsImFkZEV2ZW50TGlzdGVuZXIiLCJ0ZXJtaW5hdGlvbkV2ZW50IiwiZ2xvYmFsVGhpc1NoaW0iLCJkZWNvZGUiLCJlbmNvZGUiLCJhbHBoYWJldCIsInNwbGl0IiwibWFwIiwicHJldiIsInNlZWQiLCJudW0iLCJlbmNvZGVkIiwiTWF0aCIsImZsb29yIiwic3RyIiwiZGVjb2RlZCIsImxlbmd0aCIsImNoYXJBdCIsIm5vdyIsIkRhdGUiLCJmb3JtYXRBcmdzIiwiYXJncyIsInVzZUNvbG9ycyIsIm5hbWVzcGFjZSIsIm1vZHVsZSIsImh1bWFuaXplIiwiZGlmZiIsImMiLCJjb2xvciIsInNwbGljZSIsImxhc3RDIiwicmVwbGFjZSIsIm1hdGNoIiwic2F2ZSIsIm5hbWVzcGFjZXMiLCJzdG9yYWdlIiwic2V0SXRlbSIsInJlbW92ZUl0ZW0iLCJlcnJvciIsImxvYWQiLCJyIiwiZ2V0SXRlbSIsInByb2Nlc3MiLCJlbnYiLCJERUJVRyIsIndpbmRvdyIsIl9fbndqcyIsIm5hdmlnYXRvciIsInVzZXJBZ2VudCIsInRvTG93ZXJDYXNlIiwibSIsImRvY3VtZW50RWxlbWVudCIsInN0eWxlIiwiV2Via2l0QXBwZWFyYW5jZSIsImNvbnNvbGUiLCJmaXJlYnVnIiwiZXhjZXB0aW9uIiwidGFibGUiLCJwYXJzZUludCIsImxvY2FsU3RvcmFnZSIsImxvY2Fsc3RvcmFnZSIsImRlc3Ryb3kiLCJ3YXJuZWQiLCJ3YXJuIiwiY29sb3JzIiwibG9nIiwiZm9ybWF0dGVycyIsImoiLCJ2IiwiSlNPTiIsInN0cmluZ2lmeSIsIm1lc3NhZ2UiLCJwYXJzZSIsInJlIiwicGFydHMiLCJzcmMiLCJiIiwiaW5kZXhPZiIsInN1YnN0cmluZyIsImV4ZWMiLCJzb3VyY2UiLCJob3N0IiwiYXV0aG9yaXR5IiwiaXB2NnVyaSIsInBhdGhOYW1lcyIsIm9iaiIsInBhdGgiLCJuYW1lcyIsInNsaWNlIiwicXVlcnlLZXkiLCIkMCIsIiQxIiwiJDIiLCJpbml0IiwiQ2hfMSIsImdhdGV3YXkiLCJpb1NlcnZlciIsInJlZGlzIiwiY2x1c3RlciIsImNsaWVudCIsImFjY2VwdCIsInJhbmtBbGwiLCJjaGlsZHJlbiIsIkNoQ29uZmlnTW9kZWwiLCJwYXJhbXMiLCJnZXRNeUNoQ29uZmlnIiwiY2hDb25maWdKc29uIiwibXlDb25uZWN0aW9uIiwibWF0Y2hpbmciLCJjaENvbmZpZyIsInBhcmVudExvY2F0aW9uIiwiY3VycmVudExvY2F0aW9uIiwiY29ubmVjdGlvbiIsImNoaWxkIiwicmVzdWx0IiwibWF0Y2hlZCIsImdldENoUm9vdHNDb25maWciLCJ0dW5lQ29ubmVjdGlvbiIsInJlY2N1cmVudEZpbmQiLCJwYXJlbnRDb25uZWN0aW9uIiwicm9vdHMiLCJmaW5kZWQiLCJmaW5kIiwiY3VycmVudENvbm5lY3Rpb24iLCJwdXNoIiwicm9vdENvbm5lY3Rpb24iLCJnZXRHYXRld2F5IiwiY2hSb290c0NvbmZpZyIsImdldFJvb3RzQ29ubmVjdGlvbnMiLCJpc0V4Y2x1ZGVUdW5lQ29ubmVjdGlvbiIsIm15Um9vdHNDb25uZWN0aW9ucyIsImNvbmZpZyIsImZpbHRlciIsImNyZWF0ZURlYnVnIiwicHJldlRpbWUiLCJuYW1lc3BhY2VzQ2FjaGUiLCJlbmFibGVkQ2FjaGUiLCJlbmFibGVPdmVycmlkZSIsImVuYWJsZWQiLCJzZWxmIiwiY3VyciIsIk51bWJlciIsIm1zIiwiY29lcmNlIiwidW5zaGlmdCIsImZvcm1hdCIsImZvcm1hdHRlciIsInZhbCIsImNhbGwiLCJhcHBseSIsInNlbGVjdENvbG9yIiwiZXh0ZW5kIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsImdldCIsInNldCIsImRlbGltaXRlciIsIm5ld0RlYnVnIiwidG9OYW1lc3BhY2UiLCJyZWdleHAiLCJ0b1N0cmluZyIsIkVycm9yIiwic3RhY2siLCJkaXNhYmxlIiwic2tpcHMiLCJqb2luIiwiZW5hYmxlIiwibGVuIiwiUmVnRXhwIiwidGVzdCIsImtleXMiLCJrZXkiLCJoYXNoIiwiY2hhckNvZGVBdCIsImFicyIsIkVSUk9SX1BBQ0tFVCIsIlBBQ0tFVF9UWVBFU19SRVZFUlNFIiwiUEFDS0VUX1RZUEVTIiwiZGVjb2RlUGFja2V0IiwiY29tbW9uc19qc18xIiwiYmFzZTY0X2FycmF5YnVmZmVyX2pzXzEiLCJ3aXRoTmF0aXZlQXJyYXlCdWZmZXIiLCJBcnJheUJ1ZmZlciIsImVuY29kZWRQYWNrZXQiLCJtYXBCaW5hcnkiLCJkZWNvZGVCYXNlNjRQYWNrZXQiLCJiYXNlNjQiLCJCbG9iIiwiYnVmZmVyIiwiZW5jb2RlUGFja2V0IiwiZW5jb2RlUGFja2V0VG9CaW5hcnkiLCJjYWxsYmFjayIsIndpdGhOYXRpdmVCbG9iIiwiYXJyYXlCdWZmZXIiLCJ0aGVuIiwidG9BcnJheSIsImlzVmlldyIsIlRFWFRfRU5DT0RFUiIsIlRleHRFbmNvZGVyIiwicHJvdG90eXBlIiwiZW5jb2RlQmxvYkFzQmFzZTY0IiwiZmlsZVJlYWRlciIsIkZpbGVSZWFkZXIiLCJvbmxvYWQiLCJjb250ZW50IiwicmVhZEFzRGF0YVVSTCIsIlVpbnQ4QXJyYXkiLCJieXRlT2Zmc2V0IiwiYnl0ZUxlbmd0aCIsImNoYXJzIiwibG9va3VwIiwiYXJyYXlidWZmZXIiLCJieXRlcyIsImVuY29kZWQxIiwiZW5jb2RlZDIiLCJlbmNvZGVkMyIsImVuY29kZWQ0IiwiYnVmZmVyTGVuZ3RoIiwicCIsImhhc19jb3JzX2pzXzEiLCJYTUxIdHRwUmVxdWVzdCIsImhhc0NPUlMiLCJjb25jYXQiLCJfX2NyZWF0ZUJpbmRpbmciLCJvIiwiayIsImsyIiwiX19zZXRNb2R1bGVEZWZhdWx0IiwiX19pbXBvcnRTdGFyIiwiTWFuYWdlciIsImVuZ2luZV9pb19jbGllbnRfMSIsInNvY2tldF9qc18xIiwicGFyc2VyIiwib25fanNfMSIsImJhY2tvMl9qc18xIiwibnNwcyIsInN1YnMiLCJyZWNvbm5lY3Rpb24iLCJyZWNvbm5lY3Rpb25BdHRlbXB0cyIsIkluZmluaXR5IiwicmVjb25uZWN0aW9uRGVsYXkiLCJyZWNvbm5lY3Rpb25EZWxheU1heCIsInJhbmRvbWl6YXRpb25GYWN0b3IiLCJiYWNrb2ZmIiwiQmFja29mZiIsIm1pbiIsIm1heCIsImppdHRlciIsIl9yZWFkeVN0YXRlIiwiX3BhcnNlciIsImVuY29kZXIiLCJFbmNvZGVyIiwiZGVjb2RlciIsIkRlY29kZXIiLCJfYXV0b0Nvbm5lY3QiLCJhdXRvQ29ubmVjdCIsImFyZ3VtZW50cyIsIl9yZWNvbm5lY3Rpb24iLCJfcmVjb25uZWN0aW9uQXR0ZW1wdHMiLCJfcmVjb25uZWN0aW9uRGVsYXkiLCJzZXRNaW4iLCJfcmFuZG9taXphdGlvbkZhY3RvciIsInNldEppdHRlciIsIl9yZWNvbm5lY3Rpb25EZWxheU1heCIsInNldE1heCIsIl90aW1lb3V0IiwibWF5YmVSZWNvbm5lY3RPbk9wZW4iLCJfcmVjb25uZWN0aW5nIiwiYXR0ZW1wdHMiLCJyZWNvbm5lY3QiLCJlbmdpbmUiLCJTb2NrZXQiLCJza2lwUmVjb25uZWN0Iiwib3BlblN1YkRlc3Ryb3kiLCJvbm9wZW4iLCJlcnJvclN1YiIsInRpbWVyIiwiYXV0b1VucmVmIiwidW5yZWYiLCJjbGVhclRpbWVvdXRGbiIsImNvbm5lY3QiLCJvbnBpbmciLCJvbmRhdGEiLCJvbmVycm9yIiwib25jbG9zZSIsIm9uZGVjb2RlZCIsImFkZCIsIm5leHRUaWNrIiwibnNwIiwiYWN0aXZlIiwiX2Rlc3Ryb3kiLCJfY2xvc2UiLCJfcGFja2V0IiwiZW5jb2RlZFBhY2tldHMiLCJvcHRpb25zIiwic3ViRGVzdHJveSIsImRpc2Nvbm5lY3QiLCJyZWFzb24iLCJyZXNldCIsImRlbGF5IiwiZHVyYXRpb24iLCJvbnJlY29ubmVjdCIsImF0dGVtcHQiLCJkZWZhdWx0QmluYXJ5VHlwZSIsInVzaW5nQnJvd3NlcldlYlNvY2tldCIsIldlYlNvY2tldCIsIlByb21pc2UiLCJyZXNvbHZlIiwiY2IiLCJNb3pXZWJTb2NrZXQiLCJtaXhpbiIsImV2ZW50IiwiX2NhbGxiYWNrcyIsIm9mZiIsInJlbW92ZUxpc3RlbmVyIiwicmVtb3ZlQWxsTGlzdGVuZXJzIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImNhbGxiYWNrcyIsImVtaXQiLCJBcnJheSIsImxpc3RlbmVycyIsImhhc0xpc3RlbmVycyIsIldUIiwid2Vic29ja2V0X2NvbnN0cnVjdG9yX2pzXzEiLCJXZWJUcmFuc3BvcnQiLCJ0cmFuc3BvcnQiLCJ0cmFuc3BvcnRPcHRpb25zIiwiY2xvc2VkIiwiY2F0Y2giLCJyZWFkeSIsImNyZWF0ZUJpZGlyZWN0aW9uYWxTdHJlYW0iLCJzdHJlYW0iLCJkZWNvZGVyU3RyZWFtIiwiY3JlYXRlUGFja2V0RGVjb2RlclN0cmVhbSIsIk1BWF9TQUZFX0lOVEVHRVIiLCJyZWFkZXIiLCJyZWFkYWJsZSIsInBpcGVUaHJvdWdoIiwiZ2V0UmVhZGVyIiwiZW5jb2RlclN0cmVhbSIsImNyZWF0ZVBhY2tldEVuY29kZXJTdHJlYW0iLCJwaXBlVG8iLCJ3cml0ZXIiLCJnZXRXcml0ZXIiLCJyZWFkIiwiZG9uZSIsImxhc3RQYWNrZXQiLCJQYWNrZXRUeXBlIiwiYmluYXJ5X2pzXzEiLCJpc19iaW5hcnlfanNfMSIsIlJFU0VSVkVEX0VWRU5UUyIsImlzT2JqZWN0IiwicmVwbGFjZXIiLCJFVkVOVCIsIkFDSyIsImhhc0JpbmFyeSIsImVuY29kZUFzU3RyaW5nIiwiZW5jb2RlQXNCaW5hcnkiLCJCSU5BUllfRVZFTlQiLCJCSU5BUllfQUNLIiwiaWQiLCJhdHRhY2htZW50cyIsImRlY29uc3RydWN0aW9uIiwiZGVjb25zdHJ1Y3RQYWNrZXQiLCJwYWNrIiwiYnVmZmVycyIsInJldml2ZXIiLCJyZWNvbnN0cnVjdG9yIiwiZGVjb2RlU3RyaW5nIiwiaXNCaW5hcnlFdmVudCIsIkJpbmFyeVJlY29uc3RydWN0b3IiLCJpc0JpbmFyeSIsInRha2VCaW5hcnlEYXRhIiwic3RhcnQiLCJidWYiLCJuZXh0IiwicGF5bG9hZCIsInRyeVBhcnNlIiwic3Vic3RyIiwiaXNQYXlsb2FkVmFsaWQiLCJDT05ORUNUIiwiRElTQ09OTkVDVCIsIkNPTk5FQ1RfRVJST1IiLCJpc0FycmF5IiwiZmluaXNoZWRSZWNvbnN0cnVjdGlvbiIsInJlY29uUGFjayIsImJpbkRhdGEiLCJyZWNvbnN0cnVjdFBhY2tldCIsIlRyYW5zcG9ydEVycm9yIiwicGFyc2Vxc19qc18xIiwiZGV0YWlscyIsIl9ob3N0bmFtZSIsIl9wb3J0IiwiX3F1ZXJ5IiwiZW5jb2RlZFF1ZXJ5IiwiX2RlY29uc3RydWN0UGFja2V0IiwicGxhY2Vob2xkZXIiLCJfcGxhY2Vob2xkZXIiLCJuZXdEYXRhIiwiX3JlY29uc3RydWN0UGFja2V0IiwicGFja2V0RGF0YSIsInRyYW5zcG9ydHMiLCJpbmRleF9qc18xIiwicGFyc2V1cmlfanNfMSIsIlR1bmVPcHRpb25fMSIsImdldENvbm5lY3Rpb24iLCJlbmRzV2l0aCIsInN0YXJ0c1dpdGgiLCJnZXRUdW5lT3B0aW9uU3RyaW5nIiwidHVuZU9wdGlvbiIsInR1bmVPcHRpb25OdW1iZXJzIiwidHVuZU9wdGlvbktleSIsInBhcnNlZFR1bmVPcHRpb24iLCJVUkxTZWFyY2hQYXJhbXMiLCJoYXNTbGFzaCIsImF0dHIiLCJyZWR1Y2UiLCJhY2MiLCJOQVRJVkVfU0VUX1RJTUVPVVQiLCJzZXRUaW1lb3V0IiwiTkFUSVZFX0NMRUFSX1RJTUVPVVQiLCJjbGVhclRpbWVvdXQiLCJ1c2VOYXRpdmVUaW1lcnMiLCJsIiwidXRmOExlbmd0aCIsImNlaWwiLCJzaXplIiwiQVBQX05BTUUiLCJQUk9EVUNUSU9OIiwiTE9DQUxIT1NUIiwiREVWRUxPUE1FTlQiLCJQUk9EVUNUSU9OX0RPTUFJTiIsIlBST0RVQ1RJT05fQVBJX0RPTUFJTiIsIkRFVkVMT1BNRU5UX0RPTUFJTiIsIkFXU19IT1NUX0tFWSIsIlBPUlRTIiwiSFRUUCIsIkhUVFBTIiwiREVWRUxPUE1FTlRfQ09WRVIiLCJERVZFTE9QTUVOVF9BUEkiLCJERVZFTE9QTUVOVF9DT01QT05FTlRTIiwiREVWRUxPUE1FTlRfVFVORSIsIkRFVkVMT1BNRU5UX0NMSUVOVCIsIlJFRElTIiwiTU9OR08iLCJJT19MQiIsIklPX1JPT1QiLCJTVUJfRE9NQUlOUyIsIldXVyIsIkFQSSIsIkRFU0MiLCJQT1JUQUwiLCJDTElFTlQiLCJBU1NFVFMiLCJTRVNTSU9OIiwiQVVUTyIsIk9XTiIsIk5FV1MiLCJCQU5ORVIiLCJDT1ZFUiIsIlJBTksiLCJFWFQiLCJDT01QT05FTlRTIiwiVFVORSIsIlRSQU5TQUNUSU9OIiwiQVVUSCIsIkFQUF9UWVBFUyIsIkVYVEVOU0lPTiIsIlVSTCIsInR3aXR0ZXIiLCJmYWNlYm9vayIsImFwcHN0b3JlIiwicGxheXN0b3JlIiwiY2hyb21lRXh0ZW5zaW9uIiwidGFsa25DbGllbnRKcyIsInRhbGtuQXBpSnMiLCJ0YWxrblJhbmtKcyIsIm5vSW5uZXJOb3RpZiIsImJhbm5lckNsYXNzIiwic3RvcmFnZUtleSIsImJhc2VLZXkiLCJwb3N0c1RpbWVsaW5lWmVybyIsInBvc3RzVGltZWxpbmUiLCJwb3N0c1NpbmdsZSIsInBvc3RzTXVsdGkiLCJwb3N0c0NoaWxkIiwicG9zdHNMb2dzIiwidGhyZWFkcyIsImNhY2hlZFNldFRpbWVvdXQiLCJjYWNoZWRDbGVhclRpbWVvdXQiLCJkZWZhdWx0U2V0VGltb3V0IiwiZGVmYXVsdENsZWFyVGltZW91dCIsInJ1blRpbWVvdXQiLCJmdW4iLCJjdXJyZW50UXVldWUiLCJxdWV1ZSIsImRyYWluaW5nIiwicXVldWVJbmRleCIsImNsZWFuVXBOZXh0VGljayIsImRyYWluUXVldWUiLCJydW4iLCJtYXJrZXIiLCJydW5DbGVhclRpbWVvdXQiLCJJdGVtIiwiYXJyYXkiLCJub29wIiwidGl0bGUiLCJicm93c2VyIiwiYXJndiIsInZlcnNpb24iLCJ2ZXJzaW9ucyIsImFkZExpc3RlbmVyIiwicHJlcGVuZExpc3RlbmVyIiwicHJlcGVuZE9uY2VMaXN0ZW5lciIsImJpbmRpbmciLCJjd2QiLCJjaGRpciIsImRpciIsInVtYXNrIiwiZ2VuZXJhdGVVbmlxdWVLZXkiLCJnZW5lcmF0ZVVuaXF1ZUtleVNlcGFyYXRvciIsImlzVmFsaWRLZXkiLCJJU19OT0RFIiwiSVNfQlJPV1NFUiIsImlzTm9kZVNlcnZlciIsImdldEVudlZhciIsInJlbGVhc2UiLCJsYWJlbCIsInNlcGVyYXRvciIsInJhbmRvbSIsImV2Iiwic29ja2V0X2lvX3BhcnNlcl8xIiwiZnJlZXplIiwiY29ubmVjdF9lcnJvciIsImRpc2Nvbm5lY3RpbmciLCJuZXdMaXN0ZW5lciIsImlvIiwiY29ubmVjdGVkIiwicmVjb3ZlcmVkIiwicmVjZWl2ZUJ1ZmZlciIsInNlbmRCdWZmZXIiLCJfcXVldWUiLCJfcXVldWVTZXEiLCJpZHMiLCJhY2tzIiwiZmxhZ3MiLCJhdXRoIiwiX29wdHMiLCJkaXNjb25uZWN0ZWQiLCJzdWJFdmVudHMiLCJvbnBhY2tldCIsInJldHJpZXMiLCJmcm9tUXVldWUiLCJ2b2xhdGlsZSIsIl9hZGRUb1F1ZXVlIiwiY29tcHJlc3MiLCJhY2siLCJwb3AiLCJfcmVnaXN0ZXJBY2tDYWxsYmFjayIsImlzVHJhbnNwb3J0V3JpdGFibGUiLCJub3RpZnlPdXRnb2luZ0xpc3RlbmVycyIsImFja1RpbWVvdXQiLCJlbWl0V2l0aEFjayIsIndpdGhFcnIiLCJyZWplY3QiLCJhcmcxIiwiYXJnMiIsInRyeUNvdW50IiwicGVuZGluZyIsInJlc3BvbnNlQXJncyIsInNoaWZ0IiwiX2RyYWluUXVldWUiLCJmb3JjZSIsIl9zZW5kQ29ubmVjdFBhY2tldCIsIl9waWQiLCJwaWQiLCJvZmZzZXQiLCJfbGFzdE9mZnNldCIsIm9uY29ubmVjdCIsIm9uZXZlbnQiLCJvbmFjayIsIm9uZGlzY29ubmVjdCIsImVtaXRFdmVudCIsIl9hbnlMaXN0ZW5lcnMiLCJsaXN0ZW5lciIsInNlbnQiLCJlbWl0QnVmZmVyZWQiLCJvbkFueSIsInByZXBlbmRBbnkiLCJvZmZBbnkiLCJsaXN0ZW5lcnNBbnkiLCJvbkFueU91dGdvaW5nIiwiX2FueU91dGdvaW5nTGlzdGVuZXJzIiwicHJlcGVuZEFueU91dGdvaW5nIiwib2ZmQW55T3V0Z29pbmciLCJsaXN0ZW5lcnNBbnlPdXRnb2luZyIsIkZ1bmN0aW9uIiwicHJvY2Vzc18xIiwic29ja2V0X2lvX2NsaWVudF8xIiwiQ2hDb25maWdfMSIsImNoX2NvbmZpZ19kZXZlbG9wbWVudF9qc29uXzEiLCJjaF9jb25maWdfcHJvZHVjdGlvbl9qc29uXzEiLCJCb290T3B0aW9uXzEiLCJTZXF1ZW5jZV8xIiwiY29uZl8xIiwiZGVmaW5lXzEiLCJ1dGlsc18xIiwiXzEiLCJCb29sZWFuIiwiSVNfRE9DS0VSIiwiaHJlZiIsIlRvU2VydmVyIiwiZG9tYWluIiwib3B0aW9uIiwidXBncmFkZSIsImZvcmNlTmV3Iiwid3NzV29ya2VyIiwidHVuZSIsInVudHVuZSIsImV4ZSIsIm9uQ29ubmVjdCIsIm9uQ29ubmVjdEVycm9yIiwib25SZXNwb25zZUVtaXQiLCJvblJlc3BvbnNlQm9hcmRjYXN0Iiwib2ZmUmVzcG9uc2UiLCJpb3MiLCJtZXRob2RzIiwidHVuZUlkIiwiYm9vdE9wdGlvbiIsInVybFNlYXJjaFBhcmFtcyIsImhvc3RQb3J0IiwiZW5kcG9pbnQiLCJIVFRQU19QUk9UT0NPTCIsInBvc3RNZXNzYWdlIiwic3RhdHVzVHVubmluZyIsInJlc3BvbnNlIiwiYXBpU3RhdGUiLCJfIiwic2VydmVyVG9BcGlUeXBlIiwiU0VSVkVSX1RPX0FQSV9FTUlUIiwiU0VSVkVSX1RPX0FQSV9CUk9BRENBU1QiLCJUcmFuc2Zvcm1TdHJlYW0iLCJ0cmFuc2Zvcm0iLCJjb250cm9sbGVyIiwiZW5jb2RlUGFja2V0X2pzXzEiLCJwYXlsb2FkTGVuZ3RoIiwiaGVhZGVyIiwiRGF0YVZpZXciLCJzZXRVaW50OCIsInZpZXciLCJzZXRVaW50MTYiLCJzZXRCaWdVaW50NjQiLCJCaWdJbnQiLCJlbnF1ZXVlIiwibWF4UGF5bG9hZCIsIlRFWFRfREVDT0RFUiIsIlRleHREZWNvZGVyIiwiY2h1bmtzIiwic3RhdGUiLCJleHBlY3RlZExlbmd0aCIsImNodW5rIiwidG90YWxMZW5ndGgiLCJjb25jYXRDaHVua3MiLCJoZWFkZXJBcnJheSIsImdldFVpbnQxNiIsIm4iLCJnZXRVaW50MzIiLCJwb3ciLCJkZWNvZGVQYWNrZXRfanNfMSIsIlNFUEFSQVRPUiIsIlN0cmluZyIsImZyb21DaGFyQ29kZSIsImNvdW50IiwiZW5jb2RlZFBheWxvYWQiLCJkZWNvZGVkUGFja2V0IiwiU2VxdWVuY2UiLCJUQUxLTl9QUk9UT0NPTCIsIkhUVFBfUFJPVE9DT0wiLCJXU1NfUFJPVE9DT0wiLCJVTktOT1dOX1BST1RPQ09MIiwiRU1JVF9NRV9LRVkiLCJBUElfU0VQQVJBVEVfSU9fVFlQRV9TVEFSVCIsIkFQSV9TRVBBUkFURV9JT19UWVBFX0VORCIsIkFQSV9SRVFVRVNUX1RZUEUiLCJBUElfUkVTUE9OU0VfVFlQRV9FTUlUIiwiQVBJX1JFU1BPTlNFX1RZUEVfQlJPQURDQVNUIiwiQVBJX1NFVFVQIiwiVU5LTk9XTiIsIkNPTk5FQ1RJT05fU0VSVkVSX0tFWSIsIkFQSV9UT19TRVJWRVJfUkVRVUVTVCIsIk1FVEhPRF9DT0xPTiIsIkFQSV9UT19DTElFTlRfUkVRVUVTVCIsIkFQSV9UT19DTElFTlRfRU1JVCIsIkFQSV9UT19DTElFTlRfQlJPQURDQVNUIiwiQVBJX0JST0FEQ0FTVF9DQUxMQkFDSyIsIlJFRFVYX0FDVElPTl9LRVkiLCJBRERfQ0xJRU5UX0FDVElPTl9QUkVGSVgiLCJyZXF1ZXN0UHVibGljU3RhdGUiLCJ0dW5lQ2giLCJyZXF1ZXN0UHJpdmF0ZVN0YXRlIiwicmVzcG9uc2VFbWl0U3RhdGUiLCJ1c2VyIiwic2V0dGluZyIsInRocmVhZCIsInJlc3BvbnNlQnJvYWRjYXN0U3RhdGUiLCJmZXRjaFBvc3RzIiwiYXBwIiwicG9zdHMiLCJnZXRNb3JlIiwidXBkYXRlVGhyZWFkIiwiY2hhbmdlVGhyZWFkIiwiY2hhbmdlVGhyZWFkRGV0YWlsIiwiYWRkRmluZENoaWxkIiwiZmV0Y2hSYW5rIiwicmFuayIsInBvc3QiLCJ1cGRhdGVUaHJlYWRTZXJ2ZXJNZXRhcyIsImdldFNlcXVlbmNlQWN0aW9uTWFwIiwic3BsaXRlZCIsInNlcXVlbmNlIiwiYWN0aW9uVHlwZSIsImFjdGlvbk5hbWUiLCJ1cGRhdGVDYWxsYmFja0V4ZUNvbmRpdGlvbk1hcCIsImFjdGl2ZVJlc3BvbnNlTWFwIiwiYnJvYWRjYXN0Iiwic2VxdWVuY2VNYXAiLCJjb252ZXJ0U2VydmVyVG9BcGlJb1R5cGUiLCJpRnJhbWVJZCIsImNvbnZlcnRFeHRUb0NsaWVudEFjdGlvblR5cGUiLCJjb252ZXJ0QXBpVG9DbGllbnRBY3Rpb25UeXBlIiwiZ2V0UmVxdWVzdFN0YXRlIiwicmVkdXhTdGF0ZSIsInJlcXVlc3RQYXJhbXMiLCJlbmRwb2ludEtleSIsInJlcXVlc3RTdGF0ZSIsInN0YXRlS2V5IiwiY29sdW1uTmFtZSIsImdldFJlc3BvbnNlU3RhdGUiLCJ1cGRhdGVTdGF0ZSIsInJlc3BvbnNlU2NoZW1hIiwicmVzcG9uc2VTdGF0ZSIsInVwZGF0ZVN0YXRlS2V5IiwiY29sdW1uTmFtZXMiLCJ1cGRhdGVTdGF0ZVZhbHVlIiwidG9KU09OIiwiX2lkIiwiX192IiwiZ2V0UmVxdWVzdEFjdGlvblN0YXRlIiwicmVxdWVzdFBhcmFtczEiLCJyZXF1ZXN0UGFyYW1zMiIsInMiLCJoIiwiZCIsInciLCJwbHVyYWwiLCJtc0FicyIsImlzUGx1cmFsIiwicm91bmQiLCJwYXJzZUZsb2F0IiwiaXNGaW5pdGUiLCJsb25nIiwiZm10U2hvcnQiLCJ1cmwiLCJsb2MiLCJnZXRIb3N0TmFtZSIsImhvc3ROYW1lIiwiZ2V0RW52IiwiZmlsZXMiLCJhcGkiLCJ3c1dvcmtlciIsImV4dCIsImNvdmVyIiwiY29tcG9uZW50cyIsImlzRGV2Iiwid3d3VVJMIiwiY292ZXJVUkwiLCJhcGlVUkwiLCJhcGlBY2Nlc3NVUkwiLCJjbGllbnRVUkwiLCJjb21wb25lbnRzVVJMIiwiZGVzY1VSTCIsInBvcnRhbFVSTCIsImFzc2V0c1VSTCIsImFzc2V0c0ltZ1BhdGgiLCJjb25mIiwiYXV0b1VSTCIsImV4dFVSTCIsImNvbXBVUkwiLCJDT01QIiwib3duVVJMIiwibmV3c1VSTCIsInR1bmVVUkwiLCJiYW5uZXJVUkwiLCJ0cmFuc2FjdGlvblVSTCIsImF1dGhVUkwiLCJhc3NldHNDb3ZlclBhdGgiLCJhc3NldHNJY29uUGF0aCIsImFzc2V0c0pzUGF0aCIsInNlc3Npb25VUkwiLCJhcGlWZXIiLCJmYXZpY29uIiwibHBMYW5ndWFnZXMiLCJkZWZhdWx0QmlydGhkYXlVbml4dGltZSIsImZpbmRPbmVUaHJlYWRBY3RpdmVIb3VyIiwiZmluZE9uZVBvc3RDbnQiLCJmaW5kT25lTGltaXRDbnQiLCJvZ3BJbWFnZXMiLCJIdG1sIiwiTXVzaWMiLCJWaWRlbyIsImRlZmF1bHRGYXZpY29uIiwiZW52TmFtZSIsIkhPU1ROQU1FIiwiSE9TVCIsIk5PREVfSE9TVE5BTUUiLCJ0cmltIiwiZ2V0Q29ubmVjdGlvbnNPcHRpb25zIiwiY29ubmVjdGlvbnMiLCJsaXZlQ250Iiwic2VydmVyIiwiYXVkaW9zIiwidmlkZW9zIiwiaXNTZWxmRXhjbHVkZSIsImlzU29ydFVwcGVyTGF5ZXIiLCJDaE1vZGVsIiwiZ2V0UGFyZW50Q29ubmVjdGlvbiIsImZpeENvbm5lY3Rpb24iLCJyZXBsYWNlZENvbm5lY3Rpb24iLCJsYXN0U2xhc2hJbmRleCIsImxhc3RJbmRleE9mIiwiZ2V0VG9wQ29ubmVjdGlvbiIsInNlcCIsInNlcGFyZXRvciIsImdldENvbm5lY3Rpb25Gcm9tVXJsIiwicXVlcnlTdHJpbmciLCJyYXdUdW5lSWQiLCJnZXRDb25uZWN0aW9uRnJvbVR1bmVJZCIsImRlY29kZVVSSUNvbXBvbmVudCIsImVzY2FwZWRTZXBhcmF0b3IiLCJwYXR0ZXJuIiwiZ2V0RmF2aWNvbiIsImdldENvbm5lY3Rpb25zIiwiY29ubmVjdGlvbkFyciIsImNvbm5lY3Rpb25TZXBhcmF0b3IiLCJwYXJ0IiwiY29ubmVjdGlvblBhcnQiLCJzZWdtZW50IiwiYWRkQ29ubmVjdGlvbiIsInNvcnQiLCJhIiwiZ2V0TXlDb25uZWN0aW9uQ2xhc3MiLCJzdGFydENvbm5lY3Rpb24iLCJlbmRDb25uZWN0aW9uIiwibXlDb25uZWN0aW9uQ2xhc3MiLCJsb29wQ29ubmVjdGlvbnMiLCJpc1B1c2giLCJnZXRUeXBlIiwiZGVmdWx0VHlwZSIsInBsYWluVHlwZSIsImlzTWVkaWFDaCIsImdldFNlcnZlciIsImRlZmF1bHRQcm90b2NvbCIsImdldENoUGFyYW1zIiwiX2Nvbm5lY3Rpb24iLCJmYWN0b3IiLCJyYW5kIiwiZGV2aWF0aW9uIiwidXJsX2pzXzEiLCJtYW5hZ2VyX2pzXzEiLCJjYWNoZSIsInBhcnNlZCIsInNhbWVOYW1lc3BhY2UiLCJtdWx0aXBsZXgiLCJ3cml0ZUJ1ZmZlciIsInByZXZCdWZmZXJMZW4iLCJhZ2VudCIsInJlbWVtYmVyVXBncmFkZSIsImFkZFRyYWlsaW5nU2xhc2giLCJyZWplY3RVbmF1dGhvcml6ZWQiLCJwZXJNZXNzYWdlRGVmbGF0ZSIsInRocmVzaG9sZCIsImNsb3NlT25CZWZvcmV1bmxvYWQiLCJ1cGdyYWRlcyIsInBpbmdJbnRlcnZhbCIsInBpbmdUaW1lb3V0IiwicGluZ1RpbWVvdXRUaW1lciIsImJlZm9yZXVubG9hZEV2ZW50TGlzdGVuZXIiLCJvZmZsaW5lRXZlbnRMaXN0ZW5lciIsImNyZWF0ZVRyYW5zcG9ydCIsIkVJTyIsInByaW9yV2Vic29ja2V0U3VjY2VzcyIsInNldFRyYW5zcG9ydCIsIm9uRHJhaW4iLCJwcm9iZSIsImZhaWxlZCIsIm9uVHJhbnNwb3J0T3BlbiIsIm1zZyIsInVwZ3JhZGluZyIsImZsdXNoIiwiZnJlZXplVHJhbnNwb3J0Iiwib25UcmFuc3BvcnRDbG9zZSIsIm9udXBncmFkZSIsInRvIiwicmVzZXRQaW5nVGltZW91dCIsIm9uSGFuZHNoYWtlIiwic2VuZFBhY2tldCIsImNvZGUiLCJmaWx0ZXJVcGdyYWRlcyIsImdldFdyaXRhYmxlUGFja2V0cyIsInBheWxvYWRTaXplIiwiY2xlYW51cEFuZENsb3NlIiwid2FpdEZvclVwZ3JhZGUiLCJmaWx0ZXJlZFVwZ3JhZGVzIiwic3RhdHVzRGlzcGF0Y2hlZCIsInN0YXR1c0Rpc3BhdGNoaW5nIiwic3RhdHVzUmVzcG9uc2VkIiwic3RhdHVzUmVzcG9uc2luZyIsInN0YXR1c1JlcXVlc3RpbmciLCJzdGF0dXNVblR1bm5pbmciLCJzdGF0dXNUdW5lZCIsIlRvU2VydmVyXzEiLCJXc3NXb3JrZXIiLCJ3b3JrZXIiLCJvbk1lc3NhZ2UiLCJvbk1lc3NhZ2VFcnJvciIsIm9ubWVzc2FnZSIsInRvU2VydmVyIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwicXMiLCJxcnkiLCJwYWlycyIsInBhaXIiLCJXUyIsImlzUmVhY3ROYXRpdmUiLCJwcm9kdWN0IiwiY2hlY2siLCJwcm90b2NvbHMiLCJoZWFkZXJzIiwid3MiLCJhZGRFdmVudExpc3RlbmVycyIsIl9zb2NrZXQiLCJjbG9zZUV2ZW50IiwiQnVmZmVyIiwid2l0aE5hdGl2ZUZpbGUiLCJGaWxlIiwicG9sbGluZ19qc18xIiwid2Vic29ja2V0X2pzXzEiLCJ3ZWJ0cmFuc3BvcnRfanNfMSIsIndlYnNvY2tldCIsIndlYnRyYW5zcG9ydCIsInR1bmVPcHRpb25NZXRob2RzIiwidHVuZU9wdGlvbkRldGFpbE1ldGEiLCJ0dW5lT3B0aW9uRGV0YWlsRW1vdGlvbiIsInR1bmVPcHRpb25SYW5rQWxsSGFzTGF0ZXN0UG9zdCIsInR1bmVPcHRpb25SYW5rSGFzTGF0ZXN0UG9zdCIsInR1bmVPcHRpb25IYXNMYXRlc3RQb3N0IiwidHVuZU9wdGlvblJhbmtBbGwiLCJ0dW5lT3B0aW9uUmFuayIsInR1bmVPcHRpb25Qb3N0cyIsImdldFR1bmVPcHRpb25Gcm9tVXJsIiwiX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsIm1vZHVsZUlkIiwiY2FjaGVkTW9kdWxlIiwiX193ZWJwYWNrX21vZHVsZXNfXyIsImRlZmluaXRpb24iLCJwcm9wIiwiU3ltYm9sIiwidG9TdHJpbmdUYWciXSwic291cmNlUm9vdCI6IiJ9',"Worker",void 0,g.p+"WssWorker.js")}},2513:(I,t,g)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const e=g(9633);t.default=(I=e.inits.chDetail,t)=>t.chDetail?t.chDetail:I},2662:(I,t,g)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.decodePacket=void 0;const e=g(2046),C=g(2745),c="function"==typeof ArrayBuffer;t.decodePacket=(I,t)=>{if("string"!=typeof I)return{type:"message",data:i(I,t)};const g=I.charAt(0);return"b"===g?{type:"message",data:s(I.substring(1),t)}:e.PACKET_TYPES_REVERSE[g]?I.length>1?{type:e.PACKET_TYPES_REVERSE[g],data:I.substring(1)}:{type:e.PACKET_TYPES_REVERSE[g]}:e.ERROR_PACKET};const s=(I,t)=>{if(c){const g=(0,C.decode)(I);return i(g,t)}return{base64:!0,data:I}},i=(I,t)=>"blob"===t?I instanceof Blob?I:new Blob([I]):I instanceof ArrayBuffer?I:I.buffer},2673:(I,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=(I=[],t)=>{switch(t.type){case"API_TO_SERVER[REQUEST]:changeThread":return[];case"SERVER_TO_API[EMIT]:fetchPosts":case"SERVER_TO_API[BROADCAST]:posts":if(t.postsTimelineStock&&t.postsTimelineStock.length>0&&t.tuneCh.connection===t.postsTimelineStock[0].connection)return[...I,...t.postsTimelineStock];break;case"SERVER_TO_API[EMIT]:getMore":if(t.postsTimelineStock&&t.postsTimelineStock.length>0)return[...t.postsTimelineStock,...I]}return I}},2686:(I,t,g)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.encodePacket=void 0,t.encodePacketToBinary=function(I,t){return C&&I.data instanceof Blob?I.data.arrayBuffer().then(l).then(t):c&&(I.data instanceof ArrayBuffer||s(I.data))?t(l(I.data)):void i(I,!1,I=>{B||(B=new TextEncoder),t(B.encode(I))})};const e=g(2046),C="function"==typeof Blob||"undefined"!=typeof Blob&&"[object BlobConstructor]"===Object.prototype.toString.call(Blob),c="function"==typeof ArrayBuffer,s=I=>"function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(I):I&&I.buffer instanceof ArrayBuffer,i=({type:I,data:t},g,i)=>C&&t instanceof Blob?g?i(t):F(t,i):c&&(t instanceof ArrayBuffer||s(t))?g?i(t):F(new Blob([t]),i):i(e.PACKET_TYPES[I]+(t||""));t.encodePacket=i;const F=(I,t)=>{const g=new FileReader;return g.onload=function(){const I=g.result.split(",")[1];t("b"+(I||""))},g.readAsDataURL(I)};function l(I){return I instanceof Uint8Array?I:I instanceof ArrayBuffer?new Uint8Array(I):new Uint8Array(I.buffer,I.byteOffset,I.byteLength)}let B},2745:(I,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.decode=t.encode=void 0;const g="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",e="undefined"==typeof Uint8Array?[]:new Uint8Array(256);for(let I=0;I<64;I++)e[g.charCodeAt(I)]=I;t.encode=I=>{let t,e=new Uint8Array(I),C=e.length,c="";for(t=0;t>2],c+=g[(3&e[t])<<4|e[t+1]>>4],c+=g[(15&e[t+1])<<2|e[t+2]>>6],c+=g[63&e[t+2]];return C%3==2?c=c.substring(0,c.length-1)+"=":C%3==1&&(c=c.substring(0,c.length-2)+"=="),c},t.decode=I=>{let t,g,C,c,s,i=.75*I.length,F=I.length,l=0;"="===I[I.length-1]&&(i--,"="===I[I.length-2]&&i--);const B=new ArrayBuffer(i),n=new Uint8Array(B);for(t=0;t>4,n[l++]=(15&C)<<4|c>>2,n[l++]=(3&c)<<6|63&s;return B}},2837:(I,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=(I=[],t)=>{const{posts:g,rank:e,tuneCh:C}=t;let c=g?.length||0,s=e?.length||0;const i=(I,t)=>C?I.connection===C.connection||t.connection===C.connection?0:I.liveCntt.liveCnt?-1:0:0;switch(t.type){case"SERVER_TO_API[EMIT]:fetchPosts":if(C&&g)return 0===c?I:I.map(I=>C.connection===I.connection?{...I,stampId:g[c-1].stampId,post:g[c-1].content}:I);case"SERVER_TO_API[BROADCAST]:tune":case"SERVER_TO_API[BROADCAST]:changeThread":case"SERVER_TO_API[BROADCAST]:disconnect":if(C&&e)return[...e];case"SERVER_TO_API[BROADCAST]:posts":if(g)return I.map(I=>g[0].connection===I.connection?{...I,latestPost:g[0]}:I);case"SERVER_TO_API[EMIT]:rank":if(I&&I.length>0&&e&&s>0){const t=[];let g=e[0];for(let C=0;Cg.updateTime?c:g,c.connection===I[0].connection&&(c={...c,liveCnt:I[0].liveCnt}),t.push(c)}return t.sort(i),t[0].content=g.content,t[0].stampId=g.stampId,t}return t.rank?t.rank:I;default:return t.rank?t.rank:I}}},2885:I=>{"use strict";var t,g=Object.defineProperty,e=Object.getOwnPropertyDescriptor,C=Object.getOwnPropertyNames,c=Object.prototype.hasOwnProperty,s={};((I,t)=>{for(var e in t)g(I,e,{get:t[e],enumerable:!0})})(s,{createSelector:()=>w,createSelectorCreator:()=>v,createStructuredSelector:()=>f,lruMemoize:()=>N,referenceEqualityCheck:()=>W,setGlobalDevModeChecks:()=>F,unstable_autotrackMemoize:()=>S,weakMapMemoize:()=>k}),I.exports=(t=s,((I,t,s,i)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of C(t))c.call(I,s)||undefined===s||g(I,s,{get:()=>t[s],enumerable:!(i=e(t,s))||i.enumerable});return I})(g({},"__esModule",{value:!0}),t));var i={inputStabilityCheck:"once",identityFunctionCheck:"once"},F=I=>{Object.assign(i,I)},l=Symbol("NOT_FOUND");function B(I,t="expected a function, instead received "+typeof I){if("function"!=typeof I)throw new TypeError(t)}var n=I=>Array.isArray(I)?I:[I];var Q=0,A=null,U=class{revision=Q;_value;_lastValue;_isEqual=d;constructor(I,t=d){this._value=this._lastValue=I,this._isEqual=t}get value(){return A?.add(this),this._value}set value(I){this.value!==I&&(this._value=I,this.revision=++Q)}};function d(I,t){return I===t}var o=class{_cachedValue;_cachedRevision=-1;_deps=[];hits=0;fn;constructor(I){this.fn=I}clear(){this._cachedValue=void 0,this._cachedRevision=-1,this._deps=[],this.hits=0}get value(){if(this.revision>this._cachedRevision){const{fn:I}=this,t=new Set,g=A;A=t,this._cachedValue=I(),A=g,this.hits++,this._deps=Array.from(t),this._cachedRevision=this.revision}return A?.add(this),this._cachedValue}get revision(){return Math.max(...this._deps.map(I=>I.revision),0)}};function V(I){return I instanceof U||console.warn("Not a valid cell! ",I),I.value}var b=(I,t)=>!1;function a(){return function(I,t=d){return new U(null,t)}(0,b)}function u(I,t){!function(I,t){if(!(I instanceof U))throw new TypeError("setValue must be passed a tracked store created with `createStorage`.");I.value=I._lastValue=t}(I,t)}var r=I=>{let t=I.collectionTag;null===t&&(t=I.collectionTag=a()),V(t)},G=I=>{const t=I.collectionTag;null!==t&&u(t,null)},x=(Symbol(),0),Z=Object.getPrototypeOf({}),R=class{constructor(I){this.value=I,this.value=I,this.tag.value=I}proxy=new Proxy(this,X);tag=a();tags={};children={};collectionTag=null;id=x++},X={get:(I,t)=>function(){const{value:g}=I,e=Reflect.get(g,t);if("symbol"==typeof t)return e;if(t in Z)return e;if("object"==typeof e&&null!==e){let g=I.children[t];return void 0===g&&(g=I.children[t]=y(e)),g.tag&&V(g.tag),g.proxy}{let g=I.tags[t];return void 0===g&&(g=I.tags[t]=a(),g.value=e),V(g),e}}(),ownKeys:I=>(r(I),Reflect.ownKeys(I.value)),getOwnPropertyDescriptor:(I,t)=>Reflect.getOwnPropertyDescriptor(I.value,t),has:(I,t)=>Reflect.has(I.value,t)},L=class{constructor(I){this.value=I,this.value=I,this.tag.value=I}proxy=new Proxy([this],h);tag=a();tags={};children={};collectionTag=null;id=x++},h={get:([I],t)=>("length"===t&&r(I),X.get(I,t)),ownKeys:([I])=>X.ownKeys(I),getOwnPropertyDescriptor:([I],t)=>X.getOwnPropertyDescriptor(I,t),has:([I],t)=>X.has(I,t)};function y(I){return Array.isArray(I)?new L(I):new R(I)}function m(I,t){const{value:g,tags:e,children:C}=I;if(I.value=t,Array.isArray(g)&&Array.isArray(t)&&g.length!==t.length)G(I);else if(g!==t){let e=0,C=0,c=!1;for(const I in g)e++;for(const I in t)if(C++,!(I in g)){c=!0;break}(c||e!==C)&&G(I)}for(const C in e){const c=g[C],s=t[C];c!==s&&(G(I),u(e[C],s)),"object"==typeof s&&null!==s&&delete e[C]}for(const I in C){const g=C[I],e=t[I];g.value!==e&&("object"==typeof e&&null!==e?m(g,e):(p(g),delete C[I]))}}function p(I){I.tag&&u(I.tag,null),G(I);for(const t in I.tags)u(I.tags[t],null);for(const t in I.children)p(I.children[t])}var W=(I,t)=>I===t;function E(I){return function(t,g){if(null===t||null===g||t.length!==g.length)return!1;const{length:e}=t;for(let C=0;Ct&&I(t.key,g)?t.value:l,put(I,g){t={key:I,value:g}},getEntries:()=>t?[t]:[],clear(){t=void 0}}}(s):function(I,t){let g=[];function e(I){const e=g.findIndex(g=>t(I,g.key));if(e>-1){const I=g[e];return e>0&&(g.splice(e,1),g.unshift(I)),I.value}return l}return{get:e,put:function(t,C){e(t)===l&&(g.unshift({key:t,value:C}),g.length>I&&g.pop())},getEntries:function(){return g},clear:function(){g=[]}}}(C,s);function B(){let t=F.get(arguments);if(t===l){if(t=I.apply(null,arguments),i++,c){const I=F.getEntries().find(I=>c(I.value,t));I&&(t=I.value,0!==i&&i--)}F.put(arguments,t)}return t}return B.clearCache=()=>{F.clear(),B.resetResultsCount()},B.resultsCount=()=>i,B.resetResultsCount=()=>{i=0},B}function S(I){const t=y([]);let g=null;const e=E(W),C=(B(c=()=>I.apply(null,t.proxy),"the first parameter to `createCache` must be a function"),new o(c));var c;function s(){return e(g,arguments)||(m(t,arguments),g=arguments),C.value}return s.clearCache=()=>C.clear(),s}var Y="undefined"!=typeof WeakRef?WeakRef:class{constructor(I){this.value=I}deref(){return this.value}},J=0,H=1;function T(){return{s:J,v:void 0,o:null,p:null}}function k(I,t={}){let g=T();const{resultEqualityCheck:e}=t;let C,c=0;function s(){let t=g;const{length:s}=arguments;for(let I=0,g=s;I{g=T(),s.resetResultsCount()},s.resultsCount=()=>c,s.resetResultsCount=()=>{c=0},s}function v(I,...t){const g="function"==typeof I?{memoize:I,memoizeOptions:t}:I,e=(...I)=>{let t,e=0,C=0,c={},s=I.pop();"object"==typeof s&&(c=s,s=I.pop()),B(s,`createSelector expects an output function after the inputs, but received: [${typeof s}]`);const i={...g,...c},{memoize:F,memoizeOptions:l=[],argsMemoize:Q=k,argsMemoizeOptions:A=[],devModeChecks:U={}}=i,d=n(l),o=n(A),V=function(I){const t=Array.isArray(I[0])?I[0]:I;return function(I,t="expected all items to be functions, instead received the following types: "){if(!I.every(I=>"function"==typeof I)){const g=I.map(I=>"function"==typeof I?`function ${I.name||"unnamed"}()`:typeof I).join(", ");throw new TypeError(`${t}[${g}]`)}}(t,"createSelector expects all input-selectors to be functions, but received the following types: "),t}(I),b=F(function(){return e++,s.apply(null,arguments)},...d),a=Q(function(){C++;const I=function(I,t){const g=[],{length:e}=I;for(let C=0;CC,resetDependencyRecomputations:()=>{C=0},lastResult:()=>t,recomputations:()=>e,resetRecomputations:()=>{e=0},memoize:F,argsMemoize:Q})};return Object.assign(e,{withTypes:()=>e}),e}var w=v(k),f=Object.assign((I,t=w)=>{!function(I,t="expected an object, instead received "+typeof I){if("object"!=typeof I)throw new TypeError(t)}(I,"createStructuredSelector expects first argument to be an object where each property is a selector, instead received a "+typeof I);const g=Object.keys(I);return t(g.map(t=>I[t]),(...I)=>I.reduce((I,t,e)=>(I[g[e]]=t,I),{}))},{withTypes:()=>f})},3062:()=>{},3519:(I,t,g)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createCookieJar=t.XHR=void 0;const e=g(4110),C=g(6235);t.XHR=function(I){const t=I.xdomain;try{if("undefined"!=typeof XMLHttpRequest&&(!t||e.hasCORS))return new XMLHttpRequest}catch(I){}if(!t)try{return new(C.globalThisShim[["Active"].concat("Object").join("X")])("Microsoft.XMLHTTP")}catch(I){}},t.createCookieJar=function(){}},3569:(I,t,g)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const e=g(9633);t.default=class{constructor(I={}){this.bootOption=I.bootOption||e.inits.bootOption,this.tuneCh=I.tuneCh||e.inits.ch,this.rank=I.rank||[],this.rankAll=I.rankAll||[],this.posts=I.posts||[],this.postsTimeline=I.postsTimeline||[],this.postsTimelineStock=I.postsTimelineStock||[],this.chDetail=I.chDetail||e.inits.chDetail,this.logs=[]}}},3606:(I,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const g={};t.default=I=>t=>e=>{if(!(I=>"object"==typeof I&&null!==I&&"type"in I)(e))return t(e);{const C=I.getState();g[e.type]&&(e=g[e.type](C,e)),t(e)}}},3776:function(I,t,g){"use strict";var e=this&&this.__createBinding||(Object.create?function(I,t,g,e){void 0===e&&(e=g),Object.defineProperty(I,e,{enumerable:!0,get:function(){return t[g]}})}:function(I,t,g,e){void 0===e&&(e=g),I[e]=t[g]}),C=this&&this.__setModuleDefault||(Object.create?function(I,t){Object.defineProperty(I,"default",{enumerable:!0,value:t})}:function(I,t){I.default=t}),c=this&&this.__importStar||function(I){if(I&&I.__esModule)return I;var t={};if(null!=I)for(var g in I)"default"!==g&&Object.prototype.hasOwnProperty.call(I,g)&&e(t,I,g);return C(t,I),t},s=this&&this.__importDefault||function(I){return I&&I.__esModule?I:{default:I}};Object.defineProperty(t,"__esModule",{value:!0}),t.Manager=void 0;const i=g(4956),F=g(6214),l=c(g(4627)),B=g(5942),n=g(7743),Q=g(4454),A=s(g(9368)).default("socket.io-client:manager");class U extends Q.Emitter{constructor(I,t){var g;super(),this.nsps={},this.subs=[],I&&"object"==typeof I&&(t=I,I=void 0),(t=t||{}).path=t.path||"/socket.io",this.opts=t,i.installTimerFunctions(this,t),this.reconnection(!1!==t.reconnection),this.reconnectionAttempts(t.reconnectionAttempts||1/0),this.reconnectionDelay(t.reconnectionDelay||1e3),this.reconnectionDelayMax(t.reconnectionDelayMax||5e3),this.randomizationFactor(null!==(g=t.randomizationFactor)&&void 0!==g?g:.5),this.backoff=new n.Backoff({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(null==t.timeout?2e4:t.timeout),this._readyState="closed",this.uri=I;const e=t.parser||l;this.encoder=new e.Encoder,this.decoder=new e.Decoder,this._autoConnect=!1!==t.autoConnect,this._autoConnect&&this.open()}reconnection(I){return arguments.length?(this._reconnection=!!I,this):this._reconnection}reconnectionAttempts(I){return void 0===I?this._reconnectionAttempts:(this._reconnectionAttempts=I,this)}reconnectionDelay(I){var t;return void 0===I?this._reconnectionDelay:(this._reconnectionDelay=I,null===(t=this.backoff)||void 0===t||t.setMin(I),this)}randomizationFactor(I){var t;return void 0===I?this._randomizationFactor:(this._randomizationFactor=I,null===(t=this.backoff)||void 0===t||t.setJitter(I),this)}reconnectionDelayMax(I){var t;return void 0===I?this._reconnectionDelayMax:(this._reconnectionDelayMax=I,null===(t=this.backoff)||void 0===t||t.setMax(I),this)}timeout(I){return arguments.length?(this._timeout=I,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&0===this.backoff.attempts&&this.reconnect()}open(I){if(A("readyState %s",this._readyState),~this._readyState.indexOf("open"))return this;A("opening %s",this.uri),this.engine=new i.Socket(this.uri,this.opts);const t=this.engine,g=this;this._readyState="opening",this.skipReconnect=!1;const e=B.on(t,"open",function(){g.onopen(),I&&I()}),C=t=>{A("error"),this.cleanup(),this._readyState="closed",this.emitReserved("error",t),I?I(t):this.maybeReconnectOnOpen()},c=B.on(t,"error",C);if(!1!==this._timeout){const I=this._timeout;A("connect attempt will timeout after %d",I);const g=this.setTimeoutFn(()=>{A("connect attempt timed out after %d",I),e(),C(new Error("timeout")),t.close()},I);this.opts.autoUnref&&g.unref(),this.subs.push(()=>{this.clearTimeoutFn(g)})}return this.subs.push(e),this.subs.push(c),this}connect(I){return this.open(I)}onopen(){A("open"),this.cleanup(),this._readyState="open",this.emitReserved("open");const I=this.engine;this.subs.push(B.on(I,"ping",this.onping.bind(this)),B.on(I,"data",this.ondata.bind(this)),B.on(I,"error",this.onerror.bind(this)),B.on(I,"close",this.onclose.bind(this)),B.on(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(I){try{this.decoder.add(I)}catch(I){this.onclose("parse error",I)}}ondecoded(I){i.nextTick(()=>{this.emitReserved("packet",I)},this.setTimeoutFn)}onerror(I){A("error",I),this.emitReserved("error",I)}socket(I,t){let g=this.nsps[I];return g?this._autoConnect&&!g.active&&g.connect():(g=new F.Socket(this,I,t),this.nsps[I]=g),g}_destroy(I){const t=Object.keys(this.nsps);for(const I of t)if(this.nsps[I].active)return void A("socket %s is still active, skipping close",I);this._close()}_packet(I){A("writing packet %j",I);const t=this.encoder.encode(I);for(let g=0;gI()),this.subs.length=0,this.decoder.destroy()}_close(){A("disconnect"),this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close"),this.engine&&this.engine.close()}disconnect(){return this._close()}onclose(I,t){A("closed due to %s",I),this.cleanup(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",I,t),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;const I=this;if(this.backoff.attempts>=this._reconnectionAttempts)A("reconnect failed"),this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{const t=this.backoff.duration();A("will wait %dms before reconnect attempt",t),this._reconnecting=!0;const g=this.setTimeoutFn(()=>{I.skipReconnect||(A("attempting reconnect"),this.emitReserved("reconnect_attempt",I.backoff.attempts),I.skipReconnect||I.open(t=>{t?(A("reconnect attempt error"),I._reconnecting=!1,I.reconnect(),this.emitReserved("reconnect_error",t)):(A("reconnect success"),I.onreconnect())}))},t);this.opts.autoUnref&&g.unref(),this.subs.push(()=>{this.clearTimeoutFn(g)})}}onreconnect(){const I=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",I)}}t.Manager=U},3853:(I,t,g)=>{"use strict";var e,C=Object.defineProperty,c=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,F=(I,t,g,e)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let F of s(t))!i.call(I,F)&&F!==g&&C(I,F,{get:()=>t[F],enumerable:!(e=c(t,F))||e.enumerable});return I},l={};((I,t)=>{for(var g in t)C(I,g,{get:t[g],enumerable:!0})})(l,{ReducerType:()=>VI,SHOULD_AUTOBATCH:()=>k,TaskAbortError:()=>DI,Tuple:()=>y,addListener:()=>st,asyncThunkCreator:()=>oI,autoBatchEnhancer:()=>z,buildCreateSlice:()=>aI,clearAllListeners:()=>it,combineSlices:()=>at,configureStore:()=>j,createAction:()=>G,createActionCreatorInvariantMiddleware:()=>X,createAsyncThunk:()=>QI,createDraftSafeSelector:()=>d,createDraftSafeSelectorCreator:()=>U,createDynamicMiddleware:()=>Qt,createEntityAdapter:()=>pI,createImmutableStateInvariantMiddleware:()=>E,createListenerMiddleware:()=>Bt,createNextState:()=>B.produce,createReducer:()=>K,createSelector:()=>n.createSelector,createSelectorCreator:()=>n.createSelectorCreator,createSerializableStateInvariantMiddleware:()=>H,createSlice:()=>rI,current:()=>B.current,findNonSerializableValue:()=>Y,formatProdErrorMessage:()=>ut,freeze:()=>B.freeze,isActionCreator:()=>x,isAllOf:()=>II,isAnyOf:()=>$,isAsyncThunkAction:()=>iI,isDraft:()=>B.isDraft,isFluxStandardAction:()=>Z,isFulfilled:()=>sI,isImmutableDefault:()=>W,isPending:()=>eI,isPlain:()=>S,isRejected:()=>CI,isRejectedWithValue:()=>cI,lruMemoize:()=>n.lruMemoize,miniSerializeError:()=>nI,nanoid:()=>_,original:()=>B.original,prepareAutoBatched:()=>v,removeListener:()=>Ft,unwrapResult:()=>AI,weakMapMemoize:()=>n.weakMapMemoize}),I.exports=(e=l,F(C({},"__esModule",{value:!0}),e)),((I,t,g)=>{F(I,t,"default"),g&&F(g,t,"default")})(l,g(8895),I.exports);var B=g(9407),n=g(2885),Q=g(9407),A=g(2885),U=(...I)=>{let t=(0,A.createSelectorCreator)(...I);return(...I)=>{let g=t(...I),e=(I,...t)=>g((0,Q.isDraft)(I)?(0,Q.current)(I):I,...t);return Object.assign(e,g),e}},d=U(A.weakMapMemoize),o=g(8895),V=g(8895),b=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(0!==arguments.length)return"object"==typeof arguments[0]?V.compose:V.compose.apply(null,arguments)},a=(typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION__&&window.__REDUX_DEVTOOLS_EXTENSION__,g(9069)),u=g(8895),r=I=>I&&"function"==typeof I.match;function G(I,t){function g(...g){if(t){let e=t(...g);if(!e)throw new Error(ut(0));return{type:I,payload:e.payload,..."meta"in e&&{meta:e.meta},..."error"in e&&{error:e.error}}}return{type:I,payload:g[0]}}return g.toString=()=>`${I}`,g.type=I,g.match=t=>(0,u.isAction)(t)&&t.type===I,g}function x(I){return"function"==typeof I&&"type"in I&&r(I)}function Z(I){return(0,u.isAction)(I)&&Object.keys(I).every(R)}function R(I){return["type","payload","error","meta"].indexOf(I)>-1}function X(I={}){return()=>I=>t=>I(t)}var L=g(9407);function h(I,t){for(let g of I)if(t(g))return g}var y=class I extends Array{constructor(...t){super(...t),Object.setPrototypeOf(this,I.prototype)}static get[Symbol.species](){return I}concat(...I){return super.concat.apply(this,I)}prepend(...t){return 1===t.length&&Array.isArray(t[0])?new I(...t[0].concat(this)):new I(...t.concat(this))}};function m(I){return(0,L.isDraftable)(I)?(0,L.produce)(I,()=>{}):I}function p(I,t,g){if(I.has(t)){let e=I.get(t);return g.update&&(e=g.update(e,t,I),I.set(t,e)),e}if(!g.insert)throw new Error(ut(10));let e=g.insert(t,I);return I.set(t,e),e}function W(I){return"object"!=typeof I||null==I||Object.isFrozen(I)}function E(I={}){return()=>I=>t=>I(t)}var N=g(8895);function S(I){let t=typeof I;return null==I||"string"===t||"boolean"===t||"number"===t||Array.isArray(I)||(0,N.isPlainObject)(I)}function Y(I,t="",g=S,e,C=[],c){let s;if(!g(I))return{keyPath:t||"",value:I};if("object"!=typeof I||null===I||c?.has(I))return!1;let i=null!=e?e(I):Object.entries(I),F=C.length>0;for(let[I,l]of i){let i=t?t+"."+I:I;if(!F||!C.some(I=>I instanceof RegExp?I.test(i):i===I)){if(!g(l))return{keyPath:i,value:l};if("object"==typeof l&&(s=Y(l,i,g,e,C,c),s))return s}}return c&&J(I)&&c.add(I),!1}function J(I){if(!Object.isFrozen(I))return!1;for(let t of Object.values(I))if("object"==typeof t&&null!==t&&!J(t))return!1;return!0}function H(I={}){return()=>I=>t=>I(t)}var T=()=>function(I){let{thunk:t=!0,immutableCheck:g=!0,serializableCheck:e=!0,actionCreatorCheck:C=!0}=I??{},c=new y;return t&&(function(I){return"boolean"==typeof I}(t)?c.push(a.thunk):c.push((0,a.withExtraArgument)(t.extraArgument))),c},k="RTK_autoBatch",v=()=>I=>({payload:I,meta:{[k]:!0}}),w=I=>t=>{setTimeout(t,I)},f=typeof window<"u"&&window.requestAnimationFrame?window.requestAnimationFrame:w(10),z=(I={type:"raf"})=>t=>(...g)=>{let e=t(...g),C=!0,c=!1,s=!1,i=new Set,F="tick"===I.type?queueMicrotask:"raf"===I.type?f:"callback"===I.type?I.queueNotification:w(I.timeout),l=()=>{s=!1,c&&(c=!1,i.forEach(I=>I()))};return Object.assign({},e,{subscribe(I){let t=e.subscribe(()=>C&&I());return i.add(I),()=>{t(),i.delete(I)}},dispatch(I){try{return C=!I?.meta?.[k],c=!C,c&&(s||(s=!0,F(l))),e.dispatch(I)}finally{C=!0}}})},D=I=>function(t){let{autoBatch:g=!0}=t??{},e=new y(I);return g&&e.push(z("object"==typeof g?g:void 0)),e},M=!0;function j(I){let t,g,e=T(),{reducer:C,middleware:c,devTools:s=!0,preloadedState:i,enhancers:F}=I||{};if("function"==typeof C)t=C;else{if(!(0,o.isPlainObject)(C))throw new Error(ut(1));t=(0,o.combineReducers)(C)}if(!M&&c&&"function"!=typeof c)throw new Error(ut(2));if("function"==typeof c){if(g=c(e),!M&&!Array.isArray(g))throw new Error(ut(3))}else g=e();if(!M&&g.some(I=>"function"!=typeof I))throw new Error(ut(4));let l=o.compose;s&&(l=b({trace:!M,..."object"==typeof s&&s}));let B=(0,o.applyMiddleware)(...g),n=D(B);if(!M&&F&&"function"!=typeof F)throw new Error(ut(5));let Q="function"==typeof F?F(n):n();if(!M&&!Array.isArray(Q))throw new Error(ut(6));if(!M&&Q.some(I=>"function"!=typeof I))throw new Error(ut(7));!M&&g.length&&!Q.includes(B)&&console.error("middlewares were provided, but middleware enhancer was not included in final enhancers - make sure to call `getDefaultEnhancers`");let A=l(...Q);return(0,o.createStore)(t,i,A)}var O=g(9407);function P(I){let t,g={},e=[],C={addCase(I,t){let e="string"==typeof I?I:I.type;if(!e)throw new Error(ut(28));if(e in g)throw new Error(ut(29));return g[e]=t,C},addMatcher:(I,t)=>(e.push({matcher:I,reducer:t}),C),addDefaultCase:I=>(t=I,C)};return I(C),[g,e,t]}function K(I,t){let g,[e,C,c]=P(t);if(function(I){return"function"==typeof I}(I))g=()=>m(I());else{let t=m(I);g=()=>t}function s(I=g(),t){let s=[e[t.type],...C.filter(({matcher:I})=>I(t)).map(({reducer:I})=>I)];return 0===s.filter(I=>!!I).length&&(s=[c]),s.reduce((I,g)=>{if(g){if((0,O.isDraft)(I)){let e=g(I,t);return void 0===e?I:e}if((0,O.isDraftable)(I))return(0,O.produce)(I,I=>g(I,t));{let e=g(I,t);if(void 0===e){if(null===I)return I;throw new Error(ut(9))}return e}}return I},I)}return s.getInitialState=g,s}var _=(I=21)=>{let t="",g=I;for(;g--;)t+="ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW"[64*Math.random()|0];return t},q=(I,t)=>r(I)?I.match(t):I(t);function $(...I){return t=>I.some(I=>q(I,t))}function II(...I){return t=>I.every(I=>q(I,t))}function tI(I,t){if(!I||!I.meta)return!1;let g="string"==typeof I.meta.requestId,e=t.indexOf(I.meta.requestStatus)>-1;return g&&e}function gI(I){return"function"==typeof I[0]&&"pending"in I[0]&&"fulfilled"in I[0]&&"rejected"in I[0]}function eI(...I){return 0===I.length?I=>tI(I,["pending"]):gI(I)?t=>$(...I.map(I=>I.pending))(t):eI()(I[0])}function CI(...I){return 0===I.length?I=>tI(I,["rejected"]):gI(I)?t=>$(...I.map(I=>I.rejected))(t):CI()(I[0])}function cI(...I){let t=I=>I&&I.meta&&I.meta.rejectedWithValue;return 0===I.length||gI(I)?g=>II(CI(...I),t)(g):cI()(I[0])}function sI(...I){return 0===I.length?I=>tI(I,["fulfilled"]):gI(I)?t=>$(...I.map(I=>I.fulfilled))(t):sI()(I[0])}function iI(...I){return 0===I.length?I=>tI(I,["pending","fulfilled","rejected"]):gI(I)?t=>{let g=[];for(let t of I)g.push(t.pending,t.rejected,t.fulfilled);return $(...g)(t)}:iI()(I[0])}var FI=["name","message","stack","code"],lI=class{constructor(I,t){this.payload=I,this.meta=t}_type},BI=class{constructor(I,t){this.payload=I,this.meta=t}_type},nI=I=>{if("object"==typeof I&&null!==I){let t={};for(let g of FI)"string"==typeof I[g]&&(t[g]=I[g]);return t}return{message:String(I)}},QI=(()=>{function I(I,t,g){let e=G(I+"/fulfilled",(I,t,g,e)=>({payload:I,meta:{...e||{},arg:g,requestId:t,requestStatus:"fulfilled"}})),C=G(I+"/pending",(I,t,g)=>({payload:void 0,meta:{...g||{},arg:t,requestId:I,requestStatus:"pending"}})),c=G(I+"/rejected",(I,t,e,C,c)=>({payload:C,error:(g&&g.serializeError||nI)(I||"Rejected"),meta:{...c||{},arg:e,requestId:t,rejectedWithValue:!!C,requestStatus:"rejected",aborted:"AbortError"===I?.name,condition:"ConditionError"===I?.name}}));return Object.assign(function(I){return(s,i,F)=>{let l,B=g?.idGenerator?g.idGenerator(I):_(),n=new AbortController;function Q(I){l=I,n.abort()}let A=async function(){let A;try{let c=g?.condition?.(I,{getState:i,extra:F});if(function(I){return null!==I&&"object"==typeof I&&"function"==typeof I.then}(c)&&(c=await c),!1===c||n.signal.aborted)throw{name:"ConditionError",message:"Aborted due to condition callback returning false."};let U=new Promise((I,t)=>n.signal.addEventListener("abort",()=>t({name:"AbortError",message:l||"Aborted"})));s(C(B,I,g?.getPendingMeta?.({requestId:B,arg:I},{getState:i,extra:F}))),A=await Promise.race([U,Promise.resolve(t(I,{dispatch:s,getState:i,extra:F,requestId:B,signal:n.signal,abort:Q,rejectWithValue:(I,t)=>new lI(I,t),fulfillWithValue:(I,t)=>new BI(I,t)})).then(t=>{if(t instanceof lI)throw t;return t instanceof BI?e(t.payload,B,I,t.meta):e(t,B,I)})])}catch(t){A=t instanceof lI?c(null,B,I,t.payload,t.meta):c(t,B,I)}return g&&!g.dispatchConditionRejection&&c.match(A)&&A.meta.condition||s(A),A}();return Object.assign(A,{abort:Q,requestId:B,arg:I,unwrap:()=>A.then(AI)})}},{pending:C,rejected:c,fulfilled:e,settled:$(c,e),typePrefix:I})}return I.withTypes=()=>I,I})();function AI(I){if(I.meta&&I.meta.rejectedWithValue)throw I.payload;if(I.error)throw I.error;return I.payload}var UI,dI=Symbol.for("rtk-slice-createasyncthunk"),oI={[dI]:QI},VI=((UI=VI||{}).reducer="reducer",UI.reducerWithPrepare="reducerWithPrepare",UI.asyncThunk="asyncThunk",UI);function bI(I,t){return`${I}/${t}`}function aI({creators:I}={}){let t=I?.asyncThunk?.[dI];return function(I){let{name:g,reducerPath:e=g}=I;if(!g)throw new Error(ut(11));let C=("function"==typeof I.reducers?I.reducers(function(){function I(I,t){return{_reducerDefinitionType:"asyncThunk",payloadCreator:I,...t}}return I.withTypes=()=>I,{reducer:I=>Object.assign({[I.name]:(...t)=>I(...t)}[I.name],{_reducerDefinitionType:"reducer"}),preparedReducer:(I,t)=>({_reducerDefinitionType:"reducerWithPrepare",prepare:I,reducer:t}),asyncThunk:I}}()):I.reducers)||{},c=Object.keys(C),s={sliceCaseReducersByName:{},sliceCaseReducersByType:{},actionCreators:{},sliceMatchers:[]},i={addCase(I,t){let g="string"==typeof I?I:I.type;if(!g)throw new Error(ut(12));if(g in s.sliceCaseReducersByType)throw new Error(ut(13));return s.sliceCaseReducersByType[g]=t,i},addMatcher:(I,t)=>(s.sliceMatchers.push({matcher:I,reducer:t}),i),exposeAction:(I,t)=>(s.actionCreators[I]=t,i),exposeCaseReducer:(I,t)=>(s.sliceCaseReducersByName[I]=t,i)};function F(){let[t={},g=[],e]="function"==typeof I.extraReducers?P(I.extraReducers):[I.extraReducers],C={...t,...s.sliceCaseReducersByType};return K(I.initialState,I=>{for(let t in C)I.addCase(t,C[t]);for(let t of s.sliceMatchers)I.addMatcher(t.matcher,t.reducer);for(let t of g)I.addMatcher(t.matcher,t.reducer);e&&I.addDefaultCase(e)})}c.forEach(e=>{let c=C[e],s={reducerName:e,type:bI(g,e),createNotation:"function"==typeof I.reducers};!function(I){return"asyncThunk"===I._reducerDefinitionType}(c)?function({type:I,reducerName:t,createNotation:g},e,C){let c,s;if("reducer"in e){if(g&&!function(I){return"reducerWithPrepare"===I._reducerDefinitionType}(e))throw new Error(ut(17));c=e.reducer,s=e.prepare}else c=e;C.addCase(I,c).exposeCaseReducer(t,c).exposeAction(t,s?G(I,s):G(I))}(s,c,i):function({type:I,reducerName:t},g,e,C){if(!C)throw new Error(ut(18));let{payloadCreator:c,fulfilled:s,pending:i,rejected:F,settled:l,options:B}=g,n=C(I,c,B);e.exposeAction(t,n),s&&e.addCase(n.fulfilled,s),i&&e.addCase(n.pending,i),F&&e.addCase(n.rejected,F),l&&e.addMatcher(n.settled,l),e.exposeCaseReducer(t,{fulfilled:s||GI,pending:i||GI,rejected:F||GI,settled:l||GI})}(s,c,i,t)});let l,B=I=>I,n=new WeakMap,Q={name:g,reducerPath:e,reducer:(I,t)=>(l||(l=F()),l(I,t)),actions:s.actionCreators,caseReducers:s.sliceCaseReducersByName,getInitialState:()=>(l||(l=F()),l.getInitialState()),getSelectors(t=B){let g=p(n,this,{insert:()=>new WeakMap});return p(g,t,{insert:()=>{let g={};for(let[e,C]of Object.entries(I.selectors??{}))g[e]=uI(this,C,t,this!==Q);return g}})},selectSlice(I){let t=I[this.reducerPath];return typeof t>"u"&&this!==Q&&(t=this.getInitialState()),t},get selectors(){return this.getSelectors(this.selectSlice)},injectInto(I,{reducerPath:t,...g}={}){let e=t??this.reducerPath;return I.inject({reducerPath:e,reducer:this.reducer},g),{...this,reducerPath:e}}};return Q}}function uI(I,t,g,e){function C(C,...c){let s=g.call(I,C);return typeof s>"u"&&e&&(s=I.getInitialState()),t(s,...c)}return C.unwrapped=t,C}var rI=aI();function GI(){}var xI=g(9407),ZI=xI.isDraft;function RI(I){let t=XI((t,g)=>I(g));return function(I){return t(I,void 0)}}function XI(I){return function(t,g){let e=t=>{!function(I){return Z(I)}(g)?I(g,t):I(g.payload,t)};return ZI(t)?(e(t),t):(0,xI.produce)(t,e)}}function LI(I,t){return t(I)}function hI(I){return Array.isArray(I)||(I=Object.values(I)),I}function yI(I,t,g){I=hI(I);let e=[],C=[];for(let c of I){let I=LI(c,t);I in g.entities?C.push({id:I,changes:c}):e.push(c)}return[e,C]}function mI(I){function t(t,g){let e=LI(t,I);e in g.entities||(g.ids.push(e),g.entities[e]=t)}function g(I,g){I=hI(I);for(let e of I)t(e,g)}function e(t,g){let e=LI(t,I);e in g.entities||g.ids.push(e),g.entities[e]=t}function C(I,t){let g=!1;I.forEach(I=>{I in t.entities&&(delete t.entities[I],g=!0)}),g&&(t.ids=t.ids.filter(I=>I in t.entities))}function c(t,g){let e={},C={};t.forEach(I=>{I.id in g.entities&&(C[I.id]={id:I.id,changes:{...C[I.id]?C[I.id].changes:null,...I.changes}})}),(t=Object.values(C)).length>0&&t.filter(t=>function(t,g,e){let C=e.entities[g.id];if(void 0===C)return!1;let c=Object.assign({},C,g.changes),s=LI(c,I),i=s!==g.id;return i&&(t[g.id]=s,delete e.entities[g.id]),e.entities[s]=c,i}(e,t,g)).length>0&&(g.ids=Object.values(g.entities).map(t=>LI(t,I)))}function s(t,e){let[C,s]=yI(t,I,e);c(s,e),g(C,e)}return{removeAll:RI(function(I){Object.assign(I,{ids:[],entities:{}})}),addOne:XI(t),addMany:XI(g),setOne:XI(e),setMany:XI(function(I,t){I=hI(I);for(let g of I)e(g,t)}),setAll:XI(function(I,t){I=hI(I),t.ids=[],t.entities={},g(I,t)}),updateOne:XI(function(I,t){return c([I],t)}),updateMany:XI(c),upsertOne:XI(function(I,t){return s([I],t)}),upsertMany:XI(s),removeOne:XI(function(I,t){return C([I],t)}),removeMany:XI(C)}}function pI(I={}){let{selectId:t,sortComparer:g}={sortComparer:!1,selectId:I=>I.id,...I},e={getInitialState:function(I={}){return Object.assign({ids:[],entities:{}},I)}},C={getSelectors:function(I,t={}){let{createSelector:g=d}=t,e=I=>I.ids,C=I=>I.entities,c=g(e,C,(I,t)=>I.map(I=>t[I])),s=(I,t)=>t,i=(I,t)=>I[t],F=g(e,I=>I.length);if(!I)return{selectIds:e,selectEntities:C,selectAll:c,selectTotal:F,selectById:g(C,s,i)};let l=g(I,C);return{selectIds:g(I,e),selectEntities:l,selectAll:g(I,c),selectTotal:g(I,F),selectById:g(l,s,i)}}},c=g?function(I,t){let{removeOne:g,removeMany:e,removeAll:C}=mI(I);function c(t,g){let e=(t=hI(t)).filter(t=>!(LI(t,I)in g.entities));0!==e.length&&l(e,g)}function s(I,t){0!==(I=hI(I)).length&&l(I,t)}function i(t,g){let e=!1;for(let C of t){let t=g.entities[C.id];if(!t)continue;e=!0,Object.assign(t,C.changes);let c=I(t);C.id!==c&&(delete g.entities[C.id],g.entities[c]=t)}e&&B(g)}function F(t,g){let[e,C]=yI(t,I,g);i(C,g),c(e,g)}function l(t,g){t.forEach(t=>{g.entities[I(t)]=t}),B(g)}function B(g){let e=Object.values(g.entities);e.sort(t);let C=e.map(I),{ids:c}=g;(function(I,t){if(I.length!==t.length)return!1;for(let g=0;g{if("function"!=typeof I)throw new Error(ut(32))},NI=()=>{},SI=(I,t=NI)=>(I.catch(t),I),YI=(I,t)=>(I.addEventListener("abort",t,{once:!0}),()=>I.removeEventListener("abort",t)),JI=(I,t)=>{let g=I.signal;g.aborted||("reason"in g||Object.defineProperty(g,"reason",{enumerable:!0,value:t,configurable:!0,writable:!0}),I.abort(t))},HI="listener",TI="completed",kI="cancelled",vI=`task-${kI}`,wI=`task-${TI}`,fI=`${HI}-${kI}`,zI=`${HI}-${TI}`,DI=class{constructor(I){this.code=I,this.message=`task ${kI} (reason: ${I})`}name="TaskAbortError";message},MI=I=>{if(I.aborted){let{reason:t}=I;throw new DI(t)}};function jI(I,t){let g=NI;return new Promise((e,C)=>{let c=()=>C(new DI(I.reason));I.aborted?c():(g=YI(I,c),t.finally(()=>g()).then(e,C))}).finally(()=>{g=NI})}var OI=I=>t=>SI(jI(I,t).then(t=>(MI(I),t))),PI=I=>{let t=OI(I);return I=>t(new Promise(t=>setTimeout(t,I)))},{assign:KI}=Object,_I={},qI="listenerMiddleware",$I=(I,t)=>(g,e)=>{EI(g,"taskExecutor");let C=new AbortController;(t=>{YI(I,()=>JI(t,I.reason))})(C);let c=(async I=>{try{return await Promise.resolve(),{status:"ok",value:await I()}}catch(I){return{status:I instanceof DI?"cancelled":"rejected",error:I}}finally{JI(C,wI)}})(async()=>{MI(I),MI(C.signal);let t=await g({pause:OI(C.signal),delay:PI(C.signal),signal:C.signal});return MI(C.signal),t});return e?.autoJoin&&t.push(c),{result:OI(I)(c),cancel(){JI(C,vI)}}},It=(I,t)=>(g,e)=>SI((async(g,e)=>{MI(t);let C=()=>{},c=[new Promise((t,e)=>{let c=I({predicate:g,effect:(I,g)=>{g.unsubscribe(),t([I,g.getState(),g.getOriginalState()])}});C=()=>{c(),e()}})];null!=e&&c.push(new Promise(I=>setTimeout(I,e,null)));try{let I=await jI(t,Promise.race(c));return MI(t),I}finally{C()}})(g,e)),tt=I=>{let{type:t,actionCreator:g,matcher:e,predicate:C,effect:c}=I;if(t)C=G(t).match;else if(g)t=g.type,C=g.match;else if(e)C=e;else if(!C)throw new Error(ut(21));return EI(c,"options.listener"),{predicate:C,type:t,effect:c}},gt=I=>{let{type:t,predicate:g,effect:e}=tt(I);return{id:_(),effect:e,type:t,predicate:g,pending:new Set,unsubscribe:()=>{throw new Error(ut(22))}}},et=I=>{I.pending.forEach(I=>{JI(I,fI)})},Ct=I=>()=>{I.forEach(et),I.clear()},ct=(I,t,g)=>{try{I(t,g)}catch(I){setTimeout(()=>{throw I},0)}},st=G(`${qI}/add`),it=G(`${qI}/removeAll`),Ft=G(`${qI}/remove`),lt=(...I)=>{console.error(`${qI}/error`,...I)};function Bt(I={}){let t=new Map,{extra:g,onError:e=lt}=I;EI(e,"onError");let C=I=>{let g=h(Array.from(t.values()),t=>t.effect===I.effect);return g||(g=gt(I)),(I=>(I.unsubscribe=()=>t.delete(I.id),t.set(I.id,I),t=>{I.unsubscribe(),t?.cancelActive&&et(I)}))(g)},c=I=>{let{type:g,effect:e,predicate:C}=tt(I),c=h(Array.from(t.values()),I=>("string"==typeof g?I.type===g:I.predicate===C)&&I.effect===e);return c&&(c.unsubscribe(),I.cancelActive&&et(c)),!!c},s=async(I,c,s,i)=>{let F=new AbortController,l=It(C,F.signal),B=[];try{I.pending.add(F),await Promise.resolve(I.effect(c,KI({},s,{getOriginalState:i,condition:(I,t)=>l(I,t).then(Boolean),take:l,delay:PI(F.signal),pause:OI(F.signal),extra:g,signal:F.signal,fork:$I(F.signal,B),unsubscribe:I.unsubscribe,subscribe:()=>{t.set(I.id,I)},cancelActiveListeners:()=>{I.pending.forEach((I,t,g)=>{I!==F&&(JI(I,fI),g.delete(I))})},cancel:()=>{JI(F,fI),I.pending.delete(F)},throwIfCancelled:()=>{MI(F.signal)}})))}catch(I){I instanceof DI||ct(e,I,{raisedBy:"effect"})}finally{await Promise.allSettled(B),JI(F,zI),I.pending.delete(F)}},i=Ct(t);return{middleware:I=>g=>F=>{if(!(0,WI.isAction)(F))return g(F);if(st.match(F))return C(F.payload);if(it.match(F))return void i();if(Ft.match(F))return c(F.payload);let l,B=I.getState(),n=()=>{if(B===_I)throw new Error(ut(23));return B};try{if(l=g(F),t.size>0){let g=I.getState(),C=Array.from(t.values());for(let t of C){let C=!1;try{C=t.predicate(F,g,B)}catch(I){C=!1,ct(e,I,{raisedBy:"predicate"})}C&&s(t,F,I,n)}}}finally{B=_I}return l},startListening:C,stopListening:c,clearListeners:i}}var nt=g(8895),Qt=()=>{let I=_(),t=new Map,g=Object.assign(G("dynamicMiddleware/add",(...t)=>({payload:t,meta:{instanceId:I}})),{withTypes:()=>g}),e=Object.assign(function(...I){I.forEach(I=>{let g=h(Array.from(t.values()),t=>t.middleware===I);g||(g=(I=>({id:_(),middleware:I,applied:new Map}))(I)),t.set(g.id,g)})},{withTypes:()=>e}),C=II(g,(I=>t=>t?.meta?.instanceId===I)(I));return{middleware:I=>g=>c=>C(c)?(e(...c.payload),I.dispatch):(I=>{let g=Array.from(t.values()).map(t=>p(t.applied,I,{insert:()=>t.middleware(I)}));return(0,nt.compose)(...g)})(I)(g)(c),addMiddleware:e,withMiddleware:g,instanceId:I}},At=g(8895),Ut=I=>I.flatMap(I=>(I=>"reducerPath"in I&&"string"==typeof I.reducerPath)(I)?[[I.reducerPath,I.reducer]]:Object.entries(I)),dt=Symbol.for("rtk-state-proxy-original"),ot=new WeakMap,Vt=(I,t)=>p(ot,I,{insert:()=>new Proxy(I,{get:(I,g,e)=>{if(g===dt)return I;let C=Reflect.get(I,g,e);if(typeof C>"u"){let I=t[g.toString()];if(I){let t=I(void 0,{type:_()});if(typeof t>"u")throw new Error(ut(24));return t}}return C}})}),bt=I=>{if(!(I=>!!I&&!!I[dt])(I))throw new Error(ut(25));return I[dt]};function at(...I){let t=Object.fromEntries(Ut(I)),g=()=>(0,At.combineReducers)(t),e=g();function C(I,t){return e(I,t)}C.withLazyLoadedSlices=()=>C;let c=Object.assign(function(I,g){return function(e,...C){return I(Vt(g?g(e,...C):e,t),...C)}},{original:bt});return Object.assign(C,{inject:(I,c={})=>{let{reducerPath:s,reducer:i}=I,F=t[s];return!c.overrideExisting&&F&&F!==i||(t[s]=i,e=g()),C},selector:c})}function ut(I){return`Minified Redux Toolkit error #${I}; visit https://redux-toolkit.js.org/Errors?code=${I} for the full message or use the non-minified dev environment for full errors. `}},3995:(I,t,g)=>{I.exports=function(I){function t(I){let g,C,c,s=null;function i(...I){if(!i.enabled)return;const e=i,C=Number(new Date),c=C-(g||C);e.diff=c,e.prev=g,e.curr=C,g=C,I[0]=t.coerce(I[0]),"string"!=typeof I[0]&&I.unshift("%O");let s=0;I[0]=I[0].replace(/%([a-zA-Z%])/g,(g,C)=>{if("%%"===g)return"%";s++;const c=t.formatters[C];if("function"==typeof c){const t=I[s];g=c.call(e,t),I.splice(s,1),s--}return g}),t.formatArgs.call(e,I),(e.log||t.log).apply(e,I)}return i.namespace=I,i.useColors=t.useColors(),i.color=t.selectColor(I),i.extend=e,i.destroy=t.destroy,Object.defineProperty(i,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==s?s:(C!==t.namespaces&&(C=t.namespaces,c=t.enabled(I)),c),set:I=>{s=I}}),"function"==typeof t.init&&t.init(i),i}function e(I,g){const e=t(this.namespace+(void 0===g?":":g)+I);return e.log=this.log,e}function C(I){return I.toString().substring(2,I.toString().length-2).replace(/\.\*\?$/,"*")}return t.debug=t,t.default=t,t.coerce=function(I){return I instanceof Error?I.stack||I.message:I},t.disable=function(){const I=[...t.names.map(C),...t.skips.map(C).map(I=>"-"+I)].join(",");return t.enable(""),I},t.enable=function(I){let g;t.save(I),t.namespaces=I,t.names=[],t.skips=[];const e=("string"==typeof I?I:"").split(/[\s,]+/),C=e.length;for(g=0;g{t[g]=I[g]}),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(I){let g=0;for(let t=0;t{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.defaultBinaryType=t.usingBrowserWebSocket=t.WebSocket=t.nextTick=void 0;const e=g(6235);t.nextTick="function"==typeof Promise&&"function"==typeof Promise.resolve?I=>Promise.resolve().then(I):(I,t)=>t(I,0),t.WebSocket=e.globalThisShim.WebSocket||e.globalThisShim.MozWebSocket,t.usingBrowserWebSocket=!0,t.defaultBinaryType="arraybuffer"},4110:(I,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.hasCORS=void 0;let g=!1;try{g="undefined"!=typeof XMLHttpRequest&&"withCredentials"in new XMLHttpRequest}catch(I){}t.hasCORS=g},4454:(I,t,g)=>{"use strict";function e(I){if(I)return function(I){for(var t in e.prototype)I[t]=e.prototype[t];return I}(I)}g.r(t),g.d(t,{Emitter:()=>e}),e.prototype.on=e.prototype.addEventListener=function(I,t){return this._callbacks=this._callbacks||{},(this._callbacks["$"+I]=this._callbacks["$"+I]||[]).push(t),this},e.prototype.once=function(I,t){function g(){this.off(I,g),t.apply(this,arguments)}return g.fn=t,this.on(I,g),this},e.prototype.off=e.prototype.removeListener=e.prototype.removeAllListeners=e.prototype.removeEventListener=function(I,t){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var g,e=this._callbacks["$"+I];if(!e)return this;if(1==arguments.length)return delete this._callbacks["$"+I],this;for(var C=0;C{i("transport closed gracefully"),this.onClose()}).catch(I=>{i("transport closed due to %s",I),this.onError("webtransport error",I)}),this.transport.ready.then(()=>{this.transport.createBidirectionalStream().then(I=>{const t=(0,s.createPacketDecoderStream)(Number.MAX_SAFE_INTEGER,this.socket.binaryType),g=I.readable.pipeThrough(t).getReader(),e=(0,s.createPacketEncoderStream)();e.readable.pipeTo(I.writable),this.writer=e.writable.getWriter();const C=()=>{g.read().then(({done:I,value:t})=>{I?i("session is closed"):(i("received chunk: %o",t),this.onPacket(t),C())}).catch(I=>{i("an error occurred while reading: %s",I)})};C();const c={type:"open"};this.query.sid&&(c.data=`{"sid":"${this.query.sid}"}`),this.writer.write(c).then(()=>this.onOpen())})}))}write(I){this.writable=!1;for(let t=0;t{e&&(0,c.nextTick)(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var I;null===(I=this.transport)||void 0===I||I.close()}}t.WT=F},4603:(I,t,g)=>{"use strict";I.exports=g(3853)},4627:(I,t,g)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Decoder=t.Encoder=t.PacketType=t.protocol=void 0;const e=g(4454),C=g(4926),c=g(9133),s=(0,g(852).default)("socket.io-parser"),i=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"];var F;function l(I){return"[object Object]"===Object.prototype.toString.call(I)}t.protocol=5,function(I){I[I.CONNECT=0]="CONNECT",I[I.DISCONNECT=1]="DISCONNECT",I[I.EVENT=2]="EVENT",I[I.ACK=3]="ACK",I[I.CONNECT_ERROR=4]="CONNECT_ERROR",I[I.BINARY_EVENT=5]="BINARY_EVENT",I[I.BINARY_ACK=6]="BINARY_ACK"}(F=t.PacketType||(t.PacketType={})),t.Encoder=class{constructor(I){this.replacer=I}encode(I){return s("encoding packet %j",I),I.type!==F.EVENT&&I.type!==F.ACK||!(0,c.hasBinary)(I)?[this.encodeAsString(I)]:this.encodeAsBinary({type:I.type===F.EVENT?F.BINARY_EVENT:F.BINARY_ACK,nsp:I.nsp,data:I.data,id:I.id})}encodeAsString(I){let t=""+I.type;return I.type!==F.BINARY_EVENT&&I.type!==F.BINARY_ACK||(t+=I.attachments+"-"),I.nsp&&"/"!==I.nsp&&(t+=I.nsp+","),null!=I.id&&(t+=I.id),null!=I.data&&(t+=JSON.stringify(I.data,this.replacer)),s("encoded %j as %s",I,t),t}encodeAsBinary(I){const t=(0,C.deconstructPacket)(I),g=this.encodeAsString(t.packet),e=t.buffers;return e.unshift(g),e}};class B extends e.Emitter{constructor(I){super(),this.reviver=I}add(I){let t;if("string"==typeof I){if(this.reconstructor)throw new Error("got plaintext data when reconstructing a packet");t=this.decodeString(I);const g=t.type===F.BINARY_EVENT;g||t.type===F.BINARY_ACK?(t.type=g?F.EVENT:F.ACK,this.reconstructor=new n(t),0===t.attachments&&super.emitReserved("decoded",t)):super.emitReserved("decoded",t)}else{if(!(0,c.isBinary)(I)&&!I.base64)throw new Error("Unknown type: "+I);if(!this.reconstructor)throw new Error("got binary data when not reconstructing a packet");t=this.reconstructor.takeBinaryData(I),t&&(this.reconstructor=null,super.emitReserved("decoded",t))}}decodeString(I){let t=0;const g={type:Number(I.charAt(0))};if(void 0===F[g.type])throw new Error("unknown packet type "+g.type);if(g.type===F.BINARY_EVENT||g.type===F.BINARY_ACK){const e=t+1;for(;"-"!==I.charAt(++t)&&t!=I.length;);const C=I.substring(e,t);if(C!=Number(C)||"-"!==I.charAt(t))throw new Error("Illegal attachments");g.attachments=Number(C)}if("/"===I.charAt(t+1)){const e=t+1;for(;++t&&","!==I.charAt(t)&&t!==I.length;);g.nsp=I.substring(e,t)}else g.nsp="/";const e=I.charAt(t+1);if(""!==e&&Number(e)==e){const e=t+1;for(;++t;){const g=I.charAt(t);if(null==g||Number(g)!=g){--t;break}if(t===I.length)break}g.id=Number(I.substring(e,t+1))}if(I.charAt(++t)){const e=this.tryParse(I.substr(t));if(!B.isPayloadValid(g.type,e))throw new Error("invalid payload");g.data=e}return s("decoded %s as %j",I,g),g}tryParse(I){try{return JSON.parse(I,this.reviver)}catch(I){return!1}}static isPayloadValid(I,t){switch(I){case F.CONNECT:return l(t);case F.DISCONNECT:return void 0===t;case F.CONNECT_ERROR:return"string"==typeof t||l(t);case F.EVENT:case F.BINARY_EVENT:return Array.isArray(t)&&("number"==typeof t[0]||"string"==typeof t[0]&&-1===i.indexOf(t[0]));case F.ACK:case F.BINARY_ACK:return Array.isArray(t)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}}t.Decoder=B;class n{constructor(I){this.packet=I,this.buffers=[],this.reconPack=I}takeBinaryData(I){if(this.buffers.push(I),this.buffers.length===this.reconPack.attachments){const I=(0,C.reconstructPacket)(this.reconPack,this.buffers);return this.finishedReconstruction(),I}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}},4689:function(I,t,g){"use strict";var e=this&&this.__importDefault||function(I){return I&&I.__esModule?I:{default:I}};Object.defineProperty(t,"__esModule",{value:!0}),t.Transport=t.TransportError=void 0;const C=g(6376),c=g(4454),s=g(5374),i=e(g(6617)),F=g(8661),l=(0,i.default)("engine.io-client:transport");class B extends Error{constructor(I,t,g){super(I),this.description=t,this.context=g,this.type="TransportError"}}t.TransportError=B;class n extends c.Emitter{constructor(I){super(),this.writable=!1,(0,s.installTimerFunctions)(this,I),this.opts=I,this.query=I.query,this.socket=I.socket}onError(I,t,g){return super.emitReserved("error",new B(I,t,g)),this}open(){return this.readyState="opening",this.doOpen(),this}close(){return"opening"!==this.readyState&&"open"!==this.readyState||(this.doClose(),this.onClose()),this}send(I){"open"===this.readyState?this.write(I):l("transport is not open, discarding packets")}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(I){const t=(0,C.decodePacket)(I,this.socket.binaryType);this.onPacket(t)}onPacket(I){super.emitReserved("packet",I)}onClose(I){this.readyState="closed",super.emitReserved("close",I)}pause(I){}createUri(I,t={}){return I+"://"+this._hostname()+this._port()+this.opts.path+this._query(t)}_hostname(){const I=this.opts.hostname;return-1===I.indexOf(":")?I:"["+I+"]"}_port(){return this.opts.port&&(this.opts.secure&&Number(443!==this.opts.port)||!this.opts.secure&&80!==Number(this.opts.port))?":"+this.opts.port:""}_query(I){const t=(0,F.encode)(I);return t.length?"?"+t:""}}t.Transport=n},4831:function(I,t,g){"use strict";var e=this&&this.__importDefault||function(I){return I&&I.__esModule?I:{default:I}};Object.defineProperty(t,"__esModule",{value:!0}),t.init=void 0;const C=e(g(7006));t.default=class{constructor(I=t.init){this.id=I?.id||"",this.connection=I?.connection||C.default.rootConnection,this.title=I?.title||""}},t.init={id:"",connection:"",title:""}},4926:(I,t,g)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.reconstructPacket=t.deconstructPacket=void 0;const e=g(9133);function C(I,t){if(!I)return I;if((0,e.isBinary)(I)){const g={_placeholder:!0,num:t.length};return t.push(I),g}if(Array.isArray(I)){const g=new Array(I.length);for(let e=0;e=0&&I.num{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.nextTick=t.parse=t.installTimerFunctions=t.transports=t.TransportError=t.Transport=t.protocol=t.Socket=void 0;const e=g(8223);Object.defineProperty(t,"Socket",{enumerable:!0,get:function(){return e.Socket}}),t.protocol=e.Socket.protocol;var C=g(4689);Object.defineProperty(t,"Transport",{enumerable:!0,get:function(){return C.Transport}}),Object.defineProperty(t,"TransportError",{enumerable:!0,get:function(){return C.TransportError}});var c=g(9419);Object.defineProperty(t,"transports",{enumerable:!0,get:function(){return c.transports}});var s=g(5374);Object.defineProperty(t,"installTimerFunctions",{enumerable:!0,get:function(){return s.installTimerFunctions}});var i=g(1015);Object.defineProperty(t,"parse",{enumerable:!0,get:function(){return i.parse}});var F=g(4087);Object.defineProperty(t,"nextTick",{enumerable:!0,get:function(){return F.nextTick}})},5028:function(I,t,g){"use strict";var e=this&&this.__importDefault||function(I){return I&&I.__esModule?I:{default:I}};Object.defineProperty(t,"__esModule",{value:!0}),t.init=void 0;const C=e(g(7006)),c=g(9934);t.default=class{static getConnection(I){return""===I?C.default.rootConnection:(I=I.endsWith(C.default.rootConnection)?I:`${I}${C.default.rootConnection}`).startsWith(C.default.rootConnection)?I:`${C.default.rootConnection}${I}`}static getTuneOptionString(I){let t={};Object.keys(I).forEach(g=>{const e=g,C=Number(I[e]);C&&(t[e]=C)});const g=JSON.parse(JSON.stringify(t));return new URLSearchParams(g).toString()}constructor(I=t.init){return this.hasSlash=!1,this.protocol="",this.host="",this.connection=C.default.rootConnection,this.tuneOption=c.init,Object.assign(this,I)}},t.init={hasSlash:!1,protocol:"",host:"",connection:"",tuneOption:{}}},5374:(I,t,g)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.byteLength=t.installTimerFunctions=t.pick=void 0;const e=g(6235);t.pick=function(I,...t){return t.reduce((t,g)=>(I.hasOwnProperty(g)&&(t[g]=I[g]),t),{})};const C=e.globalThisShim.setTimeout,c=e.globalThisShim.clearTimeout;t.installTimerFunctions=function(I,t){t.useNativeTimers?(I.setTimeoutFn=C.bind(e.globalThisShim),I.clearTimeoutFn=c.bind(e.globalThisShim)):(I.setTimeoutFn=e.globalThisShim.setTimeout.bind(e.globalThisShim),I.clearTimeoutFn=e.globalThisShim.clearTimeout.bind(e.globalThisShim))},t.byteLength=function(I){return"string"==typeof I?function(I){let t=0,g=0;for(let e=0,C=I.length;e=57344?g+=3:(e++,g+=4);return g}(I):Math.ceil(1.33*(I.byteLength||I.size))}},5379:(I,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={APP_NAME:"talkn",PRODUCTION:"PRODUCTION",LOCALHOST:"LOCALHOST",DEVELOPMENT:"DEVELOPMENT",PRODUCTION_DOMAIN:"talkn.io",PRODUCTION_API_DOMAIN:"api.talkn.io",DEVELOPMENT_DOMAIN:"localhost",AWS_HOST_KEY:"compute.internal",PORTS:{HTTP:80,HTTPS:443,DEVELOPMENT_COVER:8e3,DEVELOPMENT_API:8001,DEVELOPMENT_COMPONENTS:8002,DEVELOPMENT_TUNE:8003,DEVELOPMENT_CLIENT:8080,REDIS:6379,MONGO:27017,IO_LB:10440,IO_ROOT:10444},SUB_DOMAINS:{WWW:"www",API:"api",DESC:"desc",PORTAL:"portal",CLIENT:"client",ASSETS:"assets",SESSION:"session",AUTO:"auto",OWN:"own",NEWS:"news",BANNER:"banner",COVER:"cover",RANK:"rank",EXT:"ext",COMPONENTS:"components",TUNE:"tune",TRANSACTION:"transaction",AUTH:"auth"},APP_TYPES:{CLIENT:"CLIENT",PORTAL:"PORTAL",EXTENSION:"EXTENSION",API:"API",COVER:"COVER",COMPONENTS:"COMPONENTS",TUNE:"TUNE"},URL:{twitter:"https://twitter.com/",facebook:"https://www.facebook.com/",appstore:"https://itunes.apple.com/app/id",playstore:"https://play.google.com/store/apps/details?id=",chromeExtension:"https://chrome.google.com/webstore/detail/talkn-for-chrome/dkngnmdlcofambpfaccepbnjgfholgbo?hl=en"},talknClientJs:"talkn.client.js",talknApiJs:"talkn.api.js",talknRankJs:"talkn.rank.js",noInnerNotif:"Sorry, No Function.",bannerClass:"talkn_banner",storageKey:{baseKey:"@talkn@",postsTimelineZero:"postsTimelineZero",postsTimeline:"postsTimeline",postsSingle:"postsSingle",postsMulti:"postsMulti",postsChild:"postsChild",postsLogs:"postsLogs",threads:"threads"}}},5512:I=>{"use strict";I.exports=function(I,t,g,e){var C=self||window;try{try{var c;try{c=new C.Blob([I])}catch(t){(c=new(C.BlobBuilder||C.WebKitBlobBuilder||C.MozBlobBuilder||C.MSBlobBuilder)).append(I),c=c.getBlob()}var s=C.URL||C.webkitURL,i=s.createObjectURL(c),F=new C[t](i,g);return s.revokeObjectURL(i),F}catch(e){return new C[t]("data:application/javascript,".concat(encodeURIComponent(I)),g)}}catch(I){if(!e)throw Error("Inline worker is not supported");return new C[t](e,g)}}},5606:I=>{var t,g,e=I.exports={};function C(){throw new Error("setTimeout has not been defined")}function c(){throw new Error("clearTimeout has not been defined")}function s(I){if(t===setTimeout)return setTimeout(I,0);if((t===C||!t)&&setTimeout)return t=setTimeout,setTimeout(I,0);try{return t(I,0)}catch(g){try{return t.call(null,I,0)}catch(g){return t.call(this,I,0)}}}!function(){try{t="function"==typeof setTimeout?setTimeout:C}catch(I){t=C}try{g="function"==typeof clearTimeout?clearTimeout:c}catch(I){g=c}}();var i,F=[],l=!1,B=-1;function n(){l&&i&&(l=!1,i.length?F=i.concat(F):B=-1,F.length&&Q())}function Q(){if(!l){var I=s(n);l=!0;for(var t=F.length;t;){for(i=F,F=[];++B1)for(var g=1;gI().concat(c.default)});t.createApiStore=()=>(0,C.configureStore)({reducer:s.default,middleware:I=>I().concat(c.default)}),t.default=i},5919:(I,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.generateUniqueKey=t.generateUniqueKeySeparator=t.isValidKey=t.IS_NODE=t.IS_BROWSER=t.isNodeServer=void 0,t.getEnvVar=function(I){if(t.IS_NODE)return process.env?.[I]},t.isNodeServer=()=>"undefined"==typeof window,t.IS_BROWSER="undefined"!=typeof window,t.IS_NODE="undefined"!=typeof process&&!!process.release?.name,t.isValidKey=(I,t)=>I in t,t.generateUniqueKeySeparator="::",t.generateUniqueKey=(I="id",g=t.generateUniqueKeySeparator)=>I+g+Date.now().toString(36)+Math.random().toString(36).substr(2,5)},5942:(I,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.on=void 0,t.on=function(I,t,g){return I.on(t,g),function(){I.off(t,g)}}},6214:function(I,t,g){"use strict";var e=this&&this.__importDefault||function(I){return I&&I.__esModule?I:{default:I}};Object.defineProperty(t,"__esModule",{value:!0}),t.Socket=void 0;const C=g(4627),c=g(5942),s=g(4454),i=e(g(9368)).default("socket.io-client:socket"),F=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1});class l extends s.Emitter{constructor(I,t,g){super(),this.connected=!1,this.recovered=!1,this.receiveBuffer=[],this.sendBuffer=[],this._queue=[],this._queueSeq=0,this.ids=0,this.acks={},this.flags={},this.io=I,this.nsp=t,g&&g.auth&&(this.auth=g.auth),this._opts=Object.assign({},g),this.io._autoConnect&&this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;const I=this.io;this.subs=[c.on(I,"open",this.onopen.bind(this)),c.on(I,"packet",this.onpacket.bind(this)),c.on(I,"error",this.onerror.bind(this)),c.on(I,"close",this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected||(this.subEvents(),this.io._reconnecting||this.io.open(),"open"===this.io._readyState&&this.onopen()),this}open(){return this.connect()}send(...I){return I.unshift("message"),this.emit.apply(this,I),this}emit(I,...t){if(F.hasOwnProperty(I))throw new Error('"'+I.toString()+'" is a reserved event name');if(t.unshift(I),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(t),this;const g={type:C.PacketType.EVENT,data:t,options:{}};if(g.options.compress=!1!==this.flags.compress,"function"==typeof t[t.length-1]){const I=this.ids++;i("emitting packet with ack id %d",I);const e=t.pop();this._registerAckCallback(I,e),g.id=I}const e=this.io.engine&&this.io.engine.transport&&this.io.engine.transport.writable;return!this.flags.volatile||e&&this.connected?this.connected?(this.notifyOutgoingListeners(g),this.packet(g)):this.sendBuffer.push(g):i("discard packet as the transport is not currently writable"),this.flags={},this}_registerAckCallback(I,t){var g;const e=null!==(g=this.flags.timeout)&&void 0!==g?g:this._opts.ackTimeout;if(void 0===e)return void(this.acks[I]=t);const C=this.io.setTimeoutFn(()=>{delete this.acks[I];for(let t=0;t{this.io.clearTimeoutFn(C),t.apply(this,[null,...I])}}emitWithAck(I,...t){const g=void 0!==this.flags.timeout||void 0!==this._opts.ackTimeout;return new Promise((e,C)=>{t.push((I,t)=>g?I?C(I):e(t):e(I)),this.emit(I,...t)})}_addToQueue(I){let t;"function"==typeof I[I.length-1]&&(t=I.pop());const g={id:this._queueSeq++,tryCount:0,pending:!1,args:I,flags:Object.assign({fromQueue:!0},this.flags)};I.push((I,...e)=>{if(g===this._queue[0])return null!==I?g.tryCount>this._opts.retries&&(i("packet [%d] is discarded after %d tries",g.id,g.tryCount),this._queue.shift(),t&&t(I)):(i("packet [%d] was successfully sent",g.id),this._queue.shift(),t&&t(null,...e)),g.pending=!1,this._drainQueue()}),this._queue.push(g),this._drainQueue()}_drainQueue(I=!1){if(i("draining queue"),!this.connected||0===this._queue.length)return;const t=this._queue[0];!t.pending||I?(t.pending=!0,t.tryCount++,i("sending packet [%d] (try n°%d)",t.id,t.tryCount),this.flags=t.flags,this.emit.apply(this,t.args)):i("packet [%d] has already been sent and is waiting for an ack",t.id)}packet(I){I.nsp=this.nsp,this.io._packet(I)}onopen(){i("transport is open - connecting"),"function"==typeof this.auth?this.auth(I=>{this._sendConnectPacket(I)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(I){this.packet({type:C.PacketType.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},I):I})}onerror(I){this.connected||this.emitReserved("connect_error",I)}onclose(I,t){i("close (%s)",I),this.connected=!1,delete this.id,this.emitReserved("disconnect",I,t)}onpacket(I){if(I.nsp===this.nsp)switch(I.type){case C.PacketType.CONNECT:I.data&&I.data.sid?this.onconnect(I.data.sid,I.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case C.PacketType.EVENT:case C.PacketType.BINARY_EVENT:this.onevent(I);break;case C.PacketType.ACK:case C.PacketType.BINARY_ACK:this.onack(I);break;case C.PacketType.DISCONNECT:this.ondisconnect();break;case C.PacketType.CONNECT_ERROR:this.destroy();const t=new Error(I.data.message);t.data=I.data.data,this.emitReserved("connect_error",t)}}onevent(I){const t=I.data||[];i("emitting event %j",t),null!=I.id&&(i("attaching ack callback to event"),t.push(this.ack(I.id))),this.connected?this.emitEvent(t):this.receiveBuffer.push(Object.freeze(t))}emitEvent(I){if(this._anyListeners&&this._anyListeners.length){const t=this._anyListeners.slice();for(const g of t)g.apply(this,I)}super.emit.apply(this,I),this._pid&&I.length&&"string"==typeof I[I.length-1]&&(this._lastOffset=I[I.length-1])}ack(I){const t=this;let g=!1;return function(...e){g||(g=!0,i("sending ack %j",e),t.packet({type:C.PacketType.ACK,id:I,data:e}))}}onack(I){const t=this.acks[I.id];"function"==typeof t?(i("calling ack %s with %j",I.id,I.data),t.apply(this,I.data),delete this.acks[I.id]):i("bad ack %s",I.id)}onconnect(I,t){i("socket connected with id %s",I),this.id=I,this.recovered=t&&this._pid===t,this._pid=t,this.connected=!0,this.emitBuffered(),this.emitReserved("connect"),this._drainQueue(!0)}emitBuffered(){this.receiveBuffer.forEach(I=>this.emitEvent(I)),this.receiveBuffer=[],this.sendBuffer.forEach(I=>{this.notifyOutgoingListeners(I),this.packet(I)}),this.sendBuffer=[]}ondisconnect(){i("server disconnect (%s)",this.nsp),this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(I=>I()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&(i("performing disconnect (%s)",this.nsp),this.packet({type:C.PacketType.DISCONNECT})),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(I){return this.flags.compress=I,this}get volatile(){return this.flags.volatile=!0,this}timeout(I){return this.flags.timeout=I,this}onAny(I){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(I),this}prependAny(I){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(I),this}offAny(I){if(!this._anyListeners)return this;if(I){const t=this._anyListeners;for(let g=0;g{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.globalThisShim=void 0,t.globalThisShim="undefined"!=typeof self?self:"undefined"!=typeof window?window:Function("return this")()},6270:function(I,t,g){"use strict";var e=this&&this.__importDefault||function(I){return I&&I.__esModule?I:{default:I}};Object.defineProperty(t,"__esModule",{value:!0});const C=e(g(5606)),c=e(g(8007)),s=e(g(1308)),i=e(g(8203)),F=e(g(1973)),l=e(g(5028)),B=e(g(6529)),n=e(g(6950)),Q=e(g(5379)),A=g(5919),U=e(g(7006)),d=g(9934),o=g(8626),V=(Boolean(C.default.env.IS_DOCKER),location.href.indexOf("localhost")>=0?i.default:F.default);class b{static get domain(){return n.default.env===Q.default.DEVELOPMENT||n.default.env===Q.default.LOCALHOST?Q.default.DEVELOPMENT_DOMAIN:Q.default.PRODUCTION_API_DOMAIN}static get option(){return{autoConnect:!0,reconnection:!0,reconnectionAttempts:1/0,reconnectionDelay:1e3,reconnectionDelayMax:5e3,timeout:2e4,transports:["websocket"],upgrade:!1,forceNew:!1,query:{},withCredentials:!1,extraHeaders:{}}}constructor(I){this.tune=this.tune.bind(this),this.untune=this.untune.bind(this),this.exe=this.exe.bind(this),this.onConnect=this.onConnect.bind(this),this.onConnectError=this.onConnectError.bind(this),this.onResponseEmit=this.onResponseEmit.bind(this),this.onResponseBoardcast=this.onResponseBoardcast.bind(this),this.offResponse=this.offResponse.bind(this),this.pid="",this.ios={},this.methods={},this.wssWorker=I}exe(I,t,g,e){(0,A.isValidKey)(g,this)&&"function"==typeof this[g]&&(this.pid=I,this[g](t,e)),this.ios[t]&&(this.pid=I,this.ios[t].emit(g,e))}tune(I,{bootOption:t}){const g=this.pid;let e=U.default.rootConnection,C={...d.init},i=`?tuneId=${I}`,F=`${b.domain}:${Q.default.PORTS.HTTPS}`;if(t){e=l.default.getConnection(t.connection),C=t.tuneOption,i+=`&${l.default.getTuneOptionString(t.tuneOption)}`;const I=s.default.getGateway({chConfigJson:V,tuneConnection:e});F=`${I.host}:${I.port}`}const n=`${B.default.HTTPS_PROTOCOL}//${F}${i}`;this.ios[I]=(0,c.default)(n,{...b.option}),this.ios[I].on("connect",()=>this.wssWorker.postMessage({pid:g,tuneId:I,method:o.statusTunning})),this.ios[I].on("disconnect",()=>{const t={type:"untune"};this.wssWorker.postMessage({pid:g,tuneId:I,method:t.type,apiState:t}),delete this.ios[I]}),this.ios[I].on("connect_error",t=>{console.error("Connection error:",I,t)}),this.onResponseEmit(I,e),this.onResponseBoardcast(I,e,C)}untune(I,t){(0,A.isValidKey)(t,this.ios)&&this.ios[t].disconnect()}onConnect(){}onConnectError(){}onResponseEmit(I,t){this.ios[I]._callbacks[t]||this.ios[I].on(I,t=>{const g=this.pid,e=t.type,C=B.default.SERVER_TO_API_EMIT;this.wssWorker.postMessage({pid:g,tuneId:I,method:e,serverToApiType:C,apiState:t})})}onResponseBoardcast(I,t,g){if(!this.ios[I]._callbacks[t]){const e=t=>{const g=this.pid,e=t.type,C=B.default.SERVER_TO_API_BROADCAST;this.wssWorker.postMessage({pid:g,tuneId:I,method:e,serverToApiType:C,apiState:t})};this.ios[I].on(`tune:${t}`,e),Object.keys(g).forEach(C=>{g[C]&&this.ios[I].on(`${C}:${t}`,e)})}}offResponse(I,t){this.ios[I]&&this.ios[I]._callbacks[I]&&(this.ios[I].off(I),this.ios[I].off(t))}}t.default=b},6348:(I,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=(I=[],t)=>{switch(t.type){case"API_TO_SERVER[REQUEST]:changeThread":return[];case"SERVER_TO_API[EMIT]:tune":case"SERVER_TO_API[EMIT]:fetchPosts":case"SERVER_TO_API[BROADCAST]:posts":if(t.posts&&t.posts.length>0)return[...I,...t.posts];break;case"SERVER_TO_API[EMIT]:getMore":if(t.posts&&t.posts.length>0)return[...t.posts,...I]}return I}},6376:(I,t,g)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.decodePayload=t.decodePacket=t.encodePayload=t.encodePacket=t.protocol=void 0,t.createPacketEncoderStream=function(){return new TransformStream({transform(I,t){(0,e.encodePacketToBinary)(I,g=>{const e=g.length;let C;if(e<126)C=new Uint8Array(1),new DataView(C.buffer).setUint8(0,e);else if(e<65536){C=new Uint8Array(3);const I=new DataView(C.buffer);I.setUint8(0,126),I.setUint16(1,e)}else{C=new Uint8Array(9);const I=new DataView(C.buffer);I.setUint8(0,127),I.setBigUint64(1,BigInt(e))}I.data&&"string"!=typeof I.data&&(C[0]|=128),t.enqueue(C),t.enqueue(g)})}})},t.createPacketDecoderStream=function(I,t){i||(i=new TextDecoder);const g=[];let e=0,s=-1,B=!1;return new TransformStream({transform(n,Q){for(g.push(n);;){if(0===e){if(F(g)<1)break;const I=l(g,1);B=!(128&~I[0]),s=127&I[0],e=s<126?3:126===s?1:2}else if(1===e){if(F(g)<2)break;const I=l(g,2);s=new DataView(I.buffer,I.byteOffset,I.length).getUint16(0),e=3}else if(2===e){if(F(g)<8)break;const I=l(g,8),t=new DataView(I.buffer,I.byteOffset,I.length),C=t.getUint32(0);if(C>Math.pow(2,21)-1){Q.enqueue(c.ERROR_PACKET);break}s=C*Math.pow(2,32)+t.getUint32(4),e=3}else{if(F(g)I){Q.enqueue(c.ERROR_PACKET);break}}}})};const e=g(2686);Object.defineProperty(t,"encodePacket",{enumerable:!0,get:function(){return e.encodePacket}});const C=g(2662);Object.defineProperty(t,"decodePacket",{enumerable:!0,get:function(){return C.decodePacket}});const c=g(2046),s=String.fromCharCode(30);let i;function F(I){return I.reduce((I,t)=>I+t.length,0)}function l(I,t){if(I[0].length===t)return I.shift();const g=new Uint8Array(t);let e=0;for(let C=0;C{const g=I.length,C=new Array(g);let c=0;I.forEach((I,i)=>{(0,e.encodePacket)(I,!1,I=>{C[i]=I,++c===g&&t(C.join(s))})})},t.decodePayload=(I,t)=>{const g=I.split(s),e=[];for(let I=0;I{"use strict";Object.defineProperty(t,"__esModule",{value:!0});class g{static get TALKN_PROTOCOL(){return"talkn:"}static get HTTP_PROTOCOL(){return"http:"}static get HTTPS_PROTOCOL(){return"https:"}static get WSS_PROTOCOL(){return"wss:"}static get UNKNOWN_PROTOCOL(){return"????:"}static get EMIT_ME_KEY(){return"@EMIT_ME"}static get API_SEPARATE_IO_TYPE_START(){return"["}static get API_SEPARATE_IO_TYPE_END(){return"]"}static get API_REQUEST_TYPE(){return"REQUEST"}static get API_RESPONSE_TYPE_EMIT(){return"EMIT"}static get API_RESPONSE_TYPE_BROADCAST(){return"BROADCAST"}static get API_SETUP(){return"API_SETUP"}static get UNKNOWN(){return"UNKNOWN"}static get CONNECTION_SERVER_KEY(){return"CONNECTION_SERVER"}static get API_TO_SERVER_REQUEST(){return`API_TO_SERVER[${g.API_REQUEST_TYPE}]${g.METHOD_COLON}`}static get SERVER_TO_API_EMIT(){return`SERVER_TO_API[${g.API_RESPONSE_TYPE_EMIT}]${g.METHOD_COLON}`}static get SERVER_TO_API_BROADCAST(){return`SERVER_TO_API[${g.API_RESPONSE_TYPE_BROADCAST}]${g.METHOD_COLON}`}static get API_TO_CLIENT_REQUEST(){return`API_TO_CLIENT[${g.API_REQUEST_TYPE}]${g.METHOD_COLON}`}static get API_TO_CLIENT_EMIT(){return`API_TO_CLIENT[${g.API_RESPONSE_TYPE_EMIT}]${g.METHOD_COLON}`}static get API_TO_CLIENT_BROADCAST(){return`API_TO_CLIENT[${g.API_RESPONSE_TYPE_BROADCAST}]${g.METHOD_COLON}`}static get API_BROADCAST_CALLBACK(){return"tune"}static get REDUX_ACTION_KEY(){return"type"}static get METHOD_COLON(){return":"}static get ADD_CLIENT_ACTION_PREFIX(){return"API_TO_CLIENT"}static get map(){return{tune:{requestPublicState:{tuneCh:["connection"]},requestPrivateState:{},responseEmitState:{user:["uid"],setting:"*",thread:"*"},responseBroadcastState:{thread:["liveCnt","ch"]}},fetchPosts:{requestPublicState:{},requestPrivateState:{thread:["ch","protocol","host","hasSlash"],app:["multistream","rootCh","dispThreadType","actioned","offsetFindId","isToggleMultistream"]},responseEmitState:{posts:"*",thread:"*"},responseBroadcastState:{}},getMore:{requestPublicState:{},requestPrivateState:{thread:["ch"],app:["multistream","dispThreadType","offsetFindId"]},responseEmitState:{app:["dispThreadType","offsetFindId"],posts:"*"},responseBroadcastState:{}},updateThread:{requestPublicState:{},requestPrivateState:{thread:["ch","protocol","host","hasSlash"]},responseEmitState:{thread:"*"},responseBroadcastState:{}},changeThread:{requestPublicState:{},requestPrivateState:{thread:["ch","hasSlash","protocol"],app:["tunedCh","multistream","rootCh","dispThreadType","actioned","offsetFindId","isToggleMultistream"]},responseEmitState:{thread:"*"},responseBroadcastState:{thread:["liveCnt","ch"]}},changeThreadDetail:{requestPublicState:{},requestPrivateState:{thread:["ch"]},responseEmitState:{thread:"*"},responseBroadcastState:{}},addFindChild:{requestPublicState:{},requestPrivateState:{thread:["ch"]},responseEmitState:{thread:"*"},responseBroadcastState:{}},fetchRank:{requestPublicState:{},requestPrivateState:{app:["findType","rootCh","isRankDetailMode"]},responseEmitState:{rank:"*"},responseBroadcastState:{}},post:{requestPublicState:{},requestPrivateState:{user:["uid","utype"],app:["inputPost","inputStampId","inputCurrentTime","dispThreadType"],thread:["findType","title","protocol","ch","chs","emotions","favicon","contentType"]},responseEmitState:{},responseBroadcastState:{posts:"*",thread:["ch","emotions","postCnt"],user:["uid"]}},updateThreadServerMetas:{requestPublicState:{thread:["serverMetas"]},requestPrivateState:{thread:["host","protocol","ch"],user:["uid"]},responseEmitState:{thread:"*"},responseBroadcastState:{}},disconnect:{requestPublicState:{},requestPrivateState:{},responseEmitState:{},responseBroadcastState:{thread:["liveCnt","ch"]}}}}static getSequenceActionMap(I){const t=I.split(g.METHOD_COLON);if(t&&t[0]){const I=String(t[0].split("[")[0]);let e;return e=t[0].indexOf(`[${g.API_REQUEST_TYPE}]`)>0?g.API_REQUEST_TYPE:t[0].indexOf(`[${g.API_RESPONSE_TYPE_EMIT}]`)>0?g.API_RESPONSE_TYPE_EMIT:g.API_RESPONSE_TYPE_BROADCAST,{sequence:I,actionType:e,actionName:String(t[1])}}throw"Error: Sequence getSequenceActionMap"}static updateCallbackExeConditionMap(I){let t={emit:!0,broadcast:!0};const e=g.map;return e[I]&&(t.emit=!(Object.keys(e[I].responseEmitState).length>0),t.broadcast=!(Object.keys(e[I].responseBroadcastState).length>0)),t}static convertServerToApiIoType(I,t){return t.indexOf(`${g.API_SEPARATE_IO_TYPE_START}${g.API_REQUEST_TYPE}${g.API_SEPARATE_IO_TYPE_END}`)>=0?g.API_REQUEST_TYPE:t.indexOf(`${g.API_SEPARATE_IO_TYPE_START}${g.API_RESPONSE_TYPE_BROADCAST}${g.API_SEPARATE_IO_TYPE_END}`)>=0?g.API_RESPONSE_TYPE_BROADCAST:t.indexOf(`${g.API_SEPARATE_IO_TYPE_START}${g.API_RESPONSE_TYPE_EMIT}${g.API_SEPARATE_IO_TYPE_END}`)>=0?g.API_RESPONSE_TYPE_EMIT:g.API_SETUP}static convertExtToClientActionType(I,t){return g.convertApiToClientActionType(t)}static convertApiToClientActionType(I){return 0===I.indexOf(g.API_TO_SERVER_REQUEST)?I.replace(g.API_TO_SERVER_REQUEST,g.API_TO_CLIENT_REQUEST):0===I.indexOf(g.SERVER_TO_API_EMIT)?I.replace(g.SERVER_TO_API_EMIT,g.API_TO_CLIENT_EMIT):0===I.indexOf(g.SERVER_TO_API_BROADCAST)?I.replace(g.SERVER_TO_API_BROADCAST,g.API_TO_CLIENT_BROADCAST):I}static getRequestState(I,t,e){const C=I.replace(g.API_TO_SERVER_REQUEST,""),c=g.map,{requestPublicState:s,requestPrivateState:i}=c[C];let F={[g.REDUX_ACTION_KEY]:C};return Object.keys(i).forEach(I=>{F[I]||(F[I]={}),i[I].forEach(g=>{if(!F[I][g]){let C=t[I][g];e&&e[I]&&e[I][g]&&(C=e[I][g]),F[I][g]=C}})}),Object.keys(s).forEach(I=>{F[I]||(F[I]={}),s[I].forEach(t=>{F[I][t]||(F[I][t]=e)})}),F}static getResponseState(I,t,e){const C=t.type,c=g.map[C][`response${I}State`];let s={[g.REDUX_ACTION_KEY]:C};return Object.keys(c).forEach(I=>{if(!e[I])throw`SEQUENCE ERROR: NO_UPDATE_STATE_KEY: ${t.type}: ${I}`;{const g=c[I];let C=e[I];"model"===C.constructor.name&&(C=C.toJSON(),delete C._id,delete C.__v),"*"===g?s={...s,[I]:C}:g.forEach(g=>{if(void 0===e[I][g])throw`SEQUENCE ERROR: NO_UPDATE_STATE_COLUMN_NAME: ${t.type}: ${I}.${g}`;s={...s,[I]:{...s[I],[g]:e[I][g]}}})}}),s}static getRequestActionState(I,t=null,g=null){return"string"==typeof t&&null===g?{type:I}:"object"==typeof t&&"object"==typeof g?{...t,...g,type:I}:"string"==typeof t&&"object"==typeof g?{...g,type:I}:{...t,type:I}}}t.default=g},6585:I=>{var t=1e3,g=60*t,e=60*g,C=24*e,c=7*C;function s(I,t,g,e){var C=t>=1.5*g;return Math.round(I/g)+" "+e+(C?"s":"")}I.exports=function(I,i){i=i||{};var F,l,B=typeof I;if("string"===B&&I.length>0)return function(I){if(!((I=String(I)).length>100)){var s=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(I);if(s){var i=parseFloat(s[1]);switch((s[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*i;case"weeks":case"week":case"w":return i*c;case"days":case"day":case"d":return i*C;case"hours":case"hour":case"hrs":case"hr":case"h":return i*e;case"minutes":case"minute":case"mins":case"min":case"m":return i*g;case"seconds":case"second":case"secs":case"sec":case"s":return i*t;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return i;default:return}}}}(I);if("number"===B&&isFinite(I))return i.long?(F=I,(l=Math.abs(F))>=C?s(F,l,C,"day"):l>=e?s(F,l,e,"hour"):l>=g?s(F,l,g,"minute"):l>=t?s(F,l,t,"second"):F+" ms"):function(I){var c=Math.abs(I);return c>=C?Math.round(I/C)+"d":c>=e?Math.round(I/e)+"h":c>=g?Math.round(I/g)+"m":c>=t?Math.round(I/t)+"s":I+"ms"}(I);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(I))}},6617:(I,t,g)=>{t.formatArgs=function(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+I.exports.humanize(this.diff),!this.useColors)return;const g="color: "+this.color;t.splice(1,0,g,"color: inherit");let e=0,C=0;t[0].replace(/%[a-zA-Z%]/g,I=>{"%%"!==I&&(e++,"%c"===I&&(C=e))}),t.splice(C,0,g)},t.save=function(I){try{I?t.storage.setItem("debug",I):t.storage.removeItem("debug")}catch(I){}},t.load=function(){let I;try{I=t.storage.getItem("debug")}catch(I){}return!I&&"undefined"!=typeof process&&"env"in process&&(I=process.env.DEBUG),I},t.useColors=function(){if("undefined"!=typeof window&&window.process&&("renderer"===window.process.type||window.process.__nwjs))return!0;if("undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let I;return"undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&(I=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(I[1],10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},t.storage=function(){try{return localStorage}catch(I){}}(),t.destroy=(()=>{let I=!1;return()=>{I||(I=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],t.log=console.debug||console.log||(()=>{}),I.exports=g(9040)(t);const{formatters:e}=I.exports;e.j=function(I){try{return JSON.stringify(I)}catch(I){return"[UnexpectedJSONParseError]: "+I.message}}},6894:function(I,t,g){"use strict";var e=this&&this.__importDefault||function(I){return I&&I.__esModule?I:{default:I}};Object.defineProperty(t,"__esModule",{value:!0}),t.url=void 0;const C=g(4956),c=e(g(9368)).default("socket.io-client:url");t.url=function(I,t="",g){let e=I;g=g||"undefined"!=typeof location&&location,null==I&&(I=g.protocol+"//"+g.host),"string"==typeof I&&("/"===I.charAt(0)&&(I="/"===I.charAt(1)?g.protocol+I:g.host+I),/^(https?|wss?):\/\//.test(I)||(c("protocol-less url %s",I),I=void 0!==g?g.protocol+"//"+I:"https://"+I),c("parse %s",I),e=C.parse(I)),e.port||(/^(http|ws)$/.test(e.protocol)?e.port="80":/^(http|ws)s$/.test(e.protocol)&&(e.port="443")),e.path=e.path||"/";const s=-1!==e.host.indexOf(":")?"["+e.host+"]":e.host;return e.id=e.protocol+"://"+s+":"+e.port+t,e.href=e.protocol+"://"+s+(g&&g.port===e.port?"":":"+e.port),e}},6950:function(I,t,g){"use strict";var e=this&&this.__importDefault||function(I){return I&&I.__esModule?I:{default:I}};Object.defineProperty(t,"__esModule",{value:!0}),t.getHostName=h;const C=e(g(5379)),c=g(5919),{PRODUCTION:s,DEVELOPMENT:i,PRODUCTION_DOMAIN:F,DEVELOPMENT_DOMAIN:l,SUB_DOMAINS:B,PORTS:n}=C.default,Q=h(),A=function(I){return c.IS_NODE&&"localhost"===I?C.default.DEVELOPMENT:C.default.PRODUCTION}(Q),U={client:"talkn.client.js",api:"talkn.api.js",wsWorker:"ws.api.worker.js",ext:"talkn.ext.js",cover:"talkn.cover.js",tune:"talkn.tune.js",components:"talkn.components.js"},d=A===i,o=A===s?F:l,V=`${B.WWW}.${o}`,b=`${B.COVER}.${o}`,a=`${B.API}.${o}`,u=d?`${o}:${n.DEVELOPMENT_API}/${U.api}`:`${a}/v1`,r=d?`${o}:${n.DEVELOPMENT_CLIENT}/${U.client}`:`${B.CLIENT}.${o}`,G=d?`${o}:${n.DEVELOPMENT_COMPONENTS}/${U.components}`:`${B.COMPONENTS}.${o}`,x=`${B.DESC}.${o}`,Z=`${B.PORTAL}.${o}`,R=`${B.ASSETS}.${o}`,X=`${R}/img/`,L={domain:o,isDev:d,env:A,files:U,hostName:Q,apiURL:a,apiAccessURL:u,coverURL:b,wwwURL:V,descURL:x,portalURL:Z,clientURL:r,assetsURL:R,autoURL:`${B.AUTO}.${o}`,extURL:`${B.EXT}.${o}`,compURL:`${B.COMP}.${o}`,ownURL:`${B.OWN}.${o}`,newsURL:`${B.NEWS}.${o}`,tuneURL:`${B.TUNE}.${o}`,bannerURL:`${B.BANNER}.${o}`,componentsURL:G,transactionURL:`${B.TRANSACTION}.${o}`,authURL:`${B.AUTH}.${o}`,assetsImgPath:X,assetsCoverPath:`${R}/cover/`,assetsIconPath:`${R}/icon/`,assetsJsPath:`${R}/js/`,sessionURL:`${B.SESSION}.${o}`,description:"talkn can share comments with users watching the same WEB page. Please enjoy the world of talkn.",apiVer:1,favicon:`https://${R}/favicon.ico`,lpLanguages:["en","zh","ja","de","fr","hi","pt","it","ru","ko","es","id","tr","nl","ar","zh-TW","pl","sv","th","fa","nn","ga","he","mr"],defaultBirthdayUnixtime:1e12,findOneThreadActiveHour:1,findOnePostCnt:30,findOneLimitCnt:300,ogpImages:{Html:`//${X}talkn_logo_html.png`,Music:`//${X}talkn_logo_music.png`,Video:`//${X}talkn_logo_video.png`},defaultFavicon:`//${B.ASSETS}.${o}/favicon.ico`};function h(){if(c.IS_NODE){const I=process.env?.HOSTNAME||process.env?.HOST||process.env?.NODE_HOSTNAME;return I?.trim()?I.trim():g(3062).hostname()}return c.IS_BROWSER?location.hostname:"localhost"}t.default={...L}},7006:function(I,t,g){"use strict";var e=this&&this.__importDefault||function(I){return I&&I.__esModule?I:{default:I}};Object.defineProperty(t,"__esModule",{value:!0}),t.getConnectionsOptions=t.init=void 0;const C=g(5919),c=e(g(6529)),s=e(g(5379)),i=e(g(5028));t.init={tuneId:"",connection:"",connections:[],type:"",liveCnt:0,favicon:"",gateway:"",server:"",active:!1,audios:[],videos:[]},t.getConnectionsOptions={isSelfExclude:!1,isSortUpperLayer:!0};class F{constructor(I=t.init){return Object.assign(this,I)}static getParentConnection(I){if(I===F.rootConnection)return;let t=I.replace(/.$/,"");const g=t.lastIndexOf("/");return t.substring(0,g+1)}static getTopConnection(I){if(I===F.rootConnection)return F.rootConnection;const t=this.separetor;return`${t}${I.split(t)[1]}${t}`}static getConnection(I){return i.default.getConnection(I)}static getConnectionFromUrl(I){const t=I.split("?")[1],g=new URLSearchParams(t).get("tuneId");return null===g?F.rootConnection:F.getConnectionFromTuneId(g)}static getConnectionFromTuneId(I){const t=decodeURIComponent(I??""),g=C.generateUniqueKeySeparator.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),e=new RegExp(`^con${g}(.*?)${g}`),c=t.match(e);let s=c?.[1]?c?.[1]:F.rootConnection;return s=s.startsWith(F.rootConnection)?s:`${F.rootConnection}${s}`,s=s.endsWith(F.rootConnection)?s:`${s}${F.rootConnection}`,s}static getFavicon(I){return I===s.default.DEVELOPMENT_DOMAIN||I===F.rootConnection?"":`${I}/favicon.ico`}static getConnections(I,g=t.getConnectionsOptions){const{isSelfExclude:e,isSortUpperLayer:C}=g;let c=[F.rootConnection];if(I&&I!==F.rootConnection){const t=I.split(F.connectionSeparator).filter(I=>""!==I);let g="";t.forEach(t=>{g+=`${this.separetor}${t}`;const C=`${g}${this.separetor}`;e&&C===I||c.push(C)})}return C?c.sort((I,t)=>I.length-t.length):c.sort((I,t)=>t.length-I.length),c}static getMyConnectionClass(I,t,g){const e=[],C=I.slice().sort((I,t)=>I.length-t.length);g=g||C[C.length-1];let c=!1;for(const s in C){if(I[s]===t&&(c=!0),I[s]===g)break;c&&e.push(I[s])}return e}static getType(I){return I.startsWith(c.default.HTTPS_PROTOCOL)||I.startsWith(c.default.HTTP_PROTOCOL)?F.defultType:F.plainType}static isMediaCh(I){return I.startsWith("audio")||I.startsWith("video")}static getGateway(I){return I&&I.gateway?.host&&I.gateway.port?`${I.gateway.host}:${I.gateway.port}`:`127.0.0.1:${s.default.PORTS.IO_ROOT}`}static getServer(I){return I&&I.ioServer.host&&I.ioServer.port?`${I.ioServer.host}:${I.ioServer.port}`:`127.0.0.1:${s.default.PORTS.IO_ROOT}`}}F.separetor="/",F.rootConnection=F.separetor,F.connectionSeparator="/",F.defaultProtocol="talkn::",F.defultType="text/html",F.plainType="plain",F.getChParams=I=>{const{tuneId:t,connection:g,host:e,liveCnt:C,chConfig:c}=I,s=F.getConnection(g);return{tuneId:t,connection:s,connections:F.getConnections(s),favicon:F.getFavicon(e),type:F.getType(e),liveCnt:C,gateway:F.getGateway(c),server:F.getServer(c)}},t.default=F},7743:(I,t)=>{"use strict";function g(I){I=I||{},this.ms=I.min||100,this.max=I.max||1e4,this.factor=I.factor||2,this.jitter=I.jitter>0&&I.jitter<=1?I.jitter:0,this.attempts=0}Object.defineProperty(t,"__esModule",{value:!0}),t.Backoff=void 0,t.Backoff=g,g.prototype.duration=function(){var I=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var t=Math.random(),g=Math.floor(t*this.jitter*I);I=1&Math.floor(10*t)?I+g:I-g}return 0|Math.min(I,this.max)},g.prototype.reset=function(){this.attempts=0},g.prototype.setMin=function(I){this.ms=I},g.prototype.setMax=function(I){this.max=I},g.prototype.setJitter=function(I){this.jitter=I}},8007:function(I,t,g){"use strict";var e=this&&this.__importDefault||function(I){return I&&I.__esModule?I:{default:I}};Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.connect=t.io=t.Socket=t.Manager=t.protocol=void 0;const C=g(6894),c=g(3776);Object.defineProperty(t,"Manager",{enumerable:!0,get:function(){return c.Manager}});const s=g(6214);Object.defineProperty(t,"Socket",{enumerable:!0,get:function(){return s.Socket}});const i=e(g(9368)).default("socket.io-client"),F={};function l(I,t){"object"==typeof I&&(t=I,I=void 0),t=t||{};const g=C.url(I,t.path||"/socket.io"),e=g.source,s=g.id,l=g.path,B=F[s]&&l in F[s].nsps;let n;return t.forceNew||t["force new connection"]||!1===t.multiplex||B?(i("ignoring socket cache for %s",e),n=new c.Manager(e,t)):(F[s]||(i("new io instance for %s",e),F[s]=new c.Manager(e,t)),n=F[s]),g.query&&!t.query&&(t.query=g.queryKey),n.socket(g.path,t)}t.io=l,t.connect=l,t.default=l,Object.assign(l,{Manager:c.Manager,Socket:s.Socket,io:l,connect:l});var B=g(4627);Object.defineProperty(t,"protocol",{enumerable:!0,get:function(){return B.protocol}}),I.exports=l},8026:(I,t,g)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TalknAPI=c;const e=g(9815);class C{constructor(I,t,g){this.tuneId=I,this.connection=t,this.storesDispatcher=g}getState(){return this.storesDispatcher.getState(this.tuneId)}async fetchPosts(){return this.storesDispatcher.fetchPosts(this.tuneId)}async fetchRank(){return this.storesDispatcher.fetchRank(this.tuneId)}async fetchDetail(){return this.storesDispatcher.fetchDetail(this.tuneId)}async post(I){return this.storesDispatcher.post(I,this.tuneId)}subscribe(I){return this.storesDispatcher.subscribeToTuneId(this.tuneId,I)}async untune(){return this.storesDispatcher.untune(this.connection)}}async function c(I,t){const g=await(0,e.createStoresDispatcher)({isTuneSameCh:!0,isTuneMultiCh:!0,...t}),c=await g.tune(I,t);if(!c.tuneId)throw new Error(`Failed to tune to connection: ${I}`);const s=c.tuneId;return new C(s,I,g)}t.default=c},8156:function(I,t,g){"use strict";var e=this&&this.__importDefault||function(I){return I&&I.__esModule?I:{default:I}};Object.defineProperty(t,"__esModule",{value:!0});const C=e(g(8026));window.TalknAPI=C.default},8203:I=>{"use strict";I.exports=JSON.parse('{"gateway":{"host":"localhost","port":443},"ioServer":{"location":"/","host":"localhost","port":443},"redis":{"client":{"host":"localhost","port":6379},"cluster":[]},"accept":{"rankAll":true},"payjp":{},"service":{"type":"Lightsail","plan":{}},"children":[{"gateway":{"host":"localhost","port":10001},"ioServer":{"location":"aa.com/","host":"localhost","port":443},"redis":{"client":{"host":"localhost","port":6379},"cluster":[]},"accept":{"rankAll":false},"payjp":{},"service":{"type":"Lightsail","plan":{}},"children":[{"gateway":null,"ioServer":{"location":"11/22/33/","host":"localhost","port":443},"redis":{"client":{"host":"localhost","port":6379},"cluster":[]},"accept":{"rankAll":false},"payjp":{},"service":{"type":"Lightsail","plan":{}},"children":[]}]},{"gateway":{"host":"localhost","port":10002},"ioServer":{"location":"bb.com/","host":"localhost","port":443},"redis":{"client":{"host":"localhost","port":6379},"cluster":[]},"accept":{"rankAll":false},"payjp":{},"service":{"type":"Lightsail","plan":{}},"children":[{"gateway":null,"ioServer":{"location":"11/22/","host":"localhost","port":443},"redis":{"client":{"host":"localhost","port":6379},"cluster":[]},"accept":{"rankAll":false},"payjp":{},"service":{"type":"Lightsail","plan":{}},"children":[{"gateway":null,"ioServer":{"location":"BBBB/","host":"localhost","port":443},"redis":{"client":{"host":"localhost","port":6379},"cluster":[]},"accept":{"rankAll":false},"payjp":{},"service":{"type":"Lightsail","plan":{}},"children":[]}]}]},{"gateway":{"host":"localhost","port":10003},"ioServer":{"location":"cc.com/","host":"localhost","port":443},"redis":{"client":{"host":"localhost","port":6379},"cluster":[]},"accept":{"rankAll":false},"payjp":{},"service":{"type":"Lightsail","plan":{}},"children":[]},{"gateway":{"host":"localhost","port":10004},"ioServer":{"location":"dd.com/","host":"localhost","port":443},"redis":{"client":{"host":"localhost","port":6379},"cluster":[]},"accept":{"rankAll":false},"payjp":{},"service":{"type":"Lightsail","plan":{}},"children":[{"gateway":null,"ioServer":{"location":"a11/b22/","host":"localhost","port":443},"redis":{"client":{"host":"localhost","port":6379},"cluster":[]},"accept":{"rankAll":false},"payjp":{},"service":{"type":"Lightsail","plan":{}},"children":[{"gateway":null,"ioServer":{"location":"sBBBB/","host":"localhost","port":443},"redis":{"client":{"host":"localhost","port":6379},"cluster":[]},"accept":{"rankAll":false},"payjp":{},"service":{"type":"Lightsail","plan":{}},"children":[]}]}]}]}')},8223:function(I,t,g){"use strict";var e=this&&this.__importDefault||function(I){return I&&I.__esModule?I:{default:I}};Object.defineProperty(t,"__esModule",{value:!0}),t.Socket=void 0;const C=g(9419),c=g(5374),s=g(8661),i=g(1015),F=e(g(6617)),l=g(4454),B=g(6376),n=g(4087),Q=(0,F.default)("engine.io-client:socket");class A extends l.Emitter{constructor(I,t={}){super(),this.binaryType=n.defaultBinaryType,this.writeBuffer=[],I&&"object"==typeof I&&(t=I,I=null),I?(I=(0,i.parse)(I),t.hostname=I.host,t.secure="https"===I.protocol||"wss"===I.protocol,t.port=I.port,I.query&&(t.query=I.query)):t.host&&(t.hostname=(0,i.parse)(t.host).host),(0,c.installTimerFunctions)(this,t),this.secure=null!=t.secure?t.secure:"undefined"!=typeof location&&"https:"===location.protocol,t.hostname&&!t.port&&(t.port=this.secure?"443":"80"),this.hostname=t.hostname||("undefined"!=typeof location?location.hostname:"localhost"),this.port=t.port||("undefined"!=typeof location&&location.port?location.port:this.secure?"443":"80"),this.transports=t.transports||["polling","websocket","webtransport"],this.writeBuffer=[],this.prevBufferLen=0,this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},t),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),"string"==typeof this.opts.query&&(this.opts.query=(0,s.decode)(this.opts.query)),this.id=null,this.upgrades=null,this.pingInterval=null,this.pingTimeout=null,this.pingTimeoutTimer=null,"function"==typeof addEventListener&&(this.opts.closeOnBeforeunload&&(this.beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this.beforeunloadEventListener,!1)),"localhost"!==this.hostname&&(this.offlineEventListener=()=>{this.onClose("transport close",{description:"network connection lost"})},addEventListener("offline",this.offlineEventListener,!1))),this.open()}createTransport(I){Q('creating transport "%s"',I);const t=Object.assign({},this.opts.query);t.EIO=B.protocol,t.transport=I,this.id&&(t.sid=this.id);const g=Object.assign({},this.opts,{query:t,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[I]);return Q("options: %j",g),new C.transports[I](g)}open(){let I;if(this.opts.rememberUpgrade&&A.priorWebsocketSuccess&&-1!==this.transports.indexOf("websocket"))I="websocket";else{if(0===this.transports.length)return void this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);I=this.transports[0]}this.readyState="opening";try{I=this.createTransport(I)}catch(I){return Q("error while creating transport: %s",I),this.transports.shift(),void this.open()}I.open(),this.setTransport(I)}setTransport(I){Q("setting transport %s",I.name),this.transport&&(Q("clearing existing transport %s",this.transport.name),this.transport.removeAllListeners()),this.transport=I,I.on("drain",this.onDrain.bind(this)).on("packet",this.onPacket.bind(this)).on("error",this.onError.bind(this)).on("close",I=>this.onClose("transport close",I))}probe(I){Q('probing transport "%s"',I);let t=this.createTransport(I),g=!1;A.priorWebsocketSuccess=!1;const e=()=>{g||(Q('probe transport "%s" opened',I),t.send([{type:"ping",data:"probe"}]),t.once("packet",e=>{if(!g)if("pong"===e.type&&"probe"===e.data){if(Q('probe transport "%s" pong',I),this.upgrading=!0,this.emitReserved("upgrading",t),!t)return;A.priorWebsocketSuccess="websocket"===t.name,Q('pausing current transport "%s"',this.transport.name),this.transport.pause(()=>{g||"closed"!==this.readyState&&(Q("changing transport and sending upgrade packet"),l(),this.setTransport(t),t.send([{type:"upgrade"}]),this.emitReserved("upgrade",t),t=null,this.upgrading=!1,this.flush())})}else{Q('probe transport "%s" failed',I);const g=new Error("probe error");g.transport=t.name,this.emitReserved("upgradeError",g)}}))};function C(){g||(g=!0,l(),t.close(),t=null)}const c=g=>{const e=new Error("probe error: "+g);e.transport=t.name,C(),Q('probe transport "%s" failed because of error: %s',I,g),this.emitReserved("upgradeError",e)};function s(){c("transport closed")}function i(){c("socket closed")}function F(I){t&&I.name!==t.name&&(Q('"%s" works - aborting "%s"',I.name,t.name),C())}const l=()=>{t.removeListener("open",e),t.removeListener("error",c),t.removeListener("close",s),this.off("close",i),this.off("upgrading",F)};t.once("open",e),t.once("error",c),t.once("close",s),this.once("close",i),this.once("upgrading",F),-1!==this.upgrades.indexOf("webtransport")&&"webtransport"!==I?this.setTimeoutFn(()=>{g||t.open()},200):t.open()}onOpen(){if(Q("socket open"),this.readyState="open",A.priorWebsocketSuccess="websocket"===this.transport.name,this.emitReserved("open"),this.flush(),"open"===this.readyState&&this.opts.upgrade){Q("starting upgrade probes");let I=0;const t=this.upgrades.length;for(;I{this.onClose("ping timeout")},this.pingInterval+this.pingTimeout),this.opts.autoUnref&&this.pingTimeoutTimer.unref()}onDrain(){this.writeBuffer.splice(0,this.prevBufferLen),this.prevBufferLen=0,0===this.writeBuffer.length?this.emitReserved("drain"):this.flush()}flush(){if("closed"!==this.readyState&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){const I=this.getWritablePackets();Q("flushing %d packets in socket",I.length),this.transport.send(I),this.prevBufferLen=I.length,this.emitReserved("flush")}}getWritablePackets(){if(!(this.maxPayload&&"polling"===this.transport.name&&this.writeBuffer.length>1))return this.writeBuffer;let I=1;for(let t=0;t0&&I>this.maxPayload)return Q("only send %d out of %d packets",t,this.writeBuffer.length),this.writeBuffer.slice(0,t);I+=2}return Q("payload size is %d (max: %d)",I,this.maxPayload),this.writeBuffer}write(I,t,g){return this.sendPacket("message",I,t,g),this}send(I,t,g){return this.sendPacket("message",I,t,g),this}sendPacket(I,t,g,e){if("function"==typeof t&&(e=t,t=void 0),"function"==typeof g&&(e=g,g=null),"closing"===this.readyState||"closed"===this.readyState)return;(g=g||{}).compress=!1!==g.compress;const C={type:I,data:t,options:g};this.emitReserved("packetCreate",C),this.writeBuffer.push(C),e&&this.once("flush",e),this.flush()}close(){const I=()=>{this.onClose("forced close"),Q("socket closing - telling transport to close"),this.transport.close()},t=()=>{this.off("upgrade",t),this.off("upgradeError",t),I()},g=()=>{this.once("upgrade",t),this.once("upgradeError",t)};return"opening"!==this.readyState&&"open"!==this.readyState||(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?g():I()}):this.upgrading?g():I()),this}onError(I){Q("socket error %j",I),A.priorWebsocketSuccess=!1,this.emitReserved("error",I),this.onClose("transport error",I)}onClose(I,t){"opening"!==this.readyState&&"open"!==this.readyState&&"closing"!==this.readyState||(Q('socket close with reason: "%s"',I),this.clearTimeoutFn(this.pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),"function"==typeof removeEventListener&&(removeEventListener("beforeunload",this.beforeunloadEventListener,!1),removeEventListener("offline",this.offlineEventListener,!1)),this.readyState="closed",this.id=null,this.emitReserved("close",I,t),this.writeBuffer=[],this.prevBufferLen=0)}filterUpgrades(I){const t=[];let g=0;const e=I.length;for(;g{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.decode=t.encode=void 0,t.encode=function(I){let t="";for(let g in I)I.hasOwnProperty(g)&&(t.length&&(t+="&"),t+=encodeURIComponent(g)+"="+encodeURIComponent(I[g]));return t},t.decode=function(I){let t={},g=I.split("&");for(let I=0,e=g.length;I{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=I=>this.onClose({description:"websocket connection closed",context:I}),this.ws.onmessage=I=>this.onData(I.data),this.ws.onerror=I=>this.onError("websocket error",I)}write(I){this.writable=!1;for(let t=0;t{const t={};!i.usingBrowserWebSocket&&(g.options&&(t.compress=g.options.compress),this.opts.perMessageDeflate)&&("string"==typeof I?Buffer.byteLength(I):I.length){this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){void 0!==this.ws&&(this.ws.close(),this.ws=null)}uri(){const I=this.opts.secure?"wss":"ws",t=this.query||{};return this.opts.timestampRequests&&(t[this.opts.timestampParam]=(0,c.yeast)()),this.supportsBinary||(t.b64=1),this.createUri(I,t)}check(){return!!i.WebSocket}}t.WS=Q},8790:(I,t,g)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const e=g(9633);t.default=(I=e.inits.ch,t)=>{if("SERVER_TO_API[BROADCAST]:posts"===t.type){if(t.posts[0])return{...I,latestPost:t.posts[0]}}else if(t.tuneCh){if(""===I.tuneId&&t.tuneCh.tuneId)return{...t.tuneCh};if(""!==I.tuneId&&I.tuneId===t.tuneCh.tuneId)return{...t.tuneCh};if(I.connection===t.tuneCh.connection)return{...I,liveCnt:t.tuneCh.liveCnt}}return I}},8895:I=>{"use strict";var t,g=Object.defineProperty,e=Object.getOwnPropertyDescriptor,C=Object.getOwnPropertyNames,c=Object.prototype.hasOwnProperty,s={};function i(I){return`Minified Redux error #${I}; visit https://redux.js.org/Errors?code=${I} for the full message or use the non-minified dev environment for full errors. `}((I,t)=>{for(var e in t)g(I,e,{get:t[e],enumerable:!0})})(s,{__DO_NOT_USE__ActionTypes:()=>B,applyMiddleware:()=>b,bindActionCreators:()=>o,combineReducers:()=>U,compose:()=>V,createStore:()=>Q,isAction:()=>a,isPlainObject:()=>n,legacy_createStore:()=>A}),I.exports=(t=s,((I,t,s,i)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of C(t))c.call(I,s)||undefined===s||g(I,s,{get:()=>t[s],enumerable:!(i=e(t,s))||i.enumerable});return I})(g({},"__esModule",{value:!0}),t));var F=(()=>"function"==typeof Symbol&&Symbol.observable||"@@observable")(),l=()=>Math.random().toString(36).substring(7).split("").join("."),B={INIT:`@@redux/INIT${l()}`,REPLACE:`@@redux/REPLACE${l()}`,PROBE_UNKNOWN_ACTION:()=>`@@redux/PROBE_UNKNOWN_ACTION${l()}`};function n(I){if("object"!=typeof I||null===I)return!1;let t=I;for(;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(I)===t||null===Object.getPrototypeOf(I)}function Q(I,t,g){if("function"!=typeof I)throw new Error(i(2));if("function"==typeof t&&"function"==typeof g||"function"==typeof g&&"function"==typeof arguments[3])throw new Error(i(0));if("function"==typeof t&&void 0===g&&(g=t,t=void 0),void 0!==g){if("function"!=typeof g)throw new Error(i(1));return g(Q)(I,t)}let e=I,C=t,c=new Map,s=c,l=0,A=!1;function U(){s===c&&(s=new Map,c.forEach((I,t)=>{s.set(t,I)}))}function d(){if(A)throw new Error(i(3));return C}function o(I){if("function"!=typeof I)throw new Error(i(4));if(A)throw new Error(i(5));let t=!0;U();const g=l++;return s.set(g,I),function(){if(t){if(A)throw new Error(i(6));t=!1,U(),s.delete(g),c=null}}}function V(I){if(!n(I))throw new Error(i(7));if(void 0===I.type)throw new Error(i(8));if("string"!=typeof I.type)throw new Error(i(17));if(A)throw new Error(i(9));try{A=!0,C=e(C,I)}finally{A=!1}return(c=s).forEach(I=>{I()}),I}return V({type:B.INIT}),{dispatch:V,subscribe:o,getState:d,replaceReducer:function(I){if("function"!=typeof I)throw new Error(i(10));e=I,V({type:B.REPLACE})},[F]:function(){const I=o;return{subscribe(t){if("object"!=typeof t||null===t)throw new Error(i(11));function g(){const I=t;I.next&&I.next(d())}return g(),{unsubscribe:I(g)}},[F](){return this}}}}}function A(I,t,g){return Q(I,t,g)}function U(I){const t=Object.keys(I),g={};for(let e=0;e{const g=I[t];if(void 0===g(void 0,{type:B.INIT}))throw new Error(i(12));if(void 0===g(void 0,{type:B.PROBE_UNKNOWN_ACTION()}))throw new Error(i(13))})}(g)}catch(I){C=I}return function(I={},t){if(C)throw C;let c=!1;const s={};for(let C=0;CI:1===I.length?I[0]:I.reduce((I,t)=>(...g)=>I(t(...g)))}function b(...I){return t=>(g,e)=>{const C=t(g,e);let c=()=>{throw new Error(i(15))};const s={getState:C.getState,dispatch:(I,...t)=>c(I,...t)},F=I.map(I=>I(s));return c=V(...F)(C.dispatch),{...C,dispatch:c}}}function a(I){return n(I)&&"type"in I&&"string"==typeof I.type}},9040:(I,t,g)=>{I.exports=function(I){function t(I){let g,C,c,s=null;function i(...I){if(!i.enabled)return;const e=i,C=Number(new Date),c=C-(g||C);e.diff=c,e.prev=g,e.curr=C,g=C,I[0]=t.coerce(I[0]),"string"!=typeof I[0]&&I.unshift("%O");let s=0;I[0]=I[0].replace(/%([a-zA-Z%])/g,(g,C)=>{if("%%"===g)return"%";s++;const c=t.formatters[C];if("function"==typeof c){const t=I[s];g=c.call(e,t),I.splice(s,1),s--}return g}),t.formatArgs.call(e,I),(e.log||t.log).apply(e,I)}return i.namespace=I,i.useColors=t.useColors(),i.color=t.selectColor(I),i.extend=e,i.destroy=t.destroy,Object.defineProperty(i,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==s?s:(C!==t.namespaces&&(C=t.namespaces,c=t.enabled(I)),c),set:I=>{s=I}}),"function"==typeof t.init&&t.init(i),i}function e(I,g){const e=t(this.namespace+(void 0===g?":":g)+I);return e.log=this.log,e}function C(I){return I.toString().substring(2,I.toString().length-2).replace(/\.\*\?$/,"*")}return t.debug=t,t.default=t,t.coerce=function(I){return I instanceof Error?I.stack||I.message:I},t.disable=function(){const I=[...t.names.map(C),...t.skips.map(C).map(I=>"-"+I)].join(",");return t.enable(""),I},t.enable=function(I){let g;t.save(I),t.namespaces=I,t.names=[],t.skips=[];const e=("string"==typeof I?I:"").split(/[\s,]+/),C=e.length;for(g=0;g{t[g]=I[g]}),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(I){let g=0;for(let t=0;t{"use strict";var t,g=Object.defineProperty,e=Object.getOwnPropertyDescriptor,C=Object.getOwnPropertyNames,c=Object.prototype.hasOwnProperty,s={};function i(I){return({dispatch:t,getState:g})=>e=>C=>"function"==typeof C?C(t,g,I):e(C)}((I,t)=>{for(var e in t)g(I,e,{get:t[e],enumerable:!0})})(s,{thunk:()=>F,withExtraArgument:()=>l}),I.exports=(t=s,((I,t,s,i)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of C(t))c.call(I,s)||undefined===s||g(I,s,{get:()=>t[s],enumerable:!(i=e(t,s))||i.enumerable});return I})(g({},"__esModule",{value:!0}),t));var F=i(),l=i},9133:(I,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.hasBinary=t.isBinary=void 0;const g="function"==typeof ArrayBuffer,e=Object.prototype.toString,C="function"==typeof Blob||"undefined"!=typeof Blob&&"[object BlobConstructor]"===e.call(Blob),c="function"==typeof File||"undefined"!=typeof File&&"[object FileConstructor]"===e.call(File);function s(I){return g&&(I instanceof ArrayBuffer||(I=>"function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(I):I.buffer instanceof ArrayBuffer)(I))||C&&I instanceof Blob||c&&I instanceof File}t.isBinary=s,t.hasBinary=function I(t,g){if(!t||"object"!=typeof t)return!1;if(Array.isArray(t)){for(let g=0,e=t.length;g{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=(I=[],t)=>{const{posts:g,rankAll:e,tuneCh:C}=t;let c=g?.length||0,s=e?.length||0;const i=(I,t)=>C?I.connection===C.connection||t.connection===C.connection?0:I.liveCntt.liveCnt?-1:0:0;switch(t.type){case"SERVER_TO_API[EMIT]:fetchPosts":if(C&&g)return 0===c?I:I.map(I=>C.connection===I.connection?{...I,stampId:g[c-1].stampId,post:g[c-1].content}:I);case"SERVER_TO_API[BROADCAST]:tune":case"SERVER_TO_API[BROADCAST]:changeThread":case"SERVER_TO_API[BROADCAST]:untune":if(C&&e)return[...e];case"SERVER_TO_API[BROADCAST]:posts":if(g)return I.map(I=>g[0].connection===I.connection?{...I,latestPost:g[0]}:I);case"SERVER_TO_API[EMIT]:rank":if(I&&I.length>0&&e&&s>0){const t=[];let g=e[0];for(let C=0;Cg.updateTime?c:g,c.connection===I[0].connection&&(c={...c,liveCnt:I[0].liveCnt}),t.push(c)}return t.sort(i),t[0].content=g.content,t[0].stampId=g.stampId,t}return t.rankAll?t.rankAll:I;default:return t.rankAll?t.rankAll:I}}},9368:(I,t,g)=>{t.formatArgs=function(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+I.exports.humanize(this.diff),!this.useColors)return;const g="color: "+this.color;t.splice(1,0,g,"color: inherit");let e=0,C=0;t[0].replace(/%[a-zA-Z%]/g,I=>{"%%"!==I&&(e++,"%c"===I&&(C=e))}),t.splice(C,0,g)},t.save=function(I){try{I?t.storage.setItem("debug",I):t.storage.removeItem("debug")}catch(I){}},t.load=function(){let I;try{I=t.storage.getItem("debug")}catch(I){}return!I&&"undefined"!=typeof process&&"env"in process&&(I=process.env.DEBUG),I},t.useColors=function(){if("undefined"!=typeof window&&window.process&&("renderer"===window.process.type||window.process.__nwjs))return!0;if("undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let I;return"undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&(I=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(I[1],10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},t.storage=function(){try{return localStorage}catch(I){}}(),t.destroy=(()=>{let I=!1;return()=>{I||(I=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],t.log=console.debug||console.log||(()=>{}),I.exports=g(1703)(t);const{formatters:e}=I.exports;e.j=function(I){try{return JSON.stringify(I)}catch(I){return"[UnexpectedJSONParseError]: "+I.message}}},9407:(I,t,g)=>{"use strict";I.exports=g(124)},9419:(I,t,g)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.transports=void 0;const e=g(528),C=g(8716),c=g(4480);t.transports={websocket:C.WS,webtransport:c.WT,polling:e.Polling}},9633:function(I,t,g){"use strict";var e,C=this&&this.__createBinding||(Object.create?function(I,t,g,e){void 0===e&&(e=g);var C=Object.getOwnPropertyDescriptor(t,g);C&&!("get"in C?!t.__esModule:C.writable||C.configurable)||(C={enumerable:!0,get:function(){return t[g]}}),Object.defineProperty(I,e,C)}:function(I,t,g,e){void 0===e&&(e=g),I[e]=t[g]}),c=this&&this.__setModuleDefault||(Object.create?function(I,t){Object.defineProperty(I,"default",{enumerable:!0,value:t})}:function(I,t){I.default=t}),s=this&&this.__importStar||(e=function(I){return e=Object.getOwnPropertyNames||function(I){var t=[];for(var g in I)Object.prototype.hasOwnProperty.call(I,g)&&(t[t.length]=g);return t},e(I)},function(I){if(I&&I.__esModule)return I;var t={};if(null!=I)for(var g=e(I),s=0;s{},this.getTunePid=this.getTunePid.bind(this),this.getTuneIds=this.getTuneIds.bind(this),this.getState=this.getState.bind(this),this.tune=this.tune.bind(this),this.untune=this.untune.bind(this),this.fetchRank=this.fetchRank.bind(this),this.fetchPosts=this.fetchPosts.bind(this),this.fetchDetail=this.fetchDetail.bind(this),this.post=this.post.bind(this),this.onStates=this.onStates.bind(this)}getTuneIds(){return Object.keys(this.tuneIds)}getState(I){const t=I||this.useTuneId;return this.tuneIds[t]?this.tuneIds[t].store.getState():{}}async getResponse(I=this.useTuneId){return new Promise(t=>{t({state:this.getState(I),tuneId:I})})}async tune(I,t=c.inits.tuneOption,g){const e=this.getGeneratePidErrorCode(I);if(""===e){const e="function"==typeof t?t:"function"==typeof g?g:()=>{};this.useTuneId=this.getTunePid(I),this.tuneIds[this.useTuneId]={pid:"",store:(0,F.createApiStore)(),wssWorker:new C.default,status:B.statusTunning,onChangeState:e,unsubscribe:()=>{},resolve:()=>{},reject:()=>{}},this.tuneIds[this.useTuneId].wssWorker.onerror=this.onError,this.tuneIds[this.useTuneId].wssWorker.onmessage=this.onMessage.bind(this);const s="object"==typeof t?t:c.inits.tuneOption,i={...c.inits.bootOption,connection:I,tuneOption:s},n=new l.default({bootOption:i});return await this.postMessage({tuneId:this.useTuneId,method:"tune",apiState:n})}return console.warn(`Error: tune(${I}) Message: ${e}`),await this.getResponse()}async untune(I){const t=Array.isArray(I)?I:[I],g=this.getTuneIds().find(I=>t.find(t=>I.startsWith(`con${A}${t}${A}`)));if(g){const I={...c.inits.ch},t=this.tuneIds[g].pid,e=await this.postMessage({pid:t,tuneId:g,method:"untune",apiState:{tuneCh:I}}),C=Object.keys(this.tuneIds),s=C.length,i=C[s-1]?C[s-1]:"";return this.useTuneId=this.useTuneId===g?i:this.useTuneId,e}return console.warn(`Error: untune(${I})`,g),await this.getResponse()}async fetchRank(I){const t=I||this.useTuneId,g=n.default.getConnectionFromTuneId(t),e={...this.tuneIds[t].store.getState().tuneCh,connection:g};return await this.postMessage({tuneId:t,method:"fetchRank",apiState:{tuneCh:e}})}async fetchPosts(I){const t=I||this.useTuneId,g=n.default.getConnectionFromTuneId(t),e={...this.tuneIds[t].store.getState().tuneCh,connection:g};return await this.postMessage({tuneId:t,method:"fetchPosts",apiState:{tuneCh:e}})}async fetchDetail(I){const t=I||this.useTuneId,g=n.default.getConnectionFromTuneId(t),e={...this.tuneIds[t].store.getState().tuneCh,connection:g};return await this.postMessage({tuneId:t,method:"fetchChDetail",apiState:{tuneCh:e}})}async post(I,t){const g=t||this.useTuneId,e={connection:n.default.getConnectionFromTuneId(g),content:I,uid:this.uid},C=[Object.assign({},e)];return await this.postMessage({tuneId:g,method:"post",apiState:{posts:C}})}async onStates(I){this.callback=I}subscribeToTuneId(I,t){if(!this.tuneIds[I])throw new Error(`TuneId ${I} not found`);return this.tuneIds[I].store.subscribe(()=>{if(this.tuneIds[I]){const g=this.tuneIds[I].store.getState();t(g)}})}async postMessage(I){return new Promise((t,g)=>{try{const{tuneId:g,method:e,apiState:C}=I;this.tuneIds[g].unsubscribe=this.tuneIds[g].store.subscribe(()=>{if(this.tuneIds[g]){const I=this.tuneIds[g].store.getState(),C=I.logs[0];if(C.startsWith(s.default.SERVER_TO_API_BROADCAST)||C.startsWith(s.default.SERVER_TO_API_EMIT)){this.tuneIds[g].onChangeState(I),"untune"===e&&(this.tuneIds[g].unsubscribe(),delete this.tuneIds[g]);const C=this.getTuneIds().map(I=>this.tuneIds[I].store.getState());this.callback(C),t({tuneId:g,state:I})}}});const c=`${s.default.API_TO_SERVER_REQUEST}${e}`,F=(0,i.generateUniqueKey)("pid");this.tuneIds[g].pid=F,this.tuneIds[g].store.dispatch({...C,type:c}),this.tuneIds[g].wssWorker.postMessage({pid:F,tuneId:g,method:e,apiState:C}),this.options.isDebug&&console.log("POST MESSAGE",g)}catch(I){g(I)}})}onMessage(I){const{currentTarget:t,data:g}=I;if(t instanceof Worker){const{pid:I,tuneId:t,method:e,apiState:C,serverToApiType:c}=g;if(I&&t&&e&&C&&c){let g=!1;"untune"===C.type?this.tuneIds[t]&&(g=!0):this.tuneIds[t]&&this.tuneIds[t].pid===I&&(g=!0),g&&(this.options.isDebug&&console.log("ON MESSAGE EXE",t),C.type=`${c}${e}`,this.tuneIds[t].store.dispatch(C))}}}onError(I){console.warn(I)}getTunePid(I){const{isTuneSameCh:t,isTuneMultiCh:g}=this.options,e=(0,i.generateUniqueKey)(`con${A}${I}`)+A+this.uid,C=this.getTuneIds().length;if(t&&g)return e;if(!t&&g){return Object.keys(this.tuneIds).find(t=>Boolean(t.startsWith(`con${A}${I}${A}`)))||e}if(t&&!g){return Object.keys(this.tuneIds).find(t=>!Boolean(t.startsWith(`con${A}${I}${A}`)))||e}return 1===C?Object.keys(this.tuneIds)[0]:e}getGeneratePidErrorCode(I){const{isTuneSameCh:g,isTuneMultiCh:e}=this.options,C=this.getTuneIds().length;return 0===C?"":C>=t.limitPidCnt?"TUNE LIMIT":g&&e?"":!g&&e?Boolean(Object.keys(this.tuneIds).find(t=>t.startsWith(`con${A}${I}${A}`)))?"BAD SAME CONNECTION":"":g&&!e?Boolean(Object.keys(this.tuneIds).find(t=>!t.startsWith(`con${A}${I}${A}`)))?"BAD MULTI CONNECTION#1":"":Boolean(C>=1)?"BAD MULTI CONNECTION#2":""}}t.StoresDispatcher=U;const d=async I=>new U(I);t.createStoresDispatcher=d,t.default=d},9934:(I,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.tuneOptionMethods=t.init=t.tuneOptionDetailMeta=t.tuneOptionDetailEmotion=t.tuneOptionRankAllHasLatestPost=t.tuneOptionRankHasLatestPost=t.tuneOptionHasLatestPost=t.tuneOptionRankAll=t.tuneOptionRank=t.tuneOptionPosts=void 0,t.tuneOptionPosts="posts",t.tuneOptionRank="rank",t.tuneOptionRankAll="rankAll",t.tuneOptionHasLatestPost="hasLatestPost",t.tuneOptionRankHasLatestPost="rankHasLatestPost",t.tuneOptionRankAllHasLatestPost="rankAllHasLatestPost",t.tuneOptionDetailEmotion="detailEmotion",t.tuneOptionDetailMeta="detailMeta",t.init={[t.tuneOptionPosts]:!1,[t.tuneOptionRank]:!1,[t.tuneOptionRankAll]:!1,[t.tuneOptionHasLatestPost]:!1,[t.tuneOptionRankHasLatestPost]:!1,[t.tuneOptionRankAllHasLatestPost]:!1,[t.tuneOptionDetailEmotion]:!1,[t.tuneOptionDetailMeta]:!1},t.tuneOptionMethods=Object.keys(t.init),t.default=class{constructor(I=t.init){return Object.assign(this,I)}static getTuneOptionFromUrl(I){const g=I.split("?")[1];if(!g)return{...t.init};const e=new URLSearchParams(g),C={};for(const I of t.tuneOptionMethods){const t=e.get(I);C[I]="true"===t||"false"!==t&&Boolean(t)}return{...t.init,...C}}}}},e={};function C(I){var t=e[I];if(void 0!==t){if(void 0!==t.error)throw t.error;return t.exports}var c=e[I]={exports:{}};try{var s={id:I,module:c,factory:g[I],require:C};C.i.forEach(function(I){I(s)}),c=s.module,s.factory.call(c.exports,c,c.exports,s.require)}catch(I){throw c.error=I,I}return c.exports}C.m=g,C.c=e,C.i=[],C.n=I=>{var t=I&&I.__esModule?()=>I.default:()=>I;return C.d(t,{a:t}),t},C.d=(I,t)=>{for(var g in t)C.o(t,g)&&!C.o(I,g)&&Object.defineProperty(I,g,{enumerable:!0,get:t[g]})},C.hu=I=>I+"."+C.h()+".hot-update.js",C.hmrF=()=>"javascript."+C.h()+".hot-update.json",C.h=()=>"ebaa49987793a8e81b6d",C.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(I){if("object"==typeof window)return window}}(),C.o=(I,t)=>Object.prototype.hasOwnProperty.call(I,t),I={},t="talkn-api-client:",C.l=(g,e,c,s)=>{if(I[g])I[g].push(e);else{var i,F;if(void 0!==c)for(var l=document.getElementsByTagName("script"),B=0;B{i.onerror=i.onload=null,clearTimeout(A);var C=I[g];if(delete I[g],i.parentNode&&i.parentNode.removeChild(i),C&&C.forEach(I=>I(e)),t)return t(e)},A=setTimeout(Q.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=Q.bind(null,i.onerror),i.onload=Q.bind(null,i.onload),F&&document.head.appendChild(i)}},C.r=I=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(I,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(I,"__esModule",{value:!0})},(()=>{var I,t,g,e={},c=C.c,s=[],i=[],F="idle",l=0,B=[];function n(I){F=I;for(var t=[],g=0;g0)return n("abort").then(function(){throw C[0]});var c=n("dispose");e.forEach(function(I){I.dispose&&I.dispose()});var s,i=n("apply"),F=function(I){s||(s=I)},l=[];return Promise.all(e.filter(function(I){return I.apply}).map(function(I){return I.apply(F)})).then(function(I){I.forEach(function(I){if(I)for(var t=0;t=0&&b._disposeHandlers.splice(t,1)},invalidate:function(){switch(this._selfInvalidated=!0,F){case"idle":t=[],Object.keys(C.hmrI).forEach(function(I){C.hmrI[I](d,t)}),n("ready");break;case"ready":Object.keys(C.hmrI).forEach(function(I){C.hmrI[I](d,t)});break;case"prepare":case"check":case"dispose":case"apply":(g=g||[]).push(d)}},check:A,apply:U,status:function(I){if(!I)return F;i.push(I)},addStatusHandler:function(I){i.push(I)},removeStatusHandler:function(I){var t=i.indexOf(I);t>=0&&i.splice(t,1)},data:e[d]},I=void 0,b),a.parents=s,a.children=[],s=[],B.require=u}),C.hmrC={},C.hmrI={}})(),(()=>{var I;C.g.importScripts&&(I=C.g.location+"");var t=C.g.document;if(!I&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(I=t.currentScript.src),!I)){var g=t.getElementsByTagName("script");if(g.length)for(var e=g.length-1;e>-1&&(!I||!/^http(s?):/.test(I));)I=g[e--].src}if(!I)throw new Error("Automatic publicPath is not supported in this browser");I=I.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),C.p=I})(),(()=>{var I,t,g,e,c,s=C.hmrS_jsonp=C.hmrS_jsonp||{942:0},i={};function F(t,g){return I=g,new Promise((I,g)=>{i[t]=I;var e=C.p+C.hu(t),c=new Error;C.l(e,I=>{if(i[t]){i[t]=void 0;var e=I&&("load"===I.type?"missing":I.type),C=I&&I.target&&I.target.src;c.message="Loading hot update chunk "+t+" failed.\n("+e+": "+C+")",c.name="ChunkLoadError",c.type=e,c.request=C,g(c)}})})}function l(I){function i(I){for(var t=[I],g={},e=t.map(function(I){return{chain:[I],id:I}});e.length>0;){var c=e.pop(),s=c.id,i=c.chain,l=C.c[s];if(l&&(!l.hot._selfAccepted||l.hot._selfInvalidated)){if(l.hot._selfDeclined)return{type:"self-declined",chain:i,moduleId:s};if(l.hot._main)return{type:"unaccepted",chain:i,moduleId:s};for(var B=0;B ")),d.type){case"self-declined":I.onDeclined&&I.onDeclined(d),I.ignoreDeclined||(o=new Error("Aborted because of self decline: "+d.moduleId+a));break;case"declined":I.onDeclined&&I.onDeclined(d),I.ignoreDeclined||(o=new Error("Aborted because of declined dependency: "+d.moduleId+" in "+d.parentId+a));break;case"unaccepted":I.onUnaccepted&&I.onUnaccepted(d),I.ignoreUnaccepted||(o=new Error("Aborted because "+A+" is not accepted"+a));break;case"accepted":I.onAccepted&&I.onAccepted(d),V=!0;break;case"disposed":I.onDisposed&&I.onDisposed(d),b=!0;break;default:throw new Error("Unexception type "+d.type)}if(o)return{error:o};if(V)for(A in n[A]=U,F(B,d.outdatedModules),d.outdatedDependencies)C.o(d.outdatedDependencies,A)&&(l[A]||(l[A]=[]),F(l[A],d.outdatedDependencies[A]));b&&(F(B,[d.moduleId]),n[A]=Q)}g=void 0;for(var u,r=[],G=0;G0;){var c=g.pop(),i=C.c[c];if(i){var F={},n=i.hot._disposeHandlers;for(G=0;G=0&&Q.parents.splice(I,1)}}}for(var A in l)if(C.o(l,A)&&(i=C.c[A]))for(u=l[A],G=0;G=0&&i.children.splice(I,1)},apply:function(t){var g=[];for(var e in n)C.o(n,e)&&(C.m[e]=n[e]);for(var s=0;s{for(var F in e)C.o(e,F)&&(g[F]=e[F],I&&I.push(F));s&&c.push(s),i[t]&&(i[t](),i[t]=void 0)},C.hmrI.jsonp=function(I,t){g||(g={},c=[],e=[],t.push(l)),C.o(g,I)||(g[I]=C.m[I])},C.hmrC.jsonp=function(I,i,B,n,Q,A){Q.push(l),t={},e=i,g=B.reduce(function(I,t){return I[t]=!1,I},{}),c=[],I.forEach(function(I){C.o(s,I)&&void 0!==s[I]?(n.push(F(I,A)),t[I]=!0):t[I]=!1}),C.f&&(C.f.jsonpHmr=function(I,g){t&&C.o(t,I)&&!t[I]&&(g.push(F(I)),t[I]=!0)})},C.hmrM=()=>{if("undefined"==typeof fetch)throw new Error("No browser support: need fetch API");return fetch(C.p+C.hmrF()).then(I=>{if(404!==I.status){if(!I.ok)throw new Error("Failed to fetch update manifest "+I.statusText);return I.json()}})}})(),C(8156)})(); //# sourceMappingURL=data:application/json;charset=utf-8;base64,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LEsiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50L3dlYnBhY2svcnVudGltZS9sb2FkIHNjcmlwdCIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50Ly4vc3JjL3JlZHV4L3JlZHVjZXJzL3Bvc3RzVGltZWxpbmUudHMiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC8uL25vZGVfbW9kdWxlcy9pbW1lci9kaXN0L2Nqcy9pbW1lci5janMucHJvZHVjdGlvbi5qcyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50Ly4vc3JjL3JlZHV4L3JlZHVjZXJzL2Jvb3RPcHRpb24udHMiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC8uLi9jb21tb24vc3JjL21vZGVscy9SYW5rLnRzIiwid2VicGFjazovL3RhbGtuLWFwaS1jbGllbnQvLi9ub2RlX21vZHVsZXMvZW5naW5lLmlvLWNsaWVudC9idWlsZC9janMvdHJhbnNwb3J0cy9wb2xsaW5nLmpzIiwid2VicGFjazovL3RhbGtuLWFwaS1jbGllbnQvLi9ub2RlX21vZHVsZXMvZW5naW5lLmlvLWNsaWVudC9idWlsZC9janMvY29udHJpYi95ZWFzdC5qcyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50Ly4vbm9kZV9tb2R1bGVzL3NvY2tldC5pby1wYXJzZXIvbm9kZV9tb2R1bGVzL2RlYnVnL3NyYy9icm93c2VyLmpzIiwid2VicGFjazovL3RhbGtuLWFwaS1jbGllbnQvLi4vY29tbW9uL3NyYy9tb2RlbHMvUG9zdC50cyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50Ly4vbm9kZV9tb2R1bGVzL2VuZ2luZS5pby1jbGllbnQvYnVpbGQvY2pzL2NvbnRyaWIvcGFyc2V1cmkuanMiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC8uLi9jb21tb24vc3JjL21vZGVscy9DaENvbmZpZy50cyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50Ly4vbm9kZV9tb2R1bGVzL3NvY2tldC5pby1jbGllbnQvbm9kZV9tb2R1bGVzL2RlYnVnL3NyYy9jb21tb24uanMiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC8uL3NyYy9yZWR1eC9yZWR1Y2Vycy9pbmRleC50cyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50Ly4vbm9kZV9tb2R1bGVzL2VuZ2luZS5pby1wYXJzZXIvYnVpbGQvY2pzL2NvbW1vbnMuanMiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC8uL3NyYy9yZWR1eC9yZWR1Y2Vycy9sb2dzLnRzIiwid2VicGFjazovL3RhbGtuLWFwaS1jbGllbnQvLi9zcmMvd3NzV29ya2VyL2luZGV4LnRzP2VhODAiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC8uL3NyYy9yZWR1eC9yZWR1Y2Vycy9jaERldGFpbC50cyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50Ly4vbm9kZV9tb2R1bGVzL2VuZ2luZS5pby1wYXJzZXIvYnVpbGQvY2pzL2RlY29kZVBhY2tldC5icm93c2VyLmpzIiwid2VicGFjazovL3RhbGtuLWFwaS1jbGllbnQvLi9zcmMvcmVkdXgvcmVkdWNlcnMvcG9zdHNUaW1lbGluZVN0b2NrLnRzIiwid2VicGFjazovL3RhbGtuLWFwaS1jbGllbnQvLi9ub2RlX21vZHVsZXMvZW5naW5lLmlvLXBhcnNlci9idWlsZC9janMvZW5jb2RlUGFja2V0LmJyb3dzZXIuanMiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC8uL25vZGVfbW9kdWxlcy9lbmdpbmUuaW8tcGFyc2VyL2J1aWxkL2Nqcy9jb250cmliL2Jhc2U2NC1hcnJheWJ1ZmZlci5qcyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50Ly4vc3JjL3JlZHV4L3JlZHVjZXJzL3JhbmsudHMiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC8uL25vZGVfbW9kdWxlcy9yZXNlbGVjdC9kaXN0L2Nqcy9yZXNlbGVjdC5janMiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC8uL25vZGVfbW9kdWxlcy9lbmdpbmUuaW8tY2xpZW50L2J1aWxkL2Nqcy90cmFuc3BvcnRzL3htbGh0dHByZXF1ZXN0LmJyb3dzZXIuanMiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC8uL3NyYy9zdGF0ZS50cyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50Ly4vc3JjL3JlZHV4L21pZGRsZXdhcmUvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC8uL25vZGVfbW9kdWxlcy9zb2NrZXQuaW8tY2xpZW50L2J1aWxkL2Nqcy9tYW5hZ2VyLmpzIiwid2VicGFjazovL3RhbGtuLWFwaS1jbGllbnQvLi9ub2RlX21vZHVsZXMvQHJlZHV4anMvdG9vbGtpdC9kaXN0L2Nqcy9yZWR1eC10b29sa2l0LnByb2R1Y3Rpb24ubWluLmNqcyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50Ly4vbm9kZV9tb2R1bGVzL3NvY2tldC5pby1wYXJzZXIvbm9kZV9tb2R1bGVzL2RlYnVnL3NyYy9jb21tb24uanMiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC8uL25vZGVfbW9kdWxlcy9lbmdpbmUuaW8tY2xpZW50L2J1aWxkL2Nqcy90cmFuc3BvcnRzL3dlYnNvY2tldC1jb25zdHJ1Y3Rvci5icm93c2VyLmpzIiwid2VicGFjazovL3RhbGtuLWFwaS1jbGllbnQvLi9ub2RlX21vZHVsZXMvZW5naW5lLmlvLWNsaWVudC9idWlsZC9janMvY29udHJpYi9oYXMtY29ycy5qcyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50Ly4vbm9kZV9tb2R1bGVzL0Bzb2NrZXQuaW8vY29tcG9uZW50LWVtaXR0ZXIvbGliL2VzbS9pbmRleC5qcyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50Ly4vbm9kZV9tb2R1bGVzL2VuZ2luZS5pby1jbGllbnQvYnVpbGQvY2pzL3RyYW5zcG9ydHMvd2VidHJhbnNwb3J0LmpzIiwid2VicGFjazovL3RhbGtuLWFwaS1jbGllbnQvLi9ub2RlX21vZHVsZXMvQHJlZHV4anMvdG9vbGtpdC9kaXN0L2Nqcy9pbmRleC5qcyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50Ly4vbm9kZV9tb2R1bGVzL3NvY2tldC5pby1wYXJzZXIvYnVpbGQvY2pzL2luZGV4LmpzIiwid2VicGFjazovL3RhbGtuLWFwaS1jbGllbnQvLi9ub2RlX21vZHVsZXMvZW5naW5lLmlvLWNsaWVudC9idWlsZC9janMvdHJhbnNwb3J0LmpzIiwid2VicGFjazovL3RhbGtuLWFwaS1jbGllbnQvLi4vY29tbW9uL3NyYy9tb2RlbHMvQ2hEZXRhaWwudHMiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC8uL25vZGVfbW9kdWxlcy9zb2NrZXQuaW8tcGFyc2VyL2J1aWxkL2Nqcy9iaW5hcnkuanMiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC8uL25vZGVfbW9kdWxlcy9lbmdpbmUuaW8tY2xpZW50L2J1aWxkL2Nqcy9pbmRleC5qcyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50Ly4uL2NvbW1vbi9zcmMvbW9kZWxzL0Jvb3RPcHRpb24udHMiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC8uL25vZGVfbW9kdWxlcy9lbmdpbmUuaW8tY2xpZW50L2J1aWxkL2Nqcy91dGlsLmpzIiwid2VicGFjazovL3RhbGtuLWFwaS1jbGllbnQvLi4vY29tbW9uL3NyYy9kZWZpbmUudHMiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC8uL25vZGVfbW9kdWxlcy93b3JrZXItbG9hZGVyL2Rpc3QvcnVudGltZS9pbmxpbmUuanMiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC8uL25vZGVfbW9kdWxlcy9wcm9jZXNzL2Jyb3dzZXIuanMiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC8uL3NyYy9yZWR1eC9zdG9yZS50cyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50Ly4uL2NvbW1vbi9zcmMvdXRpbHMudHMiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC8uL25vZGVfbW9kdWxlcy9zb2NrZXQuaW8tY2xpZW50L2J1aWxkL2Nqcy9vbi5qcyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50Ly4vbm9kZV9tb2R1bGVzL3NvY2tldC5pby1jbGllbnQvYnVpbGQvY2pzL3NvY2tldC5qcyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50Ly4vbm9kZV9tb2R1bGVzL2VuZ2luZS5pby1jbGllbnQvYnVpbGQvY2pzL2dsb2JhbFRoaXMuYnJvd3Nlci5qcyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50Ly4vc3JjL3dzc1dvcmtlci9Ub1NlcnZlci50cyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50Ly4vc3JjL3JlZHV4L3JlZHVjZXJzL3Bvc3RzLnRzIiwid2VicGFjazovL3RhbGtuLWFwaS1jbGllbnQvLi9ub2RlX21vZHVsZXMvZW5naW5lLmlvLXBhcnNlci9idWlsZC9janMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC8uLi9jb21tb24vc3JjL1NlcXVlbmNlLnRzIiwid2VicGFjazovL3RhbGtuLWFwaS1jbGllbnQvLi9ub2RlX21vZHVsZXMvbXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC8uL25vZGVfbW9kdWxlcy9lbmdpbmUuaW8tY2xpZW50L25vZGVfbW9kdWxlcy9kZWJ1Zy9zcmMvYnJvd3Nlci5qcyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50Ly4vbm9kZV9tb2R1bGVzL3NvY2tldC5pby1jbGllbnQvYnVpbGQvY2pzL3VybC5qcyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50Ly4uL2NvbW1vbi9zcmMvY29uZi50cyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50Ly4uL2NvbW1vbi9zcmMvbW9kZWxzL0NoLnRzIiwid2VicGFjazovL3RhbGtuLWFwaS1jbGllbnQvLi9ub2RlX21vZHVsZXMvc29ja2V0LmlvLWNsaWVudC9idWlsZC9janMvY29udHJpYi9iYWNrbzIuanMiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC8uL25vZGVfbW9kdWxlcy9zb2NrZXQuaW8tY2xpZW50L2J1aWxkL2Nqcy9pbmRleC5qcyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50Ly4vc3JjL1RhbGtuQVBJLnRzIiwid2VicGFjazovL3RhbGtuLWFwaS1jbGllbnQvLi9zcmMvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC8uL25vZGVfbW9kdWxlcy9lbmdpbmUuaW8tY2xpZW50L2J1aWxkL2Nqcy9zb2NrZXQuanMiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC8uL3NyYy93c3NXb3JrZXIvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC8uL25vZGVfbW9kdWxlcy9lbmdpbmUuaW8tY2xpZW50L2J1aWxkL2Nqcy9jb250cmliL3BhcnNlcXMuanMiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC8uL25vZGVfbW9kdWxlcy9lbmdpbmUuaW8tY2xpZW50L2J1aWxkL2Nqcy90cmFuc3BvcnRzL3dlYnNvY2tldC5qcyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50Ly4vc3JjL3JlZHV4L3JlZHVjZXJzL3R1bmVDaC50cyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50Ly4vbm9kZV9tb2R1bGVzL3JlZHV4L2Rpc3QvY2pzL3JlZHV4LmNqcyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50Ly4vbm9kZV9tb2R1bGVzL2VuZ2luZS5pby1jbGllbnQvbm9kZV9tb2R1bGVzL2RlYnVnL3NyYy9jb21tb24uanMiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC8uL25vZGVfbW9kdWxlcy9yZWR1eC10aHVuay9kaXN0L2Nqcy9yZWR1eC10aHVuay5janMiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC8uL25vZGVfbW9kdWxlcy9zb2NrZXQuaW8tcGFyc2VyL2J1aWxkL2Nqcy9pcy1iaW5hcnkuanMiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC8uL3NyYy9yZWR1eC9yZWR1Y2Vycy9yYW5rQWxsLnRzIiwid2VicGFjazovL3RhbGtuLWFwaS1jbGllbnQvLi9ub2RlX21vZHVsZXMvc29ja2V0LmlvLWNsaWVudC9ub2RlX21vZHVsZXMvZGVidWcvc3JjL2Jyb3dzZXIuanMiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC8uL25vZGVfbW9kdWxlcy9pbW1lci9kaXN0L2Nqcy9pbmRleC5qcyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50Ly4vbm9kZV9tb2R1bGVzL2VuZ2luZS5pby1jbGllbnQvYnVpbGQvY2pzL3RyYW5zcG9ydHMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC8uLi9jb21tb24vc3JjL21vZGVscy9pbmRleC50cyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50Ly4vc3JjL3dzc1dvcmtlci9TdG9yZXNEaXNwYXRjaGVyLnRzIiwid2VicGFjazovL3RhbGtuLWFwaS1jbGllbnQvLi4vY29tbW9uL3NyYy9tb2RlbHMvVHVuZU9wdGlvbi50cyIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50L3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL3RhbGtuLWFwaS1jbGllbnQvd2VicGFjay9ydW50aW1lL2NvbXBhdCBnZXQgZGVmYXVsdCBleHBvcnQiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC93ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC93ZWJwYWNrL3J1bnRpbWUvZ2V0IGphdmFzY3JpcHQgdXBkYXRlIGNodW5rIGZpbGVuYW1lIiwid2VicGFjazovL3RhbGtuLWFwaS1jbGllbnQvd2VicGFjay9ydW50aW1lL2dldCB1cGRhdGUgbWFuaWZlc3QgZmlsZW5hbWUiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC93ZWJwYWNrL3J1bnRpbWUvZ2V0RnVsbEhhc2giLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC93ZWJwYWNrL3J1bnRpbWUvZ2xvYmFsIiwid2VicGFjazovL3RhbGtuLWFwaS1jbGllbnQvd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50L3dlYnBhY2svcnVudGltZS9tYWtlIG5hbWVzcGFjZSBvYmplY3QiLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC93ZWJwYWNrL3J1bnRpbWUvaG90IG1vZHVsZSByZXBsYWNlbWVudCIsIndlYnBhY2s6Ly90YWxrbi1hcGktY2xpZW50L3dlYnBhY2svcnVudGltZS9wdWJsaWNQYXRoIiwid2VicGFjazovL3RhbGtuLWFwaS1jbGllbnQvd2VicGFjay9ydW50aW1lL2pzb25wIGNodW5rIGxvYWRpbmciLCJ3ZWJwYWNrOi8vdGFsa24tYXBpLWNsaWVudC93ZWJwYWNrL3N0YXJ0dXAiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGluUHJvZ3Jlc3MgPSB7fTtcbnZhciBkYXRhV2VicGFja1ByZWZpeCA9IFwidGFsa24tYXBpLWNsaWVudDpcIjtcbi8vIGxvYWRTY3JpcHQgZnVuY3Rpb24gdG8gbG9hZCBhIHNjcmlwdCB2aWEgc2NyaXB0IHRhZ1xuX193ZWJwYWNrX3JlcXVpcmVfXy5sID0gKHVybCwgZG9uZSwga2V5LCBjaHVua0lkKSA9PiB7XG5cdGlmKGluUHJvZ3Jlc3NbdXJsXSkgeyBpblByb2dyZXNzW3VybF0ucHVzaChkb25lKTsgcmV0dXJuOyB9XG5cdHZhciBzY3JpcHQsIG5lZWRBdHRhY2g7XG5cdGlmKGtleSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0dmFyIHNjcmlwdHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcInNjcmlwdFwiKTtcblx0XHRmb3IodmFyIGkgPSAwOyBpIDwgc2NyaXB0cy5sZW5ndGg7IGkrKykge1xuXHRcdFx0dmFyIHMgPSBzY3JpcHRzW2ldO1xuXHRcdFx0aWYocy5nZXRBdHRyaWJ1dGUoXCJzcmNcIikgPT0gdXJsIHx8IHMuZ2V0QXR0cmlidXRlKFwiZGF0YS13ZWJwYWNrXCIpID09IGRhdGFXZWJwYWNrUHJlZml4ICsga2V5KSB7IHNjcmlwdCA9IHM7IGJyZWFrOyB9XG5cdFx0fVxuXHR9XG5cdGlmKCFzY3JpcHQpIHtcblx0XHRuZWVkQXR0YWNoID0gdHJ1ZTtcblx0XHRzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcblxuXHRcdHNjcmlwdC5jaGFyc2V0ID0gJ3V0Zi04Jztcblx0XHRzY3JpcHQudGltZW91dCA9IDEyMDtcblx0XHRpZiAoX193ZWJwYWNrX3JlcXVpcmVfXy5uYykge1xuXHRcdFx0c2NyaXB0LnNldEF0dHJpYnV0ZShcIm5vbmNlXCIsIF9fd2VicGFja19yZXF1aXJlX18ubmMpO1xuXHRcdH1cblx0XHRzY3JpcHQuc2V0QXR0cmlidXRlKFwiZGF0YS13ZWJwYWNrXCIsIGRhdGFXZWJwYWNrUHJlZml4ICsga2V5KTtcblxuXHRcdHNjcmlwdC5zcmMgPSB1cmw7XG5cdH1cblx0aW5Qcm9ncmVzc1t1cmxdID0gW2RvbmVdO1xuXHR2YXIgb25TY3JpcHRDb21wbGV0ZSA9IChwcmV2LCBldmVudCkgPT4ge1xuXHRcdC8vIGF2b2lkIG1lbSBsZWFrcyBpbiBJRS5cblx0XHRzY3JpcHQub25lcnJvciA9IHNjcmlwdC5vbmxvYWQgPSBudWxsO1xuXHRcdGNsZWFyVGltZW91dCh0aW1lb3V0KTtcblx0XHR2YXIgZG9uZUZucyA9IGluUHJvZ3Jlc3NbdXJsXTtcblx0XHRkZWxldGUgaW5Qcm9ncmVzc1t1cmxdO1xuXHRcdHNjcmlwdC5wYXJlbnROb2RlICYmIHNjcmlwdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHNjcmlwdCk7XG5cdFx0ZG9uZUZucyAmJiBkb25lRm5zLmZvckVhY2goKGZuKSA9PiAoZm4oZXZlbnQpKSk7XG5cdFx0aWYocHJldikgcmV0dXJuIHByZXYoZXZlbnQpO1xuXHR9XG5cdHZhciB0aW1lb3V0ID0gc2V0VGltZW91dChvblNjcmlwdENvbXBsZXRlLmJpbmQobnVsbCwgdW5kZWZpbmVkLCB7IHR5cGU6ICd0aW1lb3V0JywgdGFyZ2V0OiBzY3JpcHQgfSksIDEyMDAwMCk7XG5cdHNjcmlwdC5vbmVycm9yID0gb25TY3JpcHRDb21wbGV0ZS5iaW5kKG51bGwsIHNjcmlwdC5vbmVycm9yKTtcblx0c2NyaXB0Lm9ubG9hZCA9IG9uU2NyaXB0Q29tcGxldGUuYmluZChudWxsLCBzY3JpcHQub25sb2FkKTtcblx0bmVlZEF0dGFjaCAmJiBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHNjcmlwdCk7XG59OyIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gKHN0YXRlID0gW10sIGFjdGlvbikgPT4ge1xuICAgIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICAgICAgY2FzZSAnQVBJX1RPX1NFUlZFUltSRVFVRVNUXTpjaGFuZ2VUaHJlYWQnOlxuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICBjYXNlICdTRVJWRVJfVE9fQVBJW0VNSVRdOmZldGNoUG9zdHMnOlxuICAgICAgICBjYXNlICdTRVJWRVJfVE9fQVBJW0JST0FEQ0FTVF06cG9zdHMnOlxuICAgICAgICAgICAgaWYgKGFjdGlvbi5wb3N0c1RpbWVsaW5lICYmIGFjdGlvbi5wb3N0c1RpbWVsaW5lLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBpZiAoYWN0aW9uLnR1bmVDaC5jb25uZWN0aW9uID09PSBhY3Rpb24ucG9zdHNUaW1lbGluZVswXS5jb25uZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbLi4uc3RhdGUsIC4uLmFjdGlvbi5wb3N0c1RpbWVsaW5lXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnU0VSVkVSX1RPX0FQSVtFTUlUXTpnZXRNb3JlJzpcbiAgICAgICAgICAgIGlmIChhY3Rpb24ucG9zdHNUaW1lbGluZSAmJiBhY3Rpb24ucG9zdHNUaW1lbGluZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFsuLi5hY3Rpb24ucG9zdHNUaW1lbGluZSwgLi4uc3RhdGVdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiBzdGF0ZTtcbn07XG4iLCJcInVzZSBzdHJpY3RcIjt2YXIgbmU9T2JqZWN0LmRlZmluZVByb3BlcnR5O3ZhciBnZT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO3ZhciBiZT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lczt2YXIgVGU9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgQWU9KGUsdCk9Pntmb3IodmFyIHIgaW4gdCluZShlLHIse2dldDp0W3JdLGVudW1lcmFibGU6ITB9KX0sSWU9KGUsdCxyLG4pPT57aWYodCYmdHlwZW9mIHQ9PVwib2JqZWN0XCJ8fHR5cGVvZiB0PT1cImZ1bmN0aW9uXCIpZm9yKGxldCBpIG9mIGJlKHQpKSFUZS5jYWxsKGUsaSkmJmkhPT1yJiZuZShlLGkse2dldDooKT0+dFtpXSxlbnVtZXJhYmxlOiEobj1nZSh0LGkpKXx8bi5lbnVtZXJhYmxlfSk7cmV0dXJuIGV9O3ZhciBEZT1lPT5JZShuZSh7fSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxlKTt2YXIgQmU9e307QWUoQmUse0ltbWVyOigpPT5KLGFwcGx5UGF0Y2hlczooKT0+Q2UsY2FzdERyYWZ0OigpPT5rZSxjYXN0SW1tdXRhYmxlOigpPT5LZSxjcmVhdGVEcmFmdDooKT0+UmUsY3VycmVudDooKT0+cmUsZW5hYmxlTWFwU2V0OigpPT54ZSxlbmFibGVQYXRjaGVzOigpPT5QZSxmaW5pc2hEcmFmdDooKT0+dmUsZnJlZXplOigpPT5LLGltbWVyYWJsZTooKT0+Tixpc0RyYWZ0OigpPT5PLGlzRHJhZnRhYmxlOigpPT5BLG5vdGhpbmc6KCk9Pmosb3JpZ2luYWw6KCk9PmxlLHByb2R1Y2U6KCk9PkZlLHByb2R1Y2VXaXRoUGF0Y2hlczooKT0+TmUsc2V0QXV0b0ZyZWV6ZTooKT0+emUsc2V0VXNlU3RyaWN0U2hhbGxvd0NvcHk6KCk9PmplfSk7bW9kdWxlLmV4cG9ydHM9RGUoQmUpO3ZhciBqPVN5bWJvbC5mb3IoXCJpbW1lci1ub3RoaW5nXCIpLE49U3ltYm9sLmZvcihcImltbWVyLWRyYWZ0YWJsZVwiKSx1PVN5bWJvbC5mb3IoXCJpbW1lci1zdGF0ZVwiKTtmdW5jdGlvbiBoKGUsLi4udCl7dGhyb3cgbmV3IEVycm9yKGBbSW1tZXJdIG1pbmlmaWVkIGVycm9yIG5yOiAke2V9LiBGdWxsIGVycm9yIGF0OiBodHRwczovL2JpdC5seS8zY1hFS1dmYCl9dmFyIHo9T2JqZWN0LmdldFByb3RvdHlwZU9mO2Z1bmN0aW9uIE8oZSl7cmV0dXJuISFlJiYhIWVbdV19ZnVuY3Rpb24gQShlKXtyZXR1cm4gZT95ZShlKXx8QXJyYXkuaXNBcnJheShlKXx8ISFlW05dfHwhIWUuY29uc3RydWN0b3I/LltOXXx8dihlKXx8ayhlKTohMX12YXIgT2U9T2JqZWN0LnByb3RvdHlwZS5jb25zdHJ1Y3Rvci50b1N0cmluZygpO2Z1bmN0aW9uIHllKGUpe2lmKCFlfHx0eXBlb2YgZSE9XCJvYmplY3RcIilyZXR1cm4hMTtsZXQgdD16KGUpO2lmKHQ9PT1udWxsKXJldHVybiEwO2xldCByPU9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsXCJjb25zdHJ1Y3RvclwiKSYmdC5jb25zdHJ1Y3RvcjtyZXR1cm4gcj09PU9iamVjdD8hMDp0eXBlb2Ygcj09XCJmdW5jdGlvblwiJiZGdW5jdGlvbi50b1N0cmluZy5jYWxsKHIpPT09T2V9ZnVuY3Rpb24gbGUoZSl7cmV0dXJuIE8oZSl8fGgoMTUsZSksZVt1XS50fWZ1bmN0aW9uIF8oZSx0KXtDKGUpPT09MD9SZWZsZWN0Lm93bktleXMoZSkuZm9yRWFjaChyPT57dChyLGVbcl0sZSl9KTplLmZvckVhY2goKHIsbik9PnQobixyLGUpKX1mdW5jdGlvbiBDKGUpe2xldCB0PWVbdV07cmV0dXJuIHQ/dC5vOkFycmF5LmlzQXJyYXkoZSk/MTp2KGUpPzI6ayhlKT8zOjB9ZnVuY3Rpb24gUihlLHQpe3JldHVybiBDKGUpPT09Mj9lLmhhcyh0KTpPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSx0KX1mdW5jdGlvbiBYKGUsdCl7cmV0dXJuIEMoZSk9PT0yP2UuZ2V0KHQpOmVbdF19ZnVuY3Rpb24gUShlLHQscil7bGV0IG49QyhlKTtuPT09Mj9lLnNldCh0LHIpOm49PT0zP2UuYWRkKHIpOmVbdF09cn1mdW5jdGlvbiBwZShlLHQpe3JldHVybiBlPT09dD9lIT09MHx8MS9lPT09MS90OmUhPT1lJiZ0IT09dH1mdW5jdGlvbiB2KGUpe3JldHVybiBlIGluc3RhbmNlb2YgTWFwfWZ1bmN0aW9uIGsoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBTZXR9ZnVuY3Rpb24gVChlKXtyZXR1cm4gZS5lfHxlLnR9ZnVuY3Rpb24gTChlLHQpe2lmKHYoZSkpcmV0dXJuIG5ldyBNYXAoZSk7aWYoayhlKSlyZXR1cm4gbmV3IFNldChlKTtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlKTtsZXQgcj15ZShlKTtpZih0PT09ITB8fHQ9PT1cImNsYXNzX29ubHlcIiYmIXIpe2xldCBuPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKGUpO2RlbGV0ZSBuW3VdO2xldCBpPVJlZmxlY3Qub3duS2V5cyhuKTtmb3IobGV0IGY9MDtmPGkubGVuZ3RoO2YrKyl7bGV0IGw9aVtmXSxjPW5bbF07Yy53cml0YWJsZT09PSExJiYoYy53cml0YWJsZT0hMCxjLmNvbmZpZ3VyYWJsZT0hMCksKGMuZ2V0fHxjLnNldCkmJihuW2xdPXtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsZW51bWVyYWJsZTpjLmVudW1lcmFibGUsdmFsdWU6ZVtsXX0pfXJldHVybiBPYmplY3QuY3JlYXRlKHooZSksbil9ZWxzZXtsZXQgbj16KGUpO2lmKG4hPT1udWxsJiZyKXJldHVybnsuLi5lfTtsZXQgaT1PYmplY3QuY3JlYXRlKG4pO3JldHVybiBPYmplY3QuYXNzaWduKGksZSl9fWZ1bmN0aW9uIEsoZSx0PSExKXtyZXR1cm4gJChlKXx8TyhlKXx8IUEoZSl8fChDKGUpPjEmJihlLnNldD1lLmFkZD1lLmNsZWFyPWUuZGVsZXRlPU1lKSxPYmplY3QuZnJlZXplKGUpLHQmJk9iamVjdC5lbnRyaWVzKGUpLmZvckVhY2goKFtyLG5dKT0+SyhuLCEwKSkpLGV9ZnVuY3Rpb24gTWUoKXtoKDIpfWZ1bmN0aW9uICQoZSl7cmV0dXJuIE9iamVjdC5pc0Zyb3plbihlKX12YXIgYWU9e307ZnVuY3Rpb24gdyhlKXtsZXQgdD1hZVtlXTtyZXR1cm4gdHx8aCgwLGUpLHR9ZnVuY3Rpb24gWShlLHQpe2FlW2VdfHwoYWVbZV09dCl9dmFyIFU7ZnVuY3Rpb24gQigpe3JldHVybiBVfWZ1bmN0aW9uIF9lKGUsdCl7cmV0dXJue2E6W10saTplLHA6dCxQOiEwLGQ6MH19ZnVuY3Rpb24gb2UoZSx0KXt0JiYodyhcIlBhdGNoZXNcIiksZS5mPVtdLGUuaD1bXSxlLmI9dCl9ZnVuY3Rpb24gVihlKXtaKGUpLGUuYS5mb3JFYWNoKHdlKSxlLmE9bnVsbH1mdW5jdGlvbiBaKGUpe2U9PT1VJiYoVT1lLmkpfWZ1bmN0aW9uIGllKGUpe3JldHVybiBVPV9lKFUsZSl9ZnVuY3Rpb24gd2UoZSl7bGV0IHQ9ZVt1XTt0Lm89PT0wfHx0Lm89PT0xP3QueCgpOnQubT0hMH1mdW5jdGlvbiBzZShlLHQpe3QuZD10LmEubGVuZ3RoO2xldCByPXQuYVswXTtyZXR1cm4gZSE9PXZvaWQgMCYmZSE9PXI/KHJbdV0ucyYmKFYodCksaCg0KSksQShlKSYmKGU9ZWUodCxlKSx0Lml8fHRlKHQsZSkpLHQuZiYmdyhcIlBhdGNoZXNcIikuVChyW3VdLnQsZSx0LmYsdC5oKSk6ZT1lZSh0LHIsW10pLFYodCksdC5mJiZ0LmIodC5mLHQuaCksZSE9PWo/ZTp2b2lkIDB9ZnVuY3Rpb24gZWUoZSx0LHIpe2lmKCQodCkpcmV0dXJuIHQ7bGV0IG49dFt1XTtpZighbilyZXR1cm4gXyh0LChpLGYpPT5kZShlLG4sdCxpLGYscikpLHQ7aWYobi5uIT09ZSlyZXR1cm4gdDtpZighbi5zKXJldHVybiB0ZShlLG4udCwhMCksbi50O2lmKCFuLmMpe24uYz0hMCxuLm4uZC0tO2xldCBpPW4uZSxmPWksbD0hMTtuLm89PT0zJiYoZj1uZXcgU2V0KGkpLGkuY2xlYXIoKSxsPSEwKSxfKGYsKGMsYik9PmRlKGUsbixpLGMsYixyLGwpKSx0ZShlLGksITEpLHImJmUuZiYmdyhcIlBhdGNoZXNcIikuZyhuLHIsZS5mLGUuaCl9cmV0dXJuIG4uZX1mdW5jdGlvbiBkZShlLHQscixuLGksZixsKXtpZihPKGkpKXtsZXQgYz1mJiZ0JiZ0Lm8hPT0zJiYhUih0LnIsbik/Zi5jb25jYXQobik6dm9pZCAwLGI9ZWUoZSxpLGMpO2lmKFEocixuLGIpLE8oYikpZS5QPSExO2Vsc2UgcmV0dXJufWVsc2UgbCYmci5hZGQoaSk7aWYoQShpKSYmISQoaSkpe2lmKCFlLnAueSYmZS5kPDEpcmV0dXJuO2VlKGUsaSksKCF0fHwhdC5uLmkpJiZ0eXBlb2YgbiE9XCJzeW1ib2xcIiYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHIsbikmJnRlKGUsaSl9fWZ1bmN0aW9uIHRlKGUsdCxyPSExKXshZS5pJiZlLnAueSYmZS5QJiZLKHQscil9ZnVuY3Rpb24gaGUoZSx0KXtsZXQgcj1BcnJheS5pc0FycmF5KGUpLG49e286cj8xOjAsbjp0P3QubjpCKCksczohMSxjOiExLHI6e30saTp0LHQ6ZSx1Om51bGwsZTpudWxsLHg6bnVsbCxsOiExfSxpPW4sZj11ZTtyJiYoaT1bbl0sZj1xKTtsZXR7cmV2b2tlOmwscHJveHk6Y309UHJveHkucmV2b2NhYmxlKGksZik7cmV0dXJuIG4udT1jLG4ueD1sLGN9dmFyIHVlPXtnZXQoZSx0KXtpZih0PT09dSlyZXR1cm4gZTtsZXQgcj1UKGUpO2lmKCFSKHIsdCkpcmV0dXJuIEVlKGUscix0KTtsZXQgbj1yW3RdO3JldHVybiBlLmN8fCFBKG4pP246bj09PWNlKGUudCx0KT8oZmUoZSksZS5lW3RdPVcobixlKSk6bn0saGFzKGUsdCl7cmV0dXJuIHQgaW4gVChlKX0sb3duS2V5cyhlKXtyZXR1cm4gUmVmbGVjdC5vd25LZXlzKFQoZSkpfSxzZXQoZSx0LHIpe2xldCBuPW1lKFQoZSksdCk7aWYobj8uc2V0KXJldHVybiBuLnNldC5jYWxsKGUudSxyKSwhMDtpZighZS5zKXtsZXQgaT1jZShUKGUpLHQpLGY9aT8uW3VdO2lmKGYmJmYudD09PXIpcmV0dXJuIGUuZVt0XT1yLGUuclt0XT0hMSwhMDtpZihwZShyLGkpJiYociE9PXZvaWQgMHx8UihlLnQsdCkpKXJldHVybiEwO2ZlKGUpLEUoZSl9cmV0dXJuIGUuZVt0XT09PXImJihyIT09dm9pZCAwfHx0IGluIGUuZSl8fE51bWJlci5pc05hTihyKSYmTnVtYmVyLmlzTmFOKGUuZVt0XSl8fChlLmVbdF09cixlLnJbdF09ITApLCEwfSxkZWxldGVQcm9wZXJ0eShlLHQpe3JldHVybiBjZShlLnQsdCkhPT12b2lkIDB8fHQgaW4gZS50PyhlLnJbdF09ITEsZmUoZSksRShlKSk6ZGVsZXRlIGUuclt0XSxlLmUmJmRlbGV0ZSBlLmVbdF0sITB9LGdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpe2xldCByPVQoZSksbj1SZWZsZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLHQpO3JldHVybiBuJiZ7d3JpdGFibGU6ITAsY29uZmlndXJhYmxlOmUubyE9PTF8fHQhPT1cImxlbmd0aFwiLGVudW1lcmFibGU6bi5lbnVtZXJhYmxlLHZhbHVlOnJbdF19fSxkZWZpbmVQcm9wZXJ0eSgpe2goMTEpfSxnZXRQcm90b3R5cGVPZihlKXtyZXR1cm4geihlLnQpfSxzZXRQcm90b3R5cGVPZigpe2goMTIpfX0scT17fTtfKHVlLChlLHQpPT57cVtlXT1mdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHNbMF09YXJndW1lbnRzWzBdWzBdLHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0pO3EuZGVsZXRlUHJvcGVydHk9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gcS5zZXQuY2FsbCh0aGlzLGUsdCx2b2lkIDApfTtxLnNldD1mdW5jdGlvbihlLHQscil7cmV0dXJuIHVlLnNldC5jYWxsKHRoaXMsZVswXSx0LHIsZVswXSl9O2Z1bmN0aW9uIGNlKGUsdCl7bGV0IHI9ZVt1XTtyZXR1cm4ocj9UKHIpOmUpW3RdfWZ1bmN0aW9uIEVlKGUsdCxyKXtsZXQgbj1tZSh0LHIpO3JldHVybiBuP1widmFsdWVcImluIG4/bi52YWx1ZTpuLmdldD8uY2FsbChlLnUpOnZvaWQgMH1mdW5jdGlvbiBtZShlLHQpe2lmKCEodCBpbiBlKSlyZXR1cm47bGV0IHI9eihlKTtmb3IoO3I7KXtsZXQgbj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIsdCk7aWYobilyZXR1cm4gbjtyPXoocil9fWZ1bmN0aW9uIEUoZSl7ZS5zfHwoZS5zPSEwLGUuaSYmRShlLmkpKX1mdW5jdGlvbiBmZShlKXtlLmV8fChlLmU9TChlLnQsZS5uLnAuUykpfXZhciBKPWNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMueT0hMDt0aGlzLlM9ITE7dGhpcy5wcm9kdWNlPSh0LHIsbik9PntpZih0eXBlb2YgdD09XCJmdW5jdGlvblwiJiZ0eXBlb2YgciE9XCJmdW5jdGlvblwiKXtsZXQgZj1yO3I9dDtsZXQgbD10aGlzO3JldHVybiBmdW5jdGlvbihiPWYsLi4uYSl7cmV0dXJuIGwucHJvZHVjZShiLG89PnIuY2FsbCh0aGlzLG8sLi4uYSkpfX10eXBlb2YgciE9XCJmdW5jdGlvblwiJiZoKDYpLG4hPT12b2lkIDAmJnR5cGVvZiBuIT1cImZ1bmN0aW9uXCImJmgoNyk7bGV0IGk7aWYoQSh0KSl7bGV0IGY9aWUodGhpcyksbD1XKHQsdm9pZCAwKSxjPSEwO3RyeXtpPXIobCksYz0hMX1maW5hbGx5e2M/VihmKTpaKGYpfXJldHVybiBvZShmLG4pLHNlKGksZil9ZWxzZSBpZighdHx8dHlwZW9mIHQhPVwib2JqZWN0XCIpe2lmKGk9cih0KSxpPT09dm9pZCAwJiYoaT10KSxpPT09aiYmKGk9dm9pZCAwKSx0aGlzLnkmJksoaSwhMCksbil7bGV0IGY9W10sbD1bXTt3KFwiUGF0Y2hlc1wiKS5UKHQsaSxmLGwpLG4oZixsKX1yZXR1cm4gaX1lbHNlIGgoMSx0KX07dGhpcy5wcm9kdWNlV2l0aFBhdGNoZXM9KHQscik9PntpZih0eXBlb2YgdD09XCJmdW5jdGlvblwiKXJldHVybihsLC4uLmMpPT50aGlzLnByb2R1Y2VXaXRoUGF0Y2hlcyhsLGI9PnQoYiwuLi5jKSk7bGV0IG4saTtyZXR1cm5bdGhpcy5wcm9kdWNlKHQsciwobCxjKT0+e249bCxpPWN9KSxuLGldfTt0eXBlb2YgdD8uYXV0b0ZyZWV6ZT09XCJib29sZWFuXCImJnRoaXMuc2V0QXV0b0ZyZWV6ZSh0LmF1dG9GcmVlemUpLHR5cGVvZiB0Py51c2VTdHJpY3RTaGFsbG93Q29weT09XCJib29sZWFuXCImJnRoaXMuc2V0VXNlU3RyaWN0U2hhbGxvd0NvcHkodC51c2VTdHJpY3RTaGFsbG93Q29weSl9Y3JlYXRlRHJhZnQodCl7QSh0KXx8aCg4KSxPKHQpJiYodD1yZSh0KSk7bGV0IHI9aWUodGhpcyksbj1XKHQsdm9pZCAwKTtyZXR1cm4gblt1XS5sPSEwLFoociksbn1maW5pc2hEcmFmdCh0LHIpe2xldCBuPXQmJnRbdV07KCFufHwhbi5sKSYmaCg5KTtsZXR7bjppfT1uO3JldHVybiBvZShpLHIpLHNlKHZvaWQgMCxpKX1zZXRBdXRvRnJlZXplKHQpe3RoaXMueT10fXNldFVzZVN0cmljdFNoYWxsb3dDb3B5KHQpe3RoaXMuUz10fWFwcGx5UGF0Y2hlcyh0LHIpe2xldCBuO2ZvcihuPXIubGVuZ3RoLTE7bj49MDtuLS0pe2xldCBmPXJbbl07aWYoZi5wYXRoLmxlbmd0aD09PTAmJmYub3A9PT1cInJlcGxhY2VcIil7dD1mLnZhbHVlO2JyZWFrfX1uPi0xJiYocj1yLnNsaWNlKG4rMSkpO2xldCBpPXcoXCJQYXRjaGVzXCIpLkE7cmV0dXJuIE8odCk/aSh0LHIpOnRoaXMucHJvZHVjZSh0LGY9PmkoZixyKSl9fTtmdW5jdGlvbiBXKGUsdCl7bGV0IHI9dihlKT93KFwiTWFwU2V0XCIpLkkoZSx0KTprKGUpP3coXCJNYXBTZXRcIikuRChlLHQpOmhlKGUsdCk7cmV0dXJuKHQ/dC5uOkIoKSkuYS5wdXNoKHIpLHJ9ZnVuY3Rpb24gcmUoZSl7cmV0dXJuIE8oZSl8fGgoMTAsZSksU2UoZSl9ZnVuY3Rpb24gU2UoZSl7aWYoIUEoZSl8fCQoZSkpcmV0dXJuIGU7bGV0IHQ9ZVt1XSxyO2lmKHQpe2lmKCF0LnMpcmV0dXJuIHQudDt0LmM9ITAscj1MKGUsdC5uLnAuUyl9ZWxzZSByPUwoZSwhMCk7cmV0dXJuIF8ociwobixpKT0+e1EocixuLFNlKGkpKX0pLHQmJih0LmM9ITEpLHJ9ZnVuY3Rpb24gUGUoKXtsZXQgdD1cInJlcGxhY2VcIixyPVwiYWRkXCIsbj1cInJlbW92ZVwiO2Z1bmN0aW9uIGkocyxTLG0seCl7c3dpdGNoKHMubyl7Y2FzZSAwOmNhc2UgMjpyZXR1cm4gbChzLFMsbSx4KTtjYXNlIDE6cmV0dXJuIGYocyxTLG0seCk7Y2FzZSAzOnJldHVybiBjKHMsUyxtLHgpfX1mdW5jdGlvbiBmKHMsUyxtLHgpe2xldHt0OkkscjpQfT1zLGc9cy5lO2cubGVuZ3RoPEkubGVuZ3RoJiYoW0ksZ109W2csSV0sW20seF09W3gsbV0pO2ZvcihsZXQgeT0wO3k8SS5sZW5ndGg7eSsrKWlmKFBbeV0mJmdbeV0hPT1JW3ldKXtsZXQgZD1TLmNvbmNhdChbeV0pO20ucHVzaCh7b3A6dCxwYXRoOmQsdmFsdWU6cChnW3ldKX0pLHgucHVzaCh7b3A6dCxwYXRoOmQsdmFsdWU6cChJW3ldKX0pfWZvcihsZXQgeT1JLmxlbmd0aDt5PGcubGVuZ3RoO3krKyl7bGV0IGQ9Uy5jb25jYXQoW3ldKTttLnB1c2goe29wOnIscGF0aDpkLHZhbHVlOnAoZ1t5XSl9KX1mb3IobGV0IHk9Zy5sZW5ndGgtMTtJLmxlbmd0aDw9eTstLXkpe2xldCBkPVMuY29uY2F0KFt5XSk7eC5wdXNoKHtvcDpuLHBhdGg6ZH0pfX1mdW5jdGlvbiBsKHMsUyxtLHgpe2xldHt0OkksZTpQfT1zO18ocy5yLChnLHkpPT57bGV0IGQ9WChJLGcpLEg9WChQLGcpLEY9eT9SKEksZyk/dDpyOm47aWYoZD09PUgmJkY9PT10KXJldHVybjtsZXQgRD1TLmNvbmNhdChnKTttLnB1c2goRj09PW4/e29wOkYscGF0aDpEfTp7b3A6RixwYXRoOkQsdmFsdWU6SH0pLHgucHVzaChGPT09cj97b3A6bixwYXRoOkR9OkY9PT1uP3tvcDpyLHBhdGg6RCx2YWx1ZTpwKGQpfTp7b3A6dCxwYXRoOkQsdmFsdWU6cChkKX0pfSl9ZnVuY3Rpb24gYyhzLFMsbSx4KXtsZXR7dDpJLGU6UH09cyxnPTA7SS5mb3JFYWNoKHk9PntpZighUC5oYXMoeSkpe2xldCBkPVMuY29uY2F0KFtnXSk7bS5wdXNoKHtvcDpuLHBhdGg6ZCx2YWx1ZTp5fSkseC51bnNoaWZ0KHtvcDpyLHBhdGg6ZCx2YWx1ZTp5fSl9ZysrfSksZz0wLFAuZm9yRWFjaCh5PT57aWYoIUkuaGFzKHkpKXtsZXQgZD1TLmNvbmNhdChbZ10pO20ucHVzaCh7b3A6cixwYXRoOmQsdmFsdWU6eX0pLHgudW5zaGlmdCh7b3A6bixwYXRoOmQsdmFsdWU6eX0pfWcrK30pfWZ1bmN0aW9uIGIocyxTLG0seCl7bS5wdXNoKHtvcDp0LHBhdGg6W10sdmFsdWU6Uz09PWo/dm9pZCAwOlN9KSx4LnB1c2goe29wOnQscGF0aDpbXSx2YWx1ZTpzfSl9ZnVuY3Rpb24gYShzLFMpe3JldHVybiBTLmZvckVhY2gobT0+e2xldHtwYXRoOngsb3A6SX09bSxQPXM7Zm9yKGxldCBIPTA7SDx4Lmxlbmd0aC0xO0grKyl7bGV0IEY9QyhQKSxEPXhbSF07dHlwZW9mIEQhPVwic3RyaW5nXCImJnR5cGVvZiBEIT1cIm51bWJlclwiJiYoRD1cIlwiK0QpLChGPT09MHx8Rj09PTEpJiYoRD09PVwiX19wcm90b19fXCJ8fEQ9PT1cImNvbnN0cnVjdG9yXCIpJiZoKDE2KzMpLHR5cGVvZiBQPT1cImZ1bmN0aW9uXCImJkQ9PT1cInByb3RvdHlwZVwiJiZoKDE2KzMpLFA9WChQLEQpLHR5cGVvZiBQIT1cIm9iamVjdFwiJiZoKDE2KzIseC5qb2luKFwiL1wiKSl9bGV0IGc9QyhQKSx5PW8obS52YWx1ZSksZD14W3gubGVuZ3RoLTFdO3N3aXRjaChJKXtjYXNlIHQ6c3dpdGNoKGcpe2Nhc2UgMjpyZXR1cm4gUC5zZXQoZCx5KTtjYXNlIDM6aCgxNik7ZGVmYXVsdDpyZXR1cm4gUFtkXT15fWNhc2Ugcjpzd2l0Y2goZyl7Y2FzZSAxOnJldHVybiBkPT09XCItXCI/UC5wdXNoKHkpOlAuc3BsaWNlKGQsMCx5KTtjYXNlIDI6cmV0dXJuIFAuc2V0KGQseSk7Y2FzZSAzOnJldHVybiBQLmFkZCh5KTtkZWZhdWx0OnJldHVybiBQW2RdPXl9Y2FzZSBuOnN3aXRjaChnKXtjYXNlIDE6cmV0dXJuIFAuc3BsaWNlKGQsMSk7Y2FzZSAyOnJldHVybiBQLmRlbGV0ZShkKTtjYXNlIDM6cmV0dXJuIFAuZGVsZXRlKG0udmFsdWUpO2RlZmF1bHQ6cmV0dXJuIGRlbGV0ZSBQW2RdfWRlZmF1bHQ6aCgxNisxLEkpfX0pLHN9ZnVuY3Rpb24gbyhzKXtpZighQShzKSlyZXR1cm4gcztpZihBcnJheS5pc0FycmF5KHMpKXJldHVybiBzLm1hcChvKTtpZih2KHMpKXJldHVybiBuZXcgTWFwKEFycmF5LmZyb20ocy5lbnRyaWVzKCkpLm1hcCgoW20seF0pPT5bbSxvKHgpXSkpO2lmKGsocykpcmV0dXJuIG5ldyBTZXQoQXJyYXkuZnJvbShzKS5tYXAobykpO2xldCBTPU9iamVjdC5jcmVhdGUoeihzKSk7Zm9yKGxldCBtIGluIHMpU1ttXT1vKHNbbV0pO3JldHVybiBSKHMsTikmJihTW05dPXNbTl0pLFN9ZnVuY3Rpb24gcChzKXtyZXR1cm4gTyhzKT9vKHMpOnN9WShcIlBhdGNoZXNcIix7QTphLGc6aSxUOmJ9KX1mdW5jdGlvbiB4ZSgpe2NsYXNzIGUgZXh0ZW5kcyBNYXB7Y29uc3RydWN0b3IoYSxvKXtzdXBlcigpO3RoaXNbdV09e286MixpOm8sbjpvP28ubjpCKCksczohMSxjOiExLGU6dm9pZCAwLHI6dm9pZCAwLHQ6YSx1OnRoaXMsbDohMSxtOiExfX1nZXQgc2l6ZSgpe3JldHVybiBUKHRoaXNbdV0pLnNpemV9aGFzKGEpe3JldHVybiBUKHRoaXNbdV0pLmhhcyhhKX1zZXQoYSxvKXtsZXQgcD10aGlzW3VdO3JldHVybiBsKHApLCghVChwKS5oYXMoYSl8fFQocCkuZ2V0KGEpIT09bykmJihyKHApLEUocCkscC5yLnNldChhLCEwKSxwLmUuc2V0KGEsbykscC5yLnNldChhLCEwKSksdGhpc31kZWxldGUoYSl7aWYoIXRoaXMuaGFzKGEpKXJldHVybiExO2xldCBvPXRoaXNbdV07cmV0dXJuIGwobykscihvKSxFKG8pLG8udC5oYXMoYSk/by5yLnNldChhLCExKTpvLnIuZGVsZXRlKGEpLG8uZS5kZWxldGUoYSksITB9Y2xlYXIoKXtsZXQgYT10aGlzW3VdO2woYSksVChhKS5zaXplJiYocihhKSxFKGEpLGEucj1uZXcgTWFwLF8oYS50LG89PnthLnIuc2V0KG8sITEpfSksYS5lLmNsZWFyKCkpfWZvckVhY2goYSxvKXtsZXQgcD10aGlzW3VdO1QocCkuZm9yRWFjaCgocyxTLG0pPT57YS5jYWxsKG8sdGhpcy5nZXQoUyksUyx0aGlzKX0pfWdldChhKXtsZXQgbz10aGlzW3VdO2wobyk7bGV0IHA9VChvKS5nZXQoYSk7aWYoby5jfHwhQShwKXx8cCE9PW8udC5nZXQoYSkpcmV0dXJuIHA7bGV0IHM9VyhwLG8pO3JldHVybiByKG8pLG8uZS5zZXQoYSxzKSxzfWtleXMoKXtyZXR1cm4gVCh0aGlzW3VdKS5rZXlzKCl9dmFsdWVzKCl7bGV0IGE9dGhpcy5rZXlzKCk7cmV0dXJue1tTeW1ib2wuaXRlcmF0b3JdOigpPT50aGlzLnZhbHVlcygpLG5leHQ6KCk9PntsZXQgbz1hLm5leHQoKTtyZXR1cm4gby5kb25lP286e2RvbmU6ITEsdmFsdWU6dGhpcy5nZXQoby52YWx1ZSl9fX19ZW50cmllcygpe2xldCBhPXRoaXMua2V5cygpO3JldHVybntbU3ltYm9sLml0ZXJhdG9yXTooKT0+dGhpcy5lbnRyaWVzKCksbmV4dDooKT0+e2xldCBvPWEubmV4dCgpO2lmKG8uZG9uZSlyZXR1cm4gbztsZXQgcD10aGlzLmdldChvLnZhbHVlKTtyZXR1cm57ZG9uZTohMSx2YWx1ZTpbby52YWx1ZSxwXX19fX1bKHUsU3ltYm9sLml0ZXJhdG9yKV0oKXtyZXR1cm4gdGhpcy5lbnRyaWVzKCl9fWZ1bmN0aW9uIHQoYyxiKXtyZXR1cm4gbmV3IGUoYyxiKX1mdW5jdGlvbiByKGMpe2MuZXx8KGMucj1uZXcgTWFwLGMuZT1uZXcgTWFwKGMudCkpfWNsYXNzIG4gZXh0ZW5kcyBTZXR7Y29uc3RydWN0b3IoYSxvKXtzdXBlcigpO3RoaXNbdV09e286MyxpOm8sbjpvP28ubjpCKCksczohMSxjOiExLGU6dm9pZCAwLHQ6YSx1OnRoaXMsYTpuZXcgTWFwLG06ITEsbDohMX19Z2V0IHNpemUoKXtyZXR1cm4gVCh0aGlzW3VdKS5zaXplfWhhcyhhKXtsZXQgbz10aGlzW3VdO3JldHVybiBsKG8pLG8uZT8hIShvLmUuaGFzKGEpfHxvLmEuaGFzKGEpJiZvLmUuaGFzKG8uYS5nZXQoYSkpKTpvLnQuaGFzKGEpfWFkZChhKXtsZXQgbz10aGlzW3VdO3JldHVybiBsKG8pLHRoaXMuaGFzKGEpfHwoZihvKSxFKG8pLG8uZS5hZGQoYSkpLHRoaXN9ZGVsZXRlKGEpe2lmKCF0aGlzLmhhcyhhKSlyZXR1cm4hMTtsZXQgbz10aGlzW3VdO3JldHVybiBsKG8pLGYobyksRShvKSxvLmUuZGVsZXRlKGEpfHwoby5hLmhhcyhhKT9vLmUuZGVsZXRlKG8uYS5nZXQoYSkpOiExKX1jbGVhcigpe2xldCBhPXRoaXNbdV07bChhKSxUKGEpLnNpemUmJihmKGEpLEUoYSksYS5lLmNsZWFyKCkpfXZhbHVlcygpe2xldCBhPXRoaXNbdV07cmV0dXJuIGwoYSksZihhKSxhLmUudmFsdWVzKCl9ZW50cmllcygpe2xldCBhPXRoaXNbdV07cmV0dXJuIGwoYSksZihhKSxhLmUuZW50cmllcygpfWtleXMoKXtyZXR1cm4gdGhpcy52YWx1ZXMoKX1bKHUsU3ltYm9sLml0ZXJhdG9yKV0oKXtyZXR1cm4gdGhpcy52YWx1ZXMoKX1mb3JFYWNoKGEsbyl7bGV0IHA9dGhpcy52YWx1ZXMoKSxzPXAubmV4dCgpO2Zvcig7IXMuZG9uZTspYS5jYWxsKG8scy52YWx1ZSxzLnZhbHVlLHRoaXMpLHM9cC5uZXh0KCl9fWZ1bmN0aW9uIGkoYyxiKXtyZXR1cm4gbmV3IG4oYyxiKX1mdW5jdGlvbiBmKGMpe2MuZXx8KGMuZT1uZXcgU2V0LGMudC5mb3JFYWNoKGI9PntpZihBKGIpKXtsZXQgYT1XKGIsYyk7Yy5hLnNldChiLGEpLGMuZS5hZGQoYSl9ZWxzZSBjLmUuYWRkKGIpfSkpfWZ1bmN0aW9uIGwoYyl7Yy5tJiZoKDMsSlNPTi5zdHJpbmdpZnkoVChjKSkpfVkoXCJNYXBTZXRcIix7STp0LEQ6aX0pfXZhciBNPW5ldyBKLEZlPU0ucHJvZHVjZSxOZT1NLnByb2R1Y2VXaXRoUGF0Y2hlcy5iaW5kKE0pLHplPU0uc2V0QXV0b0ZyZWV6ZS5iaW5kKE0pLGplPU0uc2V0VXNlU3RyaWN0U2hhbGxvd0NvcHkuYmluZChNKSxDZT1NLmFwcGx5UGF0Y2hlcy5iaW5kKE0pLFJlPU0uY3JlYXRlRHJhZnQuYmluZChNKSx2ZT1NLmZpbmlzaERyYWZ0LmJpbmQoTSk7ZnVuY3Rpb24ga2UoZSl7cmV0dXJuIGV9ZnVuY3Rpb24gS2UoZSl7cmV0dXJuIGV9MCYmKG1vZHVsZS5leHBvcnRzPXtJbW1lcixhcHBseVBhdGNoZXMsY2FzdERyYWZ0LGNhc3RJbW11dGFibGUsY3JlYXRlRHJhZnQsY3VycmVudCxlbmFibGVNYXBTZXQsZW5hYmxlUGF0Y2hlcyxmaW5pc2hEcmFmdCxmcmVlemUsaW1tZXJhYmxlLGlzRHJhZnQsaXNEcmFmdGFibGUsbm90aGluZyxvcmlnaW5hbCxwcm9kdWNlLHByb2R1Y2VXaXRoUGF0Y2hlcyxzZXRBdXRvRnJlZXplLHNldFVzZVN0cmljdFNoYWxsb3dDb3B5fSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbW1lci5janMucHJvZHVjdGlvbi5qcy5tYXAiLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmNvbnN0IG1vZGVsc18xID0gcmVxdWlyZShcIkBjb21tb24vbW9kZWxzXCIpO1xuZXhwb3J0cy5kZWZhdWx0ID0gKHN0YXRlID0gbW9kZWxzXzEuaW5pdHMuYm9vdE9wdGlvbiwgYWN0aW9uKSA9PiB7XG4gICAgcmV0dXJuIGFjdGlvbi5ib290T3B0aW9uID8gYWN0aW9uLmJvb3RPcHRpb24gOiBzdGF0ZTtcbn07XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2NyZWF0ZUJpbmRpbmcgPSAodGhpcyAmJiB0aGlzLl9fY3JlYXRlQmluZGluZykgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCBrKTtcbiAgICBpZiAoIWRlc2MgfHwgKFwiZ2V0XCIgaW4gZGVzYyA/ICFtLl9fZXNNb2R1bGUgOiBkZXNjLndyaXRhYmxlIHx8IGRlc2MuY29uZmlndXJhYmxlKSkge1xuICAgICAgZGVzYyA9IHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfTtcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCBkZXNjKTtcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBvW2syXSA9IG1ba107XG59KSk7XG52YXIgX19zZXRNb2R1bGVEZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX3NldE1vZHVsZURlZmF1bHQpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIHYpIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgXCJkZWZhdWx0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7XG59KSA6IGZ1bmN0aW9uKG8sIHYpIHtcbiAgICBvW1wiZGVmYXVsdFwiXSA9IHY7XG59KTtcbnZhciBfX2ltcG9ydFN0YXIgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0U3RhcikgfHwgKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgb3duS2V5cyA9IGZ1bmN0aW9uKG8pIHtcbiAgICAgICAgb3duS2V5cyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzIHx8IGZ1bmN0aW9uIChvKSB7XG4gICAgICAgICAgICB2YXIgYXIgPSBbXTtcbiAgICAgICAgICAgIGZvciAodmFyIGsgaW4gbykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvLCBrKSkgYXJbYXIubGVuZ3RoXSA9IGs7XG4gICAgICAgICAgICByZXR1cm4gYXI7XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBvd25LZXlzKG8pO1xuICAgIH07XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChtb2QpIHtcbiAgICAgICAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDtcbiAgICAgICAgdmFyIHJlc3VsdCA9IHt9O1xuICAgICAgICBpZiAobW9kICE9IG51bGwpIGZvciAodmFyIGsgPSBvd25LZXlzKG1vZCksIGkgPSAwOyBpIDwgay5sZW5ndGg7IGkrKykgaWYgKGtbaV0gIT09IFwiZGVmYXVsdFwiKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGtbaV0pO1xuICAgICAgICBfX3NldE1vZHVsZURlZmF1bHQocmVzdWx0LCBtb2QpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH07XG59KSgpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5pbml0ID0gZXhwb3J0cy5MaWdodFJhbmtNb2RlbCA9IHZvaWQgMDtcbmNvbnN0IFBvc3RfMSA9IF9faW1wb3J0U3RhcihyZXF1aXJlKFwiLi9Qb3N0XCIpKTtcbmNsYXNzIExpZ2h0UmFua01vZGVsIHtcbiAgICBjb25zdHJ1Y3RvcihwYXJhbXMgPSB7fSkge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih0aGlzLCB7IGNvbm5lY3Rpb246IHBhcmFtcy52YWx1ZSwgbGl2ZUNudDogcGFyYW1zLnNjb3JlIH0pO1xuICAgIH1cbn1cbmV4cG9ydHMuTGlnaHRSYW5rTW9kZWwgPSBMaWdodFJhbmtNb2RlbDtcbmNsYXNzIFJhbmtNb2RlbCB7XG4gICAgc3RhdGljIGdldExpZ2h0UmFuayhyYW5nZVdpdGhTY29yZXMpIHtcbiAgICAgICAgcmV0dXJuIHJhbmdlV2l0aFNjb3Jlcy5tYXAoKGxpdmVSYW5rKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4geyBjb25uZWN0aW9uOiBsaXZlUmFuay52YWx1ZSwgbGl2ZUNudDogbGl2ZVJhbmsuc2NvcmUgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKHBhcmFtcyA9IHt9KSB7XG4gICAgICAgIGNvbnN0IHBvc3QgPSBuZXcgUG9zdF8xLmRlZmF1bHQocGFyYW1zKTtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24odGhpcywgcGFyYW1zLCBwb3N0KTtcbiAgICB9XG59XG5leHBvcnRzLmRlZmF1bHQgPSBSYW5rTW9kZWw7XG5leHBvcnRzLmluaXQgPSB7IC4uLlBvc3RfMS5pbml0LCBsaXZlQ250OiAwIH07XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuUmVxdWVzdCA9IGV4cG9ydHMuUG9sbGluZyA9IHZvaWQgMDtcbmNvbnN0IHRyYW5zcG9ydF9qc18xID0gcmVxdWlyZShcIi4uL3RyYW5zcG9ydC5qc1wiKTtcbmNvbnN0IGRlYnVnXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcImRlYnVnXCIpKTsgLy8gZGVidWcoKVxuY29uc3QgeWVhc3RfanNfMSA9IHJlcXVpcmUoXCIuLi9jb250cmliL3llYXN0LmpzXCIpO1xuY29uc3QgZW5naW5lX2lvX3BhcnNlcl8xID0gcmVxdWlyZShcImVuZ2luZS5pby1wYXJzZXJcIik7XG5jb25zdCB4bWxodHRwcmVxdWVzdF9qc18xID0gcmVxdWlyZShcIi4veG1saHR0cHJlcXVlc3QuanNcIik7XG5jb25zdCBjb21wb25lbnRfZW1pdHRlcl8xID0gcmVxdWlyZShcIkBzb2NrZXQuaW8vY29tcG9uZW50LWVtaXR0ZXJcIik7XG5jb25zdCB1dGlsX2pzXzEgPSByZXF1aXJlKFwiLi4vdXRpbC5qc1wiKTtcbmNvbnN0IGdsb2JhbFRoaXNfanNfMSA9IHJlcXVpcmUoXCIuLi9nbG9iYWxUaGlzLmpzXCIpO1xuY29uc3QgZGVidWcgPSAoMCwgZGVidWdfMS5kZWZhdWx0KShcImVuZ2luZS5pby1jbGllbnQ6cG9sbGluZ1wiKTsgLy8gZGVidWcoKVxuZnVuY3Rpb24gZW1wdHkoKSB7IH1cbmNvbnN0IGhhc1hIUjIgPSAoZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHhociA9IG5ldyB4bWxodHRwcmVxdWVzdF9qc18xLlhIUih7XG4gICAgICAgIHhkb21haW46IGZhbHNlLFxuICAgIH0pO1xuICAgIHJldHVybiBudWxsICE9IHhoci5yZXNwb25zZVR5cGU7XG59KSgpO1xuY2xhc3MgUG9sbGluZyBleHRlbmRzIHRyYW5zcG9ydF9qc18xLlRyYW5zcG9ydCB7XG4gICAgLyoqXG4gICAgICogWEhSIFBvbGxpbmcgY29uc3RydWN0b3IuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0c1xuICAgICAqIEBwYWNrYWdlXG4gICAgICovXG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcihvcHRzKTtcbiAgICAgICAgdGhpcy5wb2xsaW5nID0gZmFsc2U7XG4gICAgICAgIGlmICh0eXBlb2YgbG9jYXRpb24gIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IGlzU1NMID0gXCJodHRwczpcIiA9PT0gbG9jYXRpb24ucHJvdG9jb2w7XG4gICAgICAgICAgICBsZXQgcG9ydCA9IGxvY2F0aW9uLnBvcnQ7XG4gICAgICAgICAgICAvLyBzb21lIHVzZXIgYWdlbnRzIGhhdmUgZW1wdHkgYGxvY2F0aW9uLnBvcnRgXG4gICAgICAgICAgICBpZiAoIXBvcnQpIHtcbiAgICAgICAgICAgICAgICBwb3J0ID0gaXNTU0wgPyBcIjQ0M1wiIDogXCI4MFwiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy54ZCA9XG4gICAgICAgICAgICAgICAgKHR5cGVvZiBsb2NhdGlvbiAhPT0gXCJ1bmRlZmluZWRcIiAmJlxuICAgICAgICAgICAgICAgICAgICBvcHRzLmhvc3RuYW1lICE9PSBsb2NhdGlvbi5ob3N0bmFtZSkgfHxcbiAgICAgICAgICAgICAgICAgICAgcG9ydCAhPT0gb3B0cy5wb3J0O1xuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBYSFIgc3VwcG9ydHMgYmluYXJ5XG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCBmb3JjZUJhc2U2NCA9IG9wdHMgJiYgb3B0cy5mb3JjZUJhc2U2NDtcbiAgICAgICAgdGhpcy5zdXBwb3J0c0JpbmFyeSA9IGhhc1hIUjIgJiYgIWZvcmNlQmFzZTY0O1xuICAgICAgICBpZiAodGhpcy5vcHRzLndpdGhDcmVkZW50aWFscykge1xuICAgICAgICAgICAgdGhpcy5jb29raWVKYXIgPSAoMCwgeG1saHR0cHJlcXVlc3RfanNfMS5jcmVhdGVDb29raWVKYXIpKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IG5hbWUoKSB7XG4gICAgICAgIHJldHVybiBcInBvbGxpbmdcIjtcbiAgICB9XG4gICAgLyoqXG4gICAgICogT3BlbnMgdGhlIHNvY2tldCAodHJpZ2dlcnMgcG9sbGluZykuIFdlIHdyaXRlIGEgUElORyBtZXNzYWdlIHRvIGRldGVybWluZVxuICAgICAqIHdoZW4gdGhlIHRyYW5zcG9ydCBpcyBvcGVuLlxuICAgICAqXG4gICAgICogQHByb3RlY3RlZFxuICAgICAqL1xuICAgIGRvT3BlbigpIHtcbiAgICAgICAgdGhpcy5wb2xsKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFBhdXNlcyBwb2xsaW5nLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gb25QYXVzZSAtIGNhbGxiYWNrIHVwb24gYnVmZmVycyBhcmUgZmx1c2hlZCBhbmQgdHJhbnNwb3J0IGlzIHBhdXNlZFxuICAgICAqIEBwYWNrYWdlXG4gICAgICovXG4gICAgcGF1c2Uob25QYXVzZSkge1xuICAgICAgICB0aGlzLnJlYWR5U3RhdGUgPSBcInBhdXNpbmdcIjtcbiAgICAgICAgY29uc3QgcGF1c2UgPSAoKSA9PiB7XG4gICAgICAgICAgICBkZWJ1ZyhcInBhdXNlZFwiKTtcbiAgICAgICAgICAgIHRoaXMucmVhZHlTdGF0ZSA9IFwicGF1c2VkXCI7XG4gICAgICAgICAgICBvblBhdXNlKCk7XG4gICAgICAgIH07XG4gICAgICAgIGlmICh0aGlzLnBvbGxpbmcgfHwgIXRoaXMud3JpdGFibGUpIHtcbiAgICAgICAgICAgIGxldCB0b3RhbCA9IDA7XG4gICAgICAgICAgICBpZiAodGhpcy5wb2xsaW5nKSB7XG4gICAgICAgICAgICAgICAgZGVidWcoXCJ3ZSBhcmUgY3VycmVudGx5IHBvbGxpbmcgLSB3YWl0aW5nIHRvIHBhdXNlXCIpO1xuICAgICAgICAgICAgICAgIHRvdGFsKys7XG4gICAgICAgICAgICAgICAgdGhpcy5vbmNlKFwicG9sbENvbXBsZXRlXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgZGVidWcoXCJwcmUtcGF1c2UgcG9sbGluZyBjb21wbGV0ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgLS10b3RhbCB8fCBwYXVzZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCF0aGlzLndyaXRhYmxlKSB7XG4gICAgICAgICAgICAgICAgZGVidWcoXCJ3ZSBhcmUgY3VycmVudGx5IHdyaXRpbmcgLSB3YWl0aW5nIHRvIHBhdXNlXCIpO1xuICAgICAgICAgICAgICAgIHRvdGFsKys7XG4gICAgICAgICAgICAgICAgdGhpcy5vbmNlKFwiZHJhaW5cIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBkZWJ1ZyhcInByZS1wYXVzZSB3cml0aW5nIGNvbXBsZXRlXCIpO1xuICAgICAgICAgICAgICAgICAgICAtLXRvdGFsIHx8IHBhdXNlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBwYXVzZSgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFN0YXJ0cyBwb2xsaW5nIGN5Y2xlLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwb2xsKCkge1xuICAgICAgICBkZWJ1ZyhcInBvbGxpbmdcIik7XG4gICAgICAgIHRoaXMucG9sbGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuZG9Qb2xsKCk7XG4gICAgICAgIHRoaXMuZW1pdFJlc2VydmVkKFwicG9sbFwiKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogT3ZlcmxvYWRzIG9uRGF0YSB0byBkZXRlY3QgcGF5bG9hZHMuXG4gICAgICpcbiAgICAgKiBAcHJvdGVjdGVkXG4gICAgICovXG4gICAgb25EYXRhKGRhdGEpIHtcbiAgICAgICAgZGVidWcoXCJwb2xsaW5nIGdvdCBkYXRhICVzXCIsIGRhdGEpO1xuICAgICAgICBjb25zdCBjYWxsYmFjayA9IChwYWNrZXQpID0+IHtcbiAgICAgICAgICAgIC8vIGlmIGl0cyB0aGUgZmlyc3QgbWVzc2FnZSB3ZSBjb25zaWRlciB0aGUgdHJhbnNwb3J0IG9wZW5cbiAgICAgICAgICAgIGlmIChcIm9wZW5pbmdcIiA9PT0gdGhpcy5yZWFkeVN0YXRlICYmIHBhY2tldC50eXBlID09PSBcIm9wZW5cIikge1xuICAgICAgICAgICAgICAgIHRoaXMub25PcGVuKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBpZiBpdHMgYSBjbG9zZSBwYWNrZXQsIHdlIGNsb3NlIHRoZSBvbmdvaW5nIHJlcXVlc3RzXG4gICAgICAgICAgICBpZiAoXCJjbG9zZVwiID09PSBwYWNrZXQudHlwZSkge1xuICAgICAgICAgICAgICAgIHRoaXMub25DbG9zZSh7IGRlc2NyaXB0aW9uOiBcInRyYW5zcG9ydCBjbG9zZWQgYnkgdGhlIHNlcnZlclwiIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIG90aGVyd2lzZSBieXBhc3Mgb25EYXRhIGFuZCBoYW5kbGUgdGhlIG1lc3NhZ2VcbiAgICAgICAgICAgIHRoaXMub25QYWNrZXQocGFja2V0KTtcbiAgICAgICAgfTtcbiAgICAgICAgLy8gZGVjb2RlIHBheWxvYWRcbiAgICAgICAgKDAsIGVuZ2luZV9pb19wYXJzZXJfMS5kZWNvZGVQYXlsb2FkKShkYXRhLCB0aGlzLnNvY2tldC5iaW5hcnlUeXBlKS5mb3JFYWNoKGNhbGxiYWNrKTtcbiAgICAgICAgLy8gaWYgYW4gZXZlbnQgZGlkIG5vdCB0cmlnZ2VyIGNsb3NpbmdcbiAgICAgICAgaWYgKFwiY2xvc2VkXCIgIT09IHRoaXMucmVhZHlTdGF0ZSkge1xuICAgICAgICAgICAgLy8gaWYgd2UgZ290IGRhdGEgd2UncmUgbm90IHBvbGxpbmdcbiAgICAgICAgICAgIHRoaXMucG9sbGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5lbWl0UmVzZXJ2ZWQoXCJwb2xsQ29tcGxldGVcIik7XG4gICAgICAgICAgICBpZiAoXCJvcGVuXCIgPT09IHRoaXMucmVhZHlTdGF0ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMucG9sbCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgZGVidWcoJ2lnbm9yaW5nIHBvbGwgLSB0cmFuc3BvcnQgc3RhdGUgXCIlc1wiJywgdGhpcy5yZWFkeVN0YXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBGb3IgcG9sbGluZywgc2VuZCBhIGNsb3NlIHBhY2tldC5cbiAgICAgKlxuICAgICAqIEBwcm90ZWN0ZWRcbiAgICAgKi9cbiAgICBkb0Nsb3NlKCkge1xuICAgICAgICBjb25zdCBjbG9zZSA9ICgpID0+IHtcbiAgICAgICAgICAgIGRlYnVnKFwid3JpdGluZyBjbG9zZSBwYWNrZXRcIik7XG4gICAgICAgICAgICB0aGlzLndyaXRlKFt7IHR5cGU6IFwiY2xvc2VcIiB9XSk7XG4gICAgICAgIH07XG4gICAgICAgIGlmIChcIm9wZW5cIiA9PT0gdGhpcy5yZWFkeVN0YXRlKSB7XG4gICAgICAgICAgICBkZWJ1ZyhcInRyYW5zcG9ydCBvcGVuIC0gY2xvc2luZ1wiKTtcbiAgICAgICAgICAgIGNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAvLyBpbiBjYXNlIHdlJ3JlIHRyeWluZyB0byBjbG9zZSB3aGlsZVxuICAgICAgICAgICAgLy8gaGFuZHNoYWtpbmcgaXMgaW4gcHJvZ3Jlc3MgKEdILTE2NClcbiAgICAgICAgICAgIGRlYnVnKFwidHJhbnNwb3J0IG5vdCBvcGVuIC0gZGVmZXJyaW5nIGNsb3NlXCIpO1xuICAgICAgICAgICAgdGhpcy5vbmNlKFwib3BlblwiLCBjbG9zZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogV3JpdGVzIGEgcGFja2V0cyBwYXlsb2FkLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtBcnJheX0gcGFja2V0cyAtIGRhdGEgcGFja2V0c1xuICAgICAqIEBwcm90ZWN0ZWRcbiAgICAgKi9cbiAgICB3cml0ZShwYWNrZXRzKSB7XG4gICAgICAgIHRoaXMud3JpdGFibGUgPSBmYWxzZTtcbiAgICAgICAgKDAsIGVuZ2luZV9pb19wYXJzZXJfMS5lbmNvZGVQYXlsb2FkKShwYWNrZXRzLCAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5kb1dyaXRlKGRhdGEsICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRhYmxlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRSZXNlcnZlZChcImRyYWluXCIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBHZW5lcmF0ZXMgdXJpIGZvciBjb25uZWN0aW9uLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICB1cmkoKSB7XG4gICAgICAgIGNvbnN0IHNjaGVtYSA9IHRoaXMub3B0cy5zZWN1cmUgPyBcImh0dHBzXCIgOiBcImh0dHBcIjtcbiAgICAgICAgY29uc3QgcXVlcnkgPSB0aGlzLnF1ZXJ5IHx8IHt9O1xuICAgICAgICAvLyBjYWNoZSBidXN0aW5nIGlzIGZvcmNlZFxuICAgICAgICBpZiAoZmFsc2UgIT09IHRoaXMub3B0cy50aW1lc3RhbXBSZXF1ZXN0cykge1xuICAgICAgICAgICAgcXVlcnlbdGhpcy5vcHRzLnRpbWVzdGFtcFBhcmFtXSA9ICgwLCB5ZWFzdF9qc18xLnllYXN0KSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5zdXBwb3J0c0JpbmFyeSAmJiAhcXVlcnkuc2lkKSB7XG4gICAgICAgICAgICBxdWVyeS5iNjQgPSAxO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVVyaShzY2hlbWEsIHF1ZXJ5KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIHJlcXVlc3QuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gbWV0aG9kXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICByZXF1ZXN0KG9wdHMgPSB7fSkge1xuICAgICAgICBPYmplY3QuYXNzaWduKG9wdHMsIHsgeGQ6IHRoaXMueGQsIGNvb2tpZUphcjogdGhpcy5jb29raWVKYXIgfSwgdGhpcy5vcHRzKTtcbiAgICAgICAgcmV0dXJuIG5ldyBSZXF1ZXN0KHRoaXMudXJpKCksIG9wdHMpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZW5kcyBkYXRhLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IGRhdGEgdG8gc2VuZC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsZWQgdXBvbiBmbHVzaC5cbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIGRvV3JpdGUoZGF0YSwgZm4pIHtcbiAgICAgICAgY29uc3QgcmVxID0gdGhpcy5yZXF1ZXN0KHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICB9KTtcbiAgICAgICAgcmVxLm9uKFwic3VjY2Vzc1wiLCBmbik7XG4gICAgICAgIHJlcS5vbihcImVycm9yXCIsICh4aHJTdGF0dXMsIGNvbnRleHQpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25FcnJvcihcInhociBwb3N0IGVycm9yXCIsIHhoclN0YXR1cywgY29udGV4dCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTdGFydHMgYSBwb2xsIGN5Y2xlLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBkb1BvbGwoKSB7XG4gICAgICAgIGRlYnVnKFwieGhyIHBvbGxcIik7XG4gICAgICAgIGNvbnN0IHJlcSA9IHRoaXMucmVxdWVzdCgpO1xuICAgICAgICByZXEub24oXCJkYXRhXCIsIHRoaXMub25EYXRhLmJpbmQodGhpcykpO1xuICAgICAgICByZXEub24oXCJlcnJvclwiLCAoeGhyU3RhdHVzLCBjb250ZXh0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uRXJyb3IoXCJ4aHIgcG9sbCBlcnJvclwiLCB4aHJTdGF0dXMsIGNvbnRleHQpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5wb2xsWGhyID0gcmVxO1xuICAgIH1cbn1cbmV4cG9ydHMuUG9sbGluZyA9IFBvbGxpbmc7XG5jbGFzcyBSZXF1ZXN0IGV4dGVuZHMgY29tcG9uZW50X2VtaXR0ZXJfMS5FbWl0dGVyIHtcbiAgICAvKipcbiAgICAgKiBSZXF1ZXN0IGNvbnN0cnVjdG9yXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9uc1xuICAgICAqIEBwYWNrYWdlXG4gICAgICovXG4gICAgY29uc3RydWN0b3IodXJpLCBvcHRzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgICgwLCB1dGlsX2pzXzEuaW5zdGFsbFRpbWVyRnVuY3Rpb25zKSh0aGlzLCBvcHRzKTtcbiAgICAgICAgdGhpcy5vcHRzID0gb3B0cztcbiAgICAgICAgdGhpcy5tZXRob2QgPSBvcHRzLm1ldGhvZCB8fCBcIkdFVFwiO1xuICAgICAgICB0aGlzLnVyaSA9IHVyaTtcbiAgICAgICAgdGhpcy5kYXRhID0gdW5kZWZpbmVkICE9PSBvcHRzLmRhdGEgPyBvcHRzLmRhdGEgOiBudWxsO1xuICAgICAgICB0aGlzLmNyZWF0ZSgpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIHRoZSBYSFIgb2JqZWN0IGFuZCBzZW5kcyB0aGUgcmVxdWVzdC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgY3JlYXRlKCkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGNvbnN0IG9wdHMgPSAoMCwgdXRpbF9qc18xLnBpY2spKHRoaXMub3B0cywgXCJhZ2VudFwiLCBcInBmeFwiLCBcImtleVwiLCBcInBhc3NwaHJhc2VcIiwgXCJjZXJ0XCIsIFwiY2FcIiwgXCJjaXBoZXJzXCIsIFwicmVqZWN0VW5hdXRob3JpemVkXCIsIFwiYXV0b1VucmVmXCIpO1xuICAgICAgICBvcHRzLnhkb21haW4gPSAhIXRoaXMub3B0cy54ZDtcbiAgICAgICAgY29uc3QgeGhyID0gKHRoaXMueGhyID0gbmV3IHhtbGh0dHByZXF1ZXN0X2pzXzEuWEhSKG9wdHMpKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGRlYnVnKFwieGhyIG9wZW4gJXM6ICVzXCIsIHRoaXMubWV0aG9kLCB0aGlzLnVyaSk7XG4gICAgICAgICAgICB4aHIub3Blbih0aGlzLm1ldGhvZCwgdGhpcy51cmksIHRydWUpO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5vcHRzLmV4dHJhSGVhZGVycykge1xuICAgICAgICAgICAgICAgICAgICB4aHIuc2V0RGlzYWJsZUhlYWRlckNoZWNrICYmIHhoci5zZXREaXNhYmxlSGVhZGVyQ2hlY2sodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgaW4gdGhpcy5vcHRzLmV4dHJhSGVhZGVycykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0cy5leHRyYUhlYWRlcnMuaGFzT3duUHJvcGVydHkoaSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcihpLCB0aGlzLm9wdHMuZXh0cmFIZWFkZXJzW2ldKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlKSB7IH1cbiAgICAgICAgICAgIGlmIChcIlBPU1RcIiA9PT0gdGhpcy5tZXRob2QpIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcihcIkNvbnRlbnQtdHlwZVwiLCBcInRleHQvcGxhaW47Y2hhcnNldD1VVEYtOFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHsgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcihcIkFjY2VwdFwiLCBcIiovKlwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlKSB7IH1cbiAgICAgICAgICAgIChfYSA9IHRoaXMub3B0cy5jb29raWVKYXIpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5hZGRDb29raWVzKHhocik7XG4gICAgICAgICAgICAvLyBpZTYgY2hlY2tcbiAgICAgICAgICAgIGlmIChcIndpdGhDcmVkZW50aWFsc1wiIGluIHhocikge1xuICAgICAgICAgICAgICAgIHhoci53aXRoQ3JlZGVudGlhbHMgPSB0aGlzLm9wdHMud2l0aENyZWRlbnRpYWxzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMub3B0cy5yZXF1ZXN0VGltZW91dCkge1xuICAgICAgICAgICAgICAgIHhoci50aW1lb3V0ID0gdGhpcy5vcHRzLnJlcXVlc3RUaW1lb3V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgeGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgaWYgKHhoci5yZWFkeVN0YXRlID09PSAzKSB7XG4gICAgICAgICAgICAgICAgICAgIChfYSA9IHRoaXMub3B0cy5jb29raWVKYXIpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5wYXJzZUNvb2tpZXMoeGhyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKDQgIT09IHhoci5yZWFkeVN0YXRlKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgaWYgKDIwMCA9PT0geGhyLnN0YXR1cyB8fCAxMjIzID09PSB4aHIuc3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25Mb2FkKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBtYWtlIHN1cmUgdGhlIGBlcnJvcmAgZXZlbnQgaGFuZGxlciB0aGF0J3MgdXNlci1zZXRcbiAgICAgICAgICAgICAgICAgICAgLy8gZG9lcyBub3QgdGhyb3cgaW4gdGhlIHNhbWUgdGljayBhbmQgZ2V0cyBjYXVnaHQgaGVyZVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFRpbWVvdXRGbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uRXJyb3IodHlwZW9mIHhoci5zdGF0dXMgPT09IFwibnVtYmVyXCIgPyB4aHIuc3RhdHVzIDogMCk7XG4gICAgICAgICAgICAgICAgICAgIH0sIDApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBkZWJ1ZyhcInhociBkYXRhICVzXCIsIHRoaXMuZGF0YSk7XG4gICAgICAgICAgICB4aHIuc2VuZCh0aGlzLmRhdGEpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAvLyBOZWVkIHRvIGRlZmVyIHNpbmNlIC5jcmVhdGUoKSBpcyBjYWxsZWQgZGlyZWN0bHkgZnJvbSB0aGUgY29uc3RydWN0b3JcbiAgICAgICAgICAgIC8vIGFuZCB0aHVzIHRoZSAnZXJyb3InIGV2ZW50IGNhbiBvbmx5IGJlIG9ubHkgYm91bmQgKmFmdGVyKiB0aGlzIGV4Y2VwdGlvblxuICAgICAgICAgICAgLy8gb2NjdXJzLiAgVGhlcmVmb3JlLCBhbHNvLCB3ZSBjYW5ub3QgdGhyb3cgaGVyZSBhdCBhbGwuXG4gICAgICAgICAgICB0aGlzLnNldFRpbWVvdXRGbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkVycm9yKGUpO1xuICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBkb2N1bWVudCAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgdGhpcy5pbmRleCA9IFJlcXVlc3QucmVxdWVzdHNDb3VudCsrO1xuICAgICAgICAgICAgUmVxdWVzdC5yZXF1ZXN0c1t0aGlzLmluZGV4XSA9IHRoaXM7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2FsbGVkIHVwb24gZXJyb3IuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIG9uRXJyb3IoZXJyKSB7XG4gICAgICAgIHRoaXMuZW1pdFJlc2VydmVkKFwiZXJyb3JcIiwgZXJyLCB0aGlzLnhocik7XG4gICAgICAgIHRoaXMuY2xlYW51cCh0cnVlKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2xlYW5zIHVwIGhvdXNlLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBjbGVhbnVwKGZyb21FcnJvcikge1xuICAgICAgICBpZiAoXCJ1bmRlZmluZWRcIiA9PT0gdHlwZW9mIHRoaXMueGhyIHx8IG51bGwgPT09IHRoaXMueGhyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy54aHIub25yZWFkeXN0YXRlY2hhbmdlID0gZW1wdHk7XG4gICAgICAgIGlmIChmcm9tRXJyb3IpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgdGhpcy54aHIuYWJvcnQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlKSB7IH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIGRvY3VtZW50ICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICBkZWxldGUgUmVxdWVzdC5yZXF1ZXN0c1t0aGlzLmluZGV4XTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnhociA9IG51bGw7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENhbGxlZCB1cG9uIGxvYWQuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIG9uTG9hZCgpIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMueGhyLnJlc3BvbnNlVGV4dDtcbiAgICAgICAgaWYgKGRhdGEgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuZW1pdFJlc2VydmVkKFwiZGF0YVwiLCBkYXRhKTtcbiAgICAgICAgICAgIHRoaXMuZW1pdFJlc2VydmVkKFwic3VjY2Vzc1wiKTtcbiAgICAgICAgICAgIHRoaXMuY2xlYW51cCgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEFib3J0cyB0aGUgcmVxdWVzdC5cbiAgICAgKlxuICAgICAqIEBwYWNrYWdlXG4gICAgICovXG4gICAgYWJvcnQoKSB7XG4gICAgICAgIHRoaXMuY2xlYW51cCgpO1xuICAgIH1cbn1cbmV4cG9ydHMuUmVxdWVzdCA9IFJlcXVlc3Q7XG5SZXF1ZXN0LnJlcXVlc3RzQ291bnQgPSAwO1xuUmVxdWVzdC5yZXF1ZXN0cyA9IHt9O1xuLyoqXG4gKiBBYm9ydHMgcGVuZGluZyByZXF1ZXN0cyB3aGVuIHVubG9hZGluZyB0aGUgd2luZG93LiBUaGlzIGlzIG5lZWRlZCB0byBwcmV2ZW50XG4gKiBtZW1vcnkgbGVha3MgKGUuZy4gd2hlbiB1c2luZyBJRSkgYW5kIHRvIGVuc3VyZSB0aGF0IG5vIHNwdXJpb3VzIGVycm9yIGlzXG4gKiBlbWl0dGVkLlxuICovXG5pZiAodHlwZW9mIGRvY3VtZW50ICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGlmICh0eXBlb2YgYXR0YWNoRXZlbnQgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGF0dGFjaEV2ZW50KFwib251bmxvYWRcIiwgdW5sb2FkSGFuZGxlcik7XG4gICAgfVxuICAgIGVsc2UgaWYgKHR5cGVvZiBhZGRFdmVudExpc3RlbmVyID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgY29uc3QgdGVybWluYXRpb25FdmVudCA9IFwib25wYWdlaGlkZVwiIGluIGdsb2JhbFRoaXNfanNfMS5nbG9iYWxUaGlzU2hpbSA/IFwicGFnZWhpZGVcIiA6IFwidW5sb2FkXCI7XG4gICAgICAgIGFkZEV2ZW50TGlzdGVuZXIodGVybWluYXRpb25FdmVudCwgdW5sb2FkSGFuZGxlciwgZmFsc2UpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHVubG9hZEhhbmRsZXIoKSB7XG4gICAgZm9yIChsZXQgaSBpbiBSZXF1ZXN0LnJlcXVlc3RzKSB7XG4gICAgICAgIGlmIChSZXF1ZXN0LnJlcXVlc3RzLmhhc093blByb3BlcnR5KGkpKSB7XG4gICAgICAgICAgICBSZXF1ZXN0LnJlcXVlc3RzW2ldLmFib3J0KCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvLyBpbXBvcnRlZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS91bnNoaWZ0aW8veWVhc3Rcbid1c2Ugc3RyaWN0Jztcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMueWVhc3QgPSBleHBvcnRzLmRlY29kZSA9IGV4cG9ydHMuZW5jb2RlID0gdm9pZCAwO1xuY29uc3QgYWxwaGFiZXQgPSAnMDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXotXycuc3BsaXQoJycpLCBsZW5ndGggPSA2NCwgbWFwID0ge307XG5sZXQgc2VlZCA9IDAsIGkgPSAwLCBwcmV2O1xuLyoqXG4gKiBSZXR1cm4gYSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBzcGVjaWZpZWQgbnVtYmVyLlxuICpcbiAqIEBwYXJhbSB7TnVtYmVyfSBudW0gVGhlIG51bWJlciB0byBjb252ZXJ0LlxuICogQHJldHVybnMge1N0cmluZ30gVGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbnVtYmVyLlxuICogQGFwaSBwdWJsaWNcbiAqL1xuZnVuY3Rpb24gZW5jb2RlKG51bSkge1xuICAgIGxldCBlbmNvZGVkID0gJyc7XG4gICAgZG8ge1xuICAgICAgICBlbmNvZGVkID0gYWxwaGFiZXRbbnVtICUgbGVuZ3RoXSArIGVuY29kZWQ7XG4gICAgICAgIG51bSA9IE1hdGguZmxvb3IobnVtIC8gbGVuZ3RoKTtcbiAgICB9IHdoaWxlIChudW0gPiAwKTtcbiAgICByZXR1cm4gZW5jb2RlZDtcbn1cbmV4cG9ydHMuZW5jb2RlID0gZW5jb2RlO1xuLyoqXG4gKiBSZXR1cm4gdGhlIGludGVnZXIgdmFsdWUgc3BlY2lmaWVkIGJ5IHRoZSBnaXZlbiBzdHJpbmcuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHN0ciBUaGUgc3RyaW5nIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyB7TnVtYmVyfSBUaGUgaW50ZWdlciB2YWx1ZSByZXByZXNlbnRlZCBieSB0aGUgc3RyaW5nLlxuICogQGFwaSBwdWJsaWNcbiAqL1xuZnVuY3Rpb24gZGVjb2RlKHN0cikge1xuICAgIGxldCBkZWNvZGVkID0gMDtcbiAgICBmb3IgKGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGRlY29kZWQgPSBkZWNvZGVkICogbGVuZ3RoICsgbWFwW3N0ci5jaGFyQXQoaSldO1xuICAgIH1cbiAgICByZXR1cm4gZGVjb2RlZDtcbn1cbmV4cG9ydHMuZGVjb2RlID0gZGVjb2RlO1xuLyoqXG4gKiBZZWFzdDogQSB0aW55IGdyb3dpbmcgaWQgZ2VuZXJhdG9yLlxuICpcbiAqIEByZXR1cm5zIHtTdHJpbmd9IEEgdW5pcXVlIGlkLlxuICogQGFwaSBwdWJsaWNcbiAqL1xuZnVuY3Rpb24geWVhc3QoKSB7XG4gICAgY29uc3Qgbm93ID0gZW5jb2RlKCtuZXcgRGF0ZSgpKTtcbiAgICBpZiAobm93ICE9PSBwcmV2KVxuICAgICAgICByZXR1cm4gc2VlZCA9IDAsIHByZXYgPSBub3c7XG4gICAgcmV0dXJuIG5vdyArICcuJyArIGVuY29kZShzZWVkKyspO1xufVxuZXhwb3J0cy55ZWFzdCA9IHllYXN0O1xuLy9cbi8vIE1hcCBlYWNoIGNoYXJhY3RlciB0byBpdHMgaW5kZXguXG4vL1xuZm9yICg7IGkgPCBsZW5ndGg7IGkrKylcbiAgICBtYXBbYWxwaGFiZXRbaV1dID0gaTtcbiIsIi8qIGVzbGludC1lbnYgYnJvd3NlciAqL1xuXG4vKipcbiAqIFRoaXMgaXMgdGhlIHdlYiBicm93c2VyIGltcGxlbWVudGF0aW9uIG9mIGBkZWJ1ZygpYC5cbiAqL1xuXG5leHBvcnRzLmZvcm1hdEFyZ3MgPSBmb3JtYXRBcmdzO1xuZXhwb3J0cy5zYXZlID0gc2F2ZTtcbmV4cG9ydHMubG9hZCA9IGxvYWQ7XG5leHBvcnRzLnVzZUNvbG9ycyA9IHVzZUNvbG9ycztcbmV4cG9ydHMuc3RvcmFnZSA9IGxvY2Fsc3RvcmFnZSgpO1xuZXhwb3J0cy5kZXN0cm95ID0gKCgpID0+IHtcblx0bGV0IHdhcm5lZCA9IGZhbHNlO1xuXG5cdHJldHVybiAoKSA9PiB7XG5cdFx0aWYgKCF3YXJuZWQpIHtcblx0XHRcdHdhcm5lZCA9IHRydWU7XG5cdFx0XHRjb25zb2xlLndhcm4oJ0luc3RhbmNlIG1ldGhvZCBgZGVidWcuZGVzdHJveSgpYCBpcyBkZXByZWNhdGVkIGFuZCBubyBsb25nZXIgZG9lcyBhbnl0aGluZy4gSXQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gb2YgYGRlYnVnYC4nKTtcblx0XHR9XG5cdH07XG59KSgpO1xuXG4vKipcbiAqIENvbG9ycy5cbiAqL1xuXG5leHBvcnRzLmNvbG9ycyA9IFtcblx0JyMwMDAwQ0MnLFxuXHQnIzAwMDBGRicsXG5cdCcjMDAzM0NDJyxcblx0JyMwMDMzRkYnLFxuXHQnIzAwNjZDQycsXG5cdCcjMDA2NkZGJyxcblx0JyMwMDk5Q0MnLFxuXHQnIzAwOTlGRicsXG5cdCcjMDBDQzAwJyxcblx0JyMwMENDMzMnLFxuXHQnIzAwQ0M2NicsXG5cdCcjMDBDQzk5Jyxcblx0JyMwMENDQ0MnLFxuXHQnIzAwQ0NGRicsXG5cdCcjMzMwMENDJyxcblx0JyMzMzAwRkYnLFxuXHQnIzMzMzNDQycsXG5cdCcjMzMzM0ZGJyxcblx0JyMzMzY2Q0MnLFxuXHQnIzMzNjZGRicsXG5cdCcjMzM5OUNDJyxcblx0JyMzMzk5RkYnLFxuXHQnIzMzQ0MwMCcsXG5cdCcjMzNDQzMzJyxcblx0JyMzM0NDNjYnLFxuXHQnIzMzQ0M5OScsXG5cdCcjMzNDQ0NDJyxcblx0JyMzM0NDRkYnLFxuXHQnIzY2MDBDQycsXG5cdCcjNjYwMEZGJyxcblx0JyM2NjMzQ0MnLFxuXHQnIzY2MzNGRicsXG5cdCcjNjZDQzAwJyxcblx0JyM2NkNDMzMnLFxuXHQnIzk5MDBDQycsXG5cdCcjOTkwMEZGJyxcblx0JyM5OTMzQ0MnLFxuXHQnIzk5MzNGRicsXG5cdCcjOTlDQzAwJyxcblx0JyM5OUNDMzMnLFxuXHQnI0NDMDAwMCcsXG5cdCcjQ0MwMDMzJyxcblx0JyNDQzAwNjYnLFxuXHQnI0NDMDA5OScsXG5cdCcjQ0MwMENDJyxcblx0JyNDQzAwRkYnLFxuXHQnI0NDMzMwMCcsXG5cdCcjQ0MzMzMzJyxcblx0JyNDQzMzNjYnLFxuXHQnI0NDMzM5OScsXG5cdCcjQ0MzM0NDJyxcblx0JyNDQzMzRkYnLFxuXHQnI0NDNjYwMCcsXG5cdCcjQ0M2NjMzJyxcblx0JyNDQzk5MDAnLFxuXHQnI0NDOTkzMycsXG5cdCcjQ0NDQzAwJyxcblx0JyNDQ0NDMzMnLFxuXHQnI0ZGMDAwMCcsXG5cdCcjRkYwMDMzJyxcblx0JyNGRjAwNjYnLFxuXHQnI0ZGMDA5OScsXG5cdCcjRkYwMENDJyxcblx0JyNGRjAwRkYnLFxuXHQnI0ZGMzMwMCcsXG5cdCcjRkYzMzMzJyxcblx0JyNGRjMzNjYnLFxuXHQnI0ZGMzM5OScsXG5cdCcjRkYzM0NDJyxcblx0JyNGRjMzRkYnLFxuXHQnI0ZGNjYwMCcsXG5cdCcjRkY2NjMzJyxcblx0JyNGRjk5MDAnLFxuXHQnI0ZGOTkzMycsXG5cdCcjRkZDQzAwJyxcblx0JyNGRkNDMzMnXG5dO1xuXG4vKipcbiAqIEN1cnJlbnRseSBvbmx5IFdlYktpdC1iYXNlZCBXZWIgSW5zcGVjdG9ycywgRmlyZWZveCA+PSB2MzEsXG4gKiBhbmQgdGhlIEZpcmVidWcgZXh0ZW5zaW9uIChhbnkgRmlyZWZveCB2ZXJzaW9uKSBhcmUga25vd25cbiAqIHRvIHN1cHBvcnQgXCIlY1wiIENTUyBjdXN0b21pemF0aW9ucy5cbiAqXG4gKiBUT0RPOiBhZGQgYSBgbG9jYWxTdG9yYWdlYCB2YXJpYWJsZSB0byBleHBsaWNpdGx5IGVuYWJsZS9kaXNhYmxlIGNvbG9yc1xuICovXG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb21wbGV4aXR5XG5mdW5jdGlvbiB1c2VDb2xvcnMoKSB7XG5cdC8vIE5COiBJbiBhbiBFbGVjdHJvbiBwcmVsb2FkIHNjcmlwdCwgZG9jdW1lbnQgd2lsbCBiZSBkZWZpbmVkIGJ1dCBub3QgZnVsbHlcblx0Ly8gaW5pdGlhbGl6ZWQuIFNpbmNlIHdlIGtub3cgd2UncmUgaW4gQ2hyb21lLCB3ZSdsbCBqdXN0IGRldGVjdCB0aGlzIGNhc2Vcblx0Ly8gZXhwbGljaXRseVxuXHRpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LnByb2Nlc3MgJiYgKHdpbmRvdy5wcm9jZXNzLnR5cGUgPT09ICdyZW5kZXJlcicgfHwgd2luZG93LnByb2Nlc3MuX19ud2pzKSkge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG5cblx0Ly8gSW50ZXJuZXQgRXhwbG9yZXIgYW5kIEVkZ2UgZG8gbm90IHN1cHBvcnQgY29sb3JzLlxuXHRpZiAodHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudCAmJiBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goLyhlZGdlfHRyaWRlbnQpXFwvKFxcZCspLykpIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHRsZXQgbTtcblxuXHQvLyBJcyB3ZWJraXQ/IGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9hLzE2NDU5NjA2LzM3Njc3M1xuXHQvLyBkb2N1bWVudCBpcyB1bmRlZmluZWQgaW4gcmVhY3QtbmF0aXZlOiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QtbmF0aXZlL3B1bGwvMTYzMlxuXHRyZXR1cm4gKHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcgJiYgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ICYmIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZSAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuV2Via2l0QXBwZWFyYW5jZSkgfHxcblx0XHQvLyBJcyBmaXJlYnVnPyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8zOTgxMjAvMzc2NzczXG5cdFx0KHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5jb25zb2xlICYmICh3aW5kb3cuY29uc29sZS5maXJlYnVnIHx8ICh3aW5kb3cuY29uc29sZS5leGNlcHRpb24gJiYgd2luZG93LmNvbnNvbGUudGFibGUpKSkgfHxcblx0XHQvLyBJcyBmaXJlZm94ID49IHYzMT9cblx0XHQvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1Rvb2xzL1dlYl9Db25zb2xlI1N0eWxpbmdfbWVzc2FnZXNcblx0XHQodHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudCAmJiAobSA9IG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5tYXRjaCgvZmlyZWZveFxcLyhcXGQrKS8pKSAmJiBwYXJzZUludChtWzFdLCAxMCkgPj0gMzEpIHx8XG5cdFx0Ly8gRG91YmxlIGNoZWNrIHdlYmtpdCBpbiB1c2VyQWdlbnQganVzdCBpbiBjYXNlIHdlIGFyZSBpbiBhIHdvcmtlclxuXHRcdCh0eXBlb2YgbmF2aWdhdG9yICE9PSAndW5kZWZpbmVkJyAmJiBuYXZpZ2F0b3IudXNlckFnZW50ICYmIG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5tYXRjaCgvYXBwbGV3ZWJraXRcXC8oXFxkKykvKSk7XG59XG5cbi8qKlxuICogQ29sb3JpemUgbG9nIGFyZ3VtZW50cyBpZiBlbmFibGVkLlxuICpcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZnVuY3Rpb24gZm9ybWF0QXJncyhhcmdzKSB7XG5cdGFyZ3NbMF0gPSAodGhpcy51c2VDb2xvcnMgPyAnJWMnIDogJycpICtcblx0XHR0aGlzLm5hbWVzcGFjZSArXG5cdFx0KHRoaXMudXNlQ29sb3JzID8gJyAlYycgOiAnICcpICtcblx0XHRhcmdzWzBdICtcblx0XHQodGhpcy51c2VDb2xvcnMgPyAnJWMgJyA6ICcgJykgK1xuXHRcdCcrJyArIG1vZHVsZS5leHBvcnRzLmh1bWFuaXplKHRoaXMuZGlmZik7XG5cblx0aWYgKCF0aGlzLnVzZUNvbG9ycykge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IGMgPSAnY29sb3I6ICcgKyB0aGlzLmNvbG9yO1xuXHRhcmdzLnNwbGljZSgxLCAwLCBjLCAnY29sb3I6IGluaGVyaXQnKTtcblxuXHQvLyBUaGUgZmluYWwgXCIlY1wiIGlzIHNvbWV3aGF0IHRyaWNreSwgYmVjYXVzZSB0aGVyZSBjb3VsZCBiZSBvdGhlclxuXHQvLyBhcmd1bWVudHMgcGFzc2VkIGVpdGhlciBiZWZvcmUgb3IgYWZ0ZXIgdGhlICVjLCBzbyB3ZSBuZWVkIHRvXG5cdC8vIGZpZ3VyZSBvdXQgdGhlIGNvcnJlY3QgaW5kZXggdG8gaW5zZXJ0IHRoZSBDU1MgaW50b1xuXHRsZXQgaW5kZXggPSAwO1xuXHRsZXQgbGFzdEMgPSAwO1xuXHRhcmdzWzBdLnJlcGxhY2UoLyVbYS16QS1aJV0vZywgbWF0Y2ggPT4ge1xuXHRcdGlmIChtYXRjaCA9PT0gJyUlJykge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRpbmRleCsrO1xuXHRcdGlmIChtYXRjaCA9PT0gJyVjJykge1xuXHRcdFx0Ly8gV2Ugb25seSBhcmUgaW50ZXJlc3RlZCBpbiB0aGUgKmxhc3QqICVjXG5cdFx0XHQvLyAodGhlIHVzZXIgbWF5IGhhdmUgcHJvdmlkZWQgdGhlaXIgb3duKVxuXHRcdFx0bGFzdEMgPSBpbmRleDtcblx0XHR9XG5cdH0pO1xuXG5cdGFyZ3Muc3BsaWNlKGxhc3RDLCAwLCBjKTtcbn1cblxuLyoqXG4gKiBJbnZva2VzIGBjb25zb2xlLmRlYnVnKClgIHdoZW4gYXZhaWxhYmxlLlxuICogTm8tb3Agd2hlbiBgY29uc29sZS5kZWJ1Z2AgaXMgbm90IGEgXCJmdW5jdGlvblwiLlxuICogSWYgYGNvbnNvbGUuZGVidWdgIGlzIG5vdCBhdmFpbGFibGUsIGZhbGxzIGJhY2tcbiAqIHRvIGBjb25zb2xlLmxvZ2AuXG4gKlxuICogQGFwaSBwdWJsaWNcbiAqL1xuZXhwb3J0cy5sb2cgPSBjb25zb2xlLmRlYnVnIHx8IGNvbnNvbGUubG9nIHx8ICgoKSA9PiB7fSk7XG5cbi8qKlxuICogU2F2ZSBgbmFtZXNwYWNlc2AuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IG5hbWVzcGFjZXNcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5mdW5jdGlvbiBzYXZlKG5hbWVzcGFjZXMpIHtcblx0dHJ5IHtcblx0XHRpZiAobmFtZXNwYWNlcykge1xuXHRcdFx0ZXhwb3J0cy5zdG9yYWdlLnNldEl0ZW0oJ2RlYnVnJywgbmFtZXNwYWNlcyk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGV4cG9ydHMuc3RvcmFnZS5yZW1vdmVJdGVtKCdkZWJ1ZycpO1xuXHRcdH1cblx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHQvLyBTd2FsbG93XG5cdFx0Ly8gWFhYIChAUWl4LSkgc2hvdWxkIHdlIGJlIGxvZ2dpbmcgdGhlc2U/XG5cdH1cbn1cblxuLyoqXG4gKiBMb2FkIGBuYW1lc3BhY2VzYC5cbiAqXG4gKiBAcmV0dXJuIHtTdHJpbmd9IHJldHVybnMgdGhlIHByZXZpb3VzbHkgcGVyc2lzdGVkIGRlYnVnIG1vZGVzXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gbG9hZCgpIHtcblx0bGV0IHI7XG5cdHRyeSB7XG5cdFx0ciA9IGV4cG9ydHMuc3RvcmFnZS5nZXRJdGVtKCdkZWJ1ZycpO1xuXHR9IGNhdGNoIChlcnJvcikge1xuXHRcdC8vIFN3YWxsb3dcblx0XHQvLyBYWFggKEBRaXgtKSBzaG91bGQgd2UgYmUgbG9nZ2luZyB0aGVzZT9cblx0fVxuXG5cdC8vIElmIGRlYnVnIGlzbid0IHNldCBpbiBMUywgYW5kIHdlJ3JlIGluIEVsZWN0cm9uLCB0cnkgdG8gbG9hZCAkREVCVUdcblx0aWYgKCFyICYmIHR5cGVvZiBwcm9jZXNzICE9PSAndW5kZWZpbmVkJyAmJiAnZW52JyBpbiBwcm9jZXNzKSB7XG5cdFx0ciA9IHByb2Nlc3MuZW52LkRFQlVHO1xuXHR9XG5cblx0cmV0dXJuIHI7XG59XG5cbi8qKlxuICogTG9jYWxzdG9yYWdlIGF0dGVtcHRzIHRvIHJldHVybiB0aGUgbG9jYWxzdG9yYWdlLlxuICpcbiAqIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2Ugc2FmYXJpIHRocm93c1xuICogd2hlbiBhIHVzZXIgZGlzYWJsZXMgY29va2llcy9sb2NhbHN0b3JhZ2VcbiAqIGFuZCB5b3UgYXR0ZW1wdCB0byBhY2Nlc3MgaXQuXG4gKlxuICogQHJldHVybiB7TG9jYWxTdG9yYWdlfVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gbG9jYWxzdG9yYWdlKCkge1xuXHR0cnkge1xuXHRcdC8vIFRWTUxLaXQgKEFwcGxlIFRWIEpTIFJ1bnRpbWUpIGRvZXMgbm90IGhhdmUgYSB3aW5kb3cgb2JqZWN0LCBqdXN0IGxvY2FsU3RvcmFnZSBpbiB0aGUgZ2xvYmFsIGNvbnRleHRcblx0XHQvLyBUaGUgQnJvd3NlciBhbHNvIGhhcyBsb2NhbFN0b3JhZ2UgaW4gdGhlIGdsb2JhbCBjb250ZXh0LlxuXHRcdHJldHVybiBsb2NhbFN0b3JhZ2U7XG5cdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0Ly8gU3dhbGxvd1xuXHRcdC8vIFhYWCAoQFFpeC0pIHNob3VsZCB3ZSBiZSBsb2dnaW5nIHRoZXNlP1xuXHR9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9jb21tb24nKShleHBvcnRzKTtcblxuY29uc3Qge2Zvcm1hdHRlcnN9ID0gbW9kdWxlLmV4cG9ydHM7XG5cbi8qKlxuICogTWFwICVqIHRvIGBKU09OLnN0cmluZ2lmeSgpYCwgc2luY2Ugbm8gV2ViIEluc3BlY3RvcnMgZG8gdGhhdCBieSBkZWZhdWx0LlxuICovXG5cbmZvcm1hdHRlcnMuaiA9IGZ1bmN0aW9uICh2KSB7XG5cdHRyeSB7XG5cdFx0cmV0dXJuIEpTT04uc3RyaW5naWZ5KHYpO1xuXHR9IGNhdGNoIChlcnJvcikge1xuXHRcdHJldHVybiAnW1VuZXhwZWN0ZWRKU09OUGFyc2VFcnJvcl06ICcgKyBlcnJvci5tZXNzYWdlO1xuXHR9XG59O1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmluaXQgPSBleHBvcnRzLnR5cGVUaW1lbGluZVN0b2NrID0gZXhwb3J0cy50eXBlVGltZWxpbmUgPSBleHBvcnRzLnR5cGVDaGlsZCA9IGV4cG9ydHMudHlwZU11bHRpID0gZXhwb3J0cy50eXBlU2luZ2xlID0gdm9pZCAwO1xuZXhwb3J0cy50eXBlU2luZ2xlID0gXCJTaW5nbGVcIjtcbmV4cG9ydHMudHlwZU11bHRpID0gXCJNdWx0aVwiO1xuZXhwb3J0cy50eXBlQ2hpbGQgPSBcIkNoaWxkXCI7XG5leHBvcnRzLnR5cGVUaW1lbGluZSA9IFwiVGltZWxpbmVcIjtcbmV4cG9ydHMudHlwZVRpbWVsaW5lU3RvY2sgPSBcIlRpbWVsaW5lU3RvY2tcIjtcbmNsYXNzIFBvc3RNb2RlbCB7XG4gICAgY29uc3RydWN0b3IocGFyYW1zID0ge30pIHtcbiAgICAgICAgdGhpcy51aWQgPSBcIlwiO1xuICAgICAgICB0aGlzLmNvbm5lY3Rpb24gPSBcIlwiO1xuICAgICAgICB0aGlzLmNvbnRlbnQgPSBcIlwiO1xuICAgICAgICB0aGlzLnN0YW1wSWQgPSAwO1xuICAgICAgICAvLyAgdGl0bGUgPSBcIlwiO1xuICAgICAgICB0aGlzLmZhdmljb24gPSBcIlwiOyAvLyBUT0RPIHVybFxuICAgICAgICB0aGlzLnR5cGUgPSBleHBvcnRzLnR5cGVTaW5nbGU7XG4gICAgICAgIHRoaXMuY3JlYXRlVGltZSA9IFN0cmluZyhuZXcgRGF0ZSgpKTtcbiAgICAgICAgdGhpcy51cGRhdGVUaW1lID0gU3RyaW5nKG5ldyBEYXRlKCkpO1xuICAgICAgICB0aGlzLmN1cnJlbnRUaW1lID0gXCJcIjtcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCB7IC4uLmV4cG9ydHMuaW5pdCwgLi4ucGFyYW1zIH0pO1xuICAgIH1cbn1cbmV4cG9ydHMuZGVmYXVsdCA9IFBvc3RNb2RlbDtcbmV4cG9ydHMuaW5pdCA9IG5ldyBQb3N0TW9kZWwoKTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5wYXJzZSA9IHZvaWQgMDtcbi8vIGltcG9ydGVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2dhbGtuL3BhcnNldXJpXG4vKipcbiAqIFBhcnNlcyBhIFVSSVxuICpcbiAqIE5vdGU6IHdlIGNvdWxkIGFsc28gaGF2ZSB1c2VkIHRoZSBidWlsdC1pbiBVUkwgb2JqZWN0LCBidXQgaXQgaXNuJ3Qgc3VwcG9ydGVkIG9uIGFsbCBwbGF0Zm9ybXMuXG4gKlxuICogU2VlOlxuICogLSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvVVJMXG4gKiAtIGh0dHBzOi8vY2FuaXVzZS5jb20vdXJsXG4gKiAtIGh0dHBzOi8vd3d3LnJmYy1lZGl0b3Iub3JnL3JmYy9yZmMzOTg2I2FwcGVuZGl4LUJcbiAqXG4gKiBIaXN0b3J5IG9mIHRoZSBwYXJzZSgpIG1ldGhvZDpcbiAqIC0gZmlyc3QgY29tbWl0OiBodHRwczovL2dpdGh1Yi5jb20vc29ja2V0aW8vc29ja2V0LmlvLWNsaWVudC9jb21taXQvNGVlMWQ1ZDk0YjM5MDZhOWMwNTJiNDU5ZjFhODE4YjE1ZjM4ZjkxY1xuICogLSBleHBvcnQgaW50byBpdHMgb3duIG1vZHVsZTogaHR0cHM6Ly9naXRodWIuY29tL3NvY2tldGlvL2VuZ2luZS5pby1jbGllbnQvY29tbWl0L2RlMmM1NjFlNDU2NGVmZWI3OGYxYmRiMWJhMzllZjgxYjI4MjJjYjNcbiAqIC0gcmVpbXBvcnQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9zb2NrZXRpby9lbmdpbmUuaW8tY2xpZW50L2NvbW1pdC9kZjMyMjc3YzNmNmQ2MjJlZWM1ZWQwOWY0OTNjYWUzZjMzOTFkMjQyXG4gKlxuICogQGF1dGhvciBTdGV2ZW4gTGV2aXRoYW4gPHN0ZXZlbmxldml0aGFuLmNvbT4gKE1JVCBsaWNlbnNlKVxuICogQGFwaSBwcml2YXRlXG4gKi9cbmNvbnN0IHJlID0gL14oPzooPyFbXjpAXFwvPyNdKzpbXjpAXFwvXSpAKShodHRwfGh0dHBzfHdzfHdzcyk6XFwvXFwvKT8oKD86KChbXjpAXFwvPyNdKikoPzo6KFteOkBcXC8/I10qKSk/KT9AKT8oKD86W2EtZjAtOV17MCw0fTopezIsN31bYS1mMC05XXswLDR9fFteOlxcLz8jXSopKD86OihcXGQqKSk/KSgoKFxcLyg/OltePyNdKD8hW14/I1xcL10qXFwuW14/I1xcLy5dKyg/Ols/I118JCkpKSpcXC8/KT8oW14/I1xcL10qKSkoPzpcXD8oW14jXSopKT8oPzojKC4qKSk/KS87XG5jb25zdCBwYXJ0cyA9IFtcbiAgICAnc291cmNlJywgJ3Byb3RvY29sJywgJ2F1dGhvcml0eScsICd1c2VySW5mbycsICd1c2VyJywgJ3Bhc3N3b3JkJywgJ2hvc3QnLCAncG9ydCcsICdyZWxhdGl2ZScsICdwYXRoJywgJ2RpcmVjdG9yeScsICdmaWxlJywgJ3F1ZXJ5JywgJ2FuY2hvcidcbl07XG5mdW5jdGlvbiBwYXJzZShzdHIpIHtcbiAgICBpZiAoc3RyLmxlbmd0aCA+IDIwMDApIHtcbiAgICAgICAgdGhyb3cgXCJVUkkgdG9vIGxvbmdcIjtcbiAgICB9XG4gICAgY29uc3Qgc3JjID0gc3RyLCBiID0gc3RyLmluZGV4T2YoJ1snKSwgZSA9IHN0ci5pbmRleE9mKCddJyk7XG4gICAgaWYgKGIgIT0gLTEgJiYgZSAhPSAtMSkge1xuICAgICAgICBzdHIgPSBzdHIuc3Vic3RyaW5nKDAsIGIpICsgc3RyLnN1YnN0cmluZyhiLCBlKS5yZXBsYWNlKC86L2csICc7JykgKyBzdHIuc3Vic3RyaW5nKGUsIHN0ci5sZW5ndGgpO1xuICAgIH1cbiAgICBsZXQgbSA9IHJlLmV4ZWMoc3RyIHx8ICcnKSwgdXJpID0ge30sIGkgPSAxNDtcbiAgICB3aGlsZSAoaS0tKSB7XG4gICAgICAgIHVyaVtwYXJ0c1tpXV0gPSBtW2ldIHx8ICcnO1xuICAgIH1cbiAgICBpZiAoYiAhPSAtMSAmJiBlICE9IC0xKSB7XG4gICAgICAgIHVyaS5zb3VyY2UgPSBzcmM7XG4gICAgICAgIHVyaS5ob3N0ID0gdXJpLmhvc3Quc3Vic3RyaW5nKDEsIHVyaS5ob3N0Lmxlbmd0aCAtIDEpLnJlcGxhY2UoLzsvZywgJzonKTtcbiAgICAgICAgdXJpLmF1dGhvcml0eSA9IHVyaS5hdXRob3JpdHkucmVwbGFjZSgnWycsICcnKS5yZXBsYWNlKCddJywgJycpLnJlcGxhY2UoLzsvZywgJzonKTtcbiAgICAgICAgdXJpLmlwdjZ1cmkgPSB0cnVlO1xuICAgIH1cbiAgICB1cmkucGF0aE5hbWVzID0gcGF0aE5hbWVzKHVyaSwgdXJpWydwYXRoJ10pO1xuICAgIHVyaS5xdWVyeUtleSA9IHF1ZXJ5S2V5KHVyaSwgdXJpWydxdWVyeSddKTtcbiAgICByZXR1cm4gdXJpO1xufVxuZXhwb3J0cy5wYXJzZSA9IHBhcnNlO1xuZnVuY3Rpb24gcGF0aE5hbWVzKG9iaiwgcGF0aCkge1xuICAgIGNvbnN0IHJlZ3ggPSAvXFwvezIsOX0vZywgbmFtZXMgPSBwYXRoLnJlcGxhY2UocmVneCwgXCIvXCIpLnNwbGl0KFwiL1wiKTtcbiAgICBpZiAocGF0aC5zbGljZSgwLCAxKSA9PSAnLycgfHwgcGF0aC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgbmFtZXMuc3BsaWNlKDAsIDEpO1xuICAgIH1cbiAgICBpZiAocGF0aC5zbGljZSgtMSkgPT0gJy8nKSB7XG4gICAgICAgIG5hbWVzLnNwbGljZShuYW1lcy5sZW5ndGggLSAxLCAxKTtcbiAgICB9XG4gICAgcmV0dXJuIG5hbWVzO1xufVxuZnVuY3Rpb24gcXVlcnlLZXkodXJpLCBxdWVyeSkge1xuICAgIGNvbnN0IGRhdGEgPSB7fTtcbiAgICBxdWVyeS5yZXBsYWNlKC8oPzpefCYpKFteJj1dKik9PyhbXiZdKikvZywgZnVuY3Rpb24gKCQwLCAkMSwgJDIpIHtcbiAgICAgICAgaWYgKCQxKSB7XG4gICAgICAgICAgICBkYXRhWyQxXSA9ICQyO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGRhdGE7XG59XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuaW5pdCA9IHZvaWQgMDtcbmNvbnN0IENoXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vQ2hcIikpO1xuZXhwb3J0cy5pbml0ID0ge1xuICAgIGdhdGV3YXk6IG51bGwsXG4gICAgaW9TZXJ2ZXI6IHtcbiAgICAgICAgbG9jYXRpb246ICcnLFxuICAgICAgICBob3N0OiAnbG9jYWxob3N0JyxcbiAgICAgICAgcG9ydDogMCxcbiAgICB9LFxuICAgIHJlZGlzOiB7XG4gICAgICAgIGNsdXN0ZXI6IFtdLFxuICAgICAgICBjbGllbnQ6IHtcbiAgICAgICAgICAgIGhvc3Q6ICcxMjcuMC4wLjEnLFxuICAgICAgICAgICAgcG9ydDogNjM3OSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIGFjY2VwdDoge1xuICAgICAgICByYW5rQWxsOiBmYWxzZSxcbiAgICB9LFxuICAgIGNoaWxkcmVuOiBbXSxcbn07XG5jbGFzcyBDaENvbmZpZ01vZGVsIHtcbiAgICBjb25zdHJ1Y3RvcihwYXJhbXMgPSBleHBvcnRzLmluaXQpIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24odGhpcywgcGFyYW1zKTtcbiAgICB9XG4gICAgc3RhdGljIGdldE15Q2hDb25maWcoY2hDb25maWdKc29uLCBteUNvbm5lY3Rpb24pIHtcbiAgICAgICAgY29uc3QgbWF0Y2hpbmcgPSAoY2hDb25maWcsIHBhcmVudExvY2F0aW9uID0gJycpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRMb2NhdGlvbiA9IHBhcmVudExvY2F0aW9uICsgY2hDb25maWcuaW9TZXJ2ZXIubG9jYXRpb247XG4gICAgICAgICAgICBpZiAoY3VycmVudExvY2F0aW9uID09PSBteUNvbm5lY3Rpb24pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAuLi5jaENvbmZpZyxcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFtdLFxuICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uOiBteUNvbm5lY3Rpb24sXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjaENvbmZpZy5jaGlsZHJlbiAmJiBjaENvbmZpZy5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBjaENvbmZpZy5jaGlsZHJlbikge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBtYXRjaGluZyhjaGlsZCwgY3VycmVudExvY2F0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdClcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IG1hdGNoZWQgPSBtYXRjaGluZyhjaENvbmZpZ0pzb24pO1xuICAgICAgICByZXR1cm4gbWF0Y2hlZCAhPT0gbnVsbCA/IG1hdGNoZWQgOiB7IC4uLmNoQ29uZmlnSnNvbiwgY2hpbGRyZW46IFtdLCBjb25uZWN0aW9uOiBteUNvbm5lY3Rpb24gfTtcbiAgICB9XG4gICAgc3RhdGljIGdldENoUm9vdHNDb25maWcocGFyYW1zKSB7XG4gICAgICAgIGNvbnN0IHsgY2hDb25maWdKc29uLCB0dW5lQ29ubmVjdGlvbiB9ID0gcGFyYW1zO1xuICAgICAgICBjb25zdCByZWNjdXJlbnRGaW5kID0gKGNoaWxkcmVuLCB0dW5lQ29ubmVjdGlvbiwgcGFyZW50Q29ubmVjdGlvbiwgcm9vdHMgPSBbXSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmluZGVkID0gY2hpbGRyZW4uZmluZCgoY2hpbGQpID0+IHR1bmVDb25uZWN0aW9uLmluZGV4T2YocGFyZW50Q29ubmVjdGlvbiArIGNoaWxkLmlvU2VydmVyLmxvY2F0aW9uKSA+PSAwKTtcbiAgICAgICAgICAgIGlmIChmaW5kZWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50Q29ubmVjdGlvbiA9IHBhcmVudENvbm5lY3Rpb24gKyBmaW5kZWQuaW9TZXJ2ZXIubG9jYXRpb247XG4gICAgICAgICAgICAgICAgcm9vdHMucHVzaCh7IC4uLmZpbmRlZCwgY2hpbGRyZW46IFtdLCBjb25uZWN0aW9uOiBjdXJyZW50Q29ubmVjdGlvbiB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVjY3VyZW50RmluZChmaW5kZWQuY2hpbGRyZW4sIHR1bmVDb25uZWN0aW9uLCBjdXJyZW50Q29ubmVjdGlvbiwgcm9vdHMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJvb3RzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBjb25maWdzID0gcmVjY3VyZW50RmluZChjaENvbmZpZ0pzb24uY2hpbGRyZW4sIHR1bmVDb25uZWN0aW9uLCBDaF8xLmRlZmF1bHQucm9vdENvbm5lY3Rpb24sIFtcbiAgICAgICAgICAgIHsgLi4uY2hDb25maWdKc29uLCBjaGlsZHJlbjogW10sIGNvbm5lY3Rpb246IENoXzEuZGVmYXVsdC5yb290Q29ubmVjdGlvbiB9LFxuICAgICAgICBdKTtcbiAgICAgICAgcmV0dXJuIGNvbmZpZ3M7XG4gICAgfVxuICAgIHN0YXRpYyBnZXRHYXRld2F5KHBhcmFtcykge1xuICAgICAgICBjb25zdCBjaFJvb3RzQ29uZmlnID0gQ2hDb25maWdNb2RlbC5nZXRDaFJvb3RzQ29uZmlnKHBhcmFtcyk7XG4gICAgICAgIGNvbnN0IGdhdGV3YXkgPSBjaFJvb3RzQ29uZmlnWzFdID8gY2hSb290c0NvbmZpZ1sxXS5nYXRld2F5IDogY2hSb290c0NvbmZpZ1swXS5nYXRld2F5O1xuICAgICAgICByZXR1cm4gZ2F0ZXdheTtcbiAgICB9XG4gICAgc3RhdGljIGdldFJvb3RzQ29ubmVjdGlvbnMocGFyYW1zLCBpc0V4Y2x1ZGVUdW5lQ29ubmVjdGlvbiA9IGZhbHNlKSB7XG4gICAgICAgIGNvbnN0IG15Um9vdHNDb25maWcgPSBDaENvbmZpZ01vZGVsLmdldENoUm9vdHNDb25maWcocGFyYW1zKTtcbiAgICAgICAgY29uc3QgbXlSb290c0Nvbm5lY3Rpb25zID0gbXlSb290c0NvbmZpZy5tYXAoKGNvbmZpZykgPT4gY29uZmlnLmNvbm5lY3Rpb24pO1xuICAgICAgICByZXR1cm4gaXNFeGNsdWRlVHVuZUNvbm5lY3Rpb24gPyBteVJvb3RzQ29ubmVjdGlvbnMuZmlsdGVyKChjKSA9PiBjICE9PSBwYXJhbXMudHVuZUNvbm5lY3Rpb24pIDogbXlSb290c0Nvbm5lY3Rpb25zO1xuICAgIH1cbn1cbmV4cG9ydHMuZGVmYXVsdCA9IENoQ29uZmlnTW9kZWw7XG4iLCJcbi8qKlxuICogVGhpcyBpcyB0aGUgY29tbW9uIGxvZ2ljIGZvciBib3RoIHRoZSBOb2RlLmpzIGFuZCB3ZWIgYnJvd3NlclxuICogaW1wbGVtZW50YXRpb25zIG9mIGBkZWJ1ZygpYC5cbiAqL1xuXG5mdW5jdGlvbiBzZXR1cChlbnYpIHtcblx0Y3JlYXRlRGVidWcuZGVidWcgPSBjcmVhdGVEZWJ1Zztcblx0Y3JlYXRlRGVidWcuZGVmYXVsdCA9IGNyZWF0ZURlYnVnO1xuXHRjcmVhdGVEZWJ1Zy5jb2VyY2UgPSBjb2VyY2U7XG5cdGNyZWF0ZURlYnVnLmRpc2FibGUgPSBkaXNhYmxlO1xuXHRjcmVhdGVEZWJ1Zy5lbmFibGUgPSBlbmFibGU7XG5cdGNyZWF0ZURlYnVnLmVuYWJsZWQgPSBlbmFibGVkO1xuXHRjcmVhdGVEZWJ1Zy5odW1hbml6ZSA9IHJlcXVpcmUoJ21zJyk7XG5cdGNyZWF0ZURlYnVnLmRlc3Ryb3kgPSBkZXN0cm95O1xuXG5cdE9iamVjdC5rZXlzKGVudikuZm9yRWFjaChrZXkgPT4ge1xuXHRcdGNyZWF0ZURlYnVnW2tleV0gPSBlbnZba2V5XTtcblx0fSk7XG5cblx0LyoqXG5cdCogVGhlIGN1cnJlbnRseSBhY3RpdmUgZGVidWcgbW9kZSBuYW1lcywgYW5kIG5hbWVzIHRvIHNraXAuXG5cdCovXG5cblx0Y3JlYXRlRGVidWcubmFtZXMgPSBbXTtcblx0Y3JlYXRlRGVidWcuc2tpcHMgPSBbXTtcblxuXHQvKipcblx0KiBNYXAgb2Ygc3BlY2lhbCBcIiVuXCIgaGFuZGxpbmcgZnVuY3Rpb25zLCBmb3IgdGhlIGRlYnVnIFwiZm9ybWF0XCIgYXJndW1lbnQuXG5cdCpcblx0KiBWYWxpZCBrZXkgbmFtZXMgYXJlIGEgc2luZ2xlLCBsb3dlciBvciB1cHBlci1jYXNlIGxldHRlciwgaS5lLiBcIm5cIiBhbmQgXCJOXCIuXG5cdCovXG5cdGNyZWF0ZURlYnVnLmZvcm1hdHRlcnMgPSB7fTtcblxuXHQvKipcblx0KiBTZWxlY3RzIGEgY29sb3IgZm9yIGEgZGVidWcgbmFtZXNwYWNlXG5cdCogQHBhcmFtIHtTdHJpbmd9IG5hbWVzcGFjZSBUaGUgbmFtZXNwYWNlIHN0cmluZyBmb3IgdGhlIGRlYnVnIGluc3RhbmNlIHRvIGJlIGNvbG9yZWRcblx0KiBAcmV0dXJuIHtOdW1iZXJ8U3RyaW5nfSBBbiBBTlNJIGNvbG9yIGNvZGUgZm9yIHRoZSBnaXZlbiBuYW1lc3BhY2Vcblx0KiBAYXBpIHByaXZhdGVcblx0Ki9cblx0ZnVuY3Rpb24gc2VsZWN0Q29sb3IobmFtZXNwYWNlKSB7XG5cdFx0bGV0IGhhc2ggPSAwO1xuXG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBuYW1lc3BhY2UubGVuZ3RoOyBpKyspIHtcblx0XHRcdGhhc2ggPSAoKGhhc2ggPDwgNSkgLSBoYXNoKSArIG5hbWVzcGFjZS5jaGFyQ29kZUF0KGkpO1xuXHRcdFx0aGFzaCB8PSAwOyAvLyBDb252ZXJ0IHRvIDMyYml0IGludGVnZXJcblx0XHR9XG5cblx0XHRyZXR1cm4gY3JlYXRlRGVidWcuY29sb3JzW01hdGguYWJzKGhhc2gpICUgY3JlYXRlRGVidWcuY29sb3JzLmxlbmd0aF07XG5cdH1cblx0Y3JlYXRlRGVidWcuc2VsZWN0Q29sb3IgPSBzZWxlY3RDb2xvcjtcblxuXHQvKipcblx0KiBDcmVhdGUgYSBkZWJ1Z2dlciB3aXRoIHRoZSBnaXZlbiBgbmFtZXNwYWNlYC5cblx0KlxuXHQqIEBwYXJhbSB7U3RyaW5nfSBuYW1lc3BhY2Vcblx0KiBAcmV0dXJuIHtGdW5jdGlvbn1cblx0KiBAYXBpIHB1YmxpY1xuXHQqL1xuXHRmdW5jdGlvbiBjcmVhdGVEZWJ1ZyhuYW1lc3BhY2UpIHtcblx0XHRsZXQgcHJldlRpbWU7XG5cdFx0bGV0IGVuYWJsZU92ZXJyaWRlID0gbnVsbDtcblx0XHRsZXQgbmFtZXNwYWNlc0NhY2hlO1xuXHRcdGxldCBlbmFibGVkQ2FjaGU7XG5cblx0XHRmdW5jdGlvbiBkZWJ1ZyguLi5hcmdzKSB7XG5cdFx0XHQvLyBEaXNhYmxlZD9cblx0XHRcdGlmICghZGVidWcuZW5hYmxlZCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdGNvbnN0IHNlbGYgPSBkZWJ1ZztcblxuXHRcdFx0Ly8gU2V0IGBkaWZmYCB0aW1lc3RhbXBcblx0XHRcdGNvbnN0IGN1cnIgPSBOdW1iZXIobmV3IERhdGUoKSk7XG5cdFx0XHRjb25zdCBtcyA9IGN1cnIgLSAocHJldlRpbWUgfHwgY3Vycik7XG5cdFx0XHRzZWxmLmRpZmYgPSBtcztcblx0XHRcdHNlbGYucHJldiA9IHByZXZUaW1lO1xuXHRcdFx0c2VsZi5jdXJyID0gY3Vycjtcblx0XHRcdHByZXZUaW1lID0gY3VycjtcblxuXHRcdFx0YXJnc1swXSA9IGNyZWF0ZURlYnVnLmNvZXJjZShhcmdzWzBdKTtcblxuXHRcdFx0aWYgKHR5cGVvZiBhcmdzWzBdICE9PSAnc3RyaW5nJykge1xuXHRcdFx0XHQvLyBBbnl0aGluZyBlbHNlIGxldCdzIGluc3BlY3Qgd2l0aCAlT1xuXHRcdFx0XHRhcmdzLnVuc2hpZnQoJyVPJyk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIEFwcGx5IGFueSBgZm9ybWF0dGVyc2AgdHJhbnNmb3JtYXRpb25zXG5cdFx0XHRsZXQgaW5kZXggPSAwO1xuXHRcdFx0YXJnc1swXSA9IGFyZ3NbMF0ucmVwbGFjZSgvJShbYS16QS1aJV0pL2csIChtYXRjaCwgZm9ybWF0KSA9PiB7XG5cdFx0XHRcdC8vIElmIHdlIGVuY291bnRlciBhbiBlc2NhcGVkICUgdGhlbiBkb24ndCBpbmNyZWFzZSB0aGUgYXJyYXkgaW5kZXhcblx0XHRcdFx0aWYgKG1hdGNoID09PSAnJSUnKSB7XG5cdFx0XHRcdFx0cmV0dXJuICclJztcblx0XHRcdFx0fVxuXHRcdFx0XHRpbmRleCsrO1xuXHRcdFx0XHRjb25zdCBmb3JtYXR0ZXIgPSBjcmVhdGVEZWJ1Zy5mb3JtYXR0ZXJzW2Zvcm1hdF07XG5cdFx0XHRcdGlmICh0eXBlb2YgZm9ybWF0dGVyID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRcdFx0Y29uc3QgdmFsID0gYXJnc1tpbmRleF07XG5cdFx0XHRcdFx0bWF0Y2ggPSBmb3JtYXR0ZXIuY2FsbChzZWxmLCB2YWwpO1xuXG5cdFx0XHRcdFx0Ly8gTm93IHdlIG5lZWQgdG8gcmVtb3ZlIGBhcmdzW2luZGV4XWAgc2luY2UgaXQncyBpbmxpbmVkIGluIHRoZSBgZm9ybWF0YFxuXHRcdFx0XHRcdGFyZ3Muc3BsaWNlKGluZGV4LCAxKTtcblx0XHRcdFx0XHRpbmRleC0tO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBtYXRjaDtcblx0XHRcdH0pO1xuXG5cdFx0XHQvLyBBcHBseSBlbnYtc3BlY2lmaWMgZm9ybWF0dGluZyAoY29sb3JzLCBldGMuKVxuXHRcdFx0Y3JlYXRlRGVidWcuZm9ybWF0QXJncy5jYWxsKHNlbGYsIGFyZ3MpO1xuXG5cdFx0XHRjb25zdCBsb2dGbiA9IHNlbGYubG9nIHx8IGNyZWF0ZURlYnVnLmxvZztcblx0XHRcdGxvZ0ZuLmFwcGx5KHNlbGYsIGFyZ3MpO1xuXHRcdH1cblxuXHRcdGRlYnVnLm5hbWVzcGFjZSA9IG5hbWVzcGFjZTtcblx0XHRkZWJ1Zy51c2VDb2xvcnMgPSBjcmVhdGVEZWJ1Zy51c2VDb2xvcnMoKTtcblx0XHRkZWJ1Zy5jb2xvciA9IGNyZWF0ZURlYnVnLnNlbGVjdENvbG9yKG5hbWVzcGFjZSk7XG5cdFx0ZGVidWcuZXh0ZW5kID0gZXh0ZW5kO1xuXHRcdGRlYnVnLmRlc3Ryb3kgPSBjcmVhdGVEZWJ1Zy5kZXN0cm95OyAvLyBYWFggVGVtcG9yYXJ5LiBXaWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgcmVsZWFzZS5cblxuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkZWJ1ZywgJ2VuYWJsZWQnLCB7XG5cdFx0XHRlbnVtZXJhYmxlOiB0cnVlLFxuXHRcdFx0Y29uZmlndXJhYmxlOiBmYWxzZSxcblx0XHRcdGdldDogKCkgPT4ge1xuXHRcdFx0XHRpZiAoZW5hYmxlT3ZlcnJpZGUgIT09IG51bGwpIHtcblx0XHRcdFx0XHRyZXR1cm4gZW5hYmxlT3ZlcnJpZGU7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKG5hbWVzcGFjZXNDYWNoZSAhPT0gY3JlYXRlRGVidWcubmFtZXNwYWNlcykge1xuXHRcdFx0XHRcdG5hbWVzcGFjZXNDYWNoZSA9IGNyZWF0ZURlYnVnLm5hbWVzcGFjZXM7XG5cdFx0XHRcdFx0ZW5hYmxlZENhY2hlID0gY3JlYXRlRGVidWcuZW5hYmxlZChuYW1lc3BhY2UpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmV0dXJuIGVuYWJsZWRDYWNoZTtcblx0XHRcdH0sXG5cdFx0XHRzZXQ6IHYgPT4ge1xuXHRcdFx0XHRlbmFibGVPdmVycmlkZSA9IHY7XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHQvLyBFbnYtc3BlY2lmaWMgaW5pdGlhbGl6YXRpb24gbG9naWMgZm9yIGRlYnVnIGluc3RhbmNlc1xuXHRcdGlmICh0eXBlb2YgY3JlYXRlRGVidWcuaW5pdCA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0Y3JlYXRlRGVidWcuaW5pdChkZWJ1Zyk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGRlYnVnO1xuXHR9XG5cblx0ZnVuY3Rpb24gZXh0ZW5kKG5hbWVzcGFjZSwgZGVsaW1pdGVyKSB7XG5cdFx0Y29uc3QgbmV3RGVidWcgPSBjcmVhdGVEZWJ1Zyh0aGlzLm5hbWVzcGFjZSArICh0eXBlb2YgZGVsaW1pdGVyID09PSAndW5kZWZpbmVkJyA/ICc6JyA6IGRlbGltaXRlcikgKyBuYW1lc3BhY2UpO1xuXHRcdG5ld0RlYnVnLmxvZyA9IHRoaXMubG9nO1xuXHRcdHJldHVybiBuZXdEZWJ1Zztcblx0fVxuXG5cdC8qKlxuXHQqIEVuYWJsZXMgYSBkZWJ1ZyBtb2RlIGJ5IG5hbWVzcGFjZXMuIFRoaXMgY2FuIGluY2x1ZGUgbW9kZXNcblx0KiBzZXBhcmF0ZWQgYnkgYSBjb2xvbiBhbmQgd2lsZGNhcmRzLlxuXHQqXG5cdCogQHBhcmFtIHtTdHJpbmd9IG5hbWVzcGFjZXNcblx0KiBAYXBpIHB1YmxpY1xuXHQqL1xuXHRmdW5jdGlvbiBlbmFibGUobmFtZXNwYWNlcykge1xuXHRcdGNyZWF0ZURlYnVnLnNhdmUobmFtZXNwYWNlcyk7XG5cdFx0Y3JlYXRlRGVidWcubmFtZXNwYWNlcyA9IG5hbWVzcGFjZXM7XG5cblx0XHRjcmVhdGVEZWJ1Zy5uYW1lcyA9IFtdO1xuXHRcdGNyZWF0ZURlYnVnLnNraXBzID0gW107XG5cblx0XHRsZXQgaTtcblx0XHRjb25zdCBzcGxpdCA9ICh0eXBlb2YgbmFtZXNwYWNlcyA9PT0gJ3N0cmluZycgPyBuYW1lc3BhY2VzIDogJycpLnNwbGl0KC9bXFxzLF0rLyk7XG5cdFx0Y29uc3QgbGVuID0gc3BsaXQubGVuZ3RoO1xuXG5cdFx0Zm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG5cdFx0XHRpZiAoIXNwbGl0W2ldKSB7XG5cdFx0XHRcdC8vIGlnbm9yZSBlbXB0eSBzdHJpbmdzXG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXG5cdFx0XHRuYW1lc3BhY2VzID0gc3BsaXRbaV0ucmVwbGFjZSgvXFwqL2csICcuKj8nKTtcblxuXHRcdFx0aWYgKG5hbWVzcGFjZXNbMF0gPT09ICctJykge1xuXHRcdFx0XHRjcmVhdGVEZWJ1Zy5za2lwcy5wdXNoKG5ldyBSZWdFeHAoJ14nICsgbmFtZXNwYWNlcy5zbGljZSgxKSArICckJykpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y3JlYXRlRGVidWcubmFtZXMucHVzaChuZXcgUmVnRXhwKCdeJyArIG5hbWVzcGFjZXMgKyAnJCcpKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvKipcblx0KiBEaXNhYmxlIGRlYnVnIG91dHB1dC5cblx0KlxuXHQqIEByZXR1cm4ge1N0cmluZ30gbmFtZXNwYWNlc1xuXHQqIEBhcGkgcHVibGljXG5cdCovXG5cdGZ1bmN0aW9uIGRpc2FibGUoKSB7XG5cdFx0Y29uc3QgbmFtZXNwYWNlcyA9IFtcblx0XHRcdC4uLmNyZWF0ZURlYnVnLm5hbWVzLm1hcCh0b05hbWVzcGFjZSksXG5cdFx0XHQuLi5jcmVhdGVEZWJ1Zy5za2lwcy5tYXAodG9OYW1lc3BhY2UpLm1hcChuYW1lc3BhY2UgPT4gJy0nICsgbmFtZXNwYWNlKVxuXHRcdF0uam9pbignLCcpO1xuXHRcdGNyZWF0ZURlYnVnLmVuYWJsZSgnJyk7XG5cdFx0cmV0dXJuIG5hbWVzcGFjZXM7XG5cdH1cblxuXHQvKipcblx0KiBSZXR1cm5zIHRydWUgaWYgdGhlIGdpdmVuIG1vZGUgbmFtZSBpcyBlbmFibGVkLCBmYWxzZSBvdGhlcndpc2UuXG5cdCpcblx0KiBAcGFyYW0ge1N0cmluZ30gbmFtZVxuXHQqIEByZXR1cm4ge0Jvb2xlYW59XG5cdCogQGFwaSBwdWJsaWNcblx0Ki9cblx0ZnVuY3Rpb24gZW5hYmxlZChuYW1lKSB7XG5cdFx0aWYgKG5hbWVbbmFtZS5sZW5ndGggLSAxXSA9PT0gJyonKSB7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cblx0XHRsZXQgaTtcblx0XHRsZXQgbGVuO1xuXG5cdFx0Zm9yIChpID0gMCwgbGVuID0gY3JlYXRlRGVidWcuc2tpcHMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcblx0XHRcdGlmIChjcmVhdGVEZWJ1Zy5za2lwc1tpXS50ZXN0KG5hbWUpKSB7XG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRmb3IgKGkgPSAwLCBsZW4gPSBjcmVhdGVEZWJ1Zy5uYW1lcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuXHRcdFx0aWYgKGNyZWF0ZURlYnVnLm5hbWVzW2ldLnRlc3QobmFtZSkpIHtcblx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0LyoqXG5cdCogQ29udmVydCByZWdleHAgdG8gbmFtZXNwYWNlXG5cdCpcblx0KiBAcGFyYW0ge1JlZ0V4cH0gcmVneGVwXG5cdCogQHJldHVybiB7U3RyaW5nfSBuYW1lc3BhY2Vcblx0KiBAYXBpIHByaXZhdGVcblx0Ki9cblx0ZnVuY3Rpb24gdG9OYW1lc3BhY2UocmVnZXhwKSB7XG5cdFx0cmV0dXJuIHJlZ2V4cC50b1N0cmluZygpXG5cdFx0XHQuc3Vic3RyaW5nKDIsIHJlZ2V4cC50b1N0cmluZygpLmxlbmd0aCAtIDIpXG5cdFx0XHQucmVwbGFjZSgvXFwuXFwqXFw/JC8sICcqJyk7XG5cdH1cblxuXHQvKipcblx0KiBDb2VyY2UgYHZhbGAuXG5cdCpcblx0KiBAcGFyYW0ge01peGVkfSB2YWxcblx0KiBAcmV0dXJuIHtNaXhlZH1cblx0KiBAYXBpIHByaXZhdGVcblx0Ki9cblx0ZnVuY3Rpb24gY29lcmNlKHZhbCkge1xuXHRcdGlmICh2YWwgaW5zdGFuY2VvZiBFcnJvcikge1xuXHRcdFx0cmV0dXJuIHZhbC5zdGFjayB8fCB2YWwubWVzc2FnZTtcblx0XHR9XG5cdFx0cmV0dXJuIHZhbDtcblx0fVxuXG5cdC8qKlxuXHQqIFhYWCBETyBOT1QgVVNFLiBUaGlzIGlzIGEgdGVtcG9yYXJ5IHN0dWIgZnVuY3Rpb24uXG5cdCogWFhYIEl0IFdJTEwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciByZWxlYXNlLlxuXHQqL1xuXHRmdW5jdGlvbiBkZXN0cm95KCkge1xuXHRcdGNvbnNvbGUud2FybignSW5zdGFuY2UgbWV0aG9kIGBkZWJ1Zy5kZXN0cm95KClgIGlzIGRlcHJlY2F0ZWQgYW5kIG5vIGxvbmdlciBkb2VzIGFueXRoaW5nLiBJdCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiBvZiBgZGVidWdgLicpO1xuXHR9XG5cblx0Y3JlYXRlRGVidWcuZW5hYmxlKGNyZWF0ZURlYnVnLmxvYWQoKSk7XG5cblx0cmV0dXJuIGNyZWF0ZURlYnVnO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHNldHVwO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnJlZHVjZXJzID0gdm9pZCAwO1xuY29uc3QgcmVkdXhfMSA9IHJlcXVpcmUoXCJyZWR1eFwiKTtcbmNvbnN0IGxvZ3NfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi9sb2dzXCIpKTtcbmNvbnN0IGJvb3RPcHRpb25fMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi9ib290T3B0aW9uXCIpKTtcbmNvbnN0IHBvc3RzXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vcG9zdHNcIikpO1xuY29uc3QgcG9zdHNUaW1lbGluZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL3Bvc3RzVGltZWxpbmVcIikpO1xuY29uc3QgcG9zdHNUaW1lbGluZVN0b2NrXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vcG9zdHNUaW1lbGluZVN0b2NrXCIpKTtcbmNvbnN0IHJhbmtfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi9yYW5rXCIpKTtcbmNvbnN0IHJhbmtBbGxfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi9yYW5rQWxsXCIpKTtcbmNvbnN0IGNoRGV0YWlsXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vY2hEZXRhaWxcIikpO1xuY29uc3QgdHVuZUNoXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vdHVuZUNoXCIpKTtcbmV4cG9ydHMucmVkdWNlcnMgPSB7XG4gICAgYm9vdE9wdGlvbjogYm9vdE9wdGlvbl8xLmRlZmF1bHQsXG4gICAgcmFuazogcmFua18xLmRlZmF1bHQsXG4gICAgcmFua0FsbDogcmFua0FsbF8xLmRlZmF1bHQsXG4gICAgdHVuZUNoOiB0dW5lQ2hfMS5kZWZhdWx0LFxuICAgIHBvc3RzOiBwb3N0c18xLmRlZmF1bHQsXG4gICAgcG9zdHNUaW1lbGluZTogcG9zdHNUaW1lbGluZV8xLmRlZmF1bHQsXG4gICAgcG9zdHNUaW1lbGluZVN0b2NrOiBwb3N0c1RpbWVsaW5lU3RvY2tfMS5kZWZhdWx0LFxuICAgIGNoRGV0YWlsOiBjaERldGFpbF8xLmRlZmF1bHQsXG4gICAgbG9nczogbG9nc18xLmRlZmF1bHQsXG59O1xuZXhwb3J0cy5kZWZhdWx0ID0gKDAsIHJlZHV4XzEuY29tYmluZVJlZHVjZXJzKShleHBvcnRzLnJlZHVjZXJzKTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5FUlJPUl9QQUNLRVQgPSBleHBvcnRzLlBBQ0tFVF9UWVBFU19SRVZFUlNFID0gZXhwb3J0cy5QQUNLRVRfVFlQRVMgPSB2b2lkIDA7XG5jb25zdCBQQUNLRVRfVFlQRVMgPSBPYmplY3QuY3JlYXRlKG51bGwpOyAvLyBubyBNYXAgPSBubyBwb2x5ZmlsbFxuZXhwb3J0cy5QQUNLRVRfVFlQRVMgPSBQQUNLRVRfVFlQRVM7XG5QQUNLRVRfVFlQRVNbXCJvcGVuXCJdID0gXCIwXCI7XG5QQUNLRVRfVFlQRVNbXCJjbG9zZVwiXSA9IFwiMVwiO1xuUEFDS0VUX1RZUEVTW1wicGluZ1wiXSA9IFwiMlwiO1xuUEFDS0VUX1RZUEVTW1wicG9uZ1wiXSA9IFwiM1wiO1xuUEFDS0VUX1RZUEVTW1wibWVzc2FnZVwiXSA9IFwiNFwiO1xuUEFDS0VUX1RZUEVTW1widXBncmFkZVwiXSA9IFwiNVwiO1xuUEFDS0VUX1RZUEVTW1wibm9vcFwiXSA9IFwiNlwiO1xuY29uc3QgUEFDS0VUX1RZUEVTX1JFVkVSU0UgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuZXhwb3J0cy5QQUNLRVRfVFlQRVNfUkVWRVJTRSA9IFBBQ0tFVF9UWVBFU19SRVZFUlNFO1xuT2JqZWN0LmtleXMoUEFDS0VUX1RZUEVTKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICBQQUNLRVRfVFlQRVNfUkVWRVJTRVtQQUNLRVRfVFlQRVNba2V5XV0gPSBrZXk7XG59KTtcbmNvbnN0IEVSUk9SX1BBQ0tFVCA9IHsgdHlwZTogXCJlcnJvclwiLCBkYXRhOiBcInBhcnNlciBlcnJvclwiIH07XG5leHBvcnRzLkVSUk9SX1BBQ0tFVCA9IEVSUk9SX1BBQ0tFVDtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gKHN0YXRlID0gW10sIGFjdGlvbikgPT4ge1xuICAgIGlmIChhY3Rpb24udHlwZS5pbmRleE9mKCdAQHJlZHV4JykgIT09IDApIHtcbiAgICAgICAgcmV0dXJuIFthY3Rpb24udHlwZSwgLi4uc3RhdGVdO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHN0YXRlO1xuICAgIH1cbn07XG4iLCJcbmltcG9ydCB3b3JrZXIgZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL3dvcmtlci1sb2FkZXIvZGlzdC9ydW50aW1lL2lubGluZS5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBXb3JrZXJfZm4oKSB7XG4gIHJldHVybiB3b3JrZXIoXCIoKCk9Pnt2YXIgZT17NTI4OmZ1bmN0aW9uKGUsdCxuKXtcXFwidXNlIHN0cmljdFxcXCI7dmFyIHM9dGhpcyYmdGhpcy5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXFxcIl9fZXNNb2R1bGVcXFwiLHt2YWx1ZTohMH0pLHQuUmVxdWVzdD10LlBvbGxpbmc9dm9pZCAwO2NvbnN0IG89big0Njg5KSxyPXMobig2NjE3KSksaT1uKDczMiksYT1uKDYzNzYpLGM9bigzNTE5KSxsPW4oNDQ1NCksdT1uKDUzNzQpLGg9big2MjM1KSxwPSgwLHIuZGVmYXVsdCkoXFxcImVuZ2luZS5pby1jbGllbnQ6cG9sbGluZ1xcXCIpO2Z1bmN0aW9uIGQoKXt9Y29uc3QgZj1udWxsIT1uZXcgYy5YSFIoe3hkb21haW46ITF9KS5yZXNwb25zZVR5cGU7Y2xhc3MgZyBleHRlbmRzIG8uVHJhbnNwb3J0e2NvbnN0cnVjdG9yKGUpe2lmKHN1cGVyKGUpLHRoaXMucG9sbGluZz0hMSxcXFwidW5kZWZpbmVkXFxcIiE9dHlwZW9mIGxvY2F0aW9uKXtjb25zdCB0PVxcXCJodHRwczpcXFwiPT09bG9jYXRpb24ucHJvdG9jb2w7bGV0IG49bG9jYXRpb24ucG9ydDtufHwobj10P1xcXCI0NDNcXFwiOlxcXCI4MFxcXCIpLHRoaXMueGQ9XFxcInVuZGVmaW5lZFxcXCIhPXR5cGVvZiBsb2NhdGlvbiYmZS5ob3N0bmFtZSE9PWxvY2F0aW9uLmhvc3RuYW1lfHxuIT09ZS5wb3J0fWNvbnN0IHQ9ZSYmZS5mb3JjZUJhc2U2NDt0aGlzLnN1cHBvcnRzQmluYXJ5PWYmJiF0LHRoaXMub3B0cy53aXRoQ3JlZGVudGlhbHMmJih0aGlzLmNvb2tpZUphcj0oMCxjLmNyZWF0ZUNvb2tpZUphcikoKSl9Z2V0IG5hbWUoKXtyZXR1cm5cXFwicG9sbGluZ1xcXCJ9ZG9PcGVuKCl7dGhpcy5wb2xsKCl9cGF1c2UoZSl7dGhpcy5yZWFkeVN0YXRlPVxcXCJwYXVzaW5nXFxcIjtjb25zdCB0PSgpPT57cChcXFwicGF1c2VkXFxcIiksdGhpcy5yZWFkeVN0YXRlPVxcXCJwYXVzZWRcXFwiLGUoKX07aWYodGhpcy5wb2xsaW5nfHwhdGhpcy53cml0YWJsZSl7bGV0IGU9MDt0aGlzLnBvbGxpbmcmJihwKFxcXCJ3ZSBhcmUgY3VycmVudGx5IHBvbGxpbmcgLSB3YWl0aW5nIHRvIHBhdXNlXFxcIiksZSsrLHRoaXMub25jZShcXFwicG9sbENvbXBsZXRlXFxcIixmdW5jdGlvbigpe3AoXFxcInByZS1wYXVzZSBwb2xsaW5nIGNvbXBsZXRlXFxcIiksLS1lfHx0KCl9KSksdGhpcy53cml0YWJsZXx8KHAoXFxcIndlIGFyZSBjdXJyZW50bHkgd3JpdGluZyAtIHdhaXRpbmcgdG8gcGF1c2VcXFwiKSxlKyssdGhpcy5vbmNlKFxcXCJkcmFpblxcXCIsZnVuY3Rpb24oKXtwKFxcXCJwcmUtcGF1c2Ugd3JpdGluZyBjb21wbGV0ZVxcXCIpLC0tZXx8dCgpfSkpfWVsc2UgdCgpfXBvbGwoKXtwKFxcXCJwb2xsaW5nXFxcIiksdGhpcy5wb2xsaW5nPSEwLHRoaXMuZG9Qb2xsKCksdGhpcy5lbWl0UmVzZXJ2ZWQoXFxcInBvbGxcXFwiKX1vbkRhdGEoZSl7cChcXFwicG9sbGluZyBnb3QgZGF0YSAlc1xcXCIsZSksKDAsYS5kZWNvZGVQYXlsb2FkKShlLHRoaXMuc29ja2V0LmJpbmFyeVR5cGUpLmZvckVhY2goZT0+e2lmKFxcXCJvcGVuaW5nXFxcIj09PXRoaXMucmVhZHlTdGF0ZSYmXFxcIm9wZW5cXFwiPT09ZS50eXBlJiZ0aGlzLm9uT3BlbigpLFxcXCJjbG9zZVxcXCI9PT1lLnR5cGUpcmV0dXJuIHRoaXMub25DbG9zZSh7ZGVzY3JpcHRpb246XFxcInRyYW5zcG9ydCBjbG9zZWQgYnkgdGhlIHNlcnZlclxcXCJ9KSwhMTt0aGlzLm9uUGFja2V0KGUpfSksXFxcImNsb3NlZFxcXCIhPT10aGlzLnJlYWR5U3RhdGUmJih0aGlzLnBvbGxpbmc9ITEsdGhpcy5lbWl0UmVzZXJ2ZWQoXFxcInBvbGxDb21wbGV0ZVxcXCIpLFxcXCJvcGVuXFxcIj09PXRoaXMucmVhZHlTdGF0ZT90aGlzLnBvbGwoKTpwKCdpZ25vcmluZyBwb2xsIC0gdHJhbnNwb3J0IHN0YXRlIFxcXCIlc1xcXCInLHRoaXMucmVhZHlTdGF0ZSkpfWRvQ2xvc2UoKXtjb25zdCBlPSgpPT57cChcXFwid3JpdGluZyBjbG9zZSBwYWNrZXRcXFwiKSx0aGlzLndyaXRlKFt7dHlwZTpcXFwiY2xvc2VcXFwifV0pfTtcXFwib3BlblxcXCI9PT10aGlzLnJlYWR5U3RhdGU/KHAoXFxcInRyYW5zcG9ydCBvcGVuIC0gY2xvc2luZ1xcXCIpLGUoKSk6KHAoXFxcInRyYW5zcG9ydCBub3Qgb3BlbiAtIGRlZmVycmluZyBjbG9zZVxcXCIpLHRoaXMub25jZShcXFwib3BlblxcXCIsZSkpfXdyaXRlKGUpe3RoaXMud3JpdGFibGU9ITEsKDAsYS5lbmNvZGVQYXlsb2FkKShlLGU9Pnt0aGlzLmRvV3JpdGUoZSwoKT0+e3RoaXMud3JpdGFibGU9ITAsdGhpcy5lbWl0UmVzZXJ2ZWQoXFxcImRyYWluXFxcIil9KX0pfXVyaSgpe2NvbnN0IGU9dGhpcy5vcHRzLnNlY3VyZT9cXFwiaHR0cHNcXFwiOlxcXCJodHRwXFxcIix0PXRoaXMucXVlcnl8fHt9O3JldHVybiExIT09dGhpcy5vcHRzLnRpbWVzdGFtcFJlcXVlc3RzJiYodFt0aGlzLm9wdHMudGltZXN0YW1wUGFyYW1dPSgwLGkueWVhc3QpKCkpLHRoaXMuc3VwcG9ydHNCaW5hcnl8fHQuc2lkfHwodC5iNjQ9MSksdGhpcy5jcmVhdGVVcmkoZSx0KX1yZXF1ZXN0KGU9e30pe3JldHVybiBPYmplY3QuYXNzaWduKGUse3hkOnRoaXMueGQsY29va2llSmFyOnRoaXMuY29va2llSmFyfSx0aGlzLm9wdHMpLG5ldyB5KHRoaXMudXJpKCksZSl9ZG9Xcml0ZShlLHQpe2NvbnN0IG49dGhpcy5yZXF1ZXN0KHttZXRob2Q6XFxcIlBPU1RcXFwiLGRhdGE6ZX0pO24ub24oXFxcInN1Y2Nlc3NcXFwiLHQpLG4ub24oXFxcImVycm9yXFxcIiwoZSx0KT0+e3RoaXMub25FcnJvcihcXFwieGhyIHBvc3QgZXJyb3JcXFwiLGUsdCl9KX1kb1BvbGwoKXtwKFxcXCJ4aHIgcG9sbFxcXCIpO2NvbnN0IGU9dGhpcy5yZXF1ZXN0KCk7ZS5vbihcXFwiZGF0YVxcXCIsdGhpcy5vbkRhdGEuYmluZCh0aGlzKSksZS5vbihcXFwiZXJyb3JcXFwiLChlLHQpPT57dGhpcy5vbkVycm9yKFxcXCJ4aHIgcG9sbCBlcnJvclxcXCIsZSx0KX0pLHRoaXMucG9sbFhocj1lfX10LlBvbGxpbmc9ZztjbGFzcyB5IGV4dGVuZHMgbC5FbWl0dGVye2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoKSwoMCx1Lmluc3RhbGxUaW1lckZ1bmN0aW9ucykodGhpcyx0KSx0aGlzLm9wdHM9dCx0aGlzLm1ldGhvZD10Lm1ldGhvZHx8XFxcIkdFVFxcXCIsdGhpcy51cmk9ZSx0aGlzLmRhdGE9dm9pZCAwIT09dC5kYXRhP3QuZGF0YTpudWxsLHRoaXMuY3JlYXRlKCl9Y3JlYXRlKCl7dmFyIGU7Y29uc3QgdD0oMCx1LnBpY2spKHRoaXMub3B0cyxcXFwiYWdlbnRcXFwiLFxcXCJwZnhcXFwiLFxcXCJrZXlcXFwiLFxcXCJwYXNzcGhyYXNlXFxcIixcXFwiY2VydFxcXCIsXFxcImNhXFxcIixcXFwiY2lwaGVyc1xcXCIsXFxcInJlamVjdFVuYXV0aG9yaXplZFxcXCIsXFxcImF1dG9VbnJlZlxcXCIpO3QueGRvbWFpbj0hIXRoaXMub3B0cy54ZDtjb25zdCBuPXRoaXMueGhyPW5ldyBjLlhIUih0KTt0cnl7cChcXFwieGhyIG9wZW4gJXM6ICVzXFxcIix0aGlzLm1ldGhvZCx0aGlzLnVyaSksbi5vcGVuKHRoaXMubWV0aG9kLHRoaXMudXJpLCEwKTt0cnl7aWYodGhpcy5vcHRzLmV4dHJhSGVhZGVycyl7bi5zZXREaXNhYmxlSGVhZGVyQ2hlY2smJm4uc2V0RGlzYWJsZUhlYWRlckNoZWNrKCEwKTtmb3IobGV0IGUgaW4gdGhpcy5vcHRzLmV4dHJhSGVhZGVycyl0aGlzLm9wdHMuZXh0cmFIZWFkZXJzLmhhc093blByb3BlcnR5KGUpJiZuLnNldFJlcXVlc3RIZWFkZXIoZSx0aGlzLm9wdHMuZXh0cmFIZWFkZXJzW2VdKX19Y2F0Y2goZSl7fWlmKFxcXCJQT1NUXFxcIj09PXRoaXMubWV0aG9kKXRyeXtuLnNldFJlcXVlc3RIZWFkZXIoXFxcIkNvbnRlbnQtdHlwZVxcXCIsXFxcInRleHQvcGxhaW47Y2hhcnNldD1VVEYtOFxcXCIpfWNhdGNoKGUpe310cnl7bi5zZXRSZXF1ZXN0SGVhZGVyKFxcXCJBY2NlcHRcXFwiLFxcXCIqLypcXFwiKX1jYXRjaChlKXt9bnVsbD09PShlPXRoaXMub3B0cy5jb29raWVKYXIpfHx2b2lkIDA9PT1lfHxlLmFkZENvb2tpZXMobiksXFxcIndpdGhDcmVkZW50aWFsc1xcXCJpbiBuJiYobi53aXRoQ3JlZGVudGlhbHM9dGhpcy5vcHRzLndpdGhDcmVkZW50aWFscyksdGhpcy5vcHRzLnJlcXVlc3RUaW1lb3V0JiYobi50aW1lb3V0PXRoaXMub3B0cy5yZXF1ZXN0VGltZW91dCksbi5vbnJlYWR5c3RhdGVjaGFuZ2U9KCk9Pnt2YXIgZTszPT09bi5yZWFkeVN0YXRlJiYobnVsbD09PShlPXRoaXMub3B0cy5jb29raWVKYXIpfHx2b2lkIDA9PT1lfHxlLnBhcnNlQ29va2llcyhuKSksND09PW4ucmVhZHlTdGF0ZSYmKDIwMD09PW4uc3RhdHVzfHwxMjIzPT09bi5zdGF0dXM/dGhpcy5vbkxvYWQoKTp0aGlzLnNldFRpbWVvdXRGbigoKT0+e3RoaXMub25FcnJvcihcXFwibnVtYmVyXFxcIj09dHlwZW9mIG4uc3RhdHVzP24uc3RhdHVzOjApfSwwKSl9LHAoXFxcInhociBkYXRhICVzXFxcIix0aGlzLmRhdGEpLG4uc2VuZCh0aGlzLmRhdGEpfWNhdGNoKGUpe3JldHVybiB2b2lkIHRoaXMuc2V0VGltZW91dEZuKCgpPT57dGhpcy5vbkVycm9yKGUpfSwwKX1cXFwidW5kZWZpbmVkXFxcIiE9dHlwZW9mIGRvY3VtZW50JiYodGhpcy5pbmRleD15LnJlcXVlc3RzQ291bnQrKyx5LnJlcXVlc3RzW3RoaXMuaW5kZXhdPXRoaXMpfW9uRXJyb3IoZSl7dGhpcy5lbWl0UmVzZXJ2ZWQoXFxcImVycm9yXFxcIixlLHRoaXMueGhyKSx0aGlzLmNsZWFudXAoITApfWNsZWFudXAoZSl7aWYodm9pZCAwIT09dGhpcy54aHImJm51bGwhPT10aGlzLnhocil7aWYodGhpcy54aHIub25yZWFkeXN0YXRlY2hhbmdlPWQsZSl0cnl7dGhpcy54aHIuYWJvcnQoKX1jYXRjaChlKXt9XFxcInVuZGVmaW5lZFxcXCIhPXR5cGVvZiBkb2N1bWVudCYmZGVsZXRlIHkucmVxdWVzdHNbdGhpcy5pbmRleF0sdGhpcy54aHI9bnVsbH19b25Mb2FkKCl7Y29uc3QgZT10aGlzLnhoci5yZXNwb25zZVRleHQ7bnVsbCE9PWUmJih0aGlzLmVtaXRSZXNlcnZlZChcXFwiZGF0YVxcXCIsZSksdGhpcy5lbWl0UmVzZXJ2ZWQoXFxcInN1Y2Nlc3NcXFwiKSx0aGlzLmNsZWFudXAoKSl9YWJvcnQoKXt0aGlzLmNsZWFudXAoKX19aWYodC5SZXF1ZXN0PXkseS5yZXF1ZXN0c0NvdW50PTAseS5yZXF1ZXN0cz17fSxcXFwidW5kZWZpbmVkXFxcIiE9dHlwZW9mIGRvY3VtZW50KWlmKFxcXCJmdW5jdGlvblxcXCI9PXR5cGVvZiBhdHRhY2hFdmVudClhdHRhY2hFdmVudChcXFwib251bmxvYWRcXFwiLG0pO2Vsc2UgaWYoXFxcImZ1bmN0aW9uXFxcIj09dHlwZW9mIGFkZEV2ZW50TGlzdGVuZXIpe2NvbnN0IGU9XFxcIm9ucGFnZWhpZGVcXFwiaW4gaC5nbG9iYWxUaGlzU2hpbT9cXFwicGFnZWhpZGVcXFwiOlxcXCJ1bmxvYWRcXFwiO2FkZEV2ZW50TGlzdGVuZXIoZSxtLCExKX1mdW5jdGlvbiBtKCl7Zm9yKGxldCBlIGluIHkucmVxdWVzdHMpeS5yZXF1ZXN0cy5oYXNPd25Qcm9wZXJ0eShlKSYmeS5yZXF1ZXN0c1tlXS5hYm9ydCgpfX0sNzMyOihlLHQpPT57XFxcInVzZSBzdHJpY3RcXFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFxcXCJfX2VzTW9kdWxlXFxcIix7dmFsdWU6ITB9KSx0LnllYXN0PXQuZGVjb2RlPXQuZW5jb2RlPXZvaWQgMDtjb25zdCBuPVxcXCIwMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ei1fXFxcIi5zcGxpdChcXFwiXFxcIikscz17fTtsZXQgbyxyPTAsaT0wO2Z1bmN0aW9uIGEoZSl7bGV0IHQ9XFxcIlxcXCI7ZG97dD1uW2UlNjRdK3QsZT1NYXRoLmZsb29yKGUvNjQpfXdoaWxlKGU+MCk7cmV0dXJuIHR9Zm9yKHQuZW5jb2RlPWEsdC5kZWNvZGU9ZnVuY3Rpb24oZSl7bGV0IHQ9MDtmb3IoaT0wO2k8ZS5sZW5ndGg7aSsrKXQ9NjQqdCtzW2UuY2hhckF0KGkpXTtyZXR1cm4gdH0sdC55ZWFzdD1mdW5jdGlvbigpe2NvbnN0IGU9YSgrbmV3IERhdGUpO3JldHVybiBlIT09bz8ocj0wLG89ZSk6ZStcXFwiLlxcXCIrYShyKyspfTtpPDY0O2krKylzW25baV1dPWl9LDg1MjooZSx0LG4pPT57dC5mb3JtYXRBcmdzPWZ1bmN0aW9uKHQpe2lmKHRbMF09KHRoaXMudXNlQ29sb3JzP1xcXCIlY1xcXCI6XFxcIlxcXCIpK3RoaXMubmFtZXNwYWNlKyh0aGlzLnVzZUNvbG9ycz9cXFwiICVjXFxcIjpcXFwiIFxcXCIpK3RbMF0rKHRoaXMudXNlQ29sb3JzP1xcXCIlYyBcXFwiOlxcXCIgXFxcIikrXFxcIitcXFwiK2UuZXhwb3J0cy5odW1hbml6ZSh0aGlzLmRpZmYpLCF0aGlzLnVzZUNvbG9ycylyZXR1cm47Y29uc3Qgbj1cXFwiY29sb3I6IFxcXCIrdGhpcy5jb2xvcjt0LnNwbGljZSgxLDAsbixcXFwiY29sb3I6IGluaGVyaXRcXFwiKTtsZXQgcz0wLG89MDt0WzBdLnJlcGxhY2UoLyVbYS16QS1aJV0vZyxlPT57XFxcIiUlXFxcIiE9PWUmJihzKyssXFxcIiVjXFxcIj09PWUmJihvPXMpKX0pLHQuc3BsaWNlKG8sMCxuKX0sdC5zYXZlPWZ1bmN0aW9uKGUpe3RyeXtlP3Quc3RvcmFnZS5zZXRJdGVtKFxcXCJkZWJ1Z1xcXCIsZSk6dC5zdG9yYWdlLnJlbW92ZUl0ZW0oXFxcImRlYnVnXFxcIil9Y2F0Y2goZSl7fX0sdC5sb2FkPWZ1bmN0aW9uKCl7bGV0IGU7dHJ5e2U9dC5zdG9yYWdlLmdldEl0ZW0oXFxcImRlYnVnXFxcIil9Y2F0Y2goZSl7fXJldHVybiFlJiZcXFwidW5kZWZpbmVkXFxcIiE9dHlwZW9mIHByb2Nlc3MmJlxcXCJlbnZcXFwiaW4gcHJvY2VzcyYmKGU9cHJvY2Vzcy5lbnYuREVCVUcpLGV9LHQudXNlQ29sb3JzPWZ1bmN0aW9uKCl7aWYoXFxcInVuZGVmaW5lZFxcXCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy5wcm9jZXNzJiYoXFxcInJlbmRlcmVyXFxcIj09PXdpbmRvdy5wcm9jZXNzLnR5cGV8fHdpbmRvdy5wcm9jZXNzLl9fbndqcykpcmV0dXJuITA7aWYoXFxcInVuZGVmaW5lZFxcXCIhPXR5cGVvZiBuYXZpZ2F0b3ImJm5hdmlnYXRvci51c2VyQWdlbnQmJm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5tYXRjaCgvKGVkZ2V8dHJpZGVudClcXFxcLyhcXFxcZCspLykpcmV0dXJuITE7bGV0IGU7cmV0dXJuXFxcInVuZGVmaW5lZFxcXCIhPXR5cGVvZiBkb2N1bWVudCYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50JiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5XZWJraXRBcHBlYXJhbmNlfHxcXFwidW5kZWZpbmVkXFxcIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93LmNvbnNvbGUmJih3aW5kb3cuY29uc29sZS5maXJlYnVnfHx3aW5kb3cuY29uc29sZS5leGNlcHRpb24mJndpbmRvdy5jb25zb2xlLnRhYmxlKXx8XFxcInVuZGVmaW5lZFxcXCIhPXR5cGVvZiBuYXZpZ2F0b3ImJm5hdmlnYXRvci51c2VyQWdlbnQmJihlPW5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5tYXRjaCgvZmlyZWZveFxcXFwvKFxcXFxkKykvKSkmJnBhcnNlSW50KGVbMV0sMTApPj0zMXx8XFxcInVuZGVmaW5lZFxcXCIhPXR5cGVvZiBuYXZpZ2F0b3ImJm5hdmlnYXRvci51c2VyQWdlbnQmJm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5tYXRjaCgvYXBwbGV3ZWJraXRcXFxcLyhcXFxcZCspLyl9LHQuc3RvcmFnZT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gbG9jYWxTdG9yYWdlfWNhdGNoKGUpe319KCksdC5kZXN0cm95PSgoKT0+e2xldCBlPSExO3JldHVybigpPT57ZXx8KGU9ITAsY29uc29sZS53YXJuKFxcXCJJbnN0YW5jZSBtZXRob2QgYGRlYnVnLmRlc3Ryb3koKWAgaXMgZGVwcmVjYXRlZCBhbmQgbm8gbG9uZ2VyIGRvZXMgYW55dGhpbmcuIEl0IHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIG9mIGBkZWJ1Z2AuXFxcIikpfX0pKCksdC5jb2xvcnM9W1xcXCIjMDAwMENDXFxcIixcXFwiIzAwMDBGRlxcXCIsXFxcIiMwMDMzQ0NcXFwiLFxcXCIjMDAzM0ZGXFxcIixcXFwiIzAwNjZDQ1xcXCIsXFxcIiMwMDY2RkZcXFwiLFxcXCIjMDA5OUNDXFxcIixcXFwiIzAwOTlGRlxcXCIsXFxcIiMwMENDMDBcXFwiLFxcXCIjMDBDQzMzXFxcIixcXFwiIzAwQ0M2NlxcXCIsXFxcIiMwMENDOTlcXFwiLFxcXCIjMDBDQ0NDXFxcIixcXFwiIzAwQ0NGRlxcXCIsXFxcIiMzMzAwQ0NcXFwiLFxcXCIjMzMwMEZGXFxcIixcXFwiIzMzMzNDQ1xcXCIsXFxcIiMzMzMzRkZcXFwiLFxcXCIjMzM2NkNDXFxcIixcXFwiIzMzNjZGRlxcXCIsXFxcIiMzMzk5Q0NcXFwiLFxcXCIjMzM5OUZGXFxcIixcXFwiIzMzQ0MwMFxcXCIsXFxcIiMzM0NDMzNcXFwiLFxcXCIjMzNDQzY2XFxcIixcXFwiIzMzQ0M5OVxcXCIsXFxcIiMzM0NDQ0NcXFwiLFxcXCIjMzNDQ0ZGXFxcIixcXFwiIzY2MDBDQ1xcXCIsXFxcIiM2NjAwRkZcXFwiLFxcXCIjNjYzM0NDXFxcIixcXFwiIzY2MzNGRlxcXCIsXFxcIiM2NkNDMDBcXFwiLFxcXCIjNjZDQzMzXFxcIixcXFwiIzk5MDBDQ1xcXCIsXFxcIiM5OTAwRkZcXFwiLFxcXCIjOTkzM0NDXFxcIixcXFwiIzk5MzNGRlxcXCIsXFxcIiM5OUNDMDBcXFwiLFxcXCIjOTlDQzMzXFxcIixcXFwiI0NDMDAwMFxcXCIsXFxcIiNDQzAwMzNcXFwiLFxcXCIjQ0MwMDY2XFxcIixcXFwiI0NDMDA5OVxcXCIsXFxcIiNDQzAwQ0NcXFwiLFxcXCIjQ0MwMEZGXFxcIixcXFwiI0NDMzMwMFxcXCIsXFxcIiNDQzMzMzNcXFwiLFxcXCIjQ0MzMzY2XFxcIixcXFwiI0NDMzM5OVxcXCIsXFxcIiNDQzMzQ0NcXFwiLFxcXCIjQ0MzM0ZGXFxcIixcXFwiI0NDNjYwMFxcXCIsXFxcIiNDQzY2MzNcXFwiLFxcXCIjQ0M5OTAwXFxcIixcXFwiI0NDOTkzM1xcXCIsXFxcIiNDQ0NDMDBcXFwiLFxcXCIjQ0NDQzMzXFxcIixcXFwiI0ZGMDAwMFxcXCIsXFxcIiNGRjAwMzNcXFwiLFxcXCIjRkYwMDY2XFxcIixcXFwiI0ZGMDA5OVxcXCIsXFxcIiNGRjAwQ0NcXFwiLFxcXCIjRkYwMEZGXFxcIixcXFwiI0ZGMzMwMFxcXCIsXFxcIiNGRjMzMzNcXFwiLFxcXCIjRkYzMzY2XFxcIixcXFwiI0ZGMzM5OVxcXCIsXFxcIiNGRjMzQ0NcXFwiLFxcXCIjRkYzM0ZGXFxcIixcXFwiI0ZGNjYwMFxcXCIsXFxcIiNGRjY2MzNcXFwiLFxcXCIjRkY5OTAwXFxcIixcXFwiI0ZGOTkzM1xcXCIsXFxcIiNGRkNDMDBcXFwiLFxcXCIjRkZDQzMzXFxcIl0sdC5sb2c9Y29uc29sZS5kZWJ1Z3x8Y29uc29sZS5sb2d8fCgoKT0+e30pLGUuZXhwb3J0cz1uKDM5OTUpKHQpO2NvbnN0e2Zvcm1hdHRlcnM6c309ZS5leHBvcnRzO3Muaj1mdW5jdGlvbihlKXt0cnl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KGUpfWNhdGNoKGUpe3JldHVyblxcXCJbVW5leHBlY3RlZEpTT05QYXJzZUVycm9yXTogXFxcIitlLm1lc3NhZ2V9fX0sMTAxNTooZSx0KT0+e1xcXCJ1c2Ugc3RyaWN0XFxcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcXFwiX19lc01vZHVsZVxcXCIse3ZhbHVlOiEwfSksdC5wYXJzZT12b2lkIDA7Y29uc3Qgbj0vXig/Oig/IVteOkBcXFxcLz8jXSs6W146QFxcXFwvXSpAKShodHRwfGh0dHBzfHdzfHdzcyk6XFxcXC9cXFxcLyk/KCg/OigoW146QFxcXFwvPyNdKikoPzo6KFteOkBcXFxcLz8jXSopKT8pP0ApPygoPzpbYS1mMC05XXswLDR9Oil7Miw3fVthLWYwLTldezAsNH18W146XFxcXC8/I10qKSg/OjooXFxcXGQqKSk/KSgoKFxcXFwvKD86W14/I10oPyFbXj8jXFxcXC9dKlxcXFwuW14/I1xcXFwvLl0rKD86Wz8jXXwkKSkpKlxcXFwvPyk/KFtePyNcXFxcL10qKSkoPzpcXFxcPyhbXiNdKikpPyg/OiMoLiopKT8pLyxzPVtcXFwic291cmNlXFxcIixcXFwicHJvdG9jb2xcXFwiLFxcXCJhdXRob3JpdHlcXFwiLFxcXCJ1c2VySW5mb1xcXCIsXFxcInVzZXJcXFwiLFxcXCJwYXNzd29yZFxcXCIsXFxcImhvc3RcXFwiLFxcXCJwb3J0XFxcIixcXFwicmVsYXRpdmVcXFwiLFxcXCJwYXRoXFxcIixcXFwiZGlyZWN0b3J5XFxcIixcXFwiZmlsZVxcXCIsXFxcInF1ZXJ5XFxcIixcXFwiYW5jaG9yXFxcIl07dC5wYXJzZT1mdW5jdGlvbihlKXtpZihlLmxlbmd0aD4yZTMpdGhyb3dcXFwiVVJJIHRvbyBsb25nXFxcIjtjb25zdCB0PWUsbz1lLmluZGV4T2YoXFxcIltcXFwiKSxyPWUuaW5kZXhPZihcXFwiXVxcXCIpOy0xIT1vJiYtMSE9ciYmKGU9ZS5zdWJzdHJpbmcoMCxvKStlLnN1YnN0cmluZyhvLHIpLnJlcGxhY2UoLzovZyxcXFwiO1xcXCIpK2Uuc3Vic3RyaW5nKHIsZS5sZW5ndGgpKTtsZXQgaT1uLmV4ZWMoZXx8XFxcIlxcXCIpLGE9e30sYz0xNDtmb3IoO2MtLTspYVtzW2NdXT1pW2NdfHxcXFwiXFxcIjtyZXR1cm4tMSE9byYmLTEhPXImJihhLnNvdXJjZT10LGEuaG9zdD1hLmhvc3Quc3Vic3RyaW5nKDEsYS5ob3N0Lmxlbmd0aC0xKS5yZXBsYWNlKC87L2csXFxcIjpcXFwiKSxhLmF1dGhvcml0eT1hLmF1dGhvcml0eS5yZXBsYWNlKFxcXCJbXFxcIixcXFwiXFxcIikucmVwbGFjZShcXFwiXVxcXCIsXFxcIlxcXCIpLnJlcGxhY2UoLzsvZyxcXFwiOlxcXCIpLGEuaXB2NnVyaT0hMCksYS5wYXRoTmFtZXM9ZnVuY3Rpb24oZSx0KXtjb25zdCBuPXQucmVwbGFjZSgvXFxcXC97Miw5fS9nLFxcXCIvXFxcIikuc3BsaXQoXFxcIi9cXFwiKTtyZXR1cm5cXFwiL1xcXCIhPXQuc2xpY2UoMCwxKSYmMCE9PXQubGVuZ3RofHxuLnNwbGljZSgwLDEpLFxcXCIvXFxcIj09dC5zbGljZSgtMSkmJm4uc3BsaWNlKG4ubGVuZ3RoLTEsMSksbn0oMCxhLnBhdGgpLGEucXVlcnlLZXk9ZnVuY3Rpb24oZSx0KXtjb25zdCBuPXt9O3JldHVybiB0LnJlcGxhY2UoLyg/Ol58JikoW14mPV0qKT0/KFteJl0qKS9nLGZ1bmN0aW9uKGUsdCxzKXt0JiYoblt0XT1zKX0pLG59KDAsYS5xdWVyeSksYX19LDEzMDg6ZnVuY3Rpb24oZSx0LG4pe1xcXCJ1c2Ugc3RyaWN0XFxcIjt2YXIgcz10aGlzJiZ0aGlzLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcXFwiX19lc01vZHVsZVxcXCIse3ZhbHVlOiEwfSksdC5pbml0PXZvaWQgMDtjb25zdCBvPXMobig3MDA2KSk7dC5pbml0PXtnYXRld2F5Om51bGwsaW9TZXJ2ZXI6e2xvY2F0aW9uOlxcXCJcXFwiLGhvc3Q6XFxcImxvY2FsaG9zdFxcXCIscG9ydDowfSxyZWRpczp7Y2x1c3RlcjpbXSxjbGllbnQ6e2hvc3Q6XFxcIjEyNy4wLjAuMVxcXCIscG9ydDo2Mzc5fX0sYWNjZXB0OntyYW5rQWxsOiExfSxjaGlsZHJlbjpbXX07Y2xhc3Mgcntjb25zdHJ1Y3RvcihlPXQuaW5pdCl7cmV0dXJuIE9iamVjdC5hc3NpZ24odGhpcyxlKX1zdGF0aWMgZ2V0TXlDaENvbmZpZyhlLHQpe2NvbnN0IG49KGUscz1cXFwiXFxcIik9Pntjb25zdCBvPXMrZS5pb1NlcnZlci5sb2NhdGlvbjtpZihvPT09dClyZXR1cm57Li4uZSxjaGlsZHJlbjpbXSxjb25uZWN0aW9uOnR9O2lmKGUuY2hpbGRyZW4mJmUuY2hpbGRyZW4ubGVuZ3RoPjApZm9yKGNvbnN0IHQgb2YgZS5jaGlsZHJlbil7Y29uc3QgZT1uKHQsbyk7aWYoZSlyZXR1cm4gZX1yZXR1cm4gbnVsbH0scz1uKGUpO3JldHVybiBudWxsIT09cz9zOnsuLi5lLGNoaWxkcmVuOltdLGNvbm5lY3Rpb246dH19c3RhdGljIGdldENoUm9vdHNDb25maWcoZSl7Y29uc3R7Y2hDb25maWdKc29uOnQsdHVuZUNvbm5lY3Rpb246bn09ZSxzPShlLHQsbixvPVtdKT0+e2NvbnN0IHI9ZS5maW5kKGU9PnQuaW5kZXhPZihuK2UuaW9TZXJ2ZXIubG9jYXRpb24pPj0wKTtpZihyKXtjb25zdCBlPW4rci5pb1NlcnZlci5sb2NhdGlvbjtyZXR1cm4gby5wdXNoKHsuLi5yLGNoaWxkcmVuOltdLGNvbm5lY3Rpb246ZX0pLHMoci5jaGlsZHJlbix0LGUsbyl9cmV0dXJuIG99O3JldHVybiBzKHQuY2hpbGRyZW4sbixvLmRlZmF1bHQucm9vdENvbm5lY3Rpb24sW3suLi50LGNoaWxkcmVuOltdLGNvbm5lY3Rpb246by5kZWZhdWx0LnJvb3RDb25uZWN0aW9ufV0pfXN0YXRpYyBnZXRHYXRld2F5KGUpe2NvbnN0IHQ9ci5nZXRDaFJvb3RzQ29uZmlnKGUpO3JldHVybiB0WzFdP3RbMV0uZ2F0ZXdheTp0WzBdLmdhdGV3YXl9c3RhdGljIGdldFJvb3RzQ29ubmVjdGlvbnMoZSx0PSExKXtjb25zdCBuPXIuZ2V0Q2hSb290c0NvbmZpZyhlKS5tYXAoZT0+ZS5jb25uZWN0aW9uKTtyZXR1cm4gdD9uLmZpbHRlcih0PT50IT09ZS50dW5lQ29ubmVjdGlvbik6bn19dC5kZWZhdWx0PXJ9LDE3MDM6KGUsdCxuKT0+e2UuZXhwb3J0cz1mdW5jdGlvbihlKXtmdW5jdGlvbiB0KGUpe2xldCBuLG8scixpPW51bGw7ZnVuY3Rpb24gYSguLi5lKXtpZighYS5lbmFibGVkKXJldHVybjtjb25zdCBzPWEsbz1OdW1iZXIobmV3IERhdGUpLHI9by0obnx8byk7cy5kaWZmPXIscy5wcmV2PW4scy5jdXJyPW8sbj1vLGVbMF09dC5jb2VyY2UoZVswXSksXFxcInN0cmluZ1xcXCIhPXR5cGVvZiBlWzBdJiZlLnVuc2hpZnQoXFxcIiVPXFxcIik7bGV0IGk9MDtlWzBdPWVbMF0ucmVwbGFjZSgvJShbYS16QS1aJV0pL2csKG4sbyk9PntpZihcXFwiJSVcXFwiPT09bilyZXR1cm5cXFwiJVxcXCI7aSsrO2NvbnN0IHI9dC5mb3JtYXR0ZXJzW29dO2lmKFxcXCJmdW5jdGlvblxcXCI9PXR5cGVvZiByKXtjb25zdCB0PWVbaV07bj1yLmNhbGwocyx0KSxlLnNwbGljZShpLDEpLGktLX1yZXR1cm4gbn0pLHQuZm9ybWF0QXJncy5jYWxsKHMsZSksKHMubG9nfHx0LmxvZykuYXBwbHkocyxlKX1yZXR1cm4gYS5uYW1lc3BhY2U9ZSxhLnVzZUNvbG9ycz10LnVzZUNvbG9ycygpLGEuY29sb3I9dC5zZWxlY3RDb2xvcihlKSxhLmV4dGVuZD1zLGEuZGVzdHJveT10LmRlc3Ryb3ksT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsXFxcImVuYWJsZWRcXFwiLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMSxnZXQ6KCk9Pm51bGwhPT1pP2k6KG8hPT10Lm5hbWVzcGFjZXMmJihvPXQubmFtZXNwYWNlcyxyPXQuZW5hYmxlZChlKSksciksc2V0OmU9PntpPWV9fSksXFxcImZ1bmN0aW9uXFxcIj09dHlwZW9mIHQuaW5pdCYmdC5pbml0KGEpLGF9ZnVuY3Rpb24gcyhlLG4pe2NvbnN0IHM9dCh0aGlzLm5hbWVzcGFjZSsodm9pZCAwPT09bj9cXFwiOlxcXCI6bikrZSk7cmV0dXJuIHMubG9nPXRoaXMubG9nLHN9ZnVuY3Rpb24gbyhlKXtyZXR1cm4gZS50b1N0cmluZygpLnN1YnN0cmluZygyLGUudG9TdHJpbmcoKS5sZW5ndGgtMikucmVwbGFjZSgvXFxcXC5cXFxcKlxcXFw/JC8sXFxcIipcXFwiKX1yZXR1cm4gdC5kZWJ1Zz10LHQuZGVmYXVsdD10LHQuY29lcmNlPWZ1bmN0aW9uKGUpe3JldHVybiBlIGluc3RhbmNlb2YgRXJyb3I/ZS5zdGFja3x8ZS5tZXNzYWdlOmV9LHQuZGlzYWJsZT1mdW5jdGlvbigpe2NvbnN0IGU9Wy4uLnQubmFtZXMubWFwKG8pLC4uLnQuc2tpcHMubWFwKG8pLm1hcChlPT5cXFwiLVxcXCIrZSldLmpvaW4oXFxcIixcXFwiKTtyZXR1cm4gdC5lbmFibGUoXFxcIlxcXCIpLGV9LHQuZW5hYmxlPWZ1bmN0aW9uKGUpe2xldCBuO3Quc2F2ZShlKSx0Lm5hbWVzcGFjZXM9ZSx0Lm5hbWVzPVtdLHQuc2tpcHM9W107Y29uc3Qgcz0oXFxcInN0cmluZ1xcXCI9PXR5cGVvZiBlP2U6XFxcIlxcXCIpLnNwbGl0KC9bXFxcXHMsXSsvKSxvPXMubGVuZ3RoO2ZvcihuPTA7bjxvO24rKylzW25dJiYoXFxcIi1cXFwiPT09KGU9c1tuXS5yZXBsYWNlKC9cXFxcKi9nLFxcXCIuKj9cXFwiKSlbMF0/dC5za2lwcy5wdXNoKG5ldyBSZWdFeHAoXFxcIl5cXFwiK2Uuc2xpY2UoMSkrXFxcIiRcXFwiKSk6dC5uYW1lcy5wdXNoKG5ldyBSZWdFeHAoXFxcIl5cXFwiK2UrXFxcIiRcXFwiKSkpfSx0LmVuYWJsZWQ9ZnVuY3Rpb24oZSl7aWYoXFxcIipcXFwiPT09ZVtlLmxlbmd0aC0xXSlyZXR1cm4hMDtsZXQgbixzO2ZvcihuPTAscz10LnNraXBzLmxlbmd0aDtuPHM7bisrKWlmKHQuc2tpcHNbbl0udGVzdChlKSlyZXR1cm4hMTtmb3Iobj0wLHM9dC5uYW1lcy5sZW5ndGg7bjxzO24rKylpZih0Lm5hbWVzW25dLnRlc3QoZSkpcmV0dXJuITA7cmV0dXJuITF9LHQuaHVtYW5pemU9big2NTg1KSx0LmRlc3Ryb3k9ZnVuY3Rpb24oKXtjb25zb2xlLndhcm4oXFxcIkluc3RhbmNlIG1ldGhvZCBgZGVidWcuZGVzdHJveSgpYCBpcyBkZXByZWNhdGVkIGFuZCBubyBsb25nZXIgZG9lcyBhbnl0aGluZy4gSXQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gb2YgYGRlYnVnYC5cXFwiKX0sT2JqZWN0LmtleXMoZSkuZm9yRWFjaChuPT57dFtuXT1lW25dfSksdC5uYW1lcz1bXSx0LnNraXBzPVtdLHQuZm9ybWF0dGVycz17fSx0LnNlbGVjdENvbG9yPWZ1bmN0aW9uKGUpe2xldCBuPTA7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0Kyspbj0objw8NSktbitlLmNoYXJDb2RlQXQodCksbnw9MDtyZXR1cm4gdC5jb2xvcnNbTWF0aC5hYnMobikldC5jb2xvcnMubGVuZ3RoXX0sdC5lbmFibGUodC5sb2FkKCkpLHR9fSwxOTczOmU9PntcXFwidXNlIHN0cmljdFxcXCI7ZS5leHBvcnRzPUpTT04ucGFyc2UoJ3tcXFwiZ2F0ZXdheVxcXCI6e1xcXCJob3N0XFxcIjpcXFwiYXBpLnRhbGtuLmlvXFxcIixcXFwicG9ydFxcXCI6NDQzfSxcXFwiaW9TZXJ2ZXJcXFwiOntcXFwibG9jYXRpb25cXFwiOlxcXCIvXFxcIixcXFwiaG9zdFxcXCI6XFxcImFwaS50YWxrbi5pb1xcXCIsXFxcInBvcnRcXFwiOjQ0M30sXFxcInJlZGlzXFxcIjp7XFxcImNsaWVudFxcXCI6e1xcXCJob3N0XFxcIjpcXFwiYXBpLnRhbGtuLmlvXFxcIixcXFwicG9ydFxcXCI6NjM3OX0sXFxcImNsdXN0ZXJcXFwiOltdfSxcXFwiYWNjZXB0XFxcIjp7XFxcInJhbmtBbGxcXFwiOmZhbHNlfSxcXFwicGF5anBcXFwiOnt9LFxcXCJzZXJ2aWNlXFxcIjp7XFxcInR5cGVcXFwiOlxcXCJlYzJcXFwiLFxcXCJwbGFuXFxcIjp7fX0sXFxcImNoaWxkcmVuXFxcIjpbe1xcXCJnYXRld2F5XFxcIjp7XFxcImhvc3RcXFwiOlxcXCJhcGkudGFsa24uaW9cXFwiLFxcXCJwb3J0XFxcIjo0NDN9LFxcXCJpb1NlcnZlclxcXCI6e1xcXCJsb2NhdGlvblxcXCI6XFxcImFhLmNvbS9cXFwiLFxcXCJob3N0XFxcIjpcXFwiYXBpLnRhbGtuLmlvXFxcIixcXFwicG9ydFxcXCI6NDQzfSxcXFwicmVkaXNcXFwiOntcXFwiY2xpZW50XFxcIjp7XFxcImhvc3RcXFwiOlxcXCJhcGkudGFsa24uaW9cXFwiLFxcXCJwb3J0XFxcIjo2Mzc5fSxcXFwiY2x1c3RlclxcXCI6W119LFxcXCJhY2NlcHRcXFwiOntcXFwicmFua0FsbFxcXCI6ZmFsc2V9LFxcXCJwYXlqcFxcXCI6e30sXFxcInNlcnZpY2VcXFwiOntcXFwidHlwZVxcXCI6XFxcImVjMlxcXCIsXFxcInBsYW5cXFwiOnt9fSxcXFwiY2hpbGRyZW5cXFwiOlt7XFxcImdhdGV3YXlcXFwiOm51bGwsXFxcImlvU2VydmVyXFxcIjp7XFxcImxvY2F0aW9uXFxcIjpcXFwiMTEvMjIvMzMvXFxcIixcXFwiaG9zdFxcXCI6XFxcImFwaS50YWxrbi5pb1xcXCIsXFxcInBvcnRcXFwiOjQ0M30sXFxcInJlZGlzXFxcIjp7XFxcImNsaWVudFxcXCI6e1xcXCJob3N0XFxcIjpcXFwiYXBpLnRhbGtuLmlvXFxcIixcXFwicG9ydFxcXCI6NjM3OX0sXFxcImNsdXN0ZXJcXFwiOltdfSxcXFwiYWNjZXB0XFxcIjp7XFxcInJhbmtBbGxcXFwiOmZhbHNlfSxcXFwicGF5anBcXFwiOnt9LFxcXCJzZXJ2aWNlXFxcIjp7XFxcInR5cGVcXFwiOlxcXCJlYzJcXFwiLFxcXCJwbGFuXFxcIjp7fX0sXFxcImNoaWxkcmVuXFxcIjpbXX1dfSx7XFxcImdhdGV3YXlcXFwiOntcXFwiaG9zdFxcXCI6XFxcImFwaS50YWxrbi5pb1xcXCIsXFxcInBvcnRcXFwiOjQ0M30sXFxcImlvU2VydmVyXFxcIjp7XFxcImxvY2F0aW9uXFxcIjpcXFwiYmIuY29tL1xcXCIsXFxcImhvc3RcXFwiOlxcXCJhcGkudGFsa24uaW9cXFwiLFxcXCJwb3J0XFxcIjo0NDN9LFxcXCJyZWRpc1xcXCI6e1xcXCJjbGllbnRcXFwiOntcXFwiaG9zdFxcXCI6XFxcImFwaS50YWxrbi5pb1xcXCIsXFxcInBvcnRcXFwiOjYzNzl9LFxcXCJjbHVzdGVyXFxcIjpbXX0sXFxcImFjY2VwdFxcXCI6e1xcXCJyYW5rQWxsXFxcIjpmYWxzZX0sXFxcInBheWpwXFxcIjp7fSxcXFwic2VydmljZVxcXCI6e1xcXCJ0eXBlXFxcIjpcXFwiZWMyXFxcIixcXFwicGxhblxcXCI6e319LFxcXCJjaGlsZHJlblxcXCI6W3tcXFwiZ2F0ZXdheVxcXCI6bnVsbCxcXFwiaW9TZXJ2ZXJcXFwiOntcXFwibG9jYXRpb25cXFwiOlxcXCIxMS8yMi9cXFwiLFxcXCJob3N0XFxcIjpcXFwiYXBpLnRhbGtuLmlvXFxcIixcXFwicG9ydFxcXCI6NDQzfSxcXFwicmVkaXNcXFwiOntcXFwiY2xpZW50XFxcIjp7XFxcImhvc3RcXFwiOlxcXCJhcGkudGFsa24uaW9cXFwiLFxcXCJwb3J0XFxcIjo2Mzc5fSxcXFwiY2x1c3RlclxcXCI6W119LFxcXCJhY2NlcHRcXFwiOntcXFwicmFua0FsbFxcXCI6ZmFsc2V9LFxcXCJwYXlqcFxcXCI6e30sXFxcInNlcnZpY2VcXFwiOntcXFwidHlwZVxcXCI6XFxcImVjMlxcXCIsXFxcInBsYW5cXFwiOnt9fSxcXFwiY2hpbGRyZW5cXFwiOlt7XFxcImdhdGV3YXlcXFwiOm51bGwsXFxcImlvU2VydmVyXFxcIjp7XFxcImxvY2F0aW9uXFxcIjpcXFwiQkJCQi9cXFwiLFxcXCJob3N0XFxcIjpcXFwiYXBpLnRhbGtuLmlvXFxcIixcXFwicG9ydFxcXCI6NDQzfSxcXFwicmVkaXNcXFwiOntcXFwiY2xpZW50XFxcIjp7XFxcImhvc3RcXFwiOlxcXCJhcGkudGFsa24uaW9cXFwiLFxcXCJwb3J0XFxcIjo2Mzc5fSxcXFwiY2x1c3RlclxcXCI6W119LFxcXCJhY2NlcHRcXFwiOntcXFwicmFua0FsbFxcXCI6ZmFsc2V9LFxcXCJwYXlqcFxcXCI6e30sXFxcInNlcnZpY2VcXFwiOntcXFwidHlwZVxcXCI6XFxcImVjMlxcXCIsXFxcInBsYW5cXFwiOnt9fSxcXFwiY2hpbGRyZW5cXFwiOltdfV19XX0se1xcXCJnYXRld2F5XFxcIjp7XFxcImhvc3RcXFwiOlxcXCJhcGkudGFsa24uaW9cXFwiLFxcXCJwb3J0XFxcIjo0NDN9LFxcXCJpb1NlcnZlclxcXCI6e1xcXCJsb2NhdGlvblxcXCI6XFxcImNjLmNvbS9cXFwiLFxcXCJob3N0XFxcIjpcXFwiYXBpLnRhbGtuLmlvXFxcIixcXFwicG9ydFxcXCI6NDQzfSxcXFwicmVkaXNcXFwiOntcXFwiY2xpZW50XFxcIjp7XFxcImhvc3RcXFwiOlxcXCJhcGkudGFsa24uaW9cXFwiLFxcXCJwb3J0XFxcIjo2Mzc5fSxcXFwiY2x1c3RlclxcXCI6W119LFxcXCJhY2NlcHRcXFwiOntcXFwicmFua0FsbFxcXCI6ZmFsc2V9LFxcXCJwYXlqcFxcXCI6e30sXFxcInNlcnZpY2VcXFwiOntcXFwidHlwZVxcXCI6XFxcImVjMlxcXCIsXFxcInBsYW5cXFwiOnt9fSxcXFwiY2hpbGRyZW5cXFwiOltdfSx7XFxcImdhdGV3YXlcXFwiOntcXFwiaG9zdFxcXCI6XFxcImFwaS50YWxrbi5pb1xcXCIsXFxcInBvcnRcXFwiOjQ0M30sXFxcImlvU2VydmVyXFxcIjp7XFxcImxvY2F0aW9uXFxcIjpcXFwiZGQuY29tL1xcXCIsXFxcImhvc3RcXFwiOlxcXCJhcGkudGFsa24uaW9cXFwiLFxcXCJwb3J0XFxcIjo0NDN9LFxcXCJyZWRpc1xcXCI6e1xcXCJjbGllbnRcXFwiOntcXFwiaG9zdFxcXCI6XFxcImFwaS50YWxrbi5pb1xcXCIsXFxcInBvcnRcXFwiOjYzNzl9LFxcXCJjbHVzdGVyXFxcIjpbXX0sXFxcImFjY2VwdFxcXCI6e1xcXCJyYW5rQWxsXFxcIjpmYWxzZX0sXFxcInBheWpwXFxcIjp7fSxcXFwic2VydmljZVxcXCI6e1xcXCJ0eXBlXFxcIjpcXFwiZWMyXFxcIixcXFwicGxhblxcXCI6e319LFxcXCJjaGlsZHJlblxcXCI6W3tcXFwiZ2F0ZXdheVxcXCI6bnVsbCxcXFwiaW9TZXJ2ZXJcXFwiOntcXFwibG9jYXRpb25cXFwiOlxcXCJhMTEvYjIyL1xcXCIsXFxcImhvc3RcXFwiOlxcXCJhcGkudGFsa24uaW9cXFwiLFxcXCJwb3J0XFxcIjo0NDN9LFxcXCJyZWRpc1xcXCI6e1xcXCJjbGllbnRcXFwiOntcXFwiaG9zdFxcXCI6XFxcImFwaS50YWxrbi5pb1xcXCIsXFxcInBvcnRcXFwiOjYzNzl9LFxcXCJjbHVzdGVyXFxcIjpbXX0sXFxcImFjY2VwdFxcXCI6e1xcXCJyYW5rQWxsXFxcIjpmYWxzZX0sXFxcInBheWpwXFxcIjp7fSxcXFwic2VydmljZVxcXCI6e1xcXCJ0eXBlXFxcIjpcXFwiZWMyXFxcIixcXFwicGxhblxcXCI6e319LFxcXCJjaGlsZHJlblxcXCI6W3tcXFwiZ2F0ZXdheVxcXCI6bnVsbCxcXFwiaW9TZXJ2ZXJcXFwiOntcXFwibG9jYXRpb25cXFwiOlxcXCJzQkJCQi9cXFwiLFxcXCJob3N0XFxcIjpcXFwiYXBpLnRhbGtuLmlvXFxcIixcXFwicG9ydFxcXCI6NDQzfSxcXFwicmVkaXNcXFwiOntcXFwiY2xpZW50XFxcIjp7XFxcImhvc3RcXFwiOlxcXCJhcGkudGFsa24uaW9cXFwiLFxcXCJwb3J0XFxcIjo2Mzc5fSxcXFwiY2x1c3RlclxcXCI6W119LFxcXCJhY2NlcHRcXFwiOntcXFwicmFua0FsbFxcXCI6ZmFsc2V9LFxcXCJwYXlqcFxcXCI6e30sXFxcInNlcnZpY2VcXFwiOntcXFwidHlwZVxcXCI6XFxcImVjMlxcXCIsXFxcInBsYW5cXFwiOnt9fSxcXFwiY2hpbGRyZW5cXFwiOltdfV19XX1dfScpfSwyMDQ2OihlLHQpPT57XFxcInVzZSBzdHJpY3RcXFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFxcXCJfX2VzTW9kdWxlXFxcIix7dmFsdWU6ITB9KSx0LkVSUk9SX1BBQ0tFVD10LlBBQ0tFVF9UWVBFU19SRVZFUlNFPXQuUEFDS0VUX1RZUEVTPXZvaWQgMDtjb25zdCBuPU9iamVjdC5jcmVhdGUobnVsbCk7dC5QQUNLRVRfVFlQRVM9bixuLm9wZW49XFxcIjBcXFwiLG4uY2xvc2U9XFxcIjFcXFwiLG4ucGluZz1cXFwiMlxcXCIsbi5wb25nPVxcXCIzXFxcIixuLm1lc3NhZ2U9XFxcIjRcXFwiLG4udXBncmFkZT1cXFwiNVxcXCIsbi5ub29wPVxcXCI2XFxcIjtjb25zdCBzPU9iamVjdC5jcmVhdGUobnVsbCk7dC5QQUNLRVRfVFlQRVNfUkVWRVJTRT1zLE9iamVjdC5rZXlzKG4pLmZvckVhY2goZT0+e3NbbltlXV09ZX0pLHQuRVJST1JfUEFDS0VUPXt0eXBlOlxcXCJlcnJvclxcXCIsZGF0YTpcXFwicGFyc2VyIGVycm9yXFxcIn19LDI2NjI6KGUsdCxuKT0+e1xcXCJ1c2Ugc3RyaWN0XFxcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcXFwiX19lc01vZHVsZVxcXCIse3ZhbHVlOiEwfSksdC5kZWNvZGVQYWNrZXQ9dm9pZCAwO2NvbnN0IHM9bigyMDQ2KSxvPW4oMjc0NSkscj1cXFwiZnVuY3Rpb25cXFwiPT10eXBlb2YgQXJyYXlCdWZmZXI7dC5kZWNvZGVQYWNrZXQ9KGUsdCk9PntpZihcXFwic3RyaW5nXFxcIiE9dHlwZW9mIGUpcmV0dXJue3R5cGU6XFxcIm1lc3NhZ2VcXFwiLGRhdGE6YShlLHQpfTtjb25zdCBuPWUuY2hhckF0KDApO3JldHVyblxcXCJiXFxcIj09PW4/e3R5cGU6XFxcIm1lc3NhZ2VcXFwiLGRhdGE6aShlLnN1YnN0cmluZygxKSx0KX06cy5QQUNLRVRfVFlQRVNfUkVWRVJTRVtuXT9lLmxlbmd0aD4xP3t0eXBlOnMuUEFDS0VUX1RZUEVTX1JFVkVSU0Vbbl0sZGF0YTplLnN1YnN0cmluZygxKX06e3R5cGU6cy5QQUNLRVRfVFlQRVNfUkVWRVJTRVtuXX06cy5FUlJPUl9QQUNLRVR9O2NvbnN0IGk9KGUsdCk9PntpZihyKXtjb25zdCBuPSgwLG8uZGVjb2RlKShlKTtyZXR1cm4gYShuLHQpfXJldHVybntiYXNlNjQ6ITAsZGF0YTplfX0sYT0oZSx0KT0+XFxcImJsb2JcXFwiPT09dD9lIGluc3RhbmNlb2YgQmxvYj9lOm5ldyBCbG9iKFtlXSk6ZSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyP2U6ZS5idWZmZXJ9LDI2ODY6KGUsdCxuKT0+e1xcXCJ1c2Ugc3RyaWN0XFxcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcXFwiX19lc01vZHVsZVxcXCIse3ZhbHVlOiEwfSksdC5lbmNvZGVQYWNrZXQ9dm9pZCAwLHQuZW5jb2RlUGFja2V0VG9CaW5hcnk9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbyYmZS5kYXRhIGluc3RhbmNlb2YgQmxvYj9lLmRhdGEuYXJyYXlCdWZmZXIoKS50aGVuKGwpLnRoZW4odCk6ciYmKGUuZGF0YSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyfHxpKGUuZGF0YSkpP3QobChlLmRhdGEpKTp2b2lkIGEoZSwhMSxlPT57dXx8KHU9bmV3IFRleHRFbmNvZGVyKSx0KHUuZW5jb2RlKGUpKX0pfTtjb25zdCBzPW4oMjA0Niksbz1cXFwiZnVuY3Rpb25cXFwiPT10eXBlb2YgQmxvYnx8XFxcInVuZGVmaW5lZFxcXCIhPXR5cGVvZiBCbG9iJiZcXFwiW29iamVjdCBCbG9iQ29uc3RydWN0b3JdXFxcIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChCbG9iKSxyPVxcXCJmdW5jdGlvblxcXCI9PXR5cGVvZiBBcnJheUJ1ZmZlcixpPWU9PlxcXCJmdW5jdGlvblxcXCI9PXR5cGVvZiBBcnJheUJ1ZmZlci5pc1ZpZXc/QXJyYXlCdWZmZXIuaXNWaWV3KGUpOmUmJmUuYnVmZmVyIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIsYT0oe3R5cGU6ZSxkYXRhOnR9LG4sYSk9Pm8mJnQgaW5zdGFuY2VvZiBCbG9iP24/YSh0KTpjKHQsYSk6ciYmKHQgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcnx8aSh0KSk/bj9hKHQpOmMobmV3IEJsb2IoW3RdKSxhKTphKHMuUEFDS0VUX1RZUEVTW2VdKyh0fHxcXFwiXFxcIikpO3QuZW5jb2RlUGFja2V0PWE7Y29uc3QgYz0oZSx0KT0+e2NvbnN0IG49bmV3IEZpbGVSZWFkZXI7cmV0dXJuIG4ub25sb2FkPWZ1bmN0aW9uKCl7Y29uc3QgZT1uLnJlc3VsdC5zcGxpdChcXFwiLFxcXCIpWzFdO3QoXFxcImJcXFwiKyhlfHxcXFwiXFxcIikpfSxuLnJlYWRBc0RhdGFVUkwoZSl9O2Z1bmN0aW9uIGwoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBVaW50OEFycmF5P2U6ZSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyP25ldyBVaW50OEFycmF5KGUpOm5ldyBVaW50OEFycmF5KGUuYnVmZmVyLGUuYnl0ZU9mZnNldCxlLmJ5dGVMZW5ndGgpfWxldCB1fSwyNzQ1OihlLHQpPT57XFxcInVzZSBzdHJpY3RcXFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFxcXCJfX2VzTW9kdWxlXFxcIix7dmFsdWU6ITB9KSx0LmRlY29kZT10LmVuY29kZT12b2lkIDA7Y29uc3Qgbj1cXFwiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrL1xcXCIscz1cXFwidW5kZWZpbmVkXFxcIj09dHlwZW9mIFVpbnQ4QXJyYXk/W106bmV3IFVpbnQ4QXJyYXkoMjU2KTtmb3IobGV0IGU9MDtlPDY0O2UrKylzW24uY2hhckNvZGVBdChlKV09ZTt0LmVuY29kZT1lPT57bGV0IHQscz1uZXcgVWludDhBcnJheShlKSxvPXMubGVuZ3RoLHI9XFxcIlxcXCI7Zm9yKHQ9MDt0PG87dCs9MylyKz1uW3NbdF0+PjJdLHIrPW5bKDMmc1t0XSk8PDR8c1t0KzFdPj40XSxyKz1uWygxNSZzW3QrMV0pPDwyfHNbdCsyXT4+Nl0scis9bls2MyZzW3QrMl1dO3JldHVybiBvJTM9PTI/cj1yLnN1YnN0cmluZygwLHIubGVuZ3RoLTEpK1xcXCI9XFxcIjpvJTM9PTEmJihyPXIuc3Vic3RyaW5nKDAsci5sZW5ndGgtMikrXFxcIj09XFxcIikscn0sdC5kZWNvZGU9ZT0+e2xldCB0LG4sbyxyLGksYT0uNzUqZS5sZW5ndGgsYz1lLmxlbmd0aCxsPTA7XFxcIj1cXFwiPT09ZVtlLmxlbmd0aC0xXSYmKGEtLSxcXFwiPVxcXCI9PT1lW2UubGVuZ3RoLTJdJiZhLS0pO2NvbnN0IHU9bmV3IEFycmF5QnVmZmVyKGEpLGg9bmV3IFVpbnQ4QXJyYXkodSk7Zm9yKHQ9MDt0PGM7dCs9NCluPXNbZS5jaGFyQ29kZUF0KHQpXSxvPXNbZS5jaGFyQ29kZUF0KHQrMSldLHI9c1tlLmNoYXJDb2RlQXQodCsyKV0saT1zW2UuY2hhckNvZGVBdCh0KzMpXSxoW2wrK109bjw8MnxvPj40LGhbbCsrXT0oMTUmbyk8PDR8cj4+MixoW2wrK109KDMmcik8PDZ8NjMmaTtyZXR1cm4gdX19LDMwNjI6KCk9Pnt9LDM1MTk6KGUsdCxuKT0+e1xcXCJ1c2Ugc3RyaWN0XFxcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcXFwiX19lc01vZHVsZVxcXCIse3ZhbHVlOiEwfSksdC5jcmVhdGVDb29raWVKYXI9dC5YSFI9dm9pZCAwO2NvbnN0IHM9big0MTEwKSxvPW4oNjIzNSk7dC5YSFI9ZnVuY3Rpb24oZSl7Y29uc3QgdD1lLnhkb21haW47dHJ5e2lmKFxcXCJ1bmRlZmluZWRcXFwiIT10eXBlb2YgWE1MSHR0cFJlcXVlc3QmJighdHx8cy5oYXNDT1JTKSlyZXR1cm4gbmV3IFhNTEh0dHBSZXF1ZXN0fWNhdGNoKGUpe31pZighdCl0cnl7cmV0dXJuIG5ldyhvLmdsb2JhbFRoaXNTaGltW1tcXFwiQWN0aXZlXFxcIl0uY29uY2F0KFxcXCJPYmplY3RcXFwiKS5qb2luKFxcXCJYXFxcIildKShcXFwiTWljcm9zb2Z0LlhNTEhUVFBcXFwiKX1jYXRjaChlKXt9fSx0LmNyZWF0ZUNvb2tpZUphcj1mdW5jdGlvbigpe319LDM3NzY6ZnVuY3Rpb24oZSx0LG4pe1xcXCJ1c2Ugc3RyaWN0XFxcIjt2YXIgcz10aGlzJiZ0aGlzLl9fY3JlYXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oZSx0LG4scyl7dm9pZCAwPT09cyYmKHM9biksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUscyx7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdFtuXX19KX06ZnVuY3Rpb24oZSx0LG4scyl7dm9pZCAwPT09cyYmKHM9biksZVtzXT10W25dfSksbz10aGlzJiZ0aGlzLl9fc2V0TW9kdWxlRGVmYXVsdHx8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oZSx0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcXFwiZGVmYXVsdFxcXCIse2VudW1lcmFibGU6ITAsdmFsdWU6dH0pfTpmdW5jdGlvbihlLHQpe2UuZGVmYXVsdD10fSkscj10aGlzJiZ0aGlzLl9faW1wb3J0U3Rhcnx8ZnVuY3Rpb24oZSl7aWYoZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO3ZhciB0PXt9O2lmKG51bGwhPWUpZm9yKHZhciBuIGluIGUpXFxcImRlZmF1bHRcXFwiIT09biYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsbikmJnModCxlLG4pO3JldHVybiBvKHQsZSksdH0saT10aGlzJiZ0aGlzLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcXFwiX19lc01vZHVsZVxcXCIse3ZhbHVlOiEwfSksdC5NYW5hZ2VyPXZvaWQgMDtjb25zdCBhPW4oNDk1NiksYz1uKDYyMTQpLGw9cihuKDQ2MjcpKSx1PW4oNTk0MiksaD1uKDc3NDMpLHA9big0NDU0KSxkPWkobig5MzY4KSkuZGVmYXVsdChcXFwic29ja2V0LmlvLWNsaWVudDptYW5hZ2VyXFxcIik7Y2xhc3MgZiBleHRlbmRzIHAuRW1pdHRlcntjb25zdHJ1Y3RvcihlLHQpe3ZhciBuO3N1cGVyKCksdGhpcy5uc3BzPXt9LHRoaXMuc3Vicz1bXSxlJiZcXFwib2JqZWN0XFxcIj09dHlwZW9mIGUmJih0PWUsZT12b2lkIDApLCh0PXR8fHt9KS5wYXRoPXQucGF0aHx8XFxcIi9zb2NrZXQuaW9cXFwiLHRoaXMub3B0cz10LGEuaW5zdGFsbFRpbWVyRnVuY3Rpb25zKHRoaXMsdCksdGhpcy5yZWNvbm5lY3Rpb24oITEhPT10LnJlY29ubmVjdGlvbiksdGhpcy5yZWNvbm5lY3Rpb25BdHRlbXB0cyh0LnJlY29ubmVjdGlvbkF0dGVtcHRzfHwxLzApLHRoaXMucmVjb25uZWN0aW9uRGVsYXkodC5yZWNvbm5lY3Rpb25EZWxheXx8MWUzKSx0aGlzLnJlY29ubmVjdGlvbkRlbGF5TWF4KHQucmVjb25uZWN0aW9uRGVsYXlNYXh8fDVlMyksdGhpcy5yYW5kb21pemF0aW9uRmFjdG9yKG51bGwhPT0obj10LnJhbmRvbWl6YXRpb25GYWN0b3IpJiZ2b2lkIDAhPT1uP246LjUpLHRoaXMuYmFja29mZj1uZXcgaC5CYWNrb2ZmKHttaW46dGhpcy5yZWNvbm5lY3Rpb25EZWxheSgpLG1heDp0aGlzLnJlY29ubmVjdGlvbkRlbGF5TWF4KCksaml0dGVyOnRoaXMucmFuZG9taXphdGlvbkZhY3RvcigpfSksdGhpcy50aW1lb3V0KG51bGw9PXQudGltZW91dD8yZTQ6dC50aW1lb3V0KSx0aGlzLl9yZWFkeVN0YXRlPVxcXCJjbG9zZWRcXFwiLHRoaXMudXJpPWU7Y29uc3Qgcz10LnBhcnNlcnx8bDt0aGlzLmVuY29kZXI9bmV3IHMuRW5jb2Rlcix0aGlzLmRlY29kZXI9bmV3IHMuRGVjb2Rlcix0aGlzLl9hdXRvQ29ubmVjdD0hMSE9PXQuYXV0b0Nvbm5lY3QsdGhpcy5fYXV0b0Nvbm5lY3QmJnRoaXMub3BlbigpfXJlY29ubmVjdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odGhpcy5fcmVjb25uZWN0aW9uPSEhZSx0aGlzKTp0aGlzLl9yZWNvbm5lY3Rpb259cmVjb25uZWN0aW9uQXR0ZW1wdHMoZSl7cmV0dXJuIHZvaWQgMD09PWU/dGhpcy5fcmVjb25uZWN0aW9uQXR0ZW1wdHM6KHRoaXMuX3JlY29ubmVjdGlvbkF0dGVtcHRzPWUsdGhpcyl9cmVjb25uZWN0aW9uRGVsYXkoZSl7dmFyIHQ7cmV0dXJuIHZvaWQgMD09PWU/dGhpcy5fcmVjb25uZWN0aW9uRGVsYXk6KHRoaXMuX3JlY29ubmVjdGlvbkRlbGF5PWUsbnVsbD09PSh0PXRoaXMuYmFja29mZil8fHZvaWQgMD09PXR8fHQuc2V0TWluKGUpLHRoaXMpfXJhbmRvbWl6YXRpb25GYWN0b3IoZSl7dmFyIHQ7cmV0dXJuIHZvaWQgMD09PWU/dGhpcy5fcmFuZG9taXphdGlvbkZhY3RvcjoodGhpcy5fcmFuZG9taXphdGlvbkZhY3Rvcj1lLG51bGw9PT0odD10aGlzLmJhY2tvZmYpfHx2b2lkIDA9PT10fHx0LnNldEppdHRlcihlKSx0aGlzKX1yZWNvbm5lY3Rpb25EZWxheU1heChlKXt2YXIgdDtyZXR1cm4gdm9pZCAwPT09ZT90aGlzLl9yZWNvbm5lY3Rpb25EZWxheU1heDoodGhpcy5fcmVjb25uZWN0aW9uRGVsYXlNYXg9ZSxudWxsPT09KHQ9dGhpcy5iYWNrb2ZmKXx8dm9pZCAwPT09dHx8dC5zZXRNYXgoZSksdGhpcyl9dGltZW91dChlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odGhpcy5fdGltZW91dD1lLHRoaXMpOnRoaXMuX3RpbWVvdXR9bWF5YmVSZWNvbm5lY3RPbk9wZW4oKXshdGhpcy5fcmVjb25uZWN0aW5nJiZ0aGlzLl9yZWNvbm5lY3Rpb24mJjA9PT10aGlzLmJhY2tvZmYuYXR0ZW1wdHMmJnRoaXMucmVjb25uZWN0KCl9b3BlbihlKXtpZihkKFxcXCJyZWFkeVN0YXRlICVzXFxcIix0aGlzLl9yZWFkeVN0YXRlKSx+dGhpcy5fcmVhZHlTdGF0ZS5pbmRleE9mKFxcXCJvcGVuXFxcIikpcmV0dXJuIHRoaXM7ZChcXFwib3BlbmluZyAlc1xcXCIsdGhpcy51cmkpLHRoaXMuZW5naW5lPW5ldyBhLlNvY2tldCh0aGlzLnVyaSx0aGlzLm9wdHMpO2NvbnN0IHQ9dGhpcy5lbmdpbmUsbj10aGlzO3RoaXMuX3JlYWR5U3RhdGU9XFxcIm9wZW5pbmdcXFwiLHRoaXMuc2tpcFJlY29ubmVjdD0hMTtjb25zdCBzPXUub24odCxcXFwib3BlblxcXCIsZnVuY3Rpb24oKXtuLm9ub3BlbigpLGUmJmUoKX0pLG89dD0+e2QoXFxcImVycm9yXFxcIiksdGhpcy5jbGVhbnVwKCksdGhpcy5fcmVhZHlTdGF0ZT1cXFwiY2xvc2VkXFxcIix0aGlzLmVtaXRSZXNlcnZlZChcXFwiZXJyb3JcXFwiLHQpLGU/ZSh0KTp0aGlzLm1heWJlUmVjb25uZWN0T25PcGVuKCl9LHI9dS5vbih0LFxcXCJlcnJvclxcXCIsbyk7aWYoITEhPT10aGlzLl90aW1lb3V0KXtjb25zdCBlPXRoaXMuX3RpbWVvdXQ7ZChcXFwiY29ubmVjdCBhdHRlbXB0IHdpbGwgdGltZW91dCBhZnRlciAlZFxcXCIsZSk7Y29uc3Qgbj10aGlzLnNldFRpbWVvdXRGbigoKT0+e2QoXFxcImNvbm5lY3QgYXR0ZW1wdCB0aW1lZCBvdXQgYWZ0ZXIgJWRcXFwiLGUpLHMoKSxvKG5ldyBFcnJvcihcXFwidGltZW91dFxcXCIpKSx0LmNsb3NlKCl9LGUpO3RoaXMub3B0cy5hdXRvVW5yZWYmJm4udW5yZWYoKSx0aGlzLnN1YnMucHVzaCgoKT0+e3RoaXMuY2xlYXJUaW1lb3V0Rm4obil9KX1yZXR1cm4gdGhpcy5zdWJzLnB1c2gocyksdGhpcy5zdWJzLnB1c2gociksdGhpc31jb25uZWN0KGUpe3JldHVybiB0aGlzLm9wZW4oZSl9b25vcGVuKCl7ZChcXFwib3BlblxcXCIpLHRoaXMuY2xlYW51cCgpLHRoaXMuX3JlYWR5U3RhdGU9XFxcIm9wZW5cXFwiLHRoaXMuZW1pdFJlc2VydmVkKFxcXCJvcGVuXFxcIik7Y29uc3QgZT10aGlzLmVuZ2luZTt0aGlzLnN1YnMucHVzaCh1Lm9uKGUsXFxcInBpbmdcXFwiLHRoaXMub25waW5nLmJpbmQodGhpcykpLHUub24oZSxcXFwiZGF0YVxcXCIsdGhpcy5vbmRhdGEuYmluZCh0aGlzKSksdS5vbihlLFxcXCJlcnJvclxcXCIsdGhpcy5vbmVycm9yLmJpbmQodGhpcykpLHUub24oZSxcXFwiY2xvc2VcXFwiLHRoaXMub25jbG9zZS5iaW5kKHRoaXMpKSx1Lm9uKHRoaXMuZGVjb2RlcixcXFwiZGVjb2RlZFxcXCIsdGhpcy5vbmRlY29kZWQuYmluZCh0aGlzKSkpfW9ucGluZygpe3RoaXMuZW1pdFJlc2VydmVkKFxcXCJwaW5nXFxcIil9b25kYXRhKGUpe3RyeXt0aGlzLmRlY29kZXIuYWRkKGUpfWNhdGNoKGUpe3RoaXMub25jbG9zZShcXFwicGFyc2UgZXJyb3JcXFwiLGUpfX1vbmRlY29kZWQoZSl7YS5uZXh0VGljaygoKT0+e3RoaXMuZW1pdFJlc2VydmVkKFxcXCJwYWNrZXRcXFwiLGUpfSx0aGlzLnNldFRpbWVvdXRGbil9b25lcnJvcihlKXtkKFxcXCJlcnJvclxcXCIsZSksdGhpcy5lbWl0UmVzZXJ2ZWQoXFxcImVycm9yXFxcIixlKX1zb2NrZXQoZSx0KXtsZXQgbj10aGlzLm5zcHNbZV07cmV0dXJuIG4/dGhpcy5fYXV0b0Nvbm5lY3QmJiFuLmFjdGl2ZSYmbi5jb25uZWN0KCk6KG49bmV3IGMuU29ja2V0KHRoaXMsZSx0KSx0aGlzLm5zcHNbZV09biksbn1fZGVzdHJveShlKXtjb25zdCB0PU9iamVjdC5rZXlzKHRoaXMubnNwcyk7Zm9yKGNvbnN0IGUgb2YgdClpZih0aGlzLm5zcHNbZV0uYWN0aXZlKXJldHVybiB2b2lkIGQoXFxcInNvY2tldCAlcyBpcyBzdGlsbCBhY3RpdmUsIHNraXBwaW5nIGNsb3NlXFxcIixlKTt0aGlzLl9jbG9zZSgpfV9wYWNrZXQoZSl7ZChcXFwid3JpdGluZyBwYWNrZXQgJWpcXFwiLGUpO2NvbnN0IHQ9dGhpcy5lbmNvZGVyLmVuY29kZShlKTtmb3IobGV0IG49MDtuPHQubGVuZ3RoO24rKyl0aGlzLmVuZ2luZS53cml0ZSh0W25dLGUub3B0aW9ucyl9Y2xlYW51cCgpe2QoXFxcImNsZWFudXBcXFwiKSx0aGlzLnN1YnMuZm9yRWFjaChlPT5lKCkpLHRoaXMuc3Vicy5sZW5ndGg9MCx0aGlzLmRlY29kZXIuZGVzdHJveSgpfV9jbG9zZSgpe2QoXFxcImRpc2Nvbm5lY3RcXFwiKSx0aGlzLnNraXBSZWNvbm5lY3Q9ITAsdGhpcy5fcmVjb25uZWN0aW5nPSExLHRoaXMub25jbG9zZShcXFwiZm9yY2VkIGNsb3NlXFxcIiksdGhpcy5lbmdpbmUmJnRoaXMuZW5naW5lLmNsb3NlKCl9ZGlzY29ubmVjdCgpe3JldHVybiB0aGlzLl9jbG9zZSgpfW9uY2xvc2UoZSx0KXtkKFxcXCJjbG9zZWQgZHVlIHRvICVzXFxcIixlKSx0aGlzLmNsZWFudXAoKSx0aGlzLmJhY2tvZmYucmVzZXQoKSx0aGlzLl9yZWFkeVN0YXRlPVxcXCJjbG9zZWRcXFwiLHRoaXMuZW1pdFJlc2VydmVkKFxcXCJjbG9zZVxcXCIsZSx0KSx0aGlzLl9yZWNvbm5lY3Rpb24mJiF0aGlzLnNraXBSZWNvbm5lY3QmJnRoaXMucmVjb25uZWN0KCl9cmVjb25uZWN0KCl7aWYodGhpcy5fcmVjb25uZWN0aW5nfHx0aGlzLnNraXBSZWNvbm5lY3QpcmV0dXJuIHRoaXM7Y29uc3QgZT10aGlzO2lmKHRoaXMuYmFja29mZi5hdHRlbXB0cz49dGhpcy5fcmVjb25uZWN0aW9uQXR0ZW1wdHMpZChcXFwicmVjb25uZWN0IGZhaWxlZFxcXCIpLHRoaXMuYmFja29mZi5yZXNldCgpLHRoaXMuZW1pdFJlc2VydmVkKFxcXCJyZWNvbm5lY3RfZmFpbGVkXFxcIiksdGhpcy5fcmVjb25uZWN0aW5nPSExO2Vsc2V7Y29uc3QgdD10aGlzLmJhY2tvZmYuZHVyYXRpb24oKTtkKFxcXCJ3aWxsIHdhaXQgJWRtcyBiZWZvcmUgcmVjb25uZWN0IGF0dGVtcHRcXFwiLHQpLHRoaXMuX3JlY29ubmVjdGluZz0hMDtjb25zdCBuPXRoaXMuc2V0VGltZW91dEZuKCgpPT57ZS5za2lwUmVjb25uZWN0fHwoZChcXFwiYXR0ZW1wdGluZyByZWNvbm5lY3RcXFwiKSx0aGlzLmVtaXRSZXNlcnZlZChcXFwicmVjb25uZWN0X2F0dGVtcHRcXFwiLGUuYmFja29mZi5hdHRlbXB0cyksZS5za2lwUmVjb25uZWN0fHxlLm9wZW4odD0+e3Q/KGQoXFxcInJlY29ubmVjdCBhdHRlbXB0IGVycm9yXFxcIiksZS5fcmVjb25uZWN0aW5nPSExLGUucmVjb25uZWN0KCksdGhpcy5lbWl0UmVzZXJ2ZWQoXFxcInJlY29ubmVjdF9lcnJvclxcXCIsdCkpOihkKFxcXCJyZWNvbm5lY3Qgc3VjY2Vzc1xcXCIpLGUub25yZWNvbm5lY3QoKSl9KSl9LHQpO3RoaXMub3B0cy5hdXRvVW5yZWYmJm4udW5yZWYoKSx0aGlzLnN1YnMucHVzaCgoKT0+e3RoaXMuY2xlYXJUaW1lb3V0Rm4obil9KX19b25yZWNvbm5lY3QoKXtjb25zdCBlPXRoaXMuYmFja29mZi5hdHRlbXB0czt0aGlzLl9yZWNvbm5lY3Rpbmc9ITEsdGhpcy5iYWNrb2ZmLnJlc2V0KCksdGhpcy5lbWl0UmVzZXJ2ZWQoXFxcInJlY29ubmVjdFxcXCIsZSl9fXQuTWFuYWdlcj1mfSwzOTk1OihlLHQsbik9PntlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChlKXtsZXQgbixvLHIsaT1udWxsO2Z1bmN0aW9uIGEoLi4uZSl7aWYoIWEuZW5hYmxlZClyZXR1cm47Y29uc3Qgcz1hLG89TnVtYmVyKG5ldyBEYXRlKSxyPW8tKG58fG8pO3MuZGlmZj1yLHMucHJldj1uLHMuY3Vycj1vLG49byxlWzBdPXQuY29lcmNlKGVbMF0pLFxcXCJzdHJpbmdcXFwiIT10eXBlb2YgZVswXSYmZS51bnNoaWZ0KFxcXCIlT1xcXCIpO2xldCBpPTA7ZVswXT1lWzBdLnJlcGxhY2UoLyUoW2EtekEtWiVdKS9nLChuLG8pPT57aWYoXFxcIiUlXFxcIj09PW4pcmV0dXJuXFxcIiVcXFwiO2krKztjb25zdCByPXQuZm9ybWF0dGVyc1tvXTtpZihcXFwiZnVuY3Rpb25cXFwiPT10eXBlb2Ygcil7Y29uc3QgdD1lW2ldO249ci5jYWxsKHMsdCksZS5zcGxpY2UoaSwxKSxpLS19cmV0dXJuIG59KSx0LmZvcm1hdEFyZ3MuY2FsbChzLGUpLChzLmxvZ3x8dC5sb2cpLmFwcGx5KHMsZSl9cmV0dXJuIGEubmFtZXNwYWNlPWUsYS51c2VDb2xvcnM9dC51c2VDb2xvcnMoKSxhLmNvbG9yPXQuc2VsZWN0Q29sb3IoZSksYS5leHRlbmQ9cyxhLmRlc3Ryb3k9dC5kZXN0cm95LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFxcXCJlbmFibGVkXFxcIix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITEsZ2V0OigpPT5udWxsIT09aT9pOihvIT09dC5uYW1lc3BhY2VzJiYobz10Lm5hbWVzcGFjZXMscj10LmVuYWJsZWQoZSkpLHIpLHNldDplPT57aT1lfX0pLFxcXCJmdW5jdGlvblxcXCI9PXR5cGVvZiB0LmluaXQmJnQuaW5pdChhKSxhfWZ1bmN0aW9uIHMoZSxuKXtjb25zdCBzPXQodGhpcy5uYW1lc3BhY2UrKHZvaWQgMD09PW4/XFxcIjpcXFwiOm4pK2UpO3JldHVybiBzLmxvZz10aGlzLmxvZyxzfWZ1bmN0aW9uIG8oZSl7cmV0dXJuIGUudG9TdHJpbmcoKS5zdWJzdHJpbmcoMixlLnRvU3RyaW5nKCkubGVuZ3RoLTIpLnJlcGxhY2UoL1xcXFwuXFxcXCpcXFxcPyQvLFxcXCIqXFxcIil9cmV0dXJuIHQuZGVidWc9dCx0LmRlZmF1bHQ9dCx0LmNvZXJjZT1mdW5jdGlvbihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIEVycm9yP2Uuc3RhY2t8fGUubWVzc2FnZTplfSx0LmRpc2FibGU9ZnVuY3Rpb24oKXtjb25zdCBlPVsuLi50Lm5hbWVzLm1hcChvKSwuLi50LnNraXBzLm1hcChvKS5tYXAoZT0+XFxcIi1cXFwiK2UpXS5qb2luKFxcXCIsXFxcIik7cmV0dXJuIHQuZW5hYmxlKFxcXCJcXFwiKSxlfSx0LmVuYWJsZT1mdW5jdGlvbihlKXtsZXQgbjt0LnNhdmUoZSksdC5uYW1lc3BhY2VzPWUsdC5uYW1lcz1bXSx0LnNraXBzPVtdO2NvbnN0IHM9KFxcXCJzdHJpbmdcXFwiPT10eXBlb2YgZT9lOlxcXCJcXFwiKS5zcGxpdCgvW1xcXFxzLF0rLyksbz1zLmxlbmd0aDtmb3Iobj0wO248bztuKyspc1tuXSYmKFxcXCItXFxcIj09PShlPXNbbl0ucmVwbGFjZSgvXFxcXCovZyxcXFwiLio/XFxcIikpWzBdP3Quc2tpcHMucHVzaChuZXcgUmVnRXhwKFxcXCJeXFxcIitlLnNsaWNlKDEpK1xcXCIkXFxcIikpOnQubmFtZXMucHVzaChuZXcgUmVnRXhwKFxcXCJeXFxcIitlK1xcXCIkXFxcIikpKX0sdC5lbmFibGVkPWZ1bmN0aW9uKGUpe2lmKFxcXCIqXFxcIj09PWVbZS5sZW5ndGgtMV0pcmV0dXJuITA7bGV0IG4scztmb3Iobj0wLHM9dC5za2lwcy5sZW5ndGg7bjxzO24rKylpZih0LnNraXBzW25dLnRlc3QoZSkpcmV0dXJuITE7Zm9yKG49MCxzPXQubmFtZXMubGVuZ3RoO248cztuKyspaWYodC5uYW1lc1tuXS50ZXN0KGUpKXJldHVybiEwO3JldHVybiExfSx0Lmh1bWFuaXplPW4oNjU4NSksdC5kZXN0cm95PWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKFxcXCJJbnN0YW5jZSBtZXRob2QgYGRlYnVnLmRlc3Ryb3koKWAgaXMgZGVwcmVjYXRlZCBhbmQgbm8gbG9uZ2VyIGRvZXMgYW55dGhpbmcuIEl0IHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIG9mIGBkZWJ1Z2AuXFxcIil9LE9iamVjdC5rZXlzKGUpLmZvckVhY2gobj0+e3Rbbl09ZVtuXX0pLHQubmFtZXM9W10sdC5za2lwcz1bXSx0LmZvcm1hdHRlcnM9e30sdC5zZWxlY3RDb2xvcj1mdW5jdGlvbihlKXtsZXQgbj0wO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKW49KG48PDUpLW4rZS5jaGFyQ29kZUF0KHQpLG58PTA7cmV0dXJuIHQuY29sb3JzW01hdGguYWJzKG4pJXQuY29sb3JzLmxlbmd0aF19LHQuZW5hYmxlKHQubG9hZCgpKSx0fX0sNDA4NzooZSx0LG4pPT57XFxcInVzZSBzdHJpY3RcXFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFxcXCJfX2VzTW9kdWxlXFxcIix7dmFsdWU6ITB9KSx0LmRlZmF1bHRCaW5hcnlUeXBlPXQudXNpbmdCcm93c2VyV2ViU29ja2V0PXQuV2ViU29ja2V0PXQubmV4dFRpY2s9dm9pZCAwO2NvbnN0IHM9big2MjM1KTt0Lm5leHRUaWNrPVxcXCJmdW5jdGlvblxcXCI9PXR5cGVvZiBQcm9taXNlJiZcXFwiZnVuY3Rpb25cXFwiPT10eXBlb2YgUHJvbWlzZS5yZXNvbHZlP2U9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oZSk6KGUsdCk9PnQoZSwwKSx0LldlYlNvY2tldD1zLmdsb2JhbFRoaXNTaGltLldlYlNvY2tldHx8cy5nbG9iYWxUaGlzU2hpbS5Nb3pXZWJTb2NrZXQsdC51c2luZ0Jyb3dzZXJXZWJTb2NrZXQ9ITAsdC5kZWZhdWx0QmluYXJ5VHlwZT1cXFwiYXJyYXlidWZmZXJcXFwifSw0MTEwOihlLHQpPT57XFxcInVzZSBzdHJpY3RcXFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFxcXCJfX2VzTW9kdWxlXFxcIix7dmFsdWU6ITB9KSx0Lmhhc0NPUlM9dm9pZCAwO2xldCBuPSExO3RyeXtuPVxcXCJ1bmRlZmluZWRcXFwiIT10eXBlb2YgWE1MSHR0cFJlcXVlc3QmJlxcXCJ3aXRoQ3JlZGVudGlhbHNcXFwiaW4gbmV3IFhNTEh0dHBSZXF1ZXN0fWNhdGNoKGUpe310Lmhhc0NPUlM9bn0sNDQ1NDooZSx0LG4pPT57XFxcInVzZSBzdHJpY3RcXFwiO2Z1bmN0aW9uIHMoZSl7aWYoZSlyZXR1cm4gZnVuY3Rpb24oZSl7Zm9yKHZhciB0IGluIHMucHJvdG90eXBlKWVbdF09cy5wcm90b3R5cGVbdF07cmV0dXJuIGV9KGUpfW4ucih0KSxuLmQodCx7RW1pdHRlcjooKT0+c30pLHMucHJvdG90eXBlLm9uPXMucHJvdG90eXBlLmFkZEV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fY2FsbGJhY2tzPXRoaXMuX2NhbGxiYWNrc3x8e30sKHRoaXMuX2NhbGxiYWNrc1tcXFwiJFxcXCIrZV09dGhpcy5fY2FsbGJhY2tzW1xcXCIkXFxcIitlXXx8W10pLnB1c2godCksdGhpc30scy5wcm90b3R5cGUub25jZT1mdW5jdGlvbihlLHQpe2Z1bmN0aW9uIG4oKXt0aGlzLm9mZihlLG4pLHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBuLmZuPXQsdGhpcy5vbihlLG4pLHRoaXN9LHMucHJvdG90eXBlLm9mZj1zLnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lcj1zLnByb3RvdHlwZS5yZW1vdmVBbGxMaXN0ZW5lcnM9cy5wcm90b3R5cGUucmVtb3ZlRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihlLHQpe2lmKHRoaXMuX2NhbGxiYWNrcz10aGlzLl9jYWxsYmFja3N8fHt9LDA9PWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHRoaXMuX2NhbGxiYWNrcz17fSx0aGlzO3ZhciBuLHM9dGhpcy5fY2FsbGJhY2tzW1xcXCIkXFxcIitlXTtpZighcylyZXR1cm4gdGhpcztpZigxPT1hcmd1bWVudHMubGVuZ3RoKXJldHVybiBkZWxldGUgdGhpcy5fY2FsbGJhY2tzW1xcXCIkXFxcIitlXSx0aGlzO2Zvcih2YXIgbz0wO288cy5sZW5ndGg7bysrKWlmKChuPXNbb10pPT09dHx8bi5mbj09PXQpe3Muc3BsaWNlKG8sMSk7YnJlYWt9cmV0dXJuIDA9PT1zLmxlbmd0aCYmZGVsZXRlIHRoaXMuX2NhbGxiYWNrc1tcXFwiJFxcXCIrZV0sdGhpc30scy5wcm90b3R5cGUuZW1pdD1mdW5jdGlvbihlKXt0aGlzLl9jYWxsYmFja3M9dGhpcy5fY2FsbGJhY2tzfHx7fTtmb3IodmFyIHQ9bmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgtMSksbj10aGlzLl9jYWxsYmFja3NbXFxcIiRcXFwiK2VdLHM9MTtzPGFyZ3VtZW50cy5sZW5ndGg7cysrKXRbcy0xXT1hcmd1bWVudHNbc107aWYobil7cz0wO2Zvcih2YXIgbz0obj1uLnNsaWNlKDApKS5sZW5ndGg7czxvOysrcyluW3NdLmFwcGx5KHRoaXMsdCl9cmV0dXJuIHRoaXN9LHMucHJvdG90eXBlLmVtaXRSZXNlcnZlZD1zLnByb3RvdHlwZS5lbWl0LHMucHJvdG90eXBlLmxpc3RlbmVycz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fY2FsbGJhY2tzPXRoaXMuX2NhbGxiYWNrc3x8e30sdGhpcy5fY2FsbGJhY2tzW1xcXCIkXFxcIitlXXx8W119LHMucHJvdG90eXBlLmhhc0xpc3RlbmVycz1mdW5jdGlvbihlKXtyZXR1cm4hIXRoaXMubGlzdGVuZXJzKGUpLmxlbmd0aH19LDQ0ODA6ZnVuY3Rpb24oZSx0LG4pe1xcXCJ1c2Ugc3RyaWN0XFxcIjt2YXIgcz10aGlzJiZ0aGlzLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcXFwiX19lc01vZHVsZVxcXCIse3ZhbHVlOiEwfSksdC5XVD12b2lkIDA7Y29uc3Qgbz1uKDQ2ODkpLHI9big0MDg3KSxpPW4oNjM3NiksYT0oMCxzKG4oNjYxNykpLmRlZmF1bHQpKFxcXCJlbmdpbmUuaW8tY2xpZW50OndlYnRyYW5zcG9ydFxcXCIpO2NsYXNzIGMgZXh0ZW5kcyBvLlRyYW5zcG9ydHtnZXQgbmFtZSgpe3JldHVyblxcXCJ3ZWJ0cmFuc3BvcnRcXFwifWRvT3Blbigpe1xcXCJmdW5jdGlvblxcXCI9PXR5cGVvZiBXZWJUcmFuc3BvcnQmJih0aGlzLnRyYW5zcG9ydD1uZXcgV2ViVHJhbnNwb3J0KHRoaXMuY3JlYXRlVXJpKFxcXCJodHRwc1xcXCIpLHRoaXMub3B0cy50cmFuc3BvcnRPcHRpb25zW3RoaXMubmFtZV0pLHRoaXMudHJhbnNwb3J0LmNsb3NlZC50aGVuKCgpPT57YShcXFwidHJhbnNwb3J0IGNsb3NlZCBncmFjZWZ1bGx5XFxcIiksdGhpcy5vbkNsb3NlKCl9KS5jYXRjaChlPT57YShcXFwidHJhbnNwb3J0IGNsb3NlZCBkdWUgdG8gJXNcXFwiLGUpLHRoaXMub25FcnJvcihcXFwid2VidHJhbnNwb3J0IGVycm9yXFxcIixlKX0pLHRoaXMudHJhbnNwb3J0LnJlYWR5LnRoZW4oKCk9Pnt0aGlzLnRyYW5zcG9ydC5jcmVhdGVCaWRpcmVjdGlvbmFsU3RyZWFtKCkudGhlbihlPT57Y29uc3QgdD0oMCxpLmNyZWF0ZVBhY2tldERlY29kZXJTdHJlYW0pKE51bWJlci5NQVhfU0FGRV9JTlRFR0VSLHRoaXMuc29ja2V0LmJpbmFyeVR5cGUpLG49ZS5yZWFkYWJsZS5waXBlVGhyb3VnaCh0KS5nZXRSZWFkZXIoKSxzPSgwLGkuY3JlYXRlUGFja2V0RW5jb2RlclN0cmVhbSkoKTtzLnJlYWRhYmxlLnBpcGVUbyhlLndyaXRhYmxlKSx0aGlzLndyaXRlcj1zLndyaXRhYmxlLmdldFdyaXRlcigpO2NvbnN0IG89KCk9PntuLnJlYWQoKS50aGVuKCh7ZG9uZTplLHZhbHVlOnR9KT0+e2U/YShcXFwic2Vzc2lvbiBpcyBjbG9zZWRcXFwiKTooYShcXFwicmVjZWl2ZWQgY2h1bms6ICVvXFxcIix0KSx0aGlzLm9uUGFja2V0KHQpLG8oKSl9KS5jYXRjaChlPT57YShcXFwiYW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgcmVhZGluZzogJXNcXFwiLGUpfSl9O28oKTtjb25zdCByPXt0eXBlOlxcXCJvcGVuXFxcIn07dGhpcy5xdWVyeS5zaWQmJihyLmRhdGE9YHtcXFwic2lkXFxcIjpcXFwiJHt0aGlzLnF1ZXJ5LnNpZH1cXFwifWApLHRoaXMud3JpdGVyLndyaXRlKHIpLnRoZW4oKCk9PnRoaXMub25PcGVuKCkpfSl9KSl9d3JpdGUoZSl7dGhpcy53cml0YWJsZT0hMTtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKyl7Y29uc3Qgbj1lW3RdLHM9dD09PWUubGVuZ3RoLTE7dGhpcy53cml0ZXIud3JpdGUobikudGhlbigoKT0+e3MmJigwLHIubmV4dFRpY2spKCgpPT57dGhpcy53cml0YWJsZT0hMCx0aGlzLmVtaXRSZXNlcnZlZChcXFwiZHJhaW5cXFwiKX0sdGhpcy5zZXRUaW1lb3V0Rm4pfSl9fWRvQ2xvc2UoKXt2YXIgZTtudWxsPT09KGU9dGhpcy50cmFuc3BvcnQpfHx2b2lkIDA9PT1lfHxlLmNsb3NlKCl9fXQuV1Q9Y30sNDYyNzooZSx0LG4pPT57XFxcInVzZSBzdHJpY3RcXFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFxcXCJfX2VzTW9kdWxlXFxcIix7dmFsdWU6ITB9KSx0LkRlY29kZXI9dC5FbmNvZGVyPXQuUGFja2V0VHlwZT10LnByb3RvY29sPXZvaWQgMDtjb25zdCBzPW4oNDQ1NCksbz1uKDQ5MjYpLHI9big5MTMzKSxpPSgwLG4oODUyKS5kZWZhdWx0KShcXFwic29ja2V0LmlvLXBhcnNlclxcXCIpLGE9W1xcXCJjb25uZWN0XFxcIixcXFwiY29ubmVjdF9lcnJvclxcXCIsXFxcImRpc2Nvbm5lY3RcXFwiLFxcXCJkaXNjb25uZWN0aW5nXFxcIixcXFwibmV3TGlzdGVuZXJcXFwiLFxcXCJyZW1vdmVMaXN0ZW5lclxcXCJdO3ZhciBjO2Z1bmN0aW9uIGwoZSl7cmV0dXJuXFxcIltvYmplY3QgT2JqZWN0XVxcXCI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSl9dC5wcm90b2NvbD01LGZ1bmN0aW9uKGUpe2VbZS5DT05ORUNUPTBdPVxcXCJDT05ORUNUXFxcIixlW2UuRElTQ09OTkVDVD0xXT1cXFwiRElTQ09OTkVDVFxcXCIsZVtlLkVWRU5UPTJdPVxcXCJFVkVOVFxcXCIsZVtlLkFDSz0zXT1cXFwiQUNLXFxcIixlW2UuQ09OTkVDVF9FUlJPUj00XT1cXFwiQ09OTkVDVF9FUlJPUlxcXCIsZVtlLkJJTkFSWV9FVkVOVD01XT1cXFwiQklOQVJZX0VWRU5UXFxcIixlW2UuQklOQVJZX0FDSz02XT1cXFwiQklOQVJZX0FDS1xcXCJ9KGM9dC5QYWNrZXRUeXBlfHwodC5QYWNrZXRUeXBlPXt9KSksdC5FbmNvZGVyPWNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMucmVwbGFjZXI9ZX1lbmNvZGUoZSl7cmV0dXJuIGkoXFxcImVuY29kaW5nIHBhY2tldCAlalxcXCIsZSksZS50eXBlIT09Yy5FVkVOVCYmZS50eXBlIT09Yy5BQ0t8fCEoMCxyLmhhc0JpbmFyeSkoZSk/W3RoaXMuZW5jb2RlQXNTdHJpbmcoZSldOnRoaXMuZW5jb2RlQXNCaW5hcnkoe3R5cGU6ZS50eXBlPT09Yy5FVkVOVD9jLkJJTkFSWV9FVkVOVDpjLkJJTkFSWV9BQ0ssbnNwOmUubnNwLGRhdGE6ZS5kYXRhLGlkOmUuaWR9KX1lbmNvZGVBc1N0cmluZyhlKXtsZXQgdD1cXFwiXFxcIitlLnR5cGU7cmV0dXJuIGUudHlwZSE9PWMuQklOQVJZX0VWRU5UJiZlLnR5cGUhPT1jLkJJTkFSWV9BQ0t8fCh0Kz1lLmF0dGFjaG1lbnRzK1xcXCItXFxcIiksZS5uc3AmJlxcXCIvXFxcIiE9PWUubnNwJiYodCs9ZS5uc3ArXFxcIixcXFwiKSxudWxsIT1lLmlkJiYodCs9ZS5pZCksbnVsbCE9ZS5kYXRhJiYodCs9SlNPTi5zdHJpbmdpZnkoZS5kYXRhLHRoaXMucmVwbGFjZXIpKSxpKFxcXCJlbmNvZGVkICVqIGFzICVzXFxcIixlLHQpLHR9ZW5jb2RlQXNCaW5hcnkoZSl7Y29uc3QgdD0oMCxvLmRlY29uc3RydWN0UGFja2V0KShlKSxuPXRoaXMuZW5jb2RlQXNTdHJpbmcodC5wYWNrZXQpLHM9dC5idWZmZXJzO3JldHVybiBzLnVuc2hpZnQobiksc319O2NsYXNzIHUgZXh0ZW5kcyBzLkVtaXR0ZXJ7Y29uc3RydWN0b3IoZSl7c3VwZXIoKSx0aGlzLnJldml2ZXI9ZX1hZGQoZSl7bGV0IHQ7aWYoXFxcInN0cmluZ1xcXCI9PXR5cGVvZiBlKXtpZih0aGlzLnJlY29uc3RydWN0b3IpdGhyb3cgbmV3IEVycm9yKFxcXCJnb3QgcGxhaW50ZXh0IGRhdGEgd2hlbiByZWNvbnN0cnVjdGluZyBhIHBhY2tldFxcXCIpO3Q9dGhpcy5kZWNvZGVTdHJpbmcoZSk7Y29uc3Qgbj10LnR5cGU9PT1jLkJJTkFSWV9FVkVOVDtufHx0LnR5cGU9PT1jLkJJTkFSWV9BQ0s/KHQudHlwZT1uP2MuRVZFTlQ6Yy5BQ0ssdGhpcy5yZWNvbnN0cnVjdG9yPW5ldyBoKHQpLDA9PT10LmF0dGFjaG1lbnRzJiZzdXBlci5lbWl0UmVzZXJ2ZWQoXFxcImRlY29kZWRcXFwiLHQpKTpzdXBlci5lbWl0UmVzZXJ2ZWQoXFxcImRlY29kZWRcXFwiLHQpfWVsc2V7aWYoISgwLHIuaXNCaW5hcnkpKGUpJiYhZS5iYXNlNjQpdGhyb3cgbmV3IEVycm9yKFxcXCJVbmtub3duIHR5cGU6IFxcXCIrZSk7aWYoIXRoaXMucmVjb25zdHJ1Y3Rvcil0aHJvdyBuZXcgRXJyb3IoXFxcImdvdCBiaW5hcnkgZGF0YSB3aGVuIG5vdCByZWNvbnN0cnVjdGluZyBhIHBhY2tldFxcXCIpO3Q9dGhpcy5yZWNvbnN0cnVjdG9yLnRha2VCaW5hcnlEYXRhKGUpLHQmJih0aGlzLnJlY29uc3RydWN0b3I9bnVsbCxzdXBlci5lbWl0UmVzZXJ2ZWQoXFxcImRlY29kZWRcXFwiLHQpKX19ZGVjb2RlU3RyaW5nKGUpe2xldCB0PTA7Y29uc3Qgbj17dHlwZTpOdW1iZXIoZS5jaGFyQXQoMCkpfTtpZih2b2lkIDA9PT1jW24udHlwZV0pdGhyb3cgbmV3IEVycm9yKFxcXCJ1bmtub3duIHBhY2tldCB0eXBlIFxcXCIrbi50eXBlKTtpZihuLnR5cGU9PT1jLkJJTkFSWV9FVkVOVHx8bi50eXBlPT09Yy5CSU5BUllfQUNLKXtjb25zdCBzPXQrMTtmb3IoO1xcXCItXFxcIiE9PWUuY2hhckF0KCsrdCkmJnQhPWUubGVuZ3RoOyk7Y29uc3Qgbz1lLnN1YnN0cmluZyhzLHQpO2lmKG8hPU51bWJlcihvKXx8XFxcIi1cXFwiIT09ZS5jaGFyQXQodCkpdGhyb3cgbmV3IEVycm9yKFxcXCJJbGxlZ2FsIGF0dGFjaG1lbnRzXFxcIik7bi5hdHRhY2htZW50cz1OdW1iZXIobyl9aWYoXFxcIi9cXFwiPT09ZS5jaGFyQXQodCsxKSl7Y29uc3Qgcz10KzE7Zm9yKDsrK3QmJlxcXCIsXFxcIiE9PWUuY2hhckF0KHQpJiZ0IT09ZS5sZW5ndGg7KTtuLm5zcD1lLnN1YnN0cmluZyhzLHQpfWVsc2Ugbi5uc3A9XFxcIi9cXFwiO2NvbnN0IHM9ZS5jaGFyQXQodCsxKTtpZihcXFwiXFxcIiE9PXMmJk51bWJlcihzKT09cyl7Y29uc3Qgcz10KzE7Zm9yKDsrK3Q7KXtjb25zdCBuPWUuY2hhckF0KHQpO2lmKG51bGw9PW58fE51bWJlcihuKSE9bil7LS10O2JyZWFrfWlmKHQ9PT1lLmxlbmd0aClicmVha31uLmlkPU51bWJlcihlLnN1YnN0cmluZyhzLHQrMSkpfWlmKGUuY2hhckF0KCsrdCkpe2NvbnN0IHM9dGhpcy50cnlQYXJzZShlLnN1YnN0cih0KSk7aWYoIXUuaXNQYXlsb2FkVmFsaWQobi50eXBlLHMpKXRocm93IG5ldyBFcnJvcihcXFwiaW52YWxpZCBwYXlsb2FkXFxcIik7bi5kYXRhPXN9cmV0dXJuIGkoXFxcImRlY29kZWQgJXMgYXMgJWpcXFwiLGUsbiksbn10cnlQYXJzZShlKXt0cnl7cmV0dXJuIEpTT04ucGFyc2UoZSx0aGlzLnJldml2ZXIpfWNhdGNoKGUpe3JldHVybiExfX1zdGF0aWMgaXNQYXlsb2FkVmFsaWQoZSx0KXtzd2l0Y2goZSl7Y2FzZSBjLkNPTk5FQ1Q6cmV0dXJuIGwodCk7Y2FzZSBjLkRJU0NPTk5FQ1Q6cmV0dXJuIHZvaWQgMD09PXQ7Y2FzZSBjLkNPTk5FQ1RfRVJST1I6cmV0dXJuXFxcInN0cmluZ1xcXCI9PXR5cGVvZiB0fHxsKHQpO2Nhc2UgYy5FVkVOVDpjYXNlIGMuQklOQVJZX0VWRU5UOnJldHVybiBBcnJheS5pc0FycmF5KHQpJiYoXFxcIm51bWJlclxcXCI9PXR5cGVvZiB0WzBdfHxcXFwic3RyaW5nXFxcIj09dHlwZW9mIHRbMF0mJi0xPT09YS5pbmRleE9mKHRbMF0pKTtjYXNlIGMuQUNLOmNhc2UgYy5CSU5BUllfQUNLOnJldHVybiBBcnJheS5pc0FycmF5KHQpfX1kZXN0cm95KCl7dGhpcy5yZWNvbnN0cnVjdG9yJiYodGhpcy5yZWNvbnN0cnVjdG9yLmZpbmlzaGVkUmVjb25zdHJ1Y3Rpb24oKSx0aGlzLnJlY29uc3RydWN0b3I9bnVsbCl9fXQuRGVjb2Rlcj11O2NsYXNzIGh7Y29uc3RydWN0b3IoZSl7dGhpcy5wYWNrZXQ9ZSx0aGlzLmJ1ZmZlcnM9W10sdGhpcy5yZWNvblBhY2s9ZX10YWtlQmluYXJ5RGF0YShlKXtpZih0aGlzLmJ1ZmZlcnMucHVzaChlKSx0aGlzLmJ1ZmZlcnMubGVuZ3RoPT09dGhpcy5yZWNvblBhY2suYXR0YWNobWVudHMpe2NvbnN0IGU9KDAsby5yZWNvbnN0cnVjdFBhY2tldCkodGhpcy5yZWNvblBhY2ssdGhpcy5idWZmZXJzKTtyZXR1cm4gdGhpcy5maW5pc2hlZFJlY29uc3RydWN0aW9uKCksZX1yZXR1cm4gbnVsbH1maW5pc2hlZFJlY29uc3RydWN0aW9uKCl7dGhpcy5yZWNvblBhY2s9bnVsbCx0aGlzLmJ1ZmZlcnM9W119fX0sNDY4OTpmdW5jdGlvbihlLHQsbil7XFxcInVzZSBzdHJpY3RcXFwiO3ZhciBzPXRoaXMmJnRoaXMuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFxcXCJfX2VzTW9kdWxlXFxcIix7dmFsdWU6ITB9KSx0LlRyYW5zcG9ydD10LlRyYW5zcG9ydEVycm9yPXZvaWQgMDtjb25zdCBvPW4oNjM3Nikscj1uKDQ0NTQpLGk9big1Mzc0KSxhPXMobig2NjE3KSksYz1uKDg2NjEpLGw9KDAsYS5kZWZhdWx0KShcXFwiZW5naW5lLmlvLWNsaWVudDp0cmFuc3BvcnRcXFwiKTtjbGFzcyB1IGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IoZSx0LG4pe3N1cGVyKGUpLHRoaXMuZGVzY3JpcHRpb249dCx0aGlzLmNvbnRleHQ9bix0aGlzLnR5cGU9XFxcIlRyYW5zcG9ydEVycm9yXFxcIn19dC5UcmFuc3BvcnRFcnJvcj11O2NsYXNzIGggZXh0ZW5kcyByLkVtaXR0ZXJ7Y29uc3RydWN0b3IoZSl7c3VwZXIoKSx0aGlzLndyaXRhYmxlPSExLCgwLGkuaW5zdGFsbFRpbWVyRnVuY3Rpb25zKSh0aGlzLGUpLHRoaXMub3B0cz1lLHRoaXMucXVlcnk9ZS5xdWVyeSx0aGlzLnNvY2tldD1lLnNvY2tldH1vbkVycm9yKGUsdCxuKXtyZXR1cm4gc3VwZXIuZW1pdFJlc2VydmVkKFxcXCJlcnJvclxcXCIsbmV3IHUoZSx0LG4pKSx0aGlzfW9wZW4oKXtyZXR1cm4gdGhpcy5yZWFkeVN0YXRlPVxcXCJvcGVuaW5nXFxcIix0aGlzLmRvT3BlbigpLHRoaXN9Y2xvc2UoKXtyZXR1cm5cXFwib3BlbmluZ1xcXCIhPT10aGlzLnJlYWR5U3RhdGUmJlxcXCJvcGVuXFxcIiE9PXRoaXMucmVhZHlTdGF0ZXx8KHRoaXMuZG9DbG9zZSgpLHRoaXMub25DbG9zZSgpKSx0aGlzfXNlbmQoZSl7XFxcIm9wZW5cXFwiPT09dGhpcy5yZWFkeVN0YXRlP3RoaXMud3JpdGUoZSk6bChcXFwidHJhbnNwb3J0IGlzIG5vdCBvcGVuLCBkaXNjYXJkaW5nIHBhY2tldHNcXFwiKX1vbk9wZW4oKXt0aGlzLnJlYWR5U3RhdGU9XFxcIm9wZW5cXFwiLHRoaXMud3JpdGFibGU9ITAsc3VwZXIuZW1pdFJlc2VydmVkKFxcXCJvcGVuXFxcIil9b25EYXRhKGUpe2NvbnN0IHQ9KDAsby5kZWNvZGVQYWNrZXQpKGUsdGhpcy5zb2NrZXQuYmluYXJ5VHlwZSk7dGhpcy5vblBhY2tldCh0KX1vblBhY2tldChlKXtzdXBlci5lbWl0UmVzZXJ2ZWQoXFxcInBhY2tldFxcXCIsZSl9b25DbG9zZShlKXt0aGlzLnJlYWR5U3RhdGU9XFxcImNsb3NlZFxcXCIsc3VwZXIuZW1pdFJlc2VydmVkKFxcXCJjbG9zZVxcXCIsZSl9cGF1c2UoZSl7fWNyZWF0ZVVyaShlLHQ9e30pe3JldHVybiBlK1xcXCI6Ly9cXFwiK3RoaXMuX2hvc3RuYW1lKCkrdGhpcy5fcG9ydCgpK3RoaXMub3B0cy5wYXRoK3RoaXMuX3F1ZXJ5KHQpfV9ob3N0bmFtZSgpe2NvbnN0IGU9dGhpcy5vcHRzLmhvc3RuYW1lO3JldHVybi0xPT09ZS5pbmRleE9mKFxcXCI6XFxcIik/ZTpcXFwiW1xcXCIrZStcXFwiXVxcXCJ9X3BvcnQoKXtyZXR1cm4gdGhpcy5vcHRzLnBvcnQmJih0aGlzLm9wdHMuc2VjdXJlJiZOdW1iZXIoNDQzIT09dGhpcy5vcHRzLnBvcnQpfHwhdGhpcy5vcHRzLnNlY3VyZSYmODAhPT1OdW1iZXIodGhpcy5vcHRzLnBvcnQpKT9cXFwiOlxcXCIrdGhpcy5vcHRzLnBvcnQ6XFxcIlxcXCJ9X3F1ZXJ5KGUpe2NvbnN0IHQ9KDAsYy5lbmNvZGUpKGUpO3JldHVybiB0Lmxlbmd0aD9cXFwiP1xcXCIrdDpcXFwiXFxcIn19dC5UcmFuc3BvcnQ9aH0sNDkyNjooZSx0LG4pPT57XFxcInVzZSBzdHJpY3RcXFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFxcXCJfX2VzTW9kdWxlXFxcIix7dmFsdWU6ITB9KSx0LnJlY29uc3RydWN0UGFja2V0PXQuZGVjb25zdHJ1Y3RQYWNrZXQ9dm9pZCAwO2NvbnN0IHM9big5MTMzKTtmdW5jdGlvbiBvKGUsdCl7aWYoIWUpcmV0dXJuIGU7aWYoKDAscy5pc0JpbmFyeSkoZSkpe2NvbnN0IG49e19wbGFjZWhvbGRlcjohMCxudW06dC5sZW5ndGh9O3JldHVybiB0LnB1c2goZSksbn1pZihBcnJheS5pc0FycmF5KGUpKXtjb25zdCBuPW5ldyBBcnJheShlLmxlbmd0aCk7Zm9yKGxldCBzPTA7czxlLmxlbmd0aDtzKyspbltzXT1vKGVbc10sdCk7cmV0dXJuIG59aWYoXFxcIm9iamVjdFxcXCI9PXR5cGVvZiBlJiYhKGUgaW5zdGFuY2VvZiBEYXRlKSl7Y29uc3Qgbj17fTtmb3IoY29uc3QgcyBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHMpJiYobltzXT1vKGVbc10sdCkpO3JldHVybiBufXJldHVybiBlfWZ1bmN0aW9uIHIoZSx0KXtpZighZSlyZXR1cm4gZTtpZihlJiYhMD09PWUuX3BsYWNlaG9sZGVyKXtpZihcXFwibnVtYmVyXFxcIj09dHlwZW9mIGUubnVtJiZlLm51bT49MCYmZS5udW08dC5sZW5ndGgpcmV0dXJuIHRbZS5udW1dO3Rocm93IG5ldyBFcnJvcihcXFwiaWxsZWdhbCBhdHRhY2htZW50c1xcXCIpfWlmKEFycmF5LmlzQXJyYXkoZSkpZm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKyspZVtuXT1yKGVbbl0sdCk7ZWxzZSBpZihcXFwib2JqZWN0XFxcIj09dHlwZW9mIGUpZm9yKGNvbnN0IG4gaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKSYmKGVbbl09cihlW25dLHQpKTtyZXR1cm4gZX10LmRlY29uc3RydWN0UGFja2V0PWZ1bmN0aW9uKGUpe2NvbnN0IHQ9W10sbj1lLmRhdGEscz1lO3JldHVybiBzLmRhdGE9byhuLHQpLHMuYXR0YWNobWVudHM9dC5sZW5ndGgse3BhY2tldDpzLGJ1ZmZlcnM6dH19LHQucmVjb25zdHJ1Y3RQYWNrZXQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5kYXRhPXIoZS5kYXRhLHQpLGRlbGV0ZSBlLmF0dGFjaG1lbnRzLGV9fSw0OTU2OihlLHQsbik9PntcXFwidXNlIHN0cmljdFxcXCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXFxcIl9fZXNNb2R1bGVcXFwiLHt2YWx1ZTohMH0pLHQubmV4dFRpY2s9dC5wYXJzZT10Lmluc3RhbGxUaW1lckZ1bmN0aW9ucz10LnRyYW5zcG9ydHM9dC5UcmFuc3BvcnRFcnJvcj10LlRyYW5zcG9ydD10LnByb3RvY29sPXQuU29ja2V0PXZvaWQgMDtjb25zdCBzPW4oODIyMyk7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXFxcIlNvY2tldFxcXCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHMuU29ja2V0fX0pLHQucHJvdG9jb2w9cy5Tb2NrZXQucHJvdG9jb2w7dmFyIG89big0Njg5KTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcXFwiVHJhbnNwb3J0XFxcIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gby5UcmFuc3BvcnR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXFxcIlRyYW5zcG9ydEVycm9yXFxcIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gby5UcmFuc3BvcnRFcnJvcn19KTt2YXIgcj1uKDk0MTkpO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFxcXCJ0cmFuc3BvcnRzXFxcIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gci50cmFuc3BvcnRzfX0pO3ZhciBpPW4oNTM3NCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXFxcImluc3RhbGxUaW1lckZ1bmN0aW9uc1xcXCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGkuaW5zdGFsbFRpbWVyRnVuY3Rpb25zfX0pO3ZhciBhPW4oMTAxNSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXFxcInBhcnNlXFxcIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYS5wYXJzZX19KTt2YXIgYz1uKDQwODcpO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFxcXCJuZXh0VGlja1xcXCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGMubmV4dFRpY2t9fSl9LDUwMjg6ZnVuY3Rpb24oZSx0LG4pe1xcXCJ1c2Ugc3RyaWN0XFxcIjt2YXIgcz10aGlzJiZ0aGlzLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcXFwiX19lc01vZHVsZVxcXCIse3ZhbHVlOiEwfSksdC5pbml0PXZvaWQgMDtjb25zdCBvPXMobig3MDA2KSkscj1uKDk5MzQpO3QuZGVmYXVsdD1jbGFzc3tzdGF0aWMgZ2V0Q29ubmVjdGlvbihlKXtyZXR1cm5cXFwiXFxcIj09PWU/by5kZWZhdWx0LnJvb3RDb25uZWN0aW9uOihlPWUuZW5kc1dpdGgoby5kZWZhdWx0LnJvb3RDb25uZWN0aW9uKT9lOmAke2V9JHtvLmRlZmF1bHQucm9vdENvbm5lY3Rpb259YCkuc3RhcnRzV2l0aChvLmRlZmF1bHQucm9vdENvbm5lY3Rpb24pP2U6YCR7by5kZWZhdWx0LnJvb3RDb25uZWN0aW9ufSR7ZX1gfXN0YXRpYyBnZXRUdW5lT3B0aW9uU3RyaW5nKGUpe2xldCB0PXt9O09iamVjdC5rZXlzKGUpLmZvckVhY2gobj0+e2NvbnN0IHM9bixvPU51bWJlcihlW3NdKTtvJiYodFtzXT1vKX0pO2NvbnN0IG49SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0KSk7cmV0dXJuIG5ldyBVUkxTZWFyY2hQYXJhbXMobikudG9TdHJpbmcoKX1jb25zdHJ1Y3RvcihlPXQuaW5pdCl7cmV0dXJuIHRoaXMuaGFzU2xhc2g9ITEsdGhpcy5wcm90b2NvbD1cXFwiXFxcIix0aGlzLmhvc3Q9XFxcIlxcXCIsdGhpcy5jb25uZWN0aW9uPW8uZGVmYXVsdC5yb290Q29ubmVjdGlvbix0aGlzLnR1bmVPcHRpb249ci5pbml0LE9iamVjdC5hc3NpZ24odGhpcyxlKX19LHQuaW5pdD17aGFzU2xhc2g6ITEscHJvdG9jb2w6XFxcIlxcXCIsaG9zdDpcXFwiXFxcIixjb25uZWN0aW9uOlxcXCJcXFwiLHR1bmVPcHRpb246e319fSw1Mzc0OihlLHQsbik9PntcXFwidXNlIHN0cmljdFxcXCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXFxcIl9fZXNNb2R1bGVcXFwiLHt2YWx1ZTohMH0pLHQuYnl0ZUxlbmd0aD10Lmluc3RhbGxUaW1lckZ1bmN0aW9ucz10LnBpY2s9dm9pZCAwO2NvbnN0IHM9big2MjM1KTt0LnBpY2s9ZnVuY3Rpb24oZSwuLi50KXtyZXR1cm4gdC5yZWR1Y2UoKHQsbik9PihlLmhhc093blByb3BlcnR5KG4pJiYodFtuXT1lW25dKSx0KSx7fSl9O2NvbnN0IG89cy5nbG9iYWxUaGlzU2hpbS5zZXRUaW1lb3V0LHI9cy5nbG9iYWxUaGlzU2hpbS5jbGVhclRpbWVvdXQ7dC5pbnN0YWxsVGltZXJGdW5jdGlvbnM9ZnVuY3Rpb24oZSx0KXt0LnVzZU5hdGl2ZVRpbWVycz8oZS5zZXRUaW1lb3V0Rm49by5iaW5kKHMuZ2xvYmFsVGhpc1NoaW0pLGUuY2xlYXJUaW1lb3V0Rm49ci5iaW5kKHMuZ2xvYmFsVGhpc1NoaW0pKTooZS5zZXRUaW1lb3V0Rm49cy5nbG9iYWxUaGlzU2hpbS5zZXRUaW1lb3V0LmJpbmQocy5nbG9iYWxUaGlzU2hpbSksZS5jbGVhclRpbWVvdXRGbj1zLmdsb2JhbFRoaXNTaGltLmNsZWFyVGltZW91dC5iaW5kKHMuZ2xvYmFsVGhpc1NoaW0pKX0sdC5ieXRlTGVuZ3RoPWZ1bmN0aW9uKGUpe3JldHVyblxcXCJzdHJpbmdcXFwiPT10eXBlb2YgZT9mdW5jdGlvbihlKXtsZXQgdD0wLG49MDtmb3IobGV0IHM9MCxvPWUubGVuZ3RoO3M8bztzKyspdD1lLmNoYXJDb2RlQXQocyksdDwxMjg/bis9MTp0PDIwNDg/bis9Mjp0PDU1Mjk2fHx0Pj01NzM0ND9uKz0zOihzKyssbis9NCk7cmV0dXJuIG59KGUpOk1hdGguY2VpbCgxLjMzKihlLmJ5dGVMZW5ndGh8fGUuc2l6ZSkpfX0sNTM3OTooZSx0KT0+e1xcXCJ1c2Ugc3RyaWN0XFxcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcXFwiX19lc01vZHVsZVxcXCIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXtBUFBfTkFNRTpcXFwidGFsa25cXFwiLFBST0RVQ1RJT046XFxcIlBST0RVQ1RJT05cXFwiLExPQ0FMSE9TVDpcXFwiTE9DQUxIT1NUXFxcIixERVZFTE9QTUVOVDpcXFwiREVWRUxPUE1FTlRcXFwiLFBST0RVQ1RJT05fRE9NQUlOOlxcXCJ0YWxrbi5pb1xcXCIsUFJPRFVDVElPTl9BUElfRE9NQUlOOlxcXCJhcGkudGFsa24uaW9cXFwiLERFVkVMT1BNRU5UX0RPTUFJTjpcXFwibG9jYWxob3N0XFxcIixBV1NfSE9TVF9LRVk6XFxcImNvbXB1dGUuaW50ZXJuYWxcXFwiLFBPUlRTOntIVFRQOjgwLEhUVFBTOjQ0MyxERVZFTE9QTUVOVF9DT1ZFUjo4ZTMsREVWRUxPUE1FTlRfQVBJOjgwMDEsREVWRUxPUE1FTlRfQ09NUE9ORU5UUzo4MDAyLERFVkVMT1BNRU5UX1RVTkU6ODAwMyxERVZFTE9QTUVOVF9DTElFTlQ6ODA4MCxSRURJUzo2Mzc5LE1PTkdPOjI3MDE3LElPX0xCOjEwNDQwLElPX1JPT1Q6MTA0NDR9LFNVQl9ET01BSU5TOntXV1c6XFxcInd3d1xcXCIsQVBJOlxcXCJhcGlcXFwiLERFU0M6XFxcImRlc2NcXFwiLFBPUlRBTDpcXFwicG9ydGFsXFxcIixDTElFTlQ6XFxcImNsaWVudFxcXCIsQVNTRVRTOlxcXCJhc3NldHNcXFwiLFNFU1NJT046XFxcInNlc3Npb25cXFwiLEFVVE86XFxcImF1dG9cXFwiLE9XTjpcXFwib3duXFxcIixORVdTOlxcXCJuZXdzXFxcIixCQU5ORVI6XFxcImJhbm5lclxcXCIsQ09WRVI6XFxcImNvdmVyXFxcIixSQU5LOlxcXCJyYW5rXFxcIixFWFQ6XFxcImV4dFxcXCIsQ09NUE9ORU5UUzpcXFwiY29tcG9uZW50c1xcXCIsVFVORTpcXFwidHVuZVxcXCIsVFJBTlNBQ1RJT046XFxcInRyYW5zYWN0aW9uXFxcIixBVVRIOlxcXCJhdXRoXFxcIn0sQVBQX1RZUEVTOntDTElFTlQ6XFxcIkNMSUVOVFxcXCIsUE9SVEFMOlxcXCJQT1JUQUxcXFwiLEVYVEVOU0lPTjpcXFwiRVhURU5TSU9OXFxcIixBUEk6XFxcIkFQSVxcXCIsQ09WRVI6XFxcIkNPVkVSXFxcIixDT01QT05FTlRTOlxcXCJDT01QT05FTlRTXFxcIixUVU5FOlxcXCJUVU5FXFxcIn0sVVJMOnt0d2l0dGVyOlxcXCJodHRwczovL3R3aXR0ZXIuY29tL1xcXCIsZmFjZWJvb2s6XFxcImh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9cXFwiLGFwcHN0b3JlOlxcXCJodHRwczovL2l0dW5lcy5hcHBsZS5jb20vYXBwL2lkXFxcIixwbGF5c3RvcmU6XFxcImh0dHBzOi8vcGxheS5nb29nbGUuY29tL3N0b3JlL2FwcHMvZGV0YWlscz9pZD1cXFwiLGNocm9tZUV4dGVuc2lvbjpcXFwiaHR0cHM6Ly9jaHJvbWUuZ29vZ2xlLmNvbS93ZWJzdG9yZS9kZXRhaWwvdGFsa24tZm9yLWNocm9tZS9ka25nbm1kbGNvZmFtYnBmYWNjZXBibmpnZmhvbGdibz9obD1lblxcXCJ9LHRhbGtuQ2xpZW50SnM6XFxcInRhbGtuLmNsaWVudC5qc1xcXCIsdGFsa25BcGlKczpcXFwidGFsa24uYXBpLmpzXFxcIix0YWxrblJhbmtKczpcXFwidGFsa24ucmFuay5qc1xcXCIsbm9Jbm5lck5vdGlmOlxcXCJTb3JyeSwgTm8gRnVuY3Rpb24uXFxcIixiYW5uZXJDbGFzczpcXFwidGFsa25fYmFubmVyXFxcIixzdG9yYWdlS2V5OntiYXNlS2V5OlxcXCJAdGFsa25AXFxcIixwb3N0c1RpbWVsaW5lWmVybzpcXFwicG9zdHNUaW1lbGluZVplcm9cXFwiLHBvc3RzVGltZWxpbmU6XFxcInBvc3RzVGltZWxpbmVcXFwiLHBvc3RzU2luZ2xlOlxcXCJwb3N0c1NpbmdsZVxcXCIscG9zdHNNdWx0aTpcXFwicG9zdHNNdWx0aVxcXCIscG9zdHNDaGlsZDpcXFwicG9zdHNDaGlsZFxcXCIscG9zdHNMb2dzOlxcXCJwb3N0c0xvZ3NcXFwiLHRocmVhZHM6XFxcInRocmVhZHNcXFwifX19LDU2MDY6ZT0+e3ZhciB0LG4scz1lLmV4cG9ydHM9e307ZnVuY3Rpb24gbygpe3Rocm93IG5ldyBFcnJvcihcXFwic2V0VGltZW91dCBoYXMgbm90IGJlZW4gZGVmaW5lZFxcXCIpfWZ1bmN0aW9uIHIoKXt0aHJvdyBuZXcgRXJyb3IoXFxcImNsZWFyVGltZW91dCBoYXMgbm90IGJlZW4gZGVmaW5lZFxcXCIpfWZ1bmN0aW9uIGkoZSl7aWYodD09PXNldFRpbWVvdXQpcmV0dXJuIHNldFRpbWVvdXQoZSwwKTtpZigodD09PW98fCF0KSYmc2V0VGltZW91dClyZXR1cm4gdD1zZXRUaW1lb3V0LHNldFRpbWVvdXQoZSwwKTt0cnl7cmV0dXJuIHQoZSwwKX1jYXRjaChuKXt0cnl7cmV0dXJuIHQuY2FsbChudWxsLGUsMCl9Y2F0Y2gobil7cmV0dXJuIHQuY2FsbCh0aGlzLGUsMCl9fX0hZnVuY3Rpb24oKXt0cnl7dD1cXFwiZnVuY3Rpb25cXFwiPT10eXBlb2Ygc2V0VGltZW91dD9zZXRUaW1lb3V0Om99Y2F0Y2goZSl7dD1vfXRyeXtuPVxcXCJmdW5jdGlvblxcXCI9PXR5cGVvZiBjbGVhclRpbWVvdXQ/Y2xlYXJUaW1lb3V0OnJ9Y2F0Y2goZSl7bj1yfX0oKTt2YXIgYSxjPVtdLGw9ITEsdT0tMTtmdW5jdGlvbiBoKCl7bCYmYSYmKGw9ITEsYS5sZW5ndGg/Yz1hLmNvbmNhdChjKTp1PS0xLGMubGVuZ3RoJiZwKCkpfWZ1bmN0aW9uIHAoKXtpZighbCl7dmFyIGU9aShoKTtsPSEwO2Zvcih2YXIgdD1jLmxlbmd0aDt0Oyl7Zm9yKGE9YyxjPVtdOysrdTx0OylhJiZhW3VdLnJ1bigpO3U9LTEsdD1jLmxlbmd0aH1hPW51bGwsbD0hMSxmdW5jdGlvbihlKXtpZihuPT09Y2xlYXJUaW1lb3V0KXJldHVybiBjbGVhclRpbWVvdXQoZSk7aWYoKG49PT1yfHwhbikmJmNsZWFyVGltZW91dClyZXR1cm4gbj1jbGVhclRpbWVvdXQsY2xlYXJUaW1lb3V0KGUpO3RyeXtyZXR1cm4gbihlKX1jYXRjaCh0KXt0cnl7cmV0dXJuIG4uY2FsbChudWxsLGUpfWNhdGNoKHQpe3JldHVybiBuLmNhbGwodGhpcyxlKX19fShlKX19ZnVuY3Rpb24gZChlLHQpe3RoaXMuZnVuPWUsdGhpcy5hcnJheT10fWZ1bmN0aW9uIGYoKXt9cy5uZXh0VGljaz1mdW5jdGlvbihlKXt2YXIgdD1uZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aC0xKTtpZihhcmd1bWVudHMubGVuZ3RoPjEpZm9yKHZhciBuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl0W24tMV09YXJndW1lbnRzW25dO2MucHVzaChuZXcgZChlLHQpKSwxIT09Yy5sZW5ndGh8fGx8fGkocCl9LGQucHJvdG90eXBlLnJ1bj1mdW5jdGlvbigpe3RoaXMuZnVuLmFwcGx5KG51bGwsdGhpcy5hcnJheSl9LHMudGl0bGU9XFxcImJyb3dzZXJcXFwiLHMuYnJvd3Nlcj0hMCxzLmVudj17fSxzLmFyZ3Y9W10scy52ZXJzaW9uPVxcXCJcXFwiLHMudmVyc2lvbnM9e30scy5vbj1mLHMuYWRkTGlzdGVuZXI9ZixzLm9uY2U9ZixzLm9mZj1mLHMucmVtb3ZlTGlzdGVuZXI9ZixzLnJlbW92ZUFsbExpc3RlbmVycz1mLHMuZW1pdD1mLHMucHJlcGVuZExpc3RlbmVyPWYscy5wcmVwZW5kT25jZUxpc3RlbmVyPWYscy5saXN0ZW5lcnM9ZnVuY3Rpb24oZSl7cmV0dXJuW119LHMuYmluZGluZz1mdW5jdGlvbihlKXt0aHJvdyBuZXcgRXJyb3IoXFxcInByb2Nlc3MuYmluZGluZyBpcyBub3Qgc3VwcG9ydGVkXFxcIil9LHMuY3dkPWZ1bmN0aW9uKCl7cmV0dXJuXFxcIi9cXFwifSxzLmNoZGlyPWZ1bmN0aW9uKGUpe3Rocm93IG5ldyBFcnJvcihcXFwicHJvY2Vzcy5jaGRpciBpcyBub3Qgc3VwcG9ydGVkXFxcIil9LHMudW1hc2s9ZnVuY3Rpb24oKXtyZXR1cm4gMH19LDU5MTk6KGUsdCk9PntcXFwidXNlIHN0cmljdFxcXCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXFxcIl9fZXNNb2R1bGVcXFwiLHt2YWx1ZTohMH0pLHQuZ2VuZXJhdGVVbmlxdWVLZXk9dC5nZW5lcmF0ZVVuaXF1ZUtleVNlcGFyYXRvcj10LmlzVmFsaWRLZXk9dC5JU19OT0RFPXQuSVNfQlJPV1NFUj10LmlzTm9kZVNlcnZlcj12b2lkIDAsdC5nZXRFbnZWYXI9ZnVuY3Rpb24oZSl7aWYodC5JU19OT0RFKXJldHVybiBwcm9jZXNzLmVudj8uW2VdfSx0LmlzTm9kZVNlcnZlcj0oKT0+XFxcInVuZGVmaW5lZFxcXCI9PXR5cGVvZiB3aW5kb3csdC5JU19CUk9XU0VSPVxcXCJ1bmRlZmluZWRcXFwiIT10eXBlb2Ygd2luZG93LHQuSVNfTk9ERT1cXFwidW5kZWZpbmVkXFxcIiE9dHlwZW9mIHByb2Nlc3MmJiEhcHJvY2Vzcy5yZWxlYXNlPy5uYW1lLHQuaXNWYWxpZEtleT0oZSx0KT0+ZSBpbiB0LHQuZ2VuZXJhdGVVbmlxdWVLZXlTZXBhcmF0b3I9XFxcIjo6XFxcIix0LmdlbmVyYXRlVW5pcXVlS2V5PShlPVxcXCJpZFxcXCIsbj10LmdlbmVyYXRlVW5pcXVlS2V5U2VwYXJhdG9yKT0+ZStuK0RhdGUubm93KCkudG9TdHJpbmcoMzYpK01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigyLDUpfSw1OTQyOihlLHQpPT57XFxcInVzZSBzdHJpY3RcXFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFxcXCJfX2VzTW9kdWxlXFxcIix7dmFsdWU6ITB9KSx0Lm9uPXZvaWQgMCx0Lm9uPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZS5vbih0LG4pLGZ1bmN0aW9uKCl7ZS5vZmYodCxuKX19fSw2MjE0OmZ1bmN0aW9uKGUsdCxuKXtcXFwidXNlIHN0cmljdFxcXCI7dmFyIHM9dGhpcyYmdGhpcy5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXFxcIl9fZXNNb2R1bGVcXFwiLHt2YWx1ZTohMH0pLHQuU29ja2V0PXZvaWQgMDtjb25zdCBvPW4oNDYyNykscj1uKDU5NDIpLGk9big0NDU0KSxhPXMobig5MzY4KSkuZGVmYXVsdChcXFwic29ja2V0LmlvLWNsaWVudDpzb2NrZXRcXFwiKSxjPU9iamVjdC5mcmVlemUoe2Nvbm5lY3Q6MSxjb25uZWN0X2Vycm9yOjEsZGlzY29ubmVjdDoxLGRpc2Nvbm5lY3Rpbmc6MSxuZXdMaXN0ZW5lcjoxLHJlbW92ZUxpc3RlbmVyOjF9KTtjbGFzcyBsIGV4dGVuZHMgaS5FbWl0dGVye2NvbnN0cnVjdG9yKGUsdCxuKXtzdXBlcigpLHRoaXMuY29ubmVjdGVkPSExLHRoaXMucmVjb3ZlcmVkPSExLHRoaXMucmVjZWl2ZUJ1ZmZlcj1bXSx0aGlzLnNlbmRCdWZmZXI9W10sdGhpcy5fcXVldWU9W10sdGhpcy5fcXVldWVTZXE9MCx0aGlzLmlkcz0wLHRoaXMuYWNrcz17fSx0aGlzLmZsYWdzPXt9LHRoaXMuaW89ZSx0aGlzLm5zcD10LG4mJm4uYXV0aCYmKHRoaXMuYXV0aD1uLmF1dGgpLHRoaXMuX29wdHM9T2JqZWN0LmFzc2lnbih7fSxuKSx0aGlzLmlvLl9hdXRvQ29ubmVjdCYmdGhpcy5vcGVuKCl9Z2V0IGRpc2Nvbm5lY3RlZCgpe3JldHVybiF0aGlzLmNvbm5lY3RlZH1zdWJFdmVudHMoKXtpZih0aGlzLnN1YnMpcmV0dXJuO2NvbnN0IGU9dGhpcy5pbzt0aGlzLnN1YnM9W3Iub24oZSxcXFwib3BlblxcXCIsdGhpcy5vbm9wZW4uYmluZCh0aGlzKSksci5vbihlLFxcXCJwYWNrZXRcXFwiLHRoaXMub25wYWNrZXQuYmluZCh0aGlzKSksci5vbihlLFxcXCJlcnJvclxcXCIsdGhpcy5vbmVycm9yLmJpbmQodGhpcykpLHIub24oZSxcXFwiY2xvc2VcXFwiLHRoaXMub25jbG9zZS5iaW5kKHRoaXMpKV19Z2V0IGFjdGl2ZSgpe3JldHVybiEhdGhpcy5zdWJzfWNvbm5lY3QoKXtyZXR1cm4gdGhpcy5jb25uZWN0ZWR8fCh0aGlzLnN1YkV2ZW50cygpLHRoaXMuaW8uX3JlY29ubmVjdGluZ3x8dGhpcy5pby5vcGVuKCksXFxcIm9wZW5cXFwiPT09dGhpcy5pby5fcmVhZHlTdGF0ZSYmdGhpcy5vbm9wZW4oKSksdGhpc31vcGVuKCl7cmV0dXJuIHRoaXMuY29ubmVjdCgpfXNlbmQoLi4uZSl7cmV0dXJuIGUudW5zaGlmdChcXFwibWVzc2FnZVxcXCIpLHRoaXMuZW1pdC5hcHBseSh0aGlzLGUpLHRoaXN9ZW1pdChlLC4uLnQpe2lmKGMuaGFzT3duUHJvcGVydHkoZSkpdGhyb3cgbmV3IEVycm9yKCdcXFwiJytlLnRvU3RyaW5nKCkrJ1xcXCIgaXMgYSByZXNlcnZlZCBldmVudCBuYW1lJyk7aWYodC51bnNoaWZ0KGUpLHRoaXMuX29wdHMucmV0cmllcyYmIXRoaXMuZmxhZ3MuZnJvbVF1ZXVlJiYhdGhpcy5mbGFncy52b2xhdGlsZSlyZXR1cm4gdGhpcy5fYWRkVG9RdWV1ZSh0KSx0aGlzO2NvbnN0IG49e3R5cGU6by5QYWNrZXRUeXBlLkVWRU5ULGRhdGE6dCxvcHRpb25zOnt9fTtpZihuLm9wdGlvbnMuY29tcHJlc3M9ITEhPT10aGlzLmZsYWdzLmNvbXByZXNzLFxcXCJmdW5jdGlvblxcXCI9PXR5cGVvZiB0W3QubGVuZ3RoLTFdKXtjb25zdCBlPXRoaXMuaWRzKys7YShcXFwiZW1pdHRpbmcgcGFja2V0IHdpdGggYWNrIGlkICVkXFxcIixlKTtjb25zdCBzPXQucG9wKCk7dGhpcy5fcmVnaXN0ZXJBY2tDYWxsYmFjayhlLHMpLG4uaWQ9ZX1jb25zdCBzPXRoaXMuaW8uZW5naW5lJiZ0aGlzLmlvLmVuZ2luZS50cmFuc3BvcnQmJnRoaXMuaW8uZW5naW5lLnRyYW5zcG9ydC53cml0YWJsZTtyZXR1cm4hdGhpcy5mbGFncy52b2xhdGlsZXx8cyYmdGhpcy5jb25uZWN0ZWQ/dGhpcy5jb25uZWN0ZWQ/KHRoaXMubm90aWZ5T3V0Z29pbmdMaXN0ZW5lcnMobiksdGhpcy5wYWNrZXQobikpOnRoaXMuc2VuZEJ1ZmZlci5wdXNoKG4pOmEoXFxcImRpc2NhcmQgcGFja2V0IGFzIHRoZSB0cmFuc3BvcnQgaXMgbm90IGN1cnJlbnRseSB3cml0YWJsZVxcXCIpLHRoaXMuZmxhZ3M9e30sdGhpc31fcmVnaXN0ZXJBY2tDYWxsYmFjayhlLHQpe3ZhciBuO2NvbnN0IHM9bnVsbCE9PShuPXRoaXMuZmxhZ3MudGltZW91dCkmJnZvaWQgMCE9PW4/bjp0aGlzLl9vcHRzLmFja1RpbWVvdXQ7aWYodm9pZCAwPT09cylyZXR1cm4gdm9pZCh0aGlzLmFja3NbZV09dCk7Y29uc3Qgbz10aGlzLmlvLnNldFRpbWVvdXRGbigoKT0+e2RlbGV0ZSB0aGlzLmFja3NbZV07Zm9yKGxldCB0PTA7dDx0aGlzLnNlbmRCdWZmZXIubGVuZ3RoO3QrKyl0aGlzLnNlbmRCdWZmZXJbdF0uaWQ9PT1lJiYoYShcXFwicmVtb3ZpbmcgcGFja2V0IHdpdGggYWNrIGlkICVkIGZyb20gdGhlIGJ1ZmZlclxcXCIsZSksdGhpcy5zZW5kQnVmZmVyLnNwbGljZSh0LDEpKTthKFxcXCJldmVudCB3aXRoIGFjayBpZCAlZCBoYXMgdGltZWQgb3V0IGFmdGVyICVkIG1zXFxcIixlLHMpLHQuY2FsbCh0aGlzLG5ldyBFcnJvcihcXFwib3BlcmF0aW9uIGhhcyB0aW1lZCBvdXRcXFwiKSl9LHMpO3RoaXMuYWNrc1tlXT0oLi4uZSk9Pnt0aGlzLmlvLmNsZWFyVGltZW91dEZuKG8pLHQuYXBwbHkodGhpcyxbbnVsbCwuLi5lXSl9fWVtaXRXaXRoQWNrKGUsLi4udCl7Y29uc3Qgbj12b2lkIDAhPT10aGlzLmZsYWdzLnRpbWVvdXR8fHZvaWQgMCE9PXRoaXMuX29wdHMuYWNrVGltZW91dDtyZXR1cm4gbmV3IFByb21pc2UoKHMsbyk9Pnt0LnB1c2goKGUsdCk9Pm4/ZT9vKGUpOnModCk6cyhlKSksdGhpcy5lbWl0KGUsLi4udCl9KX1fYWRkVG9RdWV1ZShlKXtsZXQgdDtcXFwiZnVuY3Rpb25cXFwiPT10eXBlb2YgZVtlLmxlbmd0aC0xXSYmKHQ9ZS5wb3AoKSk7Y29uc3Qgbj17aWQ6dGhpcy5fcXVldWVTZXErKyx0cnlDb3VudDowLHBlbmRpbmc6ITEsYXJnczplLGZsYWdzOk9iamVjdC5hc3NpZ24oe2Zyb21RdWV1ZTohMH0sdGhpcy5mbGFncyl9O2UucHVzaCgoZSwuLi5zKT0+e2lmKG49PT10aGlzLl9xdWV1ZVswXSlyZXR1cm4gbnVsbCE9PWU/bi50cnlDb3VudD50aGlzLl9vcHRzLnJldHJpZXMmJihhKFxcXCJwYWNrZXQgWyVkXSBpcyBkaXNjYXJkZWQgYWZ0ZXIgJWQgdHJpZXNcXFwiLG4uaWQsbi50cnlDb3VudCksdGhpcy5fcXVldWUuc2hpZnQoKSx0JiZ0KGUpKTooYShcXFwicGFja2V0IFslZF0gd2FzIHN1Y2Nlc3NmdWxseSBzZW50XFxcIixuLmlkKSx0aGlzLl9xdWV1ZS5zaGlmdCgpLHQmJnQobnVsbCwuLi5zKSksbi5wZW5kaW5nPSExLHRoaXMuX2RyYWluUXVldWUoKX0pLHRoaXMuX3F1ZXVlLnB1c2gobiksdGhpcy5fZHJhaW5RdWV1ZSgpfV9kcmFpblF1ZXVlKGU9ITEpe2lmKGEoXFxcImRyYWluaW5nIHF1ZXVlXFxcIiksIXRoaXMuY29ubmVjdGVkfHwwPT09dGhpcy5fcXVldWUubGVuZ3RoKXJldHVybjtjb25zdCB0PXRoaXMuX3F1ZXVlWzBdOyF0LnBlbmRpbmd8fGU/KHQucGVuZGluZz0hMCx0LnRyeUNvdW50KyssYShcXFwic2VuZGluZyBwYWNrZXQgWyVkXSAodHJ5IG7CsCVkKVxcXCIsdC5pZCx0LnRyeUNvdW50KSx0aGlzLmZsYWdzPXQuZmxhZ3MsdGhpcy5lbWl0LmFwcGx5KHRoaXMsdC5hcmdzKSk6YShcXFwicGFja2V0IFslZF0gaGFzIGFscmVhZHkgYmVlbiBzZW50IGFuZCBpcyB3YWl0aW5nIGZvciBhbiBhY2tcXFwiLHQuaWQpfXBhY2tldChlKXtlLm5zcD10aGlzLm5zcCx0aGlzLmlvLl9wYWNrZXQoZSl9b25vcGVuKCl7YShcXFwidHJhbnNwb3J0IGlzIG9wZW4gLSBjb25uZWN0aW5nXFxcIiksXFxcImZ1bmN0aW9uXFxcIj09dHlwZW9mIHRoaXMuYXV0aD90aGlzLmF1dGgoZT0+e3RoaXMuX3NlbmRDb25uZWN0UGFja2V0KGUpfSk6dGhpcy5fc2VuZENvbm5lY3RQYWNrZXQodGhpcy5hdXRoKX1fc2VuZENvbm5lY3RQYWNrZXQoZSl7dGhpcy5wYWNrZXQoe3R5cGU6by5QYWNrZXRUeXBlLkNPTk5FQ1QsZGF0YTp0aGlzLl9waWQ/T2JqZWN0LmFzc2lnbih7cGlkOnRoaXMuX3BpZCxvZmZzZXQ6dGhpcy5fbGFzdE9mZnNldH0sZSk6ZX0pfW9uZXJyb3IoZSl7dGhpcy5jb25uZWN0ZWR8fHRoaXMuZW1pdFJlc2VydmVkKFxcXCJjb25uZWN0X2Vycm9yXFxcIixlKX1vbmNsb3NlKGUsdCl7YShcXFwiY2xvc2UgKCVzKVxcXCIsZSksdGhpcy5jb25uZWN0ZWQ9ITEsZGVsZXRlIHRoaXMuaWQsdGhpcy5lbWl0UmVzZXJ2ZWQoXFxcImRpc2Nvbm5lY3RcXFwiLGUsdCl9b25wYWNrZXQoZSl7aWYoZS5uc3A9PT10aGlzLm5zcClzd2l0Y2goZS50eXBlKXtjYXNlIG8uUGFja2V0VHlwZS5DT05ORUNUOmUuZGF0YSYmZS5kYXRhLnNpZD90aGlzLm9uY29ubmVjdChlLmRhdGEuc2lkLGUuZGF0YS5waWQpOnRoaXMuZW1pdFJlc2VydmVkKFxcXCJjb25uZWN0X2Vycm9yXFxcIixuZXcgRXJyb3IoXFxcIkl0IHNlZW1zIHlvdSBhcmUgdHJ5aW5nIHRvIHJlYWNoIGEgU29ja2V0LklPIHNlcnZlciBpbiB2Mi54IHdpdGggYSB2My54IGNsaWVudCwgYnV0IHRoZXkgYXJlIG5vdCBjb21wYXRpYmxlIChtb3JlIGluZm9ybWF0aW9uIGhlcmU6IGh0dHBzOi8vc29ja2V0LmlvL2RvY3MvdjMvbWlncmF0aW5nLWZyb20tMi14LXRvLTMtMC8pXFxcIikpO2JyZWFrO2Nhc2Ugby5QYWNrZXRUeXBlLkVWRU5UOmNhc2Ugby5QYWNrZXRUeXBlLkJJTkFSWV9FVkVOVDp0aGlzLm9uZXZlbnQoZSk7YnJlYWs7Y2FzZSBvLlBhY2tldFR5cGUuQUNLOmNhc2Ugby5QYWNrZXRUeXBlLkJJTkFSWV9BQ0s6dGhpcy5vbmFjayhlKTticmVhaztjYXNlIG8uUGFja2V0VHlwZS5ESVNDT05ORUNUOnRoaXMub25kaXNjb25uZWN0KCk7YnJlYWs7Y2FzZSBvLlBhY2tldFR5cGUuQ09OTkVDVF9FUlJPUjp0aGlzLmRlc3Ryb3koKTtjb25zdCB0PW5ldyBFcnJvcihlLmRhdGEubWVzc2FnZSk7dC5kYXRhPWUuZGF0YS5kYXRhLHRoaXMuZW1pdFJlc2VydmVkKFxcXCJjb25uZWN0X2Vycm9yXFxcIix0KX19b25ldmVudChlKXtjb25zdCB0PWUuZGF0YXx8W107YShcXFwiZW1pdHRpbmcgZXZlbnQgJWpcXFwiLHQpLG51bGwhPWUuaWQmJihhKFxcXCJhdHRhY2hpbmcgYWNrIGNhbGxiYWNrIHRvIGV2ZW50XFxcIiksdC5wdXNoKHRoaXMuYWNrKGUuaWQpKSksdGhpcy5jb25uZWN0ZWQ/dGhpcy5lbWl0RXZlbnQodCk6dGhpcy5yZWNlaXZlQnVmZmVyLnB1c2goT2JqZWN0LmZyZWV6ZSh0KSl9ZW1pdEV2ZW50KGUpe2lmKHRoaXMuX2FueUxpc3RlbmVycyYmdGhpcy5fYW55TGlzdGVuZXJzLmxlbmd0aCl7Y29uc3QgdD10aGlzLl9hbnlMaXN0ZW5lcnMuc2xpY2UoKTtmb3IoY29uc3QgbiBvZiB0KW4uYXBwbHkodGhpcyxlKX1zdXBlci5lbWl0LmFwcGx5KHRoaXMsZSksdGhpcy5fcGlkJiZlLmxlbmd0aCYmXFxcInN0cmluZ1xcXCI9PXR5cGVvZiBlW2UubGVuZ3RoLTFdJiYodGhpcy5fbGFzdE9mZnNldD1lW2UubGVuZ3RoLTFdKX1hY2soZSl7Y29uc3QgdD10aGlzO2xldCBuPSExO3JldHVybiBmdW5jdGlvbiguLi5zKXtufHwobj0hMCxhKFxcXCJzZW5kaW5nIGFjayAlalxcXCIscyksdC5wYWNrZXQoe3R5cGU6by5QYWNrZXRUeXBlLkFDSyxpZDplLGRhdGE6c30pKX19b25hY2soZSl7Y29uc3QgdD10aGlzLmFja3NbZS5pZF07XFxcImZ1bmN0aW9uXFxcIj09dHlwZW9mIHQ/KGEoXFxcImNhbGxpbmcgYWNrICVzIHdpdGggJWpcXFwiLGUuaWQsZS5kYXRhKSx0LmFwcGx5KHRoaXMsZS5kYXRhKSxkZWxldGUgdGhpcy5hY2tzW2UuaWRdKTphKFxcXCJiYWQgYWNrICVzXFxcIixlLmlkKX1vbmNvbm5lY3QoZSx0KXthKFxcXCJzb2NrZXQgY29ubmVjdGVkIHdpdGggaWQgJXNcXFwiLGUpLHRoaXMuaWQ9ZSx0aGlzLnJlY292ZXJlZD10JiZ0aGlzLl9waWQ9PT10LHRoaXMuX3BpZD10LHRoaXMuY29ubmVjdGVkPSEwLHRoaXMuZW1pdEJ1ZmZlcmVkKCksdGhpcy5lbWl0UmVzZXJ2ZWQoXFxcImNvbm5lY3RcXFwiKSx0aGlzLl9kcmFpblF1ZXVlKCEwKX1lbWl0QnVmZmVyZWQoKXt0aGlzLnJlY2VpdmVCdWZmZXIuZm9yRWFjaChlPT50aGlzLmVtaXRFdmVudChlKSksdGhpcy5yZWNlaXZlQnVmZmVyPVtdLHRoaXMuc2VuZEJ1ZmZlci5mb3JFYWNoKGU9Pnt0aGlzLm5vdGlmeU91dGdvaW5nTGlzdGVuZXJzKGUpLHRoaXMucGFja2V0KGUpfSksdGhpcy5zZW5kQnVmZmVyPVtdfW9uZGlzY29ubmVjdCgpe2EoXFxcInNlcnZlciBkaXNjb25uZWN0ICglcylcXFwiLHRoaXMubnNwKSx0aGlzLmRlc3Ryb3koKSx0aGlzLm9uY2xvc2UoXFxcImlvIHNlcnZlciBkaXNjb25uZWN0XFxcIil9ZGVzdHJveSgpe3RoaXMuc3VicyYmKHRoaXMuc3Vicy5mb3JFYWNoKGU9PmUoKSksdGhpcy5zdWJzPXZvaWQgMCksdGhpcy5pby5fZGVzdHJveSh0aGlzKX1kaXNjb25uZWN0KCl7cmV0dXJuIHRoaXMuY29ubmVjdGVkJiYoYShcXFwicGVyZm9ybWluZyBkaXNjb25uZWN0ICglcylcXFwiLHRoaXMubnNwKSx0aGlzLnBhY2tldCh7dHlwZTpvLlBhY2tldFR5cGUuRElTQ09OTkVDVH0pKSx0aGlzLmRlc3Ryb3koKSx0aGlzLmNvbm5lY3RlZCYmdGhpcy5vbmNsb3NlKFxcXCJpbyBjbGllbnQgZGlzY29ubmVjdFxcXCIpLHRoaXN9Y2xvc2UoKXtyZXR1cm4gdGhpcy5kaXNjb25uZWN0KCl9Y29tcHJlc3MoZSl7cmV0dXJuIHRoaXMuZmxhZ3MuY29tcHJlc3M9ZSx0aGlzfWdldCB2b2xhdGlsZSgpe3JldHVybiB0aGlzLmZsYWdzLnZvbGF0aWxlPSEwLHRoaXN9dGltZW91dChlKXtyZXR1cm4gdGhpcy5mbGFncy50aW1lb3V0PWUsdGhpc31vbkFueShlKXtyZXR1cm4gdGhpcy5fYW55TGlzdGVuZXJzPXRoaXMuX2FueUxpc3RlbmVyc3x8W10sdGhpcy5fYW55TGlzdGVuZXJzLnB1c2goZSksdGhpc31wcmVwZW5kQW55KGUpe3JldHVybiB0aGlzLl9hbnlMaXN0ZW5lcnM9dGhpcy5fYW55TGlzdGVuZXJzfHxbXSx0aGlzLl9hbnlMaXN0ZW5lcnMudW5zaGlmdChlKSx0aGlzfW9mZkFueShlKXtpZighdGhpcy5fYW55TGlzdGVuZXJzKXJldHVybiB0aGlzO2lmKGUpe2NvbnN0IHQ9dGhpcy5fYW55TGlzdGVuZXJzO2ZvcihsZXQgbj0wO248dC5sZW5ndGg7bisrKWlmKGU9PT10W25dKXJldHVybiB0LnNwbGljZShuLDEpLHRoaXN9ZWxzZSB0aGlzLl9hbnlMaXN0ZW5lcnM9W107cmV0dXJuIHRoaXN9bGlzdGVuZXJzQW55KCl7cmV0dXJuIHRoaXMuX2FueUxpc3RlbmVyc3x8W119b25BbnlPdXRnb2luZyhlKXtyZXR1cm4gdGhpcy5fYW55T3V0Z29pbmdMaXN0ZW5lcnM9dGhpcy5fYW55T3V0Z29pbmdMaXN0ZW5lcnN8fFtdLHRoaXMuX2FueU91dGdvaW5nTGlzdGVuZXJzLnB1c2goZSksdGhpc31wcmVwZW5kQW55T3V0Z29pbmcoZSl7cmV0dXJuIHRoaXMuX2FueU91dGdvaW5nTGlzdGVuZXJzPXRoaXMuX2FueU91dGdvaW5nTGlzdGVuZXJzfHxbXSx0aGlzLl9hbnlPdXRnb2luZ0xpc3RlbmVycy51bnNoaWZ0KGUpLHRoaXN9b2ZmQW55T3V0Z29pbmcoZSl7aWYoIXRoaXMuX2FueU91dGdvaW5nTGlzdGVuZXJzKXJldHVybiB0aGlzO2lmKGUpe2NvbnN0IHQ9dGhpcy5fYW55T3V0Z29pbmdMaXN0ZW5lcnM7Zm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspaWYoZT09PXRbbl0pcmV0dXJuIHQuc3BsaWNlKG4sMSksdGhpc31lbHNlIHRoaXMuX2FueU91dGdvaW5nTGlzdGVuZXJzPVtdO3JldHVybiB0aGlzfWxpc3RlbmVyc0FueU91dGdvaW5nKCl7cmV0dXJuIHRoaXMuX2FueU91dGdvaW5nTGlzdGVuZXJzfHxbXX1ub3RpZnlPdXRnb2luZ0xpc3RlbmVycyhlKXtpZih0aGlzLl9hbnlPdXRnb2luZ0xpc3RlbmVycyYmdGhpcy5fYW55T3V0Z29pbmdMaXN0ZW5lcnMubGVuZ3RoKXtjb25zdCB0PXRoaXMuX2FueU91dGdvaW5nTGlzdGVuZXJzLnNsaWNlKCk7Zm9yKGNvbnN0IG4gb2YgdCluLmFwcGx5KHRoaXMsZS5kYXRhKX19fXQuU29ja2V0PWx9LDYyMzU6KGUsdCk9PntcXFwidXNlIHN0cmljdFxcXCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXFxcIl9fZXNNb2R1bGVcXFwiLHt2YWx1ZTohMH0pLHQuZ2xvYmFsVGhpc1NoaW09dm9pZCAwLHQuZ2xvYmFsVGhpc1NoaW09XFxcInVuZGVmaW5lZFxcXCIhPXR5cGVvZiBzZWxmP3NlbGY6XFxcInVuZGVmaW5lZFxcXCIhPXR5cGVvZiB3aW5kb3c/d2luZG93OkZ1bmN0aW9uKFxcXCJyZXR1cm4gdGhpc1xcXCIpKCl9LDYyNzA6ZnVuY3Rpb24oZSx0LG4pe1xcXCJ1c2Ugc3RyaWN0XFxcIjt2YXIgcz10aGlzJiZ0aGlzLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcXFwiX19lc01vZHVsZVxcXCIse3ZhbHVlOiEwfSk7Y29uc3Qgbz1zKG4oNTYwNikpLHI9cyhuKDgwMDcpKSxpPXMobigxMzA4KSksYT1zKG4oODIwMykpLGM9cyhuKDE5NzMpKSxsPXMobig1MDI4KSksdT1zKG4oNjUyOSkpLGg9cyhuKDY5NTApKSxwPXMobig1Mzc5KSksZD1uKDU5MTkpLGY9cyhuKDcwMDYpKSxnPW4oOTkzNCkseT1uKDg2MjYpLG09KEJvb2xlYW4oby5kZWZhdWx0LmVudi5JU19ET0NLRVIpLGxvY2F0aW9uLmhyZWYuaW5kZXhPZihcXFwibG9jYWxob3N0XFxcIik+PTA/YS5kZWZhdWx0OmMuZGVmYXVsdCk7Y2xhc3MgQ3tzdGF0aWMgZ2V0IGRvbWFpbigpe3JldHVybiBoLmRlZmF1bHQuZW52PT09cC5kZWZhdWx0LkRFVkVMT1BNRU5UfHxoLmRlZmF1bHQuZW52PT09cC5kZWZhdWx0LkxPQ0FMSE9TVD9wLmRlZmF1bHQuREVWRUxPUE1FTlRfRE9NQUlOOnAuZGVmYXVsdC5QUk9EVUNUSU9OX0FQSV9ET01BSU59c3RhdGljIGdldCBvcHRpb24oKXtyZXR1cm57YXV0b0Nvbm5lY3Q6ITAscmVjb25uZWN0aW9uOiEwLHJlY29ubmVjdGlvbkF0dGVtcHRzOjEvMCxyZWNvbm5lY3Rpb25EZWxheToxZTMscmVjb25uZWN0aW9uRGVsYXlNYXg6NWUzLHRpbWVvdXQ6MmU0LHRyYW5zcG9ydHM6W1xcXCJ3ZWJzb2NrZXRcXFwiXSx1cGdyYWRlOiExLGZvcmNlTmV3OiExLHF1ZXJ5Ont9LHdpdGhDcmVkZW50aWFsczohMSxleHRyYUhlYWRlcnM6e319fWNvbnN0cnVjdG9yKGUpe3RoaXMudHVuZT10aGlzLnR1bmUuYmluZCh0aGlzKSx0aGlzLnVudHVuZT10aGlzLnVudHVuZS5iaW5kKHRoaXMpLHRoaXMuZXhlPXRoaXMuZXhlLmJpbmQodGhpcyksdGhpcy5vbkNvbm5lY3Q9dGhpcy5vbkNvbm5lY3QuYmluZCh0aGlzKSx0aGlzLm9uQ29ubmVjdEVycm9yPXRoaXMub25Db25uZWN0RXJyb3IuYmluZCh0aGlzKSx0aGlzLm9uUmVzcG9uc2VFbWl0PXRoaXMub25SZXNwb25zZUVtaXQuYmluZCh0aGlzKSx0aGlzLm9uUmVzcG9uc2VCb2FyZGNhc3Q9dGhpcy5vblJlc3BvbnNlQm9hcmRjYXN0LmJpbmQodGhpcyksdGhpcy5vZmZSZXNwb25zZT10aGlzLm9mZlJlc3BvbnNlLmJpbmQodGhpcyksdGhpcy5waWQ9XFxcIlxcXCIsdGhpcy5pb3M9e30sdGhpcy5tZXRob2RzPXt9LHRoaXMud3NzV29ya2VyPWV9ZXhlKGUsdCxuLHMpeygwLGQuaXNWYWxpZEtleSkobix0aGlzKSYmXFxcImZ1bmN0aW9uXFxcIj09dHlwZW9mIHRoaXNbbl0mJih0aGlzLnBpZD1lLHRoaXNbbl0odCxzKSksdGhpcy5pb3NbdF0mJih0aGlzLnBpZD1lLHRoaXMuaW9zW3RdLmVtaXQobixzKSl9dHVuZShlLHtib290T3B0aW9uOnR9KXtjb25zdCBuPXRoaXMucGlkO2xldCBzPWYuZGVmYXVsdC5yb290Q29ubmVjdGlvbixvPXsuLi5nLmluaXR9LGE9YD90dW5lSWQ9JHtlfWAsYz1gJHtDLmRvbWFpbn06JHtwLmRlZmF1bHQuUE9SVFMuSFRUUFN9YDtpZih0KXtzPWwuZGVmYXVsdC5nZXRDb25uZWN0aW9uKHQuY29ubmVjdGlvbiksbz10LnR1bmVPcHRpb24sYSs9YCYke2wuZGVmYXVsdC5nZXRUdW5lT3B0aW9uU3RyaW5nKHQudHVuZU9wdGlvbil9YDtjb25zdCBlPWkuZGVmYXVsdC5nZXRHYXRld2F5KHtjaENvbmZpZ0pzb246bSx0dW5lQ29ubmVjdGlvbjpzfSk7Yz1gJHtlLmhvc3R9OiR7ZS5wb3J0fWB9Y29uc3QgaD1gJHt1LmRlZmF1bHQuSFRUUFNfUFJPVE9DT0x9Ly8ke2N9JHthfWA7dGhpcy5pb3NbZV09KDAsci5kZWZhdWx0KShoLHsuLi5DLm9wdGlvbn0pLHRoaXMuaW9zW2VdLm9uKFxcXCJjb25uZWN0XFxcIiwoKT0+dGhpcy53c3NXb3JrZXIucG9zdE1lc3NhZ2Uoe3BpZDpuLHR1bmVJZDplLG1ldGhvZDp5LnN0YXR1c1R1bm5pbmd9KSksdGhpcy5pb3NbZV0ub24oXFxcImRpc2Nvbm5lY3RcXFwiLCgpPT57Y29uc3QgdD17dHlwZTpcXFwidW50dW5lXFxcIn07dGhpcy53c3NXb3JrZXIucG9zdE1lc3NhZ2Uoe3BpZDpuLHR1bmVJZDplLG1ldGhvZDp0LnR5cGUsYXBpU3RhdGU6dH0pLGRlbGV0ZSB0aGlzLmlvc1tlXX0pLHRoaXMuaW9zW2VdLm9uKFxcXCJjb25uZWN0X2Vycm9yXFxcIix0PT57Y29uc29sZS5lcnJvcihcXFwiQ29ubmVjdGlvbiBlcnJvcjpcXFwiLGUsdCl9KSx0aGlzLm9uUmVzcG9uc2VFbWl0KGUscyksdGhpcy5vblJlc3BvbnNlQm9hcmRjYXN0KGUscyxvKX11bnR1bmUoZSx0KXsoMCxkLmlzVmFsaWRLZXkpKHQsdGhpcy5pb3MpJiZ0aGlzLmlvc1t0XS5kaXNjb25uZWN0KCl9b25Db25uZWN0KCl7fW9uQ29ubmVjdEVycm9yKCl7fW9uUmVzcG9uc2VFbWl0KGUsdCl7dGhpcy5pb3NbZV0uX2NhbGxiYWNrc1t0XXx8dGhpcy5pb3NbZV0ub24oZSx0PT57Y29uc3Qgbj10aGlzLnBpZCxzPXQudHlwZSxvPXUuZGVmYXVsdC5TRVJWRVJfVE9fQVBJX0VNSVQ7dGhpcy53c3NXb3JrZXIucG9zdE1lc3NhZ2Uoe3BpZDpuLHR1bmVJZDplLG1ldGhvZDpzLHNlcnZlclRvQXBpVHlwZTpvLGFwaVN0YXRlOnR9KX0pfW9uUmVzcG9uc2VCb2FyZGNhc3QoZSx0LG4pe2lmKCF0aGlzLmlvc1tlXS5fY2FsbGJhY2tzW3RdKXtjb25zdCBzPXQ9Pntjb25zdCBuPXRoaXMucGlkLHM9dC50eXBlLG89dS5kZWZhdWx0LlNFUlZFUl9UT19BUElfQlJPQURDQVNUO3RoaXMud3NzV29ya2VyLnBvc3RNZXNzYWdlKHtwaWQ6bix0dW5lSWQ6ZSxtZXRob2Q6cyxzZXJ2ZXJUb0FwaVR5cGU6byxhcGlTdGF0ZTp0fSl9O3RoaXMuaW9zW2VdLm9uKGB0dW5lOiR7dH1gLHMpLE9iamVjdC5rZXlzKG4pLmZvckVhY2gobz0+e25bb10mJnRoaXMuaW9zW2VdLm9uKGAke299OiR7dH1gLHMpfSl9fW9mZlJlc3BvbnNlKGUsdCl7dGhpcy5pb3NbZV0mJnRoaXMuaW9zW2VdLl9jYWxsYmFja3NbZV0mJih0aGlzLmlvc1tlXS5vZmYoZSksdGhpcy5pb3NbZV0ub2ZmKHQpKX19dC5kZWZhdWx0PUN9LDYzNzY6KGUsdCxuKT0+e1xcXCJ1c2Ugc3RyaWN0XFxcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcXFwiX19lc01vZHVsZVxcXCIse3ZhbHVlOiEwfSksdC5kZWNvZGVQYXlsb2FkPXQuZGVjb2RlUGFja2V0PXQuZW5jb2RlUGF5bG9hZD10LmVuY29kZVBhY2tldD10LnByb3RvY29sPXZvaWQgMCx0LmNyZWF0ZVBhY2tldEVuY29kZXJTdHJlYW09ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFRyYW5zZm9ybVN0cmVhbSh7dHJhbnNmb3JtKGUsdCl7KDAscy5lbmNvZGVQYWNrZXRUb0JpbmFyeSkoZSxuPT57Y29uc3Qgcz1uLmxlbmd0aDtsZXQgbztpZihzPDEyNilvPW5ldyBVaW50OEFycmF5KDEpLG5ldyBEYXRhVmlldyhvLmJ1ZmZlcikuc2V0VWludDgoMCxzKTtlbHNlIGlmKHM8NjU1MzYpe289bmV3IFVpbnQ4QXJyYXkoMyk7Y29uc3QgZT1uZXcgRGF0YVZpZXcoby5idWZmZXIpO2Uuc2V0VWludDgoMCwxMjYpLGUuc2V0VWludDE2KDEscyl9ZWxzZXtvPW5ldyBVaW50OEFycmF5KDkpO2NvbnN0IGU9bmV3IERhdGFWaWV3KG8uYnVmZmVyKTtlLnNldFVpbnQ4KDAsMTI3KSxlLnNldEJpZ1VpbnQ2NCgxLEJpZ0ludChzKSl9ZS5kYXRhJiZcXFwic3RyaW5nXFxcIiE9dHlwZW9mIGUuZGF0YSYmKG9bMF18PTEyOCksdC5lbnF1ZXVlKG8pLHQuZW5xdWV1ZShuKX0pfX0pfSx0LmNyZWF0ZVBhY2tldERlY29kZXJTdHJlYW09ZnVuY3Rpb24oZSx0KXthfHwoYT1uZXcgVGV4dERlY29kZXIpO2NvbnN0IG49W107bGV0IHM9MCxpPS0xLHU9ITE7cmV0dXJuIG5ldyBUcmFuc2Zvcm1TdHJlYW0oe3RyYW5zZm9ybShoLHApe2ZvcihuLnB1c2goaCk7Oyl7aWYoMD09PXMpe2lmKGMobik8MSlicmVhaztjb25zdCBlPWwobiwxKTt1PSEoMTI4Jn5lWzBdKSxpPTEyNyZlWzBdLHM9aTwxMjY/MzoxMjY9PT1pPzE6Mn1lbHNlIGlmKDE9PT1zKXtpZihjKG4pPDIpYnJlYWs7Y29uc3QgZT1sKG4sMik7aT1uZXcgRGF0YVZpZXcoZS5idWZmZXIsZS5ieXRlT2Zmc2V0LGUubGVuZ3RoKS5nZXRVaW50MTYoMCkscz0zfWVsc2UgaWYoMj09PXMpe2lmKGMobik8OClicmVhaztjb25zdCBlPWwobiw4KSx0PW5ldyBEYXRhVmlldyhlLmJ1ZmZlcixlLmJ5dGVPZmZzZXQsZS5sZW5ndGgpLG89dC5nZXRVaW50MzIoMCk7aWYobz5NYXRoLnBvdygyLDIxKS0xKXtwLmVucXVldWUoci5FUlJPUl9QQUNLRVQpO2JyZWFrfWk9bypNYXRoLnBvdygyLDMyKSt0LmdldFVpbnQzMig0KSxzPTN9ZWxzZXtpZihjKG4pPGkpYnJlYWs7Y29uc3QgZT1sKG4saSk7cC5lbnF1ZXVlKCgwLG8uZGVjb2RlUGFja2V0KSh1P2U6YS5kZWNvZGUoZSksdCkpLHM9MH1pZigwPT09aXx8aT5lKXtwLmVucXVldWUoci5FUlJPUl9QQUNLRVQpO2JyZWFrfX19fSl9O2NvbnN0IHM9bigyNjg2KTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcXFwiZW5jb2RlUGFja2V0XFxcIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcy5lbmNvZGVQYWNrZXR9fSk7Y29uc3Qgbz1uKDI2NjIpO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFxcXCJkZWNvZGVQYWNrZXRcXFwiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBvLmRlY29kZVBhY2tldH19KTtjb25zdCByPW4oMjA0NiksaT1TdHJpbmcuZnJvbUNoYXJDb2RlKDMwKTtsZXQgYTtmdW5jdGlvbiBjKGUpe3JldHVybiBlLnJlZHVjZSgoZSx0KT0+ZSt0Lmxlbmd0aCwwKX1mdW5jdGlvbiBsKGUsdCl7aWYoZVswXS5sZW5ndGg9PT10KXJldHVybiBlLnNoaWZ0KCk7Y29uc3Qgbj1uZXcgVWludDhBcnJheSh0KTtsZXQgcz0wO2ZvcihsZXQgbz0wO288dDtvKyspbltvXT1lWzBdW3MrK10scz09PWVbMF0ubGVuZ3RoJiYoZS5zaGlmdCgpLHM9MCk7cmV0dXJuIGUubGVuZ3RoJiZzPGVbMF0ubGVuZ3RoJiYoZVswXT1lWzBdLnNsaWNlKHMpKSxufXQuZW5jb2RlUGF5bG9hZD0oZSx0KT0+e2NvbnN0IG49ZS5sZW5ndGgsbz1uZXcgQXJyYXkobik7bGV0IHI9MDtlLmZvckVhY2goKGUsYSk9PnsoMCxzLmVuY29kZVBhY2tldCkoZSwhMSxlPT57b1thXT1lLCsrcj09PW4mJnQoby5qb2luKGkpKX0pfSl9LHQuZGVjb2RlUGF5bG9hZD0oZSx0KT0+e2NvbnN0IG49ZS5zcGxpdChpKSxzPVtdO2ZvcihsZXQgZT0wO2U8bi5sZW5ndGg7ZSsrKXtjb25zdCByPSgwLG8uZGVjb2RlUGFja2V0KShuW2VdLHQpO2lmKHMucHVzaChyKSxcXFwiZXJyb3JcXFwiPT09ci50eXBlKWJyZWFrfXJldHVybiBzfSx0LnByb3RvY29sPTR9LDY1Mjk6KGUsdCk9PntcXFwidXNlIHN0cmljdFxcXCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXFxcIl9fZXNNb2R1bGVcXFwiLHt2YWx1ZTohMH0pO2NsYXNzIG57c3RhdGljIGdldCBUQUxLTl9QUk9UT0NPTCgpe3JldHVyblxcXCJ0YWxrbjpcXFwifXN0YXRpYyBnZXQgSFRUUF9QUk9UT0NPTCgpe3JldHVyblxcXCJodHRwOlxcXCJ9c3RhdGljIGdldCBIVFRQU19QUk9UT0NPTCgpe3JldHVyblxcXCJodHRwczpcXFwifXN0YXRpYyBnZXQgV1NTX1BST1RPQ09MKCl7cmV0dXJuXFxcIndzczpcXFwifXN0YXRpYyBnZXQgVU5LTk9XTl9QUk9UT0NPTCgpe3JldHVyblxcXCI/Pz8/OlxcXCJ9c3RhdGljIGdldCBFTUlUX01FX0tFWSgpe3JldHVyblxcXCJARU1JVF9NRVxcXCJ9c3RhdGljIGdldCBBUElfU0VQQVJBVEVfSU9fVFlQRV9TVEFSVCgpe3JldHVyblxcXCJbXFxcIn1zdGF0aWMgZ2V0IEFQSV9TRVBBUkFURV9JT19UWVBFX0VORCgpe3JldHVyblxcXCJdXFxcIn1zdGF0aWMgZ2V0IEFQSV9SRVFVRVNUX1RZUEUoKXtyZXR1cm5cXFwiUkVRVUVTVFxcXCJ9c3RhdGljIGdldCBBUElfUkVTUE9OU0VfVFlQRV9FTUlUKCl7cmV0dXJuXFxcIkVNSVRcXFwifXN0YXRpYyBnZXQgQVBJX1JFU1BPTlNFX1RZUEVfQlJPQURDQVNUKCl7cmV0dXJuXFxcIkJST0FEQ0FTVFxcXCJ9c3RhdGljIGdldCBBUElfU0VUVVAoKXtyZXR1cm5cXFwiQVBJX1NFVFVQXFxcIn1zdGF0aWMgZ2V0IFVOS05PV04oKXtyZXR1cm5cXFwiVU5LTk9XTlxcXCJ9c3RhdGljIGdldCBDT05ORUNUSU9OX1NFUlZFUl9LRVkoKXtyZXR1cm5cXFwiQ09OTkVDVElPTl9TRVJWRVJcXFwifXN0YXRpYyBnZXQgQVBJX1RPX1NFUlZFUl9SRVFVRVNUKCl7cmV0dXJuYEFQSV9UT19TRVJWRVJbJHtuLkFQSV9SRVFVRVNUX1RZUEV9XSR7bi5NRVRIT0RfQ09MT059YH1zdGF0aWMgZ2V0IFNFUlZFUl9UT19BUElfRU1JVCgpe3JldHVybmBTRVJWRVJfVE9fQVBJWyR7bi5BUElfUkVTUE9OU0VfVFlQRV9FTUlUfV0ke24uTUVUSE9EX0NPTE9OfWB9c3RhdGljIGdldCBTRVJWRVJfVE9fQVBJX0JST0FEQ0FTVCgpe3JldHVybmBTRVJWRVJfVE9fQVBJWyR7bi5BUElfUkVTUE9OU0VfVFlQRV9CUk9BRENBU1R9XSR7bi5NRVRIT0RfQ09MT059YH1zdGF0aWMgZ2V0IEFQSV9UT19DTElFTlRfUkVRVUVTVCgpe3JldHVybmBBUElfVE9fQ0xJRU5UWyR7bi5BUElfUkVRVUVTVF9UWVBFfV0ke24uTUVUSE9EX0NPTE9OfWB9c3RhdGljIGdldCBBUElfVE9fQ0xJRU5UX0VNSVQoKXtyZXR1cm5gQVBJX1RPX0NMSUVOVFske24uQVBJX1JFU1BPTlNFX1RZUEVfRU1JVH1dJHtuLk1FVEhPRF9DT0xPTn1gfXN0YXRpYyBnZXQgQVBJX1RPX0NMSUVOVF9CUk9BRENBU1QoKXtyZXR1cm5gQVBJX1RPX0NMSUVOVFske24uQVBJX1JFU1BPTlNFX1RZUEVfQlJPQURDQVNUfV0ke24uTUVUSE9EX0NPTE9OfWB9c3RhdGljIGdldCBBUElfQlJPQURDQVNUX0NBTExCQUNLKCl7cmV0dXJuXFxcInR1bmVcXFwifXN0YXRpYyBnZXQgUkVEVVhfQUNUSU9OX0tFWSgpe3JldHVyblxcXCJ0eXBlXFxcIn1zdGF0aWMgZ2V0IE1FVEhPRF9DT0xPTigpe3JldHVyblxcXCI6XFxcIn1zdGF0aWMgZ2V0IEFERF9DTElFTlRfQUNUSU9OX1BSRUZJWCgpe3JldHVyblxcXCJBUElfVE9fQ0xJRU5UXFxcIn1zdGF0aWMgZ2V0IG1hcCgpe3JldHVybnt0dW5lOntyZXF1ZXN0UHVibGljU3RhdGU6e3R1bmVDaDpbXFxcImNvbm5lY3Rpb25cXFwiXX0scmVxdWVzdFByaXZhdGVTdGF0ZTp7fSxyZXNwb25zZUVtaXRTdGF0ZTp7dXNlcjpbXFxcInVpZFxcXCJdLHNldHRpbmc6XFxcIipcXFwiLHRocmVhZDpcXFwiKlxcXCJ9LHJlc3BvbnNlQnJvYWRjYXN0U3RhdGU6e3RocmVhZDpbXFxcImxpdmVDbnRcXFwiLFxcXCJjaFxcXCJdfX0sZmV0Y2hQb3N0czp7cmVxdWVzdFB1YmxpY1N0YXRlOnt9LHJlcXVlc3RQcml2YXRlU3RhdGU6e3RocmVhZDpbXFxcImNoXFxcIixcXFwicHJvdG9jb2xcXFwiLFxcXCJob3N0XFxcIixcXFwiaGFzU2xhc2hcXFwiXSxhcHA6W1xcXCJtdWx0aXN0cmVhbVxcXCIsXFxcInJvb3RDaFxcXCIsXFxcImRpc3BUaHJlYWRUeXBlXFxcIixcXFwiYWN0aW9uZWRcXFwiLFxcXCJvZmZzZXRGaW5kSWRcXFwiLFxcXCJpc1RvZ2dsZU11bHRpc3RyZWFtXFxcIl19LHJlc3BvbnNlRW1pdFN0YXRlOntwb3N0czpcXFwiKlxcXCIsdGhyZWFkOlxcXCIqXFxcIn0scmVzcG9uc2VCcm9hZGNhc3RTdGF0ZTp7fX0sZ2V0TW9yZTp7cmVxdWVzdFB1YmxpY1N0YXRlOnt9LHJlcXVlc3RQcml2YXRlU3RhdGU6e3RocmVhZDpbXFxcImNoXFxcIl0sYXBwOltcXFwibXVsdGlzdHJlYW1cXFwiLFxcXCJkaXNwVGhyZWFkVHlwZVxcXCIsXFxcIm9mZnNldEZpbmRJZFxcXCJdfSxyZXNwb25zZUVtaXRTdGF0ZTp7YXBwOltcXFwiZGlzcFRocmVhZFR5cGVcXFwiLFxcXCJvZmZzZXRGaW5kSWRcXFwiXSxwb3N0czpcXFwiKlxcXCJ9LHJlc3BvbnNlQnJvYWRjYXN0U3RhdGU6e319LHVwZGF0ZVRocmVhZDp7cmVxdWVzdFB1YmxpY1N0YXRlOnt9LHJlcXVlc3RQcml2YXRlU3RhdGU6e3RocmVhZDpbXFxcImNoXFxcIixcXFwicHJvdG9jb2xcXFwiLFxcXCJob3N0XFxcIixcXFwiaGFzU2xhc2hcXFwiXX0scmVzcG9uc2VFbWl0U3RhdGU6e3RocmVhZDpcXFwiKlxcXCJ9LHJlc3BvbnNlQnJvYWRjYXN0U3RhdGU6e319LGNoYW5nZVRocmVhZDp7cmVxdWVzdFB1YmxpY1N0YXRlOnt9LHJlcXVlc3RQcml2YXRlU3RhdGU6e3RocmVhZDpbXFxcImNoXFxcIixcXFwiaGFzU2xhc2hcXFwiLFxcXCJwcm90b2NvbFxcXCJdLGFwcDpbXFxcInR1bmVkQ2hcXFwiLFxcXCJtdWx0aXN0cmVhbVxcXCIsXFxcInJvb3RDaFxcXCIsXFxcImRpc3BUaHJlYWRUeXBlXFxcIixcXFwiYWN0aW9uZWRcXFwiLFxcXCJvZmZzZXRGaW5kSWRcXFwiLFxcXCJpc1RvZ2dsZU11bHRpc3RyZWFtXFxcIl19LHJlc3BvbnNlRW1pdFN0YXRlOnt0aHJlYWQ6XFxcIipcXFwifSxyZXNwb25zZUJyb2FkY2FzdFN0YXRlOnt0aHJlYWQ6W1xcXCJsaXZlQ250XFxcIixcXFwiY2hcXFwiXX19LGNoYW5nZVRocmVhZERldGFpbDp7cmVxdWVzdFB1YmxpY1N0YXRlOnt9LHJlcXVlc3RQcml2YXRlU3RhdGU6e3RocmVhZDpbXFxcImNoXFxcIl19LHJlc3BvbnNlRW1pdFN0YXRlOnt0aHJlYWQ6XFxcIipcXFwifSxyZXNwb25zZUJyb2FkY2FzdFN0YXRlOnt9fSxhZGRGaW5kQ2hpbGQ6e3JlcXVlc3RQdWJsaWNTdGF0ZTp7fSxyZXF1ZXN0UHJpdmF0ZVN0YXRlOnt0aHJlYWQ6W1xcXCJjaFxcXCJdfSxyZXNwb25zZUVtaXRTdGF0ZTp7dGhyZWFkOlxcXCIqXFxcIn0scmVzcG9uc2VCcm9hZGNhc3RTdGF0ZTp7fX0sZmV0Y2hSYW5rOntyZXF1ZXN0UHVibGljU3RhdGU6e30scmVxdWVzdFByaXZhdGVTdGF0ZTp7YXBwOltcXFwiZmluZFR5cGVcXFwiLFxcXCJyb290Q2hcXFwiLFxcXCJpc1JhbmtEZXRhaWxNb2RlXFxcIl19LHJlc3BvbnNlRW1pdFN0YXRlOntyYW5rOlxcXCIqXFxcIn0scmVzcG9uc2VCcm9hZGNhc3RTdGF0ZTp7fX0scG9zdDp7cmVxdWVzdFB1YmxpY1N0YXRlOnt9LHJlcXVlc3RQcml2YXRlU3RhdGU6e3VzZXI6W1xcXCJ1aWRcXFwiLFxcXCJ1dHlwZVxcXCJdLGFwcDpbXFxcImlucHV0UG9zdFxcXCIsXFxcImlucHV0U3RhbXBJZFxcXCIsXFxcImlucHV0Q3VycmVudFRpbWVcXFwiLFxcXCJkaXNwVGhyZWFkVHlwZVxcXCJdLHRocmVhZDpbXFxcImZpbmRUeXBlXFxcIixcXFwidGl0bGVcXFwiLFxcXCJwcm90b2NvbFxcXCIsXFxcImNoXFxcIixcXFwiY2hzXFxcIixcXFwiZW1vdGlvbnNcXFwiLFxcXCJmYXZpY29uXFxcIixcXFwiY29udGVudFR5cGVcXFwiXX0scmVzcG9uc2VFbWl0U3RhdGU6e30scmVzcG9uc2VCcm9hZGNhc3RTdGF0ZTp7cG9zdHM6XFxcIipcXFwiLHRocmVhZDpbXFxcImNoXFxcIixcXFwiZW1vdGlvbnNcXFwiLFxcXCJwb3N0Q250XFxcIl0sdXNlcjpbXFxcInVpZFxcXCJdfX0sdXBkYXRlVGhyZWFkU2VydmVyTWV0YXM6e3JlcXVlc3RQdWJsaWNTdGF0ZTp7dGhyZWFkOltcXFwic2VydmVyTWV0YXNcXFwiXX0scmVxdWVzdFByaXZhdGVTdGF0ZTp7dGhyZWFkOltcXFwiaG9zdFxcXCIsXFxcInByb3RvY29sXFxcIixcXFwiY2hcXFwiXSx1c2VyOltcXFwidWlkXFxcIl19LHJlc3BvbnNlRW1pdFN0YXRlOnt0aHJlYWQ6XFxcIipcXFwifSxyZXNwb25zZUJyb2FkY2FzdFN0YXRlOnt9fSxkaXNjb25uZWN0OntyZXF1ZXN0UHVibGljU3RhdGU6e30scmVxdWVzdFByaXZhdGVTdGF0ZTp7fSxyZXNwb25zZUVtaXRTdGF0ZTp7fSxyZXNwb25zZUJyb2FkY2FzdFN0YXRlOnt0aHJlYWQ6W1xcXCJsaXZlQ250XFxcIixcXFwiY2hcXFwiXX19fX1zdGF0aWMgZ2V0U2VxdWVuY2VBY3Rpb25NYXAoZSl7Y29uc3QgdD1lLnNwbGl0KG4uTUVUSE9EX0NPTE9OKTtpZih0JiZ0WzBdKXtjb25zdCBlPVN0cmluZyh0WzBdLnNwbGl0KFxcXCJbXFxcIilbMF0pO2xldCBzO3JldHVybiBzPXRbMF0uaW5kZXhPZihgWyR7bi5BUElfUkVRVUVTVF9UWVBFfV1gKT4wP24uQVBJX1JFUVVFU1RfVFlQRTp0WzBdLmluZGV4T2YoYFske24uQVBJX1JFU1BPTlNFX1RZUEVfRU1JVH1dYCk+MD9uLkFQSV9SRVNQT05TRV9UWVBFX0VNSVQ6bi5BUElfUkVTUE9OU0VfVFlQRV9CUk9BRENBU1Qse3NlcXVlbmNlOmUsYWN0aW9uVHlwZTpzLGFjdGlvbk5hbWU6U3RyaW5nKHRbMV0pfX10aHJvd1xcXCJFcnJvcjogU2VxdWVuY2UgZ2V0U2VxdWVuY2VBY3Rpb25NYXBcXFwifXN0YXRpYyB1cGRhdGVDYWxsYmFja0V4ZUNvbmRpdGlvbk1hcChlKXtsZXQgdD17ZW1pdDohMCxicm9hZGNhc3Q6ITB9O2NvbnN0IHM9bi5tYXA7cmV0dXJuIHNbZV0mJih0LmVtaXQ9IShPYmplY3Qua2V5cyhzW2VdLnJlc3BvbnNlRW1pdFN0YXRlKS5sZW5ndGg+MCksdC5icm9hZGNhc3Q9IShPYmplY3Qua2V5cyhzW2VdLnJlc3BvbnNlQnJvYWRjYXN0U3RhdGUpLmxlbmd0aD4wKSksdH1zdGF0aWMgY29udmVydFNlcnZlclRvQXBpSW9UeXBlKGUsdCl7cmV0dXJuIHQuaW5kZXhPZihgJHtuLkFQSV9TRVBBUkFURV9JT19UWVBFX1NUQVJUfSR7bi5BUElfUkVRVUVTVF9UWVBFfSR7bi5BUElfU0VQQVJBVEVfSU9fVFlQRV9FTkR9YCk+PTA/bi5BUElfUkVRVUVTVF9UWVBFOnQuaW5kZXhPZihgJHtuLkFQSV9TRVBBUkFURV9JT19UWVBFX1NUQVJUfSR7bi5BUElfUkVTUE9OU0VfVFlQRV9CUk9BRENBU1R9JHtuLkFQSV9TRVBBUkFURV9JT19UWVBFX0VORH1gKT49MD9uLkFQSV9SRVNQT05TRV9UWVBFX0JST0FEQ0FTVDp0LmluZGV4T2YoYCR7bi5BUElfU0VQQVJBVEVfSU9fVFlQRV9TVEFSVH0ke24uQVBJX1JFU1BPTlNFX1RZUEVfRU1JVH0ke24uQVBJX1NFUEFSQVRFX0lPX1RZUEVfRU5EfWApPj0wP24uQVBJX1JFU1BPTlNFX1RZUEVfRU1JVDpuLkFQSV9TRVRVUH1zdGF0aWMgY29udmVydEV4dFRvQ2xpZW50QWN0aW9uVHlwZShlLHQpe3JldHVybiBuLmNvbnZlcnRBcGlUb0NsaWVudEFjdGlvblR5cGUodCl9c3RhdGljIGNvbnZlcnRBcGlUb0NsaWVudEFjdGlvblR5cGUoZSl7cmV0dXJuIDA9PT1lLmluZGV4T2Yobi5BUElfVE9fU0VSVkVSX1JFUVVFU1QpP2UucmVwbGFjZShuLkFQSV9UT19TRVJWRVJfUkVRVUVTVCxuLkFQSV9UT19DTElFTlRfUkVRVUVTVCk6MD09PWUuaW5kZXhPZihuLlNFUlZFUl9UT19BUElfRU1JVCk/ZS5yZXBsYWNlKG4uU0VSVkVSX1RPX0FQSV9FTUlULG4uQVBJX1RPX0NMSUVOVF9FTUlUKTowPT09ZS5pbmRleE9mKG4uU0VSVkVSX1RPX0FQSV9CUk9BRENBU1QpP2UucmVwbGFjZShuLlNFUlZFUl9UT19BUElfQlJPQURDQVNULG4uQVBJX1RPX0NMSUVOVF9CUk9BRENBU1QpOmV9c3RhdGljIGdldFJlcXVlc3RTdGF0ZShlLHQscyl7Y29uc3Qgbz1lLnJlcGxhY2Uobi5BUElfVE9fU0VSVkVSX1JFUVVFU1QsXFxcIlxcXCIpLHI9bi5tYXAse3JlcXVlc3RQdWJsaWNTdGF0ZTppLHJlcXVlc3RQcml2YXRlU3RhdGU6YX09cltvXTtsZXQgYz17W24uUkVEVVhfQUNUSU9OX0tFWV06b307cmV0dXJuIE9iamVjdC5rZXlzKGEpLmZvckVhY2goZT0+e2NbZV18fChjW2VdPXt9KSxhW2VdLmZvckVhY2gobj0+e2lmKCFjW2VdW25dKXtsZXQgbz10W2VdW25dO3MmJnNbZV0mJnNbZV1bbl0mJihvPXNbZV1bbl0pLGNbZV1bbl09b319KX0pLE9iamVjdC5rZXlzKGkpLmZvckVhY2goZT0+e2NbZV18fChjW2VdPXt9KSxpW2VdLmZvckVhY2godD0+e2NbZV1bdF18fChjW2VdW3RdPXMpfSl9KSxjfXN0YXRpYyBnZXRSZXNwb25zZVN0YXRlKGUsdCxzKXtjb25zdCBvPXQudHlwZSxyPW4ubWFwW29dW2ByZXNwb25zZSR7ZX1TdGF0ZWBdO2xldCBpPXtbbi5SRURVWF9BQ1RJT05fS0VZXTpvfTtyZXR1cm4gT2JqZWN0LmtleXMocikuZm9yRWFjaChlPT57aWYoIXNbZV0pdGhyb3dgU0VRVUVOQ0UgRVJST1I6IE5PX1VQREFURV9TVEFURV9LRVk6ICR7dC50eXBlfTogJHtlfWA7e2NvbnN0IG49cltlXTtsZXQgbz1zW2VdO1xcXCJtb2RlbFxcXCI9PT1vLmNvbnN0cnVjdG9yLm5hbWUmJihvPW8udG9KU09OKCksZGVsZXRlIG8uX2lkLGRlbGV0ZSBvLl9fdiksXFxcIipcXFwiPT09bj9pPXsuLi5pLFtlXTpvfTpuLmZvckVhY2gobj0+e2lmKHZvaWQgMD09PXNbZV1bbl0pdGhyb3dgU0VRVUVOQ0UgRVJST1I6IE5PX1VQREFURV9TVEFURV9DT0xVTU5fTkFNRTogJHt0LnR5cGV9OiAke2V9LiR7bn1gO2k9ey4uLmksW2VdOnsuLi5pW2VdLFtuXTpzW2VdW25dfX19KX19KSxpfXN0YXRpYyBnZXRSZXF1ZXN0QWN0aW9uU3RhdGUoZSx0PW51bGwsbj1udWxsKXtyZXR1cm5cXFwic3RyaW5nXFxcIj09dHlwZW9mIHQmJm51bGw9PT1uP3t0eXBlOmV9OlxcXCJvYmplY3RcXFwiPT10eXBlb2YgdCYmXFxcIm9iamVjdFxcXCI9PXR5cGVvZiBuP3suLi50LC4uLm4sdHlwZTplfTpcXFwic3RyaW5nXFxcIj09dHlwZW9mIHQmJlxcXCJvYmplY3RcXFwiPT10eXBlb2Ygbj97Li4ubix0eXBlOmV9OnsuLi50LHR5cGU6ZX19fXQuZGVmYXVsdD1ufSw2NTg1OmU9Pnt2YXIgdD0xZTMsbj02MCp0LHM9NjAqbixvPTI0KnMscj03Km87ZnVuY3Rpb24gaShlLHQsbixzKXt2YXIgbz10Pj0xLjUqbjtyZXR1cm4gTWF0aC5yb3VuZChlL24pK1xcXCIgXFxcIitzKyhvP1xcXCJzXFxcIjpcXFwiXFxcIil9ZS5leHBvcnRzPWZ1bmN0aW9uKGUsYSl7YT1hfHx7fTt2YXIgYyxsLHU9dHlwZW9mIGU7aWYoXFxcInN0cmluZ1xcXCI9PT11JiZlLmxlbmd0aD4wKXJldHVybiBmdW5jdGlvbihlKXtpZighKChlPVN0cmluZyhlKSkubGVuZ3RoPjEwMCkpe3ZhciBpPS9eKC0/KD86XFxcXGQrKT9cXFxcLj9cXFxcZCspICoobWlsbGlzZWNvbmRzP3xtc2Vjcz98bXN8c2Vjb25kcz98c2Vjcz98c3xtaW51dGVzP3xtaW5zP3xtfGhvdXJzP3xocnM/fGh8ZGF5cz98ZHx3ZWVrcz98d3x5ZWFycz98eXJzP3x5KT8kL2kuZXhlYyhlKTtpZihpKXt2YXIgYT1wYXJzZUZsb2F0KGlbMV0pO3N3aXRjaCgoaVsyXXx8XFxcIm1zXFxcIikudG9Mb3dlckNhc2UoKSl7Y2FzZVxcXCJ5ZWFyc1xcXCI6Y2FzZVxcXCJ5ZWFyXFxcIjpjYXNlXFxcInlyc1xcXCI6Y2FzZVxcXCJ5clxcXCI6Y2FzZVxcXCJ5XFxcIjpyZXR1cm4gMzE1NTc2ZTUqYTtjYXNlXFxcIndlZWtzXFxcIjpjYXNlXFxcIndlZWtcXFwiOmNhc2VcXFwid1xcXCI6cmV0dXJuIGEqcjtjYXNlXFxcImRheXNcXFwiOmNhc2VcXFwiZGF5XFxcIjpjYXNlXFxcImRcXFwiOnJldHVybiBhKm87Y2FzZVxcXCJob3Vyc1xcXCI6Y2FzZVxcXCJob3VyXFxcIjpjYXNlXFxcImhyc1xcXCI6Y2FzZVxcXCJoclxcXCI6Y2FzZVxcXCJoXFxcIjpyZXR1cm4gYSpzO2Nhc2VcXFwibWludXRlc1xcXCI6Y2FzZVxcXCJtaW51dGVcXFwiOmNhc2VcXFwibWluc1xcXCI6Y2FzZVxcXCJtaW5cXFwiOmNhc2VcXFwibVxcXCI6cmV0dXJuIGEqbjtjYXNlXFxcInNlY29uZHNcXFwiOmNhc2VcXFwic2Vjb25kXFxcIjpjYXNlXFxcInNlY3NcXFwiOmNhc2VcXFwic2VjXFxcIjpjYXNlXFxcInNcXFwiOnJldHVybiBhKnQ7Y2FzZVxcXCJtaWxsaXNlY29uZHNcXFwiOmNhc2VcXFwibWlsbGlzZWNvbmRcXFwiOmNhc2VcXFwibXNlY3NcXFwiOmNhc2VcXFwibXNlY1xcXCI6Y2FzZVxcXCJtc1xcXCI6cmV0dXJuIGE7ZGVmYXVsdDpyZXR1cm59fX19KGUpO2lmKFxcXCJudW1iZXJcXFwiPT09dSYmaXNGaW5pdGUoZSkpcmV0dXJuIGEubG9uZz8oYz1lLChsPU1hdGguYWJzKGMpKT49bz9pKGMsbCxvLFxcXCJkYXlcXFwiKTpsPj1zP2koYyxsLHMsXFxcImhvdXJcXFwiKTpsPj1uP2koYyxsLG4sXFxcIm1pbnV0ZVxcXCIpOmw+PXQ/aShjLGwsdCxcXFwic2Vjb25kXFxcIik6YytcXFwiIG1zXFxcIik6ZnVuY3Rpb24oZSl7dmFyIHI9TWF0aC5hYnMoZSk7cmV0dXJuIHI+PW8/TWF0aC5yb3VuZChlL28pK1xcXCJkXFxcIjpyPj1zP01hdGgucm91bmQoZS9zKStcXFwiaFxcXCI6cj49bj9NYXRoLnJvdW5kKGUvbikrXFxcIm1cXFwiOnI+PXQ/TWF0aC5yb3VuZChlL3QpK1xcXCJzXFxcIjplK1xcXCJtc1xcXCJ9KGUpO3Rocm93IG5ldyBFcnJvcihcXFwidmFsIGlzIG5vdCBhIG5vbi1lbXB0eSBzdHJpbmcgb3IgYSB2YWxpZCBudW1iZXIuIHZhbD1cXFwiK0pTT04uc3RyaW5naWZ5KGUpKX19LDY2MTc6KGUsdCxuKT0+e3QuZm9ybWF0QXJncz1mdW5jdGlvbih0KXtpZih0WzBdPSh0aGlzLnVzZUNvbG9ycz9cXFwiJWNcXFwiOlxcXCJcXFwiKSt0aGlzLm5hbWVzcGFjZSsodGhpcy51c2VDb2xvcnM/XFxcIiAlY1xcXCI6XFxcIiBcXFwiKSt0WzBdKyh0aGlzLnVzZUNvbG9ycz9cXFwiJWMgXFxcIjpcXFwiIFxcXCIpK1xcXCIrXFxcIitlLmV4cG9ydHMuaHVtYW5pemUodGhpcy5kaWZmKSwhdGhpcy51c2VDb2xvcnMpcmV0dXJuO2NvbnN0IG49XFxcImNvbG9yOiBcXFwiK3RoaXMuY29sb3I7dC5zcGxpY2UoMSwwLG4sXFxcImNvbG9yOiBpbmhlcml0XFxcIik7bGV0IHM9MCxvPTA7dFswXS5yZXBsYWNlKC8lW2EtekEtWiVdL2csZT0+e1xcXCIlJVxcXCIhPT1lJiYocysrLFxcXCIlY1xcXCI9PT1lJiYobz1zKSl9KSx0LnNwbGljZShvLDAsbil9LHQuc2F2ZT1mdW5jdGlvbihlKXt0cnl7ZT90LnN0b3JhZ2Uuc2V0SXRlbShcXFwiZGVidWdcXFwiLGUpOnQuc3RvcmFnZS5yZW1vdmVJdGVtKFxcXCJkZWJ1Z1xcXCIpfWNhdGNoKGUpe319LHQubG9hZD1mdW5jdGlvbigpe2xldCBlO3RyeXtlPXQuc3RvcmFnZS5nZXRJdGVtKFxcXCJkZWJ1Z1xcXCIpfWNhdGNoKGUpe31yZXR1cm4hZSYmXFxcInVuZGVmaW5lZFxcXCIhPXR5cGVvZiBwcm9jZXNzJiZcXFwiZW52XFxcImluIHByb2Nlc3MmJihlPXByb2Nlc3MuZW52LkRFQlVHKSxlfSx0LnVzZUNvbG9ycz1mdW5jdGlvbigpe2lmKFxcXCJ1bmRlZmluZWRcXFwiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3cucHJvY2VzcyYmKFxcXCJyZW5kZXJlclxcXCI9PT13aW5kb3cucHJvY2Vzcy50eXBlfHx3aW5kb3cucHJvY2Vzcy5fX253anMpKXJldHVybiEwO2lmKFxcXCJ1bmRlZmluZWRcXFwiIT10eXBlb2YgbmF2aWdhdG9yJiZuYXZpZ2F0b3IudXNlckFnZW50JiZuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goLyhlZGdlfHRyaWRlbnQpXFxcXC8oXFxcXGQrKS8pKXJldHVybiExO2xldCBlO3JldHVyblxcXCJ1bmRlZmluZWRcXFwiIT10eXBlb2YgZG9jdW1lbnQmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlJiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuV2Via2l0QXBwZWFyYW5jZXx8XFxcInVuZGVmaW5lZFxcXCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy5jb25zb2xlJiYod2luZG93LmNvbnNvbGUuZmlyZWJ1Z3x8d2luZG93LmNvbnNvbGUuZXhjZXB0aW9uJiZ3aW5kb3cuY29uc29sZS50YWJsZSl8fFxcXCJ1bmRlZmluZWRcXFwiIT10eXBlb2YgbmF2aWdhdG9yJiZuYXZpZ2F0b3IudXNlckFnZW50JiYoZT1uYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goL2ZpcmVmb3hcXFxcLyhcXFxcZCspLykpJiZwYXJzZUludChlWzFdLDEwKT49MzF8fFxcXCJ1bmRlZmluZWRcXFwiIT10eXBlb2YgbmF2aWdhdG9yJiZuYXZpZ2F0b3IudXNlckFnZW50JiZuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goL2FwcGxld2Via2l0XFxcXC8oXFxcXGQrKS8pfSx0LnN0b3JhZ2U9ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIGxvY2FsU3RvcmFnZX1jYXRjaChlKXt9fSgpLHQuZGVzdHJveT0oKCk9PntsZXQgZT0hMTtyZXR1cm4oKT0+e2V8fChlPSEwLGNvbnNvbGUud2FybihcXFwiSW5zdGFuY2UgbWV0aG9kIGBkZWJ1Zy5kZXN0cm95KClgIGlzIGRlcHJlY2F0ZWQgYW5kIG5vIGxvbmdlciBkb2VzIGFueXRoaW5nLiBJdCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiBvZiBgZGVidWdgLlxcXCIpKX19KSgpLHQuY29sb3JzPVtcXFwiIzAwMDBDQ1xcXCIsXFxcIiMwMDAwRkZcXFwiLFxcXCIjMDAzM0NDXFxcIixcXFwiIzAwMzNGRlxcXCIsXFxcIiMwMDY2Q0NcXFwiLFxcXCIjMDA2NkZGXFxcIixcXFwiIzAwOTlDQ1xcXCIsXFxcIiMwMDk5RkZcXFwiLFxcXCIjMDBDQzAwXFxcIixcXFwiIzAwQ0MzM1xcXCIsXFxcIiMwMENDNjZcXFwiLFxcXCIjMDBDQzk5XFxcIixcXFwiIzAwQ0NDQ1xcXCIsXFxcIiMwMENDRkZcXFwiLFxcXCIjMzMwMENDXFxcIixcXFwiIzMzMDBGRlxcXCIsXFxcIiMzMzMzQ0NcXFwiLFxcXCIjMzMzM0ZGXFxcIixcXFwiIzMzNjZDQ1xcXCIsXFxcIiMzMzY2RkZcXFwiLFxcXCIjMzM5OUNDXFxcIixcXFwiIzMzOTlGRlxcXCIsXFxcIiMzM0NDMDBcXFwiLFxcXCIjMzNDQzMzXFxcIixcXFwiIzMzQ0M2NlxcXCIsXFxcIiMzM0NDOTlcXFwiLFxcXCIjMzNDQ0NDXFxcIixcXFwiIzMzQ0NGRlxcXCIsXFxcIiM2NjAwQ0NcXFwiLFxcXCIjNjYwMEZGXFxcIixcXFwiIzY2MzNDQ1xcXCIsXFxcIiM2NjMzRkZcXFwiLFxcXCIjNjZDQzAwXFxcIixcXFwiIzY2Q0MzM1xcXCIsXFxcIiM5OTAwQ0NcXFwiLFxcXCIjOTkwMEZGXFxcIixcXFwiIzk5MzNDQ1xcXCIsXFxcIiM5OTMzRkZcXFwiLFxcXCIjOTlDQzAwXFxcIixcXFwiIzk5Q0MzM1xcXCIsXFxcIiNDQzAwMDBcXFwiLFxcXCIjQ0MwMDMzXFxcIixcXFwiI0NDMDA2NlxcXCIsXFxcIiNDQzAwOTlcXFwiLFxcXCIjQ0MwMENDXFxcIixcXFwiI0NDMDBGRlxcXCIsXFxcIiNDQzMzMDBcXFwiLFxcXCIjQ0MzMzMzXFxcIixcXFwiI0NDMzM2NlxcXCIsXFxcIiNDQzMzOTlcXFwiLFxcXCIjQ0MzM0NDXFxcIixcXFwiI0NDMzNGRlxcXCIsXFxcIiNDQzY2MDBcXFwiLFxcXCIjQ0M2NjMzXFxcIixcXFwiI0NDOTkwMFxcXCIsXFxcIiNDQzk5MzNcXFwiLFxcXCIjQ0NDQzAwXFxcIixcXFwiI0NDQ0MzM1xcXCIsXFxcIiNGRjAwMDBcXFwiLFxcXCIjRkYwMDMzXFxcIixcXFwiI0ZGMDA2NlxcXCIsXFxcIiNGRjAwOTlcXFwiLFxcXCIjRkYwMENDXFxcIixcXFwiI0ZGMDBGRlxcXCIsXFxcIiNGRjMzMDBcXFwiLFxcXCIjRkYzMzMzXFxcIixcXFwiI0ZGMzM2NlxcXCIsXFxcIiNGRjMzOTlcXFwiLFxcXCIjRkYzM0NDXFxcIixcXFwiI0ZGMzNGRlxcXCIsXFxcIiNGRjY2MDBcXFwiLFxcXCIjRkY2NjMzXFxcIixcXFwiI0ZGOTkwMFxcXCIsXFxcIiNGRjk5MzNcXFwiLFxcXCIjRkZDQzAwXFxcIixcXFwiI0ZGQ0MzM1xcXCJdLHQubG9nPWNvbnNvbGUuZGVidWd8fGNvbnNvbGUubG9nfHwoKCk9Pnt9KSxlLmV4cG9ydHM9big5MDQwKSh0KTtjb25zdHtmb3JtYXR0ZXJzOnN9PWUuZXhwb3J0cztzLmo9ZnVuY3Rpb24oZSl7dHJ5e3JldHVybiBKU09OLnN0cmluZ2lmeShlKX1jYXRjaChlKXtyZXR1cm5cXFwiW1VuZXhwZWN0ZWRKU09OUGFyc2VFcnJvcl06IFxcXCIrZS5tZXNzYWdlfX19LDY4OTQ6ZnVuY3Rpb24oZSx0LG4pe1xcXCJ1c2Ugc3RyaWN0XFxcIjt2YXIgcz10aGlzJiZ0aGlzLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcXFwiX19lc01vZHVsZVxcXCIse3ZhbHVlOiEwfSksdC51cmw9dm9pZCAwO2NvbnN0IG89big0OTU2KSxyPXMobig5MzY4KSkuZGVmYXVsdChcXFwic29ja2V0LmlvLWNsaWVudDp1cmxcXFwiKTt0LnVybD1mdW5jdGlvbihlLHQ9XFxcIlxcXCIsbil7bGV0IHM9ZTtuPW58fFxcXCJ1bmRlZmluZWRcXFwiIT10eXBlb2YgbG9jYXRpb24mJmxvY2F0aW9uLG51bGw9PWUmJihlPW4ucHJvdG9jb2wrXFxcIi8vXFxcIituLmhvc3QpLFxcXCJzdHJpbmdcXFwiPT10eXBlb2YgZSYmKFxcXCIvXFxcIj09PWUuY2hhckF0KDApJiYoZT1cXFwiL1xcXCI9PT1lLmNoYXJBdCgxKT9uLnByb3RvY29sK2U6bi5ob3N0K2UpLC9eKGh0dHBzP3x3c3M/KTpcXFxcL1xcXFwvLy50ZXN0KGUpfHwocihcXFwicHJvdG9jb2wtbGVzcyB1cmwgJXNcXFwiLGUpLGU9dm9pZCAwIT09bj9uLnByb3RvY29sK1xcXCIvL1xcXCIrZTpcXFwiaHR0cHM6Ly9cXFwiK2UpLHIoXFxcInBhcnNlICVzXFxcIixlKSxzPW8ucGFyc2UoZSkpLHMucG9ydHx8KC9eKGh0dHB8d3MpJC8udGVzdChzLnByb3RvY29sKT9zLnBvcnQ9XFxcIjgwXFxcIjovXihodHRwfHdzKXMkLy50ZXN0KHMucHJvdG9jb2wpJiYocy5wb3J0PVxcXCI0NDNcXFwiKSkscy5wYXRoPXMucGF0aHx8XFxcIi9cXFwiO2NvbnN0IGk9LTEhPT1zLmhvc3QuaW5kZXhPZihcXFwiOlxcXCIpP1xcXCJbXFxcIitzLmhvc3QrXFxcIl1cXFwiOnMuaG9zdDtyZXR1cm4gcy5pZD1zLnByb3RvY29sK1xcXCI6Ly9cXFwiK2krXFxcIjpcXFwiK3MucG9ydCt0LHMuaHJlZj1zLnByb3RvY29sK1xcXCI6Ly9cXFwiK2krKG4mJm4ucG9ydD09PXMucG9ydD9cXFwiXFxcIjpcXFwiOlxcXCIrcy5wb3J0KSxzfX0sNjk1MDpmdW5jdGlvbihlLHQsbil7XFxcInVzZSBzdHJpY3RcXFwiO3ZhciBzPXRoaXMmJnRoaXMuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFxcXCJfX2VzTW9kdWxlXFxcIix7dmFsdWU6ITB9KSx0LmdldEhvc3ROYW1lPVA7Y29uc3Qgbz1zKG4oNTM3OSkpLHI9big1OTE5KSx7UFJPRFVDVElPTjppLERFVkVMT1BNRU5UOmEsUFJPRFVDVElPTl9ET01BSU46YyxERVZFTE9QTUVOVF9ET01BSU46bCxTVUJfRE9NQUlOUzp1LFBPUlRTOmh9PW8uZGVmYXVsdCxwPVAoKSxkPWZ1bmN0aW9uKGUpe3JldHVybiByLklTX05PREUmJlxcXCJsb2NhbGhvc3RcXFwiPT09ZT9vLmRlZmF1bHQuREVWRUxPUE1FTlQ6by5kZWZhdWx0LlBST0RVQ1RJT059KHApLGY9e2NsaWVudDpcXFwidGFsa24uY2xpZW50LmpzXFxcIixhcGk6XFxcInRhbGtuLmFwaS5qc1xcXCIsd3NXb3JrZXI6XFxcIndzLmFwaS53b3JrZXIuanNcXFwiLGV4dDpcXFwidGFsa24uZXh0LmpzXFxcIixjb3ZlcjpcXFwidGFsa24uY292ZXIuanNcXFwiLHR1bmU6XFxcInRhbGtuLnR1bmUuanNcXFwiLGNvbXBvbmVudHM6XFxcInRhbGtuLmNvbXBvbmVudHMuanNcXFwifSxnPWQ9PT1hLHk9ZD09PWk/YzpsLG09YCR7dS5XV1d9LiR7eX1gLEM9YCR7dS5DT1ZFUn0uJHt5fWAsXz1gJHt1LkFQSX0uJHt5fWAsRT1nP2Ake3l9OiR7aC5ERVZFTE9QTUVOVF9BUEl9LyR7Zi5hcGl9YDpgJHtffS92MWAsYj1nP2Ake3l9OiR7aC5ERVZFTE9QTUVOVF9DTElFTlR9LyR7Zi5jbGllbnR9YDpgJHt1LkNMSUVOVH0uJHt5fWAsVD1nP2Ake3l9OiR7aC5ERVZFTE9QTUVOVF9DT01QT05FTlRTfS8ke2YuY29tcG9uZW50c31gOmAke3UuQ09NUE9ORU5UU30uJHt5fWAsdj1gJHt1LkRFU0N9LiR7eX1gLE89YCR7dS5QT1JUQUx9LiR7eX1gLFM9YCR7dS5BU1NFVFN9LiR7eX1gLGs9YCR7U30vaW1nL2Asdz17ZG9tYWluOnksaXNEZXY6ZyxlbnY6ZCxmaWxlczpmLGhvc3ROYW1lOnAsYXBpVVJMOl8sYXBpQWNjZXNzVVJMOkUsY292ZXJVUkw6Qyx3d3dVUkw6bSxkZXNjVVJMOnYscG9ydGFsVVJMOk8sY2xpZW50VVJMOmIsYXNzZXRzVVJMOlMsYXV0b1VSTDpgJHt1LkFVVE99LiR7eX1gLGV4dFVSTDpgJHt1LkVYVH0uJHt5fWAsY29tcFVSTDpgJHt1LkNPTVB9LiR7eX1gLG93blVSTDpgJHt1Lk9XTn0uJHt5fWAsbmV3c1VSTDpgJHt1Lk5FV1N9LiR7eX1gLHR1bmVVUkw6YCR7dS5UVU5FfS4ke3l9YCxiYW5uZXJVUkw6YCR7dS5CQU5ORVJ9LiR7eX1gLGNvbXBvbmVudHNVUkw6VCx0cmFuc2FjdGlvblVSTDpgJHt1LlRSQU5TQUNUSU9OfS4ke3l9YCxhdXRoVVJMOmAke3UuQVVUSH0uJHt5fWAsYXNzZXRzSW1nUGF0aDprLGFzc2V0c0NvdmVyUGF0aDpgJHtTfS9jb3Zlci9gLGFzc2V0c0ljb25QYXRoOmAke1N9L2ljb24vYCxhc3NldHNKc1BhdGg6YCR7U30vanMvYCxzZXNzaW9uVVJMOmAke3UuU0VTU0lPTn0uJHt5fWAsZGVzY3JpcHRpb246XFxcInRhbGtuIGNhbiBzaGFyZSBjb21tZW50cyB3aXRoIHVzZXJzIHdhdGNoaW5nIHRoZSBzYW1lIFdFQiBwYWdlLiBQbGVhc2UgZW5qb3kgdGhlIHdvcmxkIG9mIHRhbGtuLlxcXCIsYXBpVmVyOjEsZmF2aWNvbjpgaHR0cHM6Ly8ke1N9L2Zhdmljb24uaWNvYCxscExhbmd1YWdlczpbXFxcImVuXFxcIixcXFwiemhcXFwiLFxcXCJqYVxcXCIsXFxcImRlXFxcIixcXFwiZnJcXFwiLFxcXCJoaVxcXCIsXFxcInB0XFxcIixcXFwiaXRcXFwiLFxcXCJydVxcXCIsXFxcImtvXFxcIixcXFwiZXNcXFwiLFxcXCJpZFxcXCIsXFxcInRyXFxcIixcXFwibmxcXFwiLFxcXCJhclxcXCIsXFxcInpoLVRXXFxcIixcXFwicGxcXFwiLFxcXCJzdlxcXCIsXFxcInRoXFxcIixcXFwiZmFcXFwiLFxcXCJublxcXCIsXFxcImdhXFxcIixcXFwiaGVcXFwiLFxcXCJtclxcXCJdLGRlZmF1bHRCaXJ0aGRheVVuaXh0aW1lOjFlMTIsZmluZE9uZVRocmVhZEFjdGl2ZUhvdXI6MSxmaW5kT25lUG9zdENudDozMCxmaW5kT25lTGltaXRDbnQ6MzAwLG9ncEltYWdlczp7SHRtbDpgLy8ke2t9dGFsa25fbG9nb19odG1sLnBuZ2AsTXVzaWM6YC8vJHtrfXRhbGtuX2xvZ29fbXVzaWMucG5nYCxWaWRlbzpgLy8ke2t9dGFsa25fbG9nb192aWRlby5wbmdgfSxkZWZhdWx0RmF2aWNvbjpgLy8ke3UuQVNTRVRTfS4ke3l9L2Zhdmljb24uaWNvYH07ZnVuY3Rpb24gUCgpe2lmKHIuSVNfTk9ERSl7Y29uc3QgZT1wcm9jZXNzLmVudj8uSE9TVE5BTUV8fHByb2Nlc3MuZW52Py5IT1NUfHxwcm9jZXNzLmVudj8uTk9ERV9IT1NUTkFNRTtyZXR1cm4gZT8udHJpbSgpP2UudHJpbSgpOm4oMzA2MikuaG9zdG5hbWUoKX1yZXR1cm4gci5JU19CUk9XU0VSP2xvY2F0aW9uLmhvc3RuYW1lOlxcXCJsb2NhbGhvc3RcXFwifXQuZGVmYXVsdD17Li4ud319LDcwMDY6ZnVuY3Rpb24oZSx0LG4pe1xcXCJ1c2Ugc3RyaWN0XFxcIjt2YXIgcz10aGlzJiZ0aGlzLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcXFwiX19lc01vZHVsZVxcXCIse3ZhbHVlOiEwfSksdC5nZXRDb25uZWN0aW9uc09wdGlvbnM9dC5pbml0PXZvaWQgMDtjb25zdCBvPW4oNTkxOSkscj1zKG4oNjUyOSkpLGk9cyhuKDUzNzkpKSxhPXMobig1MDI4KSk7dC5pbml0PXt0dW5lSWQ6XFxcIlxcXCIsY29ubmVjdGlvbjpcXFwiXFxcIixjb25uZWN0aW9uczpbXSx0eXBlOlxcXCJcXFwiLGxpdmVDbnQ6MCxmYXZpY29uOlxcXCJcXFwiLGdhdGV3YXk6XFxcIlxcXCIsc2VydmVyOlxcXCJcXFwiLGFjdGl2ZTohMSxhdWRpb3M6W10sdmlkZW9zOltdfSx0LmdldENvbm5lY3Rpb25zT3B0aW9ucz17aXNTZWxmRXhjbHVkZTohMSxpc1NvcnRVcHBlckxheWVyOiEwfTtjbGFzcyBje2NvbnN0cnVjdG9yKGU9dC5pbml0KXtyZXR1cm4gT2JqZWN0LmFzc2lnbih0aGlzLGUpfXN0YXRpYyBnZXRQYXJlbnRDb25uZWN0aW9uKGUpe2lmKGU9PT1jLnJvb3RDb25uZWN0aW9uKXJldHVybjtsZXQgdD1lLnJlcGxhY2UoLy4kLyxcXFwiXFxcIik7Y29uc3Qgbj10Lmxhc3RJbmRleE9mKFxcXCIvXFxcIik7cmV0dXJuIHQuc3Vic3RyaW5nKDAsbisxKX1zdGF0aWMgZ2V0VG9wQ29ubmVjdGlvbihlKXtpZihlPT09Yy5yb290Q29ubmVjdGlvbilyZXR1cm4gYy5yb290Q29ubmVjdGlvbjtjb25zdCB0PXRoaXMuc2VwYXJldG9yO3JldHVybmAke3R9JHtlLnNwbGl0KHQpWzFdfSR7dH1gfXN0YXRpYyBnZXRDb25uZWN0aW9uKGUpe3JldHVybiBhLmRlZmF1bHQuZ2V0Q29ubmVjdGlvbihlKX1zdGF0aWMgZ2V0Q29ubmVjdGlvbkZyb21VcmwoZSl7Y29uc3QgdD1lLnNwbGl0KFxcXCI/XFxcIilbMV0sbj1uZXcgVVJMU2VhcmNoUGFyYW1zKHQpLmdldChcXFwidHVuZUlkXFxcIik7cmV0dXJuIG51bGw9PT1uP2Mucm9vdENvbm5lY3Rpb246Yy5nZXRDb25uZWN0aW9uRnJvbVR1bmVJZChuKX1zdGF0aWMgZ2V0Q29ubmVjdGlvbkZyb21UdW5lSWQoZSl7Y29uc3QgdD1kZWNvZGVVUklDb21wb25lbnQoZT8/XFxcIlxcXCIpLG49by5nZW5lcmF0ZVVuaXF1ZUtleVNlcGFyYXRvci5yZXBsYWNlKC9bLVxcXFwvXFxcXFxcXFxeJCorPy4oKXxbXFxcXF17fV0vZyxcXFwiXFxcXFxcXFwkJlxcXCIpLHM9bmV3IFJlZ0V4cChgXmNvbiR7bn0oLio/KSR7bn1gKSxyPXQubWF0Y2gocyk7bGV0IGk9cj8uWzFdP3I/LlsxXTpjLnJvb3RDb25uZWN0aW9uO3JldHVybiBpPWkuc3RhcnRzV2l0aChjLnJvb3RDb25uZWN0aW9uKT9pOmAke2Mucm9vdENvbm5lY3Rpb259JHtpfWAsaT1pLmVuZHNXaXRoKGMucm9vdENvbm5lY3Rpb24pP2k6YCR7aX0ke2Mucm9vdENvbm5lY3Rpb259YCxpfXN0YXRpYyBnZXRGYXZpY29uKGUpe3JldHVybiBlPT09aS5kZWZhdWx0LkRFVkVMT1BNRU5UX0RPTUFJTnx8ZT09PWMucm9vdENvbm5lY3Rpb24/XFxcIlxcXCI6YCR7ZX0vZmF2aWNvbi5pY29gfXN0YXRpYyBnZXRDb25uZWN0aW9ucyhlLG49dC5nZXRDb25uZWN0aW9uc09wdGlvbnMpe2NvbnN0e2lzU2VsZkV4Y2x1ZGU6cyxpc1NvcnRVcHBlckxheWVyOm99PW47bGV0IHI9W2Mucm9vdENvbm5lY3Rpb25dO2lmKGUmJmUhPT1jLnJvb3RDb25uZWN0aW9uKXtjb25zdCB0PWUuc3BsaXQoYy5jb25uZWN0aW9uU2VwYXJhdG9yKS5maWx0ZXIoZT0+XFxcIlxcXCIhPT1lKTtsZXQgbj1cXFwiXFxcIjt0LmZvckVhY2godD0+e24rPWAke3RoaXMuc2VwYXJldG9yfSR7dH1gO2NvbnN0IG89YCR7bn0ke3RoaXMuc2VwYXJldG9yfWA7cyYmbz09PWV8fHIucHVzaChvKX0pfXJldHVybiBvP3Iuc29ydCgoZSx0KT0+ZS5sZW5ndGgtdC5sZW5ndGgpOnIuc29ydCgoZSx0KT0+dC5sZW5ndGgtZS5sZW5ndGgpLHJ9c3RhdGljIGdldE15Q29ubmVjdGlvbkNsYXNzKGUsdCxuKXtjb25zdCBzPVtdLG89ZS5zbGljZSgpLnNvcnQoKGUsdCk9PmUubGVuZ3RoLXQubGVuZ3RoKTtuPW58fG9bby5sZW5ndGgtMV07bGV0IHI9ITE7Zm9yKGNvbnN0IGkgaW4gbyl7aWYoZVtpXT09PXQmJihyPSEwKSxlW2ldPT09bilicmVhaztyJiZzLnB1c2goZVtpXSl9cmV0dXJuIHN9c3RhdGljIGdldFR5cGUoZSl7cmV0dXJuIGUuc3RhcnRzV2l0aChyLmRlZmF1bHQuSFRUUFNfUFJPVE9DT0wpfHxlLnN0YXJ0c1dpdGgoci5kZWZhdWx0LkhUVFBfUFJPVE9DT0wpP2MuZGVmdWx0VHlwZTpjLnBsYWluVHlwZX1zdGF0aWMgaXNNZWRpYUNoKGUpe3JldHVybiBlLnN0YXJ0c1dpdGgoXFxcImF1ZGlvXFxcIil8fGUuc3RhcnRzV2l0aChcXFwidmlkZW9cXFwiKX1zdGF0aWMgZ2V0R2F0ZXdheShlKXtyZXR1cm4gZSYmZS5nYXRld2F5Py5ob3N0JiZlLmdhdGV3YXkucG9ydD9gJHtlLmdhdGV3YXkuaG9zdH06JHtlLmdhdGV3YXkucG9ydH1gOmAxMjcuMC4wLjE6JHtpLmRlZmF1bHQuUE9SVFMuSU9fUk9PVH1gfXN0YXRpYyBnZXRTZXJ2ZXIoZSl7cmV0dXJuIGUmJmUuaW9TZXJ2ZXIuaG9zdCYmZS5pb1NlcnZlci5wb3J0P2Ake2UuaW9TZXJ2ZXIuaG9zdH06JHtlLmlvU2VydmVyLnBvcnR9YDpgMTI3LjAuMC4xOiR7aS5kZWZhdWx0LlBPUlRTLklPX1JPT1R9YH19Yy5zZXBhcmV0b3I9XFxcIi9cXFwiLGMucm9vdENvbm5lY3Rpb249Yy5zZXBhcmV0b3IsYy5jb25uZWN0aW9uU2VwYXJhdG9yPVxcXCIvXFxcIixjLmRlZmF1bHRQcm90b2NvbD1cXFwidGFsa246OlxcXCIsYy5kZWZ1bHRUeXBlPVxcXCJ0ZXh0L2h0bWxcXFwiLGMucGxhaW5UeXBlPVxcXCJwbGFpblxcXCIsYy5nZXRDaFBhcmFtcz1lPT57Y29uc3R7dHVuZUlkOnQsY29ubmVjdGlvbjpuLGhvc3Q6cyxsaXZlQ250Om8sY2hDb25maWc6cn09ZSxpPWMuZ2V0Q29ubmVjdGlvbihuKTtyZXR1cm57dHVuZUlkOnQsY29ubmVjdGlvbjppLGNvbm5lY3Rpb25zOmMuZ2V0Q29ubmVjdGlvbnMoaSksZmF2aWNvbjpjLmdldEZhdmljb24ocyksdHlwZTpjLmdldFR5cGUocyksbGl2ZUNudDpvLGdhdGV3YXk6Yy5nZXRHYXRld2F5KHIpLHNlcnZlcjpjLmdldFNlcnZlcihyKX19LHQuZGVmYXVsdD1jfSw3NzQzOihlLHQpPT57XFxcInVzZSBzdHJpY3RcXFwiO2Z1bmN0aW9uIG4oZSl7ZT1lfHx7fSx0aGlzLm1zPWUubWlufHwxMDAsdGhpcy5tYXg9ZS5tYXh8fDFlNCx0aGlzLmZhY3Rvcj1lLmZhY3Rvcnx8Mix0aGlzLmppdHRlcj1lLmppdHRlcj4wJiZlLmppdHRlcjw9MT9lLmppdHRlcjowLHRoaXMuYXR0ZW1wdHM9MH1PYmplY3QuZGVmaW5lUHJvcGVydHkodCxcXFwiX19lc01vZHVsZVxcXCIse3ZhbHVlOiEwfSksdC5CYWNrb2ZmPXZvaWQgMCx0LkJhY2tvZmY9bixuLnByb3RvdHlwZS5kdXJhdGlvbj1mdW5jdGlvbigpe3ZhciBlPXRoaXMubXMqTWF0aC5wb3codGhpcy5mYWN0b3IsdGhpcy5hdHRlbXB0cysrKTtpZih0aGlzLmppdHRlcil7dmFyIHQ9TWF0aC5yYW5kb20oKSxuPU1hdGguZmxvb3IodCp0aGlzLmppdHRlciplKTtlPTEmTWF0aC5mbG9vcigxMCp0KT9lK246ZS1ufXJldHVybiAwfE1hdGgubWluKGUsdGhpcy5tYXgpfSxuLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuYXR0ZW1wdHM9MH0sbi5wcm90b3R5cGUuc2V0TWluPWZ1bmN0aW9uKGUpe3RoaXMubXM9ZX0sbi5wcm90b3R5cGUuc2V0TWF4PWZ1bmN0aW9uKGUpe3RoaXMubWF4PWV9LG4ucHJvdG90eXBlLnNldEppdHRlcj1mdW5jdGlvbihlKXt0aGlzLmppdHRlcj1lfX0sODAwNzpmdW5jdGlvbihlLHQsbil7XFxcInVzZSBzdHJpY3RcXFwiO3ZhciBzPXRoaXMmJnRoaXMuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFxcXCJfX2VzTW9kdWxlXFxcIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dC5jb25uZWN0PXQuaW89dC5Tb2NrZXQ9dC5NYW5hZ2VyPXQucHJvdG9jb2w9dm9pZCAwO2NvbnN0IG89big2ODk0KSxyPW4oMzc3Nik7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXFxcIk1hbmFnZXJcXFwiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiByLk1hbmFnZXJ9fSk7Y29uc3QgaT1uKDYyMTQpO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFxcXCJTb2NrZXRcXFwiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBpLlNvY2tldH19KTtjb25zdCBhPXMobig5MzY4KSkuZGVmYXVsdChcXFwic29ja2V0LmlvLWNsaWVudFxcXCIpLGM9e307ZnVuY3Rpb24gbChlLHQpe1xcXCJvYmplY3RcXFwiPT10eXBlb2YgZSYmKHQ9ZSxlPXZvaWQgMCksdD10fHx7fTtjb25zdCBuPW8udXJsKGUsdC5wYXRofHxcXFwiL3NvY2tldC5pb1xcXCIpLHM9bi5zb3VyY2UsaT1uLmlkLGw9bi5wYXRoLHU9Y1tpXSYmbCBpbiBjW2ldLm5zcHM7bGV0IGg7cmV0dXJuIHQuZm9yY2VOZXd8fHRbXFxcImZvcmNlIG5ldyBjb25uZWN0aW9uXFxcIl18fCExPT09dC5tdWx0aXBsZXh8fHU/KGEoXFxcImlnbm9yaW5nIHNvY2tldCBjYWNoZSBmb3IgJXNcXFwiLHMpLGg9bmV3IHIuTWFuYWdlcihzLHQpKTooY1tpXXx8KGEoXFxcIm5ldyBpbyBpbnN0YW5jZSBmb3IgJXNcXFwiLHMpLGNbaV09bmV3IHIuTWFuYWdlcihzLHQpKSxoPWNbaV0pLG4ucXVlcnkmJiF0LnF1ZXJ5JiYodC5xdWVyeT1uLnF1ZXJ5S2V5KSxoLnNvY2tldChuLnBhdGgsdCl9dC5pbz1sLHQuY29ubmVjdD1sLHQuZGVmYXVsdD1sLE9iamVjdC5hc3NpZ24obCx7TWFuYWdlcjpyLk1hbmFnZXIsU29ja2V0OmkuU29ja2V0LGlvOmwsY29ubmVjdDpsfSk7dmFyIHU9big0NjI3KTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcXFwicHJvdG9jb2xcXFwiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB1LnByb3RvY29sfX0pLGUuZXhwb3J0cz1sfSw4MjAzOmU9PntcXFwidXNlIHN0cmljdFxcXCI7ZS5leHBvcnRzPUpTT04ucGFyc2UoJ3tcXFwiZ2F0ZXdheVxcXCI6e1xcXCJob3N0XFxcIjpcXFwibG9jYWxob3N0XFxcIixcXFwicG9ydFxcXCI6NDQzfSxcXFwiaW9TZXJ2ZXJcXFwiOntcXFwibG9jYXRpb25cXFwiOlxcXCIvXFxcIixcXFwiaG9zdFxcXCI6XFxcImxvY2FsaG9zdFxcXCIsXFxcInBvcnRcXFwiOjQ0M30sXFxcInJlZGlzXFxcIjp7XFxcImNsaWVudFxcXCI6e1xcXCJob3N0XFxcIjpcXFwibG9jYWxob3N0XFxcIixcXFwicG9ydFxcXCI6NjM3OX0sXFxcImNsdXN0ZXJcXFwiOltdfSxcXFwiYWNjZXB0XFxcIjp7XFxcInJhbmtBbGxcXFwiOnRydWV9LFxcXCJwYXlqcFxcXCI6e30sXFxcInNlcnZpY2VcXFwiOntcXFwidHlwZVxcXCI6XFxcIkxpZ2h0c2FpbFxcXCIsXFxcInBsYW5cXFwiOnt9fSxcXFwiY2hpbGRyZW5cXFwiOlt7XFxcImdhdGV3YXlcXFwiOntcXFwiaG9zdFxcXCI6XFxcImxvY2FsaG9zdFxcXCIsXFxcInBvcnRcXFwiOjEwMDAxfSxcXFwiaW9TZXJ2ZXJcXFwiOntcXFwibG9jYXRpb25cXFwiOlxcXCJhYS5jb20vXFxcIixcXFwiaG9zdFxcXCI6XFxcImxvY2FsaG9zdFxcXCIsXFxcInBvcnRcXFwiOjQ0M30sXFxcInJlZGlzXFxcIjp7XFxcImNsaWVudFxcXCI6e1xcXCJob3N0XFxcIjpcXFwibG9jYWxob3N0XFxcIixcXFwicG9ydFxcXCI6NjM3OX0sXFxcImNsdXN0ZXJcXFwiOltdfSxcXFwiYWNjZXB0XFxcIjp7XFxcInJhbmtBbGxcXFwiOmZhbHNlfSxcXFwicGF5anBcXFwiOnt9LFxcXCJzZXJ2aWNlXFxcIjp7XFxcInR5cGVcXFwiOlxcXCJMaWdodHNhaWxcXFwiLFxcXCJwbGFuXFxcIjp7fX0sXFxcImNoaWxkcmVuXFxcIjpbe1xcXCJnYXRld2F5XFxcIjpudWxsLFxcXCJpb1NlcnZlclxcXCI6e1xcXCJsb2NhdGlvblxcXCI6XFxcIjExLzIyLzMzL1xcXCIsXFxcImhvc3RcXFwiOlxcXCJsb2NhbGhvc3RcXFwiLFxcXCJwb3J0XFxcIjo0NDN9LFxcXCJyZWRpc1xcXCI6e1xcXCJjbGllbnRcXFwiOntcXFwiaG9zdFxcXCI6XFxcImxvY2FsaG9zdFxcXCIsXFxcInBvcnRcXFwiOjYzNzl9LFxcXCJjbHVzdGVyXFxcIjpbXX0sXFxcImFjY2VwdFxcXCI6e1xcXCJyYW5rQWxsXFxcIjpmYWxzZX0sXFxcInBheWpwXFxcIjp7fSxcXFwic2VydmljZVxcXCI6e1xcXCJ0eXBlXFxcIjpcXFwiTGlnaHRzYWlsXFxcIixcXFwicGxhblxcXCI6e319LFxcXCJjaGlsZHJlblxcXCI6W119XX0se1xcXCJnYXRld2F5XFxcIjp7XFxcImhvc3RcXFwiOlxcXCJsb2NhbGhvc3RcXFwiLFxcXCJwb3J0XFxcIjoxMDAwMn0sXFxcImlvU2VydmVyXFxcIjp7XFxcImxvY2F0aW9uXFxcIjpcXFwiYmIuY29tL1xcXCIsXFxcImhvc3RcXFwiOlxcXCJsb2NhbGhvc3RcXFwiLFxcXCJwb3J0XFxcIjo0NDN9LFxcXCJyZWRpc1xcXCI6e1xcXCJjbGllbnRcXFwiOntcXFwiaG9zdFxcXCI6XFxcImxvY2FsaG9zdFxcXCIsXFxcInBvcnRcXFwiOjYzNzl9LFxcXCJjbHVzdGVyXFxcIjpbXX0sXFxcImFjY2VwdFxcXCI6e1xcXCJyYW5rQWxsXFxcIjpmYWxzZX0sXFxcInBheWpwXFxcIjp7fSxcXFwic2VydmljZVxcXCI6e1xcXCJ0eXBlXFxcIjpcXFwiTGlnaHRzYWlsXFxcIixcXFwicGxhblxcXCI6e319LFxcXCJjaGlsZHJlblxcXCI6W3tcXFwiZ2F0ZXdheVxcXCI6bnVsbCxcXFwiaW9TZXJ2ZXJcXFwiOntcXFwibG9jYXRpb25cXFwiOlxcXCIxMS8yMi9cXFwiLFxcXCJob3N0XFxcIjpcXFwibG9jYWxob3N0XFxcIixcXFwicG9ydFxcXCI6NDQzfSxcXFwicmVkaXNcXFwiOntcXFwiY2xpZW50XFxcIjp7XFxcImhvc3RcXFwiOlxcXCJsb2NhbGhvc3RcXFwiLFxcXCJwb3J0XFxcIjo2Mzc5fSxcXFwiY2x1c3RlclxcXCI6W119LFxcXCJhY2NlcHRcXFwiOntcXFwicmFua0FsbFxcXCI6ZmFsc2V9LFxcXCJwYXlqcFxcXCI6e30sXFxcInNlcnZpY2VcXFwiOntcXFwidHlwZVxcXCI6XFxcIkxpZ2h0c2FpbFxcXCIsXFxcInBsYW5cXFwiOnt9fSxcXFwiY2hpbGRyZW5cXFwiOlt7XFxcImdhdGV3YXlcXFwiOm51bGwsXFxcImlvU2VydmVyXFxcIjp7XFxcImxvY2F0aW9uXFxcIjpcXFwiQkJCQi9cXFwiLFxcXCJob3N0XFxcIjpcXFwibG9jYWxob3N0XFxcIixcXFwicG9ydFxcXCI6NDQzfSxcXFwicmVkaXNcXFwiOntcXFwiY2xpZW50XFxcIjp7XFxcImhvc3RcXFwiOlxcXCJsb2NhbGhvc3RcXFwiLFxcXCJwb3J0XFxcIjo2Mzc5fSxcXFwiY2x1c3RlclxcXCI6W119LFxcXCJhY2NlcHRcXFwiOntcXFwicmFua0FsbFxcXCI6ZmFsc2V9LFxcXCJwYXlqcFxcXCI6e30sXFxcInNlcnZpY2VcXFwiOntcXFwidHlwZVxcXCI6XFxcIkxpZ2h0c2FpbFxcXCIsXFxcInBsYW5cXFwiOnt9fSxcXFwiY2hpbGRyZW5cXFwiOltdfV19XX0se1xcXCJnYXRld2F5XFxcIjp7XFxcImhvc3RcXFwiOlxcXCJsb2NhbGhvc3RcXFwiLFxcXCJwb3J0XFxcIjoxMDAwM30sXFxcImlvU2VydmVyXFxcIjp7XFxcImxvY2F0aW9uXFxcIjpcXFwiY2MuY29tL1xcXCIsXFxcImhvc3RcXFwiOlxcXCJsb2NhbGhvc3RcXFwiLFxcXCJwb3J0XFxcIjo0NDN9LFxcXCJyZWRpc1xcXCI6e1xcXCJjbGllbnRcXFwiOntcXFwiaG9zdFxcXCI6XFxcImxvY2FsaG9zdFxcXCIsXFxcInBvcnRcXFwiOjYzNzl9LFxcXCJjbHVzdGVyXFxcIjpbXX0sXFxcImFjY2VwdFxcXCI6e1xcXCJyYW5rQWxsXFxcIjpmYWxzZX0sXFxcInBheWpwXFxcIjp7fSxcXFwic2VydmljZVxcXCI6e1xcXCJ0eXBlXFxcIjpcXFwiTGlnaHRzYWlsXFxcIixcXFwicGxhblxcXCI6e319LFxcXCJjaGlsZHJlblxcXCI6W119LHtcXFwiZ2F0ZXdheVxcXCI6e1xcXCJob3N0XFxcIjpcXFwibG9jYWxob3N0XFxcIixcXFwicG9ydFxcXCI6MTAwMDR9LFxcXCJpb1NlcnZlclxcXCI6e1xcXCJsb2NhdGlvblxcXCI6XFxcImRkLmNvbS9cXFwiLFxcXCJob3N0XFxcIjpcXFwibG9jYWxob3N0XFxcIixcXFwicG9ydFxcXCI6NDQzfSxcXFwicmVkaXNcXFwiOntcXFwiY2xpZW50XFxcIjp7XFxcImhvc3RcXFwiOlxcXCJsb2NhbGhvc3RcXFwiLFxcXCJwb3J0XFxcIjo2Mzc5fSxcXFwiY2x1c3RlclxcXCI6W119LFxcXCJhY2NlcHRcXFwiOntcXFwicmFua0FsbFxcXCI6ZmFsc2V9LFxcXCJwYXlqcFxcXCI6e30sXFxcInNlcnZpY2VcXFwiOntcXFwidHlwZVxcXCI6XFxcIkxpZ2h0c2FpbFxcXCIsXFxcInBsYW5cXFwiOnt9fSxcXFwiY2hpbGRyZW5cXFwiOlt7XFxcImdhdGV3YXlcXFwiOm51bGwsXFxcImlvU2VydmVyXFxcIjp7XFxcImxvY2F0aW9uXFxcIjpcXFwiYTExL2IyMi9cXFwiLFxcXCJob3N0XFxcIjpcXFwibG9jYWxob3N0XFxcIixcXFwicG9ydFxcXCI6NDQzfSxcXFwicmVkaXNcXFwiOntcXFwiY2xpZW50XFxcIjp7XFxcImhvc3RcXFwiOlxcXCJsb2NhbGhvc3RcXFwiLFxcXCJwb3J0XFxcIjo2Mzc5fSxcXFwiY2x1c3RlclxcXCI6W119LFxcXCJhY2NlcHRcXFwiOntcXFwicmFua0FsbFxcXCI6ZmFsc2V9LFxcXCJwYXlqcFxcXCI6e30sXFxcInNlcnZpY2VcXFwiOntcXFwidHlwZVxcXCI6XFxcIkxpZ2h0c2FpbFxcXCIsXFxcInBsYW5cXFwiOnt9fSxcXFwiY2hpbGRyZW5cXFwiOlt7XFxcImdhdGV3YXlcXFwiOm51bGwsXFxcImlvU2VydmVyXFxcIjp7XFxcImxvY2F0aW9uXFxcIjpcXFwic0JCQkIvXFxcIixcXFwiaG9zdFxcXCI6XFxcImxvY2FsaG9zdFxcXCIsXFxcInBvcnRcXFwiOjQ0M30sXFxcInJlZGlzXFxcIjp7XFxcImNsaWVudFxcXCI6e1xcXCJob3N0XFxcIjpcXFwibG9jYWxob3N0XFxcIixcXFwicG9ydFxcXCI6NjM3OX0sXFxcImNsdXN0ZXJcXFwiOltdfSxcXFwiYWNjZXB0XFxcIjp7XFxcInJhbmtBbGxcXFwiOmZhbHNlfSxcXFwicGF5anBcXFwiOnt9LFxcXCJzZXJ2aWNlXFxcIjp7XFxcInR5cGVcXFwiOlxcXCJMaWdodHNhaWxcXFwiLFxcXCJwbGFuXFxcIjp7fX0sXFxcImNoaWxkcmVuXFxcIjpbXX1dfV19XX0nKX0sODIyMzpmdW5jdGlvbihlLHQsbil7XFxcInVzZSBzdHJpY3RcXFwiO3ZhciBzPXRoaXMmJnRoaXMuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFxcXCJfX2VzTW9kdWxlXFxcIix7dmFsdWU6ITB9KSx0LlNvY2tldD12b2lkIDA7Y29uc3Qgbz1uKDk0MTkpLHI9big1Mzc0KSxpPW4oODY2MSksYT1uKDEwMTUpLGM9cyhuKDY2MTcpKSxsPW4oNDQ1NCksdT1uKDYzNzYpLGg9big0MDg3KSxwPSgwLGMuZGVmYXVsdCkoXFxcImVuZ2luZS5pby1jbGllbnQ6c29ja2V0XFxcIik7Y2xhc3MgZCBleHRlbmRzIGwuRW1pdHRlcntjb25zdHJ1Y3RvcihlLHQ9e30pe3N1cGVyKCksdGhpcy5iaW5hcnlUeXBlPWguZGVmYXVsdEJpbmFyeVR5cGUsdGhpcy53cml0ZUJ1ZmZlcj1bXSxlJiZcXFwib2JqZWN0XFxcIj09dHlwZW9mIGUmJih0PWUsZT1udWxsKSxlPyhlPSgwLGEucGFyc2UpKGUpLHQuaG9zdG5hbWU9ZS5ob3N0LHQuc2VjdXJlPVxcXCJodHRwc1xcXCI9PT1lLnByb3RvY29sfHxcXFwid3NzXFxcIj09PWUucHJvdG9jb2wsdC5wb3J0PWUucG9ydCxlLnF1ZXJ5JiYodC5xdWVyeT1lLnF1ZXJ5KSk6dC5ob3N0JiYodC5ob3N0bmFtZT0oMCxhLnBhcnNlKSh0Lmhvc3QpLmhvc3QpLCgwLHIuaW5zdGFsbFRpbWVyRnVuY3Rpb25zKSh0aGlzLHQpLHRoaXMuc2VjdXJlPW51bGwhPXQuc2VjdXJlP3Quc2VjdXJlOlxcXCJ1bmRlZmluZWRcXFwiIT10eXBlb2YgbG9jYXRpb24mJlxcXCJodHRwczpcXFwiPT09bG9jYXRpb24ucHJvdG9jb2wsdC5ob3N0bmFtZSYmIXQucG9ydCYmKHQucG9ydD10aGlzLnNlY3VyZT9cXFwiNDQzXFxcIjpcXFwiODBcXFwiKSx0aGlzLmhvc3RuYW1lPXQuaG9zdG5hbWV8fChcXFwidW5kZWZpbmVkXFxcIiE9dHlwZW9mIGxvY2F0aW9uP2xvY2F0aW9uLmhvc3RuYW1lOlxcXCJsb2NhbGhvc3RcXFwiKSx0aGlzLnBvcnQ9dC5wb3J0fHwoXFxcInVuZGVmaW5lZFxcXCIhPXR5cGVvZiBsb2NhdGlvbiYmbG9jYXRpb24ucG9ydD9sb2NhdGlvbi5wb3J0OnRoaXMuc2VjdXJlP1xcXCI0NDNcXFwiOlxcXCI4MFxcXCIpLHRoaXMudHJhbnNwb3J0cz10LnRyYW5zcG9ydHN8fFtcXFwicG9sbGluZ1xcXCIsXFxcIndlYnNvY2tldFxcXCIsXFxcIndlYnRyYW5zcG9ydFxcXCJdLHRoaXMud3JpdGVCdWZmZXI9W10sdGhpcy5wcmV2QnVmZmVyTGVuPTAsdGhpcy5vcHRzPU9iamVjdC5hc3NpZ24oe3BhdGg6XFxcIi9lbmdpbmUuaW9cXFwiLGFnZW50OiExLHdpdGhDcmVkZW50aWFsczohMSx1cGdyYWRlOiEwLHRpbWVzdGFtcFBhcmFtOlxcXCJ0XFxcIixyZW1lbWJlclVwZ3JhZGU6ITEsYWRkVHJhaWxpbmdTbGFzaDohMCxyZWplY3RVbmF1dGhvcml6ZWQ6ITAscGVyTWVzc2FnZURlZmxhdGU6e3RocmVzaG9sZDoxMDI0fSx0cmFuc3BvcnRPcHRpb25zOnt9LGNsb3NlT25CZWZvcmV1bmxvYWQ6ITF9LHQpLHRoaXMub3B0cy5wYXRoPXRoaXMub3B0cy5wYXRoLnJlcGxhY2UoL1xcXFwvJC8sXFxcIlxcXCIpKyh0aGlzLm9wdHMuYWRkVHJhaWxpbmdTbGFzaD9cXFwiL1xcXCI6XFxcIlxcXCIpLFxcXCJzdHJpbmdcXFwiPT10eXBlb2YgdGhpcy5vcHRzLnF1ZXJ5JiYodGhpcy5vcHRzLnF1ZXJ5PSgwLGkuZGVjb2RlKSh0aGlzLm9wdHMucXVlcnkpKSx0aGlzLmlkPW51bGwsdGhpcy51cGdyYWRlcz1udWxsLHRoaXMucGluZ0ludGVydmFsPW51bGwsdGhpcy5waW5nVGltZW91dD1udWxsLHRoaXMucGluZ1RpbWVvdXRUaW1lcj1udWxsLFxcXCJmdW5jdGlvblxcXCI9PXR5cGVvZiBhZGRFdmVudExpc3RlbmVyJiYodGhpcy5vcHRzLmNsb3NlT25CZWZvcmV1bmxvYWQmJih0aGlzLmJlZm9yZXVubG9hZEV2ZW50TGlzdGVuZXI9KCk9Pnt0aGlzLnRyYW5zcG9ydCYmKHRoaXMudHJhbnNwb3J0LnJlbW92ZUFsbExpc3RlbmVycygpLHRoaXMudHJhbnNwb3J0LmNsb3NlKCkpfSxhZGRFdmVudExpc3RlbmVyKFxcXCJiZWZvcmV1bmxvYWRcXFwiLHRoaXMuYmVmb3JldW5sb2FkRXZlbnRMaXN0ZW5lciwhMSkpLFxcXCJsb2NhbGhvc3RcXFwiIT09dGhpcy5ob3N0bmFtZSYmKHRoaXMub2ZmbGluZUV2ZW50TGlzdGVuZXI9KCk9Pnt0aGlzLm9uQ2xvc2UoXFxcInRyYW5zcG9ydCBjbG9zZVxcXCIse2Rlc2NyaXB0aW9uOlxcXCJuZXR3b3JrIGNvbm5lY3Rpb24gbG9zdFxcXCJ9KX0sYWRkRXZlbnRMaXN0ZW5lcihcXFwib2ZmbGluZVxcXCIsdGhpcy5vZmZsaW5lRXZlbnRMaXN0ZW5lciwhMSkpKSx0aGlzLm9wZW4oKX1jcmVhdGVUcmFuc3BvcnQoZSl7cCgnY3JlYXRpbmcgdHJhbnNwb3J0IFxcXCIlc1xcXCInLGUpO2NvbnN0IHQ9T2JqZWN0LmFzc2lnbih7fSx0aGlzLm9wdHMucXVlcnkpO3QuRUlPPXUucHJvdG9jb2wsdC50cmFuc3BvcnQ9ZSx0aGlzLmlkJiYodC5zaWQ9dGhpcy5pZCk7Y29uc3Qgbj1PYmplY3QuYXNzaWduKHt9LHRoaXMub3B0cyx7cXVlcnk6dCxzb2NrZXQ6dGhpcyxob3N0bmFtZTp0aGlzLmhvc3RuYW1lLHNlY3VyZTp0aGlzLnNlY3VyZSxwb3J0OnRoaXMucG9ydH0sdGhpcy5vcHRzLnRyYW5zcG9ydE9wdGlvbnNbZV0pO3JldHVybiBwKFxcXCJvcHRpb25zOiAlalxcXCIsbiksbmV3IG8udHJhbnNwb3J0c1tlXShuKX1vcGVuKCl7bGV0IGU7aWYodGhpcy5vcHRzLnJlbWVtYmVyVXBncmFkZSYmZC5wcmlvcldlYnNvY2tldFN1Y2Nlc3MmJi0xIT09dGhpcy50cmFuc3BvcnRzLmluZGV4T2YoXFxcIndlYnNvY2tldFxcXCIpKWU9XFxcIndlYnNvY2tldFxcXCI7ZWxzZXtpZigwPT09dGhpcy50cmFuc3BvcnRzLmxlbmd0aClyZXR1cm4gdm9pZCB0aGlzLnNldFRpbWVvdXRGbigoKT0+e3RoaXMuZW1pdFJlc2VydmVkKFxcXCJlcnJvclxcXCIsXFxcIk5vIHRyYW5zcG9ydHMgYXZhaWxhYmxlXFxcIil9LDApO2U9dGhpcy50cmFuc3BvcnRzWzBdfXRoaXMucmVhZHlTdGF0ZT1cXFwib3BlbmluZ1xcXCI7dHJ5e2U9dGhpcy5jcmVhdGVUcmFuc3BvcnQoZSl9Y2F0Y2goZSl7cmV0dXJuIHAoXFxcImVycm9yIHdoaWxlIGNyZWF0aW5nIHRyYW5zcG9ydDogJXNcXFwiLGUpLHRoaXMudHJhbnNwb3J0cy5zaGlmdCgpLHZvaWQgdGhpcy5vcGVuKCl9ZS5vcGVuKCksdGhpcy5zZXRUcmFuc3BvcnQoZSl9c2V0VHJhbnNwb3J0KGUpe3AoXFxcInNldHRpbmcgdHJhbnNwb3J0ICVzXFxcIixlLm5hbWUpLHRoaXMudHJhbnNwb3J0JiYocChcXFwiY2xlYXJpbmcgZXhpc3RpbmcgdHJhbnNwb3J0ICVzXFxcIix0aGlzLnRyYW5zcG9ydC5uYW1lKSx0aGlzLnRyYW5zcG9ydC5yZW1vdmVBbGxMaXN0ZW5lcnMoKSksdGhpcy50cmFuc3BvcnQ9ZSxlLm9uKFxcXCJkcmFpblxcXCIsdGhpcy5vbkRyYWluLmJpbmQodGhpcykpLm9uKFxcXCJwYWNrZXRcXFwiLHRoaXMub25QYWNrZXQuYmluZCh0aGlzKSkub24oXFxcImVycm9yXFxcIix0aGlzLm9uRXJyb3IuYmluZCh0aGlzKSkub24oXFxcImNsb3NlXFxcIixlPT50aGlzLm9uQ2xvc2UoXFxcInRyYW5zcG9ydCBjbG9zZVxcXCIsZSkpfXByb2JlKGUpe3AoJ3Byb2JpbmcgdHJhbnNwb3J0IFxcXCIlc1xcXCInLGUpO2xldCB0PXRoaXMuY3JlYXRlVHJhbnNwb3J0KGUpLG49ITE7ZC5wcmlvcldlYnNvY2tldFN1Y2Nlc3M9ITE7Y29uc3Qgcz0oKT0+e258fChwKCdwcm9iZSB0cmFuc3BvcnQgXFxcIiVzXFxcIiBvcGVuZWQnLGUpLHQuc2VuZChbe3R5cGU6XFxcInBpbmdcXFwiLGRhdGE6XFxcInByb2JlXFxcIn1dKSx0Lm9uY2UoXFxcInBhY2tldFxcXCIscz0+e2lmKCFuKWlmKFxcXCJwb25nXFxcIj09PXMudHlwZSYmXFxcInByb2JlXFxcIj09PXMuZGF0YSl7aWYocCgncHJvYmUgdHJhbnNwb3J0IFxcXCIlc1xcXCIgcG9uZycsZSksdGhpcy51cGdyYWRpbmc9ITAsdGhpcy5lbWl0UmVzZXJ2ZWQoXFxcInVwZ3JhZGluZ1xcXCIsdCksIXQpcmV0dXJuO2QucHJpb3JXZWJzb2NrZXRTdWNjZXNzPVxcXCJ3ZWJzb2NrZXRcXFwiPT09dC5uYW1lLHAoJ3BhdXNpbmcgY3VycmVudCB0cmFuc3BvcnQgXFxcIiVzXFxcIicsdGhpcy50cmFuc3BvcnQubmFtZSksdGhpcy50cmFuc3BvcnQucGF1c2UoKCk9PntufHxcXFwiY2xvc2VkXFxcIiE9PXRoaXMucmVhZHlTdGF0ZSYmKHAoXFxcImNoYW5naW5nIHRyYW5zcG9ydCBhbmQgc2VuZGluZyB1cGdyYWRlIHBhY2tldFxcXCIpLGwoKSx0aGlzLnNldFRyYW5zcG9ydCh0KSx0LnNlbmQoW3t0eXBlOlxcXCJ1cGdyYWRlXFxcIn1dKSx0aGlzLmVtaXRSZXNlcnZlZChcXFwidXBncmFkZVxcXCIsdCksdD1udWxsLHRoaXMudXBncmFkaW5nPSExLHRoaXMuZmx1c2goKSl9KX1lbHNle3AoJ3Byb2JlIHRyYW5zcG9ydCBcXFwiJXNcXFwiIGZhaWxlZCcsZSk7Y29uc3Qgbj1uZXcgRXJyb3IoXFxcInByb2JlIGVycm9yXFxcIik7bi50cmFuc3BvcnQ9dC5uYW1lLHRoaXMuZW1pdFJlc2VydmVkKFxcXCJ1cGdyYWRlRXJyb3JcXFwiLG4pfX0pKX07ZnVuY3Rpb24gbygpe258fChuPSEwLGwoKSx0LmNsb3NlKCksdD1udWxsKX1jb25zdCByPW49Pntjb25zdCBzPW5ldyBFcnJvcihcXFwicHJvYmUgZXJyb3I6IFxcXCIrbik7cy50cmFuc3BvcnQ9dC5uYW1lLG8oKSxwKCdwcm9iZSB0cmFuc3BvcnQgXFxcIiVzXFxcIiBmYWlsZWQgYmVjYXVzZSBvZiBlcnJvcjogJXMnLGUsbiksdGhpcy5lbWl0UmVzZXJ2ZWQoXFxcInVwZ3JhZGVFcnJvclxcXCIscyl9O2Z1bmN0aW9uIGkoKXtyKFxcXCJ0cmFuc3BvcnQgY2xvc2VkXFxcIil9ZnVuY3Rpb24gYSgpe3IoXFxcInNvY2tldCBjbG9zZWRcXFwiKX1mdW5jdGlvbiBjKGUpe3QmJmUubmFtZSE9PXQubmFtZSYmKHAoJ1xcXCIlc1xcXCIgd29ya3MgLSBhYm9ydGluZyBcXFwiJXNcXFwiJyxlLm5hbWUsdC5uYW1lKSxvKCkpfWNvbnN0IGw9KCk9Pnt0LnJlbW92ZUxpc3RlbmVyKFxcXCJvcGVuXFxcIixzKSx0LnJlbW92ZUxpc3RlbmVyKFxcXCJlcnJvclxcXCIsciksdC5yZW1vdmVMaXN0ZW5lcihcXFwiY2xvc2VcXFwiLGkpLHRoaXMub2ZmKFxcXCJjbG9zZVxcXCIsYSksdGhpcy5vZmYoXFxcInVwZ3JhZGluZ1xcXCIsYyl9O3Qub25jZShcXFwib3BlblxcXCIscyksdC5vbmNlKFxcXCJlcnJvclxcXCIsciksdC5vbmNlKFxcXCJjbG9zZVxcXCIsaSksdGhpcy5vbmNlKFxcXCJjbG9zZVxcXCIsYSksdGhpcy5vbmNlKFxcXCJ1cGdyYWRpbmdcXFwiLGMpLC0xIT09dGhpcy51cGdyYWRlcy5pbmRleE9mKFxcXCJ3ZWJ0cmFuc3BvcnRcXFwiKSYmXFxcIndlYnRyYW5zcG9ydFxcXCIhPT1lP3RoaXMuc2V0VGltZW91dEZuKCgpPT57bnx8dC5vcGVuKCl9LDIwMCk6dC5vcGVuKCl9b25PcGVuKCl7aWYocChcXFwic29ja2V0IG9wZW5cXFwiKSx0aGlzLnJlYWR5U3RhdGU9XFxcIm9wZW5cXFwiLGQucHJpb3JXZWJzb2NrZXRTdWNjZXNzPVxcXCJ3ZWJzb2NrZXRcXFwiPT09dGhpcy50cmFuc3BvcnQubmFtZSx0aGlzLmVtaXRSZXNlcnZlZChcXFwib3BlblxcXCIpLHRoaXMuZmx1c2goKSxcXFwib3BlblxcXCI9PT10aGlzLnJlYWR5U3RhdGUmJnRoaXMub3B0cy51cGdyYWRlKXtwKFxcXCJzdGFydGluZyB1cGdyYWRlIHByb2Jlc1xcXCIpO2xldCBlPTA7Y29uc3QgdD10aGlzLnVwZ3JhZGVzLmxlbmd0aDtmb3IoO2U8dDtlKyspdGhpcy5wcm9iZSh0aGlzLnVwZ3JhZGVzW2VdKX19b25QYWNrZXQoZSl7aWYoXFxcIm9wZW5pbmdcXFwiPT09dGhpcy5yZWFkeVN0YXRlfHxcXFwib3BlblxcXCI9PT10aGlzLnJlYWR5U3RhdGV8fFxcXCJjbG9zaW5nXFxcIj09PXRoaXMucmVhZHlTdGF0ZSlzd2l0Y2gocCgnc29ja2V0IHJlY2VpdmU6IHR5cGUgXFxcIiVzXFxcIiwgZGF0YSBcXFwiJXNcXFwiJyxlLnR5cGUsZS5kYXRhKSx0aGlzLmVtaXRSZXNlcnZlZChcXFwicGFja2V0XFxcIixlKSx0aGlzLmVtaXRSZXNlcnZlZChcXFwiaGVhcnRiZWF0XFxcIiksdGhpcy5yZXNldFBpbmdUaW1lb3V0KCksZS50eXBlKXtjYXNlXFxcIm9wZW5cXFwiOnRoaXMub25IYW5kc2hha2UoSlNPTi5wYXJzZShlLmRhdGEpKTticmVhaztjYXNlXFxcInBpbmdcXFwiOnRoaXMuc2VuZFBhY2tldChcXFwicG9uZ1xcXCIpLHRoaXMuZW1pdFJlc2VydmVkKFxcXCJwaW5nXFxcIiksdGhpcy5lbWl0UmVzZXJ2ZWQoXFxcInBvbmdcXFwiKTticmVhaztjYXNlXFxcImVycm9yXFxcIjpjb25zdCB0PW5ldyBFcnJvcihcXFwic2VydmVyIGVycm9yXFxcIik7dC5jb2RlPWUuZGF0YSx0aGlzLm9uRXJyb3IodCk7YnJlYWs7Y2FzZVxcXCJtZXNzYWdlXFxcIjp0aGlzLmVtaXRSZXNlcnZlZChcXFwiZGF0YVxcXCIsZS5kYXRhKSx0aGlzLmVtaXRSZXNlcnZlZChcXFwibWVzc2FnZVxcXCIsZS5kYXRhKX1lbHNlIHAoJ3BhY2tldCByZWNlaXZlZCB3aXRoIHNvY2tldCByZWFkeVN0YXRlIFxcXCIlc1xcXCInLHRoaXMucmVhZHlTdGF0ZSl9b25IYW5kc2hha2UoZSl7dGhpcy5lbWl0UmVzZXJ2ZWQoXFxcImhhbmRzaGFrZVxcXCIsZSksdGhpcy5pZD1lLnNpZCx0aGlzLnRyYW5zcG9ydC5xdWVyeS5zaWQ9ZS5zaWQsdGhpcy51cGdyYWRlcz10aGlzLmZpbHRlclVwZ3JhZGVzKGUudXBncmFkZXMpLHRoaXMucGluZ0ludGVydmFsPWUucGluZ0ludGVydmFsLHRoaXMucGluZ1RpbWVvdXQ9ZS5waW5nVGltZW91dCx0aGlzLm1heFBheWxvYWQ9ZS5tYXhQYXlsb2FkLHRoaXMub25PcGVuKCksXFxcImNsb3NlZFxcXCIhPT10aGlzLnJlYWR5U3RhdGUmJnRoaXMucmVzZXRQaW5nVGltZW91dCgpfXJlc2V0UGluZ1RpbWVvdXQoKXt0aGlzLmNsZWFyVGltZW91dEZuKHRoaXMucGluZ1RpbWVvdXRUaW1lciksdGhpcy5waW5nVGltZW91dFRpbWVyPXRoaXMuc2V0VGltZW91dEZuKCgpPT57dGhpcy5vbkNsb3NlKFxcXCJwaW5nIHRpbWVvdXRcXFwiKX0sdGhpcy5waW5nSW50ZXJ2YWwrdGhpcy5waW5nVGltZW91dCksdGhpcy5vcHRzLmF1dG9VbnJlZiYmdGhpcy5waW5nVGltZW91dFRpbWVyLnVucmVmKCl9b25EcmFpbigpe3RoaXMud3JpdGVCdWZmZXIuc3BsaWNlKDAsdGhpcy5wcmV2QnVmZmVyTGVuKSx0aGlzLnByZXZCdWZmZXJMZW49MCwwPT09dGhpcy53cml0ZUJ1ZmZlci5sZW5ndGg/dGhpcy5lbWl0UmVzZXJ2ZWQoXFxcImRyYWluXFxcIik6dGhpcy5mbHVzaCgpfWZsdXNoKCl7aWYoXFxcImNsb3NlZFxcXCIhPT10aGlzLnJlYWR5U3RhdGUmJnRoaXMudHJhbnNwb3J0LndyaXRhYmxlJiYhdGhpcy51cGdyYWRpbmcmJnRoaXMud3JpdGVCdWZmZXIubGVuZ3RoKXtjb25zdCBlPXRoaXMuZ2V0V3JpdGFibGVQYWNrZXRzKCk7cChcXFwiZmx1c2hpbmcgJWQgcGFja2V0cyBpbiBzb2NrZXRcXFwiLGUubGVuZ3RoKSx0aGlzLnRyYW5zcG9ydC5zZW5kKGUpLHRoaXMucHJldkJ1ZmZlckxlbj1lLmxlbmd0aCx0aGlzLmVtaXRSZXNlcnZlZChcXFwiZmx1c2hcXFwiKX19Z2V0V3JpdGFibGVQYWNrZXRzKCl7aWYoISh0aGlzLm1heFBheWxvYWQmJlxcXCJwb2xsaW5nXFxcIj09PXRoaXMudHJhbnNwb3J0Lm5hbWUmJnRoaXMud3JpdGVCdWZmZXIubGVuZ3RoPjEpKXJldHVybiB0aGlzLndyaXRlQnVmZmVyO2xldCBlPTE7Zm9yKGxldCB0PTA7dDx0aGlzLndyaXRlQnVmZmVyLmxlbmd0aDt0Kyspe2NvbnN0IG49dGhpcy53cml0ZUJ1ZmZlclt0XS5kYXRhO2lmKG4mJihlKz0oMCxyLmJ5dGVMZW5ndGgpKG4pKSx0PjAmJmU+dGhpcy5tYXhQYXlsb2FkKXJldHVybiBwKFxcXCJvbmx5IHNlbmQgJWQgb3V0IG9mICVkIHBhY2tldHNcXFwiLHQsdGhpcy53cml0ZUJ1ZmZlci5sZW5ndGgpLHRoaXMud3JpdGVCdWZmZXIuc2xpY2UoMCx0KTtlKz0yfXJldHVybiBwKFxcXCJwYXlsb2FkIHNpemUgaXMgJWQgKG1heDogJWQpXFxcIixlLHRoaXMubWF4UGF5bG9hZCksdGhpcy53cml0ZUJ1ZmZlcn13cml0ZShlLHQsbil7cmV0dXJuIHRoaXMuc2VuZFBhY2tldChcXFwibWVzc2FnZVxcXCIsZSx0LG4pLHRoaXN9c2VuZChlLHQsbil7cmV0dXJuIHRoaXMuc2VuZFBhY2tldChcXFwibWVzc2FnZVxcXCIsZSx0LG4pLHRoaXN9c2VuZFBhY2tldChlLHQsbixzKXtpZihcXFwiZnVuY3Rpb25cXFwiPT10eXBlb2YgdCYmKHM9dCx0PXZvaWQgMCksXFxcImZ1bmN0aW9uXFxcIj09dHlwZW9mIG4mJihzPW4sbj1udWxsKSxcXFwiY2xvc2luZ1xcXCI9PT10aGlzLnJlYWR5U3RhdGV8fFxcXCJjbG9zZWRcXFwiPT09dGhpcy5yZWFkeVN0YXRlKXJldHVybjsobj1ufHx7fSkuY29tcHJlc3M9ITEhPT1uLmNvbXByZXNzO2NvbnN0IG89e3R5cGU6ZSxkYXRhOnQsb3B0aW9uczpufTt0aGlzLmVtaXRSZXNlcnZlZChcXFwicGFja2V0Q3JlYXRlXFxcIixvKSx0aGlzLndyaXRlQnVmZmVyLnB1c2gobykscyYmdGhpcy5vbmNlKFxcXCJmbHVzaFxcXCIscyksdGhpcy5mbHVzaCgpfWNsb3NlKCl7Y29uc3QgZT0oKT0+e3RoaXMub25DbG9zZShcXFwiZm9yY2VkIGNsb3NlXFxcIikscChcXFwic29ja2V0IGNsb3NpbmcgLSB0ZWxsaW5nIHRyYW5zcG9ydCB0byBjbG9zZVxcXCIpLHRoaXMudHJhbnNwb3J0LmNsb3NlKCl9LHQ9KCk9Pnt0aGlzLm9mZihcXFwidXBncmFkZVxcXCIsdCksdGhpcy5vZmYoXFxcInVwZ3JhZGVFcnJvclxcXCIsdCksZSgpfSxuPSgpPT57dGhpcy5vbmNlKFxcXCJ1cGdyYWRlXFxcIix0KSx0aGlzLm9uY2UoXFxcInVwZ3JhZGVFcnJvclxcXCIsdCl9O3JldHVyblxcXCJvcGVuaW5nXFxcIiE9PXRoaXMucmVhZHlTdGF0ZSYmXFxcIm9wZW5cXFwiIT09dGhpcy5yZWFkeVN0YXRlfHwodGhpcy5yZWFkeVN0YXRlPVxcXCJjbG9zaW5nXFxcIix0aGlzLndyaXRlQnVmZmVyLmxlbmd0aD90aGlzLm9uY2UoXFxcImRyYWluXFxcIiwoKT0+e3RoaXMudXBncmFkaW5nP24oKTplKCl9KTp0aGlzLnVwZ3JhZGluZz9uKCk6ZSgpKSx0aGlzfW9uRXJyb3IoZSl7cChcXFwic29ja2V0IGVycm9yICVqXFxcIixlKSxkLnByaW9yV2Vic29ja2V0U3VjY2Vzcz0hMSx0aGlzLmVtaXRSZXNlcnZlZChcXFwiZXJyb3JcXFwiLGUpLHRoaXMub25DbG9zZShcXFwidHJhbnNwb3J0IGVycm9yXFxcIixlKX1vbkNsb3NlKGUsdCl7XFxcIm9wZW5pbmdcXFwiIT09dGhpcy5yZWFkeVN0YXRlJiZcXFwib3BlblxcXCIhPT10aGlzLnJlYWR5U3RhdGUmJlxcXCJjbG9zaW5nXFxcIiE9PXRoaXMucmVhZHlTdGF0ZXx8KHAoJ3NvY2tldCBjbG9zZSB3aXRoIHJlYXNvbjogXFxcIiVzXFxcIicsZSksdGhpcy5jbGVhclRpbWVvdXRGbih0aGlzLnBpbmdUaW1lb3V0VGltZXIpLHRoaXMudHJhbnNwb3J0LnJlbW92ZUFsbExpc3RlbmVycyhcXFwiY2xvc2VcXFwiKSx0aGlzLnRyYW5zcG9ydC5jbG9zZSgpLHRoaXMudHJhbnNwb3J0LnJlbW92ZUFsbExpc3RlbmVycygpLFxcXCJmdW5jdGlvblxcXCI9PXR5cGVvZiByZW1vdmVFdmVudExpc3RlbmVyJiYocmVtb3ZlRXZlbnRMaXN0ZW5lcihcXFwiYmVmb3JldW5sb2FkXFxcIix0aGlzLmJlZm9yZXVubG9hZEV2ZW50TGlzdGVuZXIsITEpLHJlbW92ZUV2ZW50TGlzdGVuZXIoXFxcIm9mZmxpbmVcXFwiLHRoaXMub2ZmbGluZUV2ZW50TGlzdGVuZXIsITEpKSx0aGlzLnJlYWR5U3RhdGU9XFxcImNsb3NlZFxcXCIsdGhpcy5pZD1udWxsLHRoaXMuZW1pdFJlc2VydmVkKFxcXCJjbG9zZVxcXCIsZSx0KSx0aGlzLndyaXRlQnVmZmVyPVtdLHRoaXMucHJldkJ1ZmZlckxlbj0wKX1maWx0ZXJVcGdyYWRlcyhlKXtjb25zdCB0PVtdO2xldCBuPTA7Y29uc3Qgcz1lLmxlbmd0aDtmb3IoO248cztuKyspfnRoaXMudHJhbnNwb3J0cy5pbmRleE9mKGVbbl0pJiZ0LnB1c2goZVtuXSk7cmV0dXJuIHR9fXQuU29ja2V0PWQsZC5wcm90b2NvbD11LnByb3RvY29sfSw4NjI2OmZ1bmN0aW9uKGUsdCxuKXtcXFwidXNlIHN0cmljdFxcXCI7dmFyIHM9dGhpcyYmdGhpcy5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXFxcIl9fZXNNb2R1bGVcXFwiLHt2YWx1ZTohMH0pLHQuc3RhdHVzRGlzcGF0Y2hlZD10LnN0YXR1c0Rpc3BhdGNoaW5nPXQuc3RhdHVzUmVzcG9uc2VkPXQuc3RhdHVzUmVzcG9uc2luZz10LnN0YXR1c1JlcXVlc3Rpbmc9dC5zdGF0dXNVblR1bm5pbmc9dC5zdGF0dXNUdW5lZD10LnN0YXR1c1R1bm5pbmc9dm9pZCAwO2NvbnN0IG89cyhuKDYyNzApKTt0LnN0YXR1c1R1bm5pbmc9XFxcInR1bm5pbmdcXFwiLHQuc3RhdHVzVHVuZWQ9XFxcInR1bmVkXFxcIix0LnN0YXR1c1VuVHVubmluZz1cXFwidW50dW5uaW5nXFxcIix0LnN0YXR1c1JlcXVlc3Rpbmc9XFxcInJlcXVlc3RpbmdcXFwiLHQuc3RhdHVzUmVzcG9uc2luZz1cXFwicmVzcG9uc2luZ1xcXCIsdC5zdGF0dXNSZXNwb25zZWQ9XFxcInJlc3BvbnNlZFxcXCIsdC5zdGF0dXNEaXNwYXRjaGluZz1cXFwiZGlzcGF0Y2hpbmdcXFwiLHQuc3RhdHVzRGlzcGF0Y2hlZD1cXFwiZGlzcGF0Y2hlZFxcXCI7Y2xhc3Mgcntjb25zdHJ1Y3RvcihlKXt0aGlzLm9uTWVzc2FnZT10aGlzLm9uTWVzc2FnZS5iaW5kKHRoaXMpLHRoaXMub25NZXNzYWdlRXJyb3I9dGhpcy5vbk1lc3NhZ2VFcnJvci5iaW5kKHRoaXMpLHRoaXMucG9zdE1lc3NhZ2U9dGhpcy5wb3N0TWVzc2FnZS5iaW5kKHRoaXMpLHRoaXMud29ya2VyPWUsdGhpcy53b3JrZXIub25lcnJvcj10aGlzLm9uTWVzc2FnZUVycm9yLHRoaXMud29ya2VyLm9ubWVzc2FnZT10aGlzLm9uTWVzc2FnZSx0aGlzLnRvU2VydmVyPW5ldyBvLmRlZmF1bHQodGhpcyl9cG9zdE1lc3NhZ2Uoe3BpZDplLHR1bmVJZDp0LG1ldGhvZDpuLHNlcnZlclRvQXBpVHlwZTpzLGFwaVN0YXRlOm99KXtlJiZ0JiZuJiZ0aGlzLndvcmtlci5wb3N0TWVzc2FnZSh7cGlkOmUsdHVuZUlkOnQsbWV0aG9kOm4sc2VydmVyVG9BcGlUeXBlOnMsYXBpU3RhdGU6b30pfW9uTWVzc2FnZShlKXtjb25zdHtwaWQ6dCx0dW5lSWQ6bixtZXRob2Q6cyxzZXJ2ZXJUb0FwaVR5cGU6byxhcGlTdGF0ZTpyfT1lLmRhdGE7dCYmbiYmcyYmciYmdGhpcy50b1NlcnZlci5leGUodCxuLHMscil9b25NZXNzYWdlRXJyb3IoZSl7Y29uc29sZS53YXJuKGUpfX10LmRlZmF1bHQ9cixuZXcgcihzZWxmKX0sODY2MTooZSx0KT0+e1xcXCJ1c2Ugc3RyaWN0XFxcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcXFwiX19lc01vZHVsZVxcXCIse3ZhbHVlOiEwfSksdC5kZWNvZGU9dC5lbmNvZGU9dm9pZCAwLHQuZW5jb2RlPWZ1bmN0aW9uKGUpe2xldCB0PVxcXCJcXFwiO2ZvcihsZXQgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJih0Lmxlbmd0aCYmKHQrPVxcXCImXFxcIiksdCs9ZW5jb2RlVVJJQ29tcG9uZW50KG4pK1xcXCI9XFxcIitlbmNvZGVVUklDb21wb25lbnQoZVtuXSkpO3JldHVybiB0fSx0LmRlY29kZT1mdW5jdGlvbihlKXtsZXQgdD17fSxuPWUuc3BsaXQoXFxcIiZcXFwiKTtmb3IobGV0IGU9MCxzPW4ubGVuZ3RoO2U8cztlKyspe2xldCBzPW5bZV0uc3BsaXQoXFxcIj1cXFwiKTt0W2RlY29kZVVSSUNvbXBvbmVudChzWzBdKV09ZGVjb2RlVVJJQ29tcG9uZW50KHNbMV0pfXJldHVybiB0fX0sODcxNjpmdW5jdGlvbihlLHQsbil7XFxcInVzZSBzdHJpY3RcXFwiO3ZhciBzPXRoaXMmJnRoaXMuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFxcXCJfX2VzTW9kdWxlXFxcIix7dmFsdWU6ITB9KSx0LldTPXZvaWQgMDtjb25zdCBvPW4oNDY4OSkscj1uKDczMiksaT1uKDUzNzQpLGE9big0MDg3KSxjPXMobig2NjE3KSksbD1uKDYzNzYpLHU9KDAsYy5kZWZhdWx0KShcXFwiZW5naW5lLmlvLWNsaWVudDp3ZWJzb2NrZXRcXFwiKSxoPVxcXCJ1bmRlZmluZWRcXFwiIT10eXBlb2YgbmF2aWdhdG9yJiZcXFwic3RyaW5nXFxcIj09dHlwZW9mIG5hdmlnYXRvci5wcm9kdWN0JiZcXFwicmVhY3RuYXRpdmVcXFwiPT09bmF2aWdhdG9yLnByb2R1Y3QudG9Mb3dlckNhc2UoKTtjbGFzcyBwIGV4dGVuZHMgby5UcmFuc3BvcnR7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy5zdXBwb3J0c0JpbmFyeT0hZS5mb3JjZUJhc2U2NH1nZXQgbmFtZSgpe3JldHVyblxcXCJ3ZWJzb2NrZXRcXFwifWRvT3Blbigpe2lmKCF0aGlzLmNoZWNrKCkpcmV0dXJuO2NvbnN0IGU9dGhpcy51cmkoKSx0PXRoaXMub3B0cy5wcm90b2NvbHMsbj1oP3t9OigwLGkucGljaykodGhpcy5vcHRzLFxcXCJhZ2VudFxcXCIsXFxcInBlck1lc3NhZ2VEZWZsYXRlXFxcIixcXFwicGZ4XFxcIixcXFwia2V5XFxcIixcXFwicGFzc3BocmFzZVxcXCIsXFxcImNlcnRcXFwiLFxcXCJjYVxcXCIsXFxcImNpcGhlcnNcXFwiLFxcXCJyZWplY3RVbmF1dGhvcml6ZWRcXFwiLFxcXCJsb2NhbEFkZHJlc3NcXFwiLFxcXCJwcm90b2NvbFZlcnNpb25cXFwiLFxcXCJvcmlnaW5cXFwiLFxcXCJtYXhQYXlsb2FkXFxcIixcXFwiZmFtaWx5XFxcIixcXFwiY2hlY2tTZXJ2ZXJJZGVudGl0eVxcXCIpO3RoaXMub3B0cy5leHRyYUhlYWRlcnMmJihuLmhlYWRlcnM9dGhpcy5vcHRzLmV4dHJhSGVhZGVycyk7dHJ5e3RoaXMud3M9YS51c2luZ0Jyb3dzZXJXZWJTb2NrZXQmJiFoP3Q/bmV3IGEuV2ViU29ja2V0KGUsdCk6bmV3IGEuV2ViU29ja2V0KGUpOm5ldyBhLldlYlNvY2tldChlLHQsbil9Y2F0Y2goZSl7cmV0dXJuIHRoaXMuZW1pdFJlc2VydmVkKFxcXCJlcnJvclxcXCIsZSl9dGhpcy53cy5iaW5hcnlUeXBlPXRoaXMuc29ja2V0LmJpbmFyeVR5cGUsdGhpcy5hZGRFdmVudExpc3RlbmVycygpfWFkZEV2ZW50TGlzdGVuZXJzKCl7dGhpcy53cy5vbm9wZW49KCk9Pnt0aGlzLm9wdHMuYXV0b1VucmVmJiZ0aGlzLndzLl9zb2NrZXQudW5yZWYoKSx0aGlzLm9uT3BlbigpfSx0aGlzLndzLm9uY2xvc2U9ZT0+dGhpcy5vbkNsb3NlKHtkZXNjcmlwdGlvbjpcXFwid2Vic29ja2V0IGNvbm5lY3Rpb24gY2xvc2VkXFxcIixjb250ZXh0OmV9KSx0aGlzLndzLm9ubWVzc2FnZT1lPT50aGlzLm9uRGF0YShlLmRhdGEpLHRoaXMud3Mub25lcnJvcj1lPT50aGlzLm9uRXJyb3IoXFxcIndlYnNvY2tldCBlcnJvclxcXCIsZSl9d3JpdGUoZSl7dGhpcy53cml0YWJsZT0hMTtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKyl7Y29uc3Qgbj1lW3RdLHM9dD09PWUubGVuZ3RoLTE7KDAsbC5lbmNvZGVQYWNrZXQpKG4sdGhpcy5zdXBwb3J0c0JpbmFyeSxlPT57Y29uc3QgdD17fTshYS51c2luZ0Jyb3dzZXJXZWJTb2NrZXQmJihuLm9wdGlvbnMmJih0LmNvbXByZXNzPW4ub3B0aW9ucy5jb21wcmVzcyksdGhpcy5vcHRzLnBlck1lc3NhZ2VEZWZsYXRlKSYmKFxcXCJzdHJpbmdcXFwiPT10eXBlb2YgZT9CdWZmZXIuYnl0ZUxlbmd0aChlKTplLmxlbmd0aCk8dGhpcy5vcHRzLnBlck1lc3NhZ2VEZWZsYXRlLnRocmVzaG9sZCYmKHQuY29tcHJlc3M9ITEpO3RyeXthLnVzaW5nQnJvd3NlcldlYlNvY2tldD90aGlzLndzLnNlbmQoZSk6dGhpcy53cy5zZW5kKGUsdCl9Y2F0Y2goZSl7dShcXFwid2Vic29ja2V0IGNsb3NlZCBiZWZvcmUgb25jbG9zZSBldmVudFxcXCIpfXMmJigwLGEubmV4dFRpY2spKCgpPT57dGhpcy53cml0YWJsZT0hMCx0aGlzLmVtaXRSZXNlcnZlZChcXFwiZHJhaW5cXFwiKX0sdGhpcy5zZXRUaW1lb3V0Rm4pfSl9fWRvQ2xvc2UoKXt2b2lkIDAhPT10aGlzLndzJiYodGhpcy53cy5jbG9zZSgpLHRoaXMud3M9bnVsbCl9dXJpKCl7Y29uc3QgZT10aGlzLm9wdHMuc2VjdXJlP1xcXCJ3c3NcXFwiOlxcXCJ3c1xcXCIsdD10aGlzLnF1ZXJ5fHx7fTtyZXR1cm4gdGhpcy5vcHRzLnRpbWVzdGFtcFJlcXVlc3RzJiYodFt0aGlzLm9wdHMudGltZXN0YW1wUGFyYW1dPSgwLHIueWVhc3QpKCkpLHRoaXMuc3VwcG9ydHNCaW5hcnl8fCh0LmI2ND0xKSx0aGlzLmNyZWF0ZVVyaShlLHQpfWNoZWNrKCl7cmV0dXJuISFhLldlYlNvY2tldH19dC5XUz1wfSw5MDQwOihlLHQsbik9PntlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChlKXtsZXQgbixvLHIsaT1udWxsO2Z1bmN0aW9uIGEoLi4uZSl7aWYoIWEuZW5hYmxlZClyZXR1cm47Y29uc3Qgcz1hLG89TnVtYmVyKG5ldyBEYXRlKSxyPW8tKG58fG8pO3MuZGlmZj1yLHMucHJldj1uLHMuY3Vycj1vLG49byxlWzBdPXQuY29lcmNlKGVbMF0pLFxcXCJzdHJpbmdcXFwiIT10eXBlb2YgZVswXSYmZS51bnNoaWZ0KFxcXCIlT1xcXCIpO2xldCBpPTA7ZVswXT1lWzBdLnJlcGxhY2UoLyUoW2EtekEtWiVdKS9nLChuLG8pPT57aWYoXFxcIiUlXFxcIj09PW4pcmV0dXJuXFxcIiVcXFwiO2krKztjb25zdCByPXQuZm9ybWF0dGVyc1tvXTtpZihcXFwiZnVuY3Rpb25cXFwiPT10eXBlb2Ygcil7Y29uc3QgdD1lW2ldO249ci5jYWxsKHMsdCksZS5zcGxpY2UoaSwxKSxpLS19cmV0dXJuIG59KSx0LmZvcm1hdEFyZ3MuY2FsbChzLGUpLChzLmxvZ3x8dC5sb2cpLmFwcGx5KHMsZSl9cmV0dXJuIGEubmFtZXNwYWNlPWUsYS51c2VDb2xvcnM9dC51c2VDb2xvcnMoKSxhLmNvbG9yPXQuc2VsZWN0Q29sb3IoZSksYS5leHRlbmQ9cyxhLmRlc3Ryb3k9dC5kZXN0cm95LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFxcXCJlbmFibGVkXFxcIix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITEsZ2V0OigpPT5udWxsIT09aT9pOihvIT09dC5uYW1lc3BhY2VzJiYobz10Lm5hbWVzcGFjZXMscj10LmVuYWJsZWQoZSkpLHIpLHNldDplPT57aT1lfX0pLFxcXCJmdW5jdGlvblxcXCI9PXR5cGVvZiB0LmluaXQmJnQuaW5pdChhKSxhfWZ1bmN0aW9uIHMoZSxuKXtjb25zdCBzPXQodGhpcy5uYW1lc3BhY2UrKHZvaWQgMD09PW4/XFxcIjpcXFwiOm4pK2UpO3JldHVybiBzLmxvZz10aGlzLmxvZyxzfWZ1bmN0aW9uIG8oZSl7cmV0dXJuIGUudG9TdHJpbmcoKS5zdWJzdHJpbmcoMixlLnRvU3RyaW5nKCkubGVuZ3RoLTIpLnJlcGxhY2UoL1xcXFwuXFxcXCpcXFxcPyQvLFxcXCIqXFxcIil9cmV0dXJuIHQuZGVidWc9dCx0LmRlZmF1bHQ9dCx0LmNvZXJjZT1mdW5jdGlvbihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIEVycm9yP2Uuc3RhY2t8fGUubWVzc2FnZTplfSx0LmRpc2FibGU9ZnVuY3Rpb24oKXtjb25zdCBlPVsuLi50Lm5hbWVzLm1hcChvKSwuLi50LnNraXBzLm1hcChvKS5tYXAoZT0+XFxcIi1cXFwiK2UpXS5qb2luKFxcXCIsXFxcIik7cmV0dXJuIHQuZW5hYmxlKFxcXCJcXFwiKSxlfSx0LmVuYWJsZT1mdW5jdGlvbihlKXtsZXQgbjt0LnNhdmUoZSksdC5uYW1lc3BhY2VzPWUsdC5uYW1lcz1bXSx0LnNraXBzPVtdO2NvbnN0IHM9KFxcXCJzdHJpbmdcXFwiPT10eXBlb2YgZT9lOlxcXCJcXFwiKS5zcGxpdCgvW1xcXFxzLF0rLyksbz1zLmxlbmd0aDtmb3Iobj0wO248bztuKyspc1tuXSYmKFxcXCItXFxcIj09PShlPXNbbl0ucmVwbGFjZSgvXFxcXCovZyxcXFwiLio/XFxcIikpWzBdP3Quc2tpcHMucHVzaChuZXcgUmVnRXhwKFxcXCJeXFxcIitlLnNsaWNlKDEpK1xcXCIkXFxcIikpOnQubmFtZXMucHVzaChuZXcgUmVnRXhwKFxcXCJeXFxcIitlK1xcXCIkXFxcIikpKX0sdC5lbmFibGVkPWZ1bmN0aW9uKGUpe2lmKFxcXCIqXFxcIj09PWVbZS5sZW5ndGgtMV0pcmV0dXJuITA7bGV0IG4scztmb3Iobj0wLHM9dC5za2lwcy5sZW5ndGg7bjxzO24rKylpZih0LnNraXBzW25dLnRlc3QoZSkpcmV0dXJuITE7Zm9yKG49MCxzPXQubmFtZXMubGVuZ3RoO248cztuKyspaWYodC5uYW1lc1tuXS50ZXN0KGUpKXJldHVybiEwO3JldHVybiExfSx0Lmh1bWFuaXplPW4oNjU4NSksdC5kZXN0cm95PWZ1bmN0aW9uKCl7Y29uc29sZS53YXJuKFxcXCJJbnN0YW5jZSBtZXRob2QgYGRlYnVnLmRlc3Ryb3koKWAgaXMgZGVwcmVjYXRlZCBhbmQgbm8gbG9uZ2VyIGRvZXMgYW55dGhpbmcuIEl0IHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIG9mIGBkZWJ1Z2AuXFxcIil9LE9iamVjdC5rZXlzKGUpLmZvckVhY2gobj0+e3Rbbl09ZVtuXX0pLHQubmFtZXM9W10sdC5za2lwcz1bXSx0LmZvcm1hdHRlcnM9e30sdC5zZWxlY3RDb2xvcj1mdW5jdGlvbihlKXtsZXQgbj0wO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKW49KG48PDUpLW4rZS5jaGFyQ29kZUF0KHQpLG58PTA7cmV0dXJuIHQuY29sb3JzW01hdGguYWJzKG4pJXQuY29sb3JzLmxlbmd0aF19LHQuZW5hYmxlKHQubG9hZCgpKSx0fX0sOTEzMzooZSx0KT0+e1xcXCJ1c2Ugc3RyaWN0XFxcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcXFwiX19lc01vZHVsZVxcXCIse3ZhbHVlOiEwfSksdC5oYXNCaW5hcnk9dC5pc0JpbmFyeT12b2lkIDA7Y29uc3Qgbj1cXFwiZnVuY3Rpb25cXFwiPT10eXBlb2YgQXJyYXlCdWZmZXIscz1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLG89XFxcImZ1bmN0aW9uXFxcIj09dHlwZW9mIEJsb2J8fFxcXCJ1bmRlZmluZWRcXFwiIT10eXBlb2YgQmxvYiYmXFxcIltvYmplY3QgQmxvYkNvbnN0cnVjdG9yXVxcXCI9PT1zLmNhbGwoQmxvYikscj1cXFwiZnVuY3Rpb25cXFwiPT10eXBlb2YgRmlsZXx8XFxcInVuZGVmaW5lZFxcXCIhPXR5cGVvZiBGaWxlJiZcXFwiW29iamVjdCBGaWxlQ29uc3RydWN0b3JdXFxcIj09PXMuY2FsbChGaWxlKTtmdW5jdGlvbiBpKGUpe3JldHVybiBuJiYoZSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyfHwoZT0+XFxcImZ1bmN0aW9uXFxcIj09dHlwZW9mIEFycmF5QnVmZmVyLmlzVmlldz9BcnJheUJ1ZmZlci5pc1ZpZXcoZSk6ZS5idWZmZXIgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikoZSkpfHxvJiZlIGluc3RhbmNlb2YgQmxvYnx8ciYmZSBpbnN0YW5jZW9mIEZpbGV9dC5pc0JpbmFyeT1pLHQuaGFzQmluYXJ5PWZ1bmN0aW9uIGUodCxuKXtpZighdHx8XFxcIm9iamVjdFxcXCIhPXR5cGVvZiB0KXJldHVybiExO2lmKEFycmF5LmlzQXJyYXkodCkpe2ZvcihsZXQgbj0wLHM9dC5sZW5ndGg7bjxzO24rKylpZihlKHRbbl0pKXJldHVybiEwO3JldHVybiExfWlmKGkodCkpcmV0dXJuITA7aWYodC50b0pTT04mJlxcXCJmdW5jdGlvblxcXCI9PXR5cGVvZiB0LnRvSlNPTiYmMT09PWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIGUodC50b0pTT04oKSwhMCk7Zm9yKGNvbnN0IG4gaW4gdClpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxuKSYmZSh0W25dKSlyZXR1cm4hMDtyZXR1cm4hMX19LDkzNjg6KGUsdCxuKT0+e3QuZm9ybWF0QXJncz1mdW5jdGlvbih0KXtpZih0WzBdPSh0aGlzLnVzZUNvbG9ycz9cXFwiJWNcXFwiOlxcXCJcXFwiKSt0aGlzLm5hbWVzcGFjZSsodGhpcy51c2VDb2xvcnM/XFxcIiAlY1xcXCI6XFxcIiBcXFwiKSt0WzBdKyh0aGlzLnVzZUNvbG9ycz9cXFwiJWMgXFxcIjpcXFwiIFxcXCIpK1xcXCIrXFxcIitlLmV4cG9ydHMuaHVtYW5pemUodGhpcy5kaWZmKSwhdGhpcy51c2VDb2xvcnMpcmV0dXJuO2NvbnN0IG49XFxcImNvbG9yOiBcXFwiK3RoaXMuY29sb3I7dC5zcGxpY2UoMSwwLG4sXFxcImNvbG9yOiBpbmhlcml0XFxcIik7bGV0IHM9MCxvPTA7dFswXS5yZXBsYWNlKC8lW2EtekEtWiVdL2csZT0+e1xcXCIlJVxcXCIhPT1lJiYocysrLFxcXCIlY1xcXCI9PT1lJiYobz1zKSl9KSx0LnNwbGljZShvLDAsbil9LHQuc2F2ZT1mdW5jdGlvbihlKXt0cnl7ZT90LnN0b3JhZ2Uuc2V0SXRlbShcXFwiZGVidWdcXFwiLGUpOnQuc3RvcmFnZS5yZW1vdmVJdGVtKFxcXCJkZWJ1Z1xcXCIpfWNhdGNoKGUpe319LHQubG9hZD1mdW5jdGlvbigpe2xldCBlO3RyeXtlPXQuc3RvcmFnZS5nZXRJdGVtKFxcXCJkZWJ1Z1xcXCIpfWNhdGNoKGUpe31yZXR1cm4hZSYmXFxcInVuZGVmaW5lZFxcXCIhPXR5cGVvZiBwcm9jZXNzJiZcXFwiZW52XFxcImluIHByb2Nlc3MmJihlPXByb2Nlc3MuZW52LkRFQlVHKSxlfSx0LnVzZUNvbG9ycz1mdW5jdGlvbigpe2lmKFxcXCJ1bmRlZmluZWRcXFwiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3cucHJvY2VzcyYmKFxcXCJyZW5kZXJlclxcXCI9PT13aW5kb3cucHJvY2Vzcy50eXBlfHx3aW5kb3cucHJvY2Vzcy5fX253anMpKXJldHVybiEwO2lmKFxcXCJ1bmRlZmluZWRcXFwiIT10eXBlb2YgbmF2aWdhdG9yJiZuYXZpZ2F0b3IudXNlckFnZW50JiZuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goLyhlZGdlfHRyaWRlbnQpXFxcXC8oXFxcXGQrKS8pKXJldHVybiExO2xldCBlO3JldHVyblxcXCJ1bmRlZmluZWRcXFwiIT10eXBlb2YgZG9jdW1lbnQmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlJiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuV2Via2l0QXBwZWFyYW5jZXx8XFxcInVuZGVmaW5lZFxcXCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy5jb25zb2xlJiYod2luZG93LmNvbnNvbGUuZmlyZWJ1Z3x8d2luZG93LmNvbnNvbGUuZXhjZXB0aW9uJiZ3aW5kb3cuY29uc29sZS50YWJsZSl8fFxcXCJ1bmRlZmluZWRcXFwiIT10eXBlb2YgbmF2aWdhdG9yJiZuYXZpZ2F0b3IudXNlckFnZW50JiYoZT1uYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goL2ZpcmVmb3hcXFxcLyhcXFxcZCspLykpJiZwYXJzZUludChlWzFdLDEwKT49MzF8fFxcXCJ1bmRlZmluZWRcXFwiIT10eXBlb2YgbmF2aWdhdG9yJiZuYXZpZ2F0b3IudXNlckFnZW50JiZuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goL2FwcGxld2Via2l0XFxcXC8oXFxcXGQrKS8pfSx0LnN0b3JhZ2U9ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIGxvY2FsU3RvcmFnZX1jYXRjaChlKXt9fSgpLHQuZGVzdHJveT0oKCk9PntsZXQgZT0hMTtyZXR1cm4oKT0+e2V8fChlPSEwLGNvbnNvbGUud2FybihcXFwiSW5zdGFuY2UgbWV0aG9kIGBkZWJ1Zy5kZXN0cm95KClgIGlzIGRlcHJlY2F0ZWQgYW5kIG5vIGxvbmdlciBkb2VzIGFueXRoaW5nLiBJdCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiBvZiBgZGVidWdgLlxcXCIpKX19KSgpLHQuY29sb3JzPVtcXFwiIzAwMDBDQ1xcXCIsXFxcIiMwMDAwRkZcXFwiLFxcXCIjMDAzM0NDXFxcIixcXFwiIzAwMzNGRlxcXCIsXFxcIiMwMDY2Q0NcXFwiLFxcXCIjMDA2NkZGXFxcIixcXFwiIzAwOTlDQ1xcXCIsXFxcIiMwMDk5RkZcXFwiLFxcXCIjMDBDQzAwXFxcIixcXFwiIzAwQ0MzM1xcXCIsXFxcIiMwMENDNjZcXFwiLFxcXCIjMDBDQzk5XFxcIixcXFwiIzAwQ0NDQ1xcXCIsXFxcIiMwMENDRkZcXFwiLFxcXCIjMzMwMENDXFxcIixcXFwiIzMzMDBGRlxcXCIsXFxcIiMzMzMzQ0NcXFwiLFxcXCIjMzMzM0ZGXFxcIixcXFwiIzMzNjZDQ1xcXCIsXFxcIiMzMzY2RkZcXFwiLFxcXCIjMzM5OUNDXFxcIixcXFwiIzMzOTlGRlxcXCIsXFxcIiMzM0NDMDBcXFwiLFxcXCIjMzNDQzMzXFxcIixcXFwiIzMzQ0M2NlxcXCIsXFxcIiMzM0NDOTlcXFwiLFxcXCIjMzNDQ0NDXFxcIixcXFwiIzMzQ0NGRlxcXCIsXFxcIiM2NjAwQ0NcXFwiLFxcXCIjNjYwMEZGXFxcIixcXFwiIzY2MzNDQ1xcXCIsXFxcIiM2NjMzRkZcXFwiLFxcXCIjNjZDQzAwXFxcIixcXFwiIzY2Q0MzM1xcXCIsXFxcIiM5OTAwQ0NcXFwiLFxcXCIjOTkwMEZGXFxcIixcXFwiIzk5MzNDQ1xcXCIsXFxcIiM5OTMzRkZcXFwiLFxcXCIjOTlDQzAwXFxcIixcXFwiIzk5Q0MzM1xcXCIsXFxcIiNDQzAwMDBcXFwiLFxcXCIjQ0MwMDMzXFxcIixcXFwiI0NDMDA2NlxcXCIsXFxcIiNDQzAwOTlcXFwiLFxcXCIjQ0MwMENDXFxcIixcXFwiI0NDMDBGRlxcXCIsXFxcIiNDQzMzMDBcXFwiLFxcXCIjQ0MzMzMzXFxcIixcXFwiI0NDMzM2NlxcXCIsXFxcIiNDQzMzOTlcXFwiLFxcXCIjQ0MzM0NDXFxcIixcXFwiI0NDMzNGRlxcXCIsXFxcIiNDQzY2MDBcXFwiLFxcXCIjQ0M2NjMzXFxcIixcXFwiI0NDOTkwMFxcXCIsXFxcIiNDQzk5MzNcXFwiLFxcXCIjQ0NDQzAwXFxcIixcXFwiI0NDQ0MzM1xcXCIsXFxcIiNGRjAwMDBcXFwiLFxcXCIjRkYwMDMzXFxcIixcXFwiI0ZGMDA2NlxcXCIsXFxcIiNGRjAwOTlcXFwiLFxcXCIjRkYwMENDXFxcIixcXFwiI0ZGMDBGRlxcXCIsXFxcIiNGRjMzMDBcXFwiLFxcXCIjRkYzMzMzXFxcIixcXFwiI0ZGMzM2NlxcXCIsXFxcIiNGRjMzOTlcXFwiLFxcXCIjRkYzM0NDXFxcIixcXFwiI0ZGMzNGRlxcXCIsXFxcIiNGRjY2MDBcXFwiLFxcXCIjRkY2NjMzXFxcIixcXFwiI0ZGOTkwMFxcXCIsXFxcIiNGRjk5MzNcXFwiLFxcXCIjRkZDQzAwXFxcIixcXFwiI0ZGQ0MzM1xcXCJdLHQubG9nPWNvbnNvbGUuZGVidWd8fGNvbnNvbGUubG9nfHwoKCk9Pnt9KSxlLmV4cG9ydHM9bigxNzAzKSh0KTtjb25zdHtmb3JtYXR0ZXJzOnN9PWUuZXhwb3J0cztzLmo9ZnVuY3Rpb24oZSl7dHJ5e3JldHVybiBKU09OLnN0cmluZ2lmeShlKX1jYXRjaChlKXtyZXR1cm5cXFwiW1VuZXhwZWN0ZWRKU09OUGFyc2VFcnJvcl06IFxcXCIrZS5tZXNzYWdlfX19LDk0MTk6KGUsdCxuKT0+e1xcXCJ1c2Ugc3RyaWN0XFxcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcXFwiX19lc01vZHVsZVxcXCIse3ZhbHVlOiEwfSksdC50cmFuc3BvcnRzPXZvaWQgMDtjb25zdCBzPW4oNTI4KSxvPW4oODcxNikscj1uKDQ0ODApO3QudHJhbnNwb3J0cz17d2Vic29ja2V0Om8uV1Msd2VidHJhbnNwb3J0OnIuV1QscG9sbGluZzpzLlBvbGxpbmd9fSw5OTM0OihlLHQpPT57XFxcInVzZSBzdHJpY3RcXFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFxcXCJfX2VzTW9kdWxlXFxcIix7dmFsdWU6ITB9KSx0LnR1bmVPcHRpb25NZXRob2RzPXQuaW5pdD10LnR1bmVPcHRpb25EZXRhaWxNZXRhPXQudHVuZU9wdGlvbkRldGFpbEVtb3Rpb249dC50dW5lT3B0aW9uUmFua0FsbEhhc0xhdGVzdFBvc3Q9dC50dW5lT3B0aW9uUmFua0hhc0xhdGVzdFBvc3Q9dC50dW5lT3B0aW9uSGFzTGF0ZXN0UG9zdD10LnR1bmVPcHRpb25SYW5rQWxsPXQudHVuZU9wdGlvblJhbms9dC50dW5lT3B0aW9uUG9zdHM9dm9pZCAwLHQudHVuZU9wdGlvblBvc3RzPVxcXCJwb3N0c1xcXCIsdC50dW5lT3B0aW9uUmFuaz1cXFwicmFua1xcXCIsdC50dW5lT3B0aW9uUmFua0FsbD1cXFwicmFua0FsbFxcXCIsdC50dW5lT3B0aW9uSGFzTGF0ZXN0UG9zdD1cXFwiaGFzTGF0ZXN0UG9zdFxcXCIsdC50dW5lT3B0aW9uUmFua0hhc0xhdGVzdFBvc3Q9XFxcInJhbmtIYXNMYXRlc3RQb3N0XFxcIix0LnR1bmVPcHRpb25SYW5rQWxsSGFzTGF0ZXN0UG9zdD1cXFwicmFua0FsbEhhc0xhdGVzdFBvc3RcXFwiLHQudHVuZU9wdGlvbkRldGFpbEVtb3Rpb249XFxcImRldGFpbEVtb3Rpb25cXFwiLHQudHVuZU9wdGlvbkRldGFpbE1ldGE9XFxcImRldGFpbE1ldGFcXFwiLHQuaW5pdD17W3QudHVuZU9wdGlvblBvc3RzXTohMSxbdC50dW5lT3B0aW9uUmFua106ITEsW3QudHVuZU9wdGlvblJhbmtBbGxdOiExLFt0LnR1bmVPcHRpb25IYXNMYXRlc3RQb3N0XTohMSxbdC50dW5lT3B0aW9uUmFua0hhc0xhdGVzdFBvc3RdOiExLFt0LnR1bmVPcHRpb25SYW5rQWxsSGFzTGF0ZXN0UG9zdF06ITEsW3QudHVuZU9wdGlvbkRldGFpbEVtb3Rpb25dOiExLFt0LnR1bmVPcHRpb25EZXRhaWxNZXRhXTohMX0sdC50dW5lT3B0aW9uTWV0aG9kcz1PYmplY3Qua2V5cyh0LmluaXQpLHQuZGVmYXVsdD1jbGFzc3tjb25zdHJ1Y3RvcihlPXQuaW5pdCl7cmV0dXJuIE9iamVjdC5hc3NpZ24odGhpcyxlKX1zdGF0aWMgZ2V0VHVuZU9wdGlvbkZyb21VcmwoZSl7Y29uc3Qgbj1lLnNwbGl0KFxcXCI/XFxcIilbMV07aWYoIW4pcmV0dXJuey4uLnQuaW5pdH07Y29uc3Qgcz1uZXcgVVJMU2VhcmNoUGFyYW1zKG4pLG89e307Zm9yKGNvbnN0IGUgb2YgdC50dW5lT3B0aW9uTWV0aG9kcyl7Y29uc3QgdD1zLmdldChlKTtvW2VdPVxcXCJ0cnVlXFxcIj09PXR8fFxcXCJmYWxzZVxcXCIhPT10JiZCb29sZWFuKHQpfXJldHVybnsuLi50LmluaXQsLi4ub319fX19LHQ9e307ZnVuY3Rpb24gbihzKXt2YXIgbz10W3NdO2lmKHZvaWQgMCE9PW8pe2lmKHZvaWQgMCE9PW8uZXJyb3IpdGhyb3cgby5lcnJvcjtyZXR1cm4gby5leHBvcnRzfXZhciByPXRbc109e2V4cG9ydHM6e319O3RyeXtlW3NdLmNhbGwoci5leHBvcnRzLHIsci5leHBvcnRzLG4pfWNhdGNoKGUpe3Rocm93IHIuZXJyb3I9ZSxlfXJldHVybiByLmV4cG9ydHN9bi5kPShlLHQpPT57Zm9yKHZhciBzIGluIHQpbi5vKHQscykmJiFuLm8oZSxzKSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGUscyx7ZW51bWVyYWJsZTohMCxnZXQ6dFtzXX0pfSxuLm89KGUsdCk9Pk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHQpLG4ucj1lPT57XFxcInVuZGVmaW5lZFxcXCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC50b1N0cmluZ1RhZyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsU3ltYm9sLnRvU3RyaW5nVGFnLHt2YWx1ZTpcXFwiTW9kdWxlXFxcIn0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFxcXCJfX2VzTW9kdWxlXFxcIix7dmFsdWU6ITB9KX0sbig4NjI2KX0pKCk7XFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lWM056VjI5eWEyVnlMbXB6SWl3aWJXRndjR2x1WjNNaU9pSTRRMEZEUVN4SlFVRkpRU3hGUVVGdFFrTXNUVUZCVVVFc1MwRkJTMFFzYVVKQlFXOUNMRk5CUVZWRkxFZEJRemxFTEU5QlFWRkJMRWRCUVU5QkxFVkJRVWxETEZkQlFXTkVMRVZCUVUwc1EwRkJSU3hSUVVGWFFTeEZRVU40UkN4RlFVTkJSU3hQUVVGUFF5eGxRVUZsUXl4RlFVRlRMR0ZCUVdNc1EwRkJSVU1zVDBGQlR5eEpRVU4wUkVRc1JVRkJVVVVzVVVGQlZVWXNSVUZCVVVjc1lVRkJWU3hGUVVOd1F5eE5RVUZOUXl4RlFVRnBRaXhGUVVGUkxFMUJRM3BDUXl4RlFVRlZXQ3hGUVVGblFpeEZRVUZSTEU5QlEyeERXU3hGUVVGaExFVkJRVkVzUzBGRGNrSkRMRVZCUVhGQ0xFVkJRVkVzVFVGRE4wSkRMRVZCUVhOQ0xFVkJRVkVzVFVGRE9VSkRMRVZCUVhOQ0xFVkJRVkVzVFVGRE9VSkRMRVZCUVZrc1JVRkJVU3hOUVVOd1FrTXNSVUZCYTBJc1JVRkJVU3hOUVVNeFFrTXNSMEZCVVN4RlFVRkpVQ3hGUVVGUlVTeFRRVUZUTERSQ1FVTnVReXhUUVVGVFF5eEpRVUZWTEVOQlEyNUNMRTFCUVUxRExFVkJTVXNzVFVGSVN5eEpRVUZKVUN4RlFVRnZRbEVzU1VGQlNTeERRVU53UTBNc1UwRkJVeXhKUVVWTlF5eGhRVVYyUWl4TlFVRk5aaXhWUVVGblFrTXNSVUZCWldVc1ZVRlBha01zVjBGQlFVTXNRMEZCV1VNc1IwRkhVaXhIUVVaQlF5eE5RVUZOUkN4SFFVTk9NVUlzUzBGQlN6UkNMRk5CUVZVc1JVRkRVeXh2UWtGQllrTXNVMEZCTUVJc1EwRkRha01zVFVGQlRVTXNSVUZCVVN4WFFVRmhSQ3hUUVVGVFJTeFRRVU53UXl4SlFVRkpReXhGUVVGUFNDeFRRVUZUUnl4TFFVVm1RU3hKUVVORVFTeEZRVUZQUml4RlFVRlJMRTFCUVZFc1RVRkZNMEk1UWl4TFFVRkxhVU1zUjBGRGIwSXNiMEpCUVdKS0xGVkJRMHBJTEVWQlFVdFJMRmRCUVdGTUxGTkJRVk5MTEZWQlF6TkNSaXhKUVVGVFRpeEZRVUZMVFN4SlFVTXhRaXhEUVVsQkxFMUJRVTFITEVWQlFXTlVMRWRCUVZGQkxFVkJRVXRUTEZsQlEycERia01zUzBGQlMyOURMR1ZCUVdsQ2FFSXNTVUZCV1dVc1JVRkRPVUp1UXl4TFFVRkxNRUlzUzBGQlMxY3NhMEpCUTFaeVF5eExRVUZMYzBNc1YwRkJXU3hGUVVGSmVrSXNSVUZCYjBJd1FpeHRRa0ZGYWtRc1EwRkRRU3hSUVVGSlF5eEhRVU5CTEUxQlFVOHNVMEZEV0N4RFFVOUJMRTFCUVVGRExFZEJRMGw2UXl4TFFVRkxNRU1zVFVGRFZDeERRVTlCTEV0QlFVRkRMRU5CUVUxRExFZEJRMFkxUXl4TFFVRkxOa01zVjBGQllTeFZRVU5zUWl4TlFVRk5SaXhGUVVGUkxFdEJRMVl4UWl4RlFVRk5MRlZCUTA1cVFpeExRVUZMTmtNc1YwRkJZU3hUUVVOc1FrUXNTMEZGU2l4SFFVRkpOVU1zUzBGQlN6UkNMRlZCUVZrMVFpeExRVUZMT0VNc1UwRkJWU3hEUVVOb1F5eEpRVUZKUXl4RlFVRlJMRVZCUTFJdlF5eExRVUZMTkVJc1ZVRkRURmdzUlVGQlRTd3JRMEZEVGpoQ0xFbEJRMEV2UXl4TFFVRkxaMFFzUzBGQlN5eGxRVUZuUWl4WFFVTjBRaTlDTEVWQlFVMHNaME5CUTBvNFFpeEhRVUZUU2l4SFFVTm1MRWxCUlVNelF5eExRVUZMT0VNc1YwRkRUamRDTEVWQlFVMHNLME5CUTA0NFFpeEpRVU5CTDBNc1MwRkJTMmRFTEV0QlFVc3NVVUZCVXl4WFFVTm1MMElzUlVGQlRTeG5RMEZEU2poQ0xFZEJRVk5LTEVkQlEyWXNSMEZGVWl4TlFVVkpRU3hIUVVWU0xFTkJUVUVzU1VGQlFVUXNSMEZEU1hwQ0xFVkJRVTBzVjBGRFRtcENMRXRCUVVzMFFpeFRRVUZWTEVWQlEyWTFRaXhMUVVGTGFVUXNVMEZEVEdwRUxFdEJRVXRyUkN4aFFVRmhMRTlCUTNSQ0xFTkJUVUVzVFVGQlFVTXNRMEZCVDBNc1IwRkRTRzVETEVWQlFVMHNjMEpCUVhWQ2JVTXNTVUZsTjBJc1JVRkJTWGhETEVWQlFXMUNlVU1zWlVGQlpVUXNSVUZCVFhCRUxFdEJRVXR6UkN4UFFVRlBReXhaUVVGWlF5eFJRV1JzUkVNc1NVRk5aQ3hIUVVwSkxGbEJRV042UkN4TFFVRkxOa01zV1VGQk9FSXNVMEZCYUVKWkxFVkJRVTlETEUxQlEzaERNVVFzUzBGQlN6SkVMRk5CUjB3c1ZVRkJXVVlzUlVGQlQwTXNTMEZGYmtJc1QwRkVRVEZFTEV0QlFVczBSQ3hSUVVGUkxFTkJRVVZETEZsQlFXRXNiME5CUTNKQ0xFVkJSMWczUkN4TFFVRkxPRVFzVTBGQlUwd3NTMEZMWkN4WFFVRmhla1FzUzBGQlN6WkRMR0ZCUld4Q04wTXNTMEZCU3pSQ0xGTkJRVlVzUlVGRFpqVkNMRXRCUVV0clJDeGhRVUZoTEdkQ1FVTmtMRk5CUVZkc1JDeExRVUZMTmtNc1YwRkRhRUkzUXl4TFFVRkxNRU1zVDBGSFRIcENMRVZCUVUwc2RVTkJRWGREYWtJc1MwRkJTelpETEZsQlJ5OUVMRU5CVFVFc1QwRkJRV3RDTEVkQlEwa3NUVUZCVFVNc1JVRkJVU3hMUVVOV0wwTXNSVUZCVFN4M1FrRkRUbXBDTEV0QlFVdHBSU3hOUVVGTkxFTkJRVU1zUTBGQlJWQXNTMEZCVFN4WlFVVndRaXhUUVVGWE1VUXNTMEZCU3paRExGbEJRMmhDTlVJc1JVRkJUU3cwUWtGRFRpdERMRTFCUzBFdlF5eEZRVUZOTEhkRFFVTk9ha0lzUzBGQlMyZEVMRXRCUVVzc1QwRkJVV2RDTEVkQlJURkNMRU5CVDBFc1MwRkJRVU1zUTBGQlRVTXNSMEZEUm14RkxFdEJRVXM0UXl4VlFVRlhMRWRCUTJoQ0xFVkJRVWxzUXl4RlFVRnRRblZFTEdWQlFXVkVMRVZCUVZWa0xFbEJRelZEY0VRc1MwRkJTMjlGTEZGQlFWRm9RaXhGUVVGTkxFdEJRMlp3UkN4TFFVRkxPRU1zVlVGQlZ5eEZRVU5vUWpsRExFdEJRVXRyUkN4aFFVRmhMRmxCUnpsQ0xFTkJUVUVzUjBGQlFXMUNMRWRCUTBrc1RVRkJUVU1zUlVGQlUzUkZMRXRCUVVzd1FpeExRVUZMTmtNc1QwRkJVeXhSUVVGVkxFOUJRM1JEUXl4RlFVRlJlRVVzUzBGQlMzZEZMRTlCUVZNc1EwRkJReXhGUVZFM1FpeFBRVTVKTEVsQlFWVjRSU3hMUVVGTE1FSXNTMEZCU3l0RExHOUNRVU53UWtRc1JVRkJUWGhGTEV0QlFVc3dRaXhMUVVGTFowUXNhVUpCUVd0Q0xFVkJRVWt2UkN4RlFVRlhaMFVzVlVGRmFFUXpSU3hMUVVGTGIwTXNaMEpCUVcxQ2IwTXNSVUZCVFVrc1RVRkRMMEpLTEVWQlFVMUxMRWxCUVUwc1IwRkZWRGRGTEV0QlFVczRSU3hWUVVGVlVpeEZRVUZSUlN4RlFVTnNReXhEUVU5QkxFOUJRVUZQTEVOQlFWRnlSQ3hGUVVGUExFTkJRVU1zUjBGRldpeFBRVVJCZGtJc1QwRkJUelpGTEU5QlFVOTBSQ3hGUVVGTkxFTkJRVVZQTEVkQlFVbHFReXhMUVVGTGFVTXNSMEZCU1Vzc1ZVRkJWM1JETEV0QlFVdHpReXhYUVVGaGRFTXNTMEZCU3pCQ0xFMUJRemxFTEVsQlFVbHVRaXhGUVVGUlVDeExRVUZMY1VVc1RVRkJUek5ETEVWQlEyNURMRU5CVVVFc1QwRkJRVEJETEVOQlFWRm9RaXhGUVVGTk5rSXNSMEZEVml4TlFVRk5ReXhGUVVGTmJFWXNTMEZCU3l0RkxGRkJRVkVzUTBGRGNrSkpMRTlCUVZFc1QwRkRVaTlDTEV0QlFVMUJMRWxCUlZZNFFpeEZRVUZKUlN4SFFVRkhMRlZCUVZkSUxFZEJRMnhDUXl4RlFVRkpSU3hIUVVGSExGRkJRVk1zUTBGQlEwTXNSVUZCVjBNc1MwRkRlRUowUml4TFFVRkxkVVlzVVVGQlVTeHBRa0ZCYTBKR0xFVkJRVmRETEVsQlJXeEVMRU5CVFVFc1RVRkJRWEpETEVkQlEwbG9ReXhGUVVGTkxGbEJRMDRzVFVGQlRXbEZMRVZCUVUxc1JpeExRVUZMSzBVc1ZVRkRha0pITEVWQlFVbEZMRWRCUVVjc1QwRkJVWEJHTEV0QlFVdHRSQ3hQUVVGUGNVTXNTMEZCUzNoR0xFOUJRMmhEYTBZc1JVRkJTVVVzUjBGQlJ5eFJRVUZUTEVOQlFVTkRMRVZCUVZkRExFdEJRM2hDZEVZc1MwRkJTM1ZHTEZGQlFWRXNhVUpCUVd0Q1JpeEZRVUZYUXl4TFFVVTVRM1JHTEV0QlFVdDVSaXhSUVVGVlVDeERRVU51UWl4RlFVVktOMFVzUlVGQlVVY3NVVUZCVlVFc1JVRkRiRUlzVFVGQlRVUXNWVUZCWjBKUExFVkJRVzlDTkVVc1VVRlBkRU1zVjBGQlFXcEZMRU5CUVZrMFF5eEZRVUZMTTBNc1IwRkRZa01zVTBGRFFTeEZRVUZKV2l4RlFVRlZORVVzZFVKQlFYVkNNMFlzUzBGQlRUQkNMRWRCUXpORE1VSXNTMEZCU3pCQ0xFdEJRVTlCTEVWQlExb3hRaXhMUVVGTGJVWXNUMEZCVTNwRUxFVkJRVXQ1UkN4UlFVRlZMRTFCUXpkQ2JrWXNTMEZCUzNGRkxFbEJRVTFCTEVWQlExaHlSU3hMUVVGTGIwUXNWVUZCVDNkRExFbEJRV05zUlN4RlFVRkxNRUlzUzBGQlR6RkNMRVZCUVVzd1FpeExRVUZQTEV0QlEyeEVjRVFzUzBGQlN6WkdMRkZCUTFRc1EwRk5RU3hOUVVGQlFTeEhRVU5KTEVsQlFVbERMRVZCUTBvc1RVRkJUWEJGTEVkQlFVOHNSVUZCU1Znc1JVRkJWV2RHTEUxQlFVMHZSaXhMUVVGTE1FSXNTMEZCVFN4UlFVRlRMRTFCUVU4c1RVRkJUeXhoUVVGakxFOUJRVkVzUzBGQlRTeFZRVUZYTEhGQ1FVRnpRaXhoUVVOb1NVRXNSVUZCUzBvc1ZVRkJXWFJDTEV0QlFVc3dRaXhMUVVGTFR5eEhRVU16UWl4TlFVRk5LMFFzUlVGQlQyaEhMRXRCUVV0blJ5eEpRVUZOTEVsQlFVbHVSaXhGUVVGdlFsRXNTVUZCU1Vzc1IwRkRjRVFzU1VGRFNWUXNSVUZCVFN4clFrRkJiVUpxUWl4TFFVRkxiVVlzVDBGQlVXNUdMRXRCUVV0eFJTeExRVU16UXpKQ0xFVkJRVWxETEV0QlFVdHFSeXhMUVVGTGJVWXNUMEZCVVc1R0xFdEJRVXR4UlN4TFFVRkxMRWRCUTJoRExFbEJRMGtzUjBGQlNYSkZMRXRCUVVzd1FpeExRVUZMZDBVc1lVRkJZeXhEUVVONFFrWXNSVUZCU1Vjc2RVSkJRWGxDU0N4RlFVRkpSeXgxUWtGQmMwSXNSMEZEZGtRc1NVRkJTeXhKUVVGSlF5eExRVUZMY0Vjc1MwRkJTekJDTEV0QlFVdDNSU3hoUVVOb1FteEhMRXRCUVVzd1FpeExRVUZMZDBVc1lVRkJZVWNzWlVGQlpVUXNTVUZEZEVOS0xFVkJRVWxOTEdsQ1FVRnBRa1lzUlVGQlIzQkhMRXRCUVVzd1FpeExRVUZMZDBVc1lVRkJZVVVzUjBGSE0wUXNRMEZEU2l4RFFVTkJMRTFCUVU5SExFZEJRVXNzUTBGRFdpeEhRVUZKTEZOQlFWZDJSeXhMUVVGTGJVWXNUMEZEYUVJc1NVRkRTV0VzUlVGQlNVMHNhVUpCUVdsQ0xHVkJRV2RDTERKQ1FVTjZReXhEUVVOQkxFMUJRVTlETEVkQlFVc3NRMEZGYUVJc1NVRkRTVkFzUlVGQlNVMHNhVUpCUVdsQ0xGTkJRVlVzVFVGRGJrTXNRMEZEUVN4TlFVRlBReXhIUVVGTExFTkJRMjFDTEZGQlFUbENWQ3hGUVVGTE9VWXNTMEZCU3pCQ0xFdEJRVXRaTEdsQ1FVRTRRaXhKUVVGUWQwUXNSMEZCZVVKQkxFVkJRVWRWTEZkQlFWZFNMRWRCUlRGRkxHOUNRVUZ4UWtFc1NVRkRja0pCTEVWQlFVa3pSQ3huUWtGQmEwSnlReXhMUVVGTE1FSXNTMEZCUzFjc2FVSkJSV2hEY2tNc1MwRkJTekJDTEV0QlFVc3JSU3hwUWtGRFZsUXNSVUZCU1ZVc1VVRkJWVEZITEV0QlFVc3dRaXhMUVVGTEswVXNaMEpCUlRWQ1ZDeEZRVUZKVnl4dFFrRkJjVUlzUzBGRGNrSXNTVUZCU1dJc1JVRkRiVUlzU1VGQmJrSkZMRVZCUVVsdVJDeGhRVU15UWl4UlFVRTVRbWxFTEVWQlFVczVSaXhMUVVGTE1FSXNTMEZCUzFrc2FVSkJRVGhDTEVsQlFWQjNSQ3hIUVVGNVFrRXNSVUZCUjJNc1lVRkJZVm9zU1VGRmFFWXNTVUZCVFVFc1JVRkJTVzVFTEdGQlJWWXNUVUZCVVcxRUxFVkJRVWxoTEZGQlFWVXNUMEZCVTJJc1JVRkJTV0VzVDBGRGJrTTNSeXhMUVVGTE9FY3NVMEZMVERsSExFdEJRVXNyUnl4aFFVRmhMRXRCUTJRdlJ5eExRVUZMZFVZc1VVRkJPRUlzYVVKQlFXWlRMRVZCUVVsaExFOUJRWE5DWWl4RlFVRkpZU3hQUVVGVExFbEJRelZFTEV0QlIxZzFSaXhGUVVGTkxHTkJRV1ZxUWl4TFFVRkxiMFFzVFVGRE1VSTBReXhGUVVGSlowSXNTMEZCUzJoSUxFdEJRVXR2UkN4TFFVTnNRaXhEUVVOQkxFMUJRVTl0UkN4SFFVOUlMRmxCU0VGMlJ5eExRVUZMSzBjc1lVRkJZU3hMUVVOa0wwY3NTMEZCUzNWR0xGRkJRVkZuUWl4SlFVTmtMRVZCUlZBc1EwRkRkMElzYjBKQlFXSlZMRmRCUTFCcVNDeExRVUZMYTBnc1RVRkJVVE5ITEVWQlFWRTBSeXhuUWtGRGNrSTFSeXhGUVVGUk5rY3NVMEZCVTNCSUxFdEJRVXRyU0N4UFFVRlRiRWdzUzBGRmRrTXNRMEZOUVN4UFFVRkJkVVlzUTBGQlVUaENMRWRCUTBweVNDeExRVUZMYTBRc1lVRkJZU3hSUVVGVGJVVXNSVUZCUzNKSUxFdEJRVXRuUnl4TFFVTnlRMmhITEV0QlFVdHpTQ3hUUVVGUkxFVkJRMnBDTEVOQlRVRXNUMEZCUVVFc1EwRkJVVU1zUjBGRFNpeFJRVUZKTEVsQlFYVkNka2dzUzBGQlMyZEhMRXRCUVU4c1QwRkJVMmhITEV0QlFVdG5SeXhKUVVGeVJDeERRVWxCTEVkQlJFRm9SeXhMUVVGTFowY3NTVUZCU1Zjc2JVSkJRWEZDZUVZc1JVRkRNVUp2Unl4RlFVTkJMRWxCUTBsMlNDeExRVUZMWjBjc1NVRkJTWGRDTEU5QlEySXNRMEZEUVN4TlFVRlBha0lzUjBGQlN5eERRVVZSTEc5Q1FVRmlWU3hwUWtGRFFURkhMRVZCUVZFMlJ5eFRRVUZUY0Vnc1MwRkJTMnRJTEU5QlJXcERiRWdzUzBGQlMyZEhMRWxCUVUwc1NVRllXQ3hEUVZsS0xFTkJUVUVzVFVGQlFXTXNSMEZEU1N4TlFVRk5NVVFzUlVGQlQzQkVMRXRCUVV0blJ5eEpRVUZKZVVJc1lVRkRWQ3hQUVVGVWNrVXNTVUZEUVhCRUxFdEJRVXRyUkN4aFFVRmhMRTlCUVZGRkxFZEJRekZDY0VRc1MwRkJTMnRFTEdGQlFXRXNWMEZEYkVKc1JDeExRVUZMYzBnc1ZVRkZZaXhEUVUxQkxFdEJRVUZGTEVkQlEwbDRTQ3hMUVVGTGMwZ3NVMEZEVkN4RlFWVktMRWRCVWtGcVNDeEZRVUZSUlN4UlFVRlZRU3hGUVVOc1FrRXNSVUZCVVRSSExHTkJRV2RDTEVWQlEzaENOVWNzUlVGQlVUWkhMRk5CUVZjc1EwRkJReXhGUVUxSkxHOUNRVUZpU0N4VFFVVlFMRWRCUVRKQ0xHMUNRVUZvUWxNc1dVRkZVRUVzV1VGQldTeFhRVUZaUXl4UlFVVjJRaXhIUVVGblF5eHRRa0ZCY2tKRExHbENRVUZwUXl4RFFVTTNReXhOUVVGTlF5eEZRVUZ0UWl4bFFVRm5RamRITEVWQlFXZENPRWNzWlVGQmFVSXNWMEZCWVN4VFFVTjJSa1lzYVVKQlFXbENReXhGUVVGclFrWXNSMEZCWlN4RlFVTjBSQ3hEUVVWS0xGTkJRVk5CTEVsQlEwd3NTVUZCU3l4SlFVRkpka0lzUzBGQlN6ZEdMRVZCUVZFMlJ5eFRRVU5rTjBjc1JVRkJVVFpITEZOQlFWTm1MR1ZCUVdWRUxFbEJRMmhETjBZc1JVRkJVVFpITEZOQlFWTm9RaXhIUVVGSGIwSXNUMEZIYUVNc1F5d3lRa016V2tGeVNDeFBRVUZQUXl4bFFVRmxReXhGUVVGVExHRkJRV01zUTBGQlJVTXNUMEZCVHl4SlFVTjBSRVFzUlVGQlVYTkZMRTFCUVZGMFJTeEZRVUZSTUVnc1QwRkJVekZJTEVWQlFWRXlTQ3haUVVGVExFVkJRMnhFTEUxQlFVMURMRVZCUVZjc2JVVkJRVzFGUXl4TlFVRk5MRWxCUVd0Q1F5eEZRVUZOTEVOQlFVTXNSVUZEYmtnc1NVRkJjVUpETEVWQlFXcENReXhGUVVGUExFVkJRVWRxUXl4RlFVRkpMRVZCVVd4Q0xGTkJRVk0wUWl4RlFVRlBUU3hIUVVOYUxFbEJRVWxETEVWQlFWVXNSMEZEWkN4SFFVTkpRU3hGUVVGVlRpeEZRVUZUU3l4RlFWbzJSU3hKUVZrM1JFTXNSVUZEYmtORUxFVkJRVTFGTEV0QlFVdERMRTFCUVUxSUxFVkJZaXRGTEZWQll6TkdRU3hGUVVGTkxFZEJRMllzVDBGQlQwTXNRMEZEV0N4RFFXbERRU3hKUVdoRFFXeEpMRVZCUVZFeVNDeFBRVUZUUVN4RlFXVnFRak5JTEVWQlFWRXdTQ3hQUVZCU0xGTkJRV2RDVnl4SFFVTmFMRWxCUVVsRExFVkJRVlVzUlVGRFpDeEpRVUZMZGtNc1JVRkJTU3hGUVVGSFFTeEZRVUZKYzBNc1JVRkJTVVVzVDBGQlVYaERMRWxCUTNoQ2RVTXNSVUUxUW1kSExFZEJORUowUmtFc1JVRkJiVUpTTEVWQlFVbFBMRVZCUVVsSExFOUJRVTk2UXl4SlFVVm9SQ3hQUVVGUGRVTXNRMEZEV0N4RlFXTkJkRWtzUlVGQlVYTkZMRTFCVGxJc1YwRkRTU3hOUVVGTmJVVXNSVUZCVFdRc1IwRkJVU3hKUVVGSlpTeE5RVU40UWl4UFFVRkpSQ3hKUVVGUlZpeEhRVU5FUXl4RlFVRlBMRVZCUVVkRUxFVkJRVTlWTEVkQlEzSkNRU3hGUVVGTkxFbEJRVTFrTEVWQlFVOUxMRWxCUXpsQ0xFVkJTMDlxUXl4RlFXcEVhVWNzUjBGcFJISkdRU3hKUVVObUswSXNSVUZCU1VZc1JVRkJVemRDTEVsQlFVMUJMRU1zWjBKRGFFUjJRaTlHTEVWQlFWRXlTU3hYUVRaSlVpeFRRVUZ2UWtNc1IwRlJia0lzUjBGUVFVRXNSVUZCU3l4SlFVRk5ha29zUzBGQlMydEtMRlZCUVZrc1MwRkJUeXhKUVVOc1EyeEtMRXRCUVV0dFNpeFhRVU5LYmtvc1MwRkJTMnRLTEZWQlFWa3NUVUZCVVN4TFFVTXhRa1FzUlVGQlN5eEpRVU5LYWtvc1MwRkJTMnRLTEZWQlFWa3NUVUZCVVN4TFFVTXhRaXhKUVVGTlJTeEZRVUZQTDBrc1VVRkJVV2RLTEZOQlFWTnlTaXhMUVVGTGMwb3NUMEZGTDBKMFNpeExRVUZMYTBvc1ZVRkRWQ3hQUVVkRUxFMUJRVTFMTEVWQlFVa3NWVUZCV1haS0xFdEJRVXQzU2l4TlFVTXpRbEFzUlVGQlMxRXNUMEZCVHl4RlFVRkhMRVZCUVVkR0xFVkJRVWNzYTBKQlMzSkNMRWxCUVVseVF5eEZRVUZSTEVWQlExSjNReXhGUVVGUkxFVkJRMXBVTEVWQlFVc3NSMEZCUjFVc1VVRkJVU3hqUVVGbFF5eEpRVU5vUWl4UFFVRldRU3hKUVVkS01VTXNTVUZEWXl4UFFVRldNRU1zU1VGSFNFWXNSVUZCVVhoRExFMUJTVllyUWl4RlFVRkxVU3hQUVVGUFF5eEZRVUZQTEVWQlFVZElMRVZCUTNaQ0xFVkJOMHRCYkVvc1JVRkJVWGRLTEV0QksweFNMRk5CUVdORExFZEJRMklzU1VGRFMwRXNSVUZEU0hwS0xFVkJRVkV3U2l4UlFVRlJReXhSUVVGUkxGRkJRVk5HTEVkQlJXcERla29zUlVGQlVUQktMRkZCUVZGRkxGZEJRVmNzVVVGRk4wSXNRMEZCUlN4TlFVRlBReXhIUVVkVUxFTkJRMFFzUlVGNlRVRTNTaXhGUVVGUk9Fb3NTMEZwVGxJc1YwRkRReXhKUVVGSlF5eEZRVU5LTEVsQlEwTkJMRVZCUVVrdlNpeEZRVUZSTUVvc1VVRkJVVTBzVVVGQlVTeFJRVU0zUWl4RFFVRkZMRTFCUVU5SUxFZEJSMVFzUTBGUFFTeFBRVXBMUlN4SFFVRjNRaXh2UWtGQldrVXNVMEZCTWtJc1VVRkJVMEVzVlVGRGNFUkdMRVZCUVVsRkxGRkJRVkZETEVsQlFVbERMRTlCUjFaS0xFTkJRMUlzUlVFdlRrRXZTaXhGUVVGUk5ra3NWVUY1UjFJc1YwRkpReXhIUVVGelFpeHZRa0ZCV0hWQ0xGRkJRVEJDUVN4UFFVRlBTQ3hWUVVGdlF5eGhRVUY0UWtjc1QwRkJUMGdzVVVGQlVUVkhMRTFCUVhWQ0swY3NUMEZCVDBnc1VVRkJVVWtzVVVGRE5VY3NUMEZCVHl4RlFVbFNMRWRCUVhsQ0xHOUNRVUZrUXl4WFFVRTJRa0VzVlVGQlZVTXNWMEZCWVVRc1ZVRkJWVU1zVlVGQlZVTXNZMEZCWTJwQ0xFMUJRVTBzZVVKQlEzUkhMRTlCUVU4c1JVRkhVaXhKUVVGSmEwSXNSVUZKU2l4TlFVRTBRaXh2UWtGQllqZEVMRlZCUVRSQ1FTeFRRVUZUT0VRc2FVSkJRVzFDT1VRc1UwRkJVemhFTEdkQ1FVRm5Ra01zVDBGQlV5OUVMRk5CUVZNNFJDeG5Ra0ZCWjBKRExFMUJRVTFETEd0Q1FVVndTQ3h2UWtGQldGSXNVVUZCTUVKQkxFOUJRVTlUTEZWQlFWbFVMRTlCUVU5VExGRkJRVkZETEZOQlFWbFdMRTlCUVU5VExGRkJRVkZGTEZkQlFXRllMRTlCUVU5VExGRkJRVkZITEZGQlIzSkhMRzlDUVVGa1ZpeFhRVUUyUWtFc1ZVRkJWVU1zV1VGQlkwVXNSVUZCU1Vnc1ZVRkJWVU1zVlVGQlZVTXNZMEZCWTJwQ0xFMUJRVTBzYjBKQlFYTkNNRUlzVTBGQlUxSXNSVUZCUlN4SFFVRkpMRXRCUVU4c1NVRkZMMGdzYjBKQlFXUklMRmRCUVRaQ1FTeFZRVUZWUXl4WFFVRmhSQ3hWUVVGVlF5eFZRVUZWUXl4alFVRmpha0lzVFVGQlRTeHhRa0ZEZEVjc1JVRnFTVUYyU2l4RlFVRlJNRW9zVVVFeVQxSXNWMEZEUXl4SlFVZERMRTlCUVU5M1FpeFpRVU5TTEVOQlFVVXNUVUZCVDNKQ0xFZEJSMVFzUTBGRFJDeERRWEJRYTBKelFpeEhRVU5zUW01TUxFVkJRVkZ2VEN4UlFVRlZMRTFCUTJwQ0xFbEJRVWxETEVkQlFWTXNSVUZGWWl4TlFVRlBMRXRCUTBSQkxFbEJRMHBCTEVkQlFWTXNSVUZEVkZJc1VVRkJVVk1zUzBGQlN5d3dTVUZIWml4RlFWUnBRaXhIUVdWc1FuUk1MRVZCUVZGMVRDeFBRVUZUTEVOQlEyaENMRlZCUTBFc1ZVRkRRU3hWUVVOQkxGVkJRMEVzVlVGRFFTeFZRVU5CTEZWQlEwRXNWVUZEUVN4VlFVTkJMRlZCUTBFc1ZVRkRRU3hWUVVOQkxGVkJRMEVzVlVGRFFTeFZRVU5CTEZWQlEwRXNWVUZEUVN4VlFVTkJMRlZCUTBFc1ZVRkRRU3hWUVVOQkxGVkJRMEVzVlVGRFFTeFZRVU5CTEZWQlEwRXNWVUZEUVN4VlFVTkJMRlZCUTBFc1ZVRkRRU3hWUVVOQkxGVkJRMEVzVlVGRFFTeFZRVU5CTEZWQlEwRXNWVUZEUVN4VlFVTkJMRlZCUTBFc1ZVRkRRU3hWUVVOQkxGVkJRMEVzVlVGRFFTeFZRVU5CTEZWQlEwRXNWVUZEUVN4VlFVTkJMRlZCUTBFc1ZVRkRRU3hWUVVOQkxGVkJRMEVzVlVGRFFTeFZRVU5CTEZWQlEwRXNWVUZEUVN4VlFVTkJMRlZCUTBFc1ZVRkRRU3hWUVVOQkxGVkJRMEVzVlVGRFFTeFZRVU5CTEZWQlEwRXNWVUZEUVN4VlFVTkJMRlZCUTBFc1ZVRkRRU3hWUVVOQkxGVkJRMEVzVlVGRFFTeFZRVU5CTEZWQlEwRXNWVUZEUVN4VlFVTkJMRlZCUTBFc1ZVRkRRU3hWUVVOQkxGZEJkMFpFZGt3c1JVRkJVWGRNTEVsQlFVMVlMRkZCUVZGcVN5eFBRVUZUYVVzc1VVRkJVVmNzUzBGQlR5eE5RVUZUTEVkQmEwVjJSSHBETEVWQlFVOHZTU3hSUVVGVkxFVkJRVkVzUzBGQlVpeERRVUZ2UWtFc1IwRkZja01zVFVGQlRTeFhRVUZEZVV3c1IwRkJZekZETEVWQlFVOHZTU3hSUVUwMVFubE1MRVZCUVZkRExFVkJRVWtzVTBGQlZVTXNSMEZEZUVJc1NVRkRReXhQUVVGUFF5eExRVUZMUXl4VlFVRlZSaXhGUVVOMlFpeERRVUZGTEUxQlFVODVRaXhIUVVOU0xFMUJRVThzSzBKQlFXbERRU3hGUVVGTmFVTXNUMEZETDBNc1EwRkRSQ3hETERSQ1F6ZFJRV2hOTEU5QlFVOURMR1ZCUVdWRExFVkJRVk1zWVVGQll5eERRVUZGUXl4UFFVRlBMRWxCUTNSRVJDeEZRVUZSSzB3c1YwRkJVU3hGUVc5Q2FFSXNUVUZCVFVNc1JVRkJTeXh6VUVGRFRFTXNSVUZCVVN4RFFVTldMRk5CUVZVc1YwRkJXU3haUVVGaExGZEJRVmtzVDBGQlVTeFhRVUZaTEU5QlFWRXNUMEZCVVN4WFFVRlpMRTlCUVZFc1dVRkJZU3hQUVVGUkxGRkJRVk1zVlVGM1FucEphazBzUlVGQlVTdE1MRTFCZEVKU0xGTkJRV1V4UkN4SFFVTllMRWRCUVVsQkxFVkJRVWxGTEU5QlFWTXNTVUZEWWl4TFFVRk5MR1ZCUlZZc1RVRkJUVEpFTEVWQlFVMDNSQ3hGUVVGTE9FUXNSVUZCU1RsRUxFVkJRVWtyUkN4UlFVRlJMRXRCUVUxc1J5eEZRVUZKYlVNc1JVRkJTU3RFTEZGQlFWRXNUVUZETjBNc1IwRkJUa1FzU1VGQmFVSXNSMEZCVG1wSExFbEJRMWh0UXl4RlFVRk5RU3hGUVVGSlowVXNWVUZCVlN4RlFVRkhSaXhIUVVGTE9VUXNSVUZCU1dkRkxGVkJRVlZHTEVWQlFVZHFSeXhIUVVGSGIwUXNVVUZCVVN4TFFVRk5MRXRCUVU5cVFpeEZRVUZKWjBVc1ZVRkJWVzVITEVWQlFVZHRReXhGUVVGSlJTeFRRVVU1Uml4SlFVRkphME1zUlVGQlNYVkNMRVZCUVVkTkxFdEJRVXRxUlN4SFFVRlBMRWxCUVV0eVJTeEZRVUZOTEVOQlFVTXNSVUZCUnl0Q0xFVkJRVWtzUjBGRE1VTXNTMEZCVDBFc1MwRkRTQzlDTEVWQlFVbHBTU3hGUVVGTmJFY3NTVUZCVFRCRkxFVkJRVVV4UlN4SlFVRk5MRWRCVlRWQ0xFOUJVbFVzUjBGQlRtOUhMRWxCUVdsQ0xFZEJRVTVxUnl4SlFVTlliRU1zUlVGQlNYVkpMRTlCUVZOTUxFVkJRMkpzU1N4RlFVRkpkMGtzUzBGQlQzaEpMRVZCUVVsM1NTeExRVUZMU0N4VlFVRlZMRVZCUVVkeVNTeEZRVUZKZDBrc1MwRkJTMnBGTEU5QlFWTXNSMEZCUjJVc1VVRkJVU3hMUVVGTkxFdEJRM0JGZEVZc1JVRkJTWGxKTEZWQlFWbDZTU3hGUVVGSmVVa3NWVUZCVlc1RUxGRkJRVkVzU1VGQlN5eEpRVUZKUVN4UlFVRlJMRWxCUVVzc1NVRkJTVUVzVVVGQlVTeExRVUZOTEV0QlF6bEZkRVlzUlVGQlNUQkpMRk5CUVZVc1IwRkZiRUl4U1N4RlFVRkpNa2tzVlVGTFVpeFRRVUZ0UWtNc1JVRkJTME1zUjBGRGNFSXNUVUZCZVVKRExFVkJRVkZFTEVWQlFVdDJSQ3hSUVVGNlFpeFhRVUYxUXl4TFFVRkxla0lzVFVGQlRTeExRVTh2UkN4TlFVNTNRaXhMUVVGd1FtZEdMRVZCUVV0RkxFMUJRVTBzUlVGQlJ5eEpRVUUyUWl4SlFVRm9Ra1lzUlVGQlMzUkZMRkZCUTJoRGRVVXNSVUZCVFRGRUxFOUJRVThzUlVGQlJ5eEhRVVZGTEV0QlFXeENlVVFzUlVGQlMwVXNUMEZCVHl4SlFVTmFSQ3hGUVVGTk1VUXNUMEZCVHpCRUxFVkJRVTEyUlN4UFFVRlRMRVZCUVVjc1IwRkZOVUoxUlN4RFFVTllMRU5CWkc5Q1NDeERRVUZWTTBrc1JVRkJTMEVzUlVGQlZTeE5RVU42UTBFc1JVRkJTV2RLTEZOQlkxSXNVMEZCYTBKb1NpeEZRVUZMUnl4SFFVTnVRaXhOUVVGTmNFSXNSVUZCVHl4RFFVRkRMRVZCVFdRc1QwRk1RVzlDTEVWQlFVMXRSaXhSUVVGUkxEUkNRVUUyUWl4VFFVRlZNa1FzUlVGQlNVTXNSVUZCU1VNc1IwRkRja1JFTEVsQlEwRnVTeXhGUVVGTGJVc3NSMEZCVFVNc1JVRkZia0lzUjBGRFQzQkxMRU5CUTFnc1EwRjBRbTFDYVVzc1EwRkJVMmhLTEVWQlFVdEJMRVZCUVZjc1QwRkRha05CTEVOQlExZ3NReXh2UTBNNVEwRXNTVUZCU1hSRkxFVkJRVzFDUXl4TlFVRlJRU3hMUVVGTFJDeHBRa0ZCYjBJc1UwRkJWVVVzUjBGRE9VUXNUMEZCVVVFc1IwRkJUMEVzUlVGQlNVTXNWMEZCWTBRc1JVRkJUU3hEUVVGRkxGRkJRVmRCTEVWQlEzaEVMRVZCUTBGRkxFOUJRVTlETEdWQlFXVkRMRVZCUVZNc1lVRkJZeXhEUVVGRlF5eFBRVUZQTEVsQlEzUkVSQ3hGUVVGUmIwNHNWVUZCVHl4RlFVTm1MRTFCUVUxRExFVkJRVTh6VGl4RlFVRm5RaXhGUVVGUkxFOUJRM0pEVFN4RlFVRlJiMDRzUzBGQlR5eERRVU5ZUlN4UlFVRlRMRXRCUTFSRExGTkJRVlVzUTBGRFRpOU1MRk5CUVZVc1IwRkRWbWRNTEV0QlFVMHNXVUZEVGpkTExFdEJRVTBzUjBGRlZqWk1MRTFCUVU4c1EwRkRTRU1zVVVGQlV5eEhRVU5VUXl4UFFVRlJMRU5CUTBwc1FpeExRVUZOTEZsQlEwNDNTeXhMUVVGTkxFOUJSMlJuVFN4UFFVRlJMRU5CUTBwRExGTkJRVk1zUjBGRllrTXNVMEZCVlN4SlFVVmtMRTFCUVUxRExFVkJRMFlzVjBGQlFURk5MRU5CUVZreVRTeEZRVUZUTDA0c1JVRkJVVzlPTEUxQlEzcENMRTlCUVU5MFRpeFBRVUZQTmtVc1QwRkJUMmhHTEV0QlFVMXZUeXhGUVVNdlFpeERRVU5CTEc5Q1FVRlBReXhEUVVGalF5eEZRVUZqUXl4SFFVTXZRaXhOUVVGTlF5eEZRVUZYTEVOQlFVTkRMRVZCUVZWRExFVkJRV2xDTEUxQlEzcERMRTFCUVUxRExFVkJRV3RDUkN4RlFVRnBRa1FzUlVGQlUySXNVMEZCVXk5TUxGTkJRek5FTEVkQlFVazRUU3hKUVVGdlFrb3NSVUZEY0VJc1RVRkJUeXhKUVVOQlJTeEZRVU5JVUN4VFFVRlZMRWRCUTFaVkxGZEJRVmxNTEVkQlIzQkNMRWRCUVVsRkxFVkJRVk5RTEZWQlFWbFBMRVZCUVZOUUxGTkJRVk4wUml4UFFVRlRMRVZCUTJoRUxFbEJRVXNzVFVGQlRXbEhMRXRCUVZOS0xFVkJRVk5RTEZOQlFWVXNRMEZEYmtNc1RVRkJUVmtzUlVGQlUwNHNSVUZCVTBzc1JVRkJUMFlzUjBGREwwSXNSMEZCU1Vjc1JVRkRRU3hQUVVGUFFTeERRVU5tTEVOQlJVb3NUMEZCVHl4TlFVVk1ReXhGUVVGVlVDeEZRVUZUUml4SFFVTjZRaXhQUVVGdFFpeFBRVUZhVXl4RlFVRnRRa0VzUlVGQlZTeEpRVUZMVkN4RlFVRmpTaXhUUVVGVkxFZEJRVWxWTEZkQlFWbE1MRVZCUTNKR0xFTkJRMEVzZFVKQlFVOVRMRU5CUVdsQ1dpeEhRVU53UWl4TlFVRk5MR0ZCUVVWRkxFVkJRVmtzWlVGQlJWY3NSMEZCYlVKaUxFVkJRMjVEWXl4RlFVRm5RaXhEUVVGRGFFSXNSVUZCVldVc1JVRkJaMEpGTEVWQlFXdENReXhGUVVGUkxFMUJRM1pGTEUxQlFVMURMRVZCUVZOdVFpeEZRVUZUYjBJc1MwRkJUVlFzUjBGQlZVa3NSVUZCWlhoRExGRkJRVkV3UXl4RlFVRnRRazRzUlVGQlRXcENMRk5CUVZNdlRDeFhRVUZoTEVkQlF6bEhMRWRCUVVsM1RpeEZRVUZSTEVOQlExSXNUVUZCVFVVc1JVRkJiMEpLTEVWQlFXMUNSU3hGUVVGUGVrSXNVMEZCVXk5TUxGTkJSVGRFTEU5QlJFRjFUaXhGUVVGTlNTeExRVUZMTEVsQlFVdElMRVZCUVZGdVFpeFRRVUZWTEVkQlFVbFZMRmRCUVZsWExFbEJRek5EVEN4RlFVRmpSeXhGUVVGUGJrSXNVMEZCVldVc1JVRkJaMEpOTEVWQlFXMUNTQ3hGUVVNM1JTeERRVVZKTEU5QlFVOUJMRWRCVFdZc1QwRklaMEpHTEVWQlFXTmFMRVZCUVdGS0xGTkJRVlZsTEVWQlFXZENka0lzUlVGQlMzaE5MRkZCUVZGMVR5eGxRVUZuUWl4RFFVTTVSaXhKUVVGTGJrSXNSVUZCWTBvc1UwRkJWU3hIUVVGSlZTeFhRVUZaYkVJc1JVRkJTM2hOTEZGQlFWRjFUeXhwUWtGSGJFVXNRMEZEUVN4cFFrRkJUME1zUTBGQlYzUkNMRWRCUTJRc1RVRkJUWFZDTEVWQlFXZENlRUlzUlVGQlkyRXNhVUpCUVdsQ1dpeEhRVVZ5UkN4UFFVUm5RblZDTEVWQlFXTXNSMEZCUzBFc1JVRkJZeXhIUVVGSGFFTXNVVUZCVldkRExFVkJRV01zUjBGQlIyaERMRTlCUlc1R0xFTkJRMEVzTUVKQlFVOXBReXhEUVVGdlFuaENMRVZCUVZGNVFpeEhRVUV3UWl4SFFVTjZSQ3hOUVVOTlF5eEZRVVJuUWpOQ0xFVkJRV05oTEdsQ1FVRnBRbG9zUjBGRFdtcEhMRWxCUVVzMFNDeEhRVUZYUVN4RlFVRlBia0lzV1VGRGFFVXNUMEZCVDJsQ0xFVkJRVEJDUXl4RlFVRnRRa1VzVDBGQlVYcEhMRWRCUVUxQkxFbEJRVTAyUlN4RlFVRlBZU3huUWtGQmEwSmhMRU5CUTNKSExFVkJSVXA2VUN4RlFVRkJMRkZCUVd0Q09FNHNReXhwUWtOblRXeENMMFVzUlVGQlR5OUpMRkZCTTFGUUxGTkJRV1ZyU3l4SFFYRkVaQ3hUUVVGVE1FWXNSVUZCV1RsSExFZEJRM0JDTEVsQlFVa3JSeXhGUVVWQlF5eEZRVU5CUXl4RlFVWkJReXhGUVVGcFFpeExRVWx5UWl4VFFVRlRjRkFzUzBGQlUyZEpMRWRCUldwQ0xFbEJRVXRvU1N4RlFVRk5jVkFzVVVGRFZpeFBRVWRFTEUxQlFVMURMRVZCUVU5MFVDeEZRVWRRZFZBc1JVRkJUME1zVDBGQlR5eEpRVUZKTVVnc1RVRkRiRUl5U0N4RlFVRkxSaXhIUVVGUlRpeEhRVUZaVFN4SFFVTXZRa1FzUlVGQlMycElMRXRCUVU5dlNDeEZRVU5hU0N4RlFVRkxia2tzUzBGQlR6aElMRVZCUTFwTExFVkJRVXRETEV0QlFVOUJMRVZCUTFwT0xFVkJRVmROTEVWQlJWaDJTQ3hGUVVGTExFZEJRVXRuU0N4RlFVRlpWU3hQUVVGUE1VZ3NSVUZCU3l4SlFVVllMR2xDUVVGYVFTeEZRVUZMTEVsQlJXWkJMRVZCUVVzeVNDeFJRVUZSTEUxQlNXUXNTVUZCU1RGS0xFVkJRVkVzUlVGRFdpdENMRVZCUVVzc1IwRkJTMEVzUlVGQlN5eEhRVUZIVlN4UlFVRlJMR2RDUVVGcFFpeERRVUZEUXl4RlFVRlBhVWdzUzBGRmJFUXNSMEZCWXl4UFFVRldha2dzUlVGRFNDeE5RVUZQTEVsQlJWSXhReXhKUVVOQkxFMUJRVTAwU2l4RlFVRlpZaXhGUVVGWmJrVXNWMEZCVnl0RkxFZEJRM3BETEVkQlFYbENMRzFDUVVGa1F5eEZRVUV3UWl4RFFVTndReXhOUVVGTlF5eEZRVUZOT1Vnc1JVRkJTeTlDTEVkQlEycENNRU1zUlVGQlVXdElMRVZCUVZWRkxFdEJRVXRVTEVWQlFVMVJMRWRCUnpkQ09VZ3NSVUZCUzFFc1QwRkJUM1pETEVWQlFVOHNSMEZEYmtKQkxFZEJRMFFzUTBGRFFTeFBRVUZQTUVNc1NVRkpVbkZITEVWQlFWbHFTQ3hYUVVGWFowa3NTMEZCUzFRc1JVRkJUWFJJTEVsQlJYQkNjMGdzUlVGQlN6RkZMRXRCUVU5dlJTeEZRVUZaY0VVc1MwRkRhRU52Uml4TlFVRk5WaXhGUVVGTmRFZ3NSVUZEYmtJc1EwRm5RMEVzVDBFNVFrRm9TU3hGUVVGTmEwa3NWVUZCV1VFc1JVRkRiRUpzU1N4RlFVRk5hVWtzVlVGQldTdEhMRVZCUVZrdlJ5eFpRVU01UW1wSkxFVkJRVTExU1N4TlFVRlJlVWNzUlVGQldXbENMRmxCUVZrdlNDeEhRVU4wUTJ4SkxFVkJRVTFyVVN4UFFVRlRRU3hGUVVObWJGRXNSVUZCVFhkTExGRkJRVlYzUlN4RlFVRlplRVVzVVVGRk5VSjBUQ3hQUVVGUFF5eGxRVUZsWVN4RlFVRlBMRlZCUVZjc1EwRkRka050VVN4WlFVRlpMRVZCUTFwRExHTkJRV01zUlVGRFpFTXNTVUZCU3l4SlFVTnRRaXhQUVVGdVFtcENMRVZCUTBsQkxFZEJSVXBHTEVsQlFXOUNSaXhGUVVGWmJrY3NZVUZEYmtOeFJ5eEZRVUZyUWtZc1JVRkJXVzVITEZkQlF6bENjMGNzUlVGQlpVZ3NSVUZCV1Vzc1VVRkJVVzVJTEVsQlJ6ZENhVWdzUjBGRlVtMUNMRWxCUVV0MlJpeEpRVU5LY1VVc1JVRkJhVUp5UlN4TFFVdGhMRzFDUVVGeVFtbEZMRVZCUVZsNFF5eE5RVU4wUW5kRExFVkJRVmw0UXl4TFFVRkxlRTBzUjBGSFdFRXNRMEZEVWl4RFFVVkJMRk5CUVZOclVTeEZRVUZQYUVrc1JVRkJWM0ZKTEVkQlF6RkNMRTFCUVUxRExFVkJRVmQ0UWl4RlFVRlphbEVzUzBGQlMyMUtMR2RDUVVGclF5eEpRVUZrY1Vrc1JVRkJORUlzU1VGQlRVRXNSMEZCWVhKSkxFZEJSWEpITEU5QlJFRnpTU3hGUVVGVE5VWXNTVUZCVFRkTUxFdEJRVXMyVEN4SlFVTmlORVlzUTBGRFVpeERRWGRHUVN4VFFVRlRReXhGUVVGWlF5eEhRVU53UWl4UFFVRlBRU3hGUVVGUFF5eFhRVU5hYkVZc1ZVRkJWU3hGUVVGSGFVWXNSVUZCVDBNc1YwRkJWMmhLTEU5QlFWTXNSMEZEZUVObExGRkJRVkVzVlVGQlZ5eEpRVU4wUWl4RFFUQkNRU3hQUVhaUlFYTkhMRVZCUVZsb1VDeE5RVUZSWjFBc1JVRkRjRUpCTEVWQlFWa3ZUeXhSUVVGVkswOHNSVUZEZEVKQkxFVkJRVmxWTEU5QmIxQmFMRk5CUVdkQ1NTeEhRVU5tTEU5QlFVbEJMR0ZCUVdWakxFMUJRMWhrTEVWQlFVbGxMRTlCUVZObUxFVkJRVWsxUlN4UlFVVnNRalJGTEVOQlExSXNSVUY0VUVGa0xFVkJRVms0UWl4UlFYZE1XaXhYUVVORExFMUJRVTFxU1N4RlFVRmhMRWxCUTJadFJ5eEZRVUZaT1VNc1RVRkJUV2hHTEVsQlFVbDFTaXhOUVVOMFFucENMRVZCUVZrclFpeE5RVUZOTjBvc1NVRkJTWFZLTEVkQlFXRjJTaXhKUVVGSlowSXNSMEZCWVN4SlFVRk5RU3hKUVVNMVJEaEpMRXRCUVVzc1MwRkZVQ3hQUVVSQmFFTXNSVUZCV1dsRExFOUJRVThzU1VGRFduQkpMRU5CUTFJc1JVRTVURUZ0Unl4RlFVRlphVU1zVDBGelNsb3NVMEZCWjBKd1NTeEhRVTltTEVsQlFVa3hSQ3hGUVU1S05rb3NSVUZCV1hCSExFdEJRVXRETEVkQlEycENiVWNzUlVGQldXNUhMRmRCUVdGQkxFVkJSWHBDYlVjc1JVRkJXVGxETEUxQlFWRXNSMEZEY0VJNFF5eEZRVUZaSzBJc1RVRkJVU3hIUVVkd1FpeE5RVUZOT1Vvc1IwRkJLMElzYVVKQlFXWTBRaXhGUVVFd1FrRXNSVUZCWVN4SlFVRkpOVUlzVFVGQlRTeFZRVU5xUldsTExFVkJRVTFxU3l4RlFVRk5WU3hQUVVWc1FpeEpRVUZMZUVNc1JVRkJTU3hGUVVGSFFTeEZRVUZKSzB3c1JVRkJTeTlNTEVsQlEyWTRRaXhGUVVGTk9VSXNTMEZQVnl4UFFVWjBRakJFTEVWQlFXRTFRaXhGUVVGTk9VSXNSMEZCUjNWRUxGRkJRVkVzVFVGQlR5eFJRVVYwUWl4SFFVTmtjMGNzUlVGQldTdENMRTFCUVUxNFF5eExRVUZMTEVsQlFVazBReXhQUVVGUExFbEJRVTEwU1N4RlFVRlhjMFFzVFVGQlRTeEhRVUZMTEUxQlJUbEVOa01zUlVGQldUbERMRTFCUVUxeFF5eExRVUZMTEVsQlFVazBReXhQUVVGUExFbEJRVTEwU1N4RlFVRmhMRTFCUjNoRUxFVkJPVXRCYlVjc1JVRkJXVXNzVVVGelRWb3NVMEZCYVVJNVRpeEhRVU5vUWl4SFFVRTRRaXhOUVVFeFFrRXNSVUZCUzBFc1JVRkJTMjlITEU5QlFWTXNSMEZEZEVJc1QwRkJUeXhGUVVkU0xFbEJRVWw0UXl4RlFVTkJLMHdzUlVGRlNpeEpRVUZMTDB3c1JVRkJTU3hGUVVGSEswd3NSVUZCVFd4RExFVkJRVmtyUWl4TlFVRk5jRW9zVDBGQlVYaERMRVZCUVVrclRDeEZRVUZMTDB3c1NVRkRjRVFzUjBGQlNUWktMRVZCUVZrclFpeE5RVUZOTlV3c1IwRkJSMmxOTEV0QlFVczNVQ3hIUVVNM1FpeFBRVUZQTEVWQlNWUXNTVUZCU3pSRUxFVkJRVWtzUlVGQlJ5dE1MRVZCUVUxc1F5eEZRVUZaT1VNc1RVRkJUWFpGTEU5QlFWRjRReXhGUVVGSkswd3NSVUZCU3k5TUxFbEJRM0JFTEVkQlFVazJTaXhGUVVGWk9VTXNUVUZCVFM5SExFZEJRVWRwVFN4TFFVRkxOMUFzUjBGRE4wSXNUMEZCVHl4RlFVbFVMRTlCUVU4c1EwRkRVaXhGUVRGT1FYbE9MRVZCUVZrMVJ5eFRRVUZYTEVWQlFWRXNUVUZETDBJMFJ5eEZRVUZaZUVVc1VVRXdVRm9zVjBGRFExQXNVVUZCVVZNc1MwRkJTeXgzU1VGRFpDeEZRVEZRUVhoTUxFOUJRVTl0VXl4TFFVRkxMMGdzUjBGQlN5OUhMRkZCUVZFclR5eEpRVU40UW5SRExFVkJRVmx6UXl4SFFVRlBhRWtzUlVGQlNXZEpMRXRCVDNoQ2RFTXNSVUZCV1RsRExFMUJRVkVzUjBGRGNFSTRReXhGUVVGWkswSXNUVUZCVVN4SFFVOXdRaTlDTEVWQlFWbHVSU3hYUVVGaExFTkJRVU1zUlVGclFqRkNiVVVzUlVGQldXbENMRmxCVmxvc1UwRkJjVUl2U0N4SFFVTndRaXhKUVVGSmNVb3NSVUZCVHl4RlFVVllMRWxCUVVzc1NVRkJTWEJOTEVWQlFVa3NSVUZCUjBFc1JVRkJTU3RETEVWQlFWVlFMRTlCUVZGNFF5eEpRVU55UTI5TkxFZEJRVk5CTEVkQlFWRXNSMEZCUzBFc1JVRkJVWEpLTEVWQlFWVnpTaXhYUVVGWGNrMHNSMEZEYmtSdlRTeEhRVUZSTEVWQlIxUXNUMEZCVDNaRExFVkJRVmx5UlN4UFFVRlBjRVFzUzBGQlMydExMRWxCUVVsR0xFZEJRVkYyUXl4RlFVRlpja1VzVDBGQlQyaEVMRTlCUXk5RUxFVkJNazVCY1Vnc1JVRkJXV2xETEU5QlFVOXFReXhGUVVGWk9VWXNVVUZGZUVJNFJpeERRVU5TTEVNc01HbEdRemxSUVRsUUxFOUJRVTlETEdWQlFXVkRMRVZCUVZNc1lVRkJZeXhEUVVGRlF5eFBRVUZQTEVsQlEzUkVSQ3hGUVVGUmMxTXNZVUZCWlhSVExFVkJRVkYxVXl4eFFrRkJkVUoyVXl4RlFVRlJkMU1zYTBKQlFXVXNSVUZETjBVc1RVRkJUVUVzUlVGQlpURlRMRTlCUVU4d1JpeFBRVUZQTEUxQlEyNURlRVlzUlVGQlVYZFRMR0ZCUVdWQkxFVkJRM1pDUVN4RlFVRnRRaXhMUVVGSkxFbEJRM1pDUVN4RlFVRnZRaXhOUVVGSkxFbEJRM2hDUVN4RlFVRnRRaXhMUVVGSkxFbEJRM1pDUVN4RlFVRnRRaXhMUVVGSkxFbEJRM1pDUVN4RlFVRnpRaXhSUVVGSkxFbEJRekZDUVN4RlFVRnpRaXhSUVVGSkxFbEJRekZDUVN4RlFVRnRRaXhMUVVGSkxFbEJRM1pDTEUxQlFVMUVMRVZCUVhWQ2VsTXNUMEZCVHpCR0xFOUJRVThzVFVGRE0wTjRSaXhGUVVGUmRWTXNjVUpCUVhWQ1FTeEZRVU12UW5wVExFOUJRVTl0VXl4TFFVRkxUeXhIUVVGamNsQXNVVUZCVXl0UExFbEJReTlDU3l4RlFVRnhRa01zUlVGQllVNHNTVUZCVVVFc1NVRkhPVU5zVXl4RlFVRlJjMU1zWVVGRVlTeERRVUZGYWxBc1MwRkJUU3hSUVVGVFRpeExRVUZOTEdVc09FSkRhRUkxUTJwRUxFOUJRVTlETEdWQlFXVkRMRVZCUVZNc1lVRkJZeXhEUVVGRlF5eFBRVUZQTEVsQlEzUkVSQ3hGUVVGUmVWTXNhMEpCUVdVc1JVRkRka0lzVFVGQlRVTXNSVUZCWlN4RlFVRlJMRTFCUTNaQ1F5eEZRVUV3UWl4RlFVRlJMRTFCUTJ4RFF5eEZRVUVyUXl4dFFrRkJhRUpETEZsQk5FSnlRemRUTEVWQlFWRjVVeXhoUVROQ1lTeERRVUZEU3l4RlFVRmxOVkFzUzBGRGFrTXNSMEZCTmtJc2FVSkJRV3hDTkZBc1JVRkRVQ3hOUVVGUExFTkJRMGg2VUN4TFFVRk5MRlZCUTA1T0xFdEJRVTFuVVN4RlFVRlZSQ3hGUVVGbE5WQXNTVUZIZGtNc1RVRkJUVWNzUlVGQlQzbFFMRVZCUVdOMFN5eFBRVUZQTEVkQlEyeERMRTFCUVdFc1RVRkJWRzVHTEVWQlEwOHNRMEZEU0VFc1MwRkJUU3hWUVVOT1RpeExRVUZOYVZFc1JVRkJiVUpHTEVWQlFXTjZSeXhWUVVGVkxFZEJRVWx1U2l4SlFVY3hRM2RRTEVWQlFXRklMSEZDUVVGeFFteFFMRWRCU1RsRGVWQXNSVUZCWTNaTExFOUJRVk1zUlVGRGVFSXNRMEZEUld4R0xFdEJRVTF4VUN4RlFVRmhTQ3h4UWtGQmNVSnNVQ3hIUVVONFEwNHNTMEZCVFN0UUxFVkJRV042Unl4VlFVRlZMRWxCUldoRExFTkJRMFZvU2l4TFFVRk5jVkFzUlVGQllVZ3NjVUpCUVhGQ2JGQXNTVUZTY2tOeFVDeEZRVUZoU2l4alFWazFRaXhOUVVGTlZTeEZRVUZ4UWl4RFFVRkRhbEVzUlVGQlRVY3NTMEZET1VJc1IwRkJTVEJRTEVWQlFYVkNMRU5CUTNaQ0xFMUJRVTEwU3l4SFFVRlZMRVZCUVVseFN5eEZRVUYzUW1wTUxGRkJRVkV6UlN4SFFVTndSQ3hQUVVGUFoxRXNSVUZCVlhwTExFVkJRVk53Uml4RlFVTTVRaXhEUVVWSkxFMUJRVThzUTBGQlJTdFFMRkZCUVZFc1JVRkJUV3hSTEZOQlIzcENaMUVzUlVGQldTeERRVUZEYUZFc1JVRkJUVWNzU1VGRldpeFRRVVJFUVN4RlFVVkpTQ3hoUVVGblFtMVJMRXRCUlZSdVVTeEZRVWxCTEVsQlFVbHRVU3hMUVVGTExFTkJRVU51VVN4SlFVbHFRa0VzWVVGQlowSTRVQ3haUVVWVU9WQXNSVUZKUVVFc1JVRkJTMjlSTEUwc09FSkROMFExUW5KVUxFOUJRVTlETEdWQlFXVkRMRVZCUVZNc1lVRkJZeXhEUVVGRlF5eFBRVUZQTEVsQlEzUkVSQ3hGUVVGUmIxUXNhMEpCUVdVc1JVRkRka0p3VkN4RlFVRlJjVlFzY1VKQmMwUlNMRk5CUVRoQ2FsRXNSVUZCVVd0UkxFZEJRMnhETEU5QlFVbERMRWRCUVd0Q2JsRXNSVUZCVDB3c1owSkJRV2RDYlZFc1MwRkRiRU01VUN4RlFVRlBUQ3hMUVVGTGVWRXNZMEZCWTBNc1MwRkJTME1zUjBGQlUwUXNTMEZCUzBnc1IwRkZMME5XTEVsQlEwcDRVQ3hGUVVGUFRDeG5Ra0ZCWjBJNFVDeGhRVUZsWXl4RlFVRlBkbEVzUlVGQlQwd3NUMEZET1VOMVVTeEZRVUZUU1N4RlFVRlJkRkVzUlVGQlQwd3NXVUZGYmtOeFVTeEZRVUZoYUZFc1IwRkJVU3hGUVVGUk9FVXNTVUZEY0VJd1RDeEpRVU5FUVN4RlFVRmxMRWxCUVVsRExHRkJSWFpDVUN4RlFVRlRUU3hGUVVGaGFrMHNUMEZCVDA4c1MwRkZja01zUlVGdVJVRXNUVUZCVFhkTExFVkJRV1VzUlVGQlVTeE5RVU4yUW1Fc1JVRkJhVU1zYlVKQlFWUk1MRTFCUTFRc2IwSkJRVlJCTEUxQlEzRkRMRFpDUVVGNlEzQlVMRTlCUVU5blZTeFZRVUZWZGtNc1UwRkJVMW9zUzBGQlMzVkRMRTFCUTJwRFRpeEZRVUVyUXl4dFFrRkJhRUpETEZsQlJTOUNZeXhGUVVGVkwwY3NSMEZEZVVJc2JVSkJRWFpDYVVjc1dVRkJXV01zVDBGRGNFSmtMRmxCUVZsakxFOUJRVTh2Unl4SFFVTnVRa0VzUjBGQlQwRXNSVUZCU1hWSExHdENRVUZyUWs0c1dVRkZha05QTEVWQlFXVXNSVUZCUnk5UUxFOUJRVTFPTEZGQlFWRm9RaXhGUVVGblFuVlNMRWxCUXpsRFF5eEhRVUZyUW5oUkxHRkJRV2RDYlZFc1MwRkRPVUp1VWl4RlFVTlBkVklzUlVGQlUzWlJMRWRCUjFSblVpeEZRVUZ0UW1oU0xFVkJRVTExVVN4SFFVY3ZRbFlzU1VGRFNqZFFMR0ZCUVdkQ09GQXNZVUZCWldNc1JVRkJUelZSTEVsQlEyNURhRUlzUlVGRFQzVlNMRVZCUVZOMlVTeEhRVWRVWjFJc1JVRkJiVUlzU1VGQlNXSXNTMEZCU3l4RFFVRkRibEVzU1VGQlVYVlJMRWRCU1RkRFFTeEZRVUZUV2l4RlFVRmhSaXhoUVVGaGJsQXNTVUZCVTA0c1IwRkJVU3hMUVVVdlJDOURMRVZCUVZGdlZDeGhRVUZsUVN4RlFVTjJRaXhOUVVGTlZ5eEZRVUZ4UWl4RFFVRkRhRklzUlVGQlRYVlJMRXRCUXpsQ0xFMUJRVTFWTEVWQlFXRXNTVUZCU1VNc1YwRkxka0lzVDBGS1FVUXNSVUZCVjBVc1QwRkJVeXhYUVVOb1FpeE5RVUZOUXl4RlFVRlZTQ3hGUVVGWGRrWXNUMEZCVHpWSExFMUJRVTBzUzBGQlN5eEhRVU0zUTNsTUxFVkJRVk1zUzBGQlQyRXNSMEZCVnl4SlFVTXZRaXhGUVVOUFNDeEZRVUZYU1N4alFVRmpjbElzU1VGRmNFTXNVMEZCVXpKUkxFVkJRVkV6VVN4SFFVTmlMRTlCUVVsQkxHRkJRV2RDYzFJc1YwRkRWSFJTTEVWQlJVWkJMR0ZCUVdkQ09GQXNXVUZEWkN4SlFVRkpkMElzVjBGQlYzUlNMRWRCUjJZc1NVRkJTWE5TTEZkQlFWZDBVaXhGUVVGTGIxRXNUMEZCVVhCUkxFVkJRVXQxVWl4WFFVRlpkbElzUlVGQlMzZFNMRmRCUldwRkxFTkJRMEVzU1VGQlNWZ3NReXcwUWtOMlJFbzVWQ3hQUVVGUFF5eGxRVUZsUXl4RlFVRlRMR0ZCUVdNc1EwRkJSVU1zVDBGQlR5eEpRVU4wUkVRc1JVRkJVVEJJTEU5QlFWTXhTQ3hGUVVGUk1rZ3NXVUZCVXl4RlFVVnNReXhOUVVGTk5rMHNSVUZCVVN4dFJVRkZVa01zUlVGQkswSXNiMEpCUVdaS0xGZEJRVFpDTEVkQlFVc3NTVUZCU1VFc1YwRkJWeXhMUVVOMlJTeEpRVUZMTEVsQlFVbDBUeXhGUVVGSkxFVkJRVWRCTEVWQlFVbDVUeXhIUVVGamVrOHNTVUZET1VJd1R5eEZRVUZQUkN4RlFVRk5jRU1zVjBGQlYzSk5MRWxCUVUxQkxFVkJhMEpzUXk5R0xFVkJRVkV5U0N4UFFXaENVU3ROTEVsQlExb3NTVUZCZVVNelR5eEZRVUZ5UXpSUExFVkJRVkVzU1VGQlNVNHNWMEZCVjBzc1IwRkJhVUkxUXl4RlFVRk5Oa01zUlVGQlRYQk5MRTlCUVZFd1N5eEZRVUZUTEVkQlEzcEZMRWxCUVV0c1RpeEZRVUZKTEVWQlFVZEJMRVZCUVVrclRDeEZRVUZMTDB3c1IwRkJTeXhGUVVOMFFtdE9MRWRCUVZWMVFpeEZRVUZOUnl4RlFVRk5OVThzU1VGQlRTeEhRVU0xUW10T0xFZEJRVlYxUWl4SFFVRnRRaXhGUVVGWVJ5eEZRVUZOTlU4c1MwRkJWeXhGUVVGTk5FOHNSVUZCVFRWUExFVkJRVWtzU1VGQlRTeEhRVU42Ukd0T0xFZEJRVlYxUWl4SFFVRjFRaXhIUVVGbVJ5eEZRVUZOTlU4c1JVRkJTU3hMUVVGWkxFVkJRVTAwVHl4RlFVRk5OVThzUlVGQlNTeEpRVUZOTEVkQlF6bEVhMDRzUjBGQlZYVkNMRVZCUVhGQ0xFZEJRV1pITEVWQlFVMDFUeXhGUVVGSkxFbEJVVGxDTEU5QlRra3JUQ3hGUVVGTkxFZEJRVTBzUlVGRFdtMUNMRVZCUVZOQkxFVkJRVTgxUnl4VlFVRlZMRVZCUVVjMFJ5eEZRVUZQTVVzc1QwRkJVeXhIUVVGTExFbEJSVGREZFVvc1JVRkJUU3hIUVVGTkxFbEJRMnBDYlVJc1JVRkJVMEVzUlVGQlR6VkhMRlZCUVZVc1JVRkJSelJITEVWQlFVOHhTeXhQUVVGVExFZEJRVXNzVFVGRkwwTXdTeXhIUVhWQ1dHcFVMRVZCUVZFd1NDeFBRWEJDVVhWTUxFbEJRMW9zU1VGQk9FUnNUaXhGUVVGVk5rOHNSVUZCVlVNc1JVRkJWVU1zUlVGQlZVTXNSVUZCYkVkRExFVkJRU3RDTEVsQlFXaENMMElzUlVGQlR6RkxMRTlCUVdWMVNpeEZRVUZOYlVJc1JVRkJUekZMTEU5QlFWY3dUU3hGUVVGSkxFVkJRMjVETEUxQlFUbENhRU1zUlVGQlQwRXNSVUZCVHpGTExFOUJRVk1zUzBGRGRrSjVUU3hKUVVOclF5eE5RVUU1UWk5Q0xFVkJRVTlCTEVWQlFVOHhTeXhQUVVGVExFbEJRM1pDZVUwc1MwRkhVaXhOUVVGTlRpeEZRVUZqTEVsQlFVazNRaXhaUVVGWmJVTXNSMEZCWlV3c1JVRkJVU3hKUVVGSlRpeFhRVUZYU3l4SFFVTXhSU3hKUVVGTE0wOHNSVUZCU1N4RlFVRkhRU3hGUVVGSkswd3NSVUZCU3k5TUxFZEJRVXNzUlVGRGRFSTJUeXhGUVVGWFNDeEZRVUZQZUVJc1JVRkJUMklzVjBGQlYzSk5MRWxCUTNCRE9FOHNSVUZCVjBvc1JVRkJUM2hDTEVWQlFVOWlMRmRCUVZkeVRTeEZRVUZKTEVsQlEzaERLMDhzUlVGQlYwd3NSVUZCVDNoQ0xFVkJRVTlpTEZkQlFWZHlUU3hGUVVGSkxFbEJRM2hEWjFBc1JVRkJWMDRzUlVGQlQzaENMRVZCUVU5aUxGZEJRVmR5VFN4RlFVRkpMRWxCUTNoRE5FOHNSVUZCVFUwc1MwRkJVVXdzUjBGQldTeEZRVUZOUXl4SFFVRlpMRVZCUXpWRFJpeEZRVUZOVFN4TlFVRnZRaXhIUVVGWVNpeEpRVUZyUWl4RlFVRk5ReXhIUVVGWkxFVkJRMjVFU0N4RlFVRk5UU3hOUVVGdlFpeEZRVUZZU0N4SlFVRnBRaXhGUVVGcFFpeEhRVUZZUXl4RlFVVXhReXhQUVVGUFRDeEZMREJEUXpORFdEVlZMRTlCUVU5RExHVkJRV1ZETEVWQlFWTXNZVUZCWXl4RFFVRkZReXhQUVVGUExFbEJRM1JFUkN4RlFVRlJhME1zWjBKQlFXdENiRU1zUlVGQlVXZENMRk5CUVUwc1JVRkRlRU1zVFVGQlRXdFZMRVZCUVdkQ0xFVkJRVkVzVFVGRGVFSjJWU3hGUVVGclFpeEZRVUZSTEUxQmFVSm9RMWdzUlVGQlVXZENMRWxCYUVKU0xGTkJRV0ZMTEVkQlExUXNUVUZCVFVvc1JVRkJWVWtzUlVGQlMwb3NVVUZGY2tJc1NVRkRTU3hIUVVGSkxHOUNRVUYxUW10VkxHdENRVUZ2UW14VkxFZEJRVmRwVlN4RlFVRmpSU3hUUVVOd1JTeFBRVUZQTEVsQlFVbEVMR05CUlc1Q0xFTkJRMEVzVFVGQlQycFFMRWRCUVVzc1EwRkRXaXhKUVVGTGFrWXNSVUZEUkN4SlFVTkpMRTlCUVU4c1NVRkJTVTRzUlVGQlowSTRSeXhsUVVGbExFTkJRVU1zVlVGQlZUUk9MRTlCUVU4c1ZVRkJWWHBFTEV0QlFVc3NUMEZCVFN4dlFrRkRja1lzUTBGRFFTeE5RVUZQTVV3c1IwRkJTeXhEUVVWd1FpeEZRVWRCYkVjc1JVRkJVV3RETEdkQ1FVUlNMRmRCUVRaQ0xFTXNiME5EZEVJM1FpeEpRVUZKYjFRc1JVRkJiVUl6Vml4TlFVRlJRU3hMUVVGTE1sWXNhMEpCUVhGQ2VGWXNUMEZCVHpCR0xFOUJRVk1zVTBGQlZTdFFMRVZCUVVjNVN5eEZRVUZISzBzc1JVRkJSME1zVVVGRE4wVnNVU3hKUVVGUWExRXNTVUZCYTBKQkxFVkJRVXRFTEVkQlF6TkNNVllzVDBGQlQwTXNaVUZCWlhkV0xFVkJRVWRGTEVWQlFVa3NRMEZCUlRGRkxGbEJRVmtzUlVGQlRVVXNTVUZCU3l4WFFVRmhMRTlCUVU5NFJ5eEZRVUZGSzBzc1JVRkJTU3hIUVVOdVJpeEZRVUZKTEZOQlFWVkVMRVZCUVVjNVN5eEZRVUZISzBzc1JVRkJSME1zVVVGRFZHeFJMRWxCUVZCclVTeEpRVUZyUWtFc1JVRkJTMFFzUjBGRE0wSkVMRVZCUVVWRkxFZEJRVTFvVEN4RlFVRkZLMHNzUlVGRFlpeEhRVU5IUlN4RlFVRnpRaTlXTEUxQlFWRkJMRXRCUVVzclZpeHhRa0ZCZDBJMVZpeFBRVUZQTUVZc1QwRkJVeXhUUVVGVksxQXNSVUZCUnpWS0xFZEJRM2hHTjB3c1QwRkJUME1zWlVGQlpYZFdMRVZCUVVjc1ZVRkJWeXhEUVVGRmVFVXNXVUZCV1N4RlFVRk5PVkVzVFVGQlR6Qk1MRWRCUTJ4RkxFVkJRVWtzVTBGQlV6UktMRVZCUVVjMVNpeEhRVU5pTkVvc1JVRkJWeXhSUVVGSk5Vb3NRMEZEYmtJc1IwRkRTV2RMTEVWQlFXZENhRmNzVFVGQlVVRXNTMEZCUzJkWExHTkJRV2xDTEZOQlFWVXZWaXhIUVVONFJDeEhRVUZKUVN4SFFVRlBRU3hGUVVGSlF5eFhRVUZaTEU5QlFVOUVMRVZCUTJ4RExFbEJRVWsyVHl4RlFVRlRMRU5CUVVNc1JVRkRaQ3hIUVVGWExFMUJRVkEzVHl4RlFVRmhMRWxCUVVzc1NVRkJTVFJXTEV0QlFVczFWaXhGUVVGbExGbEJRVTQwVml4SFFVRnRRakZXTEU5QlFVOW5WU3hWUVVGVk9VNHNaVUZCWlRKTExFdEJRVXN2VVN4RlFVRkxORllzU1VGQlNVWXNSVUZCWjBJM1J5eEZRVUZSTjA4c1JVRkJTelJXTEVkQlJYUkpMRTlCUkVGRkxFVkJRVzFDYWtnc1JVRkJVVGRQTEVkQlEzQkNOazhzUTBGRFdDeEZRVU5KTDA4c1JVRkJiVUpETEUxQlFWRkJMRXRCUVV0RUxHbENRVUZ2UWl4VFFVRlZSU3hIUVVNNVJDeFBRVUZSUVN4SFFVRlBRU3hGUVVGSlF5eFhRVUZqUkN4RlFVRk5MRU5CUVVVc1VVRkJWMEVzUlVGRGVFUXNSVUZEUVVVc1QwRkJUME1zWlVGQlpVTXNSVUZCVXl4aFFVRmpMRU5CUVVWRExFOUJRVThzU1VGRGRFUkVMRVZCUVZFMFZpeGhRVUZWTEVWQlEyeENMRTFCUVUxRExFVkJRWEZDTEVWQlFWRXNUVUZETjBKRExFVkJRV01zUlVGQlVTeE5RVU4wUWtNc1JVRkJVMG9zUlVGQllTeEZRVUZSTEU5QlF6bENTeXhGUVVGVkxFVkJRVkVzVFVGRGJFSkRMRVZCUVdNc1JVRkJVU3hOUVVOMFFuaFdMRVZCUVhOQ0xFVkJRVkVzVFVGRk9VSkhMRVZCUkZWc1FpeEZRVUZuUWl4RlFVRlJMRTlCUTJ4Q2JVSXNVVUZCVVN3MFFrRkRPVUlzVFVGQlRTdFZMRlZCUVdkQ2JsWXNSVUZCYjBJMFJTeFJRVU4wUXl4WFFVRkJha1VzUTBGQldUUkRMRVZCUVVzelF5eEhRVU5pTEVsQlFVbHZSU3hGUVVOS2JrVXNVVUZEUVROQ0xFdEJRVXQxVnl4TFFVRlBMRU5CUVVNc1JVRkRZblpYTEV0QlFVdDNWeXhMUVVGUExFZEJRMUp1VXl4SFFVRlBMR2xDUVVGdlFrRXNTVUZETTBJelF5eEZRVUZQTWtNc1JVRkRVRUVzVDBGQlRYVkNMRWxCUlZac1JTeEZRVUZQUVN4SFFVRlJMRU5CUVVNc1IwRkRXSGRNTEV0QlFVOTRUQ3hGUVVGTGQwd3NUVUZCVVN4aFFVTjZRbXhPTEV0QlFVc3dRaXhMUVVGUFFTeEZRVU5hZDFVc1JVRkJiVUoyVVN4elFrRkJjMEl6Uml4TFFVRk5NRUlzUjBGREwwTXhRaXhMUVVGTGVWY3NZMEZCYlVNc1NVRkJkRUl2VlN4RlFVRkxLMVVzWTBGRGRrSjZWeXhMUVVGTE1GY3NjVUpCUVhGQ2FGWXNSVUZCUzJkV0xITkNRVUYzUWtNc1MwRkRka1F6Vnl4TFFVRkxORmNzYTBKQlFXdENiRllzUlVGQlMydFdMRzFDUVVGeFFpeExRVU5xUkRWWExFdEJRVXMyVnl4eFFrRkJjVUp1Vml4RlFVRkxiVllzYzBKQlFYZENMRXRCUTNaRU4xY3NTMEZCU3poWExHOUNRVUYzUkN4UlFVRnVRMmhTTEVWQlFVdHdSU3hGUVVGTGIxWXNNa0pCUVhkRExFbEJRVkJvVWl4RlFVRm5Ra0VzUlVGQlN5eEpRVU14UmpsR0xFdEJRVXNyVnl4UlFVRlZMRWxCUVVsVUxFVkJRVmxWTEZGQlFWRXNRMEZEYmtORExFbEJRVXRxV0N4TFFVRkxORmNzYjBKQlExWk5MRWxCUVV0c1dDeExRVUZMTmxjc2RVSkJRMVpOTEU5QlFWRnVXQ3hMUVVGTE9GY3NkMEpCUldwQ09WY3NTMEZCU3pCSExGRkJRVkVzVFVGQlVXaEdMRVZCUVV0blJpeFJRVUZWTEVsQlFWRm9SaXhGUVVGTFowWXNVMEZEYWtReFJ5eExRVUZMYjFnc1dVRkJZeXhUUVVOdVFuQllMRXRCUVV0eFJTeEpRVUZOUVN4RlFVTllMRTFCUVUxblZDeEZRVUZWTTFZc1JVRkJTekJWTEZGQlFWVkJMRVZCUXk5Q2NGY3NTMEZCUzNOWUxGRkJRVlVzU1VGQlNVUXNSVUZCVVVVc1VVRkRNMEoyV0N4TFFVRkxkMWdzVVVGQlZTeEpRVUZKU0N4RlFVRlJTU3hSUVVNelFucFlMRXRCUVVzd1dDeGpRVUZ2UXl4SlFVRnlRbWhYTEVWQlFVdHBWeXhaUVVOeVFqTllMRXRCUVVzd1dDeGpRVU5NTVZnc1MwRkJTMmxITEUxQlEySXNRMEZEUVN4WlFVRkJkMUVzUTBGQllYcExMRWRCUTFRc1QwRkJTelJNTEZWQlFWVm9VQ3hSUVVWbU5Va3NTMEZCU3paWUxHZENRVUZyUWpkTUxFVkJRMmhDYUUwc1RVRkdTVUVzUzBGQlN6WllMR0ZCUjNCQ0xFTkJRMEVzYjBKQlFVRnVRaXhEUVVGeFFqRkxMRWRCUTJwQ0xGbEJRVlZ3Unl4SlFVRk9iMGNzUlVGRFQyaE5MRXRCUVVzNFdDeDFRa0ZEYUVJNVdDeExRVUZMT0Znc2MwSkJRWGRDT1V3c1JVRkRkRUpvVFN4TFFVTllMRU5CUTBFc2FVSkJRVUUwVnl4RFFVRnJRalZMTEVkQlEyUXNTVUZCU1d4SExFVkJRMG9zV1VGQlZVWXNTVUZCVG05SExFVkJRMDlvVFN4TFFVRkxLMWdzYjBKQlEyaENMMWdzUzBGQlN5dFlMRzFDUVVGeFFpOU1MRVZCUTBZc1VVRkJka0pzUnl4RlFVRkxPVVlzUzBGQlN5dFhMR1ZCUVRSQ0xFbEJRVkJxVWl4SFFVRjVRa0VzUlVGQlIydFRMRTlCUVU5b1RTeEhRVU0xUkdoTkxFdEJRMWdzUTBGRFFTeHRRa0ZCUVRoWExFTkJRVzlDT1Vzc1IwRkRhRUlzU1VGQlNXeEhMRVZCUTBvc1dVRkJWVVlzU1VGQlRtOUhMRVZCUTA5b1RTeExRVUZMYVZrc2MwSkJRMmhDYWxrc1MwRkJTMmxaTEhGQ1FVRjFRbXBOTEVWQlEwb3NVVUZCZGtKc1J5eEZRVUZMT1VZc1MwRkJTeXRYTEdWQlFUUkNMRWxCUVZCcVVpeEhRVUY1UWtFc1JVRkJSMjlUTEZWQlFWVnNUU3hIUVVNdlJHaE5MRXRCUTFnc1EwRkRRU3h2UWtGQlFUWlhMRU5CUVhGQ04wc3NSMEZEYWtJc1NVRkJTV3hITEVWQlEwb3NXVUZCVlVZc1NVRkJUbTlITEVWQlEwOW9UU3hMUVVGTGJWa3NkVUpCUTJoQ2Jsa3NTMEZCUzIxWkxITkNRVUYzUW01TkxFVkJRMHdzVVVGQmRrSnNSeXhGUVVGTE9VWXNTMEZCU3l0WExHVkJRVFJDTEVsQlFWQnFVaXhIUVVGNVFrRXNSVUZCUjNOVExFOUJRVTl3VFN4SFFVTTFSR2hOTEV0QlExZ3NRMEZEUVN4UFFVRkJNRWNzUTBGQlVYTkdMRWRCUTBvc1QwRkJTelJNTEZWQlFWVm9VQ3hSUVVWbU5Va3NTMEZCUzNGWkxGTkJRVmR5VFN4RlFVTlVhRTBzVFVGR1NVRXNTMEZCUzNGWkxGRkJSM0JDTEVOQlQwRXNiMEpCUVVGRExFbEJSVk4wV1N4TFFVRkxkVmtzWlVGRFRuWlpMRXRCUVVzMldDeGxRVU54UWl4SlFVRXhRamRZTEV0QlFVc3JWeXhSUVVGUmVVSXNWVUZGWW5oWkxFdEJRVXQ1V1N4WFFVVmlMRU5CVVVFc1NVRkJRWGhUTEVOQlFVdG9RaXhIUVVWRUxFZEJSRUZvUlN4RlFVRk5MR2RDUVVGcFFtcENMRXRCUVV0dldDeGpRVU4yUW5CWUxFdEJRVXR2V0N4WlFVRlpNMHNzVVVGQlVTeFJRVU14UWl4UFFVRlBlazBzUzBGRFdHbENMRVZCUVUwc1lVRkJZMnBDTEV0QlFVdHhSU3hMUVVONlFuSkZMRXRCUVVzd1dTeFBRVUZUTEVsQlFVbDRReXhGUVVGdFFubERMRTlCUVU4eldTeExRVUZMY1VVc1NVRkJTM0pGTEV0QlFVc3dRaXhOUVVNelJDeE5RVUZOTkVJc1JVRkJVM1JFTEV0QlFVc3dXU3hQUVVOa2Jra3NSVUZCVDNaUkxFdEJRMkpCTEV0QlFVdHZXQ3haUVVGakxGVkJRMjVDY0Znc1MwRkJTelJaTEdWQlFXZENMRVZCUlhKQ0xFMUJRVTFETEVWQlFXbENlRU1zUlVGQlVXcFNMRWRCUVVjNVFpeEZRVUZSTEU5QlFWRXNWMEZET1VOcFRpeEZRVUZMZFVrc1UwRkRURGRVTEVkQlFVMUJMRWRCUTFZc1IwRkRUVTBzUlVGQlZ6aENMRWxCUTJKd1J5eEZRVUZOTEZOQlEwNXFRaXhMUVVGTGMwZ3NWVUZEVEhSSUxFdEJRVXR2V0N4WlFVRmpMRk5CUTI1Q2NGZ3NTMEZCUzJ0RUxHRkJRV0VzVVVGQlUyMUZMRWRCUTNaQ2NFTXNSVUZEUVVFc1JVRkJSMjlETEVkQlNVaHlTQ3hMUVVGTGMxa3NkMEpCU1ZCVExFVkJRVmN4UXl4RlFVRlJhbElzUjBGQlJ6bENMRVZCUVZFc1VVRkJVMmxETEVkQlF6ZERMRWxCUVVrc1NVRkJWWFpHTEV0QlFVdHhXU3hUUVVGVkxFTkJRM3BDTEUxQlFVMHpVaXhGUVVGVk1VY3NTMEZCUzNGWkxGTkJRM0pDY0Znc1JVRkJUU3gzUTBGQmVVTjVSaXhIUVVVdlF5eE5RVUZOYzFNc1JVRkJVV2hhTEV0QlFVc3JSeXhoUVVGaExFdEJRelZDT1VZc1JVRkJUU3h4UTBGQmMwTjVSaXhIUVVNMVEyMVRMRWxCUTBGMFZDeEZRVUZSTEVsQlFVbHpUU3hOUVVGTkxGbEJRMnhDZGs4c1JVRkJUMVVzVTBGRFVqQkRMRWRCUTBNeFJ5eExRVUZMTUVJc1MwRkJTM1ZZTEZkQlExWkVMRVZCUVUxRkxGRkJSVlpzV2l4TFFVRkxkMWNzUzBGQlMyaElMRXRCUVVzc1MwRkRXSGhRTEV0QlFVdHRXaXhsUVVGbFNDeEpRVVUxUWl4RFFVZEJMRTlCUmtGb1dpeExRVUZMZDFjc1MwRkJTMmhJTEV0QlFVdHhTaXhIUVVObU4xa3NTMEZCUzNkWExFdEJRVXRvU0N4TFFVRkxkVW9zUjBGRFVpOVpMRWxCUTFnc1EwRlBRU3hQUVVGQmIxb3NRMEZCVVc1VkxFZEJRMG9zVDBGQlQycEdMRXRCUVV0cFJ5eExRVUZMYUVJc1JVRkRja0lzUTBGTlFTeE5RVUZCTmxRc1IwRkRTVGRZTEVWQlFVMHNVVUZGVG1wQ0xFdEJRVXR6U0N4VlFVVk1kRWdzUzBGQlMyOVlMRmxCUVdNc1QwRkRia0p3V0N4TFFVRkxhMFFzWVVGQllTeFJRVVZzUWl4TlFVRk5TU3hGUVVGVGRFUXNTMEZCU3pCWkxFOUJRM0JDTVZrc1MwRkJTM2RYTEV0QlFVdG9TQ3hMUVVGTE5rY3NSVUZCVVdwU0xFZEJRVWM1UWl4RlFVRlJMRTlCUVZGMFJDeExRVUZMY1Zvc1QwRkJUemRVTEV0QlFVdDRSaXhQUVVGUmNWY3NSVUZCVVdwU0xFZEJRVWM1UWl4RlFVRlJMRTlCUVZGMFJDeExRVUZMYzFvc1QwRkJUemxVTEV0QlFVdDRSaXhQUVVGUmNWY3NSVUZCVVdwU0xFZEJRVWM1UWl4RlFVRlJMRkZCUVZOMFJDeExRVUZMZFZvc1VVRkJVUzlVTEV0QlFVdDRSaXhQUVVGUmNWY3NSVUZCVVdwU0xFZEJRVWM1UWl4RlFVRlJMRkZCUVZOMFJDeExRVUZMZDFvc1VVRkJVV2hWTEV0QlFVdDRSaXhQUVVGUmNWY3NSVUZCVVdwU0xFZEJRVWR3Uml4TFFVRkxkMWdzVVVGQlV5eFZRVUZYZUZnc1MwRkJTM2xhTEZWQlFWVnFWU3hMUVVGTGVFWXNUMEZETDFJc1EwRk5RU3hOUVVGQmNWb3NSMEZEU1hKYUxFdEJRVXRyUkN4aFFVRmhMRTlCUTNSQ0xFTkJUVUVzVFVGQlFXOVhMRU5CUVU5c1Z5eEhRVU5JTEVsQlEwbHdSQ3hMUVVGTGQxZ3NVVUZCVVd0RExFbEJRVWwwVnl4RlFVTnlRaXhEUVVOQkxFMUJRVTl0UkN4SFFVTklka2NzUzBGQlMzZGFMRkZCUVZFc1kwRkJaV3BVTEVWQlEyaERMRU5CUTBvc1EwRk5RU3hUUVVGQmExUXNRMEZCVldoWExFZEJSVTU1VXl4RlFVRnRRbmxFTEZOQlFWTXNTMEZEZUVJeldpeExRVUZMYTBRc1lVRkJZU3hUUVVGVlR5eEpRVU0zUW5wRUxFdEJRVXNyUnl4aFFVTmFMRU5CVFVFc1QwRkJRWGRUTEVOQlFWRnNVeXhIUVVOS2NFY3NSVUZCVFN4UlFVRlRiMGNzUjBGRFpuSklMRXRCUVV0clJDeGhRVUZoTEZGQlFWTnRSU3hGUVVNdlFpeERRVTlCTEUxQlFVRXZSQ3hEUVVGUGMxY3NSVUZCUzJ4WkxFZEJRMUlzU1VGQlNUUkNMRVZCUVZOMFJDeExRVUZMZFZjc1MwRkJTM0ZFTEVkQlVYWkNMRTlCVUV0MFZ5eEZRVWxKZEVRc1MwRkJTekJZTEdWQlFXbENjRlVzUlVGQlQzVlhMRkZCUTJ4RGRsY3NSVUZCVHpoV0xGZEJTbEE1Vml4RlFVRlRMRWxCUVVrMlV5eEZRVUZaZDBNc1QwRkJUek5aTEV0QlFVMDBXaXhGUVVGTGJGa3NSMEZETTBNeFFpeExRVUZMZFZjc1MwRkJTM0ZFTEVkQlFVOTBWeXhIUVV0a1FTeERRVU5ZTEVOQlQwRXNVVUZCUVhkWExFTkJRVk40Vnl4SFFVTk1MRTFCUVUxcFZDeEZRVUZQY0Zjc1QwRkJUMjFUTEV0QlFVdDBVeXhMUVVGTGRWY3NUVUZET1VJc1NVRkJTeXhOUVVGTmNVUXNTMEZCVDNKRUxFVkJSV1FzUjBGRVpYWlhMRXRCUVV0MVZ5eExRVUZMY1VRc1IwRkRaRU1zVDBGRlVDeFpRVVJCTlZrc1JVRkJUU3cwUTBGQk5rTXlXU3hIUVVrelJEVmFMRXRCUVVzcldpeFJRVU5VTEVOQlQwRXNUMEZCUVVNc1EwRkJVWFpYTEVkQlEwcDRReXhGUVVGTkxHOUNRVUZ4UW5kRExFZEJRek5DTEUxQlFVMTNWeXhGUVVGcFFtcGhMRXRCUVV0eldDeFJRVUZSZEZBc1QwRkJUM1pGTEVkQlF6TkRMRWxCUVVzc1NVRkJTVEpETEVWQlFVa3NSVUZCUjBFc1JVRkJTVFpVTEVWQlFXVnlVaXhQUVVGUmVFTXNTVUZEZGtOd1J5eExRVUZMTUZrc1QwRkJUM3BWTEUxQlFVMW5WeXhGUVVGbE4xUXNSMEZCU1RORExFVkJRVTk1Vnl4UlFVVndSQ3hEUVUxQkxFOUJRVUUxVXl4SFFVTkpja2NzUlVGQlRTeFhRVU5PYWtJc1MwRkJTM2RYTEV0QlFVdG9WQ3hSUVVGVE1sY3NSMEZCWlVFc1MwRkRiRU51WVN4TFFVRkxkMWNzUzBGQlN6Vk9MRTlCUVZNc1JVRkRia0kxU1N4TFFVRkxkMWdzVVVGQlVTOU1MRk5CUTJwQ0xFTkJUVUVzVFVGQlFYTlBMRWRCUTBrNVdTeEZRVUZOTEdOQlEwNXFRaXhMUVVGTE5Ga3NaVUZCWjBJc1JVRkRja0kxV1N4TFFVRkxkVmtzWlVGQlowSXNSVUZEY2tKMldTeExRVUZMZDFvc1VVRkJVU3huUWtGRFZIaGFMRXRCUVVzd1dTeFJRVU5NTVZrc1MwRkJTekJaTEU5QlFVOHhWU3hQUVVOd1FpeERRVTFCTEZWQlFVRnZWeXhIUVVOSkxFOUJRVTl3WVN4TFFVRkxLMW9zVVVGRGFFSXNRMEZOUVN4UFFVRkJVQ3hEUVVGUllTeEZRVUZSZUZjc1IwRkRXalZETEVWQlFVMHNiVUpCUVc5Q2Ixb3NSMEZETVVKeVlTeExRVUZMYzBnc1ZVRkRUSFJJTEV0QlFVc3JWeXhSUVVGUmRVUXNVVUZEWW5SaExFdEJRVXR2V0N4WlFVRmpMRk5CUTI1Q2NGZ3NTMEZCUzJ0RUxHRkJRV0VzVVVGQlUyMVlMRVZCUVZGNFZ5eEhRVU12UWpkRUxFdEJRVXMyV0N4blFrRkJhMEkzV0N4TFFVRkxORmtzWlVGRE5VSTFXU3hMUVVGTGVWa3NWMEZGWWl4RFFVMUJMRk5CUVVGQkxFZEJRMGtzUjBGQlNYcFpMRXRCUVV0MVdTeGxRVUZwUW5aWkxFdEJRVXMwV1N4alFVTXpRaXhQUVVGUE5Wa3NTMEZEV0N4TlFVRk5kVkVzUlVGQlQzWlJMRXRCUTJJc1IwRkJTVUVzUzBGQlN5dFhMRkZCUVZGNVFpeFZRVUZaZUZrc1MwRkJTemhZTEhOQ1FVTTVRamRYTEVWQlFVMHNiMEpCUTA1cVFpeExRVUZMSzFjc1VVRkJVWFZFTEZGQlEySjBZU3hMUVVGTGEwUXNZVUZCWVN4dlFrRkRiRUpzUkN4TFFVRkxkVmtzWlVGQlowSXNUVUZGY0VJc1EwRkRSQ3hOUVVGTlowTXNSVUZCVVhaaExFdEJRVXNyVnl4UlFVRlJlVVFzVjBGRE0wSjJXaXhGUVVGTkxEQkRRVUV5UTNOYUxFZEJRMnBFZG1Fc1MwRkJTM1ZaTEdWQlFXZENMRVZCUTNKQ0xFMUJRVTFUTEVWQlFWRm9XaXhMUVVGTEswY3NZVUZCWVN4TFFVTjRRbmRLTEVWQlFVdHhTU3huUWtGRlZETllMRVZCUVUwc2QwSkJRMDVxUWl4TFFVRkxhMFFzWVVGQllTeHZRa0ZCY1VKeFRpeEZRVUZMZDBjc1VVRkJVWGxDTEZWQlJXaEVha2tzUlVGQlMzRkpMR1ZCUlZSeVNTeEZRVUZMZEVzc1MwRkJUVzlDTEVsQlEwaEJMRWRCUTBGd1J5eEZRVUZOTERKQ1FVTk9jMUFzUlVGQlMyZEpMR1ZCUVdkQ0xFVkJRM0pDYUVrc1JVRkJTMnRKTEZsQlEweDZXU3hMUVVGTGEwUXNZVUZCWVN4clFrRkJiVUp0UlN4TFFVZHlRM0JITEVWQlFVMHNjVUpCUTA1elVDeEZRVUZMYTBzc2JVSkJSMlJHTEVkQlEwTjJZU3hMUVVGTE1FSXNTMEZCUzNWWUxGZEJRMVpFTEVWQlFVMUZMRkZCUlZac1dpeExRVUZMZDFjc1MwRkJTMmhJTEV0QlFVc3NTMEZEV0hoUUxFdEJRVXR0V2l4bFFVRmxTQ3hKUVVVMVFpeERRVU5LTEVOQlRVRXNWMEZCUVhsQ0xFZEJRMGtzVFVGQlRVTXNSVUZCVlRGaExFdEJRVXNyVnl4UlFVRlJlVUlzVTBGRE4wSjRXU3hMUVVGTGRWa3NaVUZCWjBJc1JVRkRja0oyV1N4TFFVRkxLMWNzVVVGQlVYVkVMRkZCUTJKMFlTeExRVUZMYTBRc1lVRkJZU3haUVVGaGQxZ3NSVUZEYmtNc1JVRkZTbkpoTEVWQlFWRTBWaXhSUVVGVlFTeERMR2xDUTJwSmJFSTNUU3hGUVVGUEwwa3NVVUV6VVZBc1UwRkJaV3RMTEVkQmNVUmtMRk5CUVZNd1JpeEZRVUZaT1Vjc1IwRkRjRUlzU1VGQlNTdEhMRVZCUlVGRExFVkJRMEZETEVWQlJrRkRMRVZCUVdsQ0xFdEJTWEpDTEZOQlFWTndVQ3hMUVVGVFowa3NSMEZGYWtJc1NVRkJTMmhKTEVWQlFVMXhVQ3hSUVVOV0xFOUJSMFFzVFVGQlRVTXNSVUZCVDNSUUxFVkJSMUIxVUN4RlFVRlBReXhQUVVGUExFbEJRVWt4U0N4TlFVTnNRakpJTEVWQlFVdEdMRWRCUVZGT0xFZEJRVmxOTEVkQlF5OUNSQ3hGUVVGTGFrZ3NTMEZCVDI5SUxFVkJRMXBJTEVWQlFVdHVTU3hMUVVGUE9FZ3NSVUZEV2tzc1JVRkJTME1zUzBGQlQwRXNSVUZEV2s0c1JVRkJWMDBzUlVGRldIWklMRVZCUVVzc1IwRkJTMmRJTEVWQlFWbFZMRTlCUVU4eFNDeEZRVUZMTEVsQlJWZ3NhVUpCUVZwQkxFVkJRVXNzU1VGRlprRXNSVUZCU3pKSUxGRkJRVkVzVFVGSlpDeEpRVUZKTVVvc1JVRkJVU3hGUVVOYUswSXNSVUZCU3l4SFFVRkxRU3hGUVVGTExFZEJRVWRWTEZGQlFWRXNaMEpCUVdsQ0xFTkJRVU5ETEVWQlFVOXBTQ3hMUVVWc1JDeEhRVUZqTEU5QlFWWnFTQ3hGUVVOSUxFMUJRVThzU1VGRlVqRkRMRWxCUTBFc1RVRkJUVFJLTEVWQlFWbGlMRVZCUVZsdVJTeFhRVUZYSzBVc1IwRkRla01zUjBGQmVVSXNiVUpCUVdSRExFVkJRVEJDTEVOQlEzQkRMRTFCUVUxRExFVkJRVTA1U0N4RlFVRkxMMElzUjBGRGFrSXdReXhGUVVGUmEwZ3NSVUZCVlVVc1MwRkJTMVFzUlVGQlRWRXNSMEZITjBJNVNDeEZRVUZMVVN4UFFVRlBka01zUlVGQlR5eEhRVU51UWtFc1IwRkRSQ3hEUVVOQkxFOUJRVTh3UXl4SlFVbFNjVWNzUlVGQldXcElMRmRCUVZkblNTeExRVUZMVkN4RlFVRk5kRWdzU1VGRmNFSnpTQ3hGUVVGTE1VVXNTMEZCVDI5RkxFVkJRVmx3UlN4TFFVTm9RMjlHTEUxQlFVMVdMRVZCUVUxMFNDeEZRVU51UWl4RFFXZERRU3hQUVRsQ1FXaEpMRVZCUVUxclNTeFZRVUZaUVN4RlFVTnNRbXhKTEVWQlFVMXBTU3hWUVVGWkswY3NSVUZCV1M5SExGbEJRemxDYWtrc1JVRkJUWFZKTEUxQlFWRjVSeXhGUVVGWmFVSXNXVUZCV1M5SUxFZEJRM1JEYkVrc1JVRkJUV3RSTEU5QlFWTkJMRVZCUTJac1VTeEZRVUZOZDBzc1VVRkJWWGRGTEVWQlFWbDRSU3hSUVVVMVFuUk1MRTlCUVU5RExHVkJRV1ZoTEVWQlFVOHNWVUZCVnl4RFFVTjJRMjFSTEZsQlFWa3NSVUZEV2tNc1kwRkJZeXhGUVVOa1F5eEpRVUZMTEVsQlEyMUNMRTlCUVc1Q2FrSXNSVUZEU1VFc1IwRkZTa1lzU1VGQmIwSkdMRVZCUVZsdVJ5eGhRVU51UTNGSExFVkJRV3RDUml4RlFVRlpia2NzVjBGRE9VSnpSeXhGUVVGbFNDeEZRVUZaU3l4UlFVRlJia2dzU1VGSE4wSnBTQ3hIUVVWU2JVSXNTVUZCUzNaR0xFbEJRMHB4UlN4RlFVRnBRbkpGTEV0QlMyRXNiVUpCUVhKQ2FVVXNSVUZCV1hoRExFMUJRM1JDZDBNc1JVRkJXWGhETEV0QlFVdDRUU3hIUVVkWVFTeERRVU5TTEVOQlJVRXNVMEZCVTJ0UkxFVkJRVTlvU1N4RlFVRlhjVWtzUjBGRE1VSXNUVUZCVFVNc1JVRkJWM2hDTEVWQlFWbHFVU3hMUVVGTGJVb3NaMEpCUVd0RExFbEJRV1J4U1N4RlFVRTBRaXhKUVVGTlFTeEhRVUZoY2trc1IwRkZja2NzVDBGRVFYTkpMRVZCUVZNMVJpeEpRVUZOTjB3c1MwRkJTelpNTEVsQlEySTBSaXhEUVVOU0xFTkJkMFpCTEZOQlFWTkRMRVZCUVZsRExFZEJRM0JDTEU5QlFVOUJMRVZCUVU5RExGZEJRMXBzUml4VlFVRlZMRVZCUVVkcFJpeEZRVUZQUXl4WFFVRlhhRW9zVDBGQlV5eEhRVU40UTJVc1VVRkJVU3hWUVVGWExFbEJRM1JDTEVOQk1FSkJMRTlCZGxGQmMwY3NSVUZCV1doUUxFMUJRVkZuVUN4RlFVTndRa0VzUlVGQldTOVBMRkZCUVZVclR5eEZRVU4wUWtFc1JVRkJXVlVzVDBGdlVGb3NVMEZCWjBKSkxFZEJRMllzVDBGQlNVRXNZVUZCWldNc1RVRkRXR1FzUlVGQlNXVXNUMEZCVTJZc1JVRkJTVFZGTEZGQlJXeENORVVzUTBGRFVpeEZRWGhRUVdRc1JVRkJXVGhDTEZGQmQweGFMRmRCUTBNc1RVRkJUV3BKTEVWQlFXRXNTVUZEWm0xSExFVkJRVms1UXl4TlFVRk5hRVlzU1VGQlNYVktMRTFCUTNSQ2VrSXNSVUZCV1N0Q0xFMUJRVTAzU2l4SlFVRkpkVW9zUjBGQllYWktMRWxCUVVsblFpeEhRVUZoTEVsQlFVMUJMRWxCUXpWRU9Fa3NTMEZCU3l4TFFVVlFMRTlCUkVGb1F5eEZRVUZaYVVNc1QwRkJUeXhKUVVOYWNFa3NRMEZEVWl4RlFUbE1RVzFITEVWQlFWbHBReXhQUVhOS1dpeFRRVUZuUW5CSkxFZEJUMllzU1VGQlNURkVMRVZCVGtvMlNpeEZRVUZaY0Vjc1MwRkJTME1zUjBGRGFrSnRSeXhGUVVGWmJrY3NWMEZCWVVFc1JVRkZla0p0Unl4RlFVRlpPVU1zVFVGQlVTeEhRVU53UWpoRExFVkJRVmtyUWl4TlFVRlJMRWRCUjNCQ0xFMUJRVTA1U2l4SFFVRXJRaXhwUWtGQlpqUkNMRVZCUVRCQ1FTeEZRVUZoTEVsQlFVazFRaXhOUVVGTkxGVkJRMnBGYVVzc1JVRkJUV3BMTEVWQlFVMVZMRTlCUld4Q0xFbEJRVXQ0UXl4RlFVRkpMRVZCUVVkQkxFVkJRVWtyVEN4RlFVRkxMMHdzU1VGRFpqaENMRVZCUVUwNVFpeExRVTlYTEU5QlJuUkNNRVFzUlVGQllUVkNMRVZCUVUwNVFpeEhRVUZIZFVRc1VVRkJVU3hOUVVGUExGRkJSWFJDTEVkQlEyUnpSeXhGUVVGWkswSXNUVUZCVFhoRExFdEJRVXNzU1VGQlNUUkRMRTlCUVU4c1NVRkJUWFJKTEVWQlFWZHpSQ3hOUVVGTkxFZEJRVXNzVFVGRk9VUTJReXhGUVVGWk9VTXNUVUZCVFhGRExFdEJRVXNzU1VGQlNUUkRMRTlCUVU4c1NVRkJUWFJKTEVWQlFXRXNUVUZIZUVRc1JVRTVTMEZ0Unl4RlFVRlpTeXhSUVhOTldpeFRRVUZwUWpsT0xFZEJRMmhDTEVkQlFUaENMRTFCUVRGQ1FTeEZRVUZMUVN4RlFVRkxiMGNzVDBGQlV5eEhRVU4wUWl4UFFVRlBMRVZCUjFJc1NVRkJTWGhETEVWQlEwRXJUQ3hGUVVWS0xFbEJRVXN2VEN4RlFVRkpMRVZCUVVjclRDeEZRVUZOYkVNc1JVRkJXU3RDTEUxQlFVMXdTaXhQUVVGUmVFTXNSVUZCU1N0TUxFVkJRVXN2VEN4SlFVTndSQ3hIUVVGSk5rb3NSVUZCV1N0Q0xFMUJRVTAxVEN4SFFVRkhhVTBzUzBGQlN6ZFFMRWRCUXpkQ0xFOUJRVThzUlVGSlZDeEpRVUZMTkVRc1JVRkJTU3hGUVVGSEswd3NSVUZCVFd4RExFVkJRVms1UXl4TlFVRk5ka1VzVDBGQlVYaERMRVZCUVVrclRDeEZRVUZMTDB3c1NVRkRjRVFzUjBGQlNUWktMRVZCUVZrNVF5eE5RVUZOTDBjc1IwRkJSMmxOTEV0QlFVczNVQ3hIUVVNM1FpeFBRVUZQTEVWQlNWUXNUMEZCVHl4RFFVTlNMRVZCTVU1QmVVNHNSVUZCV1RWSExGTkJRVmNzUlVGQlVTeE5RVU12UWpSSExFVkJRVmw0UlN4UlFUQlFXaXhYUVVORFVDeFJRVUZSVXl4TFFVRkxMSGRKUVVOa0xFVkJNVkJCZUV3c1QwRkJUMjFUTEV0QlFVc3ZTQ3hIUVVGTEwwY3NVVUZCVVN0UExFbEJRM2hDZEVNc1JVRkJXWE5ETEVkQlFVOW9TU3hGUVVGSlowa3NTMEZQZUVKMFF5eEZRVUZaT1VNc1RVRkJVU3hIUVVOd1FqaERMRVZCUVZrclFpeE5RVUZSTEVkQlQzQkNMMElzUlVGQldXNUZMRmRCUVdFc1EwRkJReXhGUVd0Q01VSnRSU3hGUVVGWmFVSXNXVUZXV2l4VFFVRnhRaTlJTEVkQlEzQkNMRWxCUVVseFNpeEZRVUZQTEVWQlJWZ3NTVUZCU3l4SlFVRkpjRTBzUlVGQlNTeEZRVUZIUVN4RlFVRkpLME1zUlVGQlZWQXNUMEZCVVhoRExFbEJRM0pEYjAwc1IwRkJVMEVzUjBGQlVTeEhRVUZMUVN4RlFVRlJja29zUlVGQlZYTktMRmRCUVZkeVRTeEhRVU51Ukc5TkxFZEJRVkVzUlVGSFZDeFBRVUZQZGtNc1JVRkJXWEpGTEU5QlFVOXdSQ3hMUVVGTGEwc3NTVUZCU1VZc1IwRkJVWFpETEVWQlFWbHlSU3hQUVVGUGFFUXNUMEZETDBRc1JVRXlUa0Z4U0N4RlFVRlphVU1zVDBGQlQycERMRVZCUVZrNVJpeFJRVVY0UWpoR0xFTkJRMUlzUXl3NFFrTTVVVUU1VUN4UFFVRlBReXhsUVVGbFF5eEZRVUZUTEdGQlFXTXNRMEZCUlVNc1QwRkJUeXhKUVVOMFJFUXNSVUZCVVhOaExHdENRVUZ2UW5SaExFVkJRVkYxWVN4elFrRkJkMEoyWVN4RlFVRlJkMkVzVlVGQldYaGhMRVZCUVZGeldpeGpRVUZYTEVWQlEyNUhMRTFCUVUweldTeEZRVUZyUWl4RlFVRlJMRTFCUTJoRFdDeEZRVUZSYzFvc1UwRkRNRU1zYlVKQlFWcHRRaXhUUVVGeFJDeHRRa0ZCY0VKQkxGRkJRVkZETEZGQlJTOUVReXhIUVVGUFJpeFJRVUZSUXl4VlFVRlZha2dzUzBGQlMydElMRWRCUnk5Q0xFTkJRVU5CTEVWQlFVbHFWU3hKUVVGcFFrRXNSVUZCWVdsVkxFVkJRVWtzUjBGSGRFUXpZU3hGUVVGUmQyRXNWVUZCV1RkYUxFVkJRV2RDT0Vjc1pVRkJaU3RUTEZkQlFXRTNXaXhGUVVGblFqaEhMR1ZCUVdWdFZDeGhRVU12UmpWaExFVkJRVkYxWVN4MVFrRkJkMElzUlVGRGFFTjJZU3hGUVVGUmMyRXNhMEpCUVc5Q0xHRXNORUpEWkRWQ2VHRXNUMEZCVDBNc1pVRkJaVU1zUlVGQlV5eGhRVUZqTEVOQlFVVkRMRTlCUVU4c1NVRkRkRVJFTEVWQlFWRnZWaXhoUVVGVkxFVkJSV3hDTEVsQlFVbHVWaXhIUVVGUkxFVkJRMW9zU1VGRFNVRXNSVUZCYTBNc2IwSkJRVzVDYTFZc1owSkJRMWdzYjBKQlFYRkNMRWxCUVVsQkxHTkJRMnBETEVOQlEwRXNUVUZCVDI1UExFZEJSMUFzUTBGRFFXaElMRVZCUVZGdlZpeFJRVUZWYmxZc1F5dzRRa05RV0N4VFFVRlRiMFlzUlVGQlVYVklMRWRCUTNSQ0xFZEJRVWxCTEVWQlFVc3NUMEZYV0N4VFFVRmxRU3hIUVVOaUxFbEJRVXNzU1VGQlNYTkdMRXRCUVU4M1RTeEZRVUZSZVU4c1ZVRkRkRUpzU0N4RlFVRkpjMFlzUjBGQlR6ZE5MRVZCUVZGNVR5eFZRVUZWTlVJc1IwRkZMMElzVDBGQlQzUkdMRU5CUTFRc1EwRm9RbXRDYVU4c1EwRkJUV3BQTEVWQlEzaENMRU1zT0VKQk1FSkJka2dzUlVGQlVYbFBMRlZCUVZVdlR5eEhRVU5zUWswc1JVRkJVWGxQTEZWQlFWVjJUU3hwUWtGQmJVSXNVMEZCVTNWVUxFVkJRVTlzVnl4SFFVbHVSQ3hQUVVoQmFrWXNTMEZCUzI5aUxGZEJRV0Z3WWl4TFFVRkxiMklzV1VGQll5eERRVUZETEVkQlEzSkRjR0lzUzBGQlMyOWlMRmRCUVZjc1NVRkJUVVFzUjBGQlUyNWlMRXRCUVV0dllpeFhRVUZYTEVsQlFVMUVMRWxCUVZVc1NVRkROMFF6VEN4TFFVRkxka3NzUjBGRFJHcEdMRWxCUTFRc1JVRlpRVEJHTEVWQlFWRjVUeXhWUVVGVmJsSXNTMEZCVHl4VFFVRlRiVmtzUlVGQlQyeFhMRWRCUTNaRExGTkJRVk5ITEVsQlExQndSaXhMUVVGTGNXSXNTVUZCU1VZc1JVRkJUeTlXTEVkQlEyaENTQ3hGUVVGSFowMHNUVUZCVFdwU0xFdEJRVTAwV0N4VlFVTnFRaXhEUVVsQkxFOUJSa0Y0VXl4RlFVRkhTQ3hIUVVGTFFTeEZRVU5TYWtZc1MwRkJTMjlHTEVkQlFVY3JWaXhGUVVGUEwxWXNSMEZEVW5CR0xFbEJRMVFzUlVGWlFUQkdMRVZCUVZGNVR5eFZRVUZWYTBnc1NVRkRiRUl6Vml4RlFVRlJlVThzVlVGQlZXMUlMR1ZCUTJ4Q05WWXNSVUZCVVhsUExGVkJRVlZ2U0N4dFFrRkRiRUkzVml4RlFVRlJlVThzVlVGQlZYRklMRzlDUVVGelFpeFRRVUZUVEN4RlFVRlBiRmNzUjBGSmRFUXNSMEZJUVdwR0xFdEJRVXR2WWl4WFFVRmhjR0lzUzBGQlMyOWlMRmxCUVdNc1EwRkJReXhGUVVkc1F5eEhRVUZMZUVRc1ZVRkJWV2hRTEU5QlJXcENMRTlCUkVFMVNTeExRVUZMYjJJc1YwRkJZU3hEUVVGRExFVkJRMXB3WWl4TFFVbFVMRWxCVlVsbllpeEZRVlpCVXl4RlFVRlplbUlzUzBGQlMyOWlMRmRCUVZjc1NVRkJUVVFzUjBGRGRFTXNTVUZCUzAwc1JVRkJWeXhQUVVGUGVtSXNTMEZIZGtJc1IwRkJTU3hIUVVGTE5GZ3NWVUZCVldoUUxFOUJSV3BDTEdOQlJFODFTU3hMUVVGTGIySXNWMEZCVnl4SlFVRk5SQ3hIUVVOMFFtNWlMRXRCUzFRc1NVRkJTeXhKUVVGSmIwY3NSVUZCU1N4RlFVRkhRU3hGUVVGSmNWWXNSVUZCVlRkVExFOUJRVkY0UXl4SlFVVndReXhKUVVSQk5GVXNSVUZCUzFNc1JVRkJWWEpXTEUxQlEwcHVRaXhIUVVGTksxWXNSVUZCUnk5V0xFdEJRVTlCTEVWQlFVa3NRMEZETjBKM1Z5eEZRVUZWYUZNc1QwRkJUM0pFTEVWQlFVY3NSMEZEY0VJc1MwRkRSaXhEUVZOR0xFOUJTbmxDTEVsQlFYSkNjVllzUlVGQlZUZFRMR1ZCUTB3MVNTeExRVUZMYjJJc1YwRkJWeXhKUVVGTlJDeEhRVWQ0UW01aUxFbEJRMVFzUlVGVlFUQkdMRVZCUVZGNVR5eFZRVUZWZFVnc1MwRkJUeXhUUVVGVFVDeEhRVU5vUTI1aUxFdEJRVXR2WWl4WFFVRmhjR0lzUzBGQlMyOWlMRmxCUVdNc1EwRkJReXhGUVV0MFF5eEpRVWhCTEVsQlFVbHVVeXhGUVVGUExFbEJRVWt3VXl4TlFVRk5MMFFzVlVGQlZXaFFMRTlCUVZNc1IwRkRjRU0yVXl4RlFVRlplbUlzUzBGQlMyOWlMRmRCUVZjc1NVRkJUVVFzUjBGRk4wSXZWU3hGUVVGSkxFVkJRVWRCTEVWQlFVbDNVaXhWUVVGVmFGQXNUMEZCVVhoRExFbEJRM0JETmtNc1JVRkJTemRETEVWQlFVa3NSMEZCUzNkU0xGVkJRVlY0VWl4SFFVY3hRaXhIUVVGSmNWWXNSVUZGUnl4RFFVRkpjbFlzUlVGQlNTeEZRVUZpTEVsQlFVc3NTVUZCVnl0TUxFZEJSR2hDYzBvc1JVRkJXVUVzUlVGQlZYSlBMRTFCUVUwc1NVRkRTWGhGTEU5QlFWRjRReXhGUVVGSkswd3NTVUZCVHk5TUxFVkJRMnBFY1ZZc1JVRkJWWEpXTEVkQlFVYzJTeXhOUVVGTmFsSXNTMEZCVFdsS0xFVkJSRXRNTEVOQlMyeERMRTlCUVU4MVNTeEpRVU5VTEVWQlIwRXdSaXhGUVVGUmVVOHNWVUZCVldwU0xHRkJRV1YzUXl4RlFVRlJlVThzVlVGQlZYVklMRXRCVlc1RWFGY3NSVUZCVVhsUExGVkJRVlY1U0N4VlFVRlpMRk5CUVZOVUxFZEJSWEpETEU5QlJFRnVZaXhMUVVGTGIySXNWMEZCWVhCaUxFdEJRVXR2WWl4WlFVRmpMRU5CUVVNc1JVRkRMMEp3WWl4TFFVRkxiMklzVjBGQlZ5eEpRVUZOUkN4SlFVRlZMRVZCUTNwRExFVkJWVUY2Vml4RlFVRlJlVThzVlVGQlZUQklMR0ZCUVdVc1UwRkJVMVlzUjBGRGVFTXNVVUZCVlc1aUxFdEJRVXMwWWl4VlFVRlZWQ3hIUVVGUGRsTXNUVUZEYkVNc1F5eHZRME4yUzBFc1NVRkJTVGRKTEVWQlFXMUNReXhOUVVGUlFTeExRVUZMUkN4cFFrRkJiMElzVTBGQlZVVXNSMEZET1VRc1QwRkJVVUVzUjBGQlQwRXNSVUZCU1VNc1YwRkJZMFFzUlVGQlRTeERRVUZGTEZGQlFWZEJMRVZCUTNoRUxFVkJRMEZGTEU5QlFVOURMR1ZCUVdWRExFVkJRVk1zWVVGQll5eERRVUZGUXl4UFFVRlBMRWxCUTNSRVJDeEZRVUZSZVdJc1VVRkJTeXhGUVVOaUxFMUJRVTF5WWl4RlFVRnBRaXhGUVVGUkxFMUJRM3BDYzJJc1JVRkJOa0lzUlVGQlVTeE5RVU55UTI1aUxFVkJRWEZDTEVWQlFWRXNUVUZGTjBKTExFZEJRVkVzUlVGRVJXeENMRVZCUVdkQ0xFVkJRVkVzVDBGRFpHMUNMRk5CUVZNc2FVTkJRMjVETEUxQlFVMDBZU3hWUVVGWGNtSXNSVUZCWldVc1ZVRkROVUlzVVVGQlNXZENMRWRCUTBFc1RVRkJUeXhqUVVOWUxFTkJRMEVzVFVGQlFVTXNSMEZGWjBNc2JVSkJRV3BDZFZvc1pVRkpXR2hqTEV0QlFVdHBZeXhWUVVGWkxFbEJRVWxFTEdGQlFXRm9ZeXhMUVVGTE9FVXNWVUZCVlN4VFFVRlZPVVVzUzBGQlN6QkNMRXRCUVV0M1lTeHBRa0ZCYVVKc1l5eExRVUZMZDBNc1QwRkRNMFo0UXl4TFFVRkxhV01zVlVGQlZVVXNUMEZEVm5KSkxFdEJRVXNzUzBGRFRqZFRMRVZCUVUwc0swSkJRMDVxUWl4TFFVRkxORVFzV1VGRlNuZFpMRTFCUVU4dlZTeEpRVU5TY0Vjc1JVRkJUU3cyUWtGQk9FSnZSeXhIUVVOd1EzSklMRXRCUVV0MVJpeFJRVUZSTEhGQ1FVRnpRamhDTEV0QlIzWkRja2dzUzBGQlMybGpMRlZCUVZWSkxFMUJRVTEyU1N4TFFVRkxMRXRCUTNSQ09WUXNTMEZCUzJsakxGVkJRVlZMTERSQ1FVRTBRbmhKTEV0QlFVMTVTU3hKUVVNM1F5eE5RVUZOUXl4SFFVRm5RaXhGUVVGSk5XSXNSVUZCYlVJMllpd3lRa0ZCTWtKb1RTeFBRVUZQYVUwc2FVSkJRV3RDTVdNc1MwRkJTM05FTEU5QlFVOURMRmxCUTNaSGIxb3NSVUZCVTBvc1JVRkJUMHNzVTBGQlUwTXNXVUZCV1V3c1IwRkJaVTBzV1VGRGNFUkRMRWRCUVdkQ0xFVkJRVWx1WXl4RlFVRnRRbTlqTERaQ1FVTTNRMFFzUlVGQlkwZ3NVMEZCVTBzc1QwRkJUMVlzUlVGQlQzcGFMRlZCUTNKRE9VTXNTMEZCUzJ0a0xFOUJRVk5JTEVWQlFXTnFZU3hUUVVGVGNXRXNXVUZEY2tNc1RVRkJUVU1zUlVGQlR5eExRVU5VVkN4RlFVTkxVeXhQUVVOQmRFb3NTMEZCU3l4RlFVRkhkVW9zVDBGQlRTOWpMRmxCUTFncll5eEZRVU5CY0dNc1JVRkJUU3h6UWtGSFZrRXNSVUZCVFN4eFFrRkJjMEpZTEVkQlF6VkNUaXhMUVVGTE9FUXNVMEZCVTNoRUxFZEJRMlE0WXl4UFFVVkRhRUlzVFVGQlR5OVZMRWxCUTFKd1J5eEZRVUZOTEhORFFVRjFRMjlITEUxQlIzSkVLMVlzU1VGRFFTeE5RVUZOTTFvc1JVRkJVeXhEUVVGRlF5eExRVUZOTEZGQlEyNUNNVVFzUzBGQlMzZEZMRTFCUVUxSkxFMUJRMWh1UWl4RlFVRlBUQ3hMUVVGUExGZEJRVmR3UkN4TFFVRkxkMFVzVFVGQlRVa3NVMEZGZUVNMVJTeExRVUZMYTJRc1QwRkJUMnBhTEUxQlFVMVNMRWRCUVZGeFVTeExRVUZMTEVsQlFVMDVWQ3hMUVVGTE1rUXNZMEZIZEVRc1EwRkRRU3hMUVVGQlRTeERRVUZOUXl4SFFVTkdiRVVzUzBGQlN6aERMRlZCUVZjc1JVRkRhRUlzU1VGQlN5eEpRVUZKYzBRc1JVRkJTU3hGUVVGSFFTeEZRVUZKYkVNc1JVRkJVVEJGTEU5QlFWRjRReXhKUVVGTExFTkJRM0pETEUxQlFVMHpReXhGUVVGVFV5eEZRVUZSYTBNc1IwRkRha0pyV0N4RlFVRmhiRmdzU1VGQlRXeERMRVZCUVZFd1JTeFBRVUZUTEVWQlF6RkROVWtzUzBGQlMydGtMRTlCUVU5cVdpeE5RVUZOVWl4SFFVRlJjVkVzUzBGQlN5eExRVU4yUW5kS0xFbEJRMEVzUlVGQlNYWkNMRVZCUVRKQ2NFTXNWVUZCVlN4TFFVTnlRek5hTEV0QlFVczRReXhWUVVGWExFVkJRMmhDT1VNc1MwRkJTMnRFTEdGQlFXRXNWVUZEYmtKc1JDeExRVUZMSzBjc1pVRkhjRUlzUTBGRFNpeERRVU5CTEU5QlFVRm9SQ3hIUVVOSkxFbEJRVWtyUWl4RlFVTnpRaXhSUVVGNlFrRXNSVUZCU3psR0xFdEJRVXRwWXl4cFFrRkJPRUlzU1VGQlVHNVhMRWRCUVhsQ1FTeEZRVUZIT1VJc1QwRkRiRVVzUlVGRlNqTkVMRVZCUVZGNVlpeEhRVUZMUVN4RExEaENRMjVHWWpOaUxFOUJRVTlETEdWQlFXVkRMRVZCUVZNc1lVRkJZeXhEUVVGRlF5eFBRVUZQTEVsQlEzUkVSQ3hGUVVGUmIxZ3NVVUZCVlhCWUxFVkJRVkZyV0N4UlFVRlZiRmdzUlVGQlVXdGtMRmRCUVdGc1pDeEZRVUZSTUVJc1kwRkJWeXhGUVVNMVJTeE5RVUZOYWtJc1JVRkJjMElzUlVGQlVTeE5RVU01UWpCakxFVkJRV01zUlVGQlVTeE5RVU4wUWtNc1JVRkJhVUlzUlVGQlVTeE5RVVY2UW5oakxFZEJRVkVzUlVGRVJTeEZRVUZSTEV0QlEwVkRMRk5CUVZNc2IwSkJTVGRDZDJNc1JVRkJhMElzUTBGRGNFSXNWVUZEUVN4blFrRkRRU3hoUVVOQkxHZENRVU5CTEdOQlEwRXNhMEpCVVVvc1NVRkJTVWdzUlVGelJrb3NVMEZCVTBrc1JVRkJVM0prTEVkQlEyUXNUVUZCYVVRc2IwSkJRVEZEU0N4UFFVRlBaMVVzVlVGQlZYWkRMRk5CUVZOYUxFdEJRVXN4VVN4RlFVTXhReXhEUVhwR1FVUXNSVUZCVVRCQ0xGTkJRVmNzUlVGRmJrSXNVMEZCVjNkaUxFZEJRMUJCTEVWQlFWZEJMRVZCUVc5Q0xGRkJRVWtzUjBGQlN5eFZRVU40UTBFc1JVRkJWMEVzUlVGQmRVSXNWMEZCU1N4SFFVRkxMR0ZCUXpORFFTeEZRVUZYUVN4RlFVRnJRaXhOUVVGSkxFZEJRVXNzVVVGRGRFTkJMRVZCUVZkQkxFVkJRV2RDTEVsQlFVa3NSMEZCU3l4TlFVTndRMEVzUlVGQlYwRXNSVUZCTUVJc1kwRkJTU3hIUVVGTExHZENRVU01UTBFc1JVRkJWMEVzUlVGQmVVSXNZVUZCU1N4SFFVRkxMR1ZCUXpkRFFTeEZRVUZYUVN4RlFVRjFRaXhYUVVGSkxFZEJRVXNzV1VGRE9VTXNRMEZTUkN4RFFWRkhRU3hGUVVGaGJHUXNSVUZCVVd0a0xHRkJRV1ZzWkN4RlFVRlJhMlFzVjBGQllTeERRVUZETEVsQk1rVTNSR3hrTEVWQlFWRnJXQ3hSUVhaRlVpeE5RVTFKTEZkQlFVRTVWaXhEUVVGWmJXTXNSMEZEVWpWa0xFdEJRVXMwWkN4VFFVRlhRU3hEUVVOd1FpeERRVTlCTEUxQlFVRTFWaXhEUVVGUGFVWXNSMEZGU0N4UFFVUkJhRTBzUlVGQlRTeHhRa0ZCYzBKblRTeEhRVU40UWtFc1JVRkJTWFpLTEU5QlFWTTJXaXhGUVVGWFRTeFBRVUZUTlZFc1JVRkJTWFpLTEU5QlFWTTJXaXhGUVVGWFR5eFBRVU55UkN4RlFVRkpUQ3hGUVVGbFRTeFhRVUZYT1ZFc1IwRlhMMElzUTBGQlEycE9MRXRCUVV0blpTeGxRVUZsTDFFc1NVRldZbXBPTEV0QlFVdHBaU3hsUVVGbExFTkJRM1pDZG1Fc1MwRkJUWFZLTEVWQlFVbDJTaXhQUVVGVE5sb3NSVUZCVjAwc1RVRkRlRUpPTEVWQlFWZFhMR0ZCUTFoWUxFVkJRVmRaTEZkQlEycENka1VzU1VGQlN6Tk5MRVZCUVVreVRTeEpRVU5VZUZjc1MwRkJUVFpLTEVWQlFVazNTaXhMUVVOV1oySXNSMEZCU1c1U0xFVkJRVWx0VWl4SlFVdDRRaXhEUVVsQkxHTkJRVUZLTEVOQlFXVXZVU3hIUVVWWUxFbEJRVWwyUlN4RlFVRk5MRWRCUVV0MVJTeEZRVUZKZGtvc1MwRnZRbTVDTEU5QmJFSkpkVW9zUlVGQlNYWktMRTlCUVZNMldpeEZRVUZYVnl4alFVTjRRbXBTTEVWQlFVbDJTaXhQUVVGVE5sb3NSVUZCVjFrc1lVRkRlRUo2Vml4SFFVRlBkVVVzUlVGQlNXOVNMRmxCUVdNc1MwRkpla0p3VWl4RlFVRkpNazBzUzBGQlR5eE5RVUZSTTAwc1JVRkJTVEpOTEUxQlEzWkNiRklzUjBGQlQzVkZMRVZCUVVreVRTeEpRVUZOTEV0QlIycENMRTFCUVZFelRTeEZRVUZKYlZJc1MwRkRXakZXTEVkQlFVOTFSU3hGUVVGSmJWSXNTVUZIV0N4TlFVRlJibElzUlVGQlNUZEtMRTlCUTFwelJpeEhRVUZQZFVRc1MwRkJTME1zVlVGQlZXVXNSVUZCU1RkS0xFdEJRVTF3UkN4TFFVRkxOR1FzVjBGRmVrTXpZeXhGUVVGTkxHMUNRVUZ2UW1kTkxFVkJRVXQyUlN4SFFVTjRRa0VzUTBGRFdDeERRVTFCTEdOQlFVRjFWaXhEUVVGbGFGSXNSMEZEV0N4TlFVRk5jVklzUjBGQmFVSXNSVUZCU1dRc1JVRkJXV1VzYlVKQlFXMUNkRklzUjBGRGNFUjFVaXhGUVVGUGVHVXNTMEZCUzJkbExHVkJRV1ZOTEVWQlFXVTNZU3hSUVVNeFEyZGlMRVZCUVZWSUxFVkJRV1ZITEZGQlJTOUNMRTlCUkVGQkxFVkJRVkUzVGl4UlFVRlJORTRzUjBGRFZFTXNRMEZEV0N4SFFWbEtMRTFCUVUxb1NDeFZRVUZuUWpOWExFVkJRVzlDTkVVc1VVRk5kRU1zVjBGQlFXcEZMRU5CUVZscFpDeEhRVU5TTDJNc1VVRkRRVE5DTEV0QlFVc3daU3hSUVVGVlFTeERRVU51UWl4RFFVMUJMRWRCUVVGb1JpeERRVUZKZWswc1IwRkRRU3hKUVVGSmVFb3NSVUZEU2l4SFFVRnRRaXhwUWtGQlVuZEtMRVZCUVd0Q0xFTkJRM3BDTEVkQlFVbHFUaXhMUVVGTE1tVXNZMEZEVEN4TlFVRk5MRWxCUVVrNVRTeE5RVUZOTEcxRVFVVndRbkJQTEVWQlFWTjZSQ3hMUVVGTE5HVXNZVUZCWVROU0xFZEJRek5DTEUxQlFVMDBVaXhGUVVGblFuQmlMRVZCUVU5RExFOUJRVk0yV2l4RlFVRlhWeXhoUVVNM1ExY3NSMEZCYVVKd1lpeEZRVUZQUXl4UFFVRlRObG9zUlVGQlYxa3NXVUZETlVNeFlTeEZRVUZQUXl4TFFVRlBiV0lzUlVGQlowSjBRaXhGUVVGWFRTeE5RVUZSVGl4RlFVRlhUeXhKUVVVMVJEbGtMRXRCUVVzeVpTeGpRVUZuUWl4SlFVRkpSeXhGUVVGdlFuSmlMRWRCUld4Q0xFbEJRWFpDUVN4RlFVRlBOR0VzWVVGRFVERmpMRTFCUVUxMVFpeGhRVUZoTEZWQlFWZFBMRWxCUzJ4RE9VSXNUVUZCVFhWQ0xHRkJRV0VzVlVGQlYwOHNSVUZGZEVNc1MwRkRTeXhOUVVGSkxFVkJRVWxuWVN4RlFVRmxjMElzVlVGQlZUbFNMRXRCUVZGQkxFVkJRVWx4Unl4UFFXVTVReXhOUVVGTkxFbEJRVWw2UWl4TlFVRk5MR2xDUVVGdFFqVkZMRWRCWW01RExFbEJRVXRxVGl4TFFVRkxNbVVzWTBGRFRpeE5RVUZOTEVsQlFVazVUU3hOUVVGTkxHOUVRVWRvUW5CUExFVkJRVk42UkN4TFFVRkxNbVVzWTBGQlkwc3NaVUZCWlM5U0xFZEJRM1pEZUVvc1NVRkZRWHBFTEV0QlFVc3laU3hqUVVGblFpeExRVU55UW1oa0xFMUJRVTExUWl4aFFVRmhMRlZCUVZkUExFZEJUVEZETEVOQlEwb3NRMEZQUVN4WlFVRkJiV0lzUTBGQllXeFhMRWRCUTFRc1NVRkJTWFJETEVWQlFVa3NSVUZGVWl4TlFVRk5hMUFzUlVGQlNTeERRVU5PTlZJc1MwRkJUU3ROTEU5QlFVOHZTQ3hGUVVGSlJ5eFBRVUZQTEV0QlJUVkNMRkZCUVRKQ2FrUXNTVUZCZGtJeVdDeEZRVUZYYWtrc1JVRkJSVFZTTEUxQlEySXNUVUZCVFN4SlFVRkpiVThzVFVGQlRTeDFRa0ZCZVVKNVJDeEZRVUZGTlZJc1RVRkhMME1zUjBGQlNUUlNMRVZCUVVVMVVpeFBRVUZUTmxvc1JVRkJWMWNzWTBGRGRFSTFTU3hGUVVGRk5WSXNUMEZCVXpaYUxFVkJRVmRaTEZkQlFWa3NRMEZEYkVNc1RVRkJUV01zUlVGQlVUZFpMRVZCUVVrc1JVRkRiRUlzUzBGQk1rSXNUVUZCY0VKelF5eEZRVUZKUnl4VFFVRlRla01zU1VGQlkwRXNSMEZCUzNORExFVkJRVWxGTEZOQlF6TkRMRTFCUVUxelZ5eEZRVUZOZUZjc1JVRkJTV2RGTEZWQlFWVjFVeXhGUVVGUE4xa3NSMEZEYWtNc1IwRkJTVGhaTEVkQlFVOTZUeXhQUVVGUGVVOHNTVUZCTUVJc1RVRkJiRUo0Vnl4RlFVRkpSeXhQUVVGUGVrTXNSMEZEYWtNc1RVRkJUU3hKUVVGSmVVd3NUVUZCVFN4MVFrRkZjRUo1UkN4RlFVRkZLMGtzV1VGQll6Vk9MRTlCUVU5NVR5eEZRVU16UWl4RFFVVkJMRWRCUVVrc1RVRkJVWGhYTEVWQlFVbEhMRTlCUVU5NlF5eEZRVUZKTEVkQlFVa3NRMEZETTBJc1RVRkJUVFpaTEVWQlFWRTNXU3hGUVVGSkxFVkJRMnhDTEU5QlFWTkJMRWRCUlVRc1RVRkVUWE5ETEVWQlFVbEhMRTlCUVU5NlF5eEpRVWRxUWtFc1NVRkJUWE5ETEVWQlFVbEZMRk5CUjJ4Q01FMHNSVUZCUlhORkxFbEJRVTFzVWl4RlFVRkpaMFVzVlVGQlZYVlRMRVZCUVU4M1dTeEZRVU5xUXl4TlFVVkphMUFzUlVGQlJYTkZMRWxCUVUwc1NVRkhXaXhOUVVGTmRVWXNSVUZCVDNwWExFVkJRVWxITEU5QlFVOTZReXhGUVVGSkxFZEJRelZDTEVkQlFVa3NTMEZCVHl0WkxFZEJRVkV4VHl4UFFVRlBNRThzU1VGQlUwRXNSVUZCVFN4RFFVTnlReXhOUVVGTlJpeEZRVUZSTjFrc1JVRkJTU3hGUVVOc1FpeFBRVUZUUVN4SFFVRkhMRU5CUTFJc1RVRkJUVzFFTEVWQlFVbGlMRVZCUVVsSExFOUJRVTk2UXl4SFFVTnlRaXhIUVVGSkxFMUJRVkZ0UkN4SFFVRkxhMGdzVDBGQlQyeElMRWxCUVUxQkxFVkJRVWNzUjBGRE0wSnVSQ3hGUVVOR0xFdEJRMG9zUTBGRFFTeEhRVUZKUVN4SlFVRk5jME1zUlVGQlNVVXNUMEZEVml4TFFVTlNMRU5CUTBFd1RTeEZRVUZGT0Vrc1IwRkJTek5PTEU5QlFVOHZTQ3hGUVVGSlowVXNWVUZCVlhWVExFVkJRVTgzV1N4RlFVRkpMRWRCUXpORExFTkJSVUVzUjBGQlNYTkRMRVZCUVVsSExGTkJRVk42UXl4SFFVRkpMRU5CUTJwQ0xFMUJRVTFuV2l4RlFVRlZjR1lzUzBGQlMzRm1MRk5CUVZNelZ5eEZRVUZKTkZjc1QwRkJUMnhhTEVsQlEzcERMRWxCUVVseFVpeEZRVUZST0Vnc1pVRkJaV3BMTEVWQlFVVTFVaXhMUVVGTk1HSXNSMEZKTDBJc1RVRkJUU3hKUVVGSmRrNHNUVUZCVFN4dFFrRklhRUo1UkN4RlFVRkZiRk1zUzBGQlQyZGpMRU5CUzJwQ0xFTkJSVUVzVDBGRVFXNWxMRVZCUVUwc2JVSkJRVzlDZVVnc1JVRkJTelJOTEVkQlEzaENRU3hEUVVOWUxFTkJRMEVzVVVGQlFTdEtMRU5CUVZNelZ5eEhRVU5NTEVsQlEwa3NUMEZCVDNWRUxFdEJRVXRITEUxQlFVMHhSQ3hGUVVGTE1Va3NTMEZCU3pCbExGRkJRMmhETEVOQlEwRXNUVUZCVDI1WkxFZEJRMGdzVDBGQlR5eERRVU5ZTEVOQlEwb3NRMEZEUVN4eFFrRkJUMmRhTEVOQlFXVTNZaXhGUVVGTk1HSXNSMEZEZUVJc1QwRkJVVEZpTEVkQlEwb3NTMEZCU3paYUxFVkJRVmRwUXl4UlFVTmFMRTlCUVU4M1FpeEZRVUZUZVVJc1IwRkRjRUlzUzBGQlN6ZENMRVZCUVZkclF5eFhRVU5hTEZsQlFXMUNOMW9zU1VGQlduZGFMRVZCUTFnc1MwRkJTemRDTEVWQlFWZHRReXhqUVVOYUxFMUJRVEJDTEdsQ1FVRmFUaXhIUVVGM1FucENMRVZCUVZONVFpeEhRVU51UkN4TFFVRkxOMElzUlVGQlYwMHNUVUZEYUVJc1MwRkJTMDRzUlVGQlYxY3NZVUZEV2l4UFFVRlJka01zVFVGQlRXZEZMRkZCUVZGUUxFdEJRMHNzYVVKQlFXWkJMRVZCUVZFc1NVRkRWeXhwUWtGQlprRXNSVUZCVVN4TFFVTTJRaXhKUVVGNlF6RkNMRVZCUVdkQ2FsSXNVVUZCVVRKVExFVkJRVkVzUzBGRGFFUXNTMEZCU3pkQ0xFVkJRVmRQTEVsQlEyaENMRXRCUVV0UUxFVkJRVmRaTEZkQlExb3NUMEZCVDNoRExFMUJRVTFuUlN4UlFVRlJVQ3hIUVVWcVF5eERRVWxCTEU5QlFVRXpWQ3hIUVVOUmVrd3NTMEZCU3pKbExHZENRVU5NTTJVc1MwRkJTekpsTEdOQlFXTnBRaXg1UWtGRGJrSTFaaXhMUVVGTE1tVXNZMEZCWjBJc1MwRkZOMElzUlVGRlNuUmxMRVZCUVZGdldDeFJRVUZWUVN4RlFWTnNRaXhOUVVGTmNVZ3NSVUZEUml4WFFVRkJjbVFzUTBGQldXZERMRWRCUTFKNlJDeExRVUZMZVVRc1QwRkJVMEVzUlVGRFpIcEVMRXRCUVV0NVpTeFJRVUZWTEVkQlEyWjZaU3hMUVVGTE5tWXNWVUZCV1hCakxFTkJRM0pDTEVOQlUwRXNZMEZCUVhWaUxFTkJRV1ZqTEVkQlJWZ3NSMEZFUVRsbUxFdEJRVXQ1WlN4UlFVRlJhbEFzUzBGQlMzTlJMRWRCUTJRNVppeExRVUZMZVdVc1VVRkJVVGRXTEZOQlFWYzFTU3hMUVVGTE5tWXNWVUZCVlhoQ0xGbEJRV0VzUTBGRmNFUXNUVUZCVFRWaExFZEJRVk1zUlVGQlNTdGFMRVZCUVZsMVF5eHRRa0ZCYlVJdlppeExRVUZMTm1Zc1ZVRkJWemRtTEV0QlFVdDVaU3hUUVVWMlJTeFBRVVJCZW1Vc1MwRkJTelJtTEhsQ1FVTkZibU1zUTBGRFdDeERRVU5CTEU5QlFVOHNTVUZEV0N4RFFVbEJMSE5DUVVGQmJXTXNSMEZEU1RWbUxFdEJRVXMyWml4VlFVRlpMRXRCUTJwQ04yWXNTMEZCUzNsbExGRkJRVlVzUlVGRGJrSXNSU3h2UTBNNVZFb3NTVUZCU1RGbExFVkJRVzFDUXl4TlFVRlJRU3hMUVVGTFJDeHBRa0ZCYjBJc1UwRkJWVVVzUjBGRE9VUXNUMEZCVVVFc1IwRkJUMEVzUlVGQlNVTXNWMEZCWTBRc1JVRkJUU3hEUVVGRkxGRkJRVmRCTEVWQlEzaEVMRVZCUTBGRkxFOUJRVTlETEdWQlFXVkRMRVZCUVZNc1lVRkJZeXhEUVVGRlF5eFBRVUZQTEVsQlEzUkVSQ3hGUVVGUmJVSXNWVUZCV1c1Q0xFVkJRVkV5Wml4dlFrRkJhVUlzUlVGRE4wTXNUVUZCVFhCbUxFVkJRWEZDTEVWQlFWRXNUVUZETjBKRkxFVkJRWE5DTEVWQlFWRXNUVUZET1VKRExFVkJRVmtzUlVGQlVTeE5RVU53UWt3c1JVRkJWVmdzUlVGQlowSXNSVUZCVVN4UFFVTnNRMnRuUWl4RlFVRmxMRVZCUVZFc1RVRkRka0pvWml4SFFVRlJMRVZCUVVsUUxFVkJRVkZSTEZOQlFWTXNPRUpCUTI1RExFMUJRVTA0WlN4VlFVRjFRbTVQTEUxQlEzcENMRmRCUVVGd1VTeERRVUZaTkZrc1JVRkJVWGhYTEVWQlFXRjVRaXhIUVVNM1FqTkVMRTFCUVUwd1dTeEhRVU5PY21Fc1MwRkJTelpFTEZsQlFXTkJMRVZCUTI1Q04wUXNTMEZCUzNOR0xGRkJRVlZCTEVWQlEyWjBSaXhMUVVGTE1FUXNTMEZCVHl4blFrRkRhRUlzUlVGRlNuSkVMRVZCUVZFeVppeGxRVUZwUWtFc1JVRkRla0lzVFVGQlRYaGxMRlZCUVd0Q1ZpeEZRVUZ2UWpSRkxGRkJUM2hETEZkQlFVRnFSU3hEUVVGWlF5eEhRVU5TUXl4UlFVTkJNMElzUzBGQlN6aERMRlZCUVZjc1IwRkRhRUlzUlVGQlNTOUNMRVZCUVZVMFJTeDFRa0ZCZFVJelJpeExRVUZOTUVJc1IwRkRNME14UWl4TFFVRkxNRUlzUzBGQlQwRXNSVUZEV2pGQ0xFdEJRVXQzUlN4TlFVRlJPVU1zUlVGQlN6aERMRTFCUTJ4Q2VFVXNTMEZCUzNORUxFOUJRVk0xUWl4RlFVRkxORUlzVFVGRGRrSXNRMEZWUVN4UFFVRkJhVU1zUTBGQlVUaFZMRVZCUVZGNFZ5eEZRVUZoZVVJc1IwRkZla0lzVDBGRVFUTkVMRTFCUVUxMVFpeGhRVUZoTEZGQlFWTXNTVUZCU1RoakxFVkJRV1V6Uml4RlFVRlJlRmNzUlVGQllYbENMRWxCUXpkRWRFWXNTVUZEV0N4RFFVbEJMRWxCUVVGcFJ5eEhRVWRKTEU5QlJrRnFSeXhMUVVGTE5rTXNWMEZCWVN4VlFVTnNRamRETEV0QlFVdDVReXhUUVVORmVrTXNTVUZEV0N4RFFVbEJMRXRCUVVGblJTeEhRVXRKTEUxQlNuZENMRmxCUVhCQ2FFVXNTMEZCU3paRExGbEJRV2RFTEZOQlFYQkNOME1zUzBGQlN6WkRMR0ZCUTNSRE4wTXNTMEZCU3l0RUxGVkJRMHd2UkN4TFFVRkxORVFzVjBGRlJqVkVMRWxCUTFnc1EwRk5RU3hKUVVGQlowZ3NRMEZCU3psRExFZEJRM1ZDTEZOQlFYQkNiRVVzUzBGQlN6WkRMRmRCUTB3M1F5eExRVUZMYVVVc1RVRkJUVU1zUjBGSldHcEVMRVZCUVUwc05FTkJSV1FzUTBGTlFTeE5RVUZCTUVNc1IwRkRTVE5FTEV0QlFVczJReXhYUVVGaExFOUJRMnhDTjBNc1MwRkJTemhETEZWQlFWY3NSVUZEYUVKdVFpeE5RVUZOZFVJc1lVRkJZU3hQUVVOMlFpeERRVTlCTEUxQlFVRkRMRU5CUVU5RExFZEJRMGdzVFVGQlRVc3NSMEZCVXl4RlFVRkpOME1zUlVGQmJVSnJVeXhqUVVGak1WQXNSVUZCVFhCRUxFdEJRVXR6UkN4UFFVRlBReXhaUVVOMFJYWkVMRXRCUVVzNFJDeFRRVUZUVEN4RlFVTnNRaXhEUVUxQkxGRkJRVUZMTEVOQlFWTk1MRWRCUTB3NVFpeE5RVUZOZFVJc1lVRkJZU3hUUVVGVlR5eEZRVU5xUXl4RFFVMUJMRTlCUVVGSExFTkJRVkZ6WXl4SFFVTktiR2RDTEV0QlFVczJReXhYUVVGaExGTkJRMnhDYkVJc1RVRkJUWFZDTEdGQlFXRXNVVUZCVTJka0xFVkJRMmhETEVOQlRVRXNTMEZCUVhaa0xFTkJRVTFETEVkQlFWY3NRMEZEYWtJc1UwRkJRV3RETEVOQlFWVlNMRVZCUVZGRkxFVkJRVkVzUTBGQlF5eEhRVU4yUWl4UFFVRlJSaXhGUVVOS0xFMUJRMEYwUlN4TFFVRkxiV2RDTEZsQlEweHVaMElzUzBGQlMyOW5RaXhSUVVOTWNHZENMRXRCUVVzd1FpeExRVUZMZDB3c1MwRkRWbXhPTEV0QlFVdHhaMElzVDBGQlR6ZGlMRVZCUTNCQ0xFTkJRMEVzVTBGQlFUSmlMRWRCUTBrc1RVRkJUV3BsTEVWQlFWZHNReXhMUVVGTE1FSXNTMEZCUzFFc1UwRkRNMElzVDBGQmEwTXNTVUZCTTBKQkxFVkJRVk4xU3l4UlFVRlJMRXRCUVdOMlN5eEZRVUZYTEVsQlFVMUJMRVZCUVZjc1IwRkRkRVVzUTBGRFFTeExRVUZCYTJVc1IwRkRTU3hQUVVGSmNHZENMRXRCUVVzd1FpeExRVUZMVFN4UFFVTlNhRU1zUzBGQlN6QkNMRXRCUVVzMlF5eFJRVUZWYTAwc1QwRkJNRUlzVFVGQmJrSjZVU3hMUVVGTE1FSXNTMEZCUzAwc1VVRkRha05vUXl4TFFVRkxNRUlzUzBGQlN6WkRMRkZCUVhGRExFdEJRVE5DYTAwc1QwRkJUM3BSTEV0QlFVc3dRaXhMUVVGTFRTeFBRVU53UXl4SlFVRk5hRU1zUzBGQlN6QkNMRXRCUVV0TkxFdEJSMmhDTEVWQlJXWXNRMEZEUVN4TlFVRkJjV1VzUTBGQlR6ZGlMRWRCUTBnc1RVRkJUVGhpTEVkQlFXVXNSVUZCU1V3c1JVRkJZV3BaTEZGQlFWRjRSQ3hIUVVNNVF5eFBRVUZQT0dJc1JVRkJZVEZZTEU5QlFWTXNTVUZCVFRCWUxFVkJRV1VzUlVGRGRFUXNSVUZGU21wblFpeEZRVUZSYlVJc1ZVRkJXVUVzUXl3NFFrTjBTbkJDY2tJc1QwRkJUME1zWlVGQlpVTXNSVUZCVXl4aFFVRmpMRU5CUVVWRExFOUJRVThzU1VGRGRFUkVMRVZCUVZFd1ppeHJRa0ZCYjBJeFppeEZRVUZSYTJVc2RVSkJRVzlDTEVWQlEzaEVMRTFCUVUxa0xFVkJRV2xDTEVWQlFWRXNUVUZwUWk5Q0xGTkJRVk00UXl4RlFVRnRRbTVrTEVWQlFVMXhZaXhIUVVNNVFpeEpRVUZMY21Jc1JVRkRSQ3hQUVVGUFFTeEZRVU5ZTEVsQlFVa3NSVUZCU1hGaExFVkJRV1Z6UWl4VlFVRlZNMklzUjBGQlR5eERRVU53UXl4TlFVRk5iMlFzUlVGQll5eERRVUZGUXl4alFVRmpMRVZCUVUxdVdTeEpRVUZMYlZjc1JVRkJVVGRXTEZGQlJYWkVMRTlCUkVFMlZpeEZRVUZSYWxBc1MwRkJTM0JOTEVkQlEwNXZaQ3hEUVVOWUxFTkJRMHNzUjBGQlNUZEZMRTFCUVUxblJTeFJRVUZSZG1Nc1IwRkJUeXhEUVVNeFFpeE5RVUZOYzJRc1JVRkJWU3hKUVVGSkwwVXNUVUZCVFhaWkxFVkJRVXQzUml4UlFVTXZRaXhKUVVGTExFbEJRVWw0UXl4RlFVRkpMRVZCUVVkQkxFVkJRVWxvUkN4RlFVRkxkMFlzVDBGQlVYaERMRWxCUXpkQ2MyRXNSVUZCVVhSaExFZEJRVXR0WVN4RlFVRnRRbTVrTEVWQlFVdG5SQ3hIUVVGSmNWa3NSMEZGTjBNc1QwRkJUMmxETEVOQlExZ3NRMEZEU3l4SFFVRnZRaXhwUWtGQlZIUmtMRXRCUVhWQ1FTeGhRVUZuUWpKR0xFMUJRVThzUTBGRE1VUXNUVUZCVFRKWUxFVkJRVlVzUTBGQlF5eEZRVU5xUWl4SlFVRkxMRTFCUVUxdVR5eExRVUZQYmxBc1JVRkRWbXBFTEU5QlFVOW5WU3hWUVVGVk9VNHNaVUZCWlRKTExFdEJRVXMxVGl4RlFVRk5iVkFzUzBGRE0wTnRUeXhGUVVGUmJrOHNSMEZCVDJkUExFVkJRVzFDYm1Rc1JVRkJTMjFRTEVkQlFVMXJUU3hKUVVkeVJDeFBRVUZQYVVNc1EwRkRXQ3hEUVVOQkxFOUJRVTkwWkN4RFFVTllMRU5CWlVFc1UwRkJVM1ZrTEVWQlFXMUNkbVFzUlVGQlRYRmlMRWRCUXpsQ0xFbEJRVXR5WWl4RlFVTkVMRTlCUVU5QkxFVkJRMWdzUjBGQlNVRXNTVUZCT0VJc1NVRkJkRUpCTEVWQlFVdHhaQ3hoUVVGMVFpeERRVWx3UXl4SFFVaDVReXhwUWtGQlluSmtMRVZCUVV0clJpeExRVU0zUW14R0xFVkJRVXRyUml4TFFVRlBMRWRCUTFwc1JpeEZRVUZMYTBZc1NVRkJUVzFYTEVWQlFWRTNWaXhQUVVWdVFpeFBRVUZQTmxZc1JVRkJVWEppTEVWQlFVdHJSaXhMUVVkd1FpeE5RVUZOTEVsQlFVbDFTaXhOUVVGTkxITkNRVVY0UWl4RFFVTkxMRWRCUVVrNFNpeE5RVUZOWjBVc1VVRkJVWFpqTEVkQlEyNUNMRWxCUVVzc1NVRkJTV2RFTEVWQlFVa3NSVUZCUjBFc1JVRkJTV2hFTEVWQlFVdDNSaXhQUVVGUmVFTXNTVUZETjBKb1JDeEZRVUZMWjBRc1IwRkJTM1ZoTEVWQlFXMUNkbVFzUlVGQlMyZEVMRWRCUVVseFdTeFJRVWQ2UXl4SFFVRnZRaXhwUWtGQlZISmlMRVZCUTFvc1NVRkJTeXhOUVVGTmJWQXNTMEZCVDI1UUxFVkJRMVpxUkN4UFFVRlBaMVVzVlVGQlZUbE9MR1ZCUVdVeVN5eExRVUZMTlU0c1JVRkJUVzFRTEV0QlF6TkRibEFzUlVGQlMyMVFMRWRCUVU5dlR5eEZRVUZ0UW5aa0xFVkJRVXR0VUN4SFFVRk5hMDBzU1VGSmRFUXNUMEZCVDNKaUxFTkJRMWdzUTBGd1JVRXZReXhGUVVGUmEyVXNhMEpCVWxJc1UwRkJNa0k1WVN4SFFVTjJRaXhOUVVGTloySXNSVUZCVlN4SFFVTldiVU1zUlVGQllXNWtMRVZCUVU5TUxFdEJRM0JDYjJJc1JVRkJUeTloTEVWQlIySXNUMEZHUVN0aExFVkJRVXR3WWl4TFFVRlBiV1FzUlVGQmJVSkxMRVZCUVZsdVF5eEhRVU16UTBRc1JVRkJTMGdzV1VGQlkwa3NSVUZCVVRkV0xFOUJRM0JDTEVOQlFVVnVSaXhQUVVGUksyRXNSVUZCVFVNc1VVRkJVMEVzUlVGRGNFTXNSVUY1UTBGd1pTeEZRVUZSTUdZc2EwSkJURklzVTBGQk1rSjBZeXhGUVVGUloySXNSMEZITDBJc1QwRkdRV2hpTEVWQlFVOU1MRXRCUVU5MVpDeEZRVUZ0UW14a0xFVkJRVTlNTEV0QlFVMXhZaXhWUVVOMlEyaGlMRVZCUVU4MFlTeFpRVU5RTldFc1EwRkRXQ3hETERoQ1EzcEVRWFJFTEU5QlFVOURMR1ZCUVdWRExFVkJRVk1zWVVGQll5eERRVUZGUXl4UFFVRlBMRWxCUTNSRVJDeEZRVUZSYzFvc1UwRkJWM1JhTEVWQlFWRXJUQ3hOUVVGUkwwd3NSVUZCVVhOR0xITkNRVUYzUW5SR0xFVkJRVkYzWjBJc1YwRkJZWGhuUWl4RlFVRlJNbVlzWlVGQmFVSXpaaXhGUVVGUmJVSXNWVUZCV1c1Q0xFVkJRVkV3UWl4VFFVRlhNVUlzUlVGQlVYTlpMRmxCUVZNc1JVRkRla3NzVFVGQlRYaERMRVZCUVdNc1JVRkJVU3hOUVVNMVFtaFhMRTlCUVU5RExHVkJRV1ZETEVWQlFWTXNVMEZCVlN4RFFVRkZLMUVzV1VGQldTeEZRVUZOUlN4SlFVRkxMRmRCUVdNc1QwRkJUelpGTEVWQlFWbDNReXhOUVVGUkxFbEJRek5IZEZrc1JVRkJVVEJDTEZOQlFWZHZWU3hGUVVGWmQwTXNUMEZCVHpWWExGTkJRM1JETEVsQlFVbDBRaXhGUVVGcFFpeEZRVUZSTEUxQlF6ZENUaXhQUVVGUFF5eGxRVUZsUXl4RlFVRlRMRmxCUVdFc1EwRkJSU3RSTEZsQlFWa3NSVUZCVFVVc1NVRkJTeXhYUVVGakxFOUJRVTgzVVN4RlFVRmxaU3hUUVVGWExFbEJRM0JJY2tJc1QwRkJUME1zWlVGQlpVTXNSVUZCVXl4cFFrRkJhMElzUTBGQlJTdFJMRmxCUVZrc1JVRkJUVVVzU1VGQlN5eFhRVUZqTEU5QlFVODNVU3hGUVVGbGRXWXNZMEZCWjBJc1NVRkRPVWdzU1VGQlNXTXNSVUZCWVN4RlFVRlJMRTFCUTNwQ00yZENMRTlCUVU5RExHVkJRV1ZETEVWQlFWTXNZVUZCWXl4RFFVRkZLMUVzV1VGQldTeEZRVUZOUlN4SlFVRkxMRmRCUVdNc1QwRkJUM2RRTEVWQlFWZEVMRlZCUVZrc1NVRkRiRWdzU1VGQlNUbG1MRVZCUVZrc1JVRkJVU3hOUVVONFFsb3NUMEZCVDBNc1pVRkJaVU1zUlVGQlV5eDNRa0ZCZVVJc1EwRkJSU3RSTEZsQlFWa3NSVUZCVFVVc1NVRkJTeXhYUVVGakxFOUJRVTkyVVN4RlFVRlZORVVzY1VKQlFYVkNMRWxCUTNaSkxFbEJRVWx2WWl4RlFVRm5RaXhGUVVGUkxFMUJRelZDTldkQ0xFOUJRVTlETEdWQlFXVkRMRVZCUVZNc1VVRkJVeXhEUVVGRksxRXNXVUZCV1N4RlFVRk5SU3hKUVVGTExGZEJRV01zVDBGQlQzbFFMRVZCUVdNelZTeExRVUZQTEVsQlF6TkhMRWxCUVVreVVDeEZRVUUyUWl4RlFVRlJMRTFCUTNwRE5XSXNUMEZCVDBNc1pVRkJaVU1zUlVGQlV5eFhRVUZaTEVOQlFVVXJVU3haUVVGWkxFVkJRVTFGTEVsQlFVc3NWMEZCWXl4UFFVRlBlVXNzUlVGQk1rSndReXhSUVVGVkxFY3NiME5EWmpsSUxFbEJRVWsxV2l4RlFVRnRRa01zVFVGQlVVRXNTMEZCUzBRc2FVSkJRVzlDTEZOQlFWVkZMRWRCUXpsRUxFOUJRVkZCTEVkQlFVOUJMRVZCUVVsRExGZEJRV05FTEVWQlFVMHNRMEZCUlN4UlFVRlhRU3hGUVVONFJDeEZRVU5CUlN4UFFVRlBReXhsUVVGbFF5eEZRVUZUTEdGQlFXTXNRMEZCUlVNc1QwRkJUeXhKUVVOMFJFUXNSVUZCVVc5T0xGVkJRVThzUlVGRFppeE5RVUZOUXl4RlFVRlBNMDRzUlVGQlowSXNSVUZCVVN4UFFVTXZRbWxvUWl4RlFVRmxMRVZCUVZFc1RVRTJRamRDTTJkQ0xFVkJRVUVzVVVFMVFrRXNUVUZEU1N4dlFrRkJUelJuUWl4RFFVRmpjbE1zUjBGRGFrSXNUVUZCYlVJc1MwRkJaa0VzUlVGRFQyeENMRVZCUVV0NFRTeFJRVUZSZFU4c1owSkJRM2hDWWl4RlFVRmhRU3hGUVVGWGMxTXNVMEZCVTNoVUxFVkJRVXQ0VFN4UlFVRlJkVThzWjBKQlFXdENZaXhGUVVGaExFZEJRVWRCTEVsQlFXRnNRaXhGUVVGTGVFMHNVVUZCVVhWUExHdENRVU40UmpCU0xGZEJRVmQ2VkN4RlFVRkxlRTBzVVVGQlVYVlBMR2RDUVVGclFtSXNSVUZCWVN4SFFVRkhiRUlzUlVGQlMzaE5MRkZCUVZGMVR5eHBRa0ZCYVVKaUxFZEJRemxITEVOQlEwRXNNRUpCUVU5M1V5eERRVUZ2UWtNc1IwRkRka0lzU1VGQlNVTXNSVUZCYjBJc1EwRkJReXhGUVVONlFtNW9RaXhQUVVGUGJWTXNTMEZCU3l0UExFZEJRVmszWkN4UlFVRlRLMDhzU1VGRE4wSXNUVUZCVFdkUUxFVkJRV2RDYUZBc1JVRkRhRUpxVXl4RlFVRlJiVkVzVDBGQlR6UlJMRVZCUVZkRkxFbEJRelZDYW1oQ0xFbEJRMEZuYUVJc1JVRkJhMEpETEVkQlFXbENhbWhDTEV0QlJ6TkRMRTFCUVUxcmFFSXNSVUZCYlVKMlZpeExRVUZMUnl4TlFVRk5TQ3hMUVVGTFF5eFZRVUZWYjFZc1NVRkRia1FzVDBGQlR5eEpRVUZKUnl4blFrRkJaMEpFTEVkQlFXdENOVkFzVlVGRGFrUXNRMEZEUVN4WFFVRkJibEVzUTBGQldUSk5MRVZCUVZNdlRpeEZRVUZSYjA0c1RVRk5la0lzVDBGTVFYcE9MRXRCUVVzd2FFSXNWVUZCVnl4RlFVTm9RakZvUWl4TFFVRkxLMElzVTBGQlZ5eEhRVU5vUWk5Q0xFdEJRVXMyVFN4TFFVRlBMRWRCUTFvM1RTeExRVUZMTkU4c1YwRkJZV3hDTEVWQlFVdDRUU3hSUVVGUmRVOHNaVUZETDBKNlVDeExRVUZMY1doQ0xGZEJRV0ZNTEVWQlFXRjJWQ3hMUVVONFFuUk9MRTlCUVU4MlJTeFBRVUZQYUVZc1MwRkJUVzlQTEVWQlF5OUNMRWRCUjBvdlRpeEZRVUZSYjA0c1MwRkJUeXhEUVVOWWFWVXNWVUZCVlN4RlFVTldNMllzVTBGQlZTeEhRVU5XT0Vzc1MwRkJUU3hIUVVOT0swSXNWMEZCV1N4SFFVTmFlVk1zVjBGQldTeERRVUZETEVVc09FSkRla05xUW14b1FpeFBRVUZQUXl4bFFVRmxReXhGUVVGVExHRkJRV01zUTBGQlJVTXNUMEZCVHl4SlFVTjBSRVFzUlVGQlVYVlZMRmRCUVdGMlZTeEZRVUZSYzBZc2MwSkJRWGRDZEVZc1JVRkJVVEJHTEZWQlFVOHNSVUZEY0VVc1RVRkJUUzlGTEVWQlFXdENMRVZCUVZFc1RVRlRhRU5ZTEVWQlFWRXdSaXhMUVZKU0xGTkJRV05yU0N4TFFVRlJNRlVzUjBGRGJFSXNUMEZCVDBFc1JVRkJTME1zVDBGQlR5eERRVUZEUXl4RlFVRkxhRTBzUzBGRGFrSTFTU3hGUVVGSk5VY3NaVUZCWlhkUUxFdEJRMjVDWjAwc1JVRkJTV2hOTEVkQlFVczFTU3hGUVVGSk5Fa3NTVUZGVm1kTkxFZEJRMUlzUTBGQlF5eEZRVU5TTEVWQlIwRXNUVUZCVFVNc1JVRkJjVUk1WjBJc1JVRkJaMEk0Unl4bFFVRmxhV0VzVjBGRGNFUkRMRVZCUVhWQ2FHaENMRVZCUVdkQ09FY3NaVUZCWlcxaExHRkJWelZFTldoQ0xFVkJRVkZ6Uml4elFrRldVaXhUUVVFclFuTklMRVZCUVV0MlRDeEhRVU0xUWtFc1JVRkJTM2RuUWl4cFFrRkRUR3BXTEVWQlFVbHNSeXhoUVVGbEsyRXNSVUZCYlVKMFl5eExRVUZMZUVVc1JVRkJaMEk0Unl4blFrRkRNMFJ0Uml4RlFVRkphMDBzWlVGQmFVSTJTU3hGUVVGeFFuaGpMRXRCUVV0NFJTeEZRVUZuUWpoSExHdENRVWN2UkcxR0xFVkJRVWxzUnl4aFFVRmxMMFlzUlVGQlowSTRSeXhsUVVGbGFXRXNWMEZCVjNaakxFdEJRVXQ0UlN4RlFVRm5RamhITEdkQ1FVTnNSbTFHTEVWQlFVbHJUU3hsUVVGcFFtNVpMRVZCUVdkQ09FY3NaVUZCWlcxaExHRkJRV0Y2WXl4TFFVRkxlRVVzUlVGQlowSTRSeXhuUWtGRk9VWXNSVUZaUVhwSUxFVkJRVkYxVlN4WFFWQlNMRk5CUVc5Q00wZ3NSMEZEYUVJc1RVRkJiVUlzYVVKQlFWSkJMRVZCVDJZc1UwRkJiMEoyUlN4SFFVTm9RaXhKUVVGSllTeEZRVUZKTEVWQlFVZFlMRVZCUVZNc1JVRkRjRUlzU1VGQlN5eEpRVUZKZUVNc1JVRkJTU3hGUVVGSEsySXNSVUZCU1hwYUxFVkJRVWxGTEU5QlFWRjRReXhGUVVGSksySXNSVUZCUnk5aUxFbEJRMjVEYlVRc1JVRkJTV0lzUlVGQlNTdEtMRmRCUVZkeVRTeEhRVU5tYlVRc1JVRkJTU3hKUVVOS1dDeEhRVUZWTEVWQlJVeFhMRVZCUVVrc1MwRkRWRmdzUjBGQlZTeEZRVVZNVnl4RlFVRkpMRTlCUVZWQkxFZEJRVXNzVFVGRGVFSllMRWRCUVZVc1IwRkhWbmhETEVsQlEwRjNReXhIUVVGVkxFZEJSMnhDTEU5QlFVOUJMRU5CUTFnc1EwRjZRbVYzV2l4RFFVRlhibFlzUjBGSFpucEZMRXRCUVVzMldpeExRVkJSTEUxQlQwWndWaXhGUVVGSk1rZ3NXVUZCWXpOSUxFVkJRVWx4Vml4TlFVTTFReXhETERSQ1EyNURRVzVwUWl4UFFVRlBReXhsUVVGbFF5eEZRVUZUTEdGQlFXTXNRMEZCUlVNc1QwRkJUeXhKUVRKRmRFUkVMRVZCUVVFc1VVRXhSV1VzUTBGRFdHdHBRaXhUUVVGVkxGRkJRMVpETEZkQlFWa3NZVUZEV2tNc1ZVRkJWeXhaUVVOWVF5eFpRVUZoTEdOQlEySkRMR3RDUVVGdFFpeFhRVU51UWtNc2MwSkJRWFZDTEdWQlEzWkNReXh0UWtGQmIwSXNXVUZEY0VKRExHRkJRV01zYlVKQlEyUkRMRTFCUVU4c1EwRkRTRU1zUzBGQlRTeEhRVU5PUXl4TlFVRlBMRWxCUTFCRExHdENRVUZ0UWl4SlFVTnVRa01zWjBKQlFXbENMRXRCUTJwQ1F5eDFRa0ZCZDBJc1MwRkRlRUpETEdsQ1FVRnJRaXhMUVVOc1FrTXNiVUpCUVc5Q0xFdEJRM0JDUXl4TlFVRlBMRXRCUTFCRExFMUJRVThzVFVGRFVFTXNUVUZCVHl4TlFVTlFReXhSUVVGVExFOUJSV0pETEZsQlFXRXNRMEZEVkVNc1NVRkJTeXhOUVVOTVF5eEpRVUZMTEUxQlEweERMRXRCUVUwc1QwRkRUa01zVDBGQlVTeFRRVU5TUXl4UFFVRlJMRk5CUTFKRExFOUJRVkVzVTBGRFVrTXNVVUZCVXl4VlFVTlVReXhMUVVGTkxFOUJRMDVETEVsQlFVc3NUVUZEVEVNc1MwRkJUU3hQUVVOT1F5eFBRVUZSTEZOQlExSkRMRTFCUVU4c1VVRkRVRU1zUzBGQlRTeFBRVU5PUXl4SlFVRkxMRTFCUTB4RExGZEJRVmtzWVVGRFdrTXNTMEZCVFN4UFFVTk9ReXhaUVVGaExHTkJRMkpETEV0QlFVMHNVVUZGVmtNc1ZVRkJWeXhEUVVOUVpDeFBRVUZSTEZOQlExSkVMRTlCUVZFc1UwRkRVbWRDTEZWQlFWY3NXVUZEV0d4Q0xFbEJRVXNzVFVGRFRGVXNUVUZCVHl4UlFVTlFSeXhYUVVGWkxHRkJRMXBETEV0QlFVMHNVVUZGVmtzc1NVRkJTeXhEUVVORVF5eFJRVUZUTEhWQ1FVTlVReXhUUVVGVkxEUkNRVU5XUXl4VFFVRlZMR3REUVVOV1F5eFZRVUZYTEdsRVFVTllReXhuUWtGQmFVSXNjVWRCUlhKQ1F5eGpRVUZsTEd0Q1FVTm1ReXhYUVVGWkxHVkJRMXBETEZsQlFXRXNaMEpCUTJKRExHRkJRV01zYzBKQlEyUkRMRmxCUVdFc1pVRkRZa01zVjBGQldTeERRVU5TUXl4UlFVRlRMRlZCUTFSRExHdENRVUZ0UWl4dlFrRkRia0pETEdOQlFXVXNaMEpCUTJaRExGbEJRV0VzWTBGRFlrTXNWMEZCV1N4aFFVTmFReXhYUVVGWkxHRkJRMXBETEZWQlFWY3NXVUZEV0VNc1VVRkJVeXhYTEZkRGVFVnFRaXhKUVU5SlF5eEZRVU5CUXl4RlFWSkJMMklzUlVGQlZXeENMRVZCUVU4dlNTeFJRVUZWTEVOQlFVTXNSVUZWYUVNc1UwRkJVMmx0UWl4SlFVTk1MRTFCUVUwc1NVRkJTWHBWTEUxQlFVMHNhME5CUTNCQ0xFTkJRMEVzVTBGQlV6QlZMRWxCUTB3c1RVRkJUU3hKUVVGSk1WVXNUVUZCVFN4dlEwRkRjRUlzUTBGeFFrRXNVMEZCVXpKVkxFVkJRVmRETEVkQlEyaENMRWRCUVVsTUxFbEJRWEZDY2tVc1YwRkZja0lzVDBGQlQwRXNWMEZCVnpCRkxFVkJRVXNzUjBGSE0wSXNTVUZCUzB3c1NVRkJjVUpGTEVsQlFYRkNSaXhKUVVGeFFuSkZMRmRCUldoRkxFOUJSRUZ4UlN4RlFVRnRRbkpGTEZkQlExcEJMRmRCUVZjd1JTeEZRVUZMTEVkQlJUTkNMRWxCUlVrc1QwRkJUMHdzUlVGQmFVSkxMRVZCUVVzc1JVRkRha01zUTBGQlJTeE5RVUZOYkdkQ0xFZEJRMG9zU1VGRlNTeFBRVUZQTm1Zc1JVRkJhVUp3Vml4TFFVRkxMRXRCUVUxNVZpeEZRVUZMTEVWQlF6VkRMRU5CUVVVc1RVRkJUV3huUWl4SFFVVktMRTlCUVU4MlppeEZRVUZwUW5CV0xFdEJRVXRvVWl4TFFVRk5lVzFDTEVWQlFVc3NSVUZETlVNc1EwRkRTaXhEUVVkS0xFVkJOVU5ETEZkQlEwY3NTVUZGVVV3c1JVRkVjMElzYlVKQlFXWnlSU3hYUVVOWlFTeFhRVVZCZFVVc1EwRkZNMElzUTBGQlJTeE5RVUZQTDJZc1IwRkRURFptTEVWQlFXMUNSU3hEUVVOMlFpeERRVU5CTEVsQlJWRkVMRVZCUkhkQ0xHMUNRVUZxUW5CRkxHRkJRMk5CTEdGQlJVRnpSU3hEUVVVM1FpeERRVUZGTEUxQlFVOW9aMElzUjBGRFREaG1MRVZCUVhGQ1JTeERRVU42UWl4RFFVTktMRU5CYmtKQkxFZEJkMFZCTEVsQlJVbEhMRVZCUmtGRExFVkJRVkVzUjBGRFVrTXNSMEZCVnl4RlFVVllReXhIUVVGakxFVkJSV3hDTEZOQlFWTkRMRWxCUTBGR0xFZEJRV0ZHTEVsQlIyeENSU3hIUVVGWExFVkJRMUJHTEVWQlFXRTVaQ3hQUVVOaUsyUXNSVUZCVVVRc1JVRkJZV2hTTEU5QlFVOXBVaXhIUVVVMVFrVXNSMEZCWXl4RlFVVmtSaXhGUVVGTkwyUXNVVUZEVG0xbExFbEJSVklzUTBGRlFTeFRRVUZUUVN4SlFVTk1MRWxCUVVsSUxFVkJRVW9zUTBGSFFTeEpRVUZKYkdkQ0xFVkJRVlU0Wml4RlFVRlhUU3hIUVVONlFrWXNSMEZCVnl4RlFVZFlMRWxCUkVFc1NVRkJTWHBWTEVWQlFVMTNWU3hGUVVGTkwyUXNUMEZEVm5WS0xFZEJRVXNzUTBGSFVDeEpRVVpCZFZVc1JVRkJaVU1zUlVGRFprRXNSVUZCVVN4TFFVTkRSU3hGUVVGaE1WVXNSMEZEWkhWVkxFZEJRMEZCTEVWQlFXRkhMRWRCUVZsSExFMUJSMnBEU0N4SFFVRmpMRVZCUTJReFZTeEZRVUZOZDFVc1JVRkJUUzlrTEUxQlEyaENMRU5CUTBFNFpDeEZRVUZsTEV0QlEyWkZMRWRCUVZjc1JVRnVSV1lzVTBGQmVVSkxMRWRCUTNKQ0xFZEJRVWxhTEVsQlFYVkNjRVVzWVVGRmRrSXNUMEZCVDBFc1lVRkJZV2RHTEVkQlIzaENMRWxCUVV0YUxFbEJRWFZDUlN4SlFVRjNRa1lzU1VGQmRVSndSU3hoUVVWMlJTeFBRVVJCYjBVc1JVRkJjVUp3UlN4aFFVTmtRU3hoUVVGaFowWXNSMEZGZUVJc1NVRkZTU3hQUVVGUFdpeEZRVUZ0UWxrc1JVRkRPVUlzUTBGQlJTeE5RVUZQTVdkQ0xFZEJRMHdzU1VGRlNTeFBRVUZQT0dZc1JVRkJiVUp5Vml4TFFVRkxMRXRCUVUxcFZ5eEZRVU42UXl4RFFVRkZMRTFCUVU4eFowSXNSMEZIVEN4UFFVRlBPR1lzUlVGQmJVSnlWaXhMUVVGTGFGSXNTMEZCVFdsdVFpeEZRVU42UXl4RFFVTktMRU5CU1Vvc1EwRXdRMGxETEVOQlFXZENlR2RDTEVWQmJFSm9RaXhEUVcxQ1NpeERRV2RDUVN4VFFVRlRlV2RDTEVWQlFVdFdMRVZCUVV0WExFZEJRMlp3YmtJc1MwRkJTM2x0UWl4SlFVRk5RU3hGUVVOWWVtMUNMRXRCUVV0dmJrSXNUVUZCVVVFc1EwRkRha0lzUTBGWFFTeFRRVUZUUXl4SlFVRlJMRU5CTlVKcVFpOWpMRVZCUVZGeFVDeFRRVUZYTEZOQlFWVTRUU3hIUVVONlFpeEpRVUZKZUdRc1JVRkJUeXhKUVVGSk1GTXNUVUZCVFM5RUxGVkJRVlZvVUN4UFFVRlRMRWRCUTNoRExFZEJRVWxuVUN4VlFVRlZhRkFzVDBGQlV5eEZRVU51UWl4SlFVRkxMRWxCUVVsNFF5eEZRVUZKTEVWQlFVZEJMRVZCUVVsM1VpeFZRVUZWYUZBc1QwRkJVWGhETEVsQlEyeEROa01zUlVGQlN6ZERMRVZCUVVrc1IwRkJTM2RTTEZWQlFWVjRVaXhIUVVkb1EzVm5RaXhGUVVGTmJsZ3NTMEZCU3l4SlFVRkpNbGdzUlVGQlMxWXNSVUZCUzNoa0xFbEJRMG9zU1VGQmFrSXdaQ3hGUVVGTkwyUXNVVUZCYVVKblpTeEhRVU4yUWtvc1JVRkJWMDhzUlVGRmJrSXNSVUZQUVVrc1JVRkJTMmhVTEZWQlFWVTJVeXhKUVVGTkxGZEJRMnBDYUc1Q0xFdEJRVXQ1YlVJc1NVRkJTWGhXTEUxQlFVMHNTMEZCVFdwU0xFdEJRVXR2YmtJc1RVRkRPVUlzUlVGRFFUbGpMRVZCUVZGblpDeE5RVUZSTEZWQlEyaENhR1FzUlVGQlVXbGtMRk5CUVZVc1JVRkRiRUpxWkN4RlFVRlJReXhKUVVGTkxFTkJRVU1zUlVGRFprUXNSVUZCVVd0a0xFdEJRVThzUjBGRFpteGtMRVZCUVZGdFpDeFJRVUZWTEVkQlEyeENibVFzUlVGQlVXOWtMRk5CUVZjc1EwRkJReXhGUVVsd1FuQmtMRVZCUVZGc1JpeEhRVUZMYVdsQ0xFVkJRMkl2WXl4RlFVRlJjV1FzV1VGQlkwNHNSVUZEZEVJdll5eEZRVUZSZEVnc1MwRkJUM0ZyUWl4RlFVTm1MMk1zUlVGQlVTdFJMRWxCUVUxblRTeEZRVU5rTDJNc1JVRkJVV2RTTEdWQlFXbENLMHdzUlVGRGVrSXZZeXhGUVVGUmFWSXNiVUpCUVhGQ09Fd3NSVUZETjBJdll5eEZRVUZSYjFJc1MwRkJUekpNTEVWQlEyWXZZeXhGUVVGUmMyUXNaMEpCUVd0Q1VDeEZRVU14UWk5akxFVkJRVkYxWkN4dlFrRkJjMEpTTEVWQlJUbENMMk1zUlVGQlVYTlNMRlZCUVZrc1UwRkJWWEJhTEVkQlFWRXNUVUZCVHl4RlFVRkhMRVZCUldoRU9FZ3NSVUZCVVhka0xGRkJRVlVzVTBGQlZYUnNRaXhIUVVONFFpeE5RVUZOTEVsQlFVbHhVQ3hOUVVGTkxHMURRVU53UWl4RlFVVkJka2dzUlVGQlVYbGtMRWxCUVUwc1YwRkJZeXhOUVVGUExFZEJRVWtzUlVGRGRrTjZaQ3hGUVVGUk1HUXNUVUZCVVN4VFFVRlZReXhIUVVOMFFpeE5RVUZOTEVsQlFVbHdWeXhOUVVGTkxHbERRVU53UWl4RlFVTkJka2dzUlVGQlVUUmtMRTFCUVZFc1YwRkJZU3hQUVVGUExFTkJRVWNzUXl3MFFrTjBUSFpETDI1Q0xFOUJRVTlETEdWQlFXVkRMRVZCUVZNc1lVRkJZeXhEUVVGRlF5eFBRVUZQTEVsQlEzUkVSQ3hGUVVGUk9HNUNMR3RDUVVGdlFqbHVRaXhGUVVGUksyNUNMREpDUVVFMlFpOXVRaXhGUVVGUloyOUNMRmRCUVdGb2IwSXNSVUZCVVdsdlFpeFJRVUZWYW05Q0xFVkJRVkZyYjBJc1YwRkJZV3h2UWl4RlFVRlJiVzlDTEd0Q1FVRmxMRVZCUTNCS2JtOUNMRVZCUVZGdmIwSXNWVUZOVWl4VFFVRnRRbXhYTEVkQlEyWXNSMEZCU1d4VExFVkJRVkZwYjBJc1VVRkZVaXhQUVVGUGFHVXNVVUZCVVVNc1RVRkJUV2RKTEVWQlNUZENMRVZCV0VGc1V5eEZRVUZSYlc5Q0xHRkJSR0VzU1VGQmQwSXNiMEpCUVZndlpDeFBRVWRzUTNCTExFVkJRVkZyYjBJc1YwRkJLMElzYjBKQlFWZzVaQ3hQUVVNMVFuQkxMRVZCUVZGcGIwSXNVVUZCTmtJc2IwSkJRVnBvWlN4WFFVRTJRa0VzVVVGQlVXOWxMRk5CUVZOc2JVSXNTMEZaZGtWdVF5eEZRVUZSWjI5Q0xGZEJTRmNzUTBGQlF6bFdMRVZCUVV0MFJpeEpRVU5rYzBZc1MwRkJUM1JHTEVWQlIyeENOVTBzUlVGQlVTdHVRaXd5UWtGQk5rSXNTMEZQY2tNdmJrSXNSVUZCVVRodVFpeHJRa0ZPYTBJc1EwRkJRMUVzUlVGQlVTeExRVUZOUXl4RlFVRlpkbTlDTEVWQlFWRXJia0lzTmtKQlEycEVUeXhGUVVOS1F5eEZRVU5CTjJZc1MwRkJTMFFzVFVGQlRUaEpMRk5CUVZNc1NVRkRjRUp3U2l4TFFVRkxjV2RDTEZOQlFWTnFXQ3hUUVVGVExFbEJRVWt3VGl4UFFVRlBMRVZCUVVjc1JTdzBRa042UWpkRGJtWXNUMEZCVDBNc1pVRkJaVU1zUlVGQlV5eGhRVUZqTEVOQlFVVkRMRTlCUVU4c1NVRkRkRVJFTEVWQlFWRXJSU3hSUVVGTExFVkJUMkl2UlN4RlFVRlJLMFVzUjBGT1VpeFRRVUZaTmtnc1JVRkJTelppTEVWQlFVazNha0lzUjBGRmFrSXNUMEZFUVdkSkxFVkJRVWszU0N4SFFVRkhNR3BDTEVWQlFVazNha0lzUjBGRFNpeFhRVU5JWjBrc1JVRkJTVzlQTEVsQlFVbDVUaXhGUVVGSk4ycENMRVZCUTJoQ0xFTkJRMG9zUXl4dlEwTlFRU3hKUVVGSmJFWXNSVUZCYlVKRExFMUJRVkZCTEV0QlFVdEVMR2xDUVVGdlFpeFRRVUZWUlN4SFFVTTVSQ3hQUVVGUlFTeEhRVUZQUVN4RlFVRkpReXhYUVVGalJDeEZRVUZOTEVOQlFVVXNVVUZCVjBFc1JVRkRlRVFzUlVGRFFVVXNUMEZCVDBNc1pVRkJaVU1zUlVGQlV5eGhRVUZqTEVOQlFVVkRMRTlCUVU4c1NVRkRkRVJFTEVWQlFWRnpXU3haUVVGVExFVkJRMnBDTEUxQlFVMXZVU3hGUVVGeFFpeEZRVUZSTEUxQlF6ZENNVk1zUlVGQlZTeEZRVUZSTEUxQlEyeENkbFlzUlVGQmMwSXNSVUZCVVN4TlFVVTVRa2NzUlVGRVZXeENMRVZCUVdkQ0xFVkJRVkVzVDBGRGJFSnRRaXhSUVVGUkxESkNRVXQ0UW5kakxFVkJRV3RDZG1Rc1QwRkJUelp2UWl4UFFVRlBMRU5CUTJ4RE5WQXNVVUZCVXl4RlFVTlVObEFzWTBGQlpTeEZRVU5tTjA4c1YwRkJXU3hGUVVOYU9FOHNZMEZCWlN4RlFVVm1ReXhaUVVGaExFVkJRMkkzVGl4bFFVRm5RaXhKUVRCQ2NFSXNUVUZCVFRORExGVkJRV1UzV0N4RlFVRnZRalJGTEZGQlNYSkRMRmRCUVVGcVJTeERRVUZaTW01Q0xFVkJRVWw0VUN4RlFVRkxiRmtzUjBGRGFrSkRMRkZCWlVFelFpeExRVUZMY1hCQ0xGZEJRVmtzUlVGTGFrSnljRUlzUzBGQlMzTndRaXhYUVVGWkxFVkJTV3BDZEhCQ0xFdEJRVXQxY0VJc1kwRkJaMElzUjBGSmNrSjJjRUlzUzBGQlMzZHdRaXhYUVVGaExFZEJUMnhDZUhCQ0xFdEJRVXQ1Y0VJc1QwRkJVeXhIUVV0a2VuQkNMRXRCUVVzd2NFSXNWVUZCV1N4RlFVTnFRakZ3UWl4TFFVRkxNbkJDTEVsQlFVMHNSVUZEV0ROd1FpeExRVUZMTkhCQ0xFdEJRVThzUTBGQlF5eEZRVU5pTlhCQ0xFdEJRVXMyY0VJc1RVRkJVU3hEUVVGRExFVkJRMlEzY0VJc1MwRkJTMjl3UWl4SFFVRkxRU3hGUVVOV2NIQkNMRXRCUVVzMFdpeEpRVUZOUVN4RlFVTlFiRmtzUjBGQlVVRXNSVUZCUzI5dlFpeFBRVU5pT1hCQ0xFdEJRVXM0Y0VJc1MwRkJUM0J2UWl4RlFVRkxiMjlDTEUxQlJYSkNPWEJDTEV0QlFVc3JjRUlzVFVGQlVUVndRaXhQUVVGUE5rVXNUMEZCVHl4RFFVRkRMRVZCUVVkMFJDeEhRVU16UWpGQ0xFdEJRVXR2Y0VJc1IwRkJSekZTTEdOQlExSXhXQ3hMUVVGTGFVY3NUVUZEWWl4RFFXVkJMR2RDUVVGSksycENMRWRCUTBFc1QwRkJVV2h4UWl4TFFVRkxjWEJDTEZOQlEycENMRU5CVFVFc1UwRkJRVmtzUjBGRFNTeEhRVUZKYW5GQ0xFdEJRVXQzVnl4TFFVTk1MRTlCUTBvc1RVRkJUVFJUTEVWQlFVdHdjRUlzUzBGQlMyOXdRaXhIUVVOb1FuQndRaXhMUVVGTGQxY3NTMEZCVHl4RFFVTlNTQ3hGUVVGUmFsSXNSMEZCUjJkclFpeEZRVUZKTEU5QlFWRndjRUlzUzBGQlN6aFpMRTlCUVU5MFZDeExRVUZMZUVZc1QwRkRlRU54Vnl4RlFVRlJhbElzUjBGQlIyZHJRaXhGUVVGSkxGTkJRVlZ3Y0VJc1MwRkJTMnR4UWl4VFFVRlRNV3RDTEV0QlFVdDRSaXhQUVVNMVEzRlhMRVZCUVZGcVVpeEhRVUZIWjJ0Q0xFVkJRVWtzVVVGQlUzQndRaXhMUVVGTGRWb3NVVUZCVVM5VUxFdEJRVXQ0Uml4UFFVTXhRM0ZYTEVWQlFWRnFVaXhIUVVGSFoydENMRVZCUVVrc1VVRkJVM0J3UWl4TFFVRkxkMW9zVVVGQlVXaFZMRXRCUVV0NFJpeFBRVVZzUkN4RFFXdENRU3hWUVVGSk5sb3NSMEZEUVN4UlFVRlROMW9zUzBGQlMzZFhMRWxCUTJ4Q0xFTkJWMEVzVDBGQlFUUkRMRWRCUTBrc1QwRkJTWEJhTEV0QlFVdHhjRUlzV1VGRlZISndRaXhMUVVGTGFYRkNMRmxCUTBGcWNVSXNTMEZCUzI5d1FpeEhRVUZyUWl4bFFVTjRRbkJ3UWl4TFFVRkxiM0JDTEVkQlFVZHVha0lzVDBGRFVpeFRRVUZYYWtjc1MwRkJTMjl3UWl4SFFVRkhhRk1zWVVGRGJrSndXQ3hMUVVGTE9Ga3NWVUZNUlRsWkxFbEJUMllzUTBGSlFTeEpRVUZCYVVjc1IwRkRTU3hQUVVGUGFrY3NTMEZCUzI5YUxGTkJRMmhDTEVOQlowSkJMRWxCUVVGd1V5eEpRVUZSYVVNc1IwRkhTaXhQUVVaQlFTeEZRVUZMTWtnc1VVRkJVU3hYUVVOaU5WRXNTMEZCU3pCaUxFdEJRVXQ2U3l4TlFVRk5hbElzUzBGQlRXbEtMRWRCUTJacVNpeEpRVU5ZTEVOQmEwSkJMRWxCUVVFd1lpeERRVUZMYjA0c1MwRkJUemRtTEVkQlExSXNSMEZCU1hsVkxFVkJRV2RDY2xnc1pVRkJaWGxwUWl4SFFVTXZRaXhOUVVGTkxFbEJRVWxxV0N4TlFVRk5MRWxCUVUxcFdDeEZRVUZIYkZnc1YwRkJZU3c0UWtGSE1VTXNSMEZFUVROSkxFVkJRVXN5U0N4UlFVRlJhMWtzUjBGRFZEbHZRaXhMUVVGTEszQkNMRTFCUVUxSkxGVkJRVmx1Y1VJc1MwRkJTelp3UWl4TlFVRk5UeXhaUVVGamNIRkNMRXRCUVVzMmNFSXNUVUZCVFZFc1UwRkZNMFFzVDBGRVFYSnhRaXhMUVVGTGMzRkNMRmxCUVZseWFFSXNSMEZEVm1wS0xFdEJSVmdzVFVGQlRYbEVMRVZCUVZNc1EwRkRXRU1zUzBGQlRYRnNRaXhGUVVGdFFuaE1MRmRCUVZkTkxFMUJRM0JEZW1Fc1MwRkJUVFpHTEVWQlJWWjRSaXhSUVVGcFFpeERRVUZETEVkQlIyeENMRWRCUmtGQkxFVkJRVTk1Vnl4UlFVRlJjVkVzVlVGQmJVTXNTVUZCZUVKMmNVSXNTMEZCU3pad1FpeE5RVUZOVlN4VFFVVnFReXh0UWtGQmMwSjBhRUlzUlVGQlMwRXNSVUZCUzB3c1QwRkJVeXhIUVVGSkxFTkJRemRETEUxQlFVMTNWaXhGUVVGTGNHVXNTMEZCU3pKd1FpeE5RVU5vUWpGdlFpeEZRVUZOTEdsRFFVRnJRMjFrTEVkQlEzaERMRTFCUVUxdlRTeEZRVUZOZG1oQ0xFVkJRVXQzYUVJc1RVRkRha0o2Y1VJc1MwRkJTekJ4UWl4eFFrRkJjVUowVFN4RlFVRkpiMDBzUjBGRE9VSXZiVUlzUlVGQlR6SmhMRWRCUVV0QkxFTkJRMmhDTEVOQlEwRXNUVUZCVFhWTkxFVkJRWE5DTTNGQ0xFdEJRVXR2Y0VJc1IwRkJSekZSTEZGQlEyaERNVmtzUzBGQlMyOXdRaXhIUVVGSE1WRXNUMEZCVDNWRUxGZEJRMlpxWXl4TFFVRkxiM0JDTEVkQlFVY3hVU3hQUVVGUGRVUXNWVUZCVlc1YUxGTkJZVGRDTEU5QlduTkNPVU1zUzBGQlN6WndRaXhOUVVGTlVTeFZRVUZqVFN4SFFVRjNRak54UWl4TFFVRkxjWEJDTEZWQlNXNUZjbkJDTEV0QlFVdHhjRUlzVjBGRFZuSndRaXhMUVVGTE5IRkNMSGRDUVVGM1FtNXVRaXhIUVVNM1FucEVMRXRCUVV0NVJDeFBRVUZQUVN4SlFVZGFla1FzUzBGQlMzZHdRaXhYUVVGWGFHRXNTMEZCU3k5TUxFZEJVSEpDZUVNc1JVRkJUU3cyUkVGVFZtcENMRXRCUVVzMmNFSXNUVUZCVVN4RFFVRkRMRVZCUTFBM2NFSXNTVUZEV0N4RFFVbEJMRzlDUVVGQk1IRkNMRU5CUVhGQ2RFMHNSVUZCU1c5TkxFZEJRM0pDTEVsQlFVa3hhMElzUlVGRFNpeE5RVUZOV1N4RlFVRjNReXhSUVVFM1Fsb3NSVUZCU3psR0xFdEJRVXMyY0VJc1RVRkJUVzVxUWl4bFFVRTBRaXhKUVVGUVdpeEZRVUZuUWtFc1JVRkJTemxHTEV0QlFVc3JjRUlzVFVGQlRXTXNWMEZEZEVZc1VVRkJaMEpxYkVJc1NVRkJXbU1zUlVGRlFTeFpRVVJCTVVjc1MwRkJTelJ3UWl4TFFVRkxlRXdzUjBGQlRXOU5MRWRCU1hCQ0xFMUJRVTE0VWl4RlFVRlJhRm9zUzBGQlMyOXdRaXhIUVVGSGNtbENMR0ZCUVdFc1dVRkRlRUl2Unl4TFFVRkxOSEJDTEV0QlFVdDRUQ3hIUVVOcVFpeEpRVUZMTEVsQlFVbG9XU3hGUVVGSkxFVkJRVWRCTEVWQlFVbHdSeXhMUVVGTGQzQkNMRmRCUVZjMVowSXNUMEZCVVhoRExFbEJRM0JEY0Vjc1MwRkJTM2R3UWl4WFFVRlhjR3BDTEVkQlFVZG5XU3hMUVVGUFFTeEpRVU14UW01a0xFVkJRVTBzYVVSQlFXdEViV1FzUjBGRGVFUndaU3hMUVVGTGQzQkNMRmRCUVZjdlppeFBRVUZQY2tRc1JVRkJSeXhKUVVkc1EyNUdMRVZCUVUwc2FVUkJRV3RFYldRc1JVRkJTVEZZTEVkQlF6VkVPR3BDTEVWQlFVbDRXaXhMUVVGTGFGSXNTMEZCVFN4SlFVRkpObElzVFVGQlRTdzJRa0ZETVVKdVRDeEhRVU5JTVVjc1MwRkJTelJ3UWl4TFFVRkxlRXdzUjBGQlRTeEpRVUZKYmxZc1MwRkZhRUpxU2l4TFFVRkxiM0JDTEVkQlFVZHFVU3hsUVVGbFNDeEhRVU4yUW5kU0xFVkJRVWwyV2l4TlFVRk5hbElzUzBGQlRTeERRVUZETEZGQlFWTnBTaXhKUVVWc1F5eERRV2xDUVN4WFFVRkJObWhDTEVOQlFWbG9ReXhMUVVGUE4yWXNSMEZGWml4TlFVRk5PR2hDTEU5QlFXbERibXhDTEVsQlFYWkNOVVlzUzBGQlN6WndRaXhOUVVGTmJtcENMR05CUVcxRVpDeEpRVUV4UWpWR0xFdEJRVXNyY0VJc1RVRkJUV01zVjBGREwwUXNUMEZCVHl4SlFVRkpMMUFzVVVGQlVTeERRVUZEUXl4RlFVRlRhVkVzUzBGRGVrSXZhRUlzUlVGQlMzVkhMRXRCUVVzc1EwRkJRM2xpTEVWQlFVMURMRWxCUTFSSUxFVkJRMDlGTEVWQlFVOUVMRVZCUVU5RExFZEJRVkZzVVN4RlFVRlJiVkVzUjBGSE9VSnVVU3hGUVVGUmExRXNTVUZIZGtKcWNrSXNTMEZCU3pCaUxFdEJRVXR2VGl4TFFVRlBOMllzU1VGRmVrSXNRMEZOUVN4WFFVRkJjV2hDTEVOQlFWbHlhRUlzUjBGRFVpeEpRVUZKZFdoQ0xFVkJRMmxETEcxQ1FVRXhRblpvUWl4RlFVRkxRU3hGUVVGTFRDeFBRVUZUTEV0QlF6RkNOR2hDTEVWQlFVMTJhRUlzUlVGQlMzZG9RaXhQUVVWbUxFMUJRVTFvYmtJc1JVRkJVeXhEUVVOWU1tRXNSMEZCU1hCbExFdEJRVXN3Y0VJc1dVRkRWSGxDTEZOQlFWVXNSVUZEVmtNc1UwRkJVeXhGUVVOVWJtbENMRTlCUTBFMFowSXNUVUZCVHpGd1FpeFBRVUZQTmtVc1QwRkJUeXhEUVVGRmIyeENMRmRCUVZjc1IwRkJVWEJ4UWl4TFFVRkxObkJDTEZGQlJXNUVOV2RDTEVWQlFVdDFSeXhMUVVGTExFTkJRVU51U1N4TFFVRlJaMnRDTEV0QlEyWXNSMEZCU1RWdVFpeEpRVUZYZWtRc1MwRkJTM2x3UWl4UFFVRlBMRWRCYzBJelFpeFBRV3hDZVVJc1QwRkJVbkJwUWl4RlFVVlVOVVFzUlVGQlR6QnVRaXhUUVVGWGJuSkNMRXRCUVVzcmNFSXNUVUZCVFVrc1ZVRkROMEpzY0VJc1JVRkJUU3d3UTBGQk1rTjNReXhGUVVGUE1tRXNSMEZCU1ROaExFVkJRVTh3YmtJc1ZVRkRia1Z1Y2tJc1MwRkJTM2x3UWl4UFFVRlBOa0lzVVVGRFVtUXNSMEZEUVVFc1JVRkJTVzVxUWl4TFFVdGFjRWNzUlVGQlRTeHZRMEZCY1VOM1F5eEZRVUZQTW1Fc1NVRkRiRVJ3WlN4TFFVRkxlWEJDTEU5QlFVODJRaXhSUVVOU1pDeEhRVU5CUVN4RlFVRkpMRkZCUVZOaExFbEJSM0pDTlc1Q0xFVkJRVTh5YmtJc1UwRkJWU3hGUVVOV2NISkNMRXRCUVV0MWNrSXNaMEpCUldoQ2RuSkNMRXRCUVV0NWNFSXNUMEZCVDJwaExFdEJRVXN2VEN4SFFVTnFRbnBFTEV0QlFVdDFja0lzWVVGRFZDeERRVTlCTEZkQlFVRkJMRU5CUVZsRExFZEJRVkVzUjBGRmFFSXNSMEZFUVhaeFFpeEZRVUZOTEcxQ1FVTkVha0lzUzBGQlMzRndRaXhYUVVGdlF5eEpRVUYyUW5Kd1FpeExRVUZMZVhCQ0xFOUJRVTgzWjBJc1QwRkRMMElzVDBGRlNpeE5RVUZOYmtZc1JVRkJVM3BFTEV0QlFVdDVjRUlzVDBGQlR5eEpRVU4yUW1odFFpeEZRVUZQTW01Q0xGTkJRVmxKTEVkQlNYWkNMMjVDTEVWQlFVOHlia0lzVTBGQlZTeEZRVU5xUWpOdVFpeEZRVUZQTUc1Q0xGZEJRMUJzY1VJc1JVRkJUU3hwUTBGQmEwTjNReXhGUVVGUE1tRXNSMEZCU1ROaExFVkJRVTh3YmtJc1ZVRkRNVVJ1Y2tJc1MwRkJTelp3UWl4TlFVRlJjRzFDTEVWQlFVOXZiVUlzVFVGRGNFSTNjRUlzUzBGQlN6QmlMRXRCUVV0NlN5eE5RVUZOYWxJc1MwRkJUWGxFTEVWQlFVOTNSaXhQUVZCNlFtaEpMRVZCUVUwc09FUkJRU3RFZDBNc1JVRkJUekpoTEVkQlVYQkdMRU5CVDBFc1RVRkJRVE5oTEVOQlFVOUJMRWRCUTBoQkxFVkJRVTl0Vnl4SlFVRk5OVm9zUzBGQlN6UmFMRWxCUTJ4Q05Wb3NTMEZCUzI5d1FpeEhRVUZIY0ZBc1VVRkJVWFpYTEVWQlEzQkNMRU5CVFVFc1RVRkJRWEZXTEVkQlEwazNXQ3hGUVVGTkxHdERRVU5yUWl4dFFrRkJZbXBDTEV0QlFVczRjRUlzUzBGRFdqbHdRaXhMUVVGTE9IQkNMRXRCUVUweGJVSXNTVUZEVUhCRUxFdEJRVXQ1Y2tJc2JVSkJRVzFDY205Q0xFdEJTVFZDY0VRc1MwRkJTM2x5UWl4dFFrRkJiVUo2Y2tJc1MwRkJTemh3UWl4TFFVVnlReXhEUVU5QkxHdENRVUZCTWtJc1EwRkJiVUp5YjBJc1IwRkRabkJFTEV0QlFVdDVSQ3hQUVVGUExFTkJRMUpETEV0QlFVMXhiRUlzUlVGQmJVSjRUQ3hYUVVGWGFVTXNVVUZEY0VOd1l5eExRVUZOY0VRc1MwRkJTekJ5UWl4TFFVTk1kbkpDTEU5QlFVODJSU3hQUVVGUExFTkJRVVV5YlVJc1NVRkJTek55UWl4TFFVRkxNSEpDTEV0QlFVMUZMRTlCUVZFMWNrSXNTMEZCU3paeVFpeGhRVUZsZW05Q0xFZEJRelZFUVN4SFFVVmtMRU5CVDBFc1QwRkJRVzFYTEVOQlFWRnNVeXhIUVVORGNrZ3NTMEZCUzNGd1FpeFhRVU5PY25CQ0xFdEJRVXRyUkN4aFFVRmhMR2RDUVVGcFFtMUZMRVZCUlRORExFTkJVVUVzVDBGQlFXMVRMRU5CUVZGaExFVkJRVkY0Vnl4SFFVTmFOVU1zUlVGQlRTeGhRVUZqYjFvc1IwRkRjRUp5WVN4TFFVRkxjWEJDTEZkQlFWa3NVMEZEVm5Kd1FpeExRVUZMYjJVc1IwRkRXbkJsTEV0QlFVdHJSQ3hoUVVGaExHRkJRV050V0N4RlFVRlJlRmNzUlVGRE5VTXNRMEZQUVN4UlFVRkJjVzFDTEVOQlFWTjZiVUlzUjBGRlRDeEhRVVJ6UWtFc1JVRkJUMjFYTEUxQlFWRTFXaXhMUVVGTE5Gb3NTVUZITVVNc1QwRkJVVzVYTEVWQlFVOURMRTFCUTFnc1MwRkJTM0ZzUWl4RlFVRnRRbmhNTEZkQlFWZHBReXhSUVVNelFpOWlMRVZCUVU5TUxFMUJRVkZMTEVWQlFVOU1MRXRCUVV0M1FpeEpRVU16UWpWRkxFdEJRVXM0Y2tJc1ZVRkJWWEp2UWl4RlFVRlBUQ3hMUVVGTGQwSXNTVUZCUzI1Q0xFVkJRVTlNTEV0QlFVdDFiMElzUzBGSE5VTXpja0lzUzBGQlMydEVMR0ZCUVdFc1owSkJRV2xDTEVsQlFVa3lUeXhOUVVGTkxEaE1RVVZxUkN4TlFVTktMRXRCUVV0cldDeEZRVUZ0UW5oTUxGZEJRVmROTEUxQlEyNURMRXRCUVV0clRDeEZRVUZ0UW5oTUxGZEJRVmRYTEdGQlF5OUNiR1VzUzBGQlN5dHlRaXhSUVVGUmRHOUNMRWRCUTJJc1RVRkRTaXhMUVVGTGMyeENMRVZCUVcxQ2VFd3NWMEZCVjA4c1NVRkRia01zUzBGQlMybE1MRVZCUVcxQ2VFd3NWMEZCVjFrc1YwRkRMMEp1WlN4TFFVRkxaM05DTEUxQlFVMTJiMElzUjBGRFdDeE5RVU5LTEV0QlFVdHpiRUlzUlVGQmJVSjRUQ3hYUVVGWGEwTXNWMEZETDBKNlppeExRVUZMYVhOQ0xHVkJRMHdzVFVGRFNpeExRVUZMYkVRc1JVRkJiVUo0VEN4WFFVRlhiVU1zWTBGREwwSXhaaXhMUVVGTGVVd3NWVUZEVEN4TlFVRk5jRVVzUlVGQlRTeEpRVUZKZDBzc1RVRkJUWEJQTEVWQlFVOU1MRXRCUVVzclNTeFRRVVZzUXpsRkxFVkJRVWxxUlN4TFFVRlBTeXhGUVVGUFRDeExRVUZMUVN4TFFVTjJRbkJFTEV0QlFVdHJSQ3hoUVVGaExHZENRVUZwUW0xRkxFZEJSeTlETEVOQlQwRXNUMEZCUVRCclFpeERRVUZSZEc5Q0xFZEJRMG9zVFVGQlRYZEdMRVZCUVU5NFJpeEZRVUZQVEN4TlFVRlJMRWRCUXpWQ2JrTXNSVUZCVFN4dlFrRkJjVUpuU1N4SFFVTjJRaXhOUVVGUmVFWXNSVUZCVHpKaExFdEJRMlp1WkN4RlFVRk5MRzFEUVVOT1owa3NSVUZCUzNWSExFdEJRVXQ0VUN4TFFVRkxkM0ZDTEVsQlFVa3ZiVUlzUlVGQlR6SmhMRTFCUlRGQ2NHVXNTMEZCUzNGd1FpeFZRVU5NY25CQ0xFdEJRVXRyYzBJc1ZVRkJWV3BxUWl4SFFVZG1ha29zUzBGQlMzVndRaXhqUVVGakwxb3NTMEZCUzNKUUxFOUJRVTgyYjBJc1QwRkJUeTltTEVkQlJUbERMRU5CUTBFc1UwRkJRV2xxUWl4RFFVRlZhbXBDTEVkQlEwNHNSMEZCU1dwS0xFdEJRVXR0YzBJc1pVRkJhVUp1YzBJc1MwRkJTMjF6UWl4alFVRmpkbXBDTEU5QlFWRXNRMEZEYWtRc1RVRkJUV2RVTEVWQlFWazFZaXhMUVVGTGJYTkNMR05CUVdNdlpTeFJRVU55UXl4SlFVRkxMRTFCUVUxblppeExRVUZaZUZFc1JVRkRia0ozVVN4RlFVRlRibUlzVFVGQlRXcFNMRXRCUVUxcFNpeEZRVVUzUWl4RFFVTkJkRWdzVFVGQlRTdGFMRXRCUVV0NlN5eE5RVUZOYWxJc1MwRkJUV2xLTEVkQlEyNUNha29zUzBGQlN6QnlRaXhOUVVGUmVtbENMRVZCUVV0TUxGRkJRVEpETEdsQ1FVRXhRa3NzUlVGQlMwRXNSVUZCUzB3c1QwRkJVeXhMUVVOMFJEVkpMRXRCUVVzMmNrSXNXVUZCWXpWcFFpeEZRVUZMUVN4RlFVRkxUQ3hQUVVGVExFZEJSVGxETEVOQlRVRXNSMEZCUVRSb1FpeERRVUZKY0Uwc1IwRkRRU3hOUVVGTk4wNHNSVUZCVDNaUkxFdEJRMklzU1VGQlNYRnpRaXhIUVVGUExFVkJRMWdzVDBGQlR5eFpRVUZoY0dwQ0xFZEJSVnB2YWtJc1NVRkZTa0VzUjBGQlR5eEZRVU5RY0hKQ0xFVkJRVTBzYVVKQlFXdENaMGtzUjBGRGVFSnpTQ3hGUVVGTE9VMHNUMEZCVHl4RFFVTlNReXhMUVVGTmNXeENMRVZCUVcxQ2VFd3NWMEZCVjA4c1NVRkRjRU5OTEVkQlFVbEJMRVZCUTBwb1lpeExRVUZOTmtZc1NVRkZaQ3hEUVVOS0xFTkJUMEVzUzBGQlFTdHBRaXhEUVVGTmRtOUNMRWRCUTBZc1RVRkJUU3R0UWl4RlFVRk5lSEZDTEV0QlFVczBjRUlzUzBGQlMyNXRRaXhGUVVGUE1tRXNTVUZEZWtJc2JVSkJRWE5DYjAwc1IwRkRkRUoyY0VJc1JVRkJUU3g1UWtGQk1FSjNReXhGUVVGUE1tRXNSMEZCU1ROaExFVkJRVTlNTEUxQlEyeEViMjVDTEVWQlFVbDJXaXhOUVVGTmFsSXNTMEZCVFhsRUxFVkJRVTlNTEdGQlEyaENjRVFzUzBGQlN6UndRaXhMUVVGTGJtMUNMRVZCUVU4eVlTeExRVWQ0UW01a0xFVkJRVTBzWVVGQlkzZERMRVZCUVU4eVlTeEhRVVZ1UXl4RFFVMUJMRk5CUVVFd1RpeERRVUZWTVU0c1JVRkJTWFZPTEVkQlExWXhjVUlzUlVGQlRTdzRRa0ZCSzBKdFpDeEhRVU55UTNCbExFdEJRVXR2WlN4SFFVRkxRU3hGUVVOV2NHVXNTMEZCUzNOd1FpeFZRVUZaY1VNc1IwRkJUek55UWl4TFFVRkxNSEpDTEU5QlFWTkRMRVZCUTNSRE0zSkNMRXRCUVVzd2NrSXNTMEZCVDBNc1JVRkRXak55UWl4TFFVRkxjWEJDTEZkQlFWa3NSVUZEYWtKeWNFSXNTMEZCUzNOelFpeGxRVU5NZEhOQ0xFdEJRVXRyUkN4aFFVRmhMRmRCUTJ4Q2JFUXNTMEZCUzNWeVFpeGhRVUZaTEVWQlEzSkNMRU5CVFVFc1dVRkJRV1VzUjBGRFNYUnpRaXhMUVVGTGRYQkNMR05CUVdNdmJFSXNVVUZCVTNsR0xFZEJRVk5xU2l4TFFVRkxhM05DTEZWQlFWVnFha0lzU1VGRGNFUnFTaXhMUVVGTGRYQkNMR05CUVdkQ0xFZEJRM0pDZG5CQ0xFdEJRVXQzY0VJc1YwRkJWMmh0UWl4UlFVRlRReXhKUVVOeVFucEVMRXRCUVVzMGNVSXNkMEpCUVhkQ2JtNUNMRWRCUXpkQ2VrUXNTMEZCUzNsRUxFOUJRVTlCTEV0QlJXaENla1FzUzBGQlMzZHdRaXhYUVVGaExFVkJRM1JDTEVOQlRVRXNXVUZCUVhsRExFZEJRMGxvY2tJc1JVRkJUU3g1UWtGQk1FSnFRaXhMUVVGTE5Gb3NTMEZEY2tNMVdpeExRVUZMZVV3c1ZVRkRUSHBNTEV0QlFVdDNXaXhSUVVGUkxIVkNRVU5xUWl4RFFWRkJMRTlCUVVFdlRpeEhRVU5SZWt3c1MwRkJTM2RYTEU5QlJVeDRWeXhMUVVGTGQxY3NTMEZCUzJoVUxGRkJRVk15Vnl4SFFVRmxRU3hMUVVOc1EyNWhMRXRCUVV0M1Z5eFZRVUZQTlZFc1IwRkZhRUkxUml4TFFVRkxiM0JDTEVkQlFXRXNVMEZCUlhCd1FpeExRVU40UWl4RFFXbENRU3hWUVVGQmIyRXNSMEZYU1N4UFFWWkpjR0VzUzBGQlMzRndRaXhaUVVOTWNHOUNMRVZCUVUwc05rSkJRVGhDYWtJc1MwRkJTelJhTEV0QlEzcEROVm9zUzBGQlMzbEVMRTlCUVU4c1EwRkJSVU1zUzBGQlRYRnNRaXhGUVVGdFFuaE1MRmRCUVZkclF5eGpRVWQwUkhwbUxFdEJRVXQ1VEN4VlFVTkVla3dzUzBGQlMzRndRaXhYUVVWTWNuQkNMRXRCUVV0M1dpeFJRVUZSTEhkQ1FVVldlRm9zU1VGRFdDeERRVTFCTEV0QlFVRm5SU3hIUVVOSkxFOUJRVTlvUlN4TFFVRkxiMkVzV1VGRGFFSXNRMEZWUVN4UlFVRkJiVkVzUTBGQlUwRXNSMEZGVEN4UFFVUkJkbkZDTEV0QlFVczJjRUlzVFVGQlRWVXNVMEZCVjBFc1JVRkRablp4UWl4SlFVTllMRU5CVlVFc1dVRkJTWEZ4UWl4SFFVVkJMRTlCUkVGeWNVSXNTMEZCU3pad1FpeE5RVUZOVVN4VlFVRlhMRVZCUTJaeWNVSXNTVUZEV0N4RFFXTkJMRTlCUVVFd1J5eERRVUZSUVN4SFFVVktMRTlCUkVFeFJ5eExRVUZMTm5CQ0xFMUJRVTF1YWtJc1VVRkJWVUVzUlVGRFpERkhMRWxCUTFnc1EwRlpRU3hMUVVGQmRYTkNMRU5CUVUxSUxFZEJSMFlzVDBGR1FYQnpRaXhMUVVGTGJYTkNMR05CUVdkQ2JuTkNMRXRCUVV0dGMwSXNaVUZCYVVJc1IwRkRNME51YzBJc1MwRkJTMjF6UWl4alFVRmpNMk1zUzBGQlN6UmpMRWRCUTJwQ2NITkNMRWxCUTFnc1EwRlpRU3hWUVVGQmQzTkNMRU5CUVZkS0xFZEJSMUFzVDBGR1FYQnpRaXhMUVVGTGJYTkNMR05CUVdkQ2JuTkNMRXRCUVV0dGMwSXNaVUZCYVVJc1IwRkRNME51YzBJc1MwRkJTMjF6UWl4alFVRmpkbUlzVVVGQlVYZGlMRWRCUTNCQ2NITkNMRWxCUTFnc1EwRnRRa0VzVFVGQlFYbHpRaXhEUVVGUFRDeEhRVU5JTEVsQlFVdHdjMElzUzBGQlMyMXpRaXhqUVVOT0xFOUJRVTl1YzBJc1MwRkZXQ3hIUVVGSmIzTkNMRVZCUVZVc1EwRkRWaXhOUVVGTmVGRXNSVUZCV1RWaUxFdEJRVXR0YzBJc1kwRkRka0lzU1VGQlN5eEpRVUZKTDJ4Q0xFVkJRVWtzUlVGQlIwRXNSVUZCU1hkV0xFVkJRVlZvVkN4UFFVRlJlRU1zU1VGRGJFTXNSMEZCU1dkdFFpeEpRVUZoZUZFc1JVRkJWWGhXTEVkQlJYWkNMRTlCUkVGM1ZpeEZRVUZWYmxNc1QwRkJUM0pFTEVWQlFVY3NSMEZEWW5CSExFbEJSMjVDTEUxQlJVbEJMRXRCUVV0dGMwSXNZMEZCWjBJc1IwRkZla0lzVDBGQlQyNXpRaXhKUVVOWUxFTkJTMEVzV1VGQlFUQnpRaXhIUVVOSkxFOUJRVTh4YzBJc1MwRkJTMjF6UWl4bFFVRnBRaXhGUVVOcVF5eERRV05CTEdGQlFVRlJMRU5CUVdOUUxFZEJSMVlzVDBGR1FYQnpRaXhMUVVGTE5ITkNMSE5DUVVGM1FqVnpRaXhMUVVGTE5ITkNMSFZDUVVGNVFpeEhRVU16UkRWelFpeExRVUZMTkhOQ0xITkNRVUZ6UW5Ca0xFdEJRVXMwWXl4SFFVTjZRbkJ6UWl4SlFVTllMRU5CWTBFc2EwSkJRVUUyYzBJc1EwRkJiVUpVTEVkQlIyWXNUMEZHUVhCelFpeExRVUZMTkhOQ0xITkNRVUYzUWpWelFpeExRVUZMTkhOQ0xIVkNRVUY1UWl4SFFVTXpSRFZ6UWl4TFFVRkxOSE5DTEhOQ1FVRnpRbWhqTEZGQlFWRjNZaXhIUVVNMVFuQnpRaXhKUVVOWUxFTkJiVUpCTEdOQlFVRTRjMElzUTBGQlpWWXNSMEZEV0N4SlFVRkxjSE5DTEV0QlFVczBjMElzYzBKQlEwNHNUMEZCVHpWelFpeExRVVZZTEVkQlFVbHZjMElzUlVGQlZTeERRVU5XTEUxQlFVMTRVU3hGUVVGWk5XSXNTMEZCU3pSelFpeHpRa0ZEZGtJc1NVRkJTeXhKUVVGSmVHMUNMRVZCUVVrc1JVRkJSMEVzUlVGQlNYZFdMRVZCUVZWb1ZDeFBRVUZSZUVNc1NVRkRiRU1zUjBGQlNXZHRRaXhKUVVGaGVGRXNSVUZCVlhoV0xFZEJSWFpDTEU5QlJFRjNWaXhGUVVGVmJsTXNUMEZCVDNKRUxFVkJRVWNzUjBGRFluQkhMRWxCUjI1Q0xFMUJSVWxCTEV0QlFVczBjMElzYzBKQlFYZENMRWRCUldwRExFOUJRVTgxYzBJc1NVRkRXQ3hEUVV0QkxHOUNRVUZCSzNOQ0xFZEJRMGtzVDBGQlR5OXpRaXhMUVVGTE5ITkNMSFZDUVVGNVFpeEZRVU42UXl4RFFWRkJMSFZDUVVGQmFFTXNRMEZCZDBKdWJrSXNSMEZEY0VJc1IwRkJTWHBFTEV0QlFVczBjMElzZFVKQlFYbENOWE5DTEV0QlFVczBjMElzYzBKQlFYTkNhR3RDTEU5QlFWRXNRMEZEYWtVc1RVRkJUV2RVTEVWQlFWazFZaXhMUVVGTE5ITkNMSE5DUVVGelFuaG1MRkZCUXpkRExFbEJRVXNzVFVGQlRXZG1MRXRCUVZsNFVTeEZRVU51UW5kUkxFVkJRVk51WWl4TlFVRk5hbElzUzBGQlRYbEVMRVZCUVU5TUxFdEJSWEJETEVOQlEwb3NSVUZGU2k5RExFVkJRVkZ6V1N4UFFVRlRRU3hETERSQ1EyZ3lRbXBDZUZrc1QwRkJUME1zWlVGQlpVTXNSVUZCVXl4aFFVRmpMRU5CUVVWRExFOUJRVThzU1VGRGRFUkVMRVZCUVZGNVNDeHZRa0ZCYVVJc1JVRkRla0o2U0N4RlFVRlJlVWdzWlVGRFowSXNiMEpCUVZSNVNTeExRVU5CUVN4TFFVVm5RaXh2UWtGQldEbEdMRTlCUTB4QkxFOUJSMEYxYVVJc1UwRkJVeXhqUVVGVVFTeEZMRzlEUTFabUxFbEJRVWxxZEVJc1JVRkJiVUpETEUxQlFWRkJMRXRCUVV0RUxHbENRVUZ2UWl4VFFVRlZSU3hIUVVNNVJDeFBRVUZSUVN4SFFVRlBRU3hGUVVGSlF5eFhRVUZqUkN4RlFVRk5MRU5CUVVVc1VVRkJWMEVzUlVGRGVFUXNSVUZEUVVVc1QwRkJUME1zWlVGQlpVTXNSVUZCVXl4aFFVRmpMRU5CUVVWRExFOUJRVThzU1VGRGRFUXNUVUZCVFRKelFpeEZRVUZaYkhSQ0xFVkJRV2RDTEVWQlFWRXNUMEZEY0VOdGRFSXNSVUZCY1VKdWRFSXNSVUZCWjBJc1JVRkJVU3hQUVVNM1EyOTBRaXhGUVVGaGNIUkNMRVZCUVdkQ0xFVkJRVkVzVDBGRGNrTnhkRUlzUlVGQkswSnlkRUlzUlVGQlowSXNSVUZCVVN4UFFVTjJSSE4wUWl4RlFVRTRRblIwUWl4RlFVRm5RaXhGUVVGUkxFOUJRM1JFZFhSQ0xFVkJRV1YyZEVJc1JVRkJaMElzUlVGQlVTeFBRVU4yUTNkMFFpeEZRVUZoZUhSQ0xFVkJRV2RDTEVWQlFWRXNUMEZEY2tONWRFSXNSVUZCVTNwMFFpeEZRVUZuUWl4RlFVRlJMRTlCUTJwRE1IUkNMRVZCUVZjeGRFSXNSVUZCWjBJc1JVRkJVU3hQUVVOdVF6SjBRaXhGUVVGVkxFVkJRVkVzVFVGRGJFSm9aMElzUlVGQlR6Tk9MRVZCUVdkQ0xFVkJRVkVzVDBGREwwSnBhRUlzUlVGQlpTeEZRVUZSTEUxQlEzWkNNazBzUlVGQlN5eEZRVUZSTEUxQlJXSnlaaXhIUVVSWGMyWXNVVUZCVVZnc1JVRkJWUzl5UWl4UlFVRlJjVW9zU1VGQlNYTnFRaXhYUVVNeFFtaHpRaXhUUVVGVGFYTkNMRXRCUVV0eWFFSXNVVUZCVVN4alFVRm5RaXhGUVVGSk1tZENMRVZCUVRaQ2JITkNMRkZCUVZWdGMwSXNSVUZCTkVKdWMwSXNVMEZGYkVrc1RVRkJUVFp6UWl4RlFVTkdMR2xDUVVGWFF5eEhRVU5RTEU5QlFVOVNMRVZCUVU5MGMwSXNVVUZCVVhGS0xFMUJRVkZyYWtJc1JVRkJVM1p6UWl4UlFVRlJkMmhDTEdGQlFXVTRTeXhGUVVGUGRITkNMRkZCUVZGeFNpeE5RVUZSYTJwQ0xFVkJRVk4yYzBJc1VVRkJVWFZvUWl4VlFVRlpaMHdzUlVGQlUzWnpRaXhSUVVGUk1taENMRzFDUVVGeFFqUkxMRVZCUVZOMmMwSXNVVUZCVVRCb1FpeHhRa0ZETjBzc1EwRkRRU3hwUWtGQlYzRk1MRWRCUTFBc1RVRkJUeXhEUVVOSWRGY3NZVUZCWVN4RlFVTmliRUlzWTBGQll5eEZRVU5rUXl4eFFrRkJjMEpETEVsQlEzUkNReXhyUWtGQmJVSXNTVUZEYmtKRExIRkNRVUZ6UWl4SlFVTjBRbTVSTEZGQlFWTXNTVUZIVkcxaExGZEJRVmtzUTBGQlF5eGhRVU5pY1U0c1UwRkJVeXhGUVVOVVF5eFZRVUZWTEVWQlExWXpjRUlzVFVGQlR5eERRVUZETEVWQlExSnVReXhwUWtGQmFVSXNSVUZEYWtJMlJDeGhRVUZqTEVOQlFVTXNSVUZGZGtJc1EwRkRRU3hYUVVGQmVrVXNRMEZCV1RKelFpeEhRVU5TY0hWQ0xFdEJRVXR4ZFVJc1MwRkJUM0oxUWl4TFFVRkxjWFZDTEV0QlFVczNiMElzUzBGQlMzaEdMRTFCUXpOQ1FTeExRVUZMYzNWQ0xFOUJRVk4wZFVJc1MwRkJTM04xUWl4UFFVRlBPVzlDTEV0QlFVdDRSaXhOUVVNdlFrRXNTMEZCUzNWMVFpeEpRVUZOZG5WQ0xFdEJRVXQxZFVJc1NVRkJTUzl2UWl4TFFVRkxlRVlzVFVGRGVrSkJMRXRCUVV0M2RVSXNWVUZCV1hoMVFpeExRVUZMZDNWQ0xGVkJRVlZvY0VJc1MwRkJTM2hHTEUxQlEzSkRRU3hMUVVGTGVYVkNMR1ZCUVdsQ2VuVkNMRXRCUVV0NWRVSXNaVUZCWldwd1FpeExRVUZMZUVZc1RVRkRMME5CTEV0QlFVc3dkVUlzWlVGQmFVSXhkVUlzUzBGQlN6QjFRaXhsUVVGbGJIQkNMRXRCUVV0NFJpeE5RVU12UTBFc1MwRkJTekoxUWl4dlFrRkJjMEl6ZFVJc1MwRkJTekoxUWl4dlFrRkJiMEp1Y0VJc1MwRkJTM2hHTEUxQlEzcEVRU3hMUVVGTE5IVkNMRmxCUVdNMWRVSXNTMEZCU3pSMVFpeFpRVUZaY0hCQ0xFdEJRVXQ0Uml4TlFVTjZRMEVzUzBGQlN6SnlRaXhKUVVGTkxFZEJRMWd6Y2tJc1MwRkJTeloxUWl4SlFVRk5MRU5CUVVNc1JVRkRXamQxUWl4TFFVRkxPSFZDTEZGQlFWVXNRMEZCUXl4RlFVTm9RamwxUWl4TFFVRkxiM1ZDTEZWQlFWbEJMRU5CUTNKQ0xFTkJRMEVzUjBGQlFVY3NRMEZCU1RWRExFVkJRVXR2UkN4RlFVRlJOWEJDTEVWQlFWRnBTaXhKUVVOcVFpeEZRVUZKYzJZc1JVRkJVWEpHTEZsQlFWbHNha0lzUlVGQlVXNUdMRTlCUVdsRExHMUNRVUZxUWtFc1MwRkJTMjFHTEV0QlEzSkVia1lzUzBGQlN6SnlRaXhKUVVGTlFTeEZRVU5ZTTNKQ0xFdEJRVXR0Uml4SFFVRlJOSEJDTEVWQlFWRXpaMElzU1VGRmNrSndUeXhMUVVGTE5uVkNMRWxCUVVsRkxFdEJRMVF2ZFVJc1MwRkJTekp5UWl4SlFVRk5RU3hGUVVOWU0zSkNMRXRCUVVzMmRVSXNTVUZCU1VVc1IwRkJVWEpVTEV0QlFVdDJWeXhGUVVGUmFVb3NSMEZGZEVNc1EwRkRRU3hKUVVGQmFXZENMRU5CUVV0VkxFZEJRVkVzVjBGQlJVTXNTVUZEV0N4TlFVRk5ja1FzUlVGQlRUTnlRaXhMUVVGTE1uSkNMRWxCUTJwQ0xFbEJRVWt2WXl4RlFVRmhiRUlzUlVGQlMzaE5MRkZCUVZGMVR5eGxRVU14UWpSU0xFVkJRV0VzU1VGQlMwd3NSVUZCWVhaVUxFMUJReTlDZDJoQ0xFVkJRV3RDTEZkQlFWZEdMRWxCUXpkQ1J5eEZRVUZYTEVkQlFVZHVRaXhGUVVGVFF5eFZRVUZWVUN4RlFVRlRkbk5DTEZGQlFWRTJhRUlzVFVGQlRVVXNVVUZETlVRc1IwRkJTU3RNTEVWQlFWa3NRMEZEV25CblFpeEZRVUZoTUdVc1JVRkJZWEJ6UWl4UlFVRlJLMllzWTBGQll5dE9MRVZCUVZkd1owSXNXVUZETTBSNVV5eEZRVUZoTWs0c1JVRkJWek5PTEZkQlEzaENORTRzUjBGQmJVSXNTVUZCU1ROQ0xFVkJRV0Z3YzBJc1VVRkJVV3RuUWl4dlFrRkJiMEkwVGl4RlFVRlhNMDRzWTBGRE0wVXNUVUZCVFRGVUxFVkJRVlYzWml4RlFVRlhhbk5DTEZGQlFWRjNUeXhYUVVGWExFTkJRVVZ3UWl4bFFVRmpWeXhsUVVGblFrd3NTVUZET1VWelowSXNSVUZCVnl4SFFVRkhkbWhDTEVWQlFWRmtMRkZCUVZGakxFVkJRVkV6VEN4TlFVTXhReXhEUVVOQkxFMUJRVTF0ZEVJc1JVRkJWeXhIUVVGSE5VSXNSVUZCVjNKelFpeFJRVUZSYTNWQ0xHMUNRVUZ0UWtZc1NVRkJWMFFzU1VGRGNrVnFka0lzUzBGQlN6WjFRaXhKUVVGSlJTeEpRVUZWTEVWQlFVazNRaXhGUVVGdFFtaHpRaXhUUVVGVGFYVkNMRVZCUVZVc1NVRkJTM0JDTEVWQlFWTkZMRk5CUXpORmFuVkNMRXRCUVVzMmRVSXNTVUZCU1VVc1IwRkJVVE53UWl4SFFVRkhMRlZCUVZjc1NVRkJUWEJHTEV0QlFVdHZkVUlzVlVGQlZXbENMRmxCUVZrc1EwRkJSVEZFTEUxQlFVdHZSQ3hUUVVGUk5YQkNMRTlCUVZGM2IwSXNSVUZCUnpKQ0xHbENRVU14Um5SMlFpeExRVUZMTm5WQ0xFbEJRVWxGTEVkQlFWRXpjRUlzUjBGQlJ5eGhRVUZqTEV0QlF6bENMRTFCUVUxdGNVSXNSVUZCVnl4RFFVRkZOM0pDTEV0QlFVMHNWVUZEZWtJeFJDeExRVUZMYjNWQ0xGVkJRVlZwUWl4WlFVRlpMRU5CUVVVeFJDeE5RVUZMYjBRc1UwRkJVVFZ3UWl4UFFVRlJiM0ZDTEVWQlFWTTNja0lzUzBGQlRUaHlRaXhUUVVGVlJDeFhRVU53UlhaMlFpeExRVUZMTm5WQ0xFbEJRVWxGTEV0QlJYQkNMM1ZDTEV0QlFVczJkVUlzU1VGQlNVVXNSMEZCVVROd1FpeEhRVUZITEdkQ1FVRnJRamhGTEVsQlEyeERaMElzVVVGQlVXaENMRTFCUVUwc2IwSkJRWEZDTm10Q0xFVkJRVkUzYTBJc1MwRkZMME5zU3l4TFFVRkxNSFZDTEdWQlFXVkxMRVZCUVZGdVowSXNSMEZETlVJMVR5eExRVUZMTW5WQ0xHOUNRVUZ2UWtrc1JVRkJVVzVuUWl4RlFVRlplVk1zUlVGRGFrUXNRMEZEUVN4TlFVRkJhVTRzUTBGQlQyMUNMRVZCUVVkV0xFbEJRMFlzUlVGQlNYSkNMRVZCUVZGeVJpeFpRVUZaTUVjc1JVRkJVUzkxUWl4TFFVRkxOblZDTEUxQlEzSkROM1ZDTEV0QlFVczJkVUlzU1VGQlNVVXNSMEZCYjBJc1dVRkZja01zUTBGRFFTeFRRVUZCVUN4SFFVRmpMRU5CUTJRc1kwRkJRVU1zUjBGQmJVSXNRMEZEYmtJc1kwRkJRVU1zUTBGQlpVc3NSVUZCVVc1blFpeEhRVU5rTlU4c1MwRkJTeloxUWl4SlFVRkpSU3hIUVVGUk0xUXNWMEZCVjNoTkxFbEJRemRDTlU4c1MwRkJTeloxUWl4SlFVRkpSU3hIUVVGUk0zQkNMRWRCUVVjeWNFSXNSVUZCVTFNc1NVRkRla0lzVFVGQlRUZEVMRVZCUVUwemNrSXNTMEZCU3pKeVFpeEpRVU5ZZUcxQ0xFVkJRVk54Y1VJc1JVRkJVemx5UWl4TFFVTnNRbWR6UWl4RlFVRnJRbTVETEVWQlFWZHljMElzVVVGQlVYbDFRaXh0UWtGRE0wTXpka0lzUzBGQlMyOTFRaXhWUVVGVmFVSXNXVUZCV1N4RFFVRkZNVVFzVFVGQlMyOUVMRk5CUVZFMWNFSXNVMEZCVVhWeFFpeHJRa0ZCYVVKR0xHTkJSeTlGTEVOQlEwRXNiVUpCUVVGaUxFTkJRVzlDU1N4RlFVRlJibWRDTEVWQlFWbDVVeXhIUVVOd1F5eEpRVUZMY21oQ0xFdEJRVXMyZFVJc1NVRkJTVVVzUjBGQlVUTlVMRmRCUVZkNFRTeEhRVUZoTEVOQlF6RkRMRTFCUVUwclJTeEZRVUZaTm1Jc1NVRkRaQ3hOUVVGTk4wUXNSVUZCVFROeVFpeExRVUZMTW5KQ0xFbEJRMWg0YlVJc1JVRkJVM0Z4UWl4RlFVRlRPWEpDTEV0QlEyeENaM05DTEVWQlFXdENia01zUlVGQlYzSnpRaXhSUVVGUk1IVkNMSGRDUVVNelF6VjJRaXhMUVVGTGIzVkNMRlZCUVZWcFFpeFpRVUZaTEVOQlFVVXhSQ3hOUVVGTGIwUXNVMEZCVVRWd1FpeFRRVUZSZFhGQ0xHdENRVUZwUWtZc1kwRkZka1Y0ZGtJc1MwRkJTeloxUWl4SlFVRkpSU3hIUVVGUk0zQkNMRWRCUVVjc1VVRkJVWGRLTEVsQlFXTXJSU3hIUVVNeFEzaFVMRTlCUVU5dFV5eExRVUZMSzA4c1IwRkJXVGRrTEZGQlFWTXlRaXhKUVVWNlFtdGpMRVZCUkZGc1l5eEpRVWRTYmtZc1MwRkJTeloxUWl4SlFVRkpSU3hIUVVGUk0zQkNMRWRCUVVjc1IwRkJSMFFzUzBGQlZYbEtMRWxCUVdNclJTeEpRVWN6UkN4RFFVTktMRU5CUTBFc1YwRkJRV2xpTEVOQlFWbEhMRVZCUVZGdVowSXNSMEZEV2pWUExFdEJRVXMyZFVJc1NVRkJTVVVzU1VGQlZ5OTFRaXhMUVVGTE5uVkNMRWxCUVVsRkxFZEJRVkV6VkN4WFFVRlhNbFFzUzBGRGFFUXZkVUlzUzBGQlN6WjFRaXhKUVVGSlJTeEhRVUZSTVZRc1NVRkJTVEJVTEVkQlEzSkNMM1ZDTEV0QlFVczJkVUlzU1VGQlNVVXNSMEZCVVRGVUxFbEJRVWw2VFN4SFFVVTNRaXhGUVVWS2RrOHNSVUZCUVN4UlFVRnJRakIwUWl4RExEaENRM1pKYkVJMWRFSXNUMEZCVDBNc1pVRkJaVU1zUlVGQlV5eGhRVUZqTEVOQlFVVkRMRTlCUVU4c1NVRkRkRVJFTEVWQlFWRm5SQ3hqUVVGblFtaEVMRVZCUVZGNVV5eGhRVUZsZWxNc1JVRkJVVGhFTEdOQlFXZENPVVFzUlVGQlVXOVVMR0ZCUVdWd1ZDeEZRVUZSTUVJc1kwRkJWeXhGUVVOcVNERkNMRVZCUVZFeVl5d3dRa0Z4UTFJc1YwRkRTU3hQUVVGUExFbEJRVWsyVXl4blFrRkJaMElzUTBGRGRrSXNVMEZCUVVNc1EwRkJWWEp6UWl4RlFVRlJjM05DTEVsQlEyUXNSVUZCU1VNc1JVRkJhMEowWXl4elFrRkJjMEpxVVN4RlFVRlRNRkFzU1VGRGFrUXNUVUZCVFRoakxFVkJRV2RDT1dNc1JVRkJZM1pMTEU5QlEzQkRMRWxCUVVsemJrSXNSVUZGU2l4SFFVRkpSQ3hGUVVGblFpeEpRVU5vUWtNc1JVRkJVeXhKUVVGSmVHSXNWMEZCVnl4SFFVTjRRaXhKUVVGSmVXSXNVMEZCVTBRc1JVRkJUekZqTEZGQlFWRTBZeXhUUVVGVExFVkJRVWRJTEZGQlJYWkRMRWRCUVVsQkxFVkJRV2RDTEUxQlFVOHNRMEZETlVKRExFVkJRVk1zU1VGQlNYaGlMRmRCUVZjc1IwRkRlRUlzVFVGQlRUSmlMRVZCUVU4c1NVRkJTVVlzVTBGQlUwUXNSVUZCVHpGakxGRkJRMnBETm1Nc1JVRkJTMFFzVTBGQlV5eEZRVUZITEV0QlEycENReXhGUVVGTFF5eFZRVUZWTEVWQlFVZE1MRVZCUTNSQ0xFdEJRMHNzUTBGRFJFTXNSVUZCVXl4SlFVRkplR0lzVjBGQlZ5eEhRVU40UWl4TlFVRk5NbUlzUlVGQlR5eEpRVUZKUml4VFFVRlRSQ3hGUVVGUE1XTXNVVUZEYWtNMll5eEZRVUZMUkN4VFFVRlRMRVZCUVVjc1MwRkRha0pETEVWQlFVdEZMR0ZCUVdFc1JVRkJSME1zVDBGQlQxQXNSMEZEYUVNc1EwRkZTWGh6UWl4RlFVRlBUQ3hOUVVFclFpeHBRa0ZCYUVKTExFVkJRVTlNTEU5QlF6ZENPSE5DTEVWQlFVOHNTVUZCVFN4TFFVVnFRa2dzUlVGQlYxVXNVVUZCVVZBc1IwRkRia0pJTEVWQlFWZFZMRkZCUVZGMFpDeEpRVVV6UWl4SFFVVlNMRVZCY0VWQk9WTXNSVUZCVVc5akxEQkNRVEpHVWl4VFFVRnRRMmxWTEVWQlFWbHVkRUlzUjBGRGRFTnZkRUlzU1VGRFJFRXNSVUZCWlN4SlFVRkpReXhoUVVWMlFpeE5RVUZOUXl4RlFVRlRMRWRCUTJZc1NVRkJTVU1zUlVGQlVTeEZRVU5TUXl4SFFVRnJRaXhGUVVOc1FtaFRMRWRCUVZjc1JVRkRaaXhQUVVGUExFbEJRVWs0VVN4blFrRkJaMElzUTBGRGRrSXNVMEZCUVVNc1EwRkJWV3RDTEVWQlFVOXFRaXhIUVVWaUxFbEJSRUZqTEVWQlFVOXlhRUlzUzBGQlMzZG9RaXhMUVVORExFTkJRMVFzUjBGQll5eEpRVUZXUml4RlFVRnhReXhEUVVOeVF5eEhRVUZKUnl4RlFVRlpTaXhIUVVGVkxFVkJRM1JDTEUxQlJVb3NUVUZCVFZnc1JVRkJVMmRDTEVWQlFXRk1MRVZCUVZFc1IwRkRjRU01VWl4SlFVRnJReXhMUVVGMFFtMVNMRVZCUVU4c1NVRkRia0poTEVWQlFUWkNMRWxCUVZwaUxFVkJRVThzUjBGRmNFSlpMRVZCUkVGRExFVkJRV2xDTEVsQlExUXNSVUZGWjBJc1RVRkJia0pCTEVWQlEwY3NSVUZIUVN4RFFVVm9RaXhOUVVOTExFZEJRV01zU1VGQlZrUXNSVUZCYVVRc1EwRkRkRVFzUjBGQlNVY3NSVUZCV1Vvc1IwRkJWU3hGUVVOMFFpeE5RVVZLTEUxQlFVMU5MRVZCUVdORUxFVkJRV0ZNTEVWQlFWRXNSMEZEZWtORkxFVkJRV2xDTEVsQlFVbGFMRk5CUVZOblFpeEZRVUZaTTJRc1QwRkJVVEprTEVWQlFWbDRZeXhYUVVGWmQyTXNSVUZCV1hadlFpeFJRVUZSZDI5Q0xGVkJRVlVzUjBGRGVFZE9MRVZCUVZFc1EwRkRXaXhOUVVOTExFZEJRV01zU1VGQlZrRXNSVUZCYVVRc1EwRkRkRVFzUjBGQlNVY3NSVUZCV1Vvc1IwRkJWU3hGUVVOMFFpeE5RVVZLTEUxQlFVMU5MRVZCUVdORUxFVkJRV0ZNTEVWQlFWRXNSMEZEYmtOU0xFVkJRVThzU1VGQlNVWXNVMEZCVTJkQ0xFVkJRVmt6WkN4UFFVRlJNbVFzUlVGQldYaGpMRmRCUVZsM1l5eEZRVUZaZG05Q0xGRkJRelZGZVc5Q0xFVkJRVWxvUWl4RlFVRkxhVUlzVlVGQlZTeEhRVU42UWl4SFFVRkpSQ3hGUVVGSk4yOUNMRXRCUVVzcmIwSXNTVUZCU1N4RlFVRkhMRWxCUVZjc1JVRkJSeXhEUVVVNVFuaENMRVZCUVZkVkxGRkJRVkV4WkN4RlFVRmhTaXhqUVVOb1F5eExRVU5LTEVOQlEwRnZaU3hGUVVGcFFrMHNSVUZCU1RkdlFpeExRVUZMSzI5Q0xFbEJRVWtzUlVGQlJ5eEpRVUZOYkVJc1JVRkJTMmxDTEZWQlFWVXNSMEZEZEVSU0xFVkJRVkVzUTBGRFdpeExRVU5MTEVOQlEwUXNSMEZCU1Vjc1JVRkJXVW9zUjBGQlZVVXNSVUZEZEVJc1RVRkZTaXhOUVVGTk0zUkNMRVZCUVU4NGRFSXNSVUZCWVV3c1JVRkJVVVVzUjBGRGJFTm9RaXhGUVVGWFZTeFRRVUZSTEVWQlFVbGxMRVZCUVd0Q01XVXNZMEZCWTJsTkxFVkJRVmN6WWl4RlFVRlBkWFJDTEVWQlFXRTFiMElzVDBGQlR6TkZMRWRCUVU5SExFbEJRM0JIZFhSQ0xFVkJRVkVzUTBGRFdpeERRVU5CTEVkQlFYVkNMRWxCUVc1Q1F5eEhRVUYzUWtFc1JVRkJhVUpNTEVWQlFWa3NRMEZEY2tSWUxFVkJRVmRWTEZGQlFWRXhaQ3hGUVVGaFNpeGpRVU5vUXl4TFFVTktMRU5CUTBvc1EwRkRTaXhIUVVWU0xFVkJOMHBCTEUxQlFVMXhaQ3hGUVVGdlFpeEZRVUZSTEUxQlEyeEROM1pDTEU5QlFVOURMR1ZCUVdWRExFVkJRVk1zWlVGQlowSXNRMEZCUlN0UkxGbEJRVmtzUlVGQlRVVXNTVUZCU3l4WFFVRmpMRTlCUVU4d1pTeEZRVUZyUW5aakxGbEJRV01zU1VGRE4wZ3NUVUZCVFN0a0xFVkJRVzlDTEVWQlFWRXNUVUZEYkVOeWVFSXNUMEZCVDBNc1pVRkJaVU1zUlVGQlV5eGxRVUZuUWl4RFFVRkZLMUVzV1VGQldTeEZRVUZOUlN4SlFVRkxMRmRCUVdNc1QwRkJUMnRuUWl4RlFVRnJRakZsTEZsQlFXTXNTVUZETjBnc1RVRkJUVU1zUlVGQlpTeEZRVUZSTEUxQlEzWkNNR1VzUlVGQldVTXNUMEZCVDBNc1lVRkJZU3hKUVN0RWRFTXNTVUZCU1doQ0xFVkJRMG9zVTBGQlUwMHNSVUZCV1Vvc1IwRkRha0lzVDBGQlQwRXNSVUZCVDJwUUxFOUJRVThzUTBGQlEwTXNSVUZCUzIxUUxFbEJRVlZ1VUN4RlFVRk5iVkFzUlVGQlRYQnZRaXhQUVVGUkxFVkJRemRFTEVOQlEwRXNVMEZCVTNOdlFpeEZRVUZoVEN4RlFVRlJkazhzUjBGRE1VSXNSMEZCU1hWUExFVkJRVThzUjBGQlIycHZRaXhUUVVGWE1Gb3NSVUZEY2tJc1QwRkJUM1ZQTEVWQlFVOTJSaXhSUVVWc1FpeE5RVUZOT1Znc1JVRkJVeXhKUVVGSmEwSXNWMEZCVnpST0xFZEJRemxDTEVsQlFVbDJWeXhGUVVGSkxFVkJRMUlzU1VGQlN5eEpRVUZKTTBZc1JVRkJTU3hGUVVGSFFTeEZRVUZKYTJNc1JVRkJUV3hqTEVsQlEzUkNiMDRzUlVGQlQzQk9MRWRCUVV0NWNVSXNSVUZCVHl4SFFVRkhPV3RDTEV0QlEyeENRU3hKUVVGTk9HdENMRVZCUVU4c1IwRkJSMnB2UWl4VFFVTm9RbWx2UWl4RlFVRlBka1lzVVVGRFVIWm1MRVZCUVVrc1IwRk5XaXhQUVVoSk9HdENMRVZCUVU5cWIwSXNVVUZCVlcxRUxFVkJRVWs0YTBJc1JVRkJUeXhIUVVGSGFtOUNMRk5CUXk5Q2FXOUNMRVZCUVU4c1IwRkJTMEVzUlVGQlR5eEhRVUZIZW1wQ0xFMUJRVTF5UWl4SlFVVjZRbmxJTEVOQlExZ3NRMEZ3UlVGdVZDeEZRVUZST0VRc1kwRm1ZeXhEUVVGRFJDeEZRVUZUZVZBc1MwRkZOVUlzVFVGQlRTOUxMRVZCUVZNeFJTeEZRVUZSTUVVc1QwRkRha0p4VWl4RlFVRnBRaXhKUVVGSk1FSXNUVUZCVFM5VExFZEJRMnBETEVsQlFVbG5jRUlzUlVGQlVTeEZRVU5hTVhSQ0xFVkJRVkZXTEZGQlFWRXNRMEZCUTBNc1JVRkJVVEpETEUxQlJYSkNMRVZCUVVrMGNFSXNSVUZCYTBKMll5eGpRVUZqYUZFc1IwRkJVU3hGUVVGUk1GQXNTVUZEYUVRNFJ5eEZRVUZsTjFRc1IwRkJTeXROTEVsQlEyUjVaU3hKUVVGVmFIQkNMRWRCUTFvclN5eEZRVUZUYzBjc1JVRkJaV2hKTEV0QlFVdDNaaXhUUVd0Q04wTndlRUlzUlVGQlVXZEVMR05CV21Nc1EwRkJRM2QxUWl4RlFVRm5RblIxUWl4TFFVTnVReXhOUVVGTk1GY3NSVUZCYVVJMFdDeEZRVUZsTTNCQ0xFMUJRVTExY0VJc1IwRkRkRU4yZEVJc1JVRkJWU3hIUVVOb1FpeEpRVUZMTEVsQlFVbHJReXhGUVVGSkxFVkJRVWRCTEVWQlFVazJWQ3hGUVVGbGNsSXNUMEZCVVhoRExFbEJRVXNzUTBGRE5VTXNUVUZCVFRCeVFpeEhRVUZuUWl4RlFVRkpUaXhGUVVGclFqRmxMR05CUVdOdFNDeEZRVUZsTjFRc1IwRkJTVGRETEVkQlJUZEZMRWRCUkVGWExFVkJRVkZ6VEN4TFFVRkxjMmxDTEVkQlEyTXNWVUZCZGtKQkxFVkJRV053ZFVJc1MwRkRaQ3hMUVVWU0xFTkJRMEVzVDBGQlQxRXNSMEU0U0ZnM1JDeEZRVUZSTUVJc1UwRkJWeXhETERSQ1EyeExia0kxUWl4UFFVRlBReXhsUVVGbFF5eEZRVUZUTEdGQlFXTXNRMEZCUlVNc1QwRkJUeXhKUVVOMFJDeE5RVUZOZVhoQ0xFVkJRMFlzZVVKQlFWZERMRWRCUTFBc1RVRkJUeXhSUVVOWUxFTkJRMEVzZDBKQlFWZERMRWRCUTFBc1RVRkJUeXhQUVVOWUxFTkJRMEVzZVVKQlFWYzNReXhIUVVOUUxFMUJRVThzVVVGRFdDeERRVU5CTEhWQ1FVRlhPRU1zUjBGRFVDeE5RVUZQTEUxQlExZ3NRMEZEUVN3eVFrRkJWME1zUjBGRFVDeE5RVUZQTEU5QlExZ3NRMEZEUVN4elFrRkJWME1zUjBGRFVDeE5RVUZQTEZWQlExZ3NRMEZEUVN4eFEwRkJWME1zUjBGRFVDeE5RVUZQTEVkQlExZ3NRMEZEUVN4dFEwRkJWME1zUjBGRFVDeE5RVUZQTEVkQlExZ3NRMEZEUVN3eVFrRkJWME1zUjBGRFVDeE5RVUZQTEZOQlExZ3NRMEZEUVN4cFEwRkJWME1zUjBGRFVDeE5RVUZQTEUxQlExZ3NRMEZEUVN4elEwRkJWME1zUjBGRFVDeE5RVUZQTEZkQlExZ3NRMEZEUVN4dlFrRkJWME1zUjBGRFVDeE5RVUZQTEZkQlExZ3NRMEZEUVN4clFrRkJWME1zUjBGRFVDeE5RVUZQTEZOQlExZ3NRMEZEUVN4blEwRkJWME1zUjBGRFVDeE5RVUZQTEcxQ1FVTllMRU5CUTBFc1owTkJRVmRETEVkQlExQXNUVUZCVHl4cFFrRkJhVUprTEVWQlFWTlJMRzlDUVVGdlFsSXNSVUZCVTJVc1kwRkRiRVVzUTBGRFFTdzJRa0ZCVjI1RUxFZEJRMUFzVFVGQlR5eHBRa0ZCYVVKdlF5eEZRVUZUVXl3d1FrRkJNRUpVTEVWQlFWTmxMR05CUTNoRkxFTkJRMEVzYTBOQlFWZHNSQ3hIUVVOUUxFMUJRVThzYVVKQlFXbENiVU1zUlVGQlUxVXNLMEpCUVN0Q1ZpeEZRVUZUWlN4alFVTTNSU3hEUVVOQkxHZERRVUZYUXl4SFFVTlFMRTFCUVU4c2FVSkJRV2xDYUVJc1JVRkJVMUVzYjBKQlFXOUNVaXhGUVVGVFpTeGpRVU5zUlN4RFFVTkJMRFpDUVVGWFJTeEhRVU5RTEUxQlFVOHNhVUpCUVdsQ2FrSXNSVUZCVTFNc01FSkJRVEJDVkN4RlFVRlRaU3hqUVVONFJTeERRVU5CTEd0RFFVRlhSeXhIUVVOUUxFMUJRVThzYVVKQlFXbENiRUlzUlVGQlUxVXNLMEpCUVN0Q1ZpeEZRVUZUWlN4alFVTTNSU3hEUVVOQkxHbERRVUZYU1N4SFFVTlFMRTFCUVU4c1RVRkRXQ3hEUVVOQkxESkNRVUZYUXl4SFFVTlFMRTFCUVU4c1RVRkRXQ3hEUVVOQkxIVkNRVUZYVEN4SFFVTlFMRTFCUVU4c1IwRkRXQ3hEUVVOQkxHMURRVUZYVFN4SFFVTlFMRTFCUVU4c1pVRkRXQ3hEUVVOQkxHTkJRVmRxY2tJc1IwRkRVQ3hOUVVGUExFTkJRMGhyYlVJc1MwRkJUU3hEUVVOR1owWXNiVUpCUVc5Q0xFTkJRVVZETEU5QlFWRXNRMEZCUXl4bFFVTXZRa01zYjBKQlFYRkNMRU5CUVVNc1JVRkRkRUpETEd0Q1FVRnRRaXhEUVVGRlF5eExRVUZOTEVOQlFVTXNUMEZCVVVNc1VVRkJVeXhKUVVGTFF5eFBRVUZSTEV0QlF6RkVReXgxUWtGQmQwSXNRMEZCUlVRc1QwRkJVU3hEUVVGRExGVkJRVmNzVVVGRmJFUkZMRmRCUVZrc1EwRkRVbElzYlVKQlFXOUNMRU5CUVVNc1JVRkRja0pGTEc5Q1FVRnhRaXhEUVVOcVFra3NUMEZCVVN4RFFVRkRMRXRCUVUwc1YwRkJXU3hQUVVGUkxGbEJRMjVEUnl4SlFVRkxMRU5CUVVNc1kwRkJaU3hUUVVGVkxHbENRVUZyUWl4WFFVRlpMR1ZCUVdkQ0xIZENRVVZxUms0c2EwSkJRVzFDTEVOQlFVVlBMRTFCUVU4c1NVRkJTMG9zVDBGQlVTeExRVU42UTBNc2RVSkJRWGRDTEVOQlFVTXNSMEZGTjBKSkxGRkJRVk1zUTBGRFRGZ3NiVUpCUVc5Q0xFTkJRVU1zUlVGRGNrSkZMRzlDUVVGeFFpeERRVU5xUWtrc1QwRkJVU3hEUVVGRExFMUJRMVJITEVsQlFVc3NRMEZCUXl4alFVRmxMR2xDUVVGclFpeHBRa0ZGTTBOT0xHdENRVUZ0UWl4RFFVTm1UU3hKUVVGTExFTkJRVU1zYVVKQlFXdENMR2RDUVVONFFrTXNUVUZCVHl4TFFVVllTQ3gxUWtGQmQwSXNRMEZCUXl4SFFVVTNRa3NzWVVGQll5eERRVU5XV2l4dFFrRkJiMElzUTBGQlF5eEZRVU55UWtVc2IwSkJRWEZDTEVOQlEycENTU3hQUVVGUkxFTkJRVU1zUzBGQlRTeFhRVUZaTEU5QlFWRXNZVUZGZGtOSUxHdENRVUZ0UWl4RFFVTm1SeXhQUVVGUkxFdEJSVnBETEhWQ1FVRjNRaXhEUVVGRExFZEJSVGRDVFN4aFFVRmpMRU5CUTFaaUxHMUNRVUZ2UWl4RFFVRkRMRVZCUTNKQ1JTeHZRa0ZCY1VJc1EwRkRha0pKTEU5QlFWRXNRMEZCUXl4TFFVRk5MRmRCUVZrc1dVRkRNMEpITEVsQlFVc3NRMEZCUXl4VlFVRlhMR05CUVdVc1UwRkJWU3hwUWtGQmEwSXNWMEZCV1N4bFFVRm5RaXgzUWtGRk5VWk9MR3RDUVVGdFFpeERRVUZGUnl4UFFVRlJMRXRCUXpkQ1F5eDFRa0ZCZDBJc1EwRkJSVVFzVDBGQlVTeERRVUZETEZWQlFWY3NVVUZGYkVSUkxHMUNRVUZ2UWl4RFFVTm9RbVFzYlVKQlFXOUNMRU5CUVVNc1JVRkRja0pGTEc5Q1FVRnhRaXhEUVVGRlNTeFBRVUZSTEVOQlFVTXNUMEZEYUVOSUxHdENRVUZ0UWl4RFFVRkZSeXhQUVVGUkxFdEJRemRDUXl4MVFrRkJkMElzUTBGQlF5eEhRVVUzUWxFc1lVRkJZeXhEUVVOV1ppeHRRa0ZCYjBJc1EwRkJReXhGUVVOeVFrVXNiMEpCUVhGQ0xFTkJRVVZKTEU5QlFWRXNRMEZCUXl4UFFVTm9RMGdzYTBKQlFXMUNMRU5CUVVWSExFOUJRVkVzUzBGRE4wSkRMSFZDUVVGM1FpeERRVUZETEVkQlJUZENVeXhWUVVGWExFTkJRMUJvUWl4dFFrRkJiMElzUTBGQlF5eEZRVU55UWtVc2IwSkJRWEZDTEVOQlEycENUeXhKUVVGTExFTkJRVU1zVjBGQldTeFRRVUZWTEhGQ1FVVm9RMDRzYTBKQlFXMUNMRU5CUVVWakxFdEJRVTBzUzBGRE0wSldMSFZDUVVGM1FpeERRVUZETEVkQlJUZENWeXhMUVVGTkxFTkJRMFpzUWl4dFFrRkJiMElzUTBGQlF5eEZRVU55UWtVc2IwSkJRWEZDTEVOQlEycENSU3hMUVVGTkxFTkJRVU1zVFVGQlR5eFRRVU5rU3l4SlFVRkxMRU5CUVVNc1dVRkJZU3hsUVVGblFpeHRRa0ZCYjBJc2EwSkJRM1pFU0N4UFFVRlJMRU5CUVVNc1YwRkJXU3hSUVVGVExGZEJRVmtzUzBGQlRTeE5RVUZQTEZkQlFWa3NWVUZCVnl4blFrRkZiRVpJTEd0Q1FVRnRRaXhEUVVGRExFVkJRM0JDU1N4MVFrRkJkMElzUTBGRGNFSkhMRTFCUVU4c1NVRkRVRW9zVDBGQlVTeERRVUZETEV0QlFVMHNWMEZCV1N4WFFVTXpRa1lzUzBGQlRTeERRVUZETEZOQlIyWmxMSGRDUVVGNVFpeERRVU55UW01Q0xHMUNRVUZ2UWl4RFFVRkZUU3hQUVVGUkxFTkJRVU1zWjBKQlF5OUNTaXh2UWtGQmNVSXNRMEZEYWtKSkxFOUJRVkVzUTBGQlF5eFBRVUZSTEZkQlFWa3NUVUZETjBKR0xFdEJRVTBzUTBGQlF5eFJRVVZZUkN4clFrRkJiVUlzUTBGQlJVY3NUMEZCVVN4TFFVTTNRa01zZFVKQlFYZENMRU5CUVVNc1IwRkZOMEo0V2l4WFFVRlpMRU5CUTFKcFdpeHRRa0ZCYjBJc1EwRkJReXhGUVVOeVFrVXNiMEpCUVhGQ0xFTkJRVU1zUlVGRGRFSkRMR3RDUVVGdFFpeERRVUZETEVWQlEzQkNTU3gxUWtGQmQwSXNRMEZCUlVRc1QwRkJVU3hEUVVGRExGVkJRVmNzVVVGSE1VUXNRMEZEUVN3eVFrRkJUMk1zUTBGQmNVSjBka0lzUjBGRGVFSXNUVUZCVFhWMlFpeEZRVUZWZG5aQ0xFVkJRVThyUXl4TlFVRk5ObkJDTEVWQlFWTmxMR05CUTNSRExFZEJRVWswUWl4SFFVRlhRU3hGUVVGUkxFZEJRVWtzUTBGRGRrSXNUVUZCVFVNc1JVRkJWMnBFTEU5QlFVOW5SQ3hGUVVGUkxFZEJRVWQ0YzBJc1RVRkJUU3hMUVVGTExFbEJRemxETEVsQlFVa3djMElzUlVGWFNpeFBRVlJKUVN4RlFVUkJSaXhGUVVGUkxFZEJRVWRxYjBJc1VVRkJVU3hKUVVGSmMyeENMRVZCUVZOUkxIRkNRVUYxUWl4RlFVTXhRMUlzUlVGQlUxRXNhVUpCU1d4Q2JVTXNSVUZCVVN4SFFVRkhhbTlDTEZGQlFWRXNTVUZCU1hOc1FpeEZRVUZUVXl3eVFrRkJOa0lzUlVGRGRrUlVMRVZCUVZOVExIVkNRVU5VVkN4RlFVRlRWU3cwUWtGSGFFSXNRMEZCUld0RExGZEJRVlZETEdGQlFWbERMRmRCUkZwdVJDeFBRVUZQWjBRc1JVRkJVU3hKUVVWMFF5eERRVVZKTEV0QlFVMHNjME5CUldRc1EwRkRRU3h2UTBGQlQwa3NRMEZCT0VKRUxFZEJRMnBETEVsQlFVbEZMRVZCUVc5Q0xFTkJRVVZ5V2l4TlFVRk5MRVZCUVUxeldpeFhRVUZYTEVkQlEycEVMRTFCUVUxRExFVkJRV05zUkN4RlFVRlROWEJDTEVsQlN6ZENMRTlCU2trNGMwSXNSVUZCV1Vvc1MwRkRXa1VzUlVGQmEwSnlXaXhQUVVGVGRtSXNUMEZCVDIxVExFdEJRVXN5YVVJc1JVRkJXVW9zUjBGQldYSkNMRzFDUVVGdFFqVnhRaXhQUVVGVExFZEJRek5HYlhOQ0xFVkJRV3RDUXl4WlFVRmpOekJDTEU5QlFVOXRVeXhMUVVGTE1tbENMRVZCUVZsS0xFZEJRVmxxUWl4M1FrRkJkMEpvY2tJc1QwRkJVeXhKUVVWc1IyMXpRaXhEUVVOWUxFTkJRMEVzSzBKQlFVOUhMRU5CUVhsQ1F5eEZRVUZWVUN4SFFVTjBReXhQUVVGSlFTeEZRVUZYYm05Q0xGRkJRVkVzUjBGQlIzTnNRaXhGUVVGVFRTdzJRa0ZCTmtKT0xFVkJRVk5STEcxQ1FVRnRRbElzUlVGQlUwOHNOa0pCUVN0Q0xFVkJRM3BJVUN4RlFVRlRVU3hwUWtGRmFFSnhReXhGUVVGWGJtOUNMRkZCUVZFc1IwRkJSM05zUWl4RlFVRlRUU3cyUWtGQk5rSk9MRVZCUVZOVkxEaENRVUU0UWxZc1JVRkJVMDhzTmtKQlFTdENMRVZCUTNCSlVDeEZRVUZUVlN3MFFrRkZhRUp0UXl4RlFVRlhibTlDTEZGQlFWRXNSMEZCUjNOc1FpeEZRVUZUVFN3MlFrRkJOa0pPTEVWQlFWTlRMSGxDUVVGNVFsUXNSVUZCVTA4c05rSkJRM1pITEVWQlEwOVFMRVZCUVZOVExIVkNRVVZpVkN4RlFVRlRWeXhUUVVOd1FpeERRVU5CTEcxRFFVRlBNRU1zUTBGQk5rSkVMRVZCUVZWUUxFZEJSVEZETEU5QlJHRTNReXhGUVVGVGMwUXNOa0pCUVRaQ1ZDeEZRVVYyUkN4RFFVTkJMRzFEUVVGUFV5eERRVUUyUWxRc1IwRkRhRU1zVDBGQk1rUXNTVUZCZGtSQkxFVkJRVmR1YjBJc1VVRkJVWE5zUWl4RlFVRlRZeXgxUWtGRGNrSXJRaXhGUVVGWGFuSkNMRkZCUVZGdmIwSXNSVUZCVTJNc2MwSkJRWFZDWkN4RlFVRlRaMElzZFVKQlJXWXNTVUZCY0VRMlFpeEZRVUZYYm05Q0xGRkJRVkZ6YkVJc1JVRkJVM0JETEc5Q1FVTnlRbWxHTEVWQlFWZHFja0lzVVVGQlVXOXZRaXhGUVVGVGNFTXNiVUpCUVc5Q2IwTXNSVUZCVTJsQ0xHOUNRVVZRTEVsQlFYcEVORUlzUlVGQlYyNXZRaXhSUVVGUmMyeENMRVZCUVZOdVF5eDVRa0ZEY2tKblJpeEZRVUZYYW5KQ0xGRkJRVkZ2YjBJc1JVRkJVMjVETEhkQ1FVRjVRbTFETEVWQlFWTnJRaXg1UWtGRmJFVXlRaXhEUVVOWUxFTkJRMEVzYzBKQlFVOVZMRU5CUVdkQ1ZDeEZRVUZaVlN4RlFVRlpReXhIUVVNelF5eE5RVUZOUXl4RlFVRmpXaXhGUVVGWGJISkNMRkZCUVZGdmIwSXNSVUZCVTJNc2MwSkJRWFZDTEVsQlEycEZiME1zUlVGQlkyeEVMRVZCUVZNMWNFSXNTMEZEZGtJc2JVSkJRVVZyY2tJc1JVRkJhMElzYjBKQlFVVkZMRWRCUVhkQ01FSXNSVUZCV1ZFc1IwRkRhRVVzU1VGQlNVTXNSVUZCWlN4RFFVTm1MRU5CUVVNelJDeEZRVUZUYjBJc2EwSkJRVzFDYzBNc1IwRjNRbXBETEU5QmRFSkJkREZDTEU5QlFVOXRVeXhMUVVGTGFXaENMRWRCUVhGQ0wzWkNMRkZCUVZOdGVVSXNTVUZEYWtORUxFVkJRV0ZETEV0QlEyUkVMRVZCUVdGRExFZEJRVmtzUTBGQlF5eEhRVU01UW5CRExFVkJRVzlDYjBNc1IwRkJWVzU1UWl4UlFVRlRiM2xDTEVsQlEyNURMRWxCUVV0R0xFVkJRV0ZETEVkQlFWVkRMRWRCUVdFc1EwRkRja01zU1VGQlNYUXhRaXhGUVVGUmFURkNMRVZCUVZkSkxFZEJRVlZETEVkQlF6ZENTaXhIUVVGcFFrRXNSVUZCWTBjc1NVRkJZVWdzUlVGQlkwY3NSMEZCVlVNc1MwRkRjRVYwTVVJc1JVRkJVV3N4UWl4RlFVRmpSeXhIUVVGVlF5eEpRVVZ3UTBZc1JVRkJZVU1zUjBGQlZVTXNSMEZCWTNReFFpeERRVU42UXl4TlFVZFNTQ3hQUVVGUGJWTXNTMEZCU3l0blFpeEhRVUZ2UWpkMlFpeFJRVUZUYlhsQ0xFbEJRMmhEUkN4RlFVRmhReXhMUVVOa1JDeEZRVUZoUXl4SFFVRlpMRU5CUVVNc1IwRkRPVUowUXl4RlFVRnRRbk5ETEVkQlFWVnVlVUlzVVVGQlUyOTVRaXhKUVVNM1FrWXNSVUZCWVVNc1IwRkJWVU1zUzBGRGVFSkdMRVZCUVdGRExFZEJRVlZETEVkQlFXTktMRTlCU1RGRFJTeERRVU5ZTEVOQlEwRXNkVUpCUVU5SExFTkJRV2xDZERCQ0xFVkJRV050TUVJc1JVRkJZMGtzUjBGRGFFUXNUVUZCVFV3c1JVRkJZME1zUlVGQllXaDVRaXhMUVVVelFuRjVRaXhGUVVSamFFVXNSVUZCVXpWd1FpeEpRVU5OYzNSQ0xFZEJRV0VzVjBGQlYyd3dRaXhWUVVNelJDeEpRVUZKZVRCQ0xFVkJRV2RDTEVOQlFVVXNRMEZCUTJwRkxFVkJRVk52UWl4clFrRkJiVUp6UXl4SFFYVkRia1FzVDBGMFEwRjBNVUlzVDBGQlQyMVRMRXRCUVV0NWFrSXNSMEZCWjBKMmVVSXNVVUZCVTNsNVFpeEpRVU5xUXl4SlFVRkpTQ3hGUVVGWlJ5eEhRV3REV2l4TFFVRk5MSGREUVVGM1ExQXNSVUZCWVdoNVFpeFRRVUZUZFhsQ0xFbEJiRU4yUXl4RFFVTTNRaXhOUVVGTlF5eEZRVUZqU0N4RlFVRmxSU3hIUVVOdVF5eEpRVUZKUlN4RlFVRnRRa3dzUlVGQldVY3NSMEZGTVVJc1ZVRkVSRVVzUlVGQmFVSXhNRUlzV1VGQldXVXNUMEZGTjBJeWVrSXNSVUZCYlVKQkxFVkJRV2xDUXl4blFrRkROMEpFTEVWQlFXbENSU3hYUVVOcVFrWXNSVUZCYVVKSExFdEJSMW9zVFVGQmFFSktMRVZCUTBGR0xFVkJRV2RDTEVsQlExUkJMRVZCUTBnc1EwRkJRME1zUjBGQmFVSkZMRWRCU1hSQ1JDeEZRVUZaTVhsQ0xGRkJRVk52ZVVJc1NVRkRha0lzVVVGQlowUm9kMElzU1VGQk5VTnJkMElzUlVGQldVY3NSMEZCWjBKTUxFZEJWVFZDTEV0QlFVMHNaMFJCUVdkRVJpeEZRVUZoYUhsQ0xGTkJRVk4xZVVJc1MwRkJhMEpNTEVsQlZEbEdTU3hGUVVGblFpeEpRVU5VUVN4RlFVTklMRU5CUVVORExFZEJRV2xDTEVsQlExaEVMRVZCUVdORExFZEJRMnBDTEVOQlFVTk1MRWRCUVdGRkxFVkJRVmxITEVkQlFXZENUQ3hOUVZOc1JTeEpRVXRIU1N4RFFVTllMRU5CUTBFc05FSkJRVTlQTEVOQlFYTkNNVUlzUlVGQldUSkNMRVZCUVdsQ0xFdEJRVTFETEVWQlFXbENMRTFCUXpkRkxFMUJRVGhDTEdsQ1FVRnVRa1FzUjBGQmEwUXNUMEZCYmtKRExFVkJReTlDTEVOQlFVVXZlVUlzUzBGQlRXMTRRaXhIUVVWWExHbENRVUZ1UWpKQ0xFZEJRWGxFTEdsQ1FVRnVRa01zUlVGRGRFTXNTVUZCUzBRc1MwRkJiVUpETEVWQlFXZENMM2xDTEV0QlFVMXRlRUlzUjBGRk0wSXNhVUpCUVc1Q01rSXNSMEZCZVVRc2FVSkJRVzVDUXl4RlFVTjBReXhKUVVGTFFTeEZRVUZuUWk5NVFpeExRVUZOYlhoQ0xFZEJSUzlDTEVsQlFVc3lRaXhGUVVGblFqbDVRaXhMUVVGTmJYaENMRVZCUTNSRExFVkJSVXA0TUVJc1JVRkJRU3hSUVVGclFqQjRRaXhETEZkRE9WUnNRaXhKUVVGSk1rVXNSVUZCU1N4SlFVTktOWEpDTEVWQlFWRXNSMEZCU2pSeVFpeEZRVU5LUXl4RlFVRlJMRWRCUVVvM2NrSXNSVUZEU2poeVFpeEZRVUZSTEVkQlFVcEVMRVZCUTBwRkxFVkJRVkVzUlVGQlNrUXNSVUZ6U2xJc1UwRkJVMFVzUlVGQlQzQnRRaXhGUVVGSmNXMUNMRVZCUVU4eFJpeEZRVUZITjNWQ0xFZEJRelZDTEVsQlFVbDNNRUlzUlVGQlYwUXNSMEZCWVN4SlFVRktNVVlzUlVGRGVFSXNUMEZCVHpkdlFpeExRVUZMZVhWQ0xFMUJRVTEyYlVJc1JVRkJTekpuUWl4SFFVRkxMRWxCUVUwM2RVSXNSMEZCVVhjd1FpeEZRVUZYTEVsQlFVMHNSMEZETjBRc1EwRjRTVUUxZEVJc1JVRkJUeTlKTEZGQlFWVXNVMEZCVlRCUkxFVkJRVXR0U2l4SFFVTTVRa0VzUlVGQlZVRXNSMEZCVnl4RFFVRkRMRVZCUTNSQ0xFbEJPRWRsZUVvc1JVRkRXSEZ0UWl4RlFTOUhRWEo2UWl4VFFVRmpjVTRzUlVGRGJFSXNSMEZCWVN4WFFVRlVjazRzUjBGQmNVSnhUaXhGUVVGSmJra3NUMEZCVXl4RlFVTndReXhQUVd0Q1NpeFRRVUZsUml4SFFVVmlMRTFCUkVGQkxFVkJRVTFuY0VJc1QwRkJUMmh3UWl4SlFVTk1SU3hQUVVGVExFdEJRV3BDTEVOQlIwRXNTVUZCU1dkQ0xFVkJRVkVzYlVsQlFXMUpLME1zUzBGRE4wbHFSU3hIUVVWR0xFZEJRVXRyUWl4RlFVRk1MRU5CUjBFc1NVRkJTWGx1UWl4RlFVRkpOa1lzVjBGQlYzUjBRaXhGUVVGTkxFbEJSWHBDTEZGQlJGbEJMRVZCUVUwc1NVRkJUU3hOUVVGTmFVSXNaVUZGTlVJc1NVRkJTeXhSUVVOTUxFbEJRVXNzVDBGRFRDeEpRVUZMTEUxQlEwd3NTVUZCU3l4TFFVTk1MRWxCUVVzc1NVRkRTQ3hQUVhwRVJTdHlRaXhUUVhsRVMzWkdMRVZCUTFRc1NVRkJTeXhSUVVOTUxFbEJRVXNzVDBGRFRDeEpRVUZMTEVsQlEwZ3NUMEZCVDBFc1JVRkJTWGRHTEVWQlEySXNTVUZCU3l4UFFVTk1MRWxCUVVzc1RVRkRUQ3hKUVVGTExFbEJRMGdzVDBGQlQzaEdMRVZCUVVsMVJpeEZRVU5pTEVsQlFVc3NVVUZEVEN4SlFVRkxMRTlCUTB3c1NVRkJTeXhOUVVOTUxFbEJRVXNzUzBGRFRDeEpRVUZMTEVsQlEwZ3NUMEZCVDNaR0xFVkJRVWx6Uml4RlFVTmlMRWxCUVVzc1ZVRkRUQ3hKUVVGTExGTkJRMHdzU1VGQlN5eFBRVU5NTEVsQlFVc3NUVUZEVEN4SlFVRkxMRWxCUTBnc1QwRkJUM1JHTEVWQlFVbDJiVUlzUlVGRFlpeEpRVUZMTEZWQlEwd3NTVUZCU3l4VFFVTk1MRWxCUVVzc1QwRkRUQ3hKUVVGTExFMUJRMHdzU1VGQlN5eEpRVU5JTEU5QlFVOTFiVUlzUlVGQlNYRkdMRVZCUTJJc1NVRkJTeXhsUVVOTUxFbEJRVXNzWTBGRFRDeEpRVUZMTEZGQlEwd3NTVUZCU3l4UFFVTk1MRWxCUVVzc1MwRkRTQ3hQUVVGUGNrWXNSVUZEVkN4UlFVTkZMRTlCTTBOS0xFTkJUa0VzUTBGdFJFWXNRMEY2UlZkcWJFSXNRMEZCVFRKRkxFZEJRMUlzUjBGQllTeFhRVUZVY2s0c1IwRkJjVUo1ZWtJc1UwRkJVM0J0UWl4SFFVTjJReXhQUVVGUGJVb3NSVUZCVVd0a0xFMUJNRWRHTVcxQ0xFVkJNVWRwUWtzc1IwRXlSelZDWjIxQ0xFVkJRVkYyZFVJc1MwRkJTMnRMTEVsQlFVbG9ReXhMUVVOU2EyMUNMRVZCUTBwRkxFVkJRVTl3YlVJc1JVRkJTWEZ0UWl4RlFVRlBTQ3hGUVVGSExFOUJSVEZDUnl4SFFVRlRTaXhGUVVOS1J5eEZRVUZQY0cxQ0xFVkJRVWx4YlVJc1JVRkJUMG9zUlVGQlJ5eFJRVVV4UWtrc1IwRkJVMnB6UWl4RlFVTktaM05DTEVWQlFVOXdiVUlzUlVGQlNYRnRRaXhGUVVGUGFuTkNMRVZCUVVjc1ZVRkZNVUpwYzBJc1IwRkJVMHdzUlVGRFNra3NSVUZCVDNCdFFpeEZRVUZKY1cxQ0xFVkJRVTlNTEVWQlFVY3NWVUZGZGtKb2JVSXNSVUZCU3l4UFFYWkRaQ3hUUVVGclFrRXNSMEZEYUVJc1NVRkJTWEZ0UWl4RlFVRlJkblZDTEV0QlFVdHJTeXhKUVVGSmFFTXNSMEZEY2tJc1QwRkJTWEZ0UWl4SFFVRlRTQ3hGUVVOS2NIVkNMRXRCUVV0NWRVSXNUVUZCVFhadFFpeEZRVUZMYTIxQ0xFZEJRVXNzU1VGRk1VSkhMRWRCUVZOS0xFVkJRMHB1ZFVJc1MwRkJTM2wxUWl4TlFVRk5kbTFDTEVWQlFVdHBiVUlzUjBGQlN5eEpRVVV4UWtrc1IwRkJVMnB6UWl4RlFVTktkRU1zUzBGQlMzbDFRaXhOUVVGTmRtMUNMRVZCUVVzMVJpeEhRVUZMTEVsQlJURkNhWE5DTEVkQlFWTk1MRVZCUTBwc2RVSXNTMEZCUzNsMVFpeE5RVUZOZG0xQ0xFVkJRVXRuYlVJc1IwRkJTeXhKUVVWMlFtaHRRaXhGUVVGTExFbEJRMlFzUTBGb1IzbERNbTFDTEVOQlFWTjBiVUlzUjBGRmFFUXNUVUZCVFN4SlFVRkpZeXhOUVVOU0xIZEVRVU5GTlVZc1MwRkJTME1zVlVGQlZUWkZMRWRCUlhKQ0xFTXNhVUpETDBKQk1WRXNSVUZCVVRKSkxGZEJOa2xTTEZOQlFXOUNReXhIUVZGdVFpeEhRVkJCUVN4RlFVRkxMRWxCUVUxcVNpeExRVUZMYTBvc1ZVRkJXU3hMUVVGUExFbEJRMnhEYkVvc1MwRkJTMjFLTEZkQlEwcHVTaXhMUVVGTGEwb3NWVUZCV1N4TlFVRlJMRXRCUXpGQ1JDeEZRVUZMTEVsQlEwcHFTaXhMUVVGTGEwb3NWVUZCV1N4TlFVRlJMRXRCUXpGQ0xFbEJRVTFGTEVWQlFVOHZTU3hSUVVGUlowb3NVMEZCVTNKS0xFdEJRVXR6U2l4UFFVVXZRblJLTEV0QlFVdHJTaXhWUVVOVUxFOUJSMFFzVFVGQlRVc3NSVUZCU1N4VlFVRlpka29zUzBGQlMzZEtMRTFCUXpOQ1VDeEZRVUZMVVN4UFFVRlBMRVZCUVVjc1JVRkJSMFlzUlVGQlJ5eHJRa0ZMY2tJc1NVRkJTWEpETEVWQlFWRXNSVUZEVW5kRExFVkJRVkVzUlVGRFdsUXNSVUZCU3l4SFFVRkhWU3hSUVVGUkxHTkJRV1ZETEVsQlEyaENMRTlCUVZaQkxFbEJSMG94UXl4SlFVTmpMRTlCUVZZd1F5eEpRVWRJUml4RlFVRlJlRU1zVFVGSlZpdENMRVZCUVV0UkxFOUJRVTlETEVWQlFVOHNSVUZCUjBnc1JVRkRka0lzUlVFM1MwRnNTaXhGUVVGUmQwb3NTMEVyVEZJc1UwRkJZME1zUjBGRFlpeEpRVU5MUVN4RlFVTklla29zUlVGQlVUQktMRkZCUVZGRExGRkJRVkVzVVVGQlUwWXNSMEZGYWtONlNpeEZRVUZSTUVvc1VVRkJVVVVzVjBGQlZ5eFJRVVUzUWl4RFFVRkZMRTFCUVU5RExFZEJSMVFzUTBGRFJDeEZRWHBOUVRkS0xFVkJRVkU0U2l4TFFXbE9VaXhYUVVORExFbEJRVWxETEVWQlEwb3NTVUZEUTBFc1JVRkJTUzlLTEVWQlFWRXdTaXhSUVVGUlRTeFJRVUZSTEZGQlF6ZENMRU5CUVVVc1RVRkJUMGdzUjBGSFZDeERRVTlCTEU5QlNrdEZMRWRCUVhkQ0xHOUNRVUZhUlN4VFFVRXlRaXhSUVVGVFFTeFZRVU53UkVZc1JVRkJTVVVzVVVGQlVVTXNTVUZCU1VNc1QwRkhWa29zUTBGRFVpeEZRUzlPUVM5S0xFVkJRVkUyU1N4VlFYbEhVaXhYUVVsRExFZEJRWE5DTEc5Q1FVRllkVUlzVVVGQk1FSkJMRTlCUVU5SUxGVkJRVzlETEdGQlFYaENSeXhQUVVGUFNDeFJRVUZSTlVjc1RVRkJkVUlyUnl4UFFVRlBTQ3hSUVVGUlNTeFJRVU0xUnl4UFFVRlBMRVZCU1ZJc1IwRkJlVUlzYjBKQlFXUkRMRmRCUVRaQ1FTeFZRVUZWUXl4WFFVRmhSQ3hWUVVGVlF5eFZRVUZWUXl4alFVRmpha0lzVFVGQlRTeDVRa0ZEZEVjc1QwRkJUeXhGUVVkU0xFbEJRVWxyUWl4RlFVbEtMRTFCUVRSQ0xHOUNRVUZpTjBRc1ZVRkJORUpCTEZOQlFWTTRSQ3hwUWtGQmJVSTVSQ3hUUVVGVE9FUXNaMEpCUVdkQ1F5eFBRVUZUTDBRc1UwRkJVemhFTEdkQ1FVRm5Ra01zVFVGQlRVTXNhMEpCUlhCSUxHOUNRVUZZVWl4UlFVRXdRa0VzVDBGQlQxTXNWVUZCV1ZRc1QwRkJUMU1zVVVGQlVVTXNVMEZCV1ZZc1QwRkJUMU1zVVVGQlVVVXNWMEZCWVZnc1QwRkJUMU1zVVVGQlVVY3NVVUZIY2tjc2IwSkJRV1JXTEZkQlFUWkNRU3hWUVVGVlF5eFpRVUZqUlN4RlFVRkpTQ3hWUVVGVlF5eFZRVUZWUXl4alFVRmpha0lzVFVGQlRTeHZRa0ZCYzBJd1FpeFRRVUZUVWl4RlFVRkZMRWRCUVVrc1MwRkJUeXhKUVVVdlNDeHZRa0ZCWkVnc1YwRkJOa0pCTEZWQlFWVkRMRmRCUVdGRUxGVkJRVlZETEZWQlFWVkRMR05CUVdOcVFpeE5RVUZOTEhGQ1FVTjBSeXhGUVdwSlFYWktMRVZCUVZFd1NpeFJRVEpQVWl4WFFVTkRMRWxCUjBNc1QwRkJUM2RDTEZsQlExSXNRMEZCUlN4TlFVRlBja0lzUjBGSFZDeERRVU5FTEVOQmNGQnJRbk5DTEVkQlEyeENia3dzUlVGQlVXOU1MRkZCUVZVc1RVRkRha0lzU1VGQlNVTXNSMEZCVXl4RlFVVmlMRTFCUVU4c1MwRkRSRUVzU1VGRFNrRXNSMEZCVXl4RlFVTlVVaXhSUVVGUlV5eExRVUZMTERCSlFVZG1MRVZCVkdsQ0xFZEJaV3hDZEV3c1JVRkJVWFZNTEU5QlFWTXNRMEZEYUVJc1ZVRkRRU3hWUVVOQkxGVkJRMEVzVlVGRFFTeFZRVU5CTEZWQlEwRXNWVUZEUVN4VlFVTkJMRlZCUTBFc1ZVRkRRU3hWUVVOQkxGVkJRMEVzVlVGRFFTeFZRVU5CTEZWQlEwRXNWVUZEUVN4VlFVTkJMRlZCUTBFc1ZVRkRRU3hWUVVOQkxGVkJRMEVzVlVGRFFTeFZRVU5CTEZWQlEwRXNWVUZEUVN4VlFVTkJMRlZCUTBFc1ZVRkRRU3hWUVVOQkxGVkJRMEVzVlVGRFFTeFZRVU5CTEZWQlEwRXNWVUZEUVN4VlFVTkJMRlZCUTBFc1ZVRkRRU3hWUVVOQkxGVkJRMEVzVlVGRFFTeFZRVU5CTEZWQlEwRXNWVUZEUVN4VlFVTkJMRlZCUTBFc1ZVRkRRU3hWUVVOQkxGVkJRMEVzVlVGRFFTeFZRVU5CTEZWQlEwRXNWVUZEUVN4VlFVTkJMRlZCUTBFc1ZVRkRRU3hWUVVOQkxGVkJRMEVzVlVGRFFTeFZRVU5CTEZWQlEwRXNWVUZEUVN4VlFVTkJMRlZCUTBFc1ZVRkRRU3hWUVVOQkxGVkJRMEVzVlVGRFFTeFZRVU5CTEZWQlEwRXNWVUZEUVN4VlFVTkJMRlZCUTBFc1ZVRkRRU3hWUVVOQkxGVkJRMEVzVjBGM1JrUjJUQ3hGUVVGUmQwd3NTVUZCVFZnc1VVRkJVV3BMTEU5QlFWTnBTeXhSUVVGUlZ5eExRVUZQTEUxQlFWTXNSMEZyUlhaRWVrTXNSVUZCVHk5SkxGRkJRVlVzUlVGQlVTeExRVUZTTEVOQlFXOUNRU3hIUVVWeVF5eE5RVUZOTEZkQlFVTjVUQ3hIUVVGak1VTXNSVUZCVHk5SkxGRkJUVFZDZVV3c1JVRkJWME1zUlVGQlNTeFRRVUZWUXl4SFFVTjRRaXhKUVVORExFOUJRVTlETEV0QlFVdERMRlZCUVZWR0xFVkJRM1pDTEVOQlFVVXNUVUZCVHpsQ0xFZEJRMUlzVFVGQlR5d3JRa0ZCYVVOQkxFVkJRVTFwUXl4UFFVTXZReXhEUVVORUxFTXNiME5ETjFGQkxFbEJRVWx3VFN4RlFVRnRRa01zVFVGQlVVRXNTMEZCUzBRc2FVSkJRVzlDTEZOQlFWVkZMRWRCUXpsRUxFOUJRVkZCTEVkQlFVOUJMRVZCUVVsRExGZEJRV05FTEVWQlFVMHNRMEZCUlN4UlFVRlhRU3hGUVVONFJDeEZRVU5CUlN4UFFVRlBReXhsUVVGbFF5eEZRVUZUTEdGQlFXTXNRMEZCUlVNc1QwRkJUeXhKUVVOMFJFUXNSVUZCVVdrelFpeFRRVUZOTEVWQlEyUXNUVUZCVFhCb1FpeEZRVUZ4UWl4RlFVRlJMRTFCUlRkQ2FsWXNSVUZFVld4Q0xFVkJRV2RDTEVWQlFWRXNUMEZEYkVKdFFpeFJRVUZSTEhkQ1FUWkVPVUppTEVWQlFWRnBNMElzU1VGdVJGSXNVMEZCWVdwNlFpeEZRVUZMTmtrc1JVRkJUeXhIUVVGSmNYRkNMRWRCUTNwQ0xFbEJRVWwwY1VJc1JVRkJUVFZKTEVWQlJWWnJla0lzUlVGQlRVRXNSMEZCTkVJc2IwSkJRV0l4TVVJc1ZVRkJORUpCTEZOQlF6ZERMRTFCUVZGM1F5eEpRVU5TUVN4RlFVRk5hM3BDTEVWQlFVbDRNVUlzVTBGQlZ5eExRVUZQZHpGQ0xFVkJRVWt4Y1VJc1RVRkZha0lzYVVKQlFWSjRTU3hKUVVOSUxFMUJRVkZCTEVWQlFVbDNSU3hQUVVGUExFdEJSV1o0UlN4RlFVUkJMRTFCUVZGQkxFVkJRVWwzUlN4UFFVRlBMRWRCUTJJd2RVSXNSVUZCU1hneFFpeFRRVUZYYzBNc1JVRkhabXQ2UWl4RlFVRkpNWEZDTEV0QlFVOTRTU3hIUVVkd1FpeHpRa0ZCYzBKblR5eExRVUZMYUU4c1MwRkROVUp3UkN4RlFVRk5MSFZDUVVGM1FtOUVMRWRCUlRGQ1FTeFBRVVJCTEVsQlFYVkNhM3BDTEVWQlEycENRU3hGUVVGSmVERkNMRk5CUVZjc1MwRkJUM05ETEVWQlIzUkNMRmRCUVdGQkxFZEJTVE5DY0VRc1JVRkJUU3hYUVVGWmIwUXNSMEZEYkVJMFNTeEZRVUZOYVVvc1JVRkJiVUk1U2l4TlFVRk5MMGdzU1VGSE9VSTBTU3hGUVVGSmFrd3NUMEZEUkN4alFVRmpjVkVzUzBGQlMzQkdMRVZCUVVsc1RDeFZRVU4yUW10TUxFVkJRVWxxVEN4TFFVRlBMRXRCUlU0c1pVRkJaWEZSTEV0QlFVdHdSaXhGUVVGSmJFd3NXVUZETjBKclRDeEZRVUZKYWt3c1MwRkJUeXhSUVVkdVFtbE1MRVZCUVVsRExFdEJRVTlFTEVWQlFVbERMRTFCUVZFc1NVRkRka0lzVFVGRFRVd3NSMEZFYTBNc1NVRkJNMEpKTEVWQlFVbEtMRXRCUVV0S0xGRkJRVkVzUzBGRFZpeEpRVUZOVVN4RlFVRkpTaXhMUVVGUExFbEJRVTFKTEVWQlFVbEtMRXRCVXk5RExFOUJVRUZKTEVWQlFVbHRVaXhIUVVGTGJsSXNSVUZCU1d4TUxGTkJRVmNzVFVGQlVUaExMRVZCUVU4c1NVRkJUVWtzUlVGQlNXcE1MRXRCUVU5clRDeEZRVVY0UkVRc1JVRkJTVFpuUWl4TFFVTkJOMmRDTEVWQlFVbHNUQ3hUUVVOQkxFMUJRMEU0U3l4SFFVTkRNSEZDTEVkQlFVOUJMRVZCUVVsMk1VSXNUMEZCVTJsTUxFVkJRVWxxVEN4TFFVRlBMRWRCUVVzc1NVRkJUV2xNTEVWQlFVbHFUQ3hOUVVOb1JHbE1MRU5CUTFnc1F5eHZRME51UlVFc1NVRkJTV3hPTEVWQlFXMUNReXhOUVVGUlFTeExRVUZMUkN4cFFrRkJiMElzVTBGQlZVVXNSMEZET1VRc1QwRkJVVUVzUjBGQlQwRXNSVUZCU1VNc1YwRkJZMFFzUlVGQlRTeERRVUZGTEZGQlFWZEJMRVZCUTNoRUxFVkJRMEZGTEU5QlFVOURMR1ZCUVdWRExFVkJRVk1zWVVGQll5eERRVUZGUXl4UFFVRlBMRWxCUTNSRVJDeEZRVUZSYlROQ0xGbEJRV05CTEVWQlEzUkNMRTFCUVUwdlNpeEZRVUZYTVhSQ0xFVkJRV2RDTEVWQlFWRXNUMEZEYmtNeWRFSXNSVUZCVlN4RlFVRlJMRTlCUTJ4Q0xGZEJRVVZzVEN4RlFVRlZMRmxCUVVWRkxFVkJRVmNzYTBKQlFVVkRMRVZCUVdsQ0xHMUNRVUZGUlN4RlFVRnJRaXhaUVVGRll5eEZRVUZYTEUxQlFVVmFMRWRCUVZjd1N5eEZRVUZUZG5OQ0xGRkJSVzVIZFRKQ0xFVkJRVmRFTEVsQlExaHFkRUlzUlVFMFNVNHNVMEZCWjBKcmRFSXNSMEZGV2l4UFFVRkpMMG9zUlVGQlVYQkdMRk5CUTFrc1kwRkJZbTFRTEVWQlEwUm9TeXhGUVVGVGRuTkNMRkZCUVZGM2FFSXNXVUZIY0VJclN5eEZRVUZUZG5OQ0xGRkJRVkZ6YUVJc1ZVRkROVUlzUTBGd1NsbHJWaXhEUVVGUFJDeEhRVU5pUlN4RlFVRlJMRU5CUTFZMWNFSXNUMEZCVVN4clFrRkRValp3UWl4SlFVRkxMR1ZCUTB4RExGTkJRVlVzYlVKQlExWkRMRWxCUVVzc1pVRkRURU1zVFVGQlR5eHBRa0ZEVURGS0xFdEJRVTBzWjBKQlEwNHlTaXhYUVVGWkxIVkNRVVZXUXl4RlFVRlJNWFJDTEVsQlFWRnRXU3hGUVVOb1FuTk1MRVZCUVZONmFrSXNTVUZCVVdsWkxFVkJRV0ZITEVWQlFXOUNSU3hGUVVOc1JIRldMRVZCUVZNc1IwRkJSM1pWTEVWQlFWbERMRTlCUVU5dlN5eEpRVU12UW0xTExFVkJRVmNzUjBGQlIzaFZMRVZCUVZsWkxGTkJRVk41U2l4SlFVTnVRMjlMTEVWQlFWTXNSMEZCUjNwVkxFVkJRVmxGTEU5QlFVOXRTeXhKUVVNdlFuRkxMRVZCUVdWS0xFVkJRMllzUjBGQlIycExMRXRCUVZWcVRDeEZRVUZOU1N4dFFrRkJiVUozVlN4RlFVRk5ReXhOUVVNMVF5eEhRVUZIVVN4UFFVTklSU3hGUVVGWlRDeEZRVU5hTEVkQlFVZHFTeXhMUVVGVmFrd3NSVUZCVFU4c2MwSkJRWE5DY1ZVc1JVRkJUVFZ3UWl4VFFVTXZReXhIUVVGSE5GWXNSVUZCV1Vzc1ZVRkJWV2RMTEVsQlEzcENkVXNzUlVGQlowSk9MRVZCUTJoQ0xFZEJRVWRxU3l4TFFVRlZha3dzUlVGQlRVc3NNRUpCUVRCQ2RWVXNSVUZCVFVzc1lVRkRia1FzUjBGQlIzSlZMRVZCUVZsbExHTkJRV056U2l4SlFVTTNRbmRMTEVWQlFWVXNSMEZCUnpkVkxFVkJRVmxITEZGQlFWRnJTeXhKUVVOcVEzbExMRVZCUVZrc1IwRkJSemxWTEVWQlFWbEpMRlZCUVZWcFN5eEpRVU55UXpCTExFVkJRVmtzUjBGQlJ5OVZMRVZCUVZsTkxGVkJRVlVyU2l4SlFWVnlRekpMTEVWQlFXZENMRWRCUVVkRUxGTkJNa051UWtVc1JVRkJUeXhEUVVOVU5Vc3NVMEZEUVdsTExGRkJRMEV4ZEVJc1RVRkRRVzkwUWl4UlFVTkJSaXhYUVVOQlZ5eFRRVU5CUXl4bFFVTkJSaXhYUVVOQlJDeFRRVU5CVFN4VlFVTkJReXhaUVVOQlNDeFpRVU5CU1N4WlFVTkJSeXhSUVd4RldTeEhRVUZIYkZZc1JVRkJXVkVzVVVGQlVUWktMRWxCYlVWdVF6aExMRTlCYkVWWExFZEJRVWR1Vml4RlFVRlpZeXhQUVVGUGRVb3NTVUZ0UldwREswc3NVVUZzUlZrc1IwRkJSM0JXTEVWQlFWbHhWaXhSUVVGUmFFd3NTVUZ0Ulc1RGFVd3NUMEZzUlZjc1IwRkJSM1JXTEVWQlFWbFRMRTlCUVU4MFNpeEpRVzFGYWtOclRDeFJRV3hGV1N4SFFVRkhkbFlzUlVGQldWVXNVVUZCVVRKS0xFbEJiVVZ1UTIxTUxGRkJiRVZaTEVkQlFVZDRWaXhGUVVGWlowSXNVVUZCVVhGS0xFbEJiVVZ1UTI5TUxGVkJiRVZqTEVkQlFVZDZWaXhGUVVGWlZ5eFZRVUZWTUVvc1NVRnRSWFpEZFVzc1owSkJRMEZqTEdWQmJrVnRRaXhIUVVGSE1WWXNSVUZCV1dsQ0xHVkJRV1Z2U2l4SlFXOUZha1J6VEN4UlFXNUZXU3hIUVVGSE0xWXNSVUZCV1d0Q0xGRkJRVkZ0U2l4SlFXOUZia015U3l4blFrRkRRVmtzWjBKQmJrVnZRaXhIUVVGSFlpeFhRVzlGZGtKakxHVkJia1Z0UWl4SFFVRkhaQ3hWUVc5RmRFSmxMR0ZCYmtWcFFpeEhRVUZIWml4UlFXOUZjRUpuUWl4WFFXNUZaU3hIUVVGSEwxWXNSVUZCV1U4c1YwRkJWemhLTEVsQmIwVjZRMjV4UWl4WlFXNUZaMElzYlVkQmIwVm9Ramd4UWl4UFFTOUhWeXhGUVdkSVdFTXNVVUZ3UlZrc1YwRkJWMnhDTEdkQ1FYRkZka0p0UWl4WlFYQkZaMElzUTBGRGFFSXNTMEZEUVN4TFFVTkJMRXRCUTBFc1MwRkRRU3hMUVVOQkxFdEJRMEVzUzBGRFFTeExRVU5CTEV0QlEwRXNTMEZEUVN4TFFVTkJMRXRCUTBFc1MwRkRRU3hMUVVOQkxFdEJRMEVzVVVGRFFTeExRVU5CTEV0QlEwRXNTMEZEUVN4TFFVTkJMRXRCUTBFc1MwRkRRU3hMUVVOQkxFMUJOa05CUXl4M1FrRXpRelJDTEV0Qk5FTTFRa01zZDBKQk0wTTBRaXhGUVRSRE5VSkRMR1ZCTTBOdFFpeEhRVFJEYmtKRExHZENRVE5EYjBJc1NVRTBRM0JDUXl4VlFUTkRZeXhEUVVOa1F5eExRVUZOTEV0QlFVdDRRaXgxUWtGRFdIbENMRTFCUVU4c1MwRkJTM3BDTEhkQ1FVTmFNRUlzVFVGQlR5eExRVUZMTVVJc2VVSkJlVU5hTWtJc1pVRjJRMjFDTEV0QlFVc3pWeXhGUVVGWlRTeFZRVUZWSzBvc2FVSkJNRU5zUkN4VFFVRlRkMG9zU1VGRFRDeEhRVUZKT1Vvc1JVRkJVWEJHTEZGQlFWTXNRMEZGYWtJc1RVRkJUV2xUTEVWQlFWVnFkMElzVVVGQlVVTXNTMEZCUzJsM1FpeFZRVU42UW14M1FpeFJRVUZSUXl4TFFVRkxhM2RDTEUxQlEySnVkMElzVVVGQlVVTXNTMEZCUzIxM1FpeGpRVU5xUWl4UFFVRkpTQ3hIUVVGVFNTeFBRVU5HU2l4RlFVRlJTU3hQUVVWU0xFVkJRVkVzVFVGRFZIbzBRaXhWUVVOa0xFTkJRMEVzVDBGQlNYZHlRaXhGUVVGUmJrWXNWMEZGUkRGdFFpeFRRVUZUU3l4VFFVZGlMRmRCUTFnc1EwRnVRa0UzUWl4RlFVRkJMRkZCUVd0Q0xFbEJRVXQxTkVJc1JTeHZRME5xU1haQ0xFbEJRVWszTkVJc1JVRkJiVUpETEUxQlFWRkJMRXRCUVV0RUxHbENRVUZ2UWl4VFFVRlZSU3hIUVVNNVJDeFBRVUZSUVN4SFFVRlBRU3hGUVVGSlF5eFhRVUZqUkN4RlFVRk5MRU5CUVVVc1VVRkJWMEVzUlVGRGVFUXNSVUZEUVVVc1QwRkJUME1zWlVGQlpVTXNSVUZCVXl4aFFVRmpMRU5CUVVWRExFOUJRVThzU1VGRGRFUkVMRVZCUVZGMU5rSXNjMEpCUVhkQ2RqWkNMRVZCUVZGdlRpeFZRVUZQTEVWQlF5OURMRTFCUVUxcFowSXNSVUZCVlN4RlFVRlJMRTFCUTJ4Q1NDeEZRVUZoZUhSQ0xFVkJRV2RDTEVWQlFWRXNUMEZEY2tNd2RFSXNSVUZCVnpGMFFpeEZRVUZuUWl4RlFVRlJMRTlCUTI1RGRYUkNMRVZCUVdWMmRFSXNSVUZCWjBJc1JVRkJVU3hQUVVNM1EwMHNSVUZCVVc5T0xFdEJRVThzUTBGRFdITm9RaXhQUVVGUkxFZEJRMUp1WjBJc1YwRkJXU3hIUVVOYWFYTkNMRmxCUVdFc1IwRkRZbTR6UWl4TFFVRk5MRWRCUTA1dk0wSXNVVUZCVXl4RlFVTlViRUlzVVVGQlV5eEhRVU5VYW5OQ0xGRkJRVk1zUjBGRFZHOTBRaXhQUVVGUkxFZEJRMUpzYUVJc1VVRkJVU3hGUVVOU2JXaENMRTlCUVZFc1IwRkRVa01zVDBGQlVTeEpRVVZhTlRaQ0xFVkJRVkYxTmtJc2MwSkJRWGRDTEVOQlF6VkNUU3hsUVVGbExFVkJRMlpETEd0Q1FVRnJRaXhIUVVWMFFpeE5RVUZOUXl4RlFVTkdMRmRCUVVFek5VSXNRMEZCV1RKTkxFVkJRVk12VGl4RlFVRlJiMDRzVFVGRGVrSXNUMEZCVDNST0xFOUJRVTgyUlN4UFFVRlBhRVlzUzBGQlRXOVBMRVZCUXk5Q0xFTkJRMEVzTUVKQlFVOXBkRUlzUTBGQmIwSkRMRWRCUTNaQ0xFZEJRVWxCTEVsQlFXdENSaXhGUVVGUk0zSkNMR1ZCUXpGQ0xFOUJRMG9zU1VGQlNUaHlRaXhGUVVGeFFrUXNSVUZCWXpONFFpeFJRVUZSTEV0QlFVMHNTVUZEY2tRc1RVRkJUVFo0UWl4RlFVRnBRa1FzUlVGQmJVSkZMRmxCUVZrc1MwRkRkRVFzVDBGQlQwWXNSVUZCYlVJM2RVSXNWVUZCVlN4RlFVRkhPSFZDTEVWQlFXbENMRVZCUXpWRUxFTkJRMEVzZFVKQlFVOUZMRU5CUVdsQ09YTkNMRWRCUTNCQ0xFZEJRVWxCTEVsQlFXVjNjMElzUlVGQlVUTnlRaXhsUVVOMlFpeFBRVUZQTW5KQ0xFVkJRVkV6Y2tJc1pVRkRia0lzVFVGQlRXdHpRaXhGUVVGTk16ZENMRXRCUVVzME4wSXNWVUZEYWtJc1RVRkJUeXhIUVVGSFJDeEpRVUZOTDNOQ0xFVkJRVmN4Unl4TlFVRk5lWHBDTEVkQlFVc3NTMEZCUzBFc1IwRkRMME1zUTBGRFFTeHZRa0ZCVHpGaExFTkJRV055VXl4SFFVTnFRaXhQUVVGUE1HVXNSVUZCWVhCelFpeFJRVUZSSzJZc1kwRkJZM0pUTEVWQlF6bERMRU5CUTBFc01rSkJRVTlwZEVJc1EwRkJjVUoyUlN4SFFVTjRRaXhOUVVGTmQwVXNSVUZCWTNoRkxFVkJRVWx3ZGtJc1RVRkJUU3hMUVVGTExFZEJSVGRDTm5wQ0xFVkJSRk1zU1VGQlNYUmhMR2RDUVVGblFuRmhMRWRCUTFaNGNVSXNTVUZCU1N4VlFVTTNRaXhQUVVGclFpeFBRVUZrZVhGQ0xFVkJRMDlZTEVWQlFWRXpja0lzWlVGSFVqSnlRaXhGUVVGUldTeDNRa0ZCZDBKRUxFVkJSUzlETEVOQlEwRXNPRUpCUVU5RExFTkJRWGRDYWs0c1IwRkRNMElzVFVGQlRYQnRRaXhGUVVGVmMzcENMRzFDUVVGdFFteE9MRWRCUVZVc1NVRkRka050VGl4RlFVRnRRbmhQTEVWQlFWRjBSaXd5UWtGQk1rSjZaU3hSUVVGUkxIbENRVUV3UWl4UlFVTjRSbmQ1UWl4RlFVRlZMRWxCUVVrdmNFSXNUMEZCVHl4UFFVRlBPSEJDTEZOQlFYZENRU3hMUVVOd1JIUjVRaXhGUVVGUmFrSXNSVUZCVVdsQ0xFMUJRVTExZVVJc1IwRkROVUlzU1VGQlNYWjBRaXhGUVVGaGFFWXNTVUZCVVN4SFFVRkxRU3hKUVVGUkxFZEJRVXQzZUVJc1JVRkJVVE55UWl4bFFVZHVSQ3hQUVVaQllpeEZRVUZoUVN4RlFVRlhkVk1zVjBGQlYybGhMRVZCUVZFemNrSXNaMEpCUVd0Q1lpeEZRVUZoTEVkQlFVZDNjMElzUlVGQlVUTnlRaXhwUWtGQmFVSmlMRWxCUTNSSFFTeEZRVUZoUVN4RlFVRlhjMU1zVTBGQlUydGhMRVZCUVZFemNrSXNaMEpCUVd0Q1lpeEZRVUZoTEVkQlFVZEJMRWxCUVdGM2MwSXNSVUZCVVROeVFpeHBRa0ZEZWtaaUxFTkJRMWdzUTBGRFFTeHBRa0ZCVDNkMFFpeERRVUZYZG5aQ0xFZEJRMlFzVDBGQlNVRXNTVUZCVXpSblFpeEZRVUZUZG5OQ0xGRkJRVkV5YUVJc2IwSkJSVEZDYUZjc1NVRkJVM1YxUWl4RlFVRlJNM0pDTEdWQlJGWXNSMEZIU2l4SFFVRkhOVU1zWlVGRFpDeERRVU5CTEhGQ1FVRlBkM1pDTEVOQlFXVjZkRUlzUlVGQldYTk1MRVZCUVZVM1dpeEZRVUZSZFRaQ0xIVkNRVU5vUkN4TlFVRk5MR05CUVVWTkxFVkJRV0VzYVVKQlFVVkRMRWRCUVhGQ2FtaENMRVZCUXpWRExFbEJRVWt5WjBJc1JVRkJZeXhEUVVGRFR5eEZRVUZSTTNKQ0xHZENRVU16UWl4SFFVRkpZaXhIUVVGalFTeEpRVUZsZDNOQ0xFVkJRVkV6Y2tJc1pVRkJaMElzUTBGRGNrUXNUVUZCVFRaelFpeEZRVUZuUWpGMFFpeEZRVUZYTVVjc1RVRkJUV3Q2UWl4RlFVRlJiVUlzY1VKQlFYRkNkbk5DTEU5QlFWRjNjMElzUjBGQmEwSXNTMEZCVkVFc1IwRkRja1lzU1VGQlNVTXNSVUZCYVVJc1IwRkRja0pJTEVWQlFXTTVORUlzVVVGQlUyczFRaXhKUVVOdVFrUXNSMEZCYTBJc1IwRkJSM280UWl4TFFVRkxORGRDTEZsQlFWbGpMRWxCUTNSRExFMUJRVTFETEVWQlFXZENMRWRCUVVkR0xFbEJRV2xDZWpoQ0xFdEJRVXMwTjBJc1dVRkRla05XTEVkQlFXbENlVUlzU1VGQmEwSXZkRUlzUjBGRGNrTnBjMElzUlVGQldYSnlRaXhMUVVGTGJYUkNMRWxCUnpkQ0xFTkJUMEVzVDBGT1NYaENMRVZCUTBGT0xFVkJRVmtyUWl4TFFVRkxMRU5CUVVORExFVkJRVWR5ZDBJc1NVRkJUWEYzUWl4RlFVRkZhakJDTEU5QlFWTTBSQ3hGUVVGRk5VUXNVVUZIZUVOcGVVSXNSVUZCV1N0Q0xFdEJRVXNzUTBGQlEwTXNSVUZCUjNKM1FpeEpRVUZOUVN4RlFVRkZOVVFzVDBGQlUya3dRaXhGUVVGRmFqQkNMRkZCUlhKRGFYbENMRU5CUTFnc1EwRkRRU3d5UWtGQlQybERMRU5CUVhGQ2FrTXNSVUZCWVd0RExFVkJRV2xDUXl4SFFVTjBSQ3hOUVVGTlF5eEZRVUZ2UWl4SFFVTndRa01zUlVGQmEwSnlReXhGUVVGWmVuUkNMRkZCUVZGM2RrSXNTMEZCU3l4RFFVRkRReXhGUVVGSGNuZENMRWxCUVUxeGQwSXNSVUZCUldvd1FpeFBRVUZUTkVRc1JVRkJSVFZFTEZGQlEzaEZiekJDTEVWQlFXZENRU3hIUVVGblEwVXNSVUZCWjBKQkxFVkJRV2RDZERCQ0xFOUJRVk1zUjBGRGVrWXNTVUZCU1hVd1FpeEhRVUZUTEVWQlEySXNTVUZCU3l4TlFVRk5MekpDTEV0QlFVczRNa0lzUlVGQmFVSXNRMEZKTjBJc1IwRklTWEpETEVWQlFWbDZNRUlzUzBGQlR6SXlRaXhKUVVOdVFra3NSMEZCVXl4SFFVVlVkRU1zUlVGQldYb3dRaXhMUVVGUE5ESkNMRVZCUTI1Q0xFMUJRMEZITEVkQlEwRkdMRVZCUVd0Q2VuUkNMRXRCUVV0eGNrSXNSVUZCV1hvd1FpeEhRVVV6UXl4RFFVTkJMRTlCUVU4Mk1rSXNRMEZEV0N4RFFVTkJMR05CUVU5SExFTkJRVkYyZDBJc1IwRkRXQ3hQUVVGUFFTeEZRVUZMYzFVc1YwRkJWMjlOTEVWQlFWZHljMElzVVVGQlVXdDFRaXhwUWtGQmJVSjJhVUlzUlVGQlMzTlZMRmRCUVZkdlRTeEZRVUZYY25OQ0xGRkJRVkVyZDBJc1pVRkJhVUp0U2l4RlFVRlJhVU1zVjBGQllXcERMRVZCUVZGclF5eFRRVU5zU2l4RFFVTkJMR2RDUVVGUFF5eERRVUZWTnpWQ0xFZEJRMklzVDBGQlQwRXNSVUZCUzNsa0xGZEJRVmNzVlVGQldYcGtMRVZCUVV0NVpDeFhRVUZYTEZGQlEzWkVMRU5CUTBFc2FVSkJRVTk2VWl4RFFVRlhha0lzUjBGRFpDeFBRVUZQUVN4SFFVRlpRU3hGUVVGVFpDeFRRVUZUWkN4TlFVRlJORUlzUlVGQlUyUXNVVUZCVVROTUxFdEJRM2hFTEVkQlFVZDVUU3hGUVVGVFpDeFJRVUZSWkN4UlFVRlJORUlzUlVGQlUyUXNVVUZCVVROTUxFOUJRemRETEdGQlFXRjVja0lzUlVGQlUzWnpRaXhSUVVGUk5taENMRTFCUVUxWExGTkJRemxETEVOQlEwRXNaMEpCUVU4NFdpeERRVUZWTDNWQ0xFZEJRMklzVDBGQlQwRXNSMEZCV1VFc1JVRkJVMklzVTBGQlUyWXNUVUZCVVRSQ0xFVkJRVk5pTEZOQlFWTTFUQ3hMUVVONlJDeEhRVUZIZVUwc1JVRkJVMklzVTBGQlUyWXNVVUZCVVRSQ0xFVkJRVk5pTEZOQlFWTTFUQ3hQUVVNdlF5eGhRVUZoZVhKQ0xFVkJRVk4yYzBJc1VVRkJVVFpvUWl4TlFVRk5WeXhUUVVNNVF5eEZRVVZLTUZnc1JVRkJVVkVzVlVGQldTeEpRVU53UWxJc1JVRkJVVE55UWl4bFFVRnBRakp5UWl4RlFVRlJVU3hWUVVOcVExSXNSVUZCVVcxQ0xHOUNRVUZ6UWl4SlFVTTVRbTVDTEVWQlFWRnhReXhuUWtGQmEwSXNWVUZETVVKeVF5eEZRVUZSYVVNc1YwRkJZU3haUVVOeVFtcERMRVZCUVZGclF5eFZRVUZaTEZGQlEzQkNiRU1zUlVGQlVYTkRMRmxCUVdWMGRrSXNTVUZEYmtJc1RVRkJUU3hQUVVGRk1tZENMRVZCUVZGdVowSXNWMEZCV1N0MVFpeEZRVUZYTEV0QlFVVTVkMElzUlVGQlNTeFJRVUZGYVhWQ0xFVkJRVThzVTBGQlJYSnpRaXhIUVVGaFRDeEZRVU12UkZFc1JVRkJZWGR6UWl4RlFVRlJibUVzWTBGQll6QmpMRWRCVFhwRExFMUJRVThzUTBGRFNEVlBMRk5CUTBGdVowSXNZVUZEUVdselFpeFpRVkpuUWs4c1JVRkJVV2xDTEdWQlFXVjZkRUlzUjBGVGRrTm5ja0lzVVVGU1dYZENMRVZCUVZGblFpeFhRVUZYZG5aQ0xFZEJVeTlDYmtvc1MwRlNVekF6UWl4RlFVRlJaME1zVVVGQlVYWjNRaXhIUVZONlFtbDFRaXhWUVVOQmJuUkNMRkZCVkZsNWRFSXNSVUZCVVRGeVFpeFhRVUZYYWtJc1IwRlZMMEp6YzBJc1QwRlVWMHNzUlVGQlVXOURMRlZCUVZVdmRVSXNTMEZaY2tOd1R5eEZRVUZCTEZGQlFXdENLelpDTEVNc05FSkRPVWxzUWl4VFFVRlRjR3RDTEVWQlFWRjBWaXhIUVVOaVFTeEZRVUZQUVN4SFFVRlJMRU5CUVVNc1JVRkRhRUl4UWl4TFFVRkxNRkVzUjBGQlMyaFFMRVZCUVV0MVZpeExRVUZQTEVsQlEzUkNhbGdzUzBGQlMydFlMRWxCUVUxNFZpeEZRVUZMZDFZc1MwRkJUeXhKUVVOMlFteFlMRXRCUVVzME9VSXNUMEZCVTJ3NFFpeEZRVUZMYXpoQ0xGRkJRVlVzUlVGRE4wSTFPVUlzUzBGQlMyMVlMRTlCUVZONlZpeEZRVUZMZVZZc1QwRkJVeXhIUVVGTGVsWXNSVUZCUzNsV0xGRkJRVlVzUlVGQlNYcFdMRVZCUVV0NVZpeFBRVUZUTEVWQlEyeEZibGdzUzBGQlMzZFpMRk5CUVZjc1EwRkRjRUlzUTBGVVFYSlpMRTlCUVU5RExHVkJRV1ZETEVWQlFWTXNZVUZCWXl4RFFVRkZReXhQUVVGUExFbEJRM1JFUkN4RlFVRlJNbGNzWVVGQlZTeEZRVk5zUWpOWExFVkJRVkV5Vnl4UlFVRlZRU3hGUVU5c1FrRXNSVUZCVVRkRExGVkJRVlZ4Unl4VFFVRlhMRmRCUTNwQ0xFbEJRVWs1U2l4RlFVRkxNVkVzUzBGQlN6QlJMRWRCUVV0c1NTeExRVUZMSzI5Q0xFbEJRVWwyZUVJc1MwRkJTelE1UWl4UFFVRlJOVGxDTEV0QlFVdDNXU3haUVVNNVF5eEhRVUZKZUZrc1MwRkJTMjFZTEU5QlFWRXNRMEZEWWl4SlFVRkpNRzFDTEVWQlFVOXlNVUlzUzBGQlMzRm5RaXhUUVVOYWFWWXNSVUZCV1hReFFpeExRVUZMUXl4TlFVRk5iekZDTEVWQlFVODNPVUlzUzBGQlMyMVlMRTlCUVZONlJ5eEhRVU5vUkVFc1JVRkJPRUlzUlVGQmVFSnNTU3hMUVVGTFF5eE5RVUZoTEVkQlFWQnZNVUlzUjBGQmQwTnVkRUlzUlVGQlMyOTBRaXhGUVVGMFFuQjBRaXhGUVVGTGIzUkNMRU5CUTJwRUxFTkJRMEVzVDBGQlowTXNSVUZCZWtKME1VSXNTMEZCUzNsUExFbEJRVWwyUnl4RlFVRkpNVkVzUzBGQlMydFlMRWxCUXpkQ0xFVkJUVUZHTEVWQlFWRTNReXhWUVVGVmJVY3NUVUZCVVN4WFFVTjBRblJoTEV0QlFVdDNXU3hUUVVGWExFTkJRM0JDTEVWQlRVRjRRaXhGUVVGUk4wTXNWVUZCVlRaRUxFOUJRVk1zVTBGQlZXWXNSMEZEYWtOcVdDeExRVUZMTUZFc1IwRkJTM1ZITEVOQlEyUXNSVUZOUVVRc1JVRkJVVGRETEZWQlFWVnBSU3hQUVVGVExGTkJRVlZzUWl4SFFVTnFRMnhZTEV0QlFVdHJXQ3hKUVVGTlFTeERRVU5tTEVWQlRVRkdMRVZCUVZFM1F5eFZRVUZWSzBRc1ZVRkJXU3hUUVVGVlppeEhRVU53UTI1WUxFdEJRVXR0V0N4UFFVRlRRU3hEUVVOc1FpeERMRzlEUTNCRlFTeEpRVUZKY0Znc1JVRkJiVUpETEUxQlFWRkJMRXRCUVV0RUxHbENRVUZ2UWl4VFFVRlZSU3hIUVVNNVJDeFBRVUZSUVN4SFFVRlBRU3hGUVVGSlF5eFhRVUZqUkN4RlFVRk5MRU5CUVVVc1VVRkJWMEVzUlVGRGVFUXNSVUZEUVVVc1QwRkJUME1zWlVGQlpVTXNSVUZCVXl4aFFVRmpMRU5CUVVWRExFOUJRVThzU1VGRGRFUkVMRVZCUVVFc1VVRkJhMEpCTEVWQlFWRXJXU3hSUVVGVkwxa3NSVUZCVVN0dlFpeEhRVUZMTDI5Q0xFVkJRVkZ6V1N4UFFVRlRkRmtzUlVGQlVUUldMRkZCUVZVMVZpeEZRVUZSTUVJc1kwRkJWeXhGUVVOMlJ5eE5RVUZOWnpoQ0xFVkJRVmNzUlVGQlVTeE5RVU51UWtNc1JVRkJaU3hGUVVGUkxFMUJRemRDTnpsQ0xFOUJRVTlETEdWQlFXVkRMRVZCUVZNc1ZVRkJWeXhEUVVGRksxRXNXVUZCV1N4RlFVRk5SU3hKUVVGTExGZEJRV01zVDBGQlR6QnpRaXhGUVVGaEwyNUNMRTlCUVZNc1NVRkRPVWNzVFVGQlRVVXNSVUZCWXl4RlFVRlJMRTFCUXpWQ2FGY3NUMEZCVDBNc1pVRkJaVU1zUlVGQlV5eFRRVUZWTEVOQlFVVXJVU3haUVVGWkxFVkJRVTFGTEVsQlFVc3NWMEZCWXl4UFFVRlBOa1VzUlVGQldYZERMRTFCUVZFc1NVRkRNMGNzVFVGRFRURllMRVZCUkZWc1FpeEZRVUZuUWl4RlFVRlJMRTlCUTJ4Q2JVSXNVVUZCVVN4dlFrRkplRUlyT0VJc1JVRkJVU3hEUVVGRExFVkJRMllzVTBGQlUyNXdRaXhGUVVGUGVsRXNSVUZCU3pORExFZEJRMFVzYVVKQlFWSXlReXhKUVVOUU0wTXNSVUZCVHpKRExFVkJRMUJCTEU5QlFVMTFRaXhIUVVWV2JFVXNSVUZCVDBFc1IwRkJVU3hEUVVGRExFVkJRMmhDTEUxQlFVMTNPRUlzUlVGQlUwZ3NSVUZCVTNwSExFbEJRVWxxZWtJc1JVRkJTek5ETEVWQlFVdDNUQ3hOUVVGUkxHTkJRM2hEVGl4RlFVRlRjM2hDTEVWQlFVOTBlRUlzVDBGRGFFSjNVaXhGUVVGTE9HWXNSVUZCVHpsbUxFZEJRMXBzVWl4RlFVRlBaM2hDTEVWQlFVOW9lRUlzUzBGRFpHbDRRaXhGUVVGblFrWXNSVUZCVFRkbUxFbEJRVTlzVWl4TFFVRlJLM2RDTEVWQlFVMDNaaXhIUVVGVkxFdEJTek5FTEVsQlFVbG5UQ3hGUVdWS0xFOUJia0p6UWpGdVFpeEZRVUZMZVhOQ0xGVkJRM1pDZW5OQ0xFVkJRVXNzTUVKQlEwd3NTVUZCVlVFc1JVRkJTekE0UWl4WFFVTm1SQ3hIUVVkQmJEbENMRVZCUVUwc0swSkJRV2RETWt3c1IwRkRkRU4zWXl4RlFVRkxMRWxCUVVrMFZTeEZRVUZoTDI1Q0xGRkJRVkZ5U2l4RlFVRlJiRXdzUzBGSGFrTjFPRUlzUlVGQlRUZG1MRXRCUTFCdVpDeEZRVUZOTEhsQ1FVRXdRakpNTEVkQlEyaERjWGhDTEVWQlFVMDNaaXhIUVVGTkxFbEJRVWswWml4RlFVRmhMMjVDTEZGQlFWRnlTaXhGUVVGUmJFd3NTVUZGYWtRd2JrSXNSVUZCU3paVkxFVkJRVTAzWml4SlFVVllPR1lzUlVGQlR6RTFRaXhSUVVGVk9VTXNSVUZCU3poRExGRkJRM1JDT1VNc1JVRkJTemhETEUxQlFWRXdOVUlzUlVGQlR6ZDNRaXhWUVVWcVFpdGlMRVZCUVVjNWJFSXNUMEZCVHpRMlFpeEZRVUZQYUhoQ0xFdEJRVTE0VEN4RlFVTnNReXhEUVVOQmNrSXNSVUZCVVN0dlFpeEhRVUZMZEZVc1JVRkRZbnBWTEVWQlFWRXJXU3hSUVVGVmRFVXNSVUZEYkVKNlZTeEZRVUZCTEZGQlFXdENlVlVzUlVGSGJFSXpWU3hQUVVGUE5rVXNUMEZCVHpoUUxFVkJRVkVzUTBGRGJFSnRRaXhSUVVGVEsyNUNMRVZCUVdFdmJrSXNVVUZEZEVJd1F5eFBRVUZSZUVNc1JVRkJXWGRETEU5QlEzQkNlVkVzUjBGQlNYUlZMRVZCUTBwelJTeFJRVUZUZEVVc1NVRlBZaXhKUVVGSmFWVXNSVUZCY1VJc1JVRkJVU3hOUVVOcVF6VnZRaXhQUVVGUFF5eGxRVUZsUXl4RlFVRlRMRmRCUVZrc1EwRkJSU3RSTEZsQlFWa3NSVUZCVFVVc1NVRkJTeXhYUVVGakxFOUJRVTk1V0N4RlFVRnRRbWh1UWl4UlFVRlZMRWxCUlhSSWNVZ3NSVUZCVHk5SkxGRkJRVlY1VlN4RExEQnBSa051UldwQ0xFbEJRVWt2VlN4RlFVRnRRa01zVFVGQlVVRXNTMEZCUzBRc2FVSkJRVzlDTEZOQlFWVkZMRWRCUXpsRUxFOUJRVkZCTEVkQlFVOUJMRVZCUVVsRExGZEJRV05FTEVWQlFVMHNRMEZCUlN4UlFVRlhRU3hGUVVONFJDeEZRVU5CUlN4UFFVRlBReXhsUVVGbFF5eEZRVUZUTEdGQlFXTXNRMEZCUlVNc1QwRkJUeXhKUVVOMFJFUXNSVUZCVVhOWkxGbEJRVk1zUlVGRGFrSXNUVUZCVFcxSkxFVkJRV0VzUlVGQlVTeE5RVU55UWk5bUxFVkJRVmtzUlVGQlVTeE5RVU53UW10bUxFVkJRV1VzUlVGQlVTeE5RVU4yUW1Nc1JVRkJaMElzUlVGQlVTeE5RVU40UW5KblFpeEZRVUZWV0N4RlFVRm5RaXhGUVVGUkxFOUJRMnhEWlN4RlFVRnpRaXhGUVVGUkxFMUJRemxDUml4RlFVRnhRaXhGUVVGUkxFMUJRemRDYldJc1JVRkJOa0lzUlVGQlVTeE5RVU55UXpsaExFZEJRVkVzUlVGQlNWQXNSVUZCVVZFc1UwRkJVeXd5UWtGRGJrTXNUVUZCVFhsWUxGVkJRV1UzV0N4RlFVRnZRalJGTEZGQlQzSkRMRmRCUVVGcVJTeERRVUZaTkVNc1JVRkJTek5ETEVWQlFVOHNRMEZCUXl4SFFVTnlRa01zVVVGRFFUTkNMRXRCUVV0MVJDeFhRVUZoZDFrc1JVRkJNa0p3UWl4clFrRkROME16WVN4TFFVRkxjU3RDTEZsQlFXTXNSMEZEWm1nMlFpeEhRVUZQTEdsQ1FVRnZRa0VzU1VGRE0wSXpReXhGUVVGUE1rTXNSVUZEVUVFc1JVRkJUU3hOUVVWT1FTeEhRVU5CUVN4SFFVRk5MRVZCUVVrd1l5eEZRVUZqTTFVc1QwRkJUeTlJTEVkQlF5OUNNME1zUlVGQlMxRXNVMEZCVjIxRExFVkJRVWwzU1N4TFFVTndRbTVNTEVWQlFVczJReXhQUVVFd1FpeFZRVUZxUWtZc1JVRkJTWFJETEZWQlFYbERMRkZCUVdwQ2MwTXNSVUZCU1hSRExGTkJRemxEVEN4RlFVRkxUU3hMUVVGUGNVTXNSVUZCU1hKRExFdEJRMXB4UXl4RlFVRkpSeXhSUVVOS09VTXNSVUZCU3poRExFMUJRVkZJTEVWQlFVbEhMRkZCUldoQ09VTXNSVUZCUzIxTUxFOUJRMVp1VEN4RlFVRkxVU3hWUVVGWExFVkJRVWsyWlN4RlFVRmpNMVVzVDBGQlR6RkxMRVZCUVV0dFRDeE5RVUZOUVN4UFFVVjRSQ3hGUVVGSk9Vd3NSVUZCVlRSRkxIVkNRVUYxUWpOR0xFdEJRVTB3UWl4SFFVTXpRekZDTEV0QlFVdDFSU3hQUVVORUxFMUJRVkUzUXl4RlFVRkxOa01zVDBGRFVEZERMRVZCUVVzMlF5eFBRVU5sTEc5Q1FVRmlNVU1zVlVGQk5FSXNWMEZCWVVFc1UwRkJVMFVzVTBGREwwUk1MRVZCUVV0UkxGZEJRV0ZTTEVWQlFVdE5MRTlCUlhaQ1RpeEZRVUZMVFN4TFFVRlBhRU1zUzBGQlMzVkZMRTlCUVZNc1RVRkJVU3hOUVVWMFEzWkZMRXRCUVV0clF5eFRRVU5FVWl4RlFVRkxVU3hYUVVOdlFpeHZRa0ZCWWt3c1UwRkJNa0pCTEZOQlFWTkxMRk5CUVZjc1lVRkRMMFJzUXl4TFFVRkxaME1zUzBGRFJFNHNSVUZCUzAwc1QwRkRiMElzYjBKQlFXSklMRlZCUVRSQ1FTeFRRVUZUUnl4TFFVTjJRMGdzVTBGQlUwY3NTMEZEVkdoRExFdEJRVXQxUlN4UFFVTkVMRTFCUTBFc1RVRkRiRUoyUlN4TFFVRkxObWRDTEZkQlFXRnVaaXhGUVVGTGJXWXNXVUZCWXl4RFFVTnFReXhWUVVOQkxGbEJRMEVzWjBKQlJVbzNaMElzUzBGQlMzRXJRaXhaUVVGakxFZEJRMjVDY2l0Q0xFdEJRVXR6SzBJc1kwRkJaMElzUlVGRGNrSjBLMElzUzBGQlN6QkNMRXRCUVU5MlFpeFBRVUZQTmtVc1QwRkJUeXhEUVVOMFFtdEpMRXRCUVUwc1lVRkRUbkY0UWl4UFFVRlBMRVZCUTFCc09FSXNhVUpCUVdsQ0xFVkJRMnBDTm5KQ0xGTkJRVk1zUlVGRFZIaHdRaXhsUVVGblFpeEpRVU5vUWpnMVFpeHBRa0ZCYVVJc1JVRkRha0pETEd0Q1FVRnJRaXhGUVVOc1FrTXNiMEpCUVc5Q0xFVkJRM0JDUXl4clFrRkJiVUlzUTBGRFprTXNWVUZCVnl4TlFVVm1NV2xDTEdsQ1FVRnJRaXhEUVVGRExFVkJRMjVDTW1sQ0xIRkNRVUZ4UWl4SFFVTjBRbTQ1UWl4SFFVTklNVUlzUzBGQlN6QkNMRXRCUVV0M1RDeExRVU5PYkU0c1MwRkJTekJDTEV0QlFVdDNUQ3hMUVVGTGRrUXNVVUZCVVN4TlFVRlBMRXRCUTNwQ00wb3NTMEZCU3pCQ0xFdEJRVXNyT0VJc2FVSkJRVzFDTEVsQlFVMHNTVUZEWWl4cFFrRkJjRUo2SzBJc1MwRkJTekJDTEV0QlFVczRReXhSUVVOcVFuaEZMRXRCUVVzd1FpeExRVUZMT0VNc1QwRkJVU3hGUVVGSmVXSXNSVUZCWVd4WkxGRkJRVkV2U0N4TFFVRkxNRUlzUzBGQlN6aERMRkZCUjNwRWVFVXNTMEZCUzI5bExFZEJRVXNzUzBGRFZuQmxMRXRCUVVzNEswSXNVMEZCVnl4TFFVTm9RamtyUWl4TFFVRkxLeXRDTEdGQlFXVXNTMEZEY0VJdkswSXNTMEZCUzJjdlFpeFpRVUZqTEV0QlJXNUNhQzlDTEV0QlFVdHBMMElzYVVKQlFXMUNMRXRCUTFFc2JVSkJRWEpDY2pOQ0xHMUNRVU5JTlVnc1MwRkJTekJDTEV0QlFVdHRPVUlzYzBKQlNWWTNLMElzUzBGQlMyc3ZRaXd3UWtGQk5FSXNTMEZEZWtKc0wwSXNTMEZCUzJsakxGbEJSVXhxWXl4TFFVRkxhV01zVlVGQlZWWXNjVUpCUTJaMllpeExRVUZMYVdNc1ZVRkJWV3BaTEZWQlIzWkNORVFzYVVKQlFXbENMR1ZCUVdkQ05VZ3NTMEZCUzJzdlFpd3lRa0ZCTWtJc1NVRkZMME1zWTBGQmJFSnNMMElzUzBGQlMydERMRmRCUTB4c1F5eExRVUZMYlM5Q0xIRkNRVUYxUWl4TFFVTjRRbTR2UWl4TFFVRkxORVFzVVVGQlVTeHJRa0ZCYlVJc1EwRkROVUpETEZsQlFXRXNOa0pCUjNKQ0swUXNhVUpCUVdsQ0xGVkJRVmMxU0N4TFFVRkxiUzlDTEhOQ1FVRnpRaXhMUVVjdlJHNHZRaXhMUVVGTGFVY3NUVUZEVkN4RFFWRkJMR1ZCUVVGdE5VSXNRMEZCWjBJMU9FSXNSMEZEV25aQ0xFVkJRVTBzTUVKQlFUSkNkVUlzUjBGRGFrTXNUVUZCVFdkRExFVkJRVkZ5UlN4UFFVRlBOa1VzVDBGQlR5eERRVUZETEVWQlFVZG9SaXhMUVVGTE1FSXNTMEZCU3poRExFOUJSVEZEUVN4RlFVRk5OalpDTEVsQlFVMTZLMElzUlVGQmJVSnRRaXhUUVVVdlFubERMRVZCUVUxNVdDeFZRVUZaZWxvc1JVRkZaSGhETEV0QlFVdHZaU3hMUVVOTU5Wb3NSVUZCVFVrc1NVRkJUVFZGTEV0QlFVdHZaU3hKUVVOeVFpeE5RVUZOTVdNc1JVRkJUM1pDTEU5QlFVODJSU3hQUVVGUExFTkJRVU1zUlVGQlIyaEdMRXRCUVVzd1FpeExRVUZOTEVOQlEzUkRPRU1zVVVGRFFXeENMRTlCUVZGMFJDeExRVU5TYTBNc1UwRkJWV3hETEV0QlFVdHJReXhUUVVObWNVTXNUMEZCVVhaRkxFdEJRVXQxUlN4UFFVTmlka01zUzBGQlRXaERMRXRCUVV0blF5eE5RVU5hYUVNc1MwRkJTekJDTEV0QlFVdDNZU3hwUWtGQmFVSXhXaXhKUVVVNVFpeFBRVVJCZGtJc1JVRkJUU3hqUVVGbFV5eEhRVU5rTEVsQlFVbHZaaXhGUVVGWFJDeFhRVUZYY21Vc1IwRkJUV1FzUlVGRE0wTXNRMEZOUVN4SlFVRkJkVVVzUjBGRFNTeEpRVUZKWjFjc1JVRkRTaXhIUVVGSmFtTXNTMEZCU3pCQ0xFdEJRVXM0T0VJc2FVSkJRMVkzYkVJc1JVRkJUekp0UWl4M1FrRkRiVU1zU1VGQk1VTjBMMElzUzBGQlN6Wm5RaXhYUVVGWGNGVXNVVUZCVVN4aFFVTjRRbmRRTEVWQlFWa3NaMEpCUlZnc1NVRkJTU3hKUVVGTmFtTXNTMEZCU3pablFpeFhRVUZYYWxrc1QwRkxNMElzV1VGSVFUVkpMRXRCUVVzclJ5eGhRVUZoTEV0QlEyUXZSeXhMUVVGTGEwUXNZVUZCWVN4UlFVRlRMRFJDUVVNMVFpeEhRVWxJSzFrc1JVRkJXV3BqTEV0QlFVczJaMElzVjBGQlZ5eEZRVU5vUXl4RFFVTkJOMmRDTEV0QlFVczJReXhYUVVGaExGVkJSV3hDTEVsQlEwbHZXaXhGUVVGWmFtTXNTMEZCUzI4dlFpeG5Ra0ZCWjBKdWFrSXNSVUZEY2tNc1EwRkRRU3hOUVVGUE1WWXNSMEZKU0N4UFFVaEJkRVlzUlVGQlRTeHhRMEZCYzBOelJpeEhRVU0xUTNaSExFdEJRVXMyWjBJc1YwRkJWM2xMTEdGQlEyaENkSEpDTEV0QlFVdHBSeXhOUVVWVUxFTkJRMEZuVnl4RlFVRlZhRmNzVDBGRFZtcEhMRXRCUVV0MUwwSXNZVUZCWVhScVFpeEZRVU4wUWl4RFFVMUJMRmxCUVVGemFrSXNRMEZCWVhScVFpeEhRVU5VYUdJc1JVRkJUU3gxUWtGQmQwSm5ZaXhGUVVGVmVsb3NUVUZEY0VONFF5eExRVUZMYVdNc1dVRkRUR2hpTEVWQlFVMHNhVU5CUVd0RGFrSXNTMEZCUzJsakxGVkJRVlY2V2l4TlFVTjJSSGhETEV0QlFVdHBZeXhWUVVGVlZpeHpRa0ZIYmtKMllpeExRVUZMYVdNc1ZVRkJXVUVzUlVGRmFrSkJMRVZCUTBzM1Z5eEhRVUZITEZGQlFWTndSaXhMUVVGTGR5OUNMRkZCUVZGb05rSXNTMEZCUzNoR0xFOUJRemxDYjBZc1IwRkJSeXhUUVVGVmNFWXNTMEZCU3poRUxGTkJRVk13UWl4TFFVRkxlRVlzVDBGRGFFTnZSaXhIUVVGSExGRkJRVk53Uml4TFFVRkxkVVlzVVVGQlVVTXNTMEZCUzNoR0xFOUJRemxDYjBZc1IwRkJSeXhSUVVGVmFWWXNSMEZCVjNKaExFdEJRVXMwUkN4UlFVRlJMR3RDUVVGdFFubFhMRWRCUTJwRkxFTkJUMEVzUzBGQlFXOXNRaXhEUVVGTmFqbENMRWRCUTBaMlFpeEZRVUZOTEhsQ1FVRXdRblZDTEVkQlEyaERMRWxCUVVsNVdpeEZRVUZaYW1Nc1MwRkJTMjh2UWl4blFrRkJaMEkxT0VJc1IwRkRha05yT1VJc1IwRkJVeXhGUVVOaUwyMUNMRVZCUVU4eWJVSXNkVUpCUVhkQ0xFVkJReTlDTEUxQlFVMUxMRVZCUVd0Q0xFdEJRMmhDUkN4SlFVVktlaXRDTEVWQlFVMHNPRUpCUVN0Q2RVSXNSMEZEY2tONVdpeEZRVUZWYWxZc1MwRkJTeXhEUVVGRExFTkJRVVYwUkN4TFFVRk5MRTlCUVZGT0xFdEJRVTBzVjBGRGRFTTJXU3hGUVVGVmFsb3NTMEZCU3l4VFFVRlhORGhDTEVsQlEzUkNMRWxCUVVsR0xFVkJSVW9zUjBGQlNTeFRRVUZYUlN4RlFVRkpiRGhDTEUxQlFWRXNWVUZCV1dzNFFpeEZRVUZKZURoQ0xFdEJRVTBzUTBGSk4wTXNSMEZJUVc1RExFVkJRVTBzTkVKQlFUWkNkVUlzUjBGRGJrTjRReXhMUVVGTE5pOUNMRmRCUVZrc1JVRkRha0kzTDBJc1MwRkJTMnRFTEdGQlFXRXNXVUZCWVN0WkxFbEJRekZDUVN4RlFVTkVMRTlCUTBwMFJDeEZRVUZQTW0xQ0xITkNRVUYzUWl4alFVRm5RbkpxUWl4RlFVRlZlbG9zUzBGRGVrUjJRaXhGUVVGTkxHbERRVUZyUTJwQ0xFdEJRVXRwWXl4VlFVRlZlbG9zVFVGRGRrUjRReXhMUVVGTGFXTXNWVUZCVlhSYUxFMUJRVTBzUzBGRFlpczRRaXhIUVVWQkxGZEJRV0V4TDBJc1MwRkJTelpETEdGQlJYUkNOVUlzUlVGQlRTeHBSRUZEVG5GSExFbEJRMEYwU0N4TFFVRkxkUzlDTEdGQlFXRjBha0lzUjBGRGJFSkJMRVZCUVZWcVZpeExRVUZMTEVOQlFVTXNRMEZCUlhSRUxFdEJRVTBzWVVGRGVFSXhSQ3hMUVVGTGEwUXNZVUZCWVN4VlFVRlhLMWtzUjBGRE4wSkJMRVZCUVZrc1MwRkRXbXBqTEV0QlFVczJMMElzVjBGQldTeEZRVU5xUWpjdlFpeExRVUZMT0M5Q0xGVkJSV0lzUzBGRFN5eERRVU5FTnl0Q0xFVkJRVTBzT0VKQlFTdENkVUlzUjBGRGNrTXNUVUZCVFRaRkxFVkJRVTBzU1VGQlNYZExMRTFCUVUwc1pVRkZkRUo0U3l4RlFVRkpORlVzVlVGQldVRXNSVUZCVlhwYUxFdEJRekZDZUVNc1MwRkJTMnRFTEdGQlFXRXNaVUZCWjBKdFJTeEZRVU4wUXl4TlFVZFNMRk5CUVZNd05FSXNTVUZEUkV3c1NVRkhTa0VzUjBGQlV5eEZRVU5VY0RSQ0xFbEJRMEV5VlN4RlFVRlZhbGtzVVVGRFZtbFpMRVZCUVZrc1MwRkRhRUlzUTBGRlFTeE5RVUZOTVVNc1JVRkJWMnhUTEVsQlEySXNUVUZCVFRaRExFVkJRVkVzU1VGQlNUSklMRTFCUVUwc1owSkJRV3RDZUVzc1IwRkZNVU0yUXl4RlFVRk5LMUlzVlVGQldVRXNSVUZCVlhwYUxFdEJRelZDZFRsQ0xFbEJRMEU1SzBJc1JVRkJUU3h0UkVGQmIwUjFRaXhGUVVGTk5rVXNSMEZEYUVWeVNDeExRVUZMYTBRc1lVRkJZU3hsUVVGblFtZElMRWxCUlhSRExGTkJRVk00TVVJc1NVRkRUSHB0UWl4RlFVRlJMRzFDUVVOYUxFTkJSVUVzVTBGQlUwTXNTVUZEVEVRc1JVRkJVU3huUWtGRFdpeERRVVZCTEZOQlFWTXdiVUlzUlVGQlZVTXNSMEZEV0dwclFpeEhRVUZoYVd0Q0xFVkJRVWN4T1VJc1QwRkJVM2xhTEVWQlFWVjZXaXhQUVVOdVEzWkNMRVZCUVUwc05rSkJRVGhDYVM5Q0xFVkJRVWN4T1VJc1MwRkJUWGxhTEVWQlFWVjZXaXhOUVVOMlJIVTVRaXhKUVVWU0xFTkJSVUVzVFVGQlRYbzBRaXhGUVVGVkxFdEJRMW95VlN4RlFVRlZXQ3hsUVVGbExFOUJRVkZ4YTBJc1IwRkRha014YWtJc1JVRkJWVmdzWlVGQlpTeFJRVUZUTDBJc1IwRkRiRU13UXl4RlFVRlZXQ3hsUVVGbExGRkJRVk13YTBJc1IwRkRiRU5vWjBNc1MwRkJTM0ZpTEVsQlFVa3NVVUZCVXpkQ0xFZEJRMnhDZUZvc1MwRkJTM0ZpTEVsQlFVa3NXVUZCWVRSclFpeEpRVVV4UW1oclFpeEZRVUZWYWxvc1MwRkJTeXhQUVVGUk1qaENMRWRCUTNaQ01XcENMRVZCUVZWcVdpeExRVUZMTEZGQlFWTjFWeXhIUVVONFFqQkRMRVZCUVZWcVdpeExRVUZMTEZGQlFWTm5PVUlzUjBGRGVFSm9aME1zUzBGQlMyZEVMRXRCUVVzc1VVRkJVM2RYTEVkQlEyNUNlRm9zUzBGQlMyZEVMRXRCUVVzc1dVRkJZV2s1UWl4SlFVTjNRaXhKUVVFelEycG5ReXhMUVVGTE9DdENMRk5CUVZOeWVVSXNVVUZCVVN4cFFrRkRZaXhwUWtGQlZHcExMRVZCUlVGNFF5eExRVUZMSzBjc1lVRkJZU3hMUVVOVU1qUkNMRWRCUTBSNmFrSXNSVUZCVldoWExGRkJSV1lzUzBGSFNHZFhMRVZCUVZWb1Z5eE5RVVZzUWl4RFFVMUJMRTFCUVVGMFF5eEhRVkZKTEVkQlVFRXhReXhGUVVGTkxHVkJRMDVxUWl4TFFVRkxOa01zVjBGQllTeFBRVU5zUWpoV0xFVkJRVTh5YlVJc2MwSkJRWGRDTEdOQlFXZENkQzlDTEV0QlFVdHBZeXhWUVVGVmVsb3NTMEZET1VSNFF5eExRVUZMYTBRc1lVRkJZU3hSUVVOc1FteEVMRXRCUVVzNEwwSXNVVUZIUkN4VFFVRlhPUzlDTEV0QlFVczJReXhaUVVGak4wTXNTMEZCU3pCQ0xFdEJRVXQzYzBJc1VVRkJVeXhEUVVOcVJHcDBRaXhGUVVGTkxESkNRVU5PTEVsQlFVbHRSaXhGUVVGSkxFVkJRMUlzVFVGQlRTdGlMRVZCUVVsdWFVSXNTMEZCU3pnclFpeFRRVUZUYkRKQ0xFOUJRM2hDTEV0QlFVOTRReXhGUVVGSksySXNSVUZCUnk5aUxFbEJRMVp3Unl4TFFVRkxlUzlDTEUxQlFVMTZMMElzUzBGQlN6Z3JRaXhUUVVGVE1UUkNMRWRCUldwRExFTkJRMG9zUTBGTlFTeFJRVUZCZEVNc1EwRkJVMHdzUjBGRFRDeEhRVUZKTEZsQlFXTjZSQ3hMUVVGTE5rTXNXVUZEYmtJc1UwRkJWemRETEV0QlFVczJReXhaUVVOb1FpeFpRVUZqTjBNc1MwRkJTelpETEZkQlRXNUNMRTlCVEVFMVFpeEZRVUZOTEhWRFFVRjNRM2RETEVWQlFVOURMRXRCUVUxRUxFVkJRVTlNTEUxQlEyeEZjRVFzUzBGQlMydEVMR0ZCUVdFc1UwRkJWVThzUjBGRk5VSjZSQ3hMUVVGTGEwUXNZVUZCWVN4aFFVTnNRbXhFTEV0QlFVdHRaME1zYlVKQlEwY3hPRUlzUlVGQlQwTXNUVUZEV0N4SlFVRkxMRTlCUTBReFJDeExRVUZMYjJkRExGbEJRVmx1TUVJc1MwRkJTMGNzVFVGQlRUTkpMRVZCUVU5TUxFOUJRMjVETEUxQlEwb3NTVUZCU3l4UFFVTkVjRVFzUzBGQlMzRm5ReXhYUVVGWExGRkJRMmhDY21kRExFdEJRVXRyUkN4aFFVRmhMRkZCUTJ4Q2JFUXNTMEZCUzJ0RUxHRkJRV0VzVVVGRGJFSXNUVUZEU2l4SlFVRkxMRkZCUTBRc1RVRkJUVzFGTEVWQlFVMHNTVUZCU1hkTExFMUJRVTBzWjBKQlJYUkNlRXNzUlVGQlNXazFRaXhMUVVGUE56aENMRVZCUVU5TUxFdEJRMnhDY0VRc1MwRkJTM1ZHTEZGQlFWRTRRaXhIUVVOaUxFMUJRMG9zU1VGQlN5eFZRVU5FY2tnc1MwRkJTMnRFTEdGQlFXRXNUMEZCVVU4c1JVRkJUMHdzVFVGRGFrTndSQ3hMUVVGTGEwUXNZVUZCWVN4VlFVRlhUeXhGUVVGUFRDeFhRVXMxUTI1RExFVkJRVTBzT0VOQlFTdERha0lzUzBGQlN6WkRMRmRCUld4RkxFTkJUMEVzVjBGQlFYVTVRaXhEUVVGWmFEbENMRWRCUTFKd1JDeExRVUZMYTBRc1lVRkJZU3haUVVGaFJTeEhRVU12UW5CRUxFdEJRVXR2WlN4SFFVRkxhR0lzUlVGQlMzZENMRWxCUTJZMVJTeExRVUZMYVdNc1ZVRkJWWHBZTEUxQlFVMUpMRWxCUVUxNFFpeEZRVUZMZDBJc1NVRkRhRU0xUlN4TFFVRkxPQ3RDTEZOQlFWYzVLMElzUzBGQlMzVm5ReXhsUVVGbGJqbENMRVZCUVVzd04wSXNWVUZEZWtNNUswSXNTMEZCU3lzclFpeGhRVUZsTXpkQ0xFVkJRVXN5TjBJc1lVRkRla0l2SzBJc1MwRkJTMmN2UWl4WlFVRmpOVGRDTEVWQlFVczBOMElzV1VGRGVFSm9MMElzUzBGQlN6QjNRaXhYUVVGaGRIUkNMRVZCUVV0emRFSXNWMEZEZGtJeGQwSXNTMEZCU3pKRUxGTkJSVVFzVjBGQllUTkVMRXRCUVVzMlF5eFpRVVYwUWpkRExFdEJRVXR0WjBNc2EwSkJRMVFzUTBGTlFTeG5Ra0ZCUVVFc1IwRkRTVzVuUXl4TFFVRkxiVm9zWlVGQlpXNWFMRXRCUVV0cEwwSXNhMEpCUTNwQ2FpOUNMRXRCUVV0cEwwSXNhVUpCUVcxQ2FpOUNMRXRCUVVzclJ5eGhRVUZoTEV0QlEzUkRMMGNzUzBGQlN6UkVMRkZCUVZFc2FVSkJRMlExUkN4TFFVRkxLeXRDTEdGQlFXVXZLMElzUzBGQlMyY3ZRaXhoUVVONFFtZ3ZRaXhMUVVGTE1FSXNTMEZCUzNWWUxGZEJRMVpxV2l4TFFVRkxhUzlDTEdsQ1FVRnBRaTlzUWl4UFFVVTVRaXhEUVUxQkxFOUJRVUZ6YlVJc1IwRkRTWGd2UWl4TFFVRkxjU3RDTEZsQlFWazFNRUlzVDBGQlR5eEZRVUZIZWtvc1MwRkJTM01yUWl4bFFVbG9RM1FyUWl4TFFVRkxjeXRDTEdOQlFXZENMRVZCUTJwQ0xFbEJRVTEwSzBJc1MwRkJTM0VyUWl4WlFVRlplakZDTEU5QlEzWkNOVWtzUzBGQlMydEVMR0ZCUVdFc1UwRkhiRUpzUkN4TFFVRkxPQzlDTEU5QlJXSXNRMEZOUVN4TFFVRkJRU3hIUVVOSkxFZEJRVWtzVjBGQllUa3ZRaXhMUVVGTE5rTXNXVUZEYkVJM1F5eExRVUZMYVdNc1ZVRkJWVzVhTEZkQlEyUTVReXhMUVVGTE5pOUNMRmRCUTA0M0wwSXNTMEZCUzNFclFpeFpRVUZaZWpGQ0xFOUJRVkVzUTBGRGVrSXNUVUZCVFRGRkxFVkJRVlZzUlN4TFFVRkxkMmRETEhGQ1FVTnlRbll2UWl4RlFVRk5MR2REUVVGcFEybEVMRVZCUVZFd1JTeFJRVU12UXpWSkxFdEJRVXRwWXl4VlFVRlZhbFlzUzBGQlN6bERMRWRCUjNCQ2JFVXNTMEZCUzNNclFpeGpRVUZuUW5BMlFpeEZRVUZSTUVVc1QwRkROMEkxU1N4TFFVRkxhMFFzWVVGQllTeFJRVU4wUWl4RFFVTktMRU5CVDBFc2EwSkJRVUZ6T1VJc1IwRkpTU3hMUVVnclFuaG5ReXhMUVVGTE1IZENMRmxCUTFJc1dVRkJlRUl4ZDBJc1MwRkJTMmxqTEZWQlFWVjZXaXhOUVVObWVFTXNTMEZCUzNFclFpeFpRVUZaZWpGQ0xFOUJRVk1zUjBGRk1VSXNUMEZCVHpWSkxFdEJRVXR4SzBJc1dVRkZhRUlzU1VGQlNXOURMRVZCUVdNc1JVRkRiRUlzU1VGQlN5eEpRVUZKY2paQ0xFVkJRVWtzUlVGQlIwRXNSVUZCU1hCSExFdEJRVXR4SzBJc1dVRkJXWG94UWl4UFFVRlJlRU1zU1VGQlN5eERRVU01UXl4TlFVRk5hRVFzUlVGQlQzQkVMRXRCUVV0eEswSXNXVUZCV1dvMFFpeEhRVUZIYUVRc1MwRkpha01zUjBGSVNVRXNTVUZEUVhFNVFpeEpRVUZsTEVWQlFVa3hMMElzUlVGQlZUWlVMRmxCUVZsNFVpeEpRVVY2UTJkRUxFVkJRVWtzUjBGQlMzRTJRaXhGUVVGamVtZERMRXRCUVVzd2QwSXNWMEZGTlVJc1QwRkVRWHAyUWl4RlFVRk5MR2xEUVVGclEyMUdMRVZCUVVkd1J5eExRVUZMY1N0Q0xGbEJRVmw2TVVJc1VVRkRja1ExU1N4TFFVRkxjU3RDTEZsQlFWbHFlRUlzVFVGQlRTeEZRVUZIYUVnc1IwRkZja054TmtJc1IwRkJaU3hEUVVOdVFpeERRVVZCTEU5QlJFRjRMMElzUlVGQlRTd3JRa0ZCWjBOM0wwSXNSVUZCWVhwblF5eExRVUZMTUhkQ0xGbEJRMnBFTVhkQ0xFdEJRVXR4SzBJc1YwRkRhRUlzUTBGVFFTeExRVUZCY0RaQ0xFTkJRVTB5TjBJc1JVRkJTekZzUWl4RlFVRlRhbFlzUjBGRmFFSXNUMEZFUVdwR0xFdEJRVXR4WjBNc1YwRkJWeXhWUVVGWFZDeEZRVUZMTVd4Q0xFVkJRVk5xVml4SFFVTnNRMnBHTEVsQlExZ3NRMEZEUVN4SlFVRkJaMGdzUTBGQlN6UTBRaXhGUVVGTE1XeENMRVZCUVZOcVZpeEhRVVZtTEU5QlJFRnFSaXhMUVVGTGNXZERMRmRCUVZjc1ZVRkJWMVFzUlVGQlN6RnNRaXhGUVVGVGFsWXNSMEZEYkVOcVJpeEpRVU5ZTEVOQlZVRXNWVUZCUVhGblF5eERRVUZYTXpoQ0xFVkJRVTFPTEVWQlFVMDRWeXhGUVVGVGFsWXNSMEZUTlVJc1IwRlNTU3h0UWtGQmMwSTNRaXhKUVVOMFFqWkNMRVZCUVVzM1FpeEZRVU5NUVN4UFFVRlBkME1zUjBGRlVDeHRRa0ZCYzBKelZTeEpRVU4wUW1wV0xFVkJRVXRwVml4RlFVTk1RU3hGUVVGVkxFMUJSVllzV1VGQlkyeGhMRXRCUVVzMlF5eFpRVUZqTEZkQlFXRTNReXhMUVVGTE5rTXNWMEZEYmtRc1VVRkZTbkZZTEVWQlFWVkJMRWRCUVZjc1EwRkJReXhIUVVOa2NWRXNWVUZCVnl4SlFVRlZjbEVzUlVGQlVYRlJMRk5CUTNKRExFMUJRVTA1YlVJc1JVRkJVeXhEUVVOWVF5eExRVUZOUVN4RlFVTk9UaXhMUVVGTlFTeEZRVU5PT0Zjc1VVRkJVMEVzUjBGRllteGhMRXRCUVV0clJDeGhRVUZoTEdWQlFXZENUeXhIUVVOc1EzcEVMRXRCUVV0eEswSXNXVUZCV1RkMVFpeExRVUZMTDB3c1IwRkRiRUozUWl4SFFVTkJha1lzUzBGQlMyZEVMRXRCUVVzc1VVRkJVMmxETEVkQlEzWkNha1lzUzBGQlN6Z3ZRaXhQUVVOVUxFTkJTVUVzUzBGQlFUazNRaXhIUVVOSkxFMUJRVTFCTEVWQlFWRXNTMEZEVm1oRkxFdEJRVXMwUkN4UlFVRlJMR2RDUVVOaU0wTXNSVUZCVFN3clEwRkRUbXBDTEV0QlFVdHBZeXhWUVVGVmFsa3NVMEZGWWpBNFFpeEZRVUZyUWl4TFFVTndRakZuUXl4TFFVRkxjV0lzU1VGQlNTeFZRVUZYY1d4Q0xFZEJRM0JDTVdkRExFdEJRVXR4WWl4SlFVRkpMR1ZCUVdkQ2NXeENMRWRCUTNwQ01UaENMRXRCUlVVeU9FSXNSVUZCYVVJc1MwRkZia0l6WjBNc1MwRkJTMmRFTEV0QlFVc3NWVUZCVnpBNVFpeEhRVU55UWpGblF5eExRVUZMWjBRc1MwRkJTeXhsUVVGblFqQTVRaXhKUVhGQ09VSXNUVUZ1UWtrc1dVRkJZekZuUXl4TFFVRkxOa01zV1VGQll5eFRRVUZYTjBNc1MwRkJTelpETEdGQlEycEVOME1zUzBGQlN6WkRMRmRCUVdFc1ZVRkRaRGRETEV0QlFVdHhLMElzV1VGQldYb3hRaXhQUVVOcVFqVkpMRXRCUVV0blJDeExRVUZMTEZGQlFWTXNTMEZEV0doRUxFdEJRVXMyTDBJc1ZVRkRUR01zU1VGSFFUTTRRaXhOUVVsSWFFVXNTMEZCU3pZdlFpeFZRVU5XWXl4SlFVZEJNemhDTEV0QlIwUm9SU3hKUVVOWUxFTkJUVUVzVDBGQlFYVkdMRU5CUVZFNFFpeEhRVU5LY0Vjc1JVRkJUU3hyUWtGQmJVSnZSeXhIUVVONlFuTlNMRVZCUVU4eWJVSXNkVUpCUVhkQ0xFVkJReTlDZEM5Q0xFdEJRVXRyUkN4aFFVRmhMRkZCUVZOdFJTeEhRVU16UW5KSUxFdEJRVXMwUkN4UlFVRlJMR3RDUVVGdFFubEVMRVZCUTNCRExFTkJUVUVzVDBGQlFYcEVMRU5CUVZGNVZ5eEZRVUZSZUZjc1IwRkRVaXhaUVVGak4wUXNTMEZCU3paRExGbEJRMjVDTEZOQlFWYzNReXhMUVVGTE5rTXNXVUZEYUVJc1dVRkJZemRETEV0QlFVczJReXhoUVVOdVFqVkNMRVZCUVUwc2FVTkJRV3REYjFvc1IwRkZlRU55WVN4TFFVRkxiVm9zWlVGQlpXNWFMRXRCUVV0cEwwSXNhMEpCUlhwQ2FpOUNMRXRCUVV0cFl5eFZRVUZWVml4dFFrRkJiVUlzVTBGRmJFTjJZaXhMUVVGTGFXTXNWVUZCVldwWkxGRkJSV1pvUlN4TFFVRkxhV01zVlVGQlZWWXNjVUpCUTI5Q0xHMUNRVUY0UWtNc2MwSkJRMUJCTEc5Q1FVRnZRaXhsUVVGblFuaGlMRXRCUVV0ckwwSXNNa0pCUVRKQ0xFZEJRM0JGTVdwQ0xHOUNRVUZ2UWl4VlFVRlhlR0lzUzBGQlMyMHZRaXh6UWtGQmMwSXNTVUZIT1VSdUwwSXNTMEZCU3paRExGZEJRV0VzVTBGRmJFSTNReXhMUVVGTGIyVXNSMEZCU3l4TFFVVldjR1VzUzBGQlMydEVMR0ZCUVdFc1VVRkJVMjFZTEVWQlFWRjRWeXhIUVVkdVF6ZEVMRXRCUVV0eEswSXNXVUZCWXl4SFFVTnVRbklyUWl4TFFVRkxjeXRDTEdOQlFXZENMRVZCUlRkQ0xFTkJUMEVzWTBGQlFXbERMRU5CUVdWNlFpeEhRVU5ZTEUxQlFVMDRRaXhGUVVGdFFpeEhRVU42UWl4SlFVRkplRFpDTEVWQlFVa3NSVUZEVWl4TlFVRk5Na1lzUlVGQlNTdDVRaXhGUVVGVGJESkNMRTlCUTI1Q0xFdEJRVTk0UXl4RlFVRkpNa1lzUlVGQlJ6TkdMRXRCUTB4d1J5eExRVUZMTm1kQ0xGZEJRVmR3VlN4UlFVRlJjWGxDTEVWQlFWTXhORUlzUzBGRGJFTjNOa0lzUlVGQmFVSndlRUlzUzBGQlMzTjJRaXhGUVVGVE1UUkNMRWxCUlhaRExFOUJRVTkzTmtJc1EwRkRXQ3hGUVVWS2RtZERMRVZCUVZGeldTeFBRVUZUUVN4RlFVTnFRa0VzUlVGQlR6VlhMRk5CUVZkdVFpeEZRVUZ0UW0xQ0xGRXNiME5EYUc1Q2NrTXNTVUZCU1doRExFVkJRVzFDUXl4TlFVRlJRU3hMUVVGTFJDeHBRa0ZCYjBJc1UwRkJWVVVzUjBGRE9VUXNUMEZCVVVFc1IwRkJUMEVzUlVGQlNVTXNWMEZCWTBRc1JVRkJUU3hEUVVGRkxGRkJRVmRCTEVWQlEzaEVMRVZCUTBGRkxFOUJRVTlETEdWQlFXVkRMRVZCUVZNc1lVRkJZeXhEUVVGRlF5eFBRVUZQTEVsQlEzUkVSQ3hGUVVGUmQyZERMR2xDUVVGdFFuaG5ReXhGUVVGUmVXZERMR3RDUVVGdlFucG5ReXhGUVVGUk1HZERMR2RDUVVGclFqRm5ReXhGUVVGUk1tZERMR2xDUVVGdFFqTm5ReXhGUVVGUk5HZERMR2xDUVVGdFFqVm5ReXhGUVVGUk5tZERMR2RDUVVGclFqZG5ReXhGUVVGUk9HZERMRmxCUVdNNVowTXNSVUZCVVdsMlFpeHRRa0ZCWjBJc1JVRkRMMDBzVFVGQlRUaFNMRVZCUVdGeWFFTXNSVUZCWjBJc1JVRkJVU3hQUVVNelEwMHNSVUZCVVdsMlFpeGpRVUZuUWl4VlFVTjRRbXAyUWl4RlFVRlJPR2RETEZsQlFXTXNVVUZEZEVJNVowTXNSVUZCVVRablF5eG5Ra0ZCYTBJc1dVRkRNVUkzWjBNc1JVRkJVVFJuUXl4cFFrRkJiVUlzWVVGRE0wSTFaME1zUlVGQlVUSm5ReXhwUWtGQmJVSXNZVUZETTBJelowTXNSVUZCVVRCblF5eG5Ra0ZCYTBJc1dVRkRNVUl4WjBNc1JVRkJVWGxuUXl4clFrRkJiMElzWTBGRE5VSjZaME1zUlVGQlVYZG5ReXhwUWtGQmJVSXNZVUZGTTBJc1RVRkJUVkVzUlVGRFJpeFhRVUZCTlM5Q0xFTkJRVmsyTDBJc1IwRkRVblJvUXl4TFFVRkxkV2hETEZWQlFWbDJhRU1zUzBGQlMzVm9ReXhWUVVGVkx6ZENMRXRCUVV0NFJpeE5RVU55UTBFc1MwRkJTM2RvUXl4bFFVRnBRbmhvUXl4TFFVRkxkMmhETEdWQlFXVm9PRUlzUzBGQlMzaEdMRTFCUXk5RFFTeExRVUZMY1haQ0xGbEJRV055ZGtJc1MwRkJTM0YyUWl4WlFVRlpOM0JDTEV0QlFVdDRSaXhOUVVONlEwRXNTMEZCUzNOb1F5eFBRVUZUUVN4RlFVTmtkR2hETEV0QlFVdHphRU1zVDBGQlR5OXVRaXhSUVVGVmRsb3NTMEZCUzNkb1F5eGxRVU16UW5ob1F5eExRVUZMYzJoRExFOUJRVTlITEZWQlFWbDZhRU1zUzBGQlMzVm9ReXhWUVVNM1FuWm9ReXhMUVVGTE1HaERMRk5CUVZjc1NVRkJTVTRzUlVGQlYyeG5ReXhSUVVGUmJFSXNTMEZETTBNc1EwRkRRU3hYUVVGQmNYWkNMRVZCUVZrc1NVRkJSVEZFTEVWQlFVY3NUMEZCUlc5RUxFVkJRVTBzVDBGQlJUVndRaXhGUVVGTkxHZENRVUZGZFhGQ0xFVkJRV1VzVTBGQlJVWXNTVUZETlVNM1JDeEhRVUZQYjBRc1IwRkJWVFZ3UWl4SFFVTnFRbTVHTEV0QlFVdHphRU1zVDBGQlQycFRMRmxCUVZrc1EwRkJSVEZFTEUxQlFVdHZSQ3hUUVVGUk5YQkNMRk5CUVZGMWNVSXNhMEpCUVdsQ1JpeFpRVVY0UlN4RFFVTkJMRk5CUVVFclVpeERRVUZWYURkQ0xFZEJRMDRzVFVGQlRTeEpRVUZGYjJ4Q0xFVkJRVWNzVDBGQlJXOUVMRVZCUVUwc1QwRkJSVFZ3UWl4RlFVRk5MR2RDUVVGRmRYRkNMRVZCUVdVc1UwRkJSVVlzUjBGQllXcHdRaXhGUVVGRmJrUXNTMEZEZWtSMWIwSXNSMEZCVDI5RUxFZEJRVlUxY0VJc1IwRkJWWEZ4UWl4SFFVTXpRbmgyUWl4TFFVRkxNR2hETEZOQlFWTnVWQ3hKUVVGSk5VTXNSVUZCUzI5RUxFVkJRVkUxY0VJc1JVRkJVWEZ4UWl4RlFVVXZReXhEUVVOQkxHTkJRVUZuVXl4RFFVRmxhamRDTEVkQlExZ3lSU3hSUVVGUlV5eExRVUZMY0VZc1JVRkRha0lzUlVGRlNteEhMRVZCUVVFc1VVRkJhMEpuYUVNc1JVRkRiRUlzU1VGQlNVRXNSVUZCVlRsM1FpeExMRFJDUTJwRFpIQlJMRTlCUVU5RExHVkJRV1ZETEVWQlFWTXNZVUZCWXl4RFFVRkZReXhQUVVGUExFbEJRM1JFUkN4RlFVRlJNRWdzVDBGQlV6RklMRVZCUVZFeVNDeFpRVUZUTEVWQldXeERNMGdzUlVGQlVUSklMRTlCV0ZJc1UwRkJaMEpwUml4SFFVTmFMRWxCUVVsMlJTeEZRVUZOTEVkQlExWXNTVUZCU3l4SlFVRkpkRU1zUzBGQlN6WkhMRVZCUTA1QkxFVkJRVWsxUnl4bFFVRmxSQ3hMUVVObWMwTXNSVUZCU1VVc1UwRkRTa1lzUjBGQlR5eExRVU5ZUVN4SFFVRlBhVFZDTEcxQ1FVRnRRblkzUWl4SFFVRkxMRWxCUVUxMU4wSXNiVUpCUVcxQ01UQkNMRVZCUVVrM1J5eExRVWR3UlN4UFFVRlBjME1zUTBGRFdDeEZRV2xDUVhKSkxFVkJRVkV3U0N4UFFWUlNMRk5CUVdkQ05qVkNMRWRCUTFvc1NVRkJTVU1zUlVGQlRTeERRVUZETEVWQlExQkRMRVZCUVZGR0xFVkJRVWN4TlVJc1RVRkJUU3hMUVVOeVFpeEpRVUZMTEVsQlFVazVRaXhGUVVGSkxFVkJRVWNyWWl4RlFVRkpNbVlzUlVGQlRXdzFRaXhQUVVGUmVFTXNSVUZCU1N0aUxFVkJRVWN2WWl4SlFVRkxMRU5CUXpGRExFbEJRVWt5TjBJc1JVRkJUMFFzUlVGQlRURTNRaXhIUVVGSE9FSXNUVUZCVFN4TFFVTXhRakkxUWl4RlFVRkpOVVlzYlVKQlFXMUNPRVlzUlVGQlN5eExRVUZQT1VZc2JVSkJRVzFDT0VZc1JVRkJTeXhIUVVNdlJDeERRVU5CTEU5QlFVOUdMRU5CUTFnc1F5eHZRME53UTBFc1NVRkJTVGxvUXl4RlFVRnRRa01zVFVGQlVVRXNTMEZCUzBRc2FVSkJRVzlDTEZOQlFWVkZMRWRCUXpsRUxFOUJRVkZCTEVkQlFVOUJMRVZCUVVsRExGZEJRV05FTEVWQlFVMHNRMEZCUlN4UlFVRlhRU3hGUVVONFJDeEZRVU5CUlN4UFFVRlBReXhsUVVGbFF5eEZRVUZUTEdGQlFXTXNRMEZCUlVNc1QwRkJUeXhKUVVOMFJFUXNSVUZCVVRKb1F5eFJRVUZMTEVWQlEySXNUVUZCVFhab1F5eEZRVUZwUWl4RlFVRlJMRTFCUTNwQ1JTeEZRVUZoTEVWQlFWRXNTMEZEY2tKSkxFVkJRVmtzUlVGQlVTeE5RVU53UW1kaUxFVkJRVFpDTEVWQlFWRXNUVUZEY2tOeVlpeEZRVUZWV0N4RlFVRm5RaXhGUVVGUkxFOUJRMnhEWVN4RlFVRnhRaXhGUVVGUkxFMUJRemRDU3l4SFFVRlJMRVZCUVVsUUxFVkJRVkZSTEZOQlFWTXNPRUpCUlRkQ0syZERMRVZCUVhGRExHOUNRVUZrZEROQ0xGZEJRMGtzYVVKQlFYUkNRU3hWUVVGVmRUTkNMRk5CUTIxQ0xHZENRVUZ3UTNZelFpeFZRVUZWZFROQ0xGRkJRVkZ5TTBJc1kwRkRkRUlzVFVGQlRXMHpRaXhWUVVGWGRtaERMRVZCUVdWbExGVkJUelZDTEZkQlFVRkRMRU5CUVZsRExFZEJRMUpETEUxQlFVMUVMRWRCUTA0eFFpeExRVUZMYjBNc1owSkJRV3RDVml4RlFVRkxVeXhYUVVOb1F5eERRVU5CTEZGQlFVbExMRWRCUTBFc1RVRkJUeXhYUVVOWUxFTkJRMEVzVFVGQlFVTXNSMEZEU1N4SlFVRkxla01zUzBGQlMyMXBReXhSUVVWT0xFOUJSVW9zVFVGQlRUazVRaXhGUVVGTmNrVXNTMEZCUzNGRkxFMUJRMWdyT1VJc1JVRkJXWEJwUXl4TFFVRkxNRUlzUzBGQlN6Qm5ReXhWUVVWMFFqRm5ReXhGUVVGUGRXZERMRVZCUTFBc1EwRkJReXhIUVVORUxFVkJRVWxzYUVNc1JVRkJWV2RHTEUxQlFVMHZSaXhMUVVGTE1FSXNTMEZCVFN4UlFVRlRMRzlDUVVGeFFpeE5RVUZQTEUxQlFVOHNZVUZCWXl4UFFVRlJMRXRCUVUwc1ZVRkJWeXh4UWtGQmMwSXNaVUZCWjBJc2EwSkJRVzFDTEZOQlFWVXNZVUZCWXl4VFFVRlZMSFZDUVVNdlRURkNMRXRCUVVzd1FpeExRVUZMZDBVc1pVRkRWbmhGTEVWQlFVc3laME1zVVVGQlZYSnBReXhMUVVGTE1FSXNTMEZCUzNkRkxHTkJSVGRDTEVsQlEwbHNSeXhMUVVGTGMybERMRWRCUTBSMmJVSXNSVUZCTWtKdVFpeDNRa0ZCTUVKeGJrSXNSVUZETDBOSExFVkJRMGtzU1VGQlNYSnRRaXhGUVVFeVFteENMRlZCUVZWNFZ5eEZRVUZMS3psQ0xFZEJRemxETEVsQlFVbHliVUlzUlVGQk1rSnNRaXhWUVVGVmVGY3NSMEZETjBNc1NVRkJTVEJZTEVWQlFUSkNiRUlzVlVGQlZYaFhMRVZCUVVzck9VSXNSVUZCVnpGblF5eEZRVU4yUlN4RFFVTkJMRTFCUVU4eVJpeEhRVU5JTEU5QlFVOXlTQ3hMUVVGTGEwUXNZVUZCWVN4UlFVRlRiVVVzUlVGRGRFTXNRMEZEUVhKSUxFdEJRVXR6YVVNc1IwRkJSeThyUWl4WFFVRmhka1FzUzBGQlMzTkVMRTlCUVU5RExGZEJRMnBEZGtRc1MwRkJTM1ZwUXl4dFFrRkRWQ3hEUVUxQkxHbENRVUZCUVN4SFFVTkpkbWxETEV0QlFVdHphVU1zUjBGQlIzaHdRaXhQUVVGVExFdEJRMVE1V1N4TFFVRkxNRUlzUzBGQlMzVllMRmRCUTFacVdpeExRVUZMYzJsRExFZEJRVWRGTEZGQlFWRjBjRUlzVVVGRmNFSnNXaXhMUVVGTE1rUXNWVUZGVkRORUxFdEJRVXR6YVVNc1IwRkJSemx2UWl4UlFVRlhhWEJDTEVkQlFXVjZhVU1zUzBGQlN6UkVMRkZCUVZFc1EwRkRNME5ETEZsQlFXRXNPRUpCUTJKNVFpeFJRVUZUYlRsQ0xFbEJSV0o2YVVNc1MwRkJTM05wUXl4SFFVRkhZaXhWUVVGaE0xa3NSMEZCVHpsdlFpeExRVUZMYlVRc1QwRkJUekpzUWl4RlFVRkhNV3hDTEUxQlF6TkRjRVFzUzBGQlMzTnBReXhIUVVGSEwyOUNMRkZCUVZkb1ZDeEhRVUZOZGtjc1MwRkJTM1ZHTEZGQlFWRXNhMEpCUVcxQ1owSXNSVUZETjBRc1EwRkRRU3hMUVVGQmRFTXNRMEZCVFVNc1IwRkRSbXhGTEV0QlFVczRReXhWUVVGWExFVkJSMmhDTEVsQlFVc3NTVUZCU1hORUxFVkJRVWtzUlVGQlIwRXNSVUZCU1d4RExFVkJRVkV3UlN4UFFVRlJlRU1zU1VGQlN5eERRVU55UXl4TlFVRk5NME1zUlVGQlUxTXNSVUZCVVd0RExFZEJRMnBDYTFnc1JVRkJZV3hZTEVsQlFVMXNReXhGUVVGUk1FVXNUMEZCVXl4SFFVTXhReXhGUVVGSmFFa3NSVUZCYlVJMlV5eGpRVUZqYUZFc1JVRkJVWHBFTEV0QlFVdHZReXhsUVVGcFFtZENMRWxCUlM5RUxFMUJRVTB4UWl4RlFVRlBMRU5CUVVNc1IwRkRWSEZoTEVWQlFUSkNia0lzZDBKQlEzaENibGdzUlVGQlQzbFhMRlZCUTFCNFdTeEZRVUZMTm05Q0xGTkJRVmM1YlVJc1JVRkJUM2xYTEZGQlFWRnhVU3hWUVVVdlFuWnhRaXhMUVVGTE1FSXNTMEZCUzJrNVFpeHhRa0ZIVml4cFFrRkJiMEoyTjBJc1JVRkJUM012UWl4UFFVRlBPWFJDTEZkQlFWZDRVaXhIUVVGUlFTeEZRVUZMZDBZc1VVRkRhRVExU1N4TFFVRkxNRUlzUzBGQlMyazVRaXhyUWtGQmEwSkRMRmxCUTJ4RGJEbENMRVZCUVVzMmIwSXNWVUZCVnl4SFFVODFRaXhKUVVOUmVFOHNSVUZCTWtKdVFpeHpRa0ZGTTBJMVlTeExRVUZMYzJsRExFZEJRVWQwTjBJc1MwRkJTelZFTEVkQlIySndSQ3hMUVVGTGMybERMRWRCUVVkME4wSXNTMEZCU3pWRUxFVkJRVTB4UWl4RlFVVXpRaXhEUVVOQkxFMUJRVTgyUlN4SFFVTklkRVlzUlVGQlRTeDNRMEZEVml4RFFVTkpjV01zU1VGSFFTeEZRVUZKZGtJc1JVRkJNa0p3UXl4VlFVRlZMRXRCUTNKRE0xb3NTMEZCU3poRExGVkJRVmNzUlVGRGFFSTVReXhMUVVGTGEwUXNZVUZCWVN4VlFVTnVRbXhFTEV0QlFVc3JSeXhsUVVkd1FpeERRVU5LTEVOQlEwRXNUMEZCUVdoRUxGRkJRekpDTEVsQlFWb3ZSQ3hMUVVGTGMybERMRXRCUTFwMGFVTXNTMEZCUzNOcFF5eEhRVUZIZEN0Q0xGRkJRMUpvUlN4TFFVRkxjMmxETEVkQlFVc3NTMEZGYkVJc1EwRk5RU3hIUVVGQmFpdENMRWRCUTBrc1RVRkJUVU1zUlVGQlUzUkZMRXRCUVVzd1FpeExRVUZMTmtNc1QwRkJVeXhOUVVGUkxFdEJRM0JEUXl4RlFVRlJlRVVzUzBGQlMzZEZMRTlCUVZNc1EwRkJReXhGUVZNM1FpeFBRVkJKZUVVc1MwRkJTekJDTEV0QlFVc3JReXh2UWtGRFZrUXNSVUZCVFhoRkxFdEJRVXN3UWl4TFFVRkxaMFFzYVVKQlFXdENMRVZCUVVrdlJDeEZRVUZYWjBVc1ZVRkhhRVF6UlN4TFFVRkxiME1zYVVKQlEwNXZReXhGUVVGTlN5eEpRVUZOTEVkQlJWUTNSU3hMUVVGTE9FVXNWVUZCVlZJc1JVRkJVVVVzUlVGRGJFTXNRMEZQUVN4TFFVRkJNamxDTEVkQlEwa3NVVUZCVTNCdFFpeEZRVUV5UW14Q0xGTkJRM2hETEVWQlJVcDRZU3hGUVVGUk1taERMRWRCUVV0QkxFTXNhVUpEWjBoaU5UUkNMRVZCUVU4dlNTeFJRVE5SVUN4VFFVRmxhMHNzUjBGeFJHUXNVMEZCVXpCR0xFVkJRVms1Unl4SFFVTndRaXhKUVVGSkswY3NSVUZGUVVNc1JVRkRRVU1zUlVGR1FVTXNSVUZCYVVJc1MwRkpja0lzVTBGQlUzQlFMRXRCUVZOblNTeEhRVVZxUWl4SlFVRkxhRWtzUlVGQlRYRlFMRkZCUTFZc1QwRkhSQ3hOUVVGTlF5eEZRVUZQZEZBc1JVRkhVSFZRTEVWQlFVOURMRTlCUVU4c1NVRkJTVEZJTEUxQlEyeENNa2dzUlVGQlMwWXNSMEZCVVU0c1IwRkJXVTBzUjBGREwwSkVMRVZCUVV0cVNDeExRVUZQYjBnc1JVRkRXa2dzUlVGQlMyNUpMRXRCUVU4NFNDeEZRVU5hU3l4RlFVRkxReXhMUVVGUFFTeEZRVU5hVGl4RlFVRlhUU3hGUVVWWWRrZ3NSVUZCU3l4SFFVRkxaMGdzUlVGQldWVXNUMEZCVHpGSUxFVkJRVXNzU1VGRldDeHBRa0ZCV2tFc1JVRkJTeXhKUVVWbVFTeEZRVUZMTWtnc1VVRkJVU3hOUVVsa0xFbEJRVWt4U2l4RlFVRlJMRVZCUTFvclFpeEZRVUZMTEVkQlFVdEJMRVZCUVVzc1IwRkJSMVVzVVVGQlVTeG5Ra0ZCYVVJc1EwRkJRME1zUlVGQlQybElMRXRCUld4RUxFZEJRV01zVDBGQlZtcElMRVZCUTBnc1RVRkJUeXhKUVVWU01VTXNTVUZEUVN4TlFVRk5ORW9zUlVGQldXSXNSVUZCV1c1RkxGZEJRVmNyUlN4SFFVTjZReXhIUVVGNVFpeHRRa0ZCWkVNc1JVRkJNRUlzUTBGRGNFTXNUVUZCVFVNc1JVRkJUVGxJTEVWQlFVc3ZRaXhIUVVOcVFqQkRMRVZCUVZGclNDeEZRVUZWUlN4TFFVRkxWQ3hGUVVGTlVTeEhRVWMzUWpsSUxFVkJRVXRSTEU5QlFVOTJReXhGUVVGUExFZEJRMjVDUVN4SFFVTkVMRU5CUTBFc1QwRkJUekJETEVsQlNWSnhSeXhGUVVGWmFrZ3NWMEZCVjJkSkxFdEJRVXRVTEVWQlFVMTBTQ3hKUVVWd1FuTklMRVZCUVVzeFJTeExRVUZQYjBVc1JVRkJXWEJGTEV0QlEyaERiMFlzVFVGQlRWWXNSVUZCVFhSSUxFVkJRMjVDTEVOQlowTkJMRTlCT1VKQmFFa3NSVUZCVFd0SkxGVkJRVmxCTEVWQlEyeENiRWtzUlVGQlRXbEpMRlZCUVZrclJ5eEZRVUZaTDBjc1dVRkRPVUpxU1N4RlFVRk5kVWtzVFVGQlVYbEhMRVZCUVZscFFpeFpRVUZaTDBnc1IwRkRkRU5zU1N4RlFVRk5hMUVzVDBGQlUwRXNSVUZEWm14UkxFVkJRVTEzU3l4UlFVRlZkMFVzUlVGQldYaEZMRkZCUlRWQ2RFd3NUMEZCVDBNc1pVRkJaV0VzUlVGQlR5eFZRVUZYTEVOQlEzWkRiVkVzV1VGQldTeEZRVU5hUXl4alFVRmpMRVZCUTJSRExFbEJRVXNzU1VGRGJVSXNUMEZCYmtKcVFpeEZRVU5KUVN4SFFVVktSaXhKUVVGdlFrWXNSVUZCV1c1SExHRkJRMjVEY1Vjc1JVRkJhMEpHTEVWQlFWbHVSeXhYUVVNNVFuTkhMRVZCUVdWSUxFVkJRVmxMTEZGQlFWRnVTQ3hKUVVjM1FtbElMRWRCUlZKdFFpeEpRVUZMZGtZc1NVRkRTbkZGTEVWQlFXbENja1VzUzBGTFlTeHRRa0ZCY2tKcFJTeEZRVUZaZUVNc1RVRkRkRUozUXl4RlFVRlplRU1zUzBGQlMzaE5MRWRCUjFoQkxFTkJRMUlzUTBGRlFTeFRRVUZUYTFFc1JVRkJUMmhKTEVWQlFWZHhTU3hIUVVNeFFpeE5RVUZOUXl4RlFVRlhlRUlzUlVGQldXcFJMRXRCUVV0dFNpeG5Ra0ZCYTBNc1NVRkJaSEZKTEVWQlFUUkNMRWxCUVUxQkxFZEJRV0Z5U1N4SFFVVnlSeXhQUVVSQmMwa3NSVUZCVXpWR0xFbEJRVTAzVEN4TFFVRkxOa3dzU1VGRFlqUkdMRU5CUTFJc1EwRjNSa0VzVTBGQlUwTXNSVUZCV1VNc1IwRkRjRUlzVDBGQlQwRXNSVUZCVDBNc1YwRkRXbXhHTEZWQlFWVXNSVUZCUjJsR0xFVkJRVTlETEZkQlFWZG9TaXhQUVVGVExFZEJRM2hEWlN4UlFVRlJMRlZCUVZjc1NVRkRkRUlzUTBFd1FrRXNUMEYyVVVGelJ5eEZRVUZaYUZBc1RVRkJVV2RRTEVWQlEzQkNRU3hGUVVGWkwwOHNVVUZCVlN0UExFVkJRM1JDUVN4RlFVRlpWU3hQUVc5UVdpeFRRVUZuUWtrc1IwRkRaaXhQUVVGSlFTeGhRVUZsWXl4TlFVTllaQ3hGUVVGSlpTeFBRVUZUWml4RlFVRkpOVVVzVVVGRmJFSTBSU3hEUVVOU0xFVkJlRkJCWkN4RlFVRlpPRUlzVVVGM1RGb3NWMEZEUXl4TlFVRk5ha2tzUlVGQllTeEpRVU5tYlVjc1JVRkJXVGxETEUxQlFVMW9SaXhKUVVGSmRVb3NUVUZEZEVKNlFpeEZRVUZaSzBJc1RVRkJUVGRLTEVsQlFVbDFTaXhIUVVGaGRrb3NTVUZCU1dkQ0xFZEJRV0VzU1VGQlRVRXNTVUZETlVRNFNTeExRVUZMTEV0QlJWQXNUMEZFUVdoRExFVkJRVmxwUXl4UFFVRlBMRWxCUTFwd1NTeERRVU5TTEVWQk9VeEJiVWNzUlVGQldXbERMRTlCYzBwYUxGTkJRV2RDY0Vrc1IwRlBaaXhKUVVGSk1VUXNSVUZPU2paS0xFVkJRVmx3Unl4TFFVRkxReXhIUVVOcVFtMUhMRVZCUVZsdVJ5eFhRVUZoUVN4RlFVVjZRbTFITEVWQlFWazVReXhOUVVGUkxFZEJRM0JDT0VNc1JVRkJXU3RDTEUxQlFWRXNSMEZIY0VJc1RVRkJUVGxLTEVkQlFTdENMR2xDUVVGbU5FSXNSVUZCTUVKQkxFVkJRV0VzU1VGQlNUVkNMRTFCUVUwc1ZVRkRha1ZwU3l4RlFVRk5ha3NzUlVGQlRWVXNUMEZGYkVJc1NVRkJTM2hETEVWQlFVa3NSVUZCUjBFc1JVRkJTU3RNTEVWQlFVc3ZUQ3hKUVVObU9FSXNSVUZCVFRsQ0xFdEJUMWNzVDBGR2RFSXdSQ3hGUVVGaE5VSXNSVUZCVFRsQ0xFZEJRVWQxUkN4UlFVRlJMRTFCUVU4c1VVRkZkRUlzUjBGRFpITkhMRVZCUVZrclFpeE5RVUZOZUVNc1MwRkJTeXhKUVVGSk5FTXNUMEZCVHl4SlFVRk5kRWtzUlVGQlYzTkVMRTFCUVUwc1IwRkJTeXhOUVVVNVJEWkRMRVZCUVZrNVF5eE5RVUZOY1VNc1MwRkJTeXhKUVVGSk5FTXNUMEZCVHl4SlFVRk5kRWtzUlVGQllTeE5RVWQ0UkN4RlFUbExRVzFITEVWQlFWbExMRkZCYzAxYUxGTkJRV2xDT1U0c1IwRkRhRUlzUjBGQk9FSXNUVUZCTVVKQkxFVkJRVXRCTEVWQlFVdHZSeXhQUVVGVExFZEJRM1JDTEU5QlFVOHNSVUZIVWl4SlFVRkplRU1zUlVGRFFTdE1MRVZCUlVvc1NVRkJTeTlNTEVWQlFVa3NSVUZCUnl0TUxFVkJRVTFzUXl4RlFVRlpLMElzVFVGQlRYQktMRTlCUVZGNFF5eEZRVUZKSzB3c1JVRkJTeTlNTEVsQlEzQkVMRWRCUVVrMlNpeEZRVUZaSzBJc1RVRkJUVFZNTEVkQlFVZHBUU3hMUVVGTE4xQXNSMEZETjBJc1QwRkJUeXhGUVVsVUxFbEJRVXMwUkN4RlFVRkpMRVZCUVVjclRDeEZRVUZOYkVNc1JVRkJXVGxETEUxQlFVMTJSU3hQUVVGUmVFTXNSVUZCU1N0TUxFVkJRVXN2VEN4SlFVTndSQ3hIUVVGSk5rb3NSVUZCV1RsRExFMUJRVTB2Unl4SFFVRkhhVTBzUzBGQlN6ZFFMRWRCUXpkQ0xFOUJRVThzUlVGSlZDeFBRVUZQTEVOQlExSXNSVUV4VGtGNVRpeEZRVUZaTlVjc1UwRkJWeXhGUVVGUkxFMUJReTlDTkVjc1JVRkJXWGhGTEZGQk1GQmFMRmRCUTBOUUxGRkJRVkZUTEV0QlFVc3NkMGxCUTJRc1JVRXhVRUY0VEN4UFFVRlBiVk1zUzBGQlN5OUlMRWRCUVVzdlJ5eFJRVUZSSzA4c1NVRkRlRUowUXl4RlFVRlpjME1zUjBGQlQyaEpMRVZCUVVsblNTeExRVTk0UW5SRExFVkJRVms1UXl4TlFVRlJMRWRCUTNCQ09FTXNSVUZCV1N0Q0xFMUJRVkVzUjBGUGNFSXZRaXhGUVVGWmJrVXNWMEZCWVN4RFFVRkRMRVZCYTBJeFFtMUZMRVZCUVZscFFpeFpRVlphTEZOQlFYRkNMMGdzUjBGRGNFSXNTVUZCU1hGS0xFVkJRVThzUlVGRldDeEpRVUZMTEVsQlFVbHdUU3hGUVVGSkxFVkJRVWRCTEVWQlFVa3JReXhGUVVGVlVDeFBRVUZSZUVNc1NVRkRja052VFN4SFFVRlRRU3hIUVVGUkxFZEJRVXRCTEVWQlFWRnlTaXhGUVVGVmMwb3NWMEZCVjNKTkxFZEJRMjVFYjAwc1IwRkJVU3hGUVVkVUxFOUJRVTkyUXl4RlFVRlpja1VzVDBGQlQzQkVMRXRCUVV0clN5eEpRVUZKUml4SFFVRlJka01zUlVGQldYSkZMRTlCUVU5b1JDeFBRVU12UkN4RlFUSk9RWEZJTEVWQlFWbHBReXhQUVVGUGFrTXNSVUZCV1RsR0xGRkJSWGhDT0VZc1EwRkRVaXhETERSQ1F6bFJRVGxRTEU5QlFVOURMR1ZCUVdWRExFVkJRVk1zWVVGQll5eERRVUZGUXl4UFFVRlBMRWxCUTNSRVJDeEZRVUZSTUdRc1ZVRkJXVEZrTEVWQlFWRXdaU3hqUVVGWExFVkJRM1pETEUxQlFVMDVUQ3hGUVVFclF5eHRRa0ZCYUVKRExGbEJUUzlDZEVJc1JVRkJWM3BTTEU5QlFVOW5WU3hWUVVGVmRrTXNVMEZETlVKblF5eEZRVUZwUXl4dFFrRkJWRXdzVFVGRFZDeHZRa0ZCVkVFc1RVRkRiMElzTmtKQlFYaENNMElzUlVGQlUxb3NTMEZCUzNWRExFMUJRMmhDYjNaQ0xFVkJRV2xETEcxQ1FVRlVReXhOUVVOVUxHOUNRVUZVUVN4TlFVTnZRaXcyUWtGQmVFSm9lRUlzUlVGQlUxb3NTMEZCU3pSNFFpeE5RVTEwUWl4VFFVRlROMnBDTEVWQlFWTTVVaXhIUVVOa0xFOUJRVk5uUnl4SlFVRXdRbWhITEdGQlFXVnBSeXhoUVd4Q2RrTXNRMEZCUTJwSExFZEJRM2xDTEcxQ1FVRjJRbWxITEZsQlFWbGpMRTlCUTNCQ1pDeFpRVUZaWXl4UFFVRlBMMGNzUjBGRGJrSkJMRVZCUVVsMVJ5eHJRa0ZCYTBKT0xGbEJaWEZEWXl4RFFVRlBMMGNzUzBGRGJrVXlSeXhIUVVGclFqTkhMR0ZCUVdWelJ5eE5RVU5xUTI5MlFpeEhRVUZyUWpFeFFpeGhRVUZsTWpGQ0xFbEJRekZETEVOQlEwRjJhVU1zUlVGQlVUQmxMRk5CUVZkQkxFVkJORUp1UWpGbExFVkJRVkV3WkN4VlFUTkNVaXhUUVVGVFFTeEZRVUZWT1ZFc1JVRkJTMjF3UWl4SFFVTndRaXhKUVVGTGJuQkNMRWRCUVhOQ0xHbENRVUZTUVN4RlFVTm1MRTlCUVU4c1JVRkZXQ3hIUVVGSk1FOHNUVUZCVFdkRkxGRkJRVkV4VXl4SFFVRk5MRU5CUTNCQ0xFbEJRVXNzU1VGQlNUZEhMRVZCUVVrc1JVRkJSeXRpTEVWQlFVbHNWaXhGUVVGSmNrVXNUMEZCVVhoRExFVkJRVWtyWWl4RlFVRkhMMklzU1VGRGJrTXNSMEZCU1RKWUxFVkJRVlU1VVN4RlFVRkpOMGNzU1VGRFpDeFBRVUZQTEVWQlIyWXNUMEZCVHl4RFFVTllMRU5CUTBFc1IwRkJTVEpaTEVWQlFWTTVVaXhIUVVOVUxFOUJRVThzUlVGRldDeEhRVUZKUVN4RlFVRkpiWEJDTEZGQlEydENMRzFDUVVGbWJuQkNMRVZCUVVsdGNFSXNVVUZEVlN4SlFVRnlRbmhsTEZWQlFWVm9VQ3hQUVVOV0xFOUJRVTl0Vml4RlFVRlZPVkVzUlVGQlNXMXdRaXhWUVVGVkxFZEJSVzVETEVsQlFVc3NUVUZCVFRkcVFpeExRVUZQZEVZc1JVRkRaQ3hIUVVGSk9VMHNUMEZCVDJkVkxGVkJRVlU1VGl4bFFVRmxNa3NzUzBGQlN5OUVMRVZCUVV0elJpeEpRVUZSZDB3c1JVRkJWVGxSTEVWQlFVbHpSaXhKUVVOb1JTeFBRVUZQTEVWQlIyWXNUMEZCVHl4RFFVTllMRU1zYVVKREwwTkJiRk1zUlVGQlVUSkpMRmRCTmtsU0xGTkJRVzlDUXl4SFFWRnVRaXhIUVZCQlFTeEZRVUZMTEVsQlFVMXFTaXhMUVVGTGEwb3NWVUZCV1N4TFFVRlBMRWxCUTJ4RGJFb3NTMEZCUzIxS0xGZEJRMHB1U2l4TFFVRkxhMG9zVlVGQldTeE5RVUZSTEV0QlF6RkNSQ3hGUVVGTExFbEJRMHBxU2l4TFFVRkxhMG9zVlVGQldTeE5RVUZSTEV0QlF6RkNMRWxCUVUxRkxFVkJRVTh2U1N4UlFVRlJaMG9zVTBGQlUzSktMRXRCUVV0elNpeFBRVVV2UW5SS0xFdEJRVXRyU2l4VlFVTlVMRTlCUjBRc1RVRkJUVXNzUlVGQlNTeFZRVUZaZGtvc1MwRkJTM2RLTEUxQlF6TkNVQ3hGUVVGTFVTeFBRVUZQTEVWQlFVY3NSVUZCUjBZc1JVRkJSeXhyUWtGTGNrSXNTVUZCU1hKRExFVkJRVkVzUlVGRFVuZERMRVZCUVZFc1JVRkRXbFFzUlVGQlN5eEhRVUZIVlN4UlFVRlJMR05CUVdWRExFbEJRMmhDTEU5QlFWWkJMRWxCUjBveFF5eEpRVU5qTEU5QlFWWXdReXhKUVVkSVJpeEZRVUZSZUVNc1RVRkpWaXRDTEVWQlFVdFJMRTlCUVU5RExFVkJRVThzUlVGQlIwZ3NSVUZEZGtJc1JVRTNTMEZzU2l4RlFVRlJkMG9zUzBFclRGSXNVMEZCWTBNc1IwRkRZaXhKUVVOTFFTeEZRVU5JZWtvc1JVRkJVVEJLTEZGQlFWRkRMRkZCUVZFc1VVRkJVMFlzUjBGRmFrTjZTaXhGUVVGUk1Fb3NVVUZCVVVVc1YwRkJWeXhSUVVVM1FpeERRVUZGTEUxQlFVOURMRWRCUjFRc1EwRkRSQ3hGUVhwTlFUZEtMRVZCUVZFNFNpeExRV2xPVWl4WFFVTkRMRWxCUVVsRExFVkJRMG9zU1VGRFEwRXNSVUZCU1M5S0xFVkJRVkV3U2l4UlFVRlJUU3hSUVVGUkxGRkJRemRDTEVOQlFVVXNUVUZCVDBnc1IwRkhWQ3hEUVU5QkxFOUJTa3RGTEVkQlFYZENMRzlDUVVGYVJTeFRRVUV5UWl4UlFVRlRRU3hWUVVOd1JFWXNSVUZCU1VVc1VVRkJVVU1zU1VGQlNVTXNUMEZIVmtvc1EwRkRVaXhGUVM5T1FTOUtMRVZCUVZFMlNTeFZRWGxIVWl4WFFVbERMRWRCUVhOQ0xHOUNRVUZZZFVJc1VVRkJNRUpCTEU5QlFVOUlMRlZCUVc5RExHRkJRWGhDUnl4UFFVRlBTQ3hSUVVGUk5VY3NUVUZCZFVJclJ5eFBRVUZQU0N4UlFVRlJTU3hSUVVNMVJ5eFBRVUZQTEVWQlNWSXNSMEZCZVVJc2IwSkJRV1JETEZkQlFUWkNRU3hWUVVGVlF5eFhRVUZoUkN4VlFVRlZReXhWUVVGVlF5eGpRVUZqYWtJc1RVRkJUU3g1UWtGRGRFY3NUMEZCVHl4RlFVZFNMRWxCUVVsclFpeEZRVWxLTEUxQlFUUkNMRzlDUVVGaU4wUXNWVUZCTkVKQkxGTkJRVk00UkN4cFFrRkJiVUk1UkN4VFFVRlRPRVFzWjBKQlFXZENReXhQUVVGVEwwUXNVMEZCVXpoRUxHZENRVUZuUWtNc1RVRkJUVU1zYTBKQlJYQklMRzlDUVVGWVVpeFJRVUV3UWtFc1QwRkJUMU1zVlVGQldWUXNUMEZCVDFNc1VVRkJVVU1zVTBGQldWWXNUMEZCVDFNc1VVRkJVVVVzVjBGQllWZ3NUMEZCVDFNc1VVRkJVVWNzVVVGSGNrY3NiMEpCUVdSV0xGZEJRVFpDUVN4VlFVRlZReXhaUVVGalJTeEZRVUZKU0N4VlFVRlZReXhWUVVGVlF5eGpRVUZqYWtJc1RVRkJUU3h2UWtGQmMwSXdRaXhUUVVGVFVpeEZRVUZGTEVkQlFVa3NTMEZCVHl4SlFVVXZTQ3h2UWtGQlpFZ3NWMEZCTmtKQkxGVkJRVlZETEZkQlFXRkVMRlZCUVZWRExGVkJRVlZETEdOQlFXTnFRaXhOUVVGTkxIRkNRVU4wUnl4RlFXcEpRWFpLTEVWQlFWRXdTaXhSUVRKUFVpeFhRVU5ETEVsQlIwTXNUMEZCVDNkQ0xGbEJRMUlzUTBGQlJTeE5RVUZQY2tJc1IwRkhWQ3hEUVVORUxFTkJjRkJyUW5OQ0xFZEJRMnhDYmt3c1JVRkJVVzlNTEZGQlFWVXNUVUZEYWtJc1NVRkJTVU1zUjBGQlV5eEZRVVZpTEUxQlFVOHNTMEZEUkVFc1NVRkRTa0VzUjBGQlV5eEZRVU5VVWl4UlFVRlJVeXhMUVVGTExEQkpRVWRtTEVWQlZHbENMRWRCWld4Q2RFd3NSVUZCVVhWTUxFOUJRVk1zUTBGRGFFSXNWVUZEUVN4VlFVTkJMRlZCUTBFc1ZVRkRRU3hWUVVOQkxGVkJRMEVzVlVGRFFTeFZRVU5CTEZWQlEwRXNWVUZEUVN4VlFVTkJMRlZCUTBFc1ZVRkRRU3hWUVVOQkxGVkJRMEVzVlVGRFFTeFZRVU5CTEZWQlEwRXNWVUZEUVN4VlFVTkJMRlZCUTBFc1ZVRkRRU3hWUVVOQkxGVkJRMEVzVlVGRFFTeFZRVU5CTEZWQlEwRXNWVUZEUVN4VlFVTkJMRlZCUTBFc1ZVRkRRU3hWUVVOQkxGVkJRMEVzVlVGRFFTeFZRVU5CTEZWQlEwRXNWVUZEUVN4VlFVTkJMRlZCUTBFc1ZVRkRRU3hWUVVOQkxGVkJRMEVzVlVGRFFTeFZRVU5CTEZWQlEwRXNWVUZEUVN4VlFVTkJMRlZCUTBFc1ZVRkRRU3hWUVVOQkxGVkJRMEVzVlVGRFFTeFZRVU5CTEZWQlEwRXNWVUZEUVN4VlFVTkJMRlZCUTBFc1ZVRkRRU3hWUVVOQkxGVkJRMEVzVlVGRFFTeFZRVU5CTEZWQlEwRXNWVUZEUVN4VlFVTkJMRlZCUTBFc1ZVRkRRU3hWUVVOQkxGVkJRMEVzVlVGRFFTeFZRVU5CTEZWQlEwRXNWVUZEUVN4VlFVTkJMRlZCUTBFc1YwRjNSa1IyVEN4RlFVRlJkMHdzU1VGQlRWZ3NVVUZCVVdwTExFOUJRVk5wU3l4UlFVRlJWeXhMUVVGUExFMUJRVk1zUjBGclJYWkVla01zUlVGQlR5OUpMRkZCUVZVc1JVRkJVU3hMUVVGU0xFTkJRVzlDUVN4SFFVVnlReXhOUVVGTkxGZEJRVU41VEN4SFFVRmpNVU1zUlVGQlR5OUpMRkZCVFRWQ2VVd3NSVUZCVjBNc1JVRkJTU3hUUVVGVlF5eEhRVU40UWl4SlFVTkRMRTlCUVU5RExFdEJRVXRETEZWQlFWVkdMRVZCUTNaQ0xFTkJRVVVzVFVGQlR6bENMRWRCUTFJc1RVRkJUeXdyUWtGQmFVTkJMRVZCUVUxcFF5eFBRVU12UXl4RFFVTkVMRU1zT0VKRE4xRkJhRTBzVDBGQlQwTXNaVUZCWlVNc1JVRkJVeXhoUVVGakxFTkJRVVZETEU5QlFVOHNTVUZEZEVSRUxFVkJRVkYzWjBJc1owSkJRV0VzUlVGRGNrSXNUVUZCVFdkcFFpeEZRVUZsTEVWQlFWRXNTMEZEZGtKRExFVkJRV2xDTEVWQlFWRXNUVUZEZWtKRExFVkJRVzlDTEVWQlFWRXNUVUZEYkVNeGFVTXNSVUZCVVhkblFpeFhRVUZoTEVOQlEycENiV2xDTEZWQlFWZEdMRVZCUVdWa0xFZEJRekZDYVVJc1lVRkJZMFlzUlVGQmEwSnFia0lzUjBGRGFFTnNZU3hSUVVGVGFXaERMRVZCUVdGeWFVTXNVU3cwUWtOU01VSk1MRTlCUVU5RExHVkJRV1ZETEVWQlFWTXNZVUZCWXl4RFFVRkZReXhQUVVGUExFbEJRM1JFUkN4RlFVRlJObWxETEd0Q1FVRnZRamRwUXl4RlFVRlJiMDRzUzBGQlQzQk9MRVZCUVZFNGFVTXNjVUpCUVhWQ09XbERMRVZCUVZFcmFVTXNkMEpCUVRCQ0wybERMRVZCUVZGbmFrTXNLMEpCUVdsRGFHcERMRVZCUVZGcGFrTXNORUpCUVRoQ2FtcERMRVZCUVZGcmFrTXNkMEpCUVRCQ2JHcERMRVZCUVZGdGFrTXNhMEpCUVc5Q2JtcERMRVZCUVZGdmFrTXNaVUZCYVVKd2FrTXNSVUZCVVhGcVF5eHhRa0ZCYTBJc1JVRkROVk55YWtNc1JVRkJVWEZxUXl4blFrRkJhMElzVVVGRE1VSnlha01zUlVGQlVXOXFReXhsUVVGcFFpeFBRVU42UW5CcVF5eEZRVUZSYldwRExHdENRVUZ2UWl4VlFVTTFRbTVxUXl4RlFVRlJhMnBETEhkQ1FVRXdRaXhuUWtGRGJFTnNha01zUlVGQlVXbHFReXcwUWtGQk9FSXNiMEpCUTNSRGFtcERMRVZCUVZGbmFrTXNLMEpCUVdsRExIVkNRVU42UTJocVF5eEZRVUZSSzJsRExIZENRVUV3UWl4blFrRkRiRU12YVVNc1JVRkJVVGhwUXl4eFFrRkJkVUlzWVVGREwwSTVhVU1zUlVGQlVXOU9MRXRCUVU4c1EwRkRXQ3hEUVVGRGNFNHNSVUZCVVhGcVF5eHJRa0ZCYTBJc1JVRkRNMElzUTBGQlEzSnFReXhGUVVGUmIycERMR2xDUVVGcFFpeEZRVU14UWl4RFFVRkRjR3BETEVWQlFWRnRha01zYjBKQlFXOUNMRVZCUXpkQ0xFTkJRVU51YWtNc1JVRkJVV3RxUXl3d1FrRkJNRUlzUlVGRGJrTXNRMEZCUTJ4cVF5eEZRVUZSYVdwRExEaENRVUU0UWl4RlFVTjJReXhEUVVGRGFtcERMRVZCUVZGbmFrTXNhVU5CUVdsRExFVkJRekZETEVOQlFVTm9ha01zUlVGQlVTdHBReXd3UWtGQk1FSXNSVUZEYmtNc1EwRkJReTlwUXl4RlFVRlJPR2xETEhWQ1FVRjFRaXhIUVVWd1F6bHBReXhGUVVGUk5tbERMR3RDUVVGdlFpOXBReXhQUVVGUGJWTXNTMEZCUzJwVExFVkJRVkZ2VGl4TlFUWkNhRVJ3VGl4RlFVRkJMRkZCTlVKQkxFMUJRMGtzVjBGQlFXOUNMRU5CUVZreVRTeEZRVUZUTDA0c1JVRkJVVzlPTEUxQlEzcENMRTlCUVU5MFRpeFBRVUZQTmtVc1QwRkJUMmhHTEV0QlFVMXZUeXhGUVVNdlFpeERRVU5CTERKQ1FVRlBkVEZDTEVOQlFYRkNjazBzUjBGRGVFSXNUVUZCVFhkRkxFVkJRV040UlN4RlFVRkpjSFpDTEUxQlFVMHNTMEZCU3l4SFFVTnVReXhKUVVGTE5IcENMRVZCUTBRc1RVRkJUeXhKUVVGTGVqZENMRVZCUVZGdlRpeE5RVU40UWl4TlFVRk5WeXhGUVVGVExFbEJRVWx4VkN4blFrRkJaMEp4WVN4SFFVTTNRamRPTEVWQlFWTXNRMEZCUXl4RlFVTm9RaXhKUVVGTExFMUJRVTB4WWl4TFFVRlBiRk1zUlVGQlVUWnBReXhyUWtGQmJVSXNRMEZEZWtNc1RVRkJUVFZwUXl4RlFVRlJPRTRzUlVGQlQydEVMRWxCUVVscFFpeEhRVVZ5UWpCaUxFVkJRVTh4WWl4SFFVUkhMRk5CUVZacVV5eEhRVWRsTEZWQlFWWkJMRWRCU1ZOemRFSXNVVUZCVVhSMFFpeEZRVVU1UWl4RFFVTkJMRTFCUVU4c1NVRkRRVVFzUlVGQlVXOU9MRkZCUTFKM1owSXNSVUZGV0N4RkxFZERMME5CTWxZc1JVRkJNa0lzUTBGQlF5eEZRVWRvUXl4VFFVRlRReXhGUVVGdlFrTXNSMEZGTlVJc1NVRkJTVU1zUlVGQlpVZ3NSVUZCZVVKRkxFZEJRelZETEZGQlFYRkNiQ3RDTEVsQlFXcENiU3RDTEVWQlFUUkNMRU5CUXk5Q0xGRkJRVEpDYml0Q0xFbEJRWFpDYlN0Q0xFVkJRV0UzTlVJc1RVRkJjVUlzVFVGQlRUWTFRaXhGUVVGaE56VkNMRTFCUTNwRUxFOUJRVTgyTlVJc1JVRkJZVEZxUXl4UFFVTnlRaXhEUVVWQkxFbEJRVWtyU1N4RlFVRlRkelpDTEVWQlFYbENSU3hIUVVGWkxFTkJSMnBFZW1wRExGRkJRVk1zUTBGQlF5eEhRVWxZTEVsQlEwTXlha01zUlVGQmIwSkdMRWRCUVZVNWVVSXNTMEZCU3pWSUxFVkJRVTh2U1N4UlFVRlRLMGtzUlVGQlVVRXNSVUZCVHk5SkxGRkJRVk4zYWtNc1JVRkROVVVzUTBGQlJTeE5RVUZOZERsQ0xFZEJSVkFzVFVGRVFUWkRMRVZCUVU5akxFMUJRVkV6UkN4RlFVTlVRU3hEUVVOUUxFTkJSMEVzVDBGQlR6WkRMRVZCUVU4dlNTeFBRVU5tTEVORE0wSkJkMnBETEVWQlFXOUNhazRzUlVGQlNTeERRVUZEZGpKQ0xFVkJRVk0wYWtNc1MwRkRha01zU1VGQlNTeEpRVUZKTVhoQ0xFdEJRVTh3ZUVJc1JVRkRXRW9zUlVGQmIwSnFkVUlzUlVGQlJYRjFRaXhGUVVGWk1YaENMRXRCUVZOemVFSXNSVUZCYjBKcWRVSXNSVUZCUlhaV0xFVkJRVk5yVXl4SlFVTTFSWEJUTEU5QlFVOURMR1ZCUVdWRExFVkJRVk5yVXl4RlFVRkxMRU5CUVVWdVFpeFpRVUZaTEVWQlFVMUZMRWxCUVVzeWVVSXNSVUZCVnpGNFFpeE5RMG96UlhONFFpeEZRVUZ2UW1wMVFpeEZRVUZKTEVOQlFVTXpTU3hGUVVGTGFUTkNMRWxCUVZVdmFrTXNUMEZCVDJkVkxGVkJRVlU1VGl4bFFVRmxNa3NzUzBGQlN5OUVMRVZCUVV0cE0wSXNSME5EYkVaTUxFVkJRVzlDZWpWQ0xFVkJRVXN2U2l4SlFVTklMRzlDUVVGWU9HcERMRkZCUVRCQ1FTeFBRVUZQUXl4aFFVTXhRMnByUXl4UFFVRlBReXhsUVVGbFF5eEZRVUZUT0dwRExFOUJRVTlETEZsQlFXRXNRMEZCUlRscVF5eE5RVUZQTEZkQlJUZEVTQ3hQUVVGUFF5eGxRVUZsUXl4RlFVRlRMR0ZCUVdNc1EwRkJSVU1zVDBGQlR5eExRMFkzUW5WcVF5eEZRVUZ2UWl4TElpd2ljMjkxY21ObGN5STZXeUozWldKd1lXTnJPaTh2ZEdGc2EyNHRZWEJwTFdOc2FXVnVkQzh1TDI1dlpHVmZiVzlrZFd4bGN5OWxibWRwYm1VdWFXOHRZMnhwWlc1MEwySjFhV3hrTDJOcWN5OTBjbUZ1YzNCdmNuUnpMM0J2Ykd4cGJtY3Vhbk1pTENKM1pXSndZV05yT2k4dmRHRnNhMjR0WVhCcExXTnNhV1Z1ZEM4dUwyNXZaR1ZmYlc5a2RXeGxjeTlsYm1kcGJtVXVhVzh0WTJ4cFpXNTBMMkoxYVd4a0wyTnFjeTlqYjI1MGNtbGlMM2xsWVhOMExtcHpJaXdpZDJWaWNHRmphem92TDNSaGJHdHVMV0Z3YVMxamJHbGxiblF2TGk5dWIyUmxYMjF2WkhWc1pYTXZjMjlqYTJWMExtbHZMWEJoY25ObGNpOXViMlJsWDIxdlpIVnNaWE12WkdWaWRXY3ZjM0pqTDJKeWIzZHpaWEl1YW5NaUxDSjNaV0p3WVdOck9pOHZkR0ZzYTI0dFlYQnBMV05zYVdWdWRDOHVMMjV2WkdWZmJXOWtkV3hsY3k5bGJtZHBibVV1YVc4dFkyeHBaVzUwTDJKMWFXeGtMMk5xY3k5amIyNTBjbWxpTDNCaGNuTmxkWEpwTG1weklpd2lkMlZpY0dGamF6b3ZMM1JoYkd0dUxXRndhUzFqYkdsbGJuUXZMaTR2WTI5dGJXOXVMM055WXk5dGIyUmxiSE12UTJoRGIyNW1hV2N1ZEhNaUxDSjNaV0p3WVdOck9pOHZkR0ZzYTI0dFlYQnBMV05zYVdWdWRDOHVMMjV2WkdWZmJXOWtkV3hsY3k5emIyTnJaWFF1YVc4dFkyeHBaVzUwTDI1dlpHVmZiVzlrZFd4bGN5OWtaV0oxWnk5emNtTXZZMjl0Ylc5dUxtcHpJaXdpZDJWaWNHRmphem92TDNSaGJHdHVMV0Z3YVMxamJHbGxiblF2TGk5dWIyUmxYMjF2WkhWc1pYTXZaVzVuYVc1bExtbHZMWEJoY25ObGNpOWlkV2xzWkM5amFuTXZZMjl0Ylc5dWN5NXFjeUlzSW5kbFluQmhZMnM2THk5MFlXeHJiaTFoY0drdFkyeHBaVzUwTHk0dmJtOWtaVjl0YjJSMWJHVnpMMlZ1WjJsdVpTNXBieTF3WVhKelpYSXZZblZwYkdRdlkycHpMMlJsWTI5a1pWQmhZMnRsZEM1aWNtOTNjMlZ5TG1weklpd2lkMlZpY0dGamF6b3ZMM1JoYkd0dUxXRndhUzFqYkdsbGJuUXZMaTl1YjJSbFgyMXZaSFZzWlhNdlpXNW5hVzVsTG1sdkxYQmhjbk5sY2k5aWRXbHNaQzlqYW5NdlpXNWpiMlJsVUdGamEyVjBMbUp5YjNkelpYSXVhbk1pTENKM1pXSndZV05yT2k4dmRHRnNhMjR0WVhCcExXTnNhV1Z1ZEM4dUwyNXZaR1ZmYlc5a2RXeGxjeTlsYm1kcGJtVXVhVzh0Y0dGeWMyVnlMMkoxYVd4a0wyTnFjeTlqYjI1MGNtbGlMMkpoYzJVMk5DMWhjbkpoZVdKMVptWmxjaTVxY3lJc0luZGxZbkJoWTJzNkx5OTBZV3hyYmkxaGNHa3RZMnhwWlc1MEx5NHZibTlrWlY5dGIyUjFiR1Z6TDJWdVoybHVaUzVwYnkxamJHbGxiblF2WW5WcGJHUXZZMnB6TDNSeVlXNXpjRzl5ZEhNdmVHMXNhSFIwY0hKbGNYVmxjM1F1WW5KdmQzTmxjaTVxY3lJc0luZGxZbkJoWTJzNkx5OTBZV3hyYmkxaGNHa3RZMnhwWlc1MEx5NHZibTlrWlY5dGIyUjFiR1Z6TDNOdlkydGxkQzVwYnkxamJHbGxiblF2WW5WcGJHUXZZMnB6TDIxaGJtRm5aWEl1YW5NaUxDSjNaV0p3WVdOck9pOHZkR0ZzYTI0dFlYQnBMV05zYVdWdWRDOHVMMjV2WkdWZmJXOWtkV3hsY3k5emIyTnJaWFF1YVc4dGNHRnljMlZ5TDI1dlpHVmZiVzlrZFd4bGN5OWtaV0oxWnk5emNtTXZZMjl0Ylc5dUxtcHpJaXdpZDJWaWNHRmphem92TDNSaGJHdHVMV0Z3YVMxamJHbGxiblF2TGk5dWIyUmxYMjF2WkhWc1pYTXZaVzVuYVc1bExtbHZMV05zYVdWdWRDOWlkV2xzWkM5amFuTXZkSEpoYm5Od2IzSjBjeTkzWldKemIyTnJaWFF0WTI5dWMzUnlkV04wYjNJdVluSnZkM05sY2k1cWN5SXNJbmRsWW5CaFkyczZMeTkwWVd4cmJpMWhjR2t0WTJ4cFpXNTBMeTR2Ym05a1pWOXRiMlIxYkdWekwyVnVaMmx1WlM1cGJ5MWpiR2xsYm5RdlluVnBiR1F2WTJwekwyTnZiblJ5YVdJdmFHRnpMV052Y25NdWFuTWlMQ0ozWldKd1lXTnJPaTh2ZEdGc2EyNHRZWEJwTFdOc2FXVnVkQzh1TDI1dlpHVmZiVzlrZFd4bGN5OUFjMjlqYTJWMExtbHZMMk52YlhCdmJtVnVkQzFsYldsMGRHVnlMMnhwWWk5bGMyMHZhVzVrWlhndWFuTWlMQ0ozWldKd1lXTnJPaTh2ZEdGc2EyNHRZWEJwTFdOc2FXVnVkQzh1TDI1dlpHVmZiVzlrZFd4bGN5OWxibWRwYm1VdWFXOHRZMnhwWlc1MEwySjFhV3hrTDJOcWN5OTBjbUZ1YzNCdmNuUnpMM2RsWW5SeVlXNXpjRzl5ZEM1cWN5SXNJbmRsWW5CaFkyczZMeTkwWVd4cmJpMWhjR2t0WTJ4cFpXNTBMeTR2Ym05a1pWOXRiMlIxYkdWekwzTnZZMnRsZEM1cGJ5MXdZWEp6WlhJdlluVnBiR1F2WTJwekwybHVaR1Y0TG1weklpd2lkMlZpY0dGamF6b3ZMM1JoYkd0dUxXRndhUzFqYkdsbGJuUXZMaTl1YjJSbFgyMXZaSFZzWlhNdlpXNW5hVzVsTG1sdkxXTnNhV1Z1ZEM5aWRXbHNaQzlqYW5NdmRISmhibk53YjNKMExtcHpJaXdpZDJWaWNHRmphem92TDNSaGJHdHVMV0Z3YVMxamJHbGxiblF2TGk5dWIyUmxYMjF2WkhWc1pYTXZjMjlqYTJWMExtbHZMWEJoY25ObGNpOWlkV2xzWkM5amFuTXZZbWx1WVhKNUxtcHpJaXdpZDJWaWNHRmphem92TDNSaGJHdHVMV0Z3YVMxamJHbGxiblF2TGk5dWIyUmxYMjF2WkhWc1pYTXZaVzVuYVc1bExtbHZMV05zYVdWdWRDOWlkV2xzWkM5amFuTXZhVzVrWlhndWFuTWlMQ0ozWldKd1lXTnJPaTh2ZEdGc2EyNHRZWEJwTFdOc2FXVnVkQzh1TGk5amIyMXRiMjR2YzNKakwyMXZaR1ZzY3k5Q2IyOTBUM0IwYVc5dUxuUnpJaXdpZDJWaWNHRmphem92TDNSaGJHdHVMV0Z3YVMxamJHbGxiblF2TGk5dWIyUmxYMjF2WkhWc1pYTXZaVzVuYVc1bExtbHZMV05zYVdWdWRDOWlkV2xzWkM5amFuTXZkWFJwYkM1cWN5SXNJbmRsWW5CaFkyczZMeTkwWVd4cmJpMWhjR2t0WTJ4cFpXNTBMeTR1TDJOdmJXMXZiaTl6Y21NdlpHVm1hVzVsTG5Seklpd2lkMlZpY0dGamF6b3ZMM1JoYkd0dUxXRndhUzFqYkdsbGJuUXZMaTl1YjJSbFgyMXZaSFZzWlhNdmNISnZZMlZ6Y3k5aWNtOTNjMlZ5TG1weklpd2lkMlZpY0dGamF6b3ZMM1JoYkd0dUxXRndhUzFqYkdsbGJuUXZMaTR2WTI5dGJXOXVMM055WXk5MWRHbHNjeTUwY3lJc0luZGxZbkJoWTJzNkx5OTBZV3hyYmkxaGNHa3RZMnhwWlc1MEx5NHZibTlrWlY5dGIyUjFiR1Z6TDNOdlkydGxkQzVwYnkxamJHbGxiblF2WW5WcGJHUXZZMnB6TDI5dUxtcHpJaXdpZDJWaWNHRmphem92TDNSaGJHdHVMV0Z3YVMxamJHbGxiblF2TGk5dWIyUmxYMjF2WkhWc1pYTXZjMjlqYTJWMExtbHZMV05zYVdWdWRDOWlkV2xzWkM5amFuTXZjMjlqYTJWMExtcHpJaXdpZDJWaWNHRmphem92TDNSaGJHdHVMV0Z3YVMxamJHbGxiblF2TGk5dWIyUmxYMjF2WkhWc1pYTXZaVzVuYVc1bExtbHZMV05zYVdWdWRDOWlkV2xzWkM5amFuTXZaMnh2WW1Gc1ZHaHBjeTVpY205M2MyVnlMbXB6SWl3aWQyVmljR0ZqYXpvdkwzUmhiR3R1TFdGd2FTMWpiR2xsYm5RdkxpOXpjbU12ZDNOelYyOXlhMlZ5TDFSdlUyVnlkbVZ5TG5Seklpd2lkMlZpY0dGamF6b3ZMM1JoYkd0dUxXRndhUzFqYkdsbGJuUXZMaTl1YjJSbFgyMXZaSFZzWlhNdlpXNW5hVzVsTG1sdkxYQmhjbk5sY2k5aWRXbHNaQzlqYW5NdmFXNWtaWGd1YW5NaUxDSjNaV0p3WVdOck9pOHZkR0ZzYTI0dFlYQnBMV05zYVdWdWRDOHVMaTlqYjIxdGIyNHZjM0pqTDFObGNYVmxibU5sTG5Seklpd2lkMlZpY0dGamF6b3ZMM1JoYkd0dUxXRndhUzFqYkdsbGJuUXZMaTl1YjJSbFgyMXZaSFZzWlhNdmJYTXZhVzVrWlhndWFuTWlMQ0ozWldKd1lXTnJPaTh2ZEdGc2EyNHRZWEJwTFdOc2FXVnVkQzh1TDI1dlpHVmZiVzlrZFd4bGN5OWxibWRwYm1VdWFXOHRZMnhwWlc1MEwyNXZaR1ZmYlc5a2RXeGxjeTlrWldKMVp5OXpjbU12WW5KdmQzTmxjaTVxY3lJc0luZGxZbkJoWTJzNkx5OTBZV3hyYmkxaGNHa3RZMnhwWlc1MEx5NHZibTlrWlY5dGIyUjFiR1Z6TDNOdlkydGxkQzVwYnkxamJHbGxiblF2WW5WcGJHUXZZMnB6TDNWeWJDNXFjeUlzSW5kbFluQmhZMnM2THk5MFlXeHJiaTFoY0drdFkyeHBaVzUwTHk0dUwyTnZiVzF2Ymk5emNtTXZZMjl1Wmk1MGN5SXNJbmRsWW5CaFkyczZMeTkwWVd4cmJpMWhjR2t0WTJ4cFpXNTBMeTR1TDJOdmJXMXZiaTl6Y21NdmJXOWtaV3h6TDBOb0xuUnpJaXdpZDJWaWNHRmphem92TDNSaGJHdHVMV0Z3YVMxamJHbGxiblF2TGk5dWIyUmxYMjF2WkhWc1pYTXZjMjlqYTJWMExtbHZMV05zYVdWdWRDOWlkV2xzWkM5amFuTXZZMjl1ZEhKcFlpOWlZV05yYnpJdWFuTWlMQ0ozWldKd1lXTnJPaTh2ZEdGc2EyNHRZWEJwTFdOc2FXVnVkQzh1TDI1dlpHVmZiVzlrZFd4bGN5OXpiMk5yWlhRdWFXOHRZMnhwWlc1MEwySjFhV3hrTDJOcWN5OXBibVJsZUM1cWN5SXNJbmRsWW5CaFkyczZMeTkwWVd4cmJpMWhjR2t0WTJ4cFpXNTBMeTR2Ym05a1pWOXRiMlIxYkdWekwyVnVaMmx1WlM1cGJ5MWpiR2xsYm5RdlluVnBiR1F2WTJwekwzTnZZMnRsZEM1cWN5SXNJbmRsWW5CaFkyczZMeTkwWVd4cmJpMWhjR2t0WTJ4cFpXNTBMeTR2YzNKakwzZHpjMWR2Y210bGNpOXBibVJsZUM1MGN5SXNJbmRsWW5CaFkyczZMeTkwWVd4cmJpMWhjR2t0WTJ4cFpXNTBMeTR2Ym05a1pWOXRiMlIxYkdWekwyVnVaMmx1WlM1cGJ5MWpiR2xsYm5RdlluVnBiR1F2WTJwekwyTnZiblJ5YVdJdmNHRnljMlZ4Y3k1cWN5SXNJbmRsWW5CaFkyczZMeTkwWVd4cmJpMWhjR2t0WTJ4cFpXNTBMeTR2Ym05a1pWOXRiMlIxYkdWekwyVnVaMmx1WlM1cGJ5MWpiR2xsYm5RdlluVnBiR1F2WTJwekwzUnlZVzV6Y0c5eWRITXZkMlZpYzI5amEyVjBMbXB6SWl3aWQyVmljR0ZqYXpvdkwzUmhiR3R1TFdGd2FTMWpiR2xsYm5RdkxpOXViMlJsWDIxdlpIVnNaWE12Wlc1bmFXNWxMbWx2TFdOc2FXVnVkQzl1YjJSbFgyMXZaSFZzWlhNdlpHVmlkV2N2YzNKakwyTnZiVzF2Ymk1cWN5SXNJbmRsWW5CaFkyczZMeTkwWVd4cmJpMWhjR2t0WTJ4cFpXNTBMeTR2Ym05a1pWOXRiMlIxYkdWekwzTnZZMnRsZEM1cGJ5MXdZWEp6WlhJdlluVnBiR1F2WTJwekwybHpMV0pwYm1GeWVTNXFjeUlzSW5kbFluQmhZMnM2THk5MFlXeHJiaTFoY0drdFkyeHBaVzUwTHk0dmJtOWtaVjl0YjJSMWJHVnpMM052WTJ0bGRDNXBieTFqYkdsbGJuUXZibTlrWlY5dGIyUjFiR1Z6TDJSbFluVm5MM055WXk5aWNtOTNjMlZ5TG1weklpd2lkMlZpY0dGamF6b3ZMM1JoYkd0dUxXRndhUzFqYkdsbGJuUXZMaTl1YjJSbFgyMXZaSFZzWlhNdlpXNW5hVzVsTG1sdkxXTnNhV1Z1ZEM5aWRXbHNaQzlqYW5NdmRISmhibk53YjNKMGN5OXBibVJsZUM1cWN5SXNJbmRsWW5CaFkyczZMeTkwWVd4cmJpMWhjR2t0WTJ4cFpXNTBMeTR1TDJOdmJXMXZiaTl6Y21NdmJXOWtaV3h6TDFSMWJtVlBjSFJwYjI0dWRITWlMQ0ozWldKd1lXTnJPaTh2ZEdGc2EyNHRZWEJwTFdOc2FXVnVkQzkzWldKd1lXTnJMMkp2YjNSemRISmhjQ0lzSW5kbFluQmhZMnM2THk5MFlXeHJiaTFoY0drdFkyeHBaVzUwTDNkbFluQmhZMnN2Y25WdWRHbHRaUzlrWldacGJtVWdjSEp2Y0dWeWRIa2daMlYwZEdWeWN5SXNJbmRsWW5CaFkyczZMeTkwWVd4cmJpMWhjR2t0WTJ4cFpXNTBMM2RsWW5CaFkyc3ZjblZ1ZEdsdFpTOW9ZWE5QZDI1UWNtOXdaWEowZVNCemFHOXlkR2hoYm1RaUxDSjNaV0p3WVdOck9pOHZkR0ZzYTI0dFlYQnBMV05zYVdWdWRDOTNaV0p3WVdOckwzSjFiblJwYldVdmJXRnJaU0J1WVcxbGMzQmhZMlVnYjJKcVpXTjBJaXdpZDJWaWNHRmphem92TDNSaGJHdHVMV0Z3YVMxamJHbGxiblF2ZDJWaWNHRmpheTl6ZEdGeWRIVndJbDBzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSWx3aWRYTmxJSE4wY21samRGd2lPMXh1ZG1GeUlGOWZhVzF3YjNKMFJHVm1ZWFZzZENBOUlDaDBhR2x6SUNZbUlIUm9hWE11WDE5cGJYQnZjblJFWldaaGRXeDBLU0I4ZkNCbWRXNWpkR2x2YmlBb2JXOWtLU0I3WEc0Z0lDQWdjbVYwZFhKdUlDaHRiMlFnSmlZZ2JXOWtMbDlmWlhOTmIyUjFiR1VwSUQ4Z2JXOWtJRG9nZXlCY0ltUmxabUYxYkhSY0lqb2diVzlrSUgwN1hHNTlPMXh1VDJKcVpXTjBMbVJsWm1sdVpWQnliM0JsY25SNUtHVjRjRzl5ZEhNc0lGd2lYMTlsYzAxdlpIVnNaVndpTENCN0lIWmhiSFZsT2lCMGNuVmxJSDBwTzF4dVpYaHdiM0owY3k1U1pYRjFaWE4wSUQwZ1pYaHdiM0owY3k1UWIyeHNhVzVuSUQwZ2RtOXBaQ0F3TzF4dVkyOXVjM1FnZEhKaGJuTndiM0owWDJwelh6RWdQU0J5WlhGMWFYSmxLRndpTGk0dmRISmhibk53YjNKMExtcHpYQ0lwTzF4dVkyOXVjM1FnWkdWaWRXZGZNU0E5SUY5ZmFXMXdiM0owUkdWbVlYVnNkQ2h5WlhGMWFYSmxLRndpWkdWaWRXZGNJaWtwT3lBdkx5QmtaV0oxWnlncFhHNWpiMjV6ZENCNVpXRnpkRjlxYzE4eElEMGdjbVZ4ZFdseVpTaGNJaTR1TDJOdmJuUnlhV0l2ZVdWaGMzUXVhbk5jSWlrN1hHNWpiMjV6ZENCbGJtZHBibVZmYVc5ZmNHRnljMlZ5WHpFZ1BTQnlaWEYxYVhKbEtGd2laVzVuYVc1bExtbHZMWEJoY25ObGNsd2lLVHRjYm1OdmJuTjBJSGh0YkdoMGRIQnlaWEYxWlhOMFgycHpYekVnUFNCeVpYRjFhWEpsS0Z3aUxpOTRiV3hvZEhSd2NtVnhkV1Z6ZEM1cWMxd2lLVHRjYm1OdmJuTjBJR052YlhCdmJtVnVkRjlsYldsMGRHVnlYekVnUFNCeVpYRjFhWEpsS0Z3aVFITnZZMnRsZEM1cGJ5OWpiMjF3YjI1bGJuUXRaVzFwZEhSbGNsd2lLVHRjYm1OdmJuTjBJSFYwYVd4ZmFuTmZNU0E5SUhKbGNYVnBjbVVvWENJdUxpOTFkR2xzTG1welhDSXBPMXh1WTI5dWMzUWdaMnh2WW1Gc1ZHaHBjMTlxYzE4eElEMGdjbVZ4ZFdseVpTaGNJaTR1TDJkc2IySmhiRlJvYVhNdWFuTmNJaWs3WEc1amIyNXpkQ0JrWldKMVp5QTlJQ2d3TENCa1pXSjFaMTh4TG1SbFptRjFiSFFwS0Z3aVpXNW5hVzVsTG1sdkxXTnNhV1Z1ZERwd2IyeHNhVzVuWENJcE95QXZMeUJrWldKMVp5Z3BYRzVtZFc1amRHbHZiaUJsYlhCMGVTZ3BJSHNnZlZ4dVkyOXVjM1FnYUdGeldFaFNNaUE5SUNobWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ1kyOXVjM1FnZUdoeUlEMGdibVYzSUhodGJHaDBkSEJ5WlhGMVpYTjBYMnB6WHpFdVdFaFNLSHRjYmlBZ0lDQWdJQ0FnZUdSdmJXRnBiam9nWm1Gc2MyVXNYRzRnSUNBZ2ZTazdYRzRnSUNBZ2NtVjBkWEp1SUc1MWJHd2dJVDBnZUdoeUxuSmxjM0J2Ym5ObFZIbHdaVHRjYm4wcEtDazdYRzVqYkdGemN5QlFiMnhzYVc1bklHVjRkR1Z1WkhNZ2RISmhibk53YjNKMFgycHpYekV1VkhKaGJuTndiM0owSUh0Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCWVNGSWdVRzlzYkdsdVp5QmpiMjV6ZEhKMVkzUnZjaTVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdUMkpxWldOMGZTQnZjSFJ6WEc0Z0lDQWdJQ29nUUhCaFkydGhaMlZjYmlBZ0lDQWdLaTljYmlBZ0lDQmpiMjV6ZEhKMVkzUnZjaWh2Y0hSektTQjdYRzRnSUNBZ0lDQWdJSE4xY0dWeUtHOXdkSE1wTzF4dUlDQWdJQ0FnSUNCMGFHbHpMbkJ2Ykd4cGJtY2dQU0JtWVd4elpUdGNiaUFnSUNBZ0lDQWdhV1lnS0hSNWNHVnZaaUJzYjJOaGRHbHZiaUFoUFQwZ1hDSjFibVJsWm1sdVpXUmNJaWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2FYTlRVMHdnUFNCY0ltaDBkSEJ6T2x3aUlEMDlQU0JzYjJOaGRHbHZiaTV3Y205MGIyTnZiRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHeGxkQ0J3YjNKMElEMGdiRzlqWVhScGIyNHVjRzl5ZER0Y2JpQWdJQ0FnSUNBZ0lDQWdJQzh2SUhOdmJXVWdkWE5sY2lCaFoyVnVkSE1nYUdGMlpTQmxiWEIwZVNCZ2JHOWpZWFJwYjI0dWNHOXlkR0JjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2doY0c5eWRDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEJ2Y25RZ1BTQnBjMU5UVENBL0lGd2lORFF6WENJZ09pQmNJamd3WENJN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG5oa0lEMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQW9kSGx3Wlc5bUlHeHZZMkYwYVc5dUlDRTlQU0JjSW5WdVpHVm1hVzVsWkZ3aUlDWW1YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUc5d2RITXVhRzl6ZEc1aGJXVWdJVDA5SUd4dlkyRjBhVzl1TG1odmMzUnVZVzFsS1NCOGZGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J3YjNKMElDRTlQU0J2Y0hSekxuQnZjblE3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0x5b3FYRzRnSUNBZ0lDQWdJQ0FxSUZoSVVpQnpkWEJ3YjNKMGN5QmlhVzVoY25sY2JpQWdJQ0FnSUNBZ0lDb3ZYRzRnSUNBZ0lDQWdJR052Ym5OMElHWnZjbU5sUW1GelpUWTBJRDBnYjNCMGN5QW1KaUJ2Y0hSekxtWnZjbU5sUW1GelpUWTBPMXh1SUNBZ0lDQWdJQ0IwYUdsekxuTjFjSEJ2Y25SelFtbHVZWEo1SUQwZ2FHRnpXRWhTTWlBbUppQWhabTl5WTJWQ1lYTmxOalE3WEc0Z0lDQWdJQ0FnSUdsbUlDaDBhR2x6TG05d2RITXVkMmwwYUVOeVpXUmxiblJwWVd4ektTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbU52YjJ0cFpVcGhjaUE5SUNnd0xDQjRiV3hvZEhSd2NtVnhkV1Z6ZEY5cWMxOHhMbU55WldGMFpVTnZiMnRwWlVwaGNpa29LVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ0lDQm5aWFFnYm1GdFpTZ3BJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRndpY0c5c2JHbHVaMXdpTzF4dUlDQWdJSDFjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJQY0dWdWN5QjBhR1VnYzI5amEyVjBJQ2gwY21sbloyVnljeUJ3YjJ4c2FXNW5LUzRnVjJVZ2QzSnBkR1VnWVNCUVNVNUhJRzFsYzNOaFoyVWdkRzhnWkdWMFpYSnRhVzVsWEc0Z0lDQWdJQ29nZDJobGJpQjBhR1VnZEhKaGJuTndiM0owSUdseklHOXdaVzR1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBY0hKdmRHVmpkR1ZrWEc0Z0lDQWdJQ292WEc0Z0lDQWdaRzlQY0dWdUtDa2dlMXh1SUNBZ0lDQWdJQ0IwYUdsekxuQnZiR3dvS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nVUdGMWMyVnpJSEJ2Ykd4cGJtY3VYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwWjFibU4wYVc5dWZTQnZibEJoZFhObElDMGdZMkZzYkdKaFkyc2dkWEJ2YmlCaWRXWm1aWEp6SUdGeVpTQm1iSFZ6YUdWa0lHRnVaQ0IwY21GdWMzQnZjblFnYVhNZ2NHRjFjMlZrWEc0Z0lDQWdJQ29nUUhCaFkydGhaMlZjYmlBZ0lDQWdLaTljYmlBZ0lDQndZWFZ6WlNodmJsQmhkWE5sS1NCN1hHNGdJQ0FnSUNBZ0lIUm9hWE11Y21WaFpIbFRkR0YwWlNBOUlGd2ljR0YxYzJsdVoxd2lPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQndZWFZ6WlNBOUlDZ3BJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR1JsWW5WbktGd2ljR0YxYzJWa1hDSXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTV5WldGa2VWTjBZWFJsSUQwZ1hDSndZWFZ6WldSY0lqdGNiaUFnSUNBZ0lDQWdJQ0FnSUc5dVVHRjFjMlVvS1R0Y2JpQWdJQ0FnSUNBZ2ZUdGNiaUFnSUNBZ0lDQWdhV1lnS0hSb2FYTXVjRzlzYkdsdVp5QjhmQ0FoZEdocGN5NTNjbWwwWVdKc1pTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2JHVjBJSFJ2ZEdGc0lEMGdNRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2gwYUdsekxuQnZiR3hwYm1jcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmtaV0oxWnloY0luZGxJR0Z5WlNCamRYSnlaVzUwYkhrZ2NHOXNiR2x1WnlBdElIZGhhWFJwYm1jZ2RHOGdjR0YxYzJWY0lpazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkRzkwWVd3ckt6dGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG05dVkyVW9YQ0p3YjJ4c1EyOXRjR3hsZEdWY0lpd2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmtaV0oxWnloY0luQnlaUzF3WVhWelpTQndiMnhzYVc1bklHTnZiWEJzWlhSbFhDSXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdExYUnZkR0ZzSUh4OElIQmhkWE5sS0NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb0lYUm9hWE11ZDNKcGRHRmliR1VwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCa1pXSjFaeWhjSW5kbElHRnlaU0JqZFhKeVpXNTBiSGtnZDNKcGRHbHVaeUF0SUhkaGFYUnBibWNnZEc4Z2NHRjFjMlZjSWlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHOTBZV3dyS3p0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbTl1WTJVb1hDSmtjbUZwYmx3aUxDQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHUmxZblZuS0Z3aWNISmxMWEJoZFhObElIZHlhWFJwYm1jZ1kyOXRjR3hsZEdWY0lpazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUMwdGRHOTBZV3dnZkh3Z2NHRjFjMlVvS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEJoZFhObEtDazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dVM1JoY25SeklIQnZiR3hwYm1jZ1kzbGpiR1V1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBY0hKcGRtRjBaVnh1SUNBZ0lDQXFMMXh1SUNBZ0lIQnZiR3dvS1NCN1hHNGdJQ0FnSUNBZ0lHUmxZblZuS0Z3aWNHOXNiR2x1WjF3aUtUdGNiaUFnSUNBZ0lDQWdkR2hwY3k1d2IyeHNhVzVuSUQwZ2RISjFaVHRjYmlBZ0lDQWdJQ0FnZEdocGN5NWtiMUJ2Ykd3b0tUdGNiaUFnSUNBZ0lDQWdkR2hwY3k1bGJXbDBVbVZ6WlhKMlpXUW9YQ0p3YjJ4c1hDSXBPMXh1SUNBZ0lIMWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQlBkbVZ5Ykc5aFpITWdiMjVFWVhSaElIUnZJR1JsZEdWamRDQndZWGxzYjJGa2N5NWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQndjbTkwWldOMFpXUmNiaUFnSUNBZ0tpOWNiaUFnSUNCdmJrUmhkR0VvWkdGMFlTa2dlMXh1SUNBZ0lDQWdJQ0JrWldKMVp5aGNJbkJ2Ykd4cGJtY2daMjkwSUdSaGRHRWdKWE5jSWl3Z1pHRjBZU2s3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR05oYkd4aVlXTnJJRDBnS0hCaFkydGxkQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z2FXWWdhWFJ6SUhSb1pTQm1hWEp6ZENCdFpYTnpZV2RsSUhkbElHTnZibk5wWkdWeUlIUm9aU0IwY21GdWMzQnZjblFnYjNCbGJseHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tGd2liM0JsYm1sdVoxd2lJRDA5UFNCMGFHbHpMbkpsWVdSNVUzUmhkR1VnSmlZZ2NHRmphMlYwTG5SNWNHVWdQVDA5SUZ3aWIzQmxibHdpS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTV2Yms5d1pXNG9LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUM4dklHbG1JR2wwY3lCaElHTnNiM05sSUhCaFkydGxkQ3dnZDJVZ1kyeHZjMlVnZEdobElHOXVaMjlwYm1jZ2NtVnhkV1Z6ZEhOY2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoY0ltTnNiM05sWENJZ1BUMDlJSEJoWTJ0bGRDNTBlWEJsS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTV2YmtOc2IzTmxLSHNnWkdWelkzSnBjSFJwYjI0NklGd2lkSEpoYm5Od2IzSjBJR05zYjNObFpDQmllU0IwYUdVZ2MyVnlkbVZ5WENJZ2ZTazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHWmhiSE5sTzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0x5OGdiM1JvWlhKM2FYTmxJR0o1Y0dGemN5QnZia1JoZEdFZ1lXNWtJR2hoYm1Sc1pTQjBhR1VnYldWemMyRm5aVnh1SUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTV2YmxCaFkydGxkQ2h3WVdOclpYUXBPMXh1SUNBZ0lDQWdJQ0I5TzF4dUlDQWdJQ0FnSUNBdkx5QmtaV052WkdVZ2NHRjViRzloWkZ4dUlDQWdJQ0FnSUNBb01Dd2daVzVuYVc1bFgybHZYM0JoY25ObGNsOHhMbVJsWTI5a1pWQmhlV3h2WVdRcEtHUmhkR0VzSUhSb2FYTXVjMjlqYTJWMExtSnBibUZ5ZVZSNWNHVXBMbVp2Y2tWaFkyZ29ZMkZzYkdKaFkyc3BPMXh1SUNBZ0lDQWdJQ0F2THlCcFppQmhiaUJsZG1WdWRDQmthV1FnYm05MElIUnlhV2RuWlhJZ1kyeHZjMmx1WjF4dUlDQWdJQ0FnSUNCcFppQW9YQ0pqYkc5elpXUmNJaUFoUFQwZ2RHaHBjeTV5WldGa2VWTjBZWFJsS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0F2THlCcFppQjNaU0JuYjNRZ1pHRjBZU0IzWlNkeVpTQnViM1FnY0c5c2JHbHVaMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTV3YjJ4c2FXNW5JRDBnWm1Gc2MyVTdYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbVZ0YVhSU1pYTmxjblpsWkNoY0luQnZiR3hEYjIxd2JHVjBaVndpS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoY0ltOXdaVzVjSWlBOVBUMGdkR2hwY3k1eVpXRmtlVk4wWVhSbEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1d2IyeHNLQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JrWldKMVp5Z25hV2R1YjNKcGJtY2djRzlzYkNBdElIUnlZVzV6Y0c5eWRDQnpkR0YwWlNCY0lpVnpYQ0luTENCMGFHbHpMbkpsWVdSNVUzUmhkR1VwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRVp2Y2lCd2IyeHNhVzVuTENCelpXNWtJR0VnWTJ4dmMyVWdjR0ZqYTJWMExseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FIQnliM1JsWTNSbFpGeHVJQ0FnSUNBcUwxeHVJQ0FnSUdSdlEyeHZjMlVvS1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdOc2IzTmxJRDBnS0NrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1pHVmlkV2NvWENKM2NtbDBhVzVuSUdOc2IzTmxJSEJoWTJ0bGRGd2lLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11ZDNKcGRHVW9XM3NnZEhsd1pUb2dYQ0pqYkc5elpWd2lJSDFkS1R0Y2JpQWdJQ0FnSUNBZ2ZUdGNiaUFnSUNBZ0lDQWdhV1lnS0Z3aWIzQmxibHdpSUQwOVBTQjBhR2x6TG5KbFlXUjVVM1JoZEdVcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdSbFluVm5LRndpZEhKaGJuTndiM0owSUc5d1pXNGdMU0JqYkc5emFXNW5YQ0lwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMnh2YzJVb0tUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUM4dklHbHVJR05oYzJVZ2QyVW5jbVVnZEhKNWFXNW5JSFJ2SUdOc2IzTmxJSGRvYVd4bFhHNGdJQ0FnSUNBZ0lDQWdJQ0F2THlCb1lXNWtjMmhoYTJsdVp5QnBjeUJwYmlCd2NtOW5jbVZ6Y3lBb1IwZ3RNVFkwS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdaR1ZpZFdjb1hDSjBjbUZ1YzNCdmNuUWdibTkwSUc5d1pXNGdMU0JrWldabGNuSnBibWNnWTJ4dmMyVmNJaWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG05dVkyVW9YQ0p2Y0dWdVhDSXNJR05zYjNObEtUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQlhjbWwwWlhNZ1lTQndZV05yWlhSeklIQmhlV3h2WVdRdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTBGeWNtRjVmU0J3WVdOclpYUnpJQzBnWkdGMFlTQndZV05yWlhSelhHNGdJQ0FnSUNvZ1FIQnliM1JsWTNSbFpGeHVJQ0FnSUNBcUwxeHVJQ0FnSUhkeWFYUmxLSEJoWTJ0bGRITXBJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NTNjbWwwWVdKc1pTQTlJR1poYkhObE8xeHVJQ0FnSUNBZ0lDQW9NQ3dnWlc1bmFXNWxYMmx2WDNCaGNuTmxjbDh4TG1WdVkyOWtaVkJoZVd4dllXUXBLSEJoWTJ0bGRITXNJQ2hrWVhSaEtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG1SdlYzSnBkR1VvWkdGMFlTd2dLQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11ZDNKcGRHRmliR1VnUFNCMGNuVmxPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdVpXMXBkRkpsYzJWeWRtVmtLRndpWkhKaGFXNWNJaWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJQ0FnZlNrN1hHNGdJQ0FnZlZ4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVkbGJtVnlZWFJsY3lCMWNta2dabTl5SUdOdmJtNWxZM1JwYjI0dVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWNISnBkbUYwWlZ4dUlDQWdJQ0FxTDF4dUlDQWdJSFZ5YVNncElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2MyTm9aVzFoSUQwZ2RHaHBjeTV2Y0hSekxuTmxZM1Z5WlNBL0lGd2lhSFIwY0hOY0lpQTZJRndpYUhSMGNGd2lPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnhkV1Z5ZVNBOUlIUm9hWE11Y1hWbGNua2dmSHdnZTMwN1hHNGdJQ0FnSUNBZ0lDOHZJR05oWTJobElHSjFjM1JwYm1jZ2FYTWdabTl5WTJWa1hHNGdJQ0FnSUNBZ0lHbG1JQ2htWVd4elpTQWhQVDBnZEdocGN5NXZjSFJ6TG5ScGJXVnpkR0Z0Y0ZKbGNYVmxjM1J6S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J4ZFdWeWVWdDBhR2x6TG05d2RITXVkR2x0WlhOMFlXMXdVR0Z5WVcxZElEMGdLREFzSUhsbFlYTjBYMnB6WHpFdWVXVmhjM1FwS0NrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdhV1lnS0NGMGFHbHpMbk4xY0hCdmNuUnpRbWx1WVhKNUlDWW1JQ0Z4ZFdWeWVTNXphV1FwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEYxWlhKNUxtSTJOQ0E5SURFN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11WTNKbFlYUmxWWEpwS0hOamFHVnRZU3dnY1hWbGNua3BPMXh1SUNBZ0lIMWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkRjbVZoZEdWeklHRWdjbVZ4ZFdWemRDNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQndZWEpoYlNCN1UzUnlhVzVuZlNCdFpYUm9iMlJjYmlBZ0lDQWdLaUJBY0hKcGRtRjBaVnh1SUNBZ0lDQXFMMXh1SUNBZ0lISmxjWFZsYzNRb2IzQjBjeUE5SUh0OUtTQjdYRzRnSUNBZ0lDQWdJRTlpYW1WamRDNWhjM05wWjI0b2IzQjBjeXdnZXlCNFpEb2dkR2hwY3k1NFpDd2dZMjl2YTJsbFNtRnlPaUIwYUdsekxtTnZiMnRwWlVwaGNpQjlMQ0IwYUdsekxtOXdkSE1wTzF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnYm1WM0lGSmxjWFZsYzNRb2RHaHBjeTUxY21rb0tTd2diM0IwY3lrN1hHNGdJQ0FnZlZ4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUZObGJtUnpJR1JoZEdFdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTFOMGNtbHVaMzBnWkdGMFlTQjBieUJ6Wlc1a0xseHVJQ0FnSUNBcUlFQndZWEpoYlNCN1JuVnVZM1JwYjI1OUlHTmhiR3hsWkNCMWNHOXVJR1pzZFhOb0xseHVJQ0FnSUNBcUlFQndjbWwyWVhSbFhHNGdJQ0FnSUNvdlhHNGdJQ0FnWkc5WGNtbDBaU2hrWVhSaExDQm1iaWtnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J5WlhFZ1BTQjBhR2x6TG5KbGNYVmxjM1FvZTF4dUlDQWdJQ0FnSUNBZ0lDQWdiV1YwYUc5a09pQmNJbEJQVTFSY0lpeGNiaUFnSUNBZ0lDQWdJQ0FnSUdSaGRHRTZJR1JoZEdFc1hHNGdJQ0FnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdJQ0J5WlhFdWIyNG9YQ0p6ZFdOalpYTnpYQ0lzSUdadUtUdGNiaUFnSUNBZ0lDQWdjbVZ4TG05dUtGd2laWEp5YjNKY0lpd2dLSGhvY2xOMFlYUjFjeXdnWTI5dWRHVjRkQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXZia1Z5Y205eUtGd2llR2h5SUhCdmMzUWdaWEp5YjNKY0lpd2dlR2h5VTNSaGRIVnpMQ0JqYjI1MFpYaDBLVHRjYmlBZ0lDQWdJQ0FnZlNrN1hHNGdJQ0FnZlZ4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUZOMFlYSjBjeUJoSUhCdmJHd2dZM2xqYkdVdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWNISnBkbUYwWlZ4dUlDQWdJQ0FxTDF4dUlDQWdJR1J2VUc5c2JDZ3BJSHRjYmlBZ0lDQWdJQ0FnWkdWaWRXY29YQ0o0YUhJZ2NHOXNiRndpS1R0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnY21WeElEMGdkR2hwY3k1eVpYRjFaWE4wS0NrN1hHNGdJQ0FnSUNBZ0lISmxjUzV2YmloY0ltUmhkR0ZjSWl3Z2RHaHBjeTV2YmtSaGRHRXVZbWx1WkNoMGFHbHpLU2s3WEc0Z0lDQWdJQ0FnSUhKbGNTNXZiaWhjSW1WeWNtOXlYQ0lzSUNoNGFISlRkR0YwZFhNc0lHTnZiblJsZUhRcElEMCtJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11YjI1RmNuSnZjaWhjSW5ob2NpQndiMnhzSUdWeWNtOXlYQ0lzSUhob2NsTjBZWFIxY3l3Z1kyOXVkR1Y0ZENrN1hHNGdJQ0FnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdJQ0IwYUdsekxuQnZiR3hZYUhJZ1BTQnlaWEU3WEc0Z0lDQWdmVnh1ZlZ4dVpYaHdiM0owY3k1UWIyeHNhVzVuSUQwZ1VHOXNiR2x1Wnp0Y2JtTnNZWE56SUZKbGNYVmxjM1FnWlhoMFpXNWtjeUJqYjIxd2IyNWxiblJmWlcxcGRIUmxjbDh4TGtWdGFYUjBaWElnZTF4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUZKbGNYVmxjM1FnWTI5dWMzUnlkV04wYjNKY2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3VDJKcVpXTjBmU0J2Y0hScGIyNXpYRzRnSUNBZ0lDb2dRSEJoWTJ0aFoyVmNiaUFnSUNBZ0tpOWNiaUFnSUNCamIyNXpkSEoxWTNSdmNpaDFjbWtzSUc5d2RITXBJSHRjYmlBZ0lDQWdJQ0FnYzNWd1pYSW9LVHRjYmlBZ0lDQWdJQ0FnS0RBc0lIVjBhV3hmYW5OZk1TNXBibk4wWVd4c1ZHbHRaWEpHZFc1amRHbHZibk1wS0hSb2FYTXNJRzl3ZEhNcE8xeHVJQ0FnSUNBZ0lDQjBhR2x6TG05d2RITWdQU0J2Y0hSek8xeHVJQ0FnSUNBZ0lDQjBhR2x6TG0xbGRHaHZaQ0E5SUc5d2RITXViV1YwYUc5a0lIeDhJRndpUjBWVVhDSTdYRzRnSUNBZ0lDQWdJSFJvYVhNdWRYSnBJRDBnZFhKcE8xeHVJQ0FnSUNBZ0lDQjBhR2x6TG1SaGRHRWdQU0IxYm1SbFptbHVaV1FnSVQwOUlHOXdkSE11WkdGMFlTQS9JRzl3ZEhNdVpHRjBZU0E2SUc1MWJHdzdYRzRnSUNBZ0lDQWdJSFJvYVhNdVkzSmxZWFJsS0NrN1hHNGdJQ0FnZlZ4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVOeVpXRjBaWE1nZEdobElGaElVaUJ2WW1wbFkzUWdZVzVrSUhObGJtUnpJSFJvWlNCeVpYRjFaWE4wTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhCeWFYWmhkR1ZjYmlBZ0lDQWdLaTljYmlBZ0lDQmpjbVZoZEdVb0tTQjdYRzRnSUNBZ0lDQWdJSFpoY2lCZllUdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2IzQjBjeUE5SUNnd0xDQjFkR2xzWDJwelh6RXVjR2xqYXlrb2RHaHBjeTV2Y0hSekxDQmNJbUZuWlc1MFhDSXNJRndpY0daNFhDSXNJRndpYTJWNVhDSXNJRndpY0dGemMzQm9jbUZ6WlZ3aUxDQmNJbU5sY25SY0lpd2dYQ0pqWVZ3aUxDQmNJbU5wY0dobGNuTmNJaXdnWENKeVpXcGxZM1JWYm1GMWRHaHZjbWw2WldSY0lpd2dYQ0poZFhSdlZXNXlaV1pjSWlrN1hHNGdJQ0FnSUNBZ0lHOXdkSE11ZUdSdmJXRnBiaUE5SUNFaGRHaHBjeTV2Y0hSekxuaGtPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQjRhSElnUFNBb2RHaHBjeTU0YUhJZ1BTQnVaWGNnZUcxc2FIUjBjSEpsY1hWbGMzUmZhbk5mTVM1WVNGSW9iM0IwY3lrcE8xeHVJQ0FnSUNBZ0lDQjBjbmtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdaR1ZpZFdjb1hDSjRhSElnYjNCbGJpQWxjem9nSlhOY0lpd2dkR2hwY3k1dFpYUm9iMlFzSUhSb2FYTXVkWEpwS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSGhvY2k1dmNHVnVLSFJvYVhNdWJXVjBhRzlrTENCMGFHbHpMblZ5YVN3Z2RISjFaU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBjbmtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaDBhR2x6TG05d2RITXVaWGgwY21GSVpXRmtaWEp6S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSGhvY2k1elpYUkVhWE5oWW14bFNHVmhaR1Z5UTJobFkyc2dKaVlnZUdoeUxuTmxkRVJwYzJGaWJHVklaV0ZrWlhKRGFHVmpheWgwY25WbEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWm05eUlDaHNaWFFnYVNCcGJpQjBhR2x6TG05d2RITXVaWGgwY21GSVpXRmtaWEp6S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9kR2hwY3k1dmNIUnpMbVY0ZEhKaFNHVmhaR1Z5Y3k1b1lYTlBkMjVRY205d1pYSjBlU2hwS1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSGhvY2k1elpYUlNaWEYxWlhOMFNHVmhaR1Z5S0drc0lIUm9hWE11YjNCMGN5NWxlSFJ5WVVobFlXUmxjbk5iYVYwcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRjBZMmdnS0dVcElIc2dmVnh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLRndpVUU5VFZGd2lJRDA5UFNCMGFHbHpMbTFsZEdodlpDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSGhvY2k1elpYUlNaWEYxWlhOMFNHVmhaR1Z5S0Z3aVEyOXVkR1Z1ZEMxMGVYQmxYQ0lzSUZ3aWRHVjRkQzl3YkdGcGJqdGphR0Z5YzJWMFBWVlVSaTA0WENJcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpZWFJqYUNBb1pTa2dleUI5WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNCMGNua2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSGhvY2k1elpYUlNaWEYxWlhOMFNHVmhaR1Z5S0Z3aVFXTmpaWEIwWENJc0lGd2lLaThxWENJcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdZMkYwWTJnZ0tHVXBJSHNnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdLRjloSUQwZ2RHaHBjeTV2Y0hSekxtTnZiMnRwWlVwaGNpa2dQVDA5SUc1MWJHd2dmSHdnWDJFZ1BUMDlJSFp2YVdRZ01DQS9JSFp2YVdRZ01DQTZJRjloTG1Ga1pFTnZiMnRwWlhNb2VHaHlLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDOHZJR2xsTmlCamFHVmphMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLRndpZDJsMGFFTnlaV1JsYm5ScFlXeHpYQ0lnYVc0Z2VHaHlLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZUdoeUxuZHBkR2hEY21Wa1pXNTBhV0ZzY3lBOUlIUm9hWE11YjNCMGN5NTNhWFJvUTNKbFpHVnVkR2xoYkhNN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvZEdocGN5NXZjSFJ6TG5KbGNYVmxjM1JVYVcxbGIzVjBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZUdoeUxuUnBiV1Z2ZFhRZ1BTQjBhR2x6TG05d2RITXVjbVZ4ZFdWemRGUnBiV1Z2ZFhRN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQjRhSEl1YjI1eVpXRmtlWE4wWVhSbFkyaGhibWRsSUQwZ0tDa2dQVDRnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhaaGNpQmZZVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2VHaHlMbkpsWVdSNVUzUmhkR1VnUFQwOUlETXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0tGOWhJRDBnZEdocGN5NXZjSFJ6TG1OdmIydHBaVXBoY2lrZ1BUMDlJRzUxYkd3Z2ZId2dYMkVnUFQwOUlIWnZhV1FnTUNBL0lIWnZhV1FnTUNBNklGOWhMbkJoY25ObFEyOXZhMmxsY3loNGFISXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb05DQWhQVDBnZUdoeUxuSmxZV1I1VTNSaGRHVXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnlianRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb01qQXdJRDA5UFNCNGFISXVjM1JoZEhWeklIeDhJREV5TWpNZ1BUMDlJSGhvY2k1emRHRjBkWE1wSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1dmJreHZZV1FvS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDOHZJRzFoYTJVZ2MzVnlaU0IwYUdVZ1lHVnljbTl5WUNCbGRtVnVkQ0JvWVc1a2JHVnlJSFJvWVhRbmN5QjFjMlZ5TFhObGRGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F2THlCa2IyVnpJRzV2ZENCMGFISnZkeUJwYmlCMGFHVWdjMkZ0WlNCMGFXTnJJR0Z1WkNCblpYUnpJR05oZFdkb2RDQm9aWEpsWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11YzJWMFZHbHRaVzkxZEVadUtDZ3BJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSb2FYTXViMjVGY25KdmNpaDBlWEJsYjJZZ2VHaHlMbk4wWVhSMWN5QTlQVDBnWENKdWRXMWlaWEpjSWlBL0lIaG9jaTV6ZEdGMGRYTWdPaUF3S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmU3dnTUNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnZlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJR1JsWW5WbktGd2llR2h5SUdSaGRHRWdKWE5jSWl3Z2RHaHBjeTVrWVhSaEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUhob2NpNXpaVzVrS0hSb2FYTXVaR0YwWVNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdZMkYwWTJnZ0tHVXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDOHZJRTVsWldRZ2RHOGdaR1ZtWlhJZ2MybHVZMlVnTG1OeVpXRjBaU2dwSUdseklHTmhiR3hsWkNCa2FYSmxZM1JzZVNCbWNtOXRJSFJvWlNCamIyNXpkSEoxWTNSdmNseHVJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z1lXNWtJSFJvZFhNZ2RHaGxJQ2RsY25KdmNpY2daWFpsYm5RZ1kyRnVJRzl1YkhrZ1ltVWdiMjVzZVNCaWIzVnVaQ0FxWVdaMFpYSXFJSFJvYVhNZ1pYaGpaWEIwYVc5dVhHNGdJQ0FnSUNBZ0lDQWdJQ0F2THlCdlkyTjFjbk11SUNCVWFHVnlaV1p2Y21Vc0lHRnNjMjhzSUhkbElHTmhibTV2ZENCMGFISnZkeUJvWlhKbElHRjBJR0ZzYkM1Y2JpQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWMyVjBWR2x0Wlc5MWRFWnVLQ2dwSUQwK0lIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG05dVJYSnliM0lvWlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5TENBd0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnlianRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCcFppQW9kSGx3Wlc5bUlHUnZZM1Z0Wlc1MElDRTlQU0JjSW5WdVpHVm1hVzVsWkZ3aUtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbWx1WkdWNElEMGdVbVZ4ZFdWemRDNXlaWEYxWlhOMGMwTnZkVzUwS3lzN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JTWlhGMVpYTjBMbkpsY1hWbGMzUnpXM1JvYVhNdWFXNWtaWGhkSUQwZ2RHaHBjenRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJEWVd4c1pXUWdkWEJ2YmlCbGNuSnZjaTVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ3Y21sMllYUmxYRzRnSUNBZ0lDb3ZYRzRnSUNBZ2IyNUZjbkp2Y2lobGNuSXBJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NWxiV2wwVW1WelpYSjJaV1FvWENKbGNuSnZjbHdpTENCbGNuSXNJSFJvYVhNdWVHaHlLVHRjYmlBZ0lDQWdJQ0FnZEdocGN5NWpiR1ZoYm5Wd0tIUnlkV1VwTzF4dUlDQWdJSDFjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJEYkdWaGJuTWdkWEFnYUc5MWMyVXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnSUNBcUwxeHVJQ0FnSUdOc1pXRnVkWEFvWm5KdmJVVnljbTl5S1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hjSW5WdVpHVm1hVzVsWkZ3aUlEMDlQU0IwZVhCbGIyWWdkR2hwY3k1NGFISWdmSHdnYm5Wc2JDQTlQVDBnZEdocGN5NTRhSElwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJqdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0IwYUdsekxuaG9jaTV2Ym5KbFlXUjVjM1JoZEdWamFHRnVaMlVnUFNCbGJYQjBlVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHWnliMjFGY25KdmNpa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RISjVJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxuaG9jaTVoWW05eWRDZ3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGMFkyZ2dLR1VwSUhzZ2ZWeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR2xtSUNoMGVYQmxiMllnWkc5amRXMWxiblFnSVQwOUlGd2lkVzVrWldacGJtVmtYQ0lwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR1JsYkdWMFpTQlNaWEYxWlhOMExuSmxjWFZsYzNSelczUm9hWE11YVc1a1pYaGRPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUhSb2FYTXVlR2h5SUQwZ2JuVnNiRHRjYmlBZ0lDQjlYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dRMkZzYkdWa0lIVndiMjRnYkc5aFpDNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQndjbWwyWVhSbFhHNGdJQ0FnSUNvdlhHNGdJQ0FnYjI1TWIyRmtLQ2tnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0JrWVhSaElEMGdkR2hwY3k1NGFISXVjbVZ6Y0c5dWMyVlVaWGgwTzF4dUlDQWdJQ0FnSUNCcFppQW9aR0YwWVNBaFBUMGdiblZzYkNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NWxiV2wwVW1WelpYSjJaV1FvWENKa1lYUmhYQ0lzSUdSaGRHRXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTVsYldsMFVtVnpaWEoyWldRb1hDSnpkV05qWlhOelhDSXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTVqYkdWaGJuVndLQ2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUVdKdmNuUnpJSFJvWlNCeVpYRjFaWE4wTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhCaFkydGhaMlZjYmlBZ0lDQWdLaTljYmlBZ0lDQmhZbTl5ZENncElIdGNiaUFnSUNBZ0lDQWdkR2hwY3k1amJHVmhiblZ3S0NrN1hHNGdJQ0FnZlZ4dWZWeHVaWGh3YjNKMGN5NVNaWEYxWlhOMElEMGdVbVZ4ZFdWemREdGNibEpsY1hWbGMzUXVjbVZ4ZFdWemRITkRiM1Z1ZENBOUlEQTdYRzVTWlhGMVpYTjBMbkpsY1hWbGMzUnpJRDBnZTMwN1hHNHZLaXBjYmlBcUlFRmliM0owY3lCd1pXNWthVzVuSUhKbGNYVmxjM1J6SUhkb1pXNGdkVzVzYjJGa2FXNW5JSFJvWlNCM2FXNWtiM2N1SUZSb2FYTWdhWE1nYm1WbFpHVmtJSFJ2SUhCeVpYWmxiblJjYmlBcUlHMWxiVzl5ZVNCc1pXRnJjeUFvWlM1bkxpQjNhR1Z1SUhWemFXNW5JRWxGS1NCaGJtUWdkRzhnWlc1emRYSmxJSFJvWVhRZ2JtOGdjM0IxY21sdmRYTWdaWEp5YjNJZ2FYTmNiaUFxSUdWdGFYUjBaV1F1WEc0Z0tpOWNibWxtSUNoMGVYQmxiMllnWkc5amRXMWxiblFnSVQwOUlGd2lkVzVrWldacGJtVmtYQ0lwSUh0Y2JpQWdJQ0F2THlCQWRITXRhV2R1YjNKbFhHNGdJQ0FnYVdZZ0tIUjVjR1Z2WmlCaGRIUmhZMmhGZG1WdWRDQTlQVDBnWENKbWRXNWpkR2x2Ymx3aUtTQjdYRzRnSUNBZ0lDQWdJQzh2SUVCMGN5MXBaMjV2Y21WY2JpQWdJQ0FnSUNBZ1lYUjBZV05vUlhabGJuUW9YQ0p2Ym5WdWJHOWhaRndpTENCMWJteHZZV1JJWVc1a2JHVnlLVHRjYmlBZ0lDQjlYRzRnSUNBZ1pXeHpaU0JwWmlBb2RIbHdaVzltSUdGa1pFVjJaVzUwVEdsemRHVnVaWElnUFQwOUlGd2lablZ1WTNScGIyNWNJaWtnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0IwWlhKdGFXNWhkR2x2YmtWMlpXNTBJRDBnWENKdmJuQmhaMlZvYVdSbFhDSWdhVzRnWjJ4dlltRnNWR2hwYzE5cWMxOHhMbWRzYjJKaGJGUm9hWE5UYUdsdElEOGdYQ0p3WVdkbGFHbGtaVndpSURvZ1hDSjFibXh2WVdSY0lqdGNiaUFnSUNBZ0lDQWdZV1JrUlhabGJuUk1hWE4wWlc1bGNpaDBaWEp0YVc1aGRHbHZia1YyWlc1MExDQjFibXh2WVdSSVlXNWtiR1Z5TENCbVlXeHpaU2s3WEc0Z0lDQWdmVnh1ZlZ4dVpuVnVZM1JwYjI0Z2RXNXNiMkZrU0dGdVpHeGxjaWdwSUh0Y2JpQWdJQ0JtYjNJZ0tHeGxkQ0JwSUdsdUlGSmxjWFZsYzNRdWNtVnhkV1Z6ZEhNcElIdGNiaUFnSUNBZ0lDQWdhV1lnS0ZKbGNYVmxjM1F1Y21WeGRXVnpkSE11YUdGelQzZHVVSEp2Y0dWeWRIa29hU2twSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJRkpsY1hWbGMzUXVjbVZ4ZFdWemRITmJhVjB1WVdKdmNuUW9LVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJSDFjYm4xY2JpSXNJaTh2SUdsdGNHOXlkR1ZrSUdaeWIyMGdhSFIwY0hNNkx5OW5hWFJvZFdJdVkyOXRMM1Z1YzJocFpuUnBieTk1WldGemRGeHVKM1Z6WlNCemRISnBZM1FuTzF4dVQySnFaV04wTG1SbFptbHVaVkJ5YjNCbGNuUjVLR1Y0Y0c5eWRITXNJRndpWDE5bGMwMXZaSFZzWlZ3aUxDQjdJSFpoYkhWbE9pQjBjblZsSUgwcE8xeHVaWGh3YjNKMGN5NTVaV0Z6ZENBOUlHVjRjRzl5ZEhNdVpHVmpiMlJsSUQwZ1pYaHdiM0owY3k1bGJtTnZaR1VnUFNCMmIybGtJREE3WEc1amIyNXpkQ0JoYkhCb1lXSmxkQ0E5SUNjd01USXpORFUyTnpnNVFVSkRSRVZHUjBoSlNrdE1UVTVQVUZGU1UxUlZWbGRZV1ZwaFltTmtaV1puYUdscWEyeHRibTl3Y1hKemRIVjJkM2g1ZWkxZkp5NXpjR3hwZENnbkp5a3NJR3hsYm1kMGFDQTlJRFkwTENCdFlYQWdQU0I3ZlR0Y2JteGxkQ0J6WldWa0lEMGdNQ3dnYVNBOUlEQXNJSEJ5WlhZN1hHNHZLaXBjYmlBcUlGSmxkSFZ5YmlCaElITjBjbWx1WnlCeVpYQnlaWE5sYm5ScGJtY2dkR2hsSUhOd1pXTnBabWxsWkNCdWRXMWlaWEl1WEc0Z0tseHVJQ29nUUhCaGNtRnRJSHRPZFcxaVpYSjlJRzUxYlNCVWFHVWdiblZ0WW1WeUlIUnZJR052Ym5abGNuUXVYRzRnS2lCQWNtVjBkWEp1Y3lCN1UzUnlhVzVuZlNCVWFHVWdjM1J5YVc1bklISmxjSEpsYzJWdWRHRjBhVzl1SUc5bUlIUm9aU0J1ZFcxaVpYSXVYRzRnS2lCQVlYQnBJSEIxWW14cFkxeHVJQ292WEc1bWRXNWpkR2x2YmlCbGJtTnZaR1VvYm5WdEtTQjdYRzRnSUNBZ2JHVjBJR1Z1WTI5a1pXUWdQU0FuSnp0Y2JpQWdJQ0JrYnlCN1hHNGdJQ0FnSUNBZ0lHVnVZMjlrWldRZ1BTQmhiSEJvWVdKbGRGdHVkVzBnSlNCc1pXNW5kR2hkSUNzZ1pXNWpiMlJsWkR0Y2JpQWdJQ0FnSUNBZ2JuVnRJRDBnVFdGMGFDNW1iRzl2Y2lodWRXMGdMeUJzWlc1bmRHZ3BPMXh1SUNBZ0lIMGdkMmhwYkdVZ0tHNTFiU0ErSURBcE8xeHVJQ0FnSUhKbGRIVnliaUJsYm1OdlpHVmtPMXh1ZlZ4dVpYaHdiM0owY3k1bGJtTnZaR1VnUFNCbGJtTnZaR1U3WEc0dktpcGNiaUFxSUZKbGRIVnliaUIwYUdVZ2FXNTBaV2RsY2lCMllXeDFaU0J6Y0dWamFXWnBaV1FnWW5rZ2RHaGxJR2RwZG1WdUlITjBjbWx1Wnk1Y2JpQXFYRzRnS2lCQWNHRnlZVzBnZTFOMGNtbHVaMzBnYzNSeUlGUm9aU0J6ZEhKcGJtY2dkRzhnWTI5dWRtVnlkQzVjYmlBcUlFQnlaWFIxY201eklIdE9kVzFpWlhKOUlGUm9aU0JwYm5SbFoyVnlJSFpoYkhWbElISmxjSEpsYzJWdWRHVmtJR0o1SUhSb1pTQnpkSEpwYm1jdVhHNGdLaUJBWVhCcElIQjFZbXhwWTF4dUlDb3ZYRzVtZFc1amRHbHZiaUJrWldOdlpHVW9jM1J5S1NCN1hHNGdJQ0FnYkdWMElHUmxZMjlrWldRZ1BTQXdPMXh1SUNBZ0lHWnZjaUFvYVNBOUlEQTdJR2tnUENCemRISXViR1Z1WjNSb095QnBLeXNwSUh0Y2JpQWdJQ0FnSUNBZ1pHVmpiMlJsWkNBOUlHUmxZMjlrWldRZ0tpQnNaVzVuZEdnZ0t5QnRZWEJiYzNSeUxtTm9ZWEpCZENocEtWMDdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJrWldOdlpHVmtPMXh1ZlZ4dVpYaHdiM0owY3k1a1pXTnZaR1VnUFNCa1pXTnZaR1U3WEc0dktpcGNiaUFxSUZsbFlYTjBPaUJCSUhScGJua2daM0p2ZDJsdVp5QnBaQ0JuWlc1bGNtRjBiM0l1WEc0Z0tseHVJQ29nUUhKbGRIVnlibk1nZTFOMGNtbHVaMzBnUVNCMWJtbHhkV1VnYVdRdVhHNGdLaUJBWVhCcElIQjFZbXhwWTF4dUlDb3ZYRzVtZFc1amRHbHZiaUI1WldGemRDZ3BJSHRjYmlBZ0lDQmpiMjV6ZENCdWIzY2dQU0JsYm1OdlpHVW9LMjVsZHlCRVlYUmxLQ2twTzF4dUlDQWdJR2xtSUNodWIzY2dJVDA5SUhCeVpYWXBYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnpaV1ZrSUQwZ01Dd2djSEpsZGlBOUlHNXZkenRjYmlBZ0lDQnlaWFIxY200Z2JtOTNJQ3NnSnk0bklDc2daVzVqYjJSbEtITmxaV1FyS3lrN1hHNTlYRzVsZUhCdmNuUnpMbmxsWVhOMElEMGdlV1ZoYzNRN1hHNHZMMXh1THk4Z1RXRndJR1ZoWTJnZ1kyaGhjbUZqZEdWeUlIUnZJR2wwY3lCcGJtUmxlQzVjYmk4dlhHNW1iM0lnS0RzZ2FTQThJR3hsYm1kMGFEc2dhU3NyS1Z4dUlDQWdJRzFoY0Z0aGJIQm9ZV0psZEZ0cFhWMGdQU0JwTzF4dUlpd2lMeW9nWlhOc2FXNTBMV1Z1ZGlCaWNtOTNjMlZ5SUNvdlhHNWNiaThxS2x4dUlDb2dWR2hwY3lCcGN5QjBhR1VnZDJWaUlHSnliM2R6WlhJZ2FXMXdiR1Z0Wlc1MFlYUnBiMjRnYjJZZ1lHUmxZblZuS0NsZ0xseHVJQ292WEc1Y2JtVjRjRzl5ZEhNdVptOXliV0YwUVhKbmN5QTlJR1p2Y20xaGRFRnlaM003WEc1bGVIQnZjblJ6TG5OaGRtVWdQU0J6WVhabE8xeHVaWGh3YjNKMGN5NXNiMkZrSUQwZ2JHOWhaRHRjYm1WNGNHOXlkSE11ZFhObFEyOXNiM0p6SUQwZ2RYTmxRMjlzYjNKek8xeHVaWGh3YjNKMGN5NXpkRzl5WVdkbElEMGdiRzlqWVd4emRHOXlZV2RsS0NrN1hHNWxlSEJ2Y25SekxtUmxjM1J5YjNrZ1BTQW9LQ2tnUFQ0Z2UxeHVYSFJzWlhRZ2QyRnlibVZrSUQwZ1ptRnNjMlU3WEc1Y2JseDBjbVYwZFhKdUlDZ3BJRDArSUh0Y2JseDBYSFJwWmlBb0lYZGhjbTVsWkNrZ2UxeHVYSFJjZEZ4MGQyRnlibVZrSUQwZ2RISjFaVHRjYmx4MFhIUmNkR052Ym5OdmJHVXVkMkZ5YmlnblNXNXpkR0Z1WTJVZ2JXVjBhRzlrSUdCa1pXSjFaeTVrWlhOMGNtOTVLQ2xnSUdseklHUmxjSEpsWTJGMFpXUWdZVzVrSUc1dklHeHZibWRsY2lCa2IyVnpJR0Z1ZVhSb2FXNW5MaUJKZENCM2FXeHNJR0psSUhKbGJXOTJaV1FnYVc0Z2RHaGxJRzVsZUhRZ2JXRnFiM0lnZG1WeWMybHZiaUJ2WmlCZ1pHVmlkV2RnTGljcE8xeHVYSFJjZEgxY2JseDBmVHRjYm4wcEtDazdYRzVjYmk4cUtseHVJQ29nUTI5c2IzSnpMbHh1SUNvdlhHNWNibVY0Y0c5eWRITXVZMjlzYjNKeklEMGdXMXh1WEhRbkl6QXdNREJEUXljc1hHNWNkQ2NqTURBd01FWkdKeXhjYmx4MEp5TXdNRE16UTBNbkxGeHVYSFFuSXpBd016TkdSaWNzWEc1Y2RDY2pNREEyTmtOREp5eGNibHgwSnlNd01EWTJSa1luTEZ4dVhIUW5JekF3T1RsRFF5Y3NYRzVjZENjak1EQTVPVVpHSnl4Y2JseDBKeU13TUVORE1EQW5MRnh1WEhRbkl6QXdRME16TXljc1hHNWNkQ2NqTURCRFF6WTJKeXhjYmx4MEp5TXdNRU5ET1RrbkxGeHVYSFFuSXpBd1EwTkRReWNzWEc1Y2RDY2pNREJEUTBaR0p5eGNibHgwSnlNek16QXdRME1uTEZ4dVhIUW5Jek16TURCR1JpY3NYRzVjZENjak16TXpNME5ESnl4Y2JseDBKeU16TXpNelJrWW5MRnh1WEhRbkl6TXpOalpEUXljc1hHNWNkQ2NqTXpNMk5rWkdKeXhjYmx4MEp5TXpNems1UTBNbkxGeHVYSFFuSXpNek9UbEdSaWNzWEc1Y2RDY2pNek5EUXpBd0p5eGNibHgwSnlNek0wTkRNek1uTEZ4dVhIUW5Jek16UTBNMk5pY3NYRzVjZENjak16TkRRems1Snl4Y2JseDBKeU16TTBORFEwTW5MRnh1WEhRbkl6TXpRME5HUmljc1hHNWNkQ2NqTmpZd01FTkRKeXhjYmx4MEp5TTJOakF3UmtZbkxGeHVYSFFuSXpZMk16TkRReWNzWEc1Y2RDY2pOall6TTBaR0p5eGNibHgwSnlNMk5rTkRNREFuTEZ4dVhIUW5JelkyUTBNek15Y3NYRzVjZENjak9Ua3dNRU5ESnl4Y2JseDBKeU01T1RBd1JrWW5MRnh1WEhRbkl6azVNek5EUXljc1hHNWNkQ2NqT1Rrek0wWkdKeXhjYmx4MEp5TTVPVU5ETURBbkxGeHVYSFFuSXprNVEwTXpNeWNzWEc1Y2RDY2pRME13TURBd0p5eGNibHgwSnlORFF6QXdNek1uTEZ4dVhIUW5JME5ETURBMk5pY3NYRzVjZENjalEwTXdNRGs1Snl4Y2JseDBKeU5EUXpBd1EwTW5MRnh1WEhRbkkwTkRNREJHUmljc1hHNWNkQ2NqUTBNek16QXdKeXhjYmx4MEp5TkRRek16TXpNbkxGeHVYSFFuSTBORE16TTJOaWNzWEc1Y2RDY2pRME16TXprNUp5eGNibHgwSnlORFF6TXpRME1uTEZ4dVhIUW5JME5ETXpOR1JpY3NYRzVjZENjalEwTTJOakF3Snl4Y2JseDBKeU5EUXpZMk16TW5MRnh1WEhRbkkwTkRPVGt3TUNjc1hHNWNkQ2NqUTBNNU9UTXpKeXhjYmx4MEp5TkRRME5ETURBbkxGeHVYSFFuSTBORFEwTXpNeWNzWEc1Y2RDY2pSa1l3TURBd0p5eGNibHgwSnlOR1JqQXdNek1uTEZ4dVhIUW5JMFpHTURBMk5pY3NYRzVjZENjalJrWXdNRGs1Snl4Y2JseDBKeU5HUmpBd1EwTW5MRnh1WEhRbkkwWkdNREJHUmljc1hHNWNkQ2NqUmtZek16QXdKeXhjYmx4MEp5TkdSak16TXpNbkxGeHVYSFFuSTBaR016TTJOaWNzWEc1Y2RDY2pSa1l6TXprNUp5eGNibHgwSnlOR1JqTXpRME1uTEZ4dVhIUW5JMFpHTXpOR1JpY3NYRzVjZENjalJrWTJOakF3Snl4Y2JseDBKeU5HUmpZMk16TW5MRnh1WEhRbkkwWkdPVGt3TUNjc1hHNWNkQ2NqUmtZNU9UTXpKeXhjYmx4MEp5TkdSa05ETURBbkxGeHVYSFFuSTBaR1EwTXpNeWRjYmwwN1hHNWNiaThxS2x4dUlDb2dRM1Z5Y21WdWRHeDVJRzl1YkhrZ1YyVmlTMmwwTFdKaGMyVmtJRmRsWWlCSmJuTndaV04wYjNKekxDQkdhWEpsWm05NElENDlJSFl6TVN4Y2JpQXFJR0Z1WkNCMGFHVWdSbWx5WldKMVp5QmxlSFJsYm5OcGIyNGdLR0Z1ZVNCR2FYSmxabTk0SUhabGNuTnBiMjRwSUdGeVpTQnJibTkzYmx4dUlDb2dkRzhnYzNWd2NHOXlkQ0JjSWlWalhDSWdRMU5USUdOMWMzUnZiV2w2WVhScGIyNXpMbHh1SUNwY2JpQXFJRlJQUkU4NklHRmtaQ0JoSUdCc2IyTmhiRk4wYjNKaFoyVmdJSFpoY21saFlteGxJSFJ2SUdWNGNHeHBZMmwwYkhrZ1pXNWhZbXhsTDJScGMyRmliR1VnWTI5c2IzSnpYRzRnS2k5Y2JseHVMeThnWlhOc2FXNTBMV1JwYzJGaWJHVXRibVY0ZEMxc2FXNWxJR052YlhCc1pYaHBkSGxjYm1aMWJtTjBhVzl1SUhWelpVTnZiRzl5Y3lncElIdGNibHgwTHk4Z1RrSTZJRWx1SUdGdUlFVnNaV04wY205dUlIQnlaV3h2WVdRZ2MyTnlhWEIwTENCa2IyTjFiV1Z1ZENCM2FXeHNJR0psSUdSbFptbHVaV1FnWW5WMElHNXZkQ0JtZFd4c2VWeHVYSFF2THlCcGJtbDBhV0ZzYVhwbFpDNGdVMmx1WTJVZ2QyVWdhMjV2ZHlCM1pTZHlaU0JwYmlCRGFISnZiV1VzSUhkbEoyeHNJR3AxYzNRZ1pHVjBaV04wSUhSb2FYTWdZMkZ6WlZ4dVhIUXZMeUJsZUhCc2FXTnBkR3g1WEc1Y2RHbG1JQ2gwZVhCbGIyWWdkMmx1Wkc5M0lDRTlQU0FuZFc1a1pXWnBibVZrSnlBbUppQjNhVzVrYjNjdWNISnZZMlZ6Y3lBbUppQW9kMmx1Wkc5M0xuQnliMk5sYzNNdWRIbHdaU0E5UFQwZ0ozSmxibVJsY21WeUp5QjhmQ0IzYVc1a2IzY3VjSEp2WTJWemN5NWZYMjUzYW5NcEtTQjdYRzVjZEZ4MGNtVjBkWEp1SUhSeWRXVTdYRzVjZEgxY2JseHVYSFF2THlCSmJuUmxjbTVsZENCRmVIQnNiM0psY2lCaGJtUWdSV1JuWlNCa2J5QnViM1FnYzNWd2NHOXlkQ0JqYjJ4dmNuTXVYRzVjZEdsbUlDaDBlWEJsYjJZZ2JtRjJhV2RoZEc5eUlDRTlQU0FuZFc1a1pXWnBibVZrSnlBbUppQnVZWFpwWjJGMGIzSXVkWE5sY2tGblpXNTBJQ1ltSUc1aGRtbG5ZWFJ2Y2k1MWMyVnlRV2RsYm5RdWRHOU1iM2RsY2tOaGMyVW9LUzV0WVhSamFDZ3ZLR1ZrWjJWOGRISnBaR1Z1ZENsY1hDOG9YRnhrS3lrdktTa2dlMXh1WEhSY2RISmxkSFZ5YmlCbVlXeHpaVHRjYmx4MGZWeHVYRzVjZEd4bGRDQnRPMXh1WEc1Y2RDOHZJRWx6SUhkbFltdHBkRDhnYUhSMGNEb3ZMM04wWVdOcmIzWmxjbVpzYjNjdVkyOXRMMkV2TVRZME5UazJNRFl2TXpjMk56Y3pYRzVjZEM4dklHUnZZM1Z0Wlc1MElHbHpJSFZ1WkdWbWFXNWxaQ0JwYmlCeVpXRmpkQzF1WVhScGRtVTZJR2gwZEhCek9pOHZaMmwwYUhWaUxtTnZiUzltWVdObFltOXZheTl5WldGamRDMXVZWFJwZG1VdmNIVnNiQzh4TmpNeVhHNWNkSEpsZEhWeWJpQW9kSGx3Wlc5bUlHUnZZM1Z0Wlc1MElDRTlQU0FuZFc1a1pXWnBibVZrSnlBbUppQmtiMk4xYldWdWRDNWtiMk4xYldWdWRFVnNaVzFsYm5RZ0ppWWdaRzlqZFcxbGJuUXVaRzlqZFcxbGJuUkZiR1Z0Wlc1MExuTjBlV3hsSUNZbUlHUnZZM1Z0Wlc1MExtUnZZM1Z0Wlc1MFJXeGxiV1Z1ZEM1emRIbHNaUzVYWldKcmFYUkJjSEJsWVhKaGJtTmxLU0I4ZkZ4dVhIUmNkQzh2SUVseklHWnBjbVZpZFdjL0lHaDBkSEE2THk5emRHRmphMjkyWlhKbWJHOTNMbU52YlM5aEx6TTVPREV5TUM4ek56WTNOek5jYmx4MFhIUW9kSGx3Wlc5bUlIZHBibVJ2ZHlBaFBUMGdKM1Z1WkdWbWFXNWxaQ2NnSmlZZ2QybHVaRzkzTG1OdmJuTnZiR1VnSmlZZ0tIZHBibVJ2ZHk1amIyNXpiMnhsTG1acGNtVmlkV2NnZkh3Z0tIZHBibVJ2ZHk1amIyNXpiMnhsTG1WNFkyVndkR2x2YmlBbUppQjNhVzVrYjNjdVkyOXVjMjlzWlM1MFlXSnNaU2twS1NCOGZGeHVYSFJjZEM4dklFbHpJR1pwY21WbWIzZ2dQajBnZGpNeFAxeHVYSFJjZEM4dklHaDBkSEJ6T2k4dlpHVjJaV3h2Y0dWeUxtMXZlbWxzYkdFdWIzSm5MMlZ1TFZWVEwyUnZZM012Vkc5dmJITXZWMlZpWDBOdmJuTnZiR1VqVTNSNWJHbHVaMTl0WlhOellXZGxjMXh1WEhSY2RDaDBlWEJsYjJZZ2JtRjJhV2RoZEc5eUlDRTlQU0FuZFc1a1pXWnBibVZrSnlBbUppQnVZWFpwWjJGMGIzSXVkWE5sY2tGblpXNTBJQ1ltSUNodElEMGdibUYyYVdkaGRHOXlMblZ6WlhKQloyVnVkQzUwYjB4dmQyVnlRMkZ6WlNncExtMWhkR05vS0M5bWFYSmxabTk0WEZ3dktGeGNaQ3NwTHlrcElDWW1JSEJoY25ObFNXNTBLRzFiTVYwc0lERXdLU0ErUFNBek1Ta2dmSHhjYmx4MFhIUXZMeUJFYjNWaWJHVWdZMmhsWTJzZ2QyVmlhMmwwSUdsdUlIVnpaWEpCWjJWdWRDQnFkWE4wSUdsdUlHTmhjMlVnZDJVZ1lYSmxJR2x1SUdFZ2QyOXlhMlZ5WEc1Y2RGeDBLSFI1Y0dWdlppQnVZWFpwWjJGMGIzSWdJVDA5SUNkMWJtUmxabWx1WldRbklDWW1JRzVoZG1sbllYUnZjaTUxYzJWeVFXZGxiblFnSmlZZ2JtRjJhV2RoZEc5eUxuVnpaWEpCWjJWdWRDNTBiMHh2ZDJWeVEyRnpaU2dwTG0xaGRHTm9LQzloY0hCc1pYZGxZbXRwZEZ4Y0x5aGNYR1FyS1M4cEtUdGNibjFjYmx4dUx5b3FYRzRnS2lCRGIyeHZjbWw2WlNCc2IyY2dZWEpuZFcxbGJuUnpJR2xtSUdWdVlXSnNaV1F1WEc0Z0tseHVJQ29nUUdGd2FTQndkV0pzYVdOY2JpQXFMMXh1WEc1bWRXNWpkR2x2YmlCbWIzSnRZWFJCY21kektHRnlaM01wSUh0Y2JseDBZWEpuYzFzd1hTQTlJQ2gwYUdsekxuVnpaVU52Ykc5eWN5QS9JQ2NsWXljZ09pQW5KeWtnSzF4dVhIUmNkSFJvYVhNdWJtRnRaWE53WVdObElDdGNibHgwWEhRb2RHaHBjeTUxYzJWRGIyeHZjbk1nUHlBbklDVmpKeUE2SUNjZ0p5a2dLMXh1WEhSY2RHRnlaM05iTUYwZ0sxeHVYSFJjZENoMGFHbHpMblZ6WlVOdmJHOXljeUEvSUNjbFl5QW5JRG9nSnlBbktTQXJYRzVjZEZ4MEp5c25JQ3NnYlc5a2RXeGxMbVY0Y0c5eWRITXVhSFZ0WVc1cGVtVW9kR2hwY3k1a2FXWm1LVHRjYmx4dVhIUnBaaUFvSVhSb2FYTXVkWE5sUTI5c2IzSnpLU0I3WEc1Y2RGeDBjbVYwZFhKdU8xeHVYSFI5WEc1Y2JseDBZMjl1YzNRZ1l5QTlJQ2RqYjJ4dmNqb2dKeUFySUhSb2FYTXVZMjlzYjNJN1hHNWNkR0Z5WjNNdWMzQnNhV05sS0RFc0lEQXNJR01zSUNkamIyeHZjam9nYVc1b1pYSnBkQ2NwTzF4dVhHNWNkQzh2SUZSb1pTQm1hVzVoYkNCY0lpVmpYQ0lnYVhNZ2MyOXRaWGRvWVhRZ2RISnBZMnQ1TENCaVpXTmhkWE5sSUhSb1pYSmxJR052ZFd4a0lHSmxJRzkwYUdWeVhHNWNkQzh2SUdGeVozVnRaVzUwY3lCd1lYTnpaV1FnWldsMGFHVnlJR0psWm05eVpTQnZjaUJoWm5SbGNpQjBhR1VnSldNc0lITnZJSGRsSUc1bFpXUWdkRzljYmx4MEx5OGdabWxuZFhKbElHOTFkQ0IwYUdVZ1kyOXljbVZqZENCcGJtUmxlQ0IwYnlCcGJuTmxjblFnZEdobElFTlRVeUJwYm5SdlhHNWNkR3hsZENCcGJtUmxlQ0E5SURBN1hHNWNkR3hsZENCc1lYTjBReUE5SURBN1hHNWNkR0Z5WjNOYk1GMHVjbVZ3YkdGalpTZ3ZKVnRoTFhwQkxWb2xYUzluTENCdFlYUmphQ0E5UGlCN1hHNWNkRngwYVdZZ0tHMWhkR05vSUQwOVBTQW5KU1VuS1NCN1hHNWNkRngwWEhSeVpYUjFjbTQ3WEc1Y2RGeDBmVnh1WEhSY2RHbHVaR1Y0S3lzN1hHNWNkRngwYVdZZ0tHMWhkR05vSUQwOVBTQW5KV01uS1NCN1hHNWNkRngwWEhRdkx5QlhaU0J2Ym14NUlHRnlaU0JwYm5SbGNtVnpkR1ZrSUdsdUlIUm9aU0FxYkdGemRDb2dKV05jYmx4MFhIUmNkQzh2SUNoMGFHVWdkWE5sY2lCdFlYa2dhR0YyWlNCd2NtOTJhV1JsWkNCMGFHVnBjaUJ2ZDI0cFhHNWNkRngwWEhSc1lYTjBReUE5SUdsdVpHVjRPMXh1WEhSY2RIMWNibHgwZlNrN1hHNWNibHgwWVhKbmN5NXpjR3hwWTJVb2JHRnpkRU1zSURBc0lHTXBPMXh1ZlZ4dVhHNHZLaXBjYmlBcUlFbHVkbTlyWlhNZ1lHTnZibk52YkdVdVpHVmlkV2NvS1dBZ2QyaGxiaUJoZG1GcGJHRmliR1V1WEc0Z0tpQk9ieTF2Y0NCM2FHVnVJR0JqYjI1emIyeGxMbVJsWW5WbllDQnBjeUJ1YjNRZ1lTQmNJbVoxYm1OMGFXOXVYQ0l1WEc0Z0tpQkpaaUJnWTI5dWMyOXNaUzVrWldKMVoyQWdhWE1nYm05MElHRjJZV2xzWVdKc1pTd2dabUZzYkhNZ1ltRmphMXh1SUNvZ2RHOGdZR052Ym5OdmJHVXViRzluWUM1Y2JpQXFYRzRnS2lCQVlYQnBJSEIxWW14cFkxeHVJQ292WEc1bGVIQnZjblJ6TG14dlp5QTlJR052Ym5OdmJHVXVaR1ZpZFdjZ2ZId2dZMjl1YzI5c1pTNXNiMmNnZkh3Z0tDZ3BJRDArSUh0OUtUdGNibHh1THlvcVhHNGdLaUJUWVhabElHQnVZVzFsYzNCaFkyVnpZQzVjYmlBcVhHNGdLaUJBY0dGeVlXMGdlMU4wY21sdVozMGdibUZ0WlhOd1lXTmxjMXh1SUNvZ1FHRndhU0J3Y21sMllYUmxYRzRnS2k5Y2JtWjFibU4wYVc5dUlITmhkbVVvYm1GdFpYTndZV05sY3lrZ2UxeHVYSFIwY25rZ2UxeHVYSFJjZEdsbUlDaHVZVzFsYzNCaFkyVnpLU0I3WEc1Y2RGeDBYSFJsZUhCdmNuUnpMbk4wYjNKaFoyVXVjMlYwU1hSbGJTZ25aR1ZpZFdjbkxDQnVZVzFsYzNCaFkyVnpLVHRjYmx4MFhIUjlJR1ZzYzJVZ2UxeHVYSFJjZEZ4MFpYaHdiM0owY3k1emRHOXlZV2RsTG5KbGJXOTJaVWwwWlcwb0oyUmxZblZuSnlrN1hHNWNkRngwZlZ4dVhIUjlJR05oZEdOb0lDaGxjbkp2Y2lrZ2UxeHVYSFJjZEM4dklGTjNZV3hzYjNkY2JseDBYSFF2THlCWVdGZ2dLRUJSYVhndEtTQnphRzkxYkdRZ2QyVWdZbVVnYkc5bloybHVaeUIwYUdWelpUOWNibHgwZlZ4dWZWeHVYRzR2S2lwY2JpQXFJRXh2WVdRZ1lHNWhiV1Z6Y0dGalpYTmdMbHh1SUNwY2JpQXFJRUJ5WlhSMWNtNGdlMU4wY21sdVozMGdjbVYwZFhKdWN5QjBhR1VnY0hKbGRtbHZkWE5zZVNCd1pYSnphWE4wWldRZ1pHVmlkV2NnYlc5a1pYTmNiaUFxSUVCaGNHa2djSEpwZG1GMFpWeHVJQ292WEc1bWRXNWpkR2x2YmlCc2IyRmtLQ2tnZTF4dVhIUnNaWFFnY2p0Y2JseDBkSEo1SUh0Y2JseDBYSFJ5SUQwZ1pYaHdiM0owY3k1emRHOXlZV2RsTG1kbGRFbDBaVzBvSjJSbFluVm5KeWs3WEc1Y2RIMGdZMkYwWTJnZ0tHVnljbTl5S1NCN1hHNWNkRngwTHk4Z1UzZGhiR3h2ZDF4dVhIUmNkQzh2SUZoWVdDQW9RRkZwZUMwcElITm9iM1ZzWkNCM1pTQmlaU0JzYjJkbmFXNW5JSFJvWlhObFAxeHVYSFI5WEc1Y2JseDBMeThnU1dZZ1pHVmlkV2NnYVhOdUozUWdjMlYwSUdsdUlFeFRMQ0JoYm1RZ2QyVW5jbVVnYVc0Z1JXeGxZM1J5YjI0c0lIUnllU0IwYnlCc2IyRmtJQ1JFUlVKVlIxeHVYSFJwWmlBb0lYSWdKaVlnZEhsd1pXOW1JSEJ5YjJObGMzTWdJVDA5SUNkMWJtUmxabWx1WldRbklDWW1JQ2RsYm5ZbklHbHVJSEJ5YjJObGMzTXBJSHRjYmx4MFhIUnlJRDBnY0hKdlkyVnpjeTVsYm5ZdVJFVkNWVWM3WEc1Y2RIMWNibHh1WEhSeVpYUjFjbTRnY2p0Y2JuMWNibHh1THlvcVhHNGdLaUJNYjJOaGJITjBiM0poWjJVZ1lYUjBaVzF3ZEhNZ2RHOGdjbVYwZFhKdUlIUm9aU0JzYjJOaGJITjBiM0poWjJVdVhHNGdLbHh1SUNvZ1ZHaHBjeUJwY3lCdVpXTmxjM05oY25rZ1ltVmpZWFZ6WlNCellXWmhjbWtnZEdoeWIzZHpYRzRnS2lCM2FHVnVJR0VnZFhObGNpQmthWE5oWW14bGN5QmpiMjlyYVdWekwyeHZZMkZzYzNSdmNtRm5aVnh1SUNvZ1lXNWtJSGx2ZFNCaGRIUmxiWEIwSUhSdklHRmpZMlZ6Y3lCcGRDNWNiaUFxWEc0Z0tpQkFjbVYwZFhKdUlIdE1iMk5oYkZOMGIzSmhaMlY5WEc0Z0tpQkFZWEJwSUhCeWFYWmhkR1ZjYmlBcUwxeHVYRzVtZFc1amRHbHZiaUJzYjJOaGJITjBiM0poWjJVb0tTQjdYRzVjZEhSeWVTQjdYRzVjZEZ4MEx5OGdWRlpOVEV0cGRDQW9RWEJ3YkdVZ1ZGWWdTbE1nVW5WdWRHbHRaU2tnWkc5bGN5QnViM1FnYUdGMlpTQmhJSGRwYm1SdmR5QnZZbXBsWTNRc0lHcDFjM1FnYkc5allXeFRkRzl5WVdkbElHbHVJSFJvWlNCbmJHOWlZV3dnWTI5dWRHVjRkRnh1WEhSY2RDOHZJRlJvWlNCQ2NtOTNjMlZ5SUdGc2MyOGdhR0Z6SUd4dlkyRnNVM1J2Y21GblpTQnBiaUIwYUdVZ1oyeHZZbUZzSUdOdmJuUmxlSFF1WEc1Y2RGeDBjbVYwZFhKdUlHeHZZMkZzVTNSdmNtRm5aVHRjYmx4MGZTQmpZWFJqYUNBb1pYSnliM0lwSUh0Y2JseDBYSFF2THlCVGQyRnNiRzkzWEc1Y2RGeDBMeThnV0ZoWUlDaEFVV2w0TFNrZ2MyaHZkV3hrSUhkbElHSmxJR3h2WjJkcGJtY2dkR2hsYzJVL1hHNWNkSDFjYm4xY2JseHViVzlrZFd4bExtVjRjRzl5ZEhNZ1BTQnlaWEYxYVhKbEtDY3VMMk52YlcxdmJpY3BLR1Y0Y0c5eWRITXBPMXh1WEc1amIyNXpkQ0I3Wm05eWJXRjBkR1Z5YzMwZ1BTQnRiMlIxYkdVdVpYaHdiM0owY3p0Y2JseHVMeW9xWEc0Z0tpQk5ZWEFnSldvZ2RHOGdZRXBUVDA0dWMzUnlhVzVuYVdaNUtDbGdMQ0J6YVc1alpTQnVieUJYWldJZ1NXNXpjR1ZqZEc5eWN5QmtieUIwYUdGMElHSjVJR1JsWm1GMWJIUXVYRzRnS2k5Y2JseHVabTl5YldGMGRHVnljeTVxSUQwZ1puVnVZM1JwYjI0Z0tIWXBJSHRjYmx4MGRISjVJSHRjYmx4MFhIUnlaWFIxY200Z1NsTlBUaTV6ZEhKcGJtZHBabmtvZGlrN1hHNWNkSDBnWTJGMFkyZ2dLR1Z5Y205eUtTQjdYRzVjZEZ4MGNtVjBkWEp1SUNkYlZXNWxlSEJsWTNSbFpFcFRUMDVRWVhKelpVVnljbTl5WFRvZ0p5QXJJR1Z5Y205eUxtMWxjM05oWjJVN1hHNWNkSDFjYm4wN1hHNGlMQ0pjSW5WelpTQnpkSEpwWTNSY0lqdGNiazlpYW1WamRDNWtaV1pwYm1WUWNtOXdaWEowZVNobGVIQnZjblJ6TENCY0lsOWZaWE5OYjJSMWJHVmNJaXdnZXlCMllXeDFaVG9nZEhKMVpTQjlLVHRjYm1WNGNHOXlkSE11Y0dGeWMyVWdQU0IyYjJsa0lEQTdYRzR2THlCcGJYQnZjblJsWkNCbWNtOXRJR2gwZEhCek9pOHZaMmwwYUhWaUxtTnZiUzluWVd4cmJpOXdZWEp6WlhWeWFWeHVMeW9xWEc0Z0tpQlFZWEp6WlhNZ1lTQlZVa2xjYmlBcVhHNGdLaUJPYjNSbE9pQjNaU0JqYjNWc1pDQmhiSE52SUdoaGRtVWdkWE5sWkNCMGFHVWdZblZwYkhRdGFXNGdWVkpNSUc5aWFtVmpkQ3dnWW5WMElHbDBJR2x6YmlkMElITjFjSEJ2Y25SbFpDQnZiaUJoYkd3Z2NHeGhkR1p2Y20xekxseHVJQ3BjYmlBcUlGTmxaVHBjYmlBcUlDMGdhSFIwY0hNNkx5OWtaWFpsYkc5d1pYSXViVzk2YVd4c1lTNXZjbWN2Wlc0dFZWTXZaRzlqY3k5WFpXSXZRVkJKTDFWU1RGeHVJQ29nTFNCb2RIUndjem92TDJOaGJtbDFjMlV1WTI5dEwzVnliRnh1SUNvZ0xTQm9kSFJ3Y3pvdkwzZDNkeTV5Wm1NdFpXUnBkRzl5TG05eVp5OXlabU12Y21aak16azROaU5oY0hCbGJtUnBlQzFDWEc0Z0tseHVJQ29nU0dsemRHOXllU0J2WmlCMGFHVWdjR0Z5YzJVb0tTQnRaWFJvYjJRNlhHNGdLaUF0SUdacGNuTjBJR052YlcxcGREb2dhSFIwY0hNNkx5OW5hWFJvZFdJdVkyOXRMM052WTJ0bGRHbHZMM052WTJ0bGRDNXBieTFqYkdsbGJuUXZZMjl0YldsMEx6UmxaVEZrTldRNU5HSXpPVEEyWVRsak1EVXlZalExT1dZeFlUZ3hPR0l4TldZek9HWTVNV05jYmlBcUlDMGdaWGh3YjNKMElHbHVkRzhnYVhSeklHOTNiaUJ0YjJSMWJHVTZJR2gwZEhCek9pOHZaMmwwYUhWaUxtTnZiUzl6YjJOclpYUnBieTlsYm1kcGJtVXVhVzh0WTJ4cFpXNTBMMk52YlcxcGRDOWtaVEpqTlRZeFpUUTFOalJsWm1WaU56aG1NV0prWWpGaVlUTTVaV1k0TVdJeU9ESXlZMkl6WEc0Z0tpQXRJSEpsYVcxd2IzSjBPaUJvZEhSd2N6b3ZMMmRwZEdoMVlpNWpiMjB2YzI5amEyVjBhVzh2Wlc1bmFXNWxMbWx2TFdOc2FXVnVkQzlqYjIxdGFYUXZaR1l6TWpJM04yTXpaalprTmpJeVpXVmpOV1ZrTURsbU5Ea3pZMkZsTTJZek16a3haREkwTWx4dUlDcGNiaUFxSUVCaGRYUm9iM0lnVTNSbGRtVnVJRXhsZG1sMGFHRnVJRHh6ZEdWMlpXNXNaWFpwZEdoaGJpNWpiMjArSUNoTlNWUWdiR2xqWlc1elpTbGNiaUFxSUVCaGNHa2djSEpwZG1GMFpWeHVJQ292WEc1amIyNXpkQ0J5WlNBOUlDOWVLRDg2S0Q4aFcxNDZRRnhjTHo4alhTczZXMTQ2UUZ4Y0wxMHFRQ2tvYUhSMGNIeG9kSFJ3YzN4M2MzeDNjM01wT2x4Y0wxeGNMeWsvS0NnL09pZ29XMTQ2UUZ4Y0x6OGpYU29wS0Q4Nk9paGJYanBBWEZ3dlB5TmRLaWtwUHlrL1FDay9LQ2cvT2x0aExXWXdMVGxkZXpBc05IMDZLWHN5TERkOVcyRXRaakF0T1YxN01DdzBmWHhiWGpwY1hDOC9JMTBxS1NnL09qb29YRnhrS2lrcFB5a29LQ2hjWEM4b1B6cGJYajhqWFNnL0lWdGVQeU5jWEM5ZEtseGNMbHRlUHlOY1hDOHVYU3NvUHpwYlB5TmRmQ1FwS1NrcVhGd3ZQeWsvS0Z0ZVB5TmNYQzlkS2lrcEtEODZYRncvS0Z0ZUkxMHFLU2svS0Q4Nkl5Z3VLaWtwUHlrdk8xeHVZMjl1YzNRZ2NHRnlkSE1nUFNCYlhHNGdJQ0FnSjNOdmRYSmpaU2NzSUNkd2NtOTBiMk52YkNjc0lDZGhkWFJvYjNKcGRIa25MQ0FuZFhObGNrbHVabThuTENBbmRYTmxjaWNzSUNkd1lYTnpkMjl5WkNjc0lDZG9iM04wSnl3Z0ozQnZjblFuTENBbmNtVnNZWFJwZG1VbkxDQW5jR0YwYUNjc0lDZGthWEpsWTNSdmNua25MQ0FuWm1sc1pTY3NJQ2R4ZFdWeWVTY3NJQ2RoYm1Ob2IzSW5YRzVkTzF4dVpuVnVZM1JwYjI0Z2NHRnljMlVvYzNSeUtTQjdYRzRnSUNBZ2FXWWdLSE4wY2k1c1pXNW5kR2dnUGlBeU1EQXdLU0I3WEc0Z0lDQWdJQ0FnSUhSb2NtOTNJRndpVlZKSklIUnZieUJzYjI1blhDSTdYRzRnSUNBZ2ZWeHVJQ0FnSUdOdmJuTjBJSE55WXlBOUlITjBjaXdnWWlBOUlITjBjaTVwYm1SbGVFOW1LQ2RiSnlrc0lHVWdQU0J6ZEhJdWFXNWtaWGhQWmlnblhTY3BPMXh1SUNBZ0lHbG1JQ2hpSUNFOUlDMHhJQ1ltSUdVZ0lUMGdMVEVwSUh0Y2JpQWdJQ0FnSUNBZ2MzUnlJRDBnYzNSeUxuTjFZbk4wY21sdVp5Z3dMQ0JpS1NBcklITjBjaTV6ZFdKemRISnBibWNvWWl3Z1pTa3VjbVZ3YkdGalpTZ3ZPaTluTENBbk95Y3BJQ3NnYzNSeUxuTjFZbk4wY21sdVp5aGxMQ0J6ZEhJdWJHVnVaM1JvS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdiR1YwSUcwZ1BTQnlaUzVsZUdWaktITjBjaUI4ZkNBbkp5a3NJSFZ5YVNBOUlIdDlMQ0JwSUQwZ01UUTdYRzRnSUNBZ2QyaHBiR1VnS0drdExTa2dlMXh1SUNBZ0lDQWdJQ0IxY21sYmNHRnlkSE5iYVYxZElEMGdiVnRwWFNCOGZDQW5KenRjYmlBZ0lDQjlYRzRnSUNBZ2FXWWdLR0lnSVQwZ0xURWdKaVlnWlNBaFBTQXRNU2tnZTF4dUlDQWdJQ0FnSUNCMWNta3VjMjkxY21ObElEMGdjM0pqTzF4dUlDQWdJQ0FnSUNCMWNta3VhRzl6ZENBOUlIVnlhUzVvYjNOMExuTjFZbk4wY21sdVp5Z3hMQ0IxY21rdWFHOXpkQzVzWlc1bmRHZ2dMU0F4S1M1eVpYQnNZV05sS0M4N0wyY3NJQ2M2SnlrN1hHNGdJQ0FnSUNBZ0lIVnlhUzVoZFhSb2IzSnBkSGtnUFNCMWNta3VZWFYwYUc5eWFYUjVMbkpsY0d4aFkyVW9KMXNuTENBbkp5a3VjbVZ3YkdGalpTZ25YU2NzSUNjbktTNXlaWEJzWVdObEtDODdMMmNzSUNjNkp5azdYRzRnSUNBZ0lDQWdJSFZ5YVM1cGNIWTJkWEpwSUQwZ2RISjFaVHRjYmlBZ0lDQjlYRzRnSUNBZ2RYSnBMbkJoZEdoT1lXMWxjeUE5SUhCaGRHaE9ZVzFsY3loMWNta3NJSFZ5YVZzbmNHRjBhQ2RkS1R0Y2JpQWdJQ0IxY21rdWNYVmxjbmxMWlhrZ1BTQnhkV1Z5ZVV0bGVTaDFjbWtzSUhWeWFWc25jWFZsY25rblhTazdYRzRnSUNBZ2NtVjBkWEp1SUhWeWFUdGNibjFjYm1WNGNHOXlkSE11Y0dGeWMyVWdQU0J3WVhKelpUdGNibVoxYm1OMGFXOXVJSEJoZEdoT1lXMWxjeWh2WW1vc0lIQmhkR2dwSUh0Y2JpQWdJQ0JqYjI1emRDQnlaV2Q0SUQwZ0wxeGNMM3N5TERsOUwyY3NJRzVoYldWeklEMGdjR0YwYUM1eVpYQnNZV05sS0hKbFozZ3NJRndpTDF3aUtTNXpjR3hwZENoY0lpOWNJaWs3WEc0Z0lDQWdhV1lnS0hCaGRHZ3VjMnhwWTJVb01Dd2dNU2tnUFQwZ0p5OG5JSHg4SUhCaGRHZ3ViR1Z1WjNSb0lEMDlQU0F3S1NCN1hHNGdJQ0FnSUNBZ0lHNWhiV1Z6TG5Od2JHbGpaU2d3TENBeEtUdGNiaUFnSUNCOVhHNGdJQ0FnYVdZZ0tIQmhkR2d1YzJ4cFkyVW9MVEVwSUQwOUlDY3ZKeWtnZTF4dUlDQWdJQ0FnSUNCdVlXMWxjeTV6Y0d4cFkyVW9ibUZ0WlhNdWJHVnVaM1JvSUMwZ01Td2dNU2s3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCdVlXMWxjenRjYm4xY2JtWjFibU4wYVc5dUlIRjFaWEo1UzJWNUtIVnlhU3dnY1hWbGNua3BJSHRjYmlBZ0lDQmpiMjV6ZENCa1lYUmhJRDBnZTMwN1hHNGdJQ0FnY1hWbGNua3VjbVZ3YkdGalpTZ3ZLRDg2WG53bUtTaGJYaVk5WFNvcFBUOG9XMTRtWFNvcEwyY3NJR1oxYm1OMGFXOXVJQ2drTUN3Z0pERXNJQ1F5S1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2drTVNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWkdGMFlWc2tNVjBnUFNBa01qdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lIMHBPMXh1SUNBZ0lISmxkSFZ5YmlCa1lYUmhPMXh1ZlZ4dUlpd2lYQ0oxYzJVZ2MzUnlhV04wWENJN1hHNTJZWElnWDE5cGJYQnZjblJFWldaaGRXeDBJRDBnS0hSb2FYTWdKaVlnZEdocGN5NWZYMmx0Y0c5eWRFUmxabUYxYkhRcElIeDhJR1oxYm1OMGFXOXVJQ2h0YjJRcElIdGNiaUFnSUNCeVpYUjFjbTRnS0cxdlpDQW1KaUJ0YjJRdVgxOWxjMDF2WkhWc1pTa2dQeUJ0YjJRZ09pQjdJRndpWkdWbVlYVnNkRndpT2lCdGIyUWdmVHRjYm4wN1hHNVBZbXBsWTNRdVpHVm1hVzVsVUhKdmNHVnlkSGtvWlhod2IzSjBjeXdnWENKZlgyVnpUVzlrZFd4bFhDSXNJSHNnZG1Gc2RXVTZJSFJ5ZFdVZ2ZTazdYRzVsZUhCdmNuUnpMbWx1YVhRZ1BTQjJiMmxrSURBN1hHNWpiMjV6ZENCRGFGOHhJRDBnWDE5cGJYQnZjblJFWldaaGRXeDBLSEpsY1hWcGNtVW9YQ0l1TDBOb1hDSXBLVHRjYm1WNGNHOXlkSE11YVc1cGRDQTlJSHRjYmlBZ0lDQm5ZWFJsZDJGNU9pQnVkV3hzTEZ4dUlDQWdJR2x2VTJWeWRtVnlPaUI3WEc0Z0lDQWdJQ0FnSUd4dlkyRjBhVzl1T2lBbkp5eGNiaUFnSUNBZ0lDQWdhRzl6ZERvZ0oyeHZZMkZzYUc5emRDY3NYRzRnSUNBZ0lDQWdJSEJ2Y25RNklEQXNYRzRnSUNBZ2ZTeGNiaUFnSUNCeVpXUnBjem9nZTF4dUlDQWdJQ0FnSUNCamJIVnpkR1Z5T2lCYlhTeGNiaUFnSUNBZ0lDQWdZMnhwWlc1ME9pQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCb2IzTjBPaUFuTVRJM0xqQXVNQzR4Snl4Y2JpQWdJQ0FnSUNBZ0lDQWdJSEJ2Y25RNklEWXpOemtzWEc0Z0lDQWdJQ0FnSUgwc1hHNGdJQ0FnZlN4Y2JpQWdJQ0JoWTJObGNIUTZJSHRjYmlBZ0lDQWdJQ0FnY21GdWEwRnNiRG9nWm1Gc2MyVXNYRzRnSUNBZ2ZTeGNiaUFnSUNCamFHbHNaSEpsYmpvZ1cxMHNYRzU5TzF4dVkyeGhjM01nUTJoRGIyNW1hV2ROYjJSbGJDQjdYRzRnSUNBZ1kyOXVjM1J5ZFdOMGIzSW9jR0Z5WVcxeklEMGdaWGh3YjNKMGN5NXBibWwwS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCUFltcGxZM1F1WVhOemFXZHVLSFJvYVhNc0lIQmhjbUZ0Y3lrN1hHNGdJQ0FnZlZ4dUlDQWdJSE4wWVhScFl5Qm5aWFJOZVVOb1EyOXVabWxuS0dOb1EyOXVabWxuU25OdmJpd2diWGxEYjI1dVpXTjBhVzl1S1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUcxaGRHTm9hVzVuSUQwZ0tHTm9RMjl1Wm1sbkxDQndZWEpsYm5STWIyTmhkR2x2YmlBOUlDY25LU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQmpkWEp5Wlc1MFRHOWpZWFJwYjI0Z1BTQndZWEpsYm5STWIyTmhkR2x2YmlBcklHTm9RMjl1Wm1sbkxtbHZVMlZ5ZG1WeUxteHZZMkYwYVc5dU8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHTjFjbkpsYm5STWIyTmhkR2x2YmlBOVBUMGdiWGxEYjI1dVpXTjBhVzl1S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdMaTR1WTJoRGIyNW1hV2NzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTm9hV3hrY21WdU9pQmJYU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVibVZqZEdsdmJqb2diWGxEYjI1dVpXTjBhVzl1TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWTJoRGIyNW1hV2N1WTJocGJHUnlaVzRnSmlZZ1kyaERiMjVtYVdjdVkyaHBiR1J5Wlc0dWJHVnVaM1JvSUQ0Z01Da2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1p2Y2lBb1kyOXVjM1FnWTJocGJHUWdiMllnWTJoRGIyNW1hV2N1WTJocGJHUnlaVzRwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2NtVnpkV3gwSUQwZ2JXRjBZMmhwYm1jb1kyaHBiR1FzSUdOMWNuSmxiblJNYjJOaGRHbHZiaWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2h5WlhOMWJIUXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2NtVnpkV3gwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCdWRXeHNPMXh1SUNBZ0lDQWdJQ0I5TzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J0WVhSamFHVmtJRDBnYldGMFkyaHBibWNvWTJoRGIyNW1hV2RLYzI5dUtUdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHMWhkR05vWldRZ0lUMDlJRzUxYkd3Z1B5QnRZWFJqYUdWa0lEb2dleUF1TGk1amFFTnZibVpwWjBwemIyNHNJR05vYVd4a2NtVnVPaUJiWFN3Z1kyOXVibVZqZEdsdmJqb2diWGxEYjI1dVpXTjBhVzl1SUgwN1hHNGdJQ0FnZlZ4dUlDQWdJSE4wWVhScFl5Qm5aWFJEYUZKdmIzUnpRMjl1Wm1sbktIQmhjbUZ0Y3lrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCN0lHTm9RMjl1Wm1sblNuTnZiaXdnZEhWdVpVTnZibTVsWTNScGIyNGdmU0E5SUhCaGNtRnRjenRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdjbVZqWTNWeVpXNTBSbWx1WkNBOUlDaGphR2xzWkhKbGJpd2dkSFZ1WlVOdmJtNWxZM1JwYjI0c0lIQmhjbVZ1ZEVOdmJtNWxZM1JwYjI0c0lISnZiM1J6SUQwZ1cxMHBJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHWnBibVJsWkNBOUlHTm9hV3hrY21WdUxtWnBibVFvS0dOb2FXeGtLU0E5UGlCMGRXNWxRMjl1Ym1WamRHbHZiaTVwYm1SbGVFOW1LSEJoY21WdWRFTnZibTVsWTNScGIyNGdLeUJqYUdsc1pDNXBiMU5sY25abGNpNXNiMk5oZEdsdmJpa2dQajBnTUNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb1ptbHVaR1ZrS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnWTNWeWNtVnVkRU52Ym01bFkzUnBiMjRnUFNCd1lYSmxiblJEYjI1dVpXTjBhVzl1SUNzZ1ptbHVaR1ZrTG1sdlUyVnlkbVZ5TG14dlkyRjBhVzl1TzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKdmIzUnpMbkIxYzJnb2V5QXVMaTVtYVc1a1pXUXNJR05vYVd4a2NtVnVPaUJiWFN3Z1kyOXVibVZqZEdsdmJqb2dZM1Z5Y21WdWRFTnZibTVsWTNScGIyNGdmU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSEpsWTJOMWNtVnVkRVpwYm1Rb1ptbHVaR1ZrTG1Ob2FXeGtjbVZ1TENCMGRXNWxRMjl1Ym1WamRHbHZiaXdnWTNWeWNtVnVkRU52Ym01bFkzUnBiMjRzSUhKdmIzUnpLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnliMjkwY3p0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZlR0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnWTI5dVptbG5jeUE5SUhKbFkyTjFjbVZ1ZEVacGJtUW9ZMmhEYjI1bWFXZEtjMjl1TG1Ob2FXeGtjbVZ1TENCMGRXNWxRMjl1Ym1WamRHbHZiaXdnUTJoZk1TNWtaV1poZFd4MExuSnZiM1JEYjI1dVpXTjBhVzl1TENCYlhHNGdJQ0FnSUNBZ0lDQWdJQ0I3SUM0dUxtTm9RMjl1Wm1sblNuTnZiaXdnWTJocGJHUnlaVzQ2SUZ0ZExDQmpiMjV1WldOMGFXOXVPaUJEYUY4eExtUmxabUYxYkhRdWNtOXZkRU52Ym01bFkzUnBiMjRnZlN4Y2JpQWdJQ0FnSUNBZ1hTazdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmpiMjVtYVdkek8xeHVJQ0FnSUgxY2JpQWdJQ0J6ZEdGMGFXTWdaMlYwUjJGMFpYZGhlU2h3WVhKaGJYTXBJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdZMmhTYjI5MGMwTnZibVpwWnlBOUlFTm9RMjl1Wm1sblRXOWtaV3d1WjJWMFEyaFNiMjkwYzBOdmJtWnBaeWh3WVhKaGJYTXBPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQm5ZWFJsZDJGNUlEMGdZMmhTYjI5MGMwTnZibVpwWjFzeFhTQS9JR05vVW05dmRITkRiMjVtYVdkYk1WMHVaMkYwWlhkaGVTQTZJR05vVW05dmRITkRiMjVtYVdkYk1GMHVaMkYwWlhkaGVUdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHZGhkR1YzWVhrN1hHNGdJQ0FnZlZ4dUlDQWdJSE4wWVhScFl5Qm5aWFJTYjI5MGMwTnZibTVsWTNScGIyNXpLSEJoY21GdGN5d2dhWE5GZUdOc2RXUmxWSFZ1WlVOdmJtNWxZM1JwYjI0Z1BTQm1ZV3h6WlNrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCdGVWSnZiM1J6UTI5dVptbG5JRDBnUTJoRGIyNW1hV2ROYjJSbGJDNW5aWFJEYUZKdmIzUnpRMjl1Wm1sbktIQmhjbUZ0Y3lrN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUcxNVVtOXZkSE5EYjI1dVpXTjBhVzl1Y3lBOUlHMTVVbTl2ZEhORGIyNW1hV2N1YldGd0tDaGpiMjVtYVdjcElEMCtJR052Ym1acFp5NWpiMjV1WldOMGFXOXVLVHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJR2x6UlhoamJIVmtaVlIxYm1WRGIyNXVaV04wYVc5dUlEOGdiWGxTYjI5MGMwTnZibTVsWTNScGIyNXpMbVpwYkhSbGNpZ29ZeWtnUFQ0Z1l5QWhQVDBnY0dGeVlXMXpMblIxYm1WRGIyNXVaV04wYVc5dUtTQTZJRzE1VW05dmRITkRiMjV1WldOMGFXOXVjenRjYmlBZ0lDQjlYRzU5WEc1bGVIQnZjblJ6TG1SbFptRjFiSFFnUFNCRGFFTnZibVpwWjAxdlpHVnNPMXh1SWl3aVhHNHZLaXBjYmlBcUlGUm9hWE1nYVhNZ2RHaGxJR052YlcxdmJpQnNiMmRwWXlCbWIzSWdZbTkwYUNCMGFHVWdUbTlrWlM1cWN5QmhibVFnZDJWaUlHSnliM2R6WlhKY2JpQXFJR2x0Y0d4bGJXVnVkR0YwYVc5dWN5QnZaaUJnWkdWaWRXY29LV0F1WEc0Z0tpOWNibHh1Wm5WdVkzUnBiMjRnYzJWMGRYQW9aVzUyS1NCN1hHNWNkR055WldGMFpVUmxZblZuTG1SbFluVm5JRDBnWTNKbFlYUmxSR1ZpZFdjN1hHNWNkR055WldGMFpVUmxZblZuTG1SbFptRjFiSFFnUFNCamNtVmhkR1ZFWldKMVp6dGNibHgwWTNKbFlYUmxSR1ZpZFdjdVkyOWxjbU5sSUQwZ1kyOWxjbU5sTzF4dVhIUmpjbVZoZEdWRVpXSjFaeTVrYVhOaFlteGxJRDBnWkdsellXSnNaVHRjYmx4MFkzSmxZWFJsUkdWaWRXY3VaVzVoWW14bElEMGdaVzVoWW14bE8xeHVYSFJqY21WaGRHVkVaV0oxWnk1bGJtRmliR1ZrSUQwZ1pXNWhZbXhsWkR0Y2JseDBZM0psWVhSbFJHVmlkV2N1YUhWdFlXNXBlbVVnUFNCeVpYRjFhWEpsS0NkdGN5Y3BPMXh1WEhSamNtVmhkR1ZFWldKMVp5NWtaWE4wY205NUlEMGdaR1Z6ZEhKdmVUdGNibHh1WEhSUFltcGxZM1F1YTJWNWN5aGxibllwTG1admNrVmhZMmdvYTJWNUlEMCtJSHRjYmx4MFhIUmpjbVZoZEdWRVpXSjFaMXRyWlhsZElEMGdaVzUyVzJ0bGVWMDdYRzVjZEgwcE8xeHVYRzVjZEM4cUtseHVYSFFxSUZSb1pTQmpkWEp5Wlc1MGJIa2dZV04wYVhabElHUmxZblZuSUcxdlpHVWdibUZ0WlhNc0lHRnVaQ0J1WVcxbGN5QjBieUJ6YTJsd0xseHVYSFFxTDF4dVhHNWNkR055WldGMFpVUmxZblZuTG01aGJXVnpJRDBnVzEwN1hHNWNkR055WldGMFpVUmxZblZuTG5OcmFYQnpJRDBnVzEwN1hHNWNibHgwTHlvcVhHNWNkQ29nVFdGd0lHOW1JSE53WldOcFlXd2dYQ0lsYmx3aUlHaGhibVJzYVc1bklHWjFibU4wYVc5dWN5d2dabTl5SUhSb1pTQmtaV0oxWnlCY0ltWnZjbTFoZEZ3aUlHRnlaM1Z0Wlc1MExseHVYSFFxWEc1Y2RDb2dWbUZzYVdRZ2EyVjVJRzVoYldWeklHRnlaU0JoSUhOcGJtZHNaU3dnYkc5M1pYSWdiM0lnZFhCd1pYSXRZMkZ6WlNCc1pYUjBaWElzSUdrdVpTNGdYQ0p1WENJZ1lXNWtJRndpVGx3aUxseHVYSFFxTDF4dVhIUmpjbVZoZEdWRVpXSjFaeTVtYjNKdFlYUjBaWEp6SUQwZ2UzMDdYRzVjYmx4MEx5b3FYRzVjZENvZ1UyVnNaV04wY3lCaElHTnZiRzl5SUdadmNpQmhJR1JsWW5WbklHNWhiV1Z6Y0dGalpWeHVYSFFxSUVCd1lYSmhiU0I3VTNSeWFXNW5mU0J1WVcxbGMzQmhZMlVnVkdobElHNWhiV1Z6Y0dGalpTQnpkSEpwYm1jZ1ptOXlJSFJvWlNCa1pXSjFaeUJwYm5OMFlXNWpaU0IwYnlCaVpTQmpiMnh2Y21Wa1hHNWNkQ29nUUhKbGRIVnliaUI3VG5WdFltVnlmRk4wY21sdVozMGdRVzRnUVU1VFNTQmpiMnh2Y2lCamIyUmxJR1p2Y2lCMGFHVWdaMmwyWlc0Z2JtRnRaWE53WVdObFhHNWNkQ29nUUdGd2FTQndjbWwyWVhSbFhHNWNkQ292WEc1Y2RHWjFibU4wYVc5dUlITmxiR1ZqZEVOdmJHOXlLRzVoYldWemNHRmpaU2tnZTF4dVhIUmNkR3hsZENCb1lYTm9JRDBnTUR0Y2JseHVYSFJjZEdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z2JtRnRaWE53WVdObExteGxibWQwYURzZ2FTc3JLU0I3WEc1Y2RGeDBYSFJvWVhOb0lEMGdLQ2hvWVhOb0lEdzhJRFVwSUMwZ2FHRnphQ2tnS3lCdVlXMWxjM0JoWTJVdVkyaGhja052WkdWQmRDaHBLVHRjYmx4MFhIUmNkR2hoYzJnZ2ZEMGdNRHNnTHk4Z1EyOXVkbVZ5ZENCMGJ5QXpNbUpwZENCcGJuUmxaMlZ5WEc1Y2RGeDBmVnh1WEc1Y2RGeDBjbVYwZFhKdUlHTnlaV0YwWlVSbFluVm5MbU52Ykc5eWMxdE5ZWFJvTG1GaWN5aG9ZWE5vS1NBbElHTnlaV0YwWlVSbFluVm5MbU52Ykc5eWN5NXNaVzVuZEdoZE8xeHVYSFI5WEc1Y2RHTnlaV0YwWlVSbFluVm5Mbk5sYkdWamRFTnZiRzl5SUQwZ2MyVnNaV04wUTI5c2IzSTdYRzVjYmx4MEx5b3FYRzVjZENvZ1EzSmxZWFJsSUdFZ1pHVmlkV2RuWlhJZ2QybDBhQ0IwYUdVZ1oybDJaVzRnWUc1aGJXVnpjR0ZqWldBdVhHNWNkQ3BjYmx4MEtpQkFjR0Z5WVcwZ2UxTjBjbWx1WjMwZ2JtRnRaWE53WVdObFhHNWNkQ29nUUhKbGRIVnliaUI3Um5WdVkzUnBiMjU5WEc1Y2RDb2dRR0Z3YVNCd2RXSnNhV05jYmx4MEtpOWNibHgwWm5WdVkzUnBiMjRnWTNKbFlYUmxSR1ZpZFdjb2JtRnRaWE53WVdObEtTQjdYRzVjZEZ4MGJHVjBJSEJ5WlhaVWFXMWxPMXh1WEhSY2RHeGxkQ0JsYm1GaWJHVlBkbVZ5Y21sa1pTQTlJRzUxYkd3N1hHNWNkRngwYkdWMElHNWhiV1Z6Y0dGalpYTkRZV05vWlR0Y2JseDBYSFJzWlhRZ1pXNWhZbXhsWkVOaFkyaGxPMXh1WEc1Y2RGeDBablZ1WTNScGIyNGdaR1ZpZFdjb0xpNHVZWEpuY3lrZ2UxeHVYSFJjZEZ4MEx5OGdSR2x6WVdKc1pXUS9YRzVjZEZ4MFhIUnBaaUFvSVdSbFluVm5MbVZ1WVdKc1pXUXBJSHRjYmx4MFhIUmNkRngwY21WMGRYSnVPMXh1WEhSY2RGeDBmVnh1WEc1Y2RGeDBYSFJqYjI1emRDQnpaV3htSUQwZ1pHVmlkV2M3WEc1Y2JseDBYSFJjZEM4dklGTmxkQ0JnWkdsbVptQWdkR2x0WlhOMFlXMXdYRzVjZEZ4MFhIUmpiMjV6ZENCamRYSnlJRDBnVG5WdFltVnlLRzVsZHlCRVlYUmxLQ2twTzF4dVhIUmNkRngwWTI5dWMzUWdiWE1nUFNCamRYSnlJQzBnS0hCeVpYWlVhVzFsSUh4OElHTjFjbklwTzF4dVhIUmNkRngwYzJWc1ppNWthV1ptSUQwZ2JYTTdYRzVjZEZ4MFhIUnpaV3htTG5CeVpYWWdQU0J3Y21WMlZHbHRaVHRjYmx4MFhIUmNkSE5sYkdZdVkzVnljaUE5SUdOMWNuSTdYRzVjZEZ4MFhIUndjbVYyVkdsdFpTQTlJR04xY25JN1hHNWNibHgwWEhSY2RHRnlaM05iTUYwZ1BTQmpjbVZoZEdWRVpXSjFaeTVqYjJWeVkyVW9ZWEpuYzFzd1hTazdYRzVjYmx4MFhIUmNkR2xtSUNoMGVYQmxiMllnWVhKbmMxc3dYU0FoUFQwZ0ozTjBjbWx1WnljcElIdGNibHgwWEhSY2RGeDBMeThnUVc1NWRHaHBibWNnWld4elpTQnNaWFFuY3lCcGJuTndaV04wSUhkcGRHZ2dKVTljYmx4MFhIUmNkRngwWVhKbmN5NTFibk5vYVdaMEtDY2xUeWNwTzF4dVhIUmNkRngwZlZ4dVhHNWNkRngwWEhRdkx5QkJjSEJzZVNCaGJua2dZR1p2Y20xaGRIUmxjbk5nSUhSeVlXNXpabTl5YldGMGFXOXVjMXh1WEhSY2RGeDBiR1YwSUdsdVpHVjRJRDBnTUR0Y2JseDBYSFJjZEdGeVozTmJNRjBnUFNCaGNtZHpXekJkTG5KbGNHeGhZMlVvTHlVb1cyRXRla0V0V2lWZEtTOW5MQ0FvYldGMFkyZ3NJR1p2Y20xaGRDa2dQVDRnZTF4dVhIUmNkRngwWEhRdkx5QkpaaUIzWlNCbGJtTnZkVzUwWlhJZ1lXNGdaWE5qWVhCbFpDQWxJSFJvWlc0Z1pHOXVKM1FnYVc1amNtVmhjMlVnZEdobElHRnljbUY1SUdsdVpHVjRYRzVjZEZ4MFhIUmNkR2xtSUNodFlYUmphQ0E5UFQwZ0p5VWxKeWtnZTF4dVhIUmNkRngwWEhSY2RISmxkSFZ5YmlBbkpTYzdYRzVjZEZ4MFhIUmNkSDFjYmx4MFhIUmNkRngwYVc1a1pYZ3JLenRjYmx4MFhIUmNkRngwWTI5dWMzUWdabTl5YldGMGRHVnlJRDBnWTNKbFlYUmxSR1ZpZFdjdVptOXliV0YwZEdWeWMxdG1iM0p0WVhSZE8xeHVYSFJjZEZ4MFhIUnBaaUFvZEhsd1pXOW1JR1p2Y20xaGRIUmxjaUE5UFQwZ0oyWjFibU4wYVc5dUp5a2dlMXh1WEhSY2RGeDBYSFJjZEdOdmJuTjBJSFpoYkNBOUlHRnlaM05iYVc1a1pYaGRPMXh1WEhSY2RGeDBYSFJjZEcxaGRHTm9JRDBnWm05eWJXRjBkR1Z5TG1OaGJHd29jMlZzWml3Z2RtRnNLVHRjYmx4dVhIUmNkRngwWEhSY2RDOHZJRTV2ZHlCM1pTQnVaV1ZrSUhSdklISmxiVzkyWlNCZ1lYSm5jMXRwYm1SbGVGMWdJSE5wYm1ObElHbDBKM01nYVc1c2FXNWxaQ0JwYmlCMGFHVWdZR1p2Y20xaGRHQmNibHgwWEhSY2RGeDBYSFJoY21kekxuTndiR2xqWlNocGJtUmxlQ3dnTVNrN1hHNWNkRngwWEhSY2RGeDBhVzVrWlhndExUdGNibHgwWEhSY2RGeDBmVnh1WEhSY2RGeDBYSFJ5WlhSMWNtNGdiV0YwWTJnN1hHNWNkRngwWEhSOUtUdGNibHh1WEhSY2RGeDBMeThnUVhCd2JIa2daVzUyTFhOd1pXTnBabWxqSUdadmNtMWhkSFJwYm1jZ0tHTnZiRzl5Y3l3Z1pYUmpMaWxjYmx4MFhIUmNkR055WldGMFpVUmxZblZuTG1admNtMWhkRUZ5WjNNdVkyRnNiQ2h6Wld4bUxDQmhjbWR6S1R0Y2JseHVYSFJjZEZ4MFkyOXVjM1FnYkc5blJtNGdQU0J6Wld4bUxteHZaeUI4ZkNCamNtVmhkR1ZFWldKMVp5NXNiMmM3WEc1Y2RGeDBYSFJzYjJkR2JpNWhjSEJzZVNoelpXeG1MQ0JoY21kektUdGNibHgwWEhSOVhHNWNibHgwWEhSa1pXSjFaeTV1WVcxbGMzQmhZMlVnUFNCdVlXMWxjM0JoWTJVN1hHNWNkRngwWkdWaWRXY3VkWE5sUTI5c2IzSnpJRDBnWTNKbFlYUmxSR1ZpZFdjdWRYTmxRMjlzYjNKektDazdYRzVjZEZ4MFpHVmlkV2N1WTI5c2IzSWdQU0JqY21WaGRHVkVaV0oxWnk1elpXeGxZM1JEYjJ4dmNpaHVZVzFsYzNCaFkyVXBPMXh1WEhSY2RHUmxZblZuTG1WNGRHVnVaQ0E5SUdWNGRHVnVaRHRjYmx4MFhIUmtaV0oxWnk1a1pYTjBjbTk1SUQwZ1kzSmxZWFJsUkdWaWRXY3VaR1Z6ZEhKdmVUc2dMeThnV0ZoWUlGUmxiWEJ2Y21GeWVTNGdWMmxzYkNCaVpTQnlaVzF2ZG1Wa0lHbHVJSFJvWlNCdVpYaDBJRzFoYW05eUlISmxiR1ZoYzJVdVhHNWNibHgwWEhSUFltcGxZM1F1WkdWbWFXNWxVSEp2Y0dWeWRIa29aR1ZpZFdjc0lDZGxibUZpYkdWa0p5d2dlMXh1WEhSY2RGeDBaVzUxYldWeVlXSnNaVG9nZEhKMVpTeGNibHgwWEhSY2RHTnZibVpwWjNWeVlXSnNaVG9nWm1Gc2MyVXNYRzVjZEZ4MFhIUm5aWFE2SUNncElEMCtJSHRjYmx4MFhIUmNkRngwYVdZZ0tHVnVZV0pzWlU5MlpYSnlhV1JsSUNFOVBTQnVkV3hzS1NCN1hHNWNkRngwWEhSY2RGeDBjbVYwZFhKdUlHVnVZV0pzWlU5MlpYSnlhV1JsTzF4dVhIUmNkRngwWEhSOVhHNWNkRngwWEhSY2RHbG1JQ2h1WVcxbGMzQmhZMlZ6UTJGamFHVWdJVDA5SUdOeVpXRjBaVVJsWW5WbkxtNWhiV1Z6Y0dGalpYTXBJSHRjYmx4MFhIUmNkRngwWEhSdVlXMWxjM0JoWTJWelEyRmphR1VnUFNCamNtVmhkR1ZFWldKMVp5NXVZVzFsYzNCaFkyVnpPMXh1WEhSY2RGeDBYSFJjZEdWdVlXSnNaV1JEWVdOb1pTQTlJR055WldGMFpVUmxZblZuTG1WdVlXSnNaV1FvYm1GdFpYTndZV05sS1R0Y2JseDBYSFJjZEZ4MGZWeHVYRzVjZEZ4MFhIUmNkSEpsZEhWeWJpQmxibUZpYkdWa1EyRmphR1U3WEc1Y2RGeDBYSFI5TEZ4dVhIUmNkRngwYzJWME9pQjJJRDArSUh0Y2JseDBYSFJjZEZ4MFpXNWhZbXhsVDNabGNuSnBaR1VnUFNCMk8xeHVYSFJjZEZ4MGZWeHVYSFJjZEgwcE8xeHVYRzVjZEZ4MEx5OGdSVzUyTFhOd1pXTnBabWxqSUdsdWFYUnBZV3hwZW1GMGFXOXVJR3h2WjJsaklHWnZjaUJrWldKMVp5QnBibk4wWVc1alpYTmNibHgwWEhScFppQW9kSGx3Wlc5bUlHTnlaV0YwWlVSbFluVm5MbWx1YVhRZ1BUMDlJQ2RtZFc1amRHbHZiaWNwSUh0Y2JseDBYSFJjZEdOeVpXRjBaVVJsWW5WbkxtbHVhWFFvWkdWaWRXY3BPMXh1WEhSY2RIMWNibHh1WEhSY2RISmxkSFZ5YmlCa1pXSjFaenRjYmx4MGZWeHVYRzVjZEdaMWJtTjBhVzl1SUdWNGRHVnVaQ2h1WVcxbGMzQmhZMlVzSUdSbGJHbHRhWFJsY2lrZ2UxeHVYSFJjZEdOdmJuTjBJRzVsZDBSbFluVm5JRDBnWTNKbFlYUmxSR1ZpZFdjb2RHaHBjeTV1WVcxbGMzQmhZMlVnS3lBb2RIbHdaVzltSUdSbGJHbHRhWFJsY2lBOVBUMGdKM1Z1WkdWbWFXNWxaQ2NnUHlBbk9pY2dPaUJrWld4cGJXbDBaWElwSUNzZ2JtRnRaWE53WVdObEtUdGNibHgwWEhSdVpYZEVaV0oxWnk1c2IyY2dQU0IwYUdsekxteHZaenRjYmx4MFhIUnlaWFIxY200Z2JtVjNSR1ZpZFdjN1hHNWNkSDFjYmx4dVhIUXZLaXBjYmx4MEtpQkZibUZpYkdWeklHRWdaR1ZpZFdjZ2JXOWtaU0JpZVNCdVlXMWxjM0JoWTJWekxpQlVhR2x6SUdOaGJpQnBibU5zZFdSbElHMXZaR1Z6WEc1Y2RDb2djMlZ3WVhKaGRHVmtJR0o1SUdFZ1kyOXNiMjRnWVc1a0lIZHBiR1JqWVhKa2N5NWNibHgwS2x4dVhIUXFJRUJ3WVhKaGJTQjdVM1J5YVc1bmZTQnVZVzFsYzNCaFkyVnpYRzVjZENvZ1FHRndhU0J3ZFdKc2FXTmNibHgwS2k5Y2JseDBablZ1WTNScGIyNGdaVzVoWW14bEtHNWhiV1Z6Y0dGalpYTXBJSHRjYmx4MFhIUmpjbVZoZEdWRVpXSjFaeTV6WVhabEtHNWhiV1Z6Y0dGalpYTXBPMXh1WEhSY2RHTnlaV0YwWlVSbFluVm5MbTVoYldWemNHRmpaWE1nUFNCdVlXMWxjM0JoWTJWek8xeHVYRzVjZEZ4MFkzSmxZWFJsUkdWaWRXY3VibUZ0WlhNZ1BTQmJYVHRjYmx4MFhIUmpjbVZoZEdWRVpXSjFaeTV6YTJsd2N5QTlJRnRkTzF4dVhHNWNkRngwYkdWMElHazdYRzVjZEZ4MFkyOXVjM1FnYzNCc2FYUWdQU0FvZEhsd1pXOW1JRzVoYldWemNHRmpaWE1nUFQwOUlDZHpkSEpwYm1jbklEOGdibUZ0WlhOd1lXTmxjeUE2SUNjbktTNXpjR3hwZENndlcxeGNjeXhkS3k4cE8xeHVYSFJjZEdOdmJuTjBJR3hsYmlBOUlITndiR2wwTG14bGJtZDBhRHRjYmx4dVhIUmNkR1p2Y2lBb2FTQTlJREE3SUdrZ1BDQnNaVzQ3SUdrckt5a2dlMXh1WEhSY2RGeDBhV1lnS0NGemNHeHBkRnRwWFNrZ2UxeHVYSFJjZEZ4MFhIUXZMeUJwWjI1dmNtVWdaVzF3ZEhrZ2MzUnlhVzVuYzF4dVhIUmNkRngwWEhSamIyNTBhVzUxWlR0Y2JseDBYSFJjZEgxY2JseHVYSFJjZEZ4MGJtRnRaWE53WVdObGN5QTlJSE53YkdsMFcybGRMbkpsY0d4aFkyVW9MMXhjS2k5bkxDQW5MaW8vSnlrN1hHNWNibHgwWEhSY2RHbG1JQ2h1WVcxbGMzQmhZMlZ6V3pCZElEMDlQU0FuTFNjcElIdGNibHgwWEhSY2RGeDBZM0psWVhSbFJHVmlkV2N1YzJ0cGNITXVjSFZ6YUNodVpYY2dVbVZuUlhod0tDZGVKeUFySUc1aGJXVnpjR0ZqWlhNdWMyeHBZMlVvTVNrZ0t5QW5KQ2NwS1R0Y2JseDBYSFJjZEgwZ1pXeHpaU0I3WEc1Y2RGeDBYSFJjZEdOeVpXRjBaVVJsWW5WbkxtNWhiV1Z6TG5CMWMyZ29ibVYzSUZKbFowVjRjQ2duWGljZ0t5QnVZVzFsYzNCaFkyVnpJQ3NnSnlRbktTazdYRzVjZEZ4MFhIUjlYRzVjZEZ4MGZWeHVYSFI5WEc1Y2JseDBMeW9xWEc1Y2RDb2dSR2x6WVdKc1pTQmtaV0oxWnlCdmRYUndkWFF1WEc1Y2RDcGNibHgwS2lCQWNtVjBkWEp1SUh0VGRISnBibWQ5SUc1aGJXVnpjR0ZqWlhOY2JseDBLaUJBWVhCcElIQjFZbXhwWTF4dVhIUXFMMXh1WEhSbWRXNWpkR2x2YmlCa2FYTmhZbXhsS0NrZ2UxeHVYSFJjZEdOdmJuTjBJRzVoYldWemNHRmpaWE1nUFNCYlhHNWNkRngwWEhRdUxpNWpjbVZoZEdWRVpXSjFaeTV1WVcxbGN5NXRZWEFvZEc5T1lXMWxjM0JoWTJVcExGeHVYSFJjZEZ4MExpNHVZM0psWVhSbFJHVmlkV2N1YzJ0cGNITXViV0Z3S0hSdlRtRnRaWE53WVdObEtTNXRZWEFvYm1GdFpYTndZV05sSUQwK0lDY3RKeUFySUc1aGJXVnpjR0ZqWlNsY2JseDBYSFJkTG1wdmFXNG9KeXduS1R0Y2JseDBYSFJqY21WaGRHVkVaV0oxWnk1bGJtRmliR1VvSnljcE8xeHVYSFJjZEhKbGRIVnliaUJ1WVcxbGMzQmhZMlZ6TzF4dVhIUjlYRzVjYmx4MEx5b3FYRzVjZENvZ1VtVjBkWEp1Y3lCMGNuVmxJR2xtSUhSb1pTQm5hWFpsYmlCdGIyUmxJRzVoYldVZ2FYTWdaVzVoWW14bFpDd2dabUZzYzJVZ2IzUm9aWEozYVhObExseHVYSFFxWEc1Y2RDb2dRSEJoY21GdElIdFRkSEpwYm1kOUlHNWhiV1ZjYmx4MEtpQkFjbVYwZFhKdUlIdENiMjlzWldGdWZWeHVYSFFxSUVCaGNHa2djSFZpYkdsalhHNWNkQ292WEc1Y2RHWjFibU4wYVc5dUlHVnVZV0pzWldRb2JtRnRaU2tnZTF4dVhIUmNkR2xtSUNodVlXMWxXMjVoYldVdWJHVnVaM1JvSUMwZ01WMGdQVDA5SUNjcUp5a2dlMXh1WEhSY2RGeDBjbVYwZFhKdUlIUnlkV1U3WEc1Y2RGeDBmVnh1WEc1Y2RGeDBiR1YwSUdrN1hHNWNkRngwYkdWMElHeGxianRjYmx4dVhIUmNkR1p2Y2lBb2FTQTlJREFzSUd4bGJpQTlJR055WldGMFpVUmxZblZuTG5OcmFYQnpMbXhsYm1kMGFEc2dhU0E4SUd4bGJqc2dhU3NyS1NCN1hHNWNkRngwWEhScFppQW9ZM0psWVhSbFJHVmlkV2N1YzJ0cGNITmJhVjB1ZEdWemRDaHVZVzFsS1NrZ2UxeHVYSFJjZEZ4MFhIUnlaWFIxY200Z1ptRnNjMlU3WEc1Y2RGeDBYSFI5WEc1Y2RGeDBmVnh1WEc1Y2RGeDBabTl5SUNocElEMGdNQ3dnYkdWdUlEMGdZM0psWVhSbFJHVmlkV2N1Ym1GdFpYTXViR1Z1WjNSb095QnBJRHdnYkdWdU95QnBLeXNwSUh0Y2JseDBYSFJjZEdsbUlDaGpjbVZoZEdWRVpXSjFaeTV1WVcxbGMxdHBYUzUwWlhOMEtHNWhiV1VwS1NCN1hHNWNkRngwWEhSY2RISmxkSFZ5YmlCMGNuVmxPMXh1WEhSY2RGeDBmVnh1WEhSY2RIMWNibHh1WEhSY2RISmxkSFZ5YmlCbVlXeHpaVHRjYmx4MGZWeHVYRzVjZEM4cUtseHVYSFFxSUVOdmJuWmxjblFnY21WblpYaHdJSFJ2SUc1aGJXVnpjR0ZqWlZ4dVhIUXFYRzVjZENvZ1FIQmhjbUZ0SUh0U1pXZEZlSEI5SUhKbFozaGxjRnh1WEhRcUlFQnlaWFIxY200Z2UxTjBjbWx1WjMwZ2JtRnRaWE53WVdObFhHNWNkQ29nUUdGd2FTQndjbWwyWVhSbFhHNWNkQ292WEc1Y2RHWjFibU4wYVc5dUlIUnZUbUZ0WlhOd1lXTmxLSEpsWjJWNGNDa2dlMXh1WEhSY2RISmxkSFZ5YmlCeVpXZGxlSEF1ZEc5VGRISnBibWNvS1Z4dVhIUmNkRngwTG5OMVluTjBjbWx1WnlneUxDQnlaV2RsZUhBdWRHOVRkSEpwYm1jb0tTNXNaVzVuZEdnZ0xTQXlLVnh1WEhSY2RGeDBMbkpsY0d4aFkyVW9MMXhjTGx4Y0tseGNQeVF2TENBbktpY3BPMXh1WEhSOVhHNWNibHgwTHlvcVhHNWNkQ29nUTI5bGNtTmxJR0IyWVd4Z0xseHVYSFFxWEc1Y2RDb2dRSEJoY21GdElIdE5hWGhsWkgwZ2RtRnNYRzVjZENvZ1FISmxkSFZ5YmlCN1RXbDRaV1I5WEc1Y2RDb2dRR0Z3YVNCd2NtbDJZWFJsWEc1Y2RDb3ZYRzVjZEdaMWJtTjBhVzl1SUdOdlpYSmpaU2gyWVd3cElIdGNibHgwWEhScFppQW9kbUZzSUdsdWMzUmhibU5sYjJZZ1JYSnliM0lwSUh0Y2JseDBYSFJjZEhKbGRIVnliaUIyWVd3dWMzUmhZMnNnZkh3Z2RtRnNMbTFsYzNOaFoyVTdYRzVjZEZ4MGZWeHVYSFJjZEhKbGRIVnliaUIyWVd3N1hHNWNkSDFjYmx4dVhIUXZLaXBjYmx4MEtpQllXRmdnUkU4Z1RrOVVJRlZUUlM0Z1ZHaHBjeUJwY3lCaElIUmxiWEJ2Y21GeWVTQnpkSFZpSUdaMWJtTjBhVzl1TGx4dVhIUXFJRmhZV0NCSmRDQlhTVXhNSUdKbElISmxiVzkyWldRZ2FXNGdkR2hsSUc1bGVIUWdiV0ZxYjNJZ2NtVnNaV0Z6WlM1Y2JseDBLaTljYmx4MFpuVnVZM1JwYjI0Z1pHVnpkSEp2ZVNncElIdGNibHgwWEhSamIyNXpiMnhsTG5kaGNtNG9KMGx1YzNSaGJtTmxJRzFsZEdodlpDQmdaR1ZpZFdjdVpHVnpkSEp2ZVNncFlDQnBjeUJrWlhCeVpXTmhkR1ZrSUdGdVpDQnVieUJzYjI1blpYSWdaRzlsY3lCaGJubDBhR2x1Wnk0Z1NYUWdkMmxzYkNCaVpTQnlaVzF2ZG1Wa0lHbHVJSFJvWlNCdVpYaDBJRzFoYW05eUlIWmxjbk5wYjI0Z2IyWWdZR1JsWW5WbllDNG5LVHRjYmx4MGZWeHVYRzVjZEdOeVpXRjBaVVJsWW5WbkxtVnVZV0pzWlNoamNtVmhkR1ZFWldKMVp5NXNiMkZrS0NrcE8xeHVYRzVjZEhKbGRIVnliaUJqY21WaGRHVkVaV0oxWnp0Y2JuMWNibHh1Ylc5a2RXeGxMbVY0Y0c5eWRITWdQU0J6WlhSMWNEdGNiaUlzSWx3aWRYTmxJSE4wY21samRGd2lPMXh1VDJKcVpXTjBMbVJsWm1sdVpWQnliM0JsY25SNUtHVjRjRzl5ZEhNc0lGd2lYMTlsYzAxdlpIVnNaVndpTENCN0lIWmhiSFZsT2lCMGNuVmxJSDBwTzF4dVpYaHdiM0owY3k1RlVsSlBVbDlRUVVOTFJWUWdQU0JsZUhCdmNuUnpMbEJCUTB0RlZGOVVXVkJGVTE5U1JWWkZVbE5GSUQwZ1pYaHdiM0owY3k1UVFVTkxSVlJmVkZsUVJWTWdQU0IyYjJsa0lEQTdYRzVqYjI1emRDQlFRVU5MUlZSZlZGbFFSVk1nUFNCUFltcGxZM1F1WTNKbFlYUmxLRzUxYkd3cE95QXZMeUJ1YnlCTllYQWdQU0J1YnlCd2IyeDVabWxzYkZ4dVpYaHdiM0owY3k1UVFVTkxSVlJmVkZsUVJWTWdQU0JRUVVOTFJWUmZWRmxRUlZNN1hHNVFRVU5MUlZSZlZGbFFSVk5iWENKdmNHVnVYQ0pkSUQwZ1hDSXdYQ0k3WEc1UVFVTkxSVlJmVkZsUVJWTmJYQ0pqYkc5elpWd2lYU0E5SUZ3aU1Wd2lPMXh1VUVGRFMwVlVYMVJaVUVWVFcxd2ljR2x1WjF3aVhTQTlJRndpTWx3aU8xeHVVRUZEUzBWVVgxUlpVRVZUVzF3aWNHOXVaMXdpWFNBOUlGd2lNMXdpTzF4dVVFRkRTMFZVWDFSWlVFVlRXMXdpYldWemMyRm5aVndpWFNBOUlGd2lORndpTzF4dVVFRkRTMFZVWDFSWlVFVlRXMXdpZFhCbmNtRmtaVndpWFNBOUlGd2lOVndpTzF4dVVFRkRTMFZVWDFSWlVFVlRXMXdpYm05dmNGd2lYU0E5SUZ3aU5sd2lPMXh1WTI5dWMzUWdVRUZEUzBWVVgxUlpVRVZUWDFKRlZrVlNVMFVnUFNCUFltcGxZM1F1WTNKbFlYUmxLRzUxYkd3cE8xeHVaWGh3YjNKMGN5NVFRVU5MUlZSZlZGbFFSVk5mVWtWV1JWSlRSU0E5SUZCQlEwdEZWRjlVV1ZCRlUxOVNSVlpGVWxORk8xeHVUMkpxWldOMExtdGxlWE1vVUVGRFMwVlVYMVJaVUVWVEtTNW1iM0pGWVdOb0tDaHJaWGtwSUQwK0lIdGNiaUFnSUNCUVFVTkxSVlJmVkZsUVJWTmZVa1ZXUlZKVFJWdFFRVU5MUlZSZlZGbFFSVk5iYTJWNVhWMGdQU0JyWlhrN1hHNTlLVHRjYm1OdmJuTjBJRVZTVWs5U1gxQkJRMHRGVkNBOUlIc2dkSGx3WlRvZ1hDSmxjbkp2Y2x3aUxDQmtZWFJoT2lCY0luQmhjbk5sY2lCbGNuSnZjbHdpSUgwN1hHNWxlSEJ2Y25SekxrVlNVazlTWDFCQlEwdEZWQ0E5SUVWU1VrOVNYMUJCUTB0RlZEdGNiaUlzSWx3aWRYTmxJSE4wY21samRGd2lPMXh1VDJKcVpXTjBMbVJsWm1sdVpWQnliM0JsY25SNUtHVjRjRzl5ZEhNc0lGd2lYMTlsYzAxdlpIVnNaVndpTENCN0lIWmhiSFZsT2lCMGNuVmxJSDBwTzF4dVpYaHdiM0owY3k1a1pXTnZaR1ZRWVdOclpYUWdQU0IyYjJsa0lEQTdYRzVqYjI1emRDQmpiMjF0YjI1elgycHpYekVnUFNCeVpYRjFhWEpsS0Z3aUxpOWpiMjF0YjI1ekxtcHpYQ0lwTzF4dVkyOXVjM1FnWW1GelpUWTBYMkZ5Y21GNVluVm1abVZ5WDJwelh6RWdQU0J5WlhGMWFYSmxLRndpTGk5amIyNTBjbWxpTDJKaGMyVTJOQzFoY25KaGVXSjFabVpsY2k1cWMxd2lLVHRjYm1OdmJuTjBJSGRwZEdoT1lYUnBkbVZCY25KaGVVSjFabVpsY2lBOUlIUjVjR1Z2WmlCQmNuSmhlVUoxWm1abGNpQTlQVDBnWENKbWRXNWpkR2x2Ymx3aU8xeHVZMjl1YzNRZ1pHVmpiMlJsVUdGamEyVjBJRDBnS0dWdVkyOWtaV1JRWVdOclpYUXNJR0pwYm1GeWVWUjVjR1VwSUQwK0lIdGNiaUFnSUNCcFppQW9kSGx3Wlc5bUlHVnVZMjlrWldSUVlXTnJaWFFnSVQwOUlGd2ljM1J5YVc1blhDSXBJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIUjVjR1U2SUZ3aWJXVnpjMkZuWlZ3aUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnWkdGMFlUb2diV0Z3UW1sdVlYSjVLR1Z1WTI5a1pXUlFZV05yWlhRc0lHSnBibUZ5ZVZSNWNHVXBMRnh1SUNBZ0lDQWdJQ0I5TzF4dUlDQWdJSDFjYmlBZ0lDQmpiMjV6ZENCMGVYQmxJRDBnWlc1amIyUmxaRkJoWTJ0bGRDNWphR0Z5UVhRb01DazdYRzRnSUNBZ2FXWWdLSFI1Y0dVZ1BUMDlJRndpWWx3aUtTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCMGVYQmxPaUJjSW0xbGMzTmhaMlZjSWl4Y2JpQWdJQ0FnSUNBZ0lDQWdJR1JoZEdFNklHUmxZMjlrWlVKaGMyVTJORkJoWTJ0bGRDaGxibU52WkdWa1VHRmphMlYwTG5OMVluTjBjbWx1WnlneEtTd2dZbWx1WVhKNVZIbHdaU2tzWEc0Z0lDQWdJQ0FnSUgwN1hHNGdJQ0FnZlZ4dUlDQWdJR052Ym5OMElIQmhZMnRsZEZSNWNHVWdQU0JqYjIxdGIyNXpYMnB6WHpFdVVFRkRTMFZVWDFSWlVFVlRYMUpGVmtWU1UwVmJkSGx3WlYwN1hHNGdJQ0FnYVdZZ0tDRndZV05yWlhSVWVYQmxLU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJqYjIxdGIyNXpYMnB6WHpFdVJWSlNUMUpmVUVGRFMwVlVPMXh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnWlc1amIyUmxaRkJoWTJ0bGRDNXNaVzVuZEdnZ1BpQXhYRzRnSUNBZ0lDQWdJRDhnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdkSGx3WlRvZ1kyOXRiVzl1YzE5cWMxOHhMbEJCUTB0RlZGOVVXVkJGVTE5U1JWWkZVbE5GVzNSNWNHVmRMRnh1SUNBZ0lDQWdJQ0FnSUNBZ1pHRjBZVG9nWlc1amIyUmxaRkJoWTJ0bGRDNXpkV0p6ZEhKcGJtY29NU2tzWEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ09pQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCMGVYQmxPaUJqYjIxdGIyNXpYMnB6WHpFdVVFRkRTMFZVWDFSWlVFVlRYMUpGVmtWU1UwVmJkSGx3WlYwc1hHNGdJQ0FnSUNBZ0lIMDdYRzU5TzF4dVpYaHdiM0owY3k1a1pXTnZaR1ZRWVdOclpYUWdQU0JrWldOdlpHVlFZV05yWlhRN1hHNWpiMjV6ZENCa1pXTnZaR1ZDWVhObE5qUlFZV05yWlhRZ1BTQW9aR0YwWVN3Z1ltbHVZWEo1Vkhsd1pTa2dQVDRnZTF4dUlDQWdJR2xtSUNoM2FYUm9UbUYwYVhabFFYSnlZWGxDZFdabVpYSXBJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdaR1ZqYjJSbFpDQTlJQ2d3TENCaVlYTmxOalJmWVhKeVlYbGlkV1ptWlhKZmFuTmZNUzVrWldOdlpHVXBLR1JoZEdFcE8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2JXRndRbWx1WVhKNUtHUmxZMjlrWldRc0lHSnBibUZ5ZVZSNWNHVXBPMXh1SUNBZ0lIMWNiaUFnSUNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSHNnWW1GelpUWTBPaUIwY25WbExDQmtZWFJoSUgwN0lDOHZJR1poYkd4aVlXTnJJR1p2Y2lCdmJHUWdZbkp2ZDNObGNuTmNiaUFnSUNCOVhHNTlPMXh1WTI5dWMzUWdiV0Z3UW1sdVlYSjVJRDBnS0dSaGRHRXNJR0pwYm1GeWVWUjVjR1VwSUQwK0lIdGNiaUFnSUNCemQybDBZMmdnS0dKcGJtRnllVlI1Y0dVcElIdGNiaUFnSUNBZ0lDQWdZMkZ6WlNCY0ltSnNiMkpjSWpwY2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoa1lYUmhJR2x1YzNSaGJtTmxiMllnUW14dllpa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQzh2SUdaeWIyMGdWMlZpVTI5amEyVjBJQ3NnWW1sdVlYSjVWSGx3WlNCY0ltSnNiMkpjSWx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJrWVhSaE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0x5OGdabkp2YlNCSVZGUlFJR3h2Ym1jdGNHOXNiR2x1WnlCdmNpQlhaV0pVY21GdWMzQnZjblJjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdibVYzSUVKc2IySW9XMlJoZEdGZEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ1kyRnpaU0JjSW1GeWNtRjVZblZtWm1WeVhDSTZYRzRnSUNBZ0lDQWdJR1JsWm1GMWJIUTZYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9aR0YwWVNCcGJuTjBZVzVqWlc5bUlFRnljbUY1UW5WbVptVnlLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z1puSnZiU0JJVkZSUUlHeHZibWN0Y0c5c2JHbHVaeUFvWW1GelpUWTBLU0J2Y2lCWFpXSlRiMk5yWlhRZ0t5QmlhVzVoY25sVWVYQmxJRndpWVhKeVlYbGlkV1ptWlhKY0lseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCa1lYUmhPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdMeThnWm5KdmJTQlhaV0pVY21GdWMzQnZjblFnS0ZWcGJuUTRRWEp5WVhrcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdSaGRHRXVZblZtWm1WeU8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJSDFjYm4wN1hHNGlMQ0pjSW5WelpTQnpkSEpwWTNSY0lqdGNiazlpYW1WamRDNWtaV1pwYm1WUWNtOXdaWEowZVNobGVIQnZjblJ6TENCY0lsOWZaWE5OYjJSMWJHVmNJaXdnZXlCMllXeDFaVG9nZEhKMVpTQjlLVHRjYm1WNGNHOXlkSE11Wlc1amIyUmxVR0ZqYTJWMElEMGdkbTlwWkNBd08xeHVaWGh3YjNKMGN5NWxibU52WkdWUVlXTnJaWFJVYjBKcGJtRnllU0E5SUdWdVkyOWtaVkJoWTJ0bGRGUnZRbWx1WVhKNU8xeHVZMjl1YzNRZ1kyOXRiVzl1YzE5cWMxOHhJRDBnY21WeGRXbHlaU2hjSWk0dlkyOXRiVzl1Y3k1cWMxd2lLVHRjYm1OdmJuTjBJSGRwZEdoT1lYUnBkbVZDYkc5aUlEMGdkSGx3Wlc5bUlFSnNiMklnUFQwOUlGd2lablZ1WTNScGIyNWNJaUI4ZkZ4dUlDQWdJQ2gwZVhCbGIyWWdRbXh2WWlBaFBUMGdYQ0oxYm1SbFptbHVaV1JjSWlBbUpseHVJQ0FnSUNBZ0lDQlBZbXBsWTNRdWNISnZkRzkwZVhCbExuUnZVM1J5YVc1bkxtTmhiR3dvUW14dllpa2dQVDA5SUZ3aVcyOWlhbVZqZENCQ2JHOWlRMjl1YzNSeWRXTjBiM0pkWENJcE8xeHVZMjl1YzNRZ2QybDBhRTVoZEdsMlpVRnljbUY1UW5WbVptVnlJRDBnZEhsd1pXOW1JRUZ5Y21GNVFuVm1abVZ5SUQwOVBTQmNJbVoxYm1OMGFXOXVYQ0k3WEc0dkx5QkJjbkpoZVVKMVptWmxjaTVwYzFacFpYY2diV1YwYUc5a0lHbHpJRzV2ZENCa1pXWnBibVZrSUdsdUlFbEZNVEJjYm1OdmJuTjBJR2x6Vm1sbGR5QTlJQ2h2WW1vcElEMCtJSHRjYmlBZ0lDQnlaWFIxY200Z2RIbHdaVzltSUVGeWNtRjVRblZtWm1WeUxtbHpWbWxsZHlBOVBUMGdYQ0ptZFc1amRHbHZibHdpWEc0Z0lDQWdJQ0FnSUQ4Z1FYSnlZWGxDZFdabVpYSXVhWE5XYVdWM0tHOWlhaWxjYmlBZ0lDQWdJQ0FnT2lCdlltb2dKaVlnYjJKcUxtSjFabVpsY2lCcGJuTjBZVzVqWlc5bUlFRnljbUY1UW5WbVptVnlPMXh1ZlR0Y2JtTnZibk4wSUdWdVkyOWtaVkJoWTJ0bGRDQTlJQ2g3SUhSNWNHVXNJR1JoZEdFZ2ZTd2djM1Z3Y0c5eWRITkNhVzVoY25rc0lHTmhiR3hpWVdOcktTQTlQaUI3WEc0Z0lDQWdhV1lnS0hkcGRHaE9ZWFJwZG1WQ2JHOWlJQ1ltSUdSaGRHRWdhVzV6ZEdGdVkyVnZaaUJDYkc5aUtTQjdYRzRnSUNBZ0lDQWdJR2xtSUNoemRYQndiM0owYzBKcGJtRnllU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHTmhiR3hpWVdOcktHUmhkR0VwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHVnNjMlVnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHVnVZMjlrWlVKc2IySkJjMEpoYzJVMk5DaGtZWFJoTENCallXeHNZbUZqYXlrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJQ0FnWld4elpTQnBaaUFvZDJsMGFFNWhkR2wyWlVGeWNtRjVRblZtWm1WeUlDWW1YRzRnSUNBZ0lDQWdJQ2hrWVhSaElHbHVjM1JoYm1ObGIyWWdRWEp5WVhsQ2RXWm1aWElnZkh3Z2FYTldhV1YzS0dSaGRHRXBLU2tnZTF4dUlDQWdJQ0FnSUNCcFppQW9jM1Z3Y0c5eWRITkNhVzVoY25rcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJqWVd4c1ltRmpheWhrWVhSaEtUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJsYm1OdlpHVkNiRzlpUVhOQ1lYTmxOalFvYm1WM0lFSnNiMklvVzJSaGRHRmRLU3dnWTJGc2JHSmhZMnNwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQWdJQzh2SUhCc1lXbHVJSE4wY21sdVoxeHVJQ0FnSUhKbGRIVnliaUJqWVd4c1ltRmpheWhqYjIxdGIyNXpYMnB6WHpFdVVFRkRTMFZVWDFSWlVFVlRXM1I1Y0dWZElDc2dLR1JoZEdFZ2ZId2dYQ0pjSWlrcE8xeHVmVHRjYm1WNGNHOXlkSE11Wlc1amIyUmxVR0ZqYTJWMElEMGdaVzVqYjJSbFVHRmphMlYwTzF4dVkyOXVjM1FnWlc1amIyUmxRbXh2WWtGelFtRnpaVFkwSUQwZ0tHUmhkR0VzSUdOaGJHeGlZV05yS1NBOVBpQjdYRzRnSUNBZ1kyOXVjM1FnWm1sc1pWSmxZV1JsY2lBOUlHNWxkeUJHYVd4bFVtVmhaR1Z5S0NrN1hHNGdJQ0FnWm1sc1pWSmxZV1JsY2k1dmJteHZZV1FnUFNCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElHTnZiblJsYm5RZ1BTQm1hV3hsVW1WaFpHVnlMbkpsYzNWc2RDNXpjR3hwZENoY0lpeGNJaWxiTVYwN1hHNGdJQ0FnSUNBZ0lHTmhiR3hpWVdOcktGd2lZbHdpSUNzZ0tHTnZiblJsYm5RZ2ZId2dYQ0pjSWlrcE8xeHVJQ0FnSUgwN1hHNGdJQ0FnY21WMGRYSnVJR1pwYkdWU1pXRmtaWEl1Y21WaFpFRnpSR0YwWVZWU1RDaGtZWFJoS1R0Y2JuMDdYRzVtZFc1amRHbHZiaUIwYjBGeWNtRjVLR1JoZEdFcElIdGNiaUFnSUNCcFppQW9aR0YwWVNCcGJuTjBZVzVqWlc5bUlGVnBiblE0UVhKeVlYa3BJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJR1JoZEdFN1hHNGdJQ0FnZlZ4dUlDQWdJR1ZzYzJVZ2FXWWdLR1JoZEdFZ2FXNXpkR0Z1WTJWdlppQkJjbkpoZVVKMVptWmxjaWtnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnYm1WM0lGVnBiblE0UVhKeVlYa29aR0YwWVNrN1hHNGdJQ0FnZlZ4dUlDQWdJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2JtVjNJRlZwYm5RNFFYSnlZWGtvWkdGMFlTNWlkV1ptWlhJc0lHUmhkR0V1WW5sMFpVOW1abk5sZEN3Z1pHRjBZUzVpZVhSbFRHVnVaM1JvS1R0Y2JpQWdJQ0I5WEc1OVhHNXNaWFFnVkVWWVZGOUZUa05QUkVWU08xeHVablZ1WTNScGIyNGdaVzVqYjJSbFVHRmphMlYwVkc5Q2FXNWhjbmtvY0dGamEyVjBMQ0JqWVd4c1ltRmpheWtnZTF4dUlDQWdJR2xtSUNoM2FYUm9UbUYwYVhabFFteHZZaUFtSmlCd1lXTnJaWFF1WkdGMFlTQnBibk4wWVc1alpXOW1JRUpzYjJJcElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIQmhZMnRsZEM1a1lYUmhMbUZ5Y21GNVFuVm1abVZ5S0NrdWRHaGxiaWgwYjBGeWNtRjVLUzUwYUdWdUtHTmhiR3hpWVdOcktUdGNiaUFnSUNCOVhHNGdJQ0FnWld4elpTQnBaaUFvZDJsMGFFNWhkR2wyWlVGeWNtRjVRblZtWm1WeUlDWW1YRzRnSUNBZ0lDQWdJQ2h3WVdOclpYUXVaR0YwWVNCcGJuTjBZVzVqWlc5bUlFRnljbUY1UW5WbVptVnlJSHg4SUdselZtbGxkeWh3WVdOclpYUXVaR0YwWVNrcEtTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmpZV3hzWW1GamF5aDBiMEZ5Y21GNUtIQmhZMnRsZEM1a1lYUmhLU2s3WEc0Z0lDQWdmVnh1SUNBZ0lHVnVZMjlrWlZCaFkydGxkQ2h3WVdOclpYUXNJR1poYkhObExDQW9aVzVqYjJSbFpDa2dQVDRnZTF4dUlDQWdJQ0FnSUNCcFppQW9JVlJGV0ZSZlJVNURUMFJGVWlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnVkVWWVZGOUZUa05QUkVWU0lEMGdibVYzSUZSbGVIUkZibU52WkdWeUtDazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnWTJGc2JHSmhZMnNvVkVWWVZGOUZUa05QUkVWU0xtVnVZMjlrWlNobGJtTnZaR1ZrS1NrN1hHNGdJQ0FnZlNrN1hHNTlYRzRpTENKY0luVnpaU0J6ZEhKcFkzUmNJanRjYms5aWFtVmpkQzVrWldacGJtVlFjbTl3WlhKMGVTaGxlSEJ2Y25SekxDQmNJbDlmWlhOTmIyUjFiR1ZjSWl3Z2V5QjJZV3gxWlRvZ2RISjFaU0I5S1R0Y2JtVjRjRzl5ZEhNdVpHVmpiMlJsSUQwZ1pYaHdiM0owY3k1bGJtTnZaR1VnUFNCMmIybGtJREE3WEc0dkx5QnBiWEJ2Y25SbFpDQm1jbTl0SUdoMGRIQnpPaTh2WjJsMGFIVmlMbU52YlM5emIyTnJaWFJwYnk5aVlYTmxOalF0WVhKeVlYbGlkV1ptWlhKY2JtTnZibk4wSUdOb1lYSnpJRDBnSjBGQ1EwUkZSa2RJU1VwTFRFMU9UMUJSVWxOVVZWWlhXRmxhWVdKalpHVm1aMmhwYW10c2JXNXZjSEZ5YzNSMWRuZDRlWG93TVRJek5EVTJOemc1S3k4bk8xeHVMeThnVlhObElHRWdiRzl2YTNWd0lIUmhZbXhsSUhSdklHWnBibVFnZEdobElHbHVaR1Y0TGx4dVkyOXVjM1FnYkc5dmEzVndJRDBnZEhsd1pXOW1JRlZwYm5RNFFYSnlZWGtnUFQwOUlDZDFibVJsWm1sdVpXUW5JRDhnVzEwZ09pQnVaWGNnVldsdWREaEJjbkpoZVNneU5UWXBPMXh1Wm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCamFHRnljeTVzWlc1bmRHZzdJR2tyS3lrZ2UxeHVJQ0FnSUd4dmIydDFjRnRqYUdGeWN5NWphR0Z5UTI5a1pVRjBLR2twWFNBOUlHazdYRzU5WEc1amIyNXpkQ0JsYm1OdlpHVWdQU0FvWVhKeVlYbGlkV1ptWlhJcElEMCtJSHRjYmlBZ0lDQnNaWFFnWW5sMFpYTWdQU0J1WlhjZ1ZXbHVkRGhCY25KaGVTaGhjbkpoZVdKMVptWmxjaWtzSUdrc0lHeGxiaUE5SUdKNWRHVnpMbXhsYm1kMGFDd2dZbUZ6WlRZMElEMGdKeWM3WEc0Z0lDQWdabTl5SUNocElEMGdNRHNnYVNBOElHeGxianNnYVNBclBTQXpLU0I3WEc0Z0lDQWdJQ0FnSUdKaGMyVTJOQ0FyUFNCamFHRnljMXRpZVhSbGMxdHBYU0ErUGlBeVhUdGNiaUFnSUNBZ0lDQWdZbUZ6WlRZMElDczlJR05vWVhKeld5Z29ZbmwwWlhOYmFWMGdKaUF6S1NBOFBDQTBLU0I4SUNoaWVYUmxjMXRwSUNzZ01WMGdQajRnTkNsZE8xeHVJQ0FnSUNBZ0lDQmlZWE5sTmpRZ0t6MGdZMmhoY25OYktDaGllWFJsYzF0cElDc2dNVjBnSmlBeE5Ta2dQRHdnTWlrZ2ZDQW9ZbmwwWlhOYmFTQXJJREpkSUQ0K0lEWXBYVHRjYmlBZ0lDQWdJQ0FnWW1GelpUWTBJQ3M5SUdOb1lYSnpXMko1ZEdWelcya2dLeUF5WFNBbUlEWXpYVHRjYmlBZ0lDQjlYRzRnSUNBZ2FXWWdLR3hsYmlBbElETWdQVDA5SURJcElIdGNiaUFnSUNBZ0lDQWdZbUZ6WlRZMElEMGdZbUZ6WlRZMExuTjFZbk4wY21sdVp5Z3dMQ0JpWVhObE5qUXViR1Z1WjNSb0lDMGdNU2tnS3lBblBTYzdYRzRnSUNBZ2ZWeHVJQ0FnSUdWc2MyVWdhV1lnS0d4bGJpQWxJRE1nUFQwOUlERXBJSHRjYmlBZ0lDQWdJQ0FnWW1GelpUWTBJRDBnWW1GelpUWTBMbk4xWW5OMGNtbHVaeWd3TENCaVlYTmxOalF1YkdWdVozUm9JQzBnTWlrZ0t5QW5QVDBuTzF4dUlDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z1ltRnpaVFkwTzF4dWZUdGNibVY0Y0c5eWRITXVaVzVqYjJSbElEMGdaVzVqYjJSbE8xeHVZMjl1YzNRZ1pHVmpiMlJsSUQwZ0tHSmhjMlUyTkNrZ1BUNGdlMXh1SUNBZ0lHeGxkQ0JpZFdabVpYSk1aVzVuZEdnZ1BTQmlZWE5sTmpRdWJHVnVaM1JvSUNvZ01DNDNOU3dnYkdWdUlEMGdZbUZ6WlRZMExteGxibWQwYUN3Z2FTd2djQ0E5SURBc0lHVnVZMjlrWldReExDQmxibU52WkdWa01pd2daVzVqYjJSbFpETXNJR1Z1WTI5a1pXUTBPMXh1SUNBZ0lHbG1JQ2hpWVhObE5qUmJZbUZ6WlRZMExteGxibWQwYUNBdElERmRJRDA5UFNBblBTY3BJSHRjYmlBZ0lDQWdJQ0FnWW5WbVptVnlUR1Z1WjNSb0xTMDdYRzRnSUNBZ0lDQWdJR2xtSUNoaVlYTmxOalJiWW1GelpUWTBMbXhsYm1kMGFDQXRJREpkSUQwOVBTQW5QU2NwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR0oxWm1abGNreGxibWQwYUMwdE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0FnSUdOdmJuTjBJR0Z5Y21GNVluVm1abVZ5SUQwZ2JtVjNJRUZ5Y21GNVFuVm1abVZ5S0dKMVptWmxja3hsYm1kMGFDa3NJR0o1ZEdWeklEMGdibVYzSUZWcGJuUTRRWEp5WVhrb1lYSnlZWGxpZFdabVpYSXBPMXh1SUNBZ0lHWnZjaUFvYVNBOUlEQTdJR2tnUENCc1pXNDdJR2tnS3owZ05Da2dlMXh1SUNBZ0lDQWdJQ0JsYm1OdlpHVmtNU0E5SUd4dmIydDFjRnRpWVhObE5qUXVZMmhoY2tOdlpHVkJkQ2hwS1YwN1hHNGdJQ0FnSUNBZ0lHVnVZMjlrWldReUlEMGdiRzl2YTNWd1cySmhjMlUyTkM1amFHRnlRMjlrWlVGMEtHa2dLeUF4S1YwN1hHNGdJQ0FnSUNBZ0lHVnVZMjlrWldReklEMGdiRzl2YTNWd1cySmhjMlUyTkM1amFHRnlRMjlrWlVGMEtHa2dLeUF5S1YwN1hHNGdJQ0FnSUNBZ0lHVnVZMjlrWldRMElEMGdiRzl2YTNWd1cySmhjMlUyTkM1amFHRnlRMjlrWlVGMEtHa2dLeUF6S1YwN1hHNGdJQ0FnSUNBZ0lHSjVkR1Z6VzNBcksxMGdQU0FvWlc1amIyUmxaREVnUER3Z01pa2dmQ0FvWlc1amIyUmxaRElnUGo0Z05DazdYRzRnSUNBZ0lDQWdJR0o1ZEdWelczQXJLMTBnUFNBb0tHVnVZMjlrWldReUlDWWdNVFVwSUR3OElEUXBJSHdnS0dWdVkyOWtaV1F6SUQ0K0lESXBPMXh1SUNBZ0lDQWdJQ0JpZVhSbGMxdHdLeXRkSUQwZ0tDaGxibU52WkdWa015QW1JRE1wSUR3OElEWXBJSHdnS0dWdVkyOWtaV1EwSUNZZ05qTXBPMXh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnWVhKeVlYbGlkV1ptWlhJN1hHNTlPMXh1Wlhod2IzSjBjeTVrWldOdlpHVWdQU0JrWldOdlpHVTdYRzRpTENKY0luVnpaU0J6ZEhKcFkzUmNJanRjYmk4dklHSnliM2R6WlhJZ2MyaHBiU0JtYjNJZ2VHMXNhSFIwY0hKbGNYVmxjM1FnYlc5a2RXeGxYRzVQWW1wbFkzUXVaR1ZtYVc1bFVISnZjR1Z5ZEhrb1pYaHdiM0owY3l3Z1hDSmZYMlZ6VFc5a2RXeGxYQ0lzSUhzZ2RtRnNkV1U2SUhSeWRXVWdmU2s3WEc1bGVIQnZjblJ6TG1OeVpXRjBaVU52YjJ0cFpVcGhjaUE5SUdWNGNHOXlkSE11V0VoU0lEMGdkbTlwWkNBd08xeHVZMjl1YzNRZ2FHRnpYMk52Y25OZmFuTmZNU0E5SUhKbGNYVnBjbVVvWENJdUxpOWpiMjUwY21saUwyaGhjeTFqYjNKekxtcHpYQ0lwTzF4dVkyOXVjM1FnWjJ4dlltRnNWR2hwYzE5cWMxOHhJRDBnY21WeGRXbHlaU2hjSWk0dUwyZHNiMkpoYkZSb2FYTXVhbk5jSWlrN1hHNW1kVzVqZEdsdmJpQllTRklvYjNCMGN5a2dlMXh1SUNBZ0lHTnZibk4wSUhoa2IyMWhhVzRnUFNCdmNIUnpMbmhrYjIxaGFXNDdYRzRnSUNBZ0x5OGdXRTFNU0hSMGNGSmxjWFZsYzNRZ1kyRnVJR0psSUdScGMyRmliR1ZrSUc5dUlFbEZYRzRnSUNBZ2RISjVJSHRjYmlBZ0lDQWdJQ0FnYVdZZ0tGd2lkVzVrWldacGJtVmtYQ0lnSVQwOUlIUjVjR1Z2WmlCWVRVeElkSFJ3VW1WeGRXVnpkQ0FtSmlBb0lYaGtiMjFoYVc0Z2ZId2dhR0Z6WDJOdmNuTmZhbk5mTVM1b1lYTkRUMUpUS1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRzVsZHlCWVRVeElkSFJ3VW1WeGRXVnpkQ2dwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQWdJR05oZEdOb0lDaGxLU0I3SUgxY2JpQWdJQ0JwWmlBb0lYaGtiMjFoYVc0cElIdGNiaUFnSUNBZ0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnVaWGNnWjJ4dlltRnNWR2hwYzE5cWMxOHhMbWRzYjJKaGJGUm9hWE5UYUdsdFcxdGNJa0ZqZEdsMlpWd2lYUzVqYjI1allYUW9YQ0pQWW1wbFkzUmNJaWt1YW05cGJpaGNJbGhjSWlsZEtGd2lUV2xqY205emIyWjBMbGhOVEVoVVZGQmNJaWs3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ1kyRjBZMmdnS0dVcElIc2dmVnh1SUNBZ0lIMWNibjFjYm1WNGNHOXlkSE11V0VoU0lEMGdXRWhTTzF4dVpuVnVZM1JwYjI0Z1kzSmxZWFJsUTI5dmEybGxTbUZ5S0NrZ2V5QjlYRzVsZUhCdmNuUnpMbU55WldGMFpVTnZiMnRwWlVwaGNpQTlJR055WldGMFpVTnZiMnRwWlVwaGNqdGNiaUlzSWx3aWRYTmxJSE4wY21samRGd2lPMXh1ZG1GeUlGOWZZM0psWVhSbFFtbHVaR2x1WnlBOUlDaDBhR2x6SUNZbUlIUm9hWE11WDE5amNtVmhkR1ZDYVc1a2FXNW5LU0I4ZkNBb1QySnFaV04wTG1OeVpXRjBaU0EvSUNobWRXNWpkR2x2YmlodkxDQnRMQ0JyTENCck1pa2dlMXh1SUNBZ0lHbG1JQ2hyTWlBOVBUMGdkVzVrWldacGJtVmtLU0JyTWlBOUlHczdYRzRnSUNBZ1QySnFaV04wTG1SbFptbHVaVkJ5YjNCbGNuUjVLRzhzSUdzeUxDQjdJR1Z1ZFcxbGNtRmliR1U2SUhSeWRXVXNJR2RsZERvZ1puVnVZM1JwYjI0b0tTQjdJSEpsZEhWeWJpQnRXMnRkT3lCOUlIMHBPMXh1ZlNrZ09pQW9ablZ1WTNScGIyNG9ieXdnYlN3Z2F5d2dheklwSUh0Y2JpQWdJQ0JwWmlBb2F6SWdQVDA5SUhWdVpHVm1hVzVsWkNrZ2F6SWdQU0JyTzF4dUlDQWdJRzliYXpKZElEMGdiVnRyWFR0Y2JuMHBLVHRjYm5aaGNpQmZYM05sZEUxdlpIVnNaVVJsWm1GMWJIUWdQU0FvZEdocGN5QW1KaUIwYUdsekxsOWZjMlYwVFc5a2RXeGxSR1ZtWVhWc2RDa2dmSHdnS0U5aWFtVmpkQzVqY21WaGRHVWdQeUFvWm5WdVkzUnBiMjRvYnl3Z2Rpa2dlMXh1SUNBZ0lFOWlhbVZqZEM1a1pXWnBibVZRY205d1pYSjBlU2h2TENCY0ltUmxabUYxYkhSY0lpd2dleUJsYm5WdFpYSmhZbXhsT2lCMGNuVmxMQ0IyWVd4MVpUb2dkaUI5S1R0Y2JuMHBJRG9nWm5WdVkzUnBiMjRvYnl3Z2Rpa2dlMXh1SUNBZ0lHOWJYQ0prWldaaGRXeDBYQ0pkSUQwZ2RqdGNibjBwTzF4dWRtRnlJRjlmYVcxd2IzSjBVM1JoY2lBOUlDaDBhR2x6SUNZbUlIUm9hWE11WDE5cGJYQnZjblJUZEdGeUtTQjhmQ0JtZFc1amRHbHZiaUFvYlc5a0tTQjdYRzRnSUNBZ2FXWWdLRzF2WkNBbUppQnRiMlF1WDE5bGMwMXZaSFZzWlNrZ2NtVjBkWEp1SUcxdlpEdGNiaUFnSUNCMllYSWdjbVZ6ZFd4MElEMGdlMzA3WEc0Z0lDQWdhV1lnS0cxdlpDQWhQU0J1ZFd4c0tTQm1iM0lnS0haaGNpQnJJR2x1SUcxdlpDa2dhV1lnS0dzZ0lUMDlJRndpWkdWbVlYVnNkRndpSUNZbUlFOWlhbVZqZEM1d2NtOTBiM1I1Y0dVdWFHRnpUM2R1VUhKdmNHVnlkSGt1WTJGc2JDaHRiMlFzSUdzcEtTQmZYMk55WldGMFpVSnBibVJwYm1jb2NtVnpkV3gwTENCdGIyUXNJR3NwTzF4dUlDQWdJRjlmYzJWMFRXOWtkV3hsUkdWbVlYVnNkQ2h5WlhOMWJIUXNJRzF2WkNrN1hHNGdJQ0FnY21WMGRYSnVJSEpsYzNWc2REdGNibjA3WEc1MllYSWdYMTlwYlhCdmNuUkVaV1poZFd4MElEMGdLSFJvYVhNZ0ppWWdkR2hwY3k1ZlgybHRjRzl5ZEVSbFptRjFiSFFwSUh4OElHWjFibU4wYVc5dUlDaHRiMlFwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdLRzF2WkNBbUppQnRiMlF1WDE5bGMwMXZaSFZzWlNrZ1B5QnRiMlFnT2lCN0lGd2laR1ZtWVhWc2RGd2lPaUJ0YjJRZ2ZUdGNibjA3WEc1UFltcGxZM1F1WkdWbWFXNWxVSEp2Y0dWeWRIa29aWGh3YjNKMGN5d2dYQ0pmWDJWelRXOWtkV3hsWENJc0lIc2dkbUZzZFdVNklIUnlkV1VnZlNrN1hHNWxlSEJ2Y25SekxrMWhibUZuWlhJZ1BTQjJiMmxrSURBN1hHNWpiMjV6ZENCbGJtZHBibVZmYVc5ZlkyeHBaVzUwWHpFZ1BTQnlaWEYxYVhKbEtGd2laVzVuYVc1bExtbHZMV05zYVdWdWRGd2lLVHRjYm1OdmJuTjBJSE52WTJ0bGRGOXFjMTh4SUQwZ2NtVnhkV2x5WlNoY0lpNHZjMjlqYTJWMExtcHpYQ0lwTzF4dVkyOXVjM1FnY0dGeWMyVnlJRDBnWDE5cGJYQnZjblJUZEdGeUtISmxjWFZwY21Vb1hDSnpiMk5yWlhRdWFXOHRjR0Z5YzJWeVhDSXBLVHRjYm1OdmJuTjBJRzl1WDJwelh6RWdQU0J5WlhGMWFYSmxLRndpTGk5dmJpNXFjMXdpS1R0Y2JtTnZibk4wSUdKaFkydHZNbDlxYzE4eElEMGdjbVZ4ZFdseVpTaGNJaTR2WTI5dWRISnBZaTlpWVdOcmJ6SXVhbk5jSWlrN1hHNWpiMjV6ZENCamIyMXdiMjVsYm5SZlpXMXBkSFJsY2w4eElEMGdjbVZ4ZFdseVpTaGNJa0J6YjJOclpYUXVhVzh2WTI5dGNHOXVaVzUwTFdWdGFYUjBaWEpjSWlrN1hHNWpiMjV6ZENCa1pXSjFaMTh4SUQwZ1gxOXBiWEJ2Y25SRVpXWmhkV3gwS0hKbGNYVnBjbVVvWENKa1pXSjFaMXdpS1NrN0lDOHZJR1JsWW5WbktDbGNibU52Ym5OMElHUmxZblZuSUQwZ1pHVmlkV2RmTVM1a1pXWmhkV3gwS0Z3aWMyOWphMlYwTG1sdkxXTnNhV1Z1ZERwdFlXNWhaMlZ5WENJcE95QXZMeUJrWldKMVp5Z3BYRzVqYkdGemN5Qk5ZVzVoWjJWeUlHVjRkR1Z1WkhNZ1kyOXRjRzl1Wlc1MFgyVnRhWFIwWlhKZk1TNUZiV2wwZEdWeUlIdGNiaUFnSUNCamIyNXpkSEoxWTNSdmNpaDFjbWtzSUc5d2RITXBJSHRjYmlBZ0lDQWdJQ0FnZG1GeUlGOWhPMXh1SUNBZ0lDQWdJQ0J6ZFhCbGNpZ3BPMXh1SUNBZ0lDQWdJQ0IwYUdsekxtNXpjSE1nUFNCN2ZUdGNiaUFnSUNBZ0lDQWdkR2hwY3k1emRXSnpJRDBnVzEwN1hHNGdJQ0FnSUNBZ0lHbG1JQ2gxY21rZ0ppWWdYQ0p2WW1wbFkzUmNJaUE5UFQwZ2RIbHdaVzltSUhWeWFTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2IzQjBjeUE5SUhWeWFUdGNiaUFnSUNBZ0lDQWdJQ0FnSUhWeWFTQTlJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCdmNIUnpJRDBnYjNCMGN5QjhmQ0I3ZlR0Y2JpQWdJQ0FnSUNBZ2IzQjBjeTV3WVhSb0lEMGdiM0IwY3k1d1lYUm9JSHg4SUZ3aUwzTnZZMnRsZEM1cGIxd2lPMXh1SUNBZ0lDQWdJQ0IwYUdsekxtOXdkSE1nUFNCdmNIUnpPMXh1SUNBZ0lDQWdJQ0JsYm1kcGJtVmZhVzlmWTJ4cFpXNTBYekV1YVc1emRHRnNiRlJwYldWeVJuVnVZM1JwYjI1ektIUm9hWE1zSUc5d2RITXBPMXh1SUNBZ0lDQWdJQ0IwYUdsekxuSmxZMjl1Ym1WamRHbHZiaWh2Y0hSekxuSmxZMjl1Ym1WamRHbHZiaUFoUFQwZ1ptRnNjMlVwTzF4dUlDQWdJQ0FnSUNCMGFHbHpMbkpsWTI5dWJtVmpkR2x2YmtGMGRHVnRjSFJ6S0c5d2RITXVjbVZqYjI1dVpXTjBhVzl1UVhSMFpXMXdkSE1nZkh3Z1NXNW1hVzVwZEhrcE8xeHVJQ0FnSUNBZ0lDQjBhR2x6TG5KbFkyOXVibVZqZEdsdmJrUmxiR0Y1S0c5d2RITXVjbVZqYjI1dVpXTjBhVzl1UkdWc1lYa2dmSHdnTVRBd01DazdYRzRnSUNBZ0lDQWdJSFJvYVhNdWNtVmpiMjV1WldOMGFXOXVSR1ZzWVhsTllYZ29iM0IwY3k1eVpXTnZibTVsWTNScGIyNUVaV3hoZVUxaGVDQjhmQ0ExTURBd0tUdGNiaUFnSUNBZ0lDQWdkR2hwY3k1eVlXNWtiMjFwZW1GMGFXOXVSbUZqZEc5eUtDaGZZU0E5SUc5d2RITXVjbUZ1Wkc5dGFYcGhkR2x2YmtaaFkzUnZjaWtnSVQwOUlHNTFiR3dnSmlZZ1gyRWdJVDA5SUhadmFXUWdNQ0EvSUY5aElEb2dNQzQxS1R0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVpWVdOcmIyWm1JRDBnYm1WM0lHSmhZMnR2TWw5cWMxOHhMa0poWTJ0dlptWW9lMXh1SUNBZ0lDQWdJQ0FnSUNBZ2JXbHVPaUIwYUdsekxuSmxZMjl1Ym1WamRHbHZia1JsYkdGNUtDa3NYRzRnSUNBZ0lDQWdJQ0FnSUNCdFlYZzZJSFJvYVhNdWNtVmpiMjV1WldOMGFXOXVSR1ZzWVhsTllYZ29LU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHcHBkSFJsY2pvZ2RHaHBjeTV5WVc1a2IyMXBlbUYwYVc5dVJtRmpkRzl5S0Nrc1hHNGdJQ0FnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdJQ0IwYUdsekxuUnBiV1Z2ZFhRb2JuVnNiQ0E5UFNCdmNIUnpMblJwYldWdmRYUWdQeUF5TURBd01DQTZJRzl3ZEhNdWRHbHRaVzkxZENrN1hHNGdJQ0FnSUNBZ0lIUm9hWE11WDNKbFlXUjVVM1JoZEdVZ1BTQmNJbU5zYjNObFpGd2lPMXh1SUNBZ0lDQWdJQ0IwYUdsekxuVnlhU0E5SUhWeWFUdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ1gzQmhjbk5sY2lBOUlHOXdkSE11Y0dGeWMyVnlJSHg4SUhCaGNuTmxjanRjYmlBZ0lDQWdJQ0FnZEdocGN5NWxibU52WkdWeUlEMGdibVYzSUY5d1lYSnpaWEl1Ulc1amIyUmxjaWdwTzF4dUlDQWdJQ0FnSUNCMGFHbHpMbVJsWTI5a1pYSWdQU0J1WlhjZ1gzQmhjbk5sY2k1RVpXTnZaR1Z5S0NrN1hHNGdJQ0FnSUNBZ0lIUm9hWE11WDJGMWRHOURiMjV1WldOMElEMGdiM0IwY3k1aGRYUnZRMjl1Ym1WamRDQWhQVDBnWm1Gc2MyVTdYRzRnSUNBZ0lDQWdJR2xtSUNoMGFHbHpMbDloZFhSdlEyOXVibVZqZENsY2JpQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWIzQmxiaWdwTzF4dUlDQWdJSDFjYmlBZ0lDQnlaV052Ym01bFkzUnBiMjRvZGlrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvSVdGeVozVnRaVzUwY3k1c1pXNW5kR2dwWEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTVmY21WamIyNXVaV04wYVc5dU8xeHVJQ0FnSUNBZ0lDQjBhR2x6TGw5eVpXTnZibTVsWTNScGIyNGdQU0FoSVhZN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCMGFHbHpPMXh1SUNBZ0lIMWNiaUFnSUNCeVpXTnZibTVsWTNScGIyNUJkSFJsYlhCMGN5aDJLU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDaDJJRDA5UFNCMWJtUmxabWx1WldRcFhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1ZmNtVmpiMjV1WldOMGFXOXVRWFIwWlcxd2RITTdYRzRnSUNBZ0lDQWdJSFJvYVhNdVgzSmxZMjl1Ym1WamRHbHZia0YwZEdWdGNIUnpJRDBnZGp0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTTdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbFkyOXVibVZqZEdsdmJrUmxiR0Y1S0hZcElIdGNiaUFnSUNBZ0lDQWdkbUZ5SUY5aE8xeHVJQ0FnSUNBZ0lDQnBaaUFvZGlBOVBUMGdkVzVrWldacGJtVmtLVnh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXVYM0psWTI5dWJtVmpkR2x2YmtSbGJHRjVPMXh1SUNBZ0lDQWdJQ0IwYUdsekxsOXlaV052Ym01bFkzUnBiMjVFWld4aGVTQTlJSFk3WEc0Z0lDQWdJQ0FnSUNoZllTQTlJSFJvYVhNdVltRmphMjltWmlrZ1BUMDlJRzUxYkd3Z2ZId2dYMkVnUFQwOUlIWnZhV1FnTUNBL0lIWnZhV1FnTUNBNklGOWhMbk5sZEUxcGJpaDJLVHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvYVhNN1hHNGdJQ0FnZlZ4dUlDQWdJSEpoYm1SdmJXbDZZWFJwYjI1R1lXTjBiM0lvZGlrZ2UxeHVJQ0FnSUNBZ0lDQjJZWElnWDJFN1hHNGdJQ0FnSUNBZ0lHbG1JQ2gySUQwOVBTQjFibVJsWm1sdVpXUXBYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZEdocGN5NWZjbUZ1Wkc5dGFYcGhkR2x2YmtaaFkzUnZjanRjYmlBZ0lDQWdJQ0FnZEdocGN5NWZjbUZ1Wkc5dGFYcGhkR2x2YmtaaFkzUnZjaUE5SUhZN1hHNGdJQ0FnSUNBZ0lDaGZZU0E5SUhSb2FYTXVZbUZqYTI5bVppa2dQVDA5SUc1MWJHd2dmSHdnWDJFZ1BUMDlJSFp2YVdRZ01DQS9JSFp2YVdRZ01DQTZJRjloTG5ObGRFcHBkSFJsY2loMktUdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE03WEc0Z0lDQWdmVnh1SUNBZ0lISmxZMjl1Ym1WamRHbHZia1JsYkdGNVRXRjRLSFlwSUh0Y2JpQWdJQ0FnSUNBZ2RtRnlJRjloTzF4dUlDQWdJQ0FnSUNCcFppQW9kaUE5UFQwZ2RXNWtaV1pwYm1Wa0tWeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdVgzSmxZMjl1Ym1WamRHbHZia1JsYkdGNVRXRjRPMXh1SUNBZ0lDQWdJQ0IwYUdsekxsOXlaV052Ym01bFkzUnBiMjVFWld4aGVVMWhlQ0E5SUhZN1hHNGdJQ0FnSUNBZ0lDaGZZU0E5SUhSb2FYTXVZbUZqYTI5bVppa2dQVDA5SUc1MWJHd2dmSHdnWDJFZ1BUMDlJSFp2YVdRZ01DQS9JSFp2YVdRZ01DQTZJRjloTG5ObGRFMWhlQ2gyS1R0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTTdYRzRnSUNBZ2ZWeHVJQ0FnSUhScGJXVnZkWFFvZGlrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvSVdGeVozVnRaVzUwY3k1c1pXNW5kR2dwWEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTVmZEdsdFpXOTFkRHRjYmlBZ0lDQWdJQ0FnZEdocGN5NWZkR2x0Wlc5MWRDQTlJSFk3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUIwYUdsek8xeHVJQ0FnSUgxY2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCVGRHRnlkSE1nZEhKNWFXNW5JSFJ2SUhKbFkyOXVibVZqZENCcFppQnlaV052Ym01bFkzUnBiMjRnYVhNZ1pXNWhZbXhsWkNCaGJtUWdkMlVnYUdGMlpTQnViM1JjYmlBZ0lDQWdLaUJ6ZEdGeWRHVmtJSEpsWTI5dWJtVmpkR2x1WnlCNVpYUmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQndjbWwyWVhSbFhHNGdJQ0FnSUNvdlhHNGdJQ0FnYldGNVltVlNaV052Ym01bFkzUlBiazl3Wlc0b0tTQjdYRzRnSUNBZ0lDQWdJQzh2SUU5dWJIa2dkSEo1SUhSdklISmxZMjl1Ym1WamRDQnBaaUJwZENkeklIUm9aU0JtYVhKemRDQjBhVzFsSUhkbEozSmxJR052Ym01bFkzUnBibWRjYmlBZ0lDQWdJQ0FnYVdZZ0tDRjBhR2x6TGw5eVpXTnZibTVsWTNScGJtY2dKaVpjYmlBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11WDNKbFkyOXVibVZqZEdsdmJpQW1KbHh1SUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTVpWVdOcmIyWm1MbUYwZEdWdGNIUnpJRDA5UFNBd0tTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBdkx5QnJaV1Z3Y3lCeVpXTnZibTVsWTNScGIyNGdabkp2YlNCbWFYSnBibWNnZEhkcFkyVWdabTl5SUhSb1pTQnpZVzFsSUhKbFkyOXVibVZqZEdsdmJpQnNiMjl3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG5KbFkyOXVibVZqZENncE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlGTmxkSE1nZEdobElHTjFjbkpsYm5RZ2RISmhibk53YjNKMElHQnpiMk5yWlhSZ0xseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0R2RXNWpkR2x2Ym4wZ1ptNGdMU0J2Y0hScGIyNWhiQ3dnWTJGc2JHSmhZMnRjYmlBZ0lDQWdLaUJBY21WMGRYSnVJSE5sYkdaY2JpQWdJQ0FnS2lCQWNIVmliR2xqWEc0Z0lDQWdJQ292WEc0Z0lDQWdiM0JsYmlobWJpa2dlMXh1SUNBZ0lDQWdJQ0JrWldKMVp5aGNJbkpsWVdSNVUzUmhkR1VnSlhOY0lpd2dkR2hwY3k1ZmNtVmhaSGxUZEdGMFpTazdYRzRnSUNBZ0lDQWdJR2xtSUNoK2RHaHBjeTVmY21WaFpIbFRkR0YwWlM1cGJtUmxlRTltS0Z3aWIzQmxibHdpS1NsY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TzF4dUlDQWdJQ0FnSUNCa1pXSjFaeWhjSW05d1pXNXBibWNnSlhOY0lpd2dkR2hwY3k1MWNta3BPMXh1SUNBZ0lDQWdJQ0IwYUdsekxtVnVaMmx1WlNBOUlHNWxkeUJsYm1kcGJtVmZhVzlmWTJ4cFpXNTBYekV1VTI5amEyVjBLSFJvYVhNdWRYSnBMQ0IwYUdsekxtOXdkSE1wTzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J6YjJOclpYUWdQU0IwYUdsekxtVnVaMmx1WlR0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYzJWc1ppQTlJSFJvYVhNN1hHNGdJQ0FnSUNBZ0lIUm9hWE11WDNKbFlXUjVVM1JoZEdVZ1BTQmNJbTl3Wlc1cGJtZGNJanRjYmlBZ0lDQWdJQ0FnZEdocGN5NXphMmx3VW1WamIyNXVaV04wSUQwZ1ptRnNjMlU3WEc0Z0lDQWdJQ0FnSUM4dklHVnRhWFFnWUc5d1pXNWdYRzRnSUNBZ0lDQWdJR052Ym5OMElHOXdaVzVUZFdKRVpYTjBjbTk1SUQwZ2IyNWZhbk5mTVM1dmJpaHpiMk5yWlhRc0lGd2liM0JsYmx3aUxDQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnpaV3htTG05dWIzQmxiaWdwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdabTRnSmlZZ1ptNG9LVHRjYmlBZ0lDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUc5dVJYSnliM0lnUFNBb1pYSnlLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JrWldKMVp5aGNJbVZ5Y205eVhDSXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTVqYkdWaGJuVndLQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TGw5eVpXRmtlVk4wWVhSbElEMGdYQ0pqYkc5elpXUmNJanRjYmlBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11WlcxcGRGSmxjMlZ5ZG1Wa0tGd2laWEp5YjNKY0lpd2daWEp5S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNobWJpa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1p1S0dWeWNpazdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXZMeUJQYm14NUlHUnZJSFJvYVhNZ2FXWWdkR2hsY21VZ2FYTWdibThnWm00Z2RHOGdhR0Z1Wkd4bElIUm9aU0JsY25KdmNseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11YldGNVltVlNaV052Ym01bFkzUlBiazl3Wlc0b0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2ZUdGNiaUFnSUNBZ0lDQWdMeThnWlcxcGRDQmdaWEp5YjNKZ1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdWeWNtOXlVM1ZpSUQwZ2IyNWZhbk5mTVM1dmJpaHpiMk5yWlhRc0lGd2laWEp5YjNKY0lpd2diMjVGY25KdmNpazdYRzRnSUNBZ0lDQWdJR2xtSUNobVlXeHpaU0FoUFQwZ2RHaHBjeTVmZEdsdFpXOTFkQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2RHbHRaVzkxZENBOUlIUm9hWE11WDNScGJXVnZkWFE3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmtaV0oxWnloY0ltTnZibTVsWTNRZ1lYUjBaVzF3ZENCM2FXeHNJSFJwYldWdmRYUWdZV1owWlhJZ0pXUmNJaXdnZEdsdFpXOTFkQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQXZMeUJ6WlhRZ2RHbHRaWEpjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUhScGJXVnlJRDBnZEdocGN5NXpaWFJVYVcxbGIzVjBSbTRvS0NrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1JsWW5WbktGd2lZMjl1Ym1WamRDQmhkSFJsYlhCMElIUnBiV1ZrSUc5MWRDQmhablJsY2lBbFpGd2lMQ0IwYVcxbGIzVjBLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J2Y0dWdVUzVmlSR1Z6ZEhKdmVTZ3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzl1UlhKeWIzSW9ibVYzSUVWeWNtOXlLRndpZEdsdFpXOTFkRndpS1NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2MyOWphMlYwTG1Oc2IzTmxLQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlMQ0IwYVcxbGIzVjBLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2gwYUdsekxtOXdkSE11WVhWMGIxVnVjbVZtS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHbHRaWEl1ZFc1eVpXWW9LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVjM1ZpY3k1d2RYTm9LQ2dwSUQwK0lIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG1Oc1pXRnlWR2x0Wlc5MWRFWnVLSFJwYldWeUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSFJvYVhNdWMzVmljeTV3ZFhOb0tHOXdaVzVUZFdKRVpYTjBjbTk1S1R0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV6ZFdKekxuQjFjMmdvWlhKeWIzSlRkV0lwTzF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZEdocGN6dGNiaUFnSUNCOVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1FXeHBZWE1nWm05eUlHOXdaVzRvS1Z4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhKbGRIVnliaUJ6Wld4bVhHNGdJQ0FnSUNvZ1FIQjFZbXhwWTF4dUlDQWdJQ0FxTDF4dUlDQWdJR052Ym01bFkzUW9abTRwSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXViM0JsYmlobWJpazdYRzRnSUNBZ2ZWeHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFTmhiR3hsWkNCMWNHOXVJSFJ5WVc1emNHOXlkQ0J2Y0dWdUxseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FIQnlhWFpoZEdWY2JpQWdJQ0FnS2k5Y2JpQWdJQ0J2Ym05d1pXNG9LU0I3WEc0Z0lDQWdJQ0FnSUdSbFluVm5LRndpYjNCbGJsd2lLVHRjYmlBZ0lDQWdJQ0FnTHk4Z1kyeGxZWElnYjJ4a0lITjFZbk5jYmlBZ0lDQWdJQ0FnZEdocGN5NWpiR1ZoYm5Wd0tDazdYRzRnSUNBZ0lDQWdJQzh2SUcxaGNtc2dZWE1nYjNCbGJseHVJQ0FnSUNBZ0lDQjBhR2x6TGw5eVpXRmtlVk4wWVhSbElEMGdYQ0p2Y0dWdVhDSTdYRzRnSUNBZ0lDQWdJSFJvYVhNdVpXMXBkRkpsYzJWeWRtVmtLRndpYjNCbGJsd2lLVHRjYmlBZ0lDQWdJQ0FnTHk4Z1lXUmtJRzVsZHlCemRXSnpYRzRnSUNBZ0lDQWdJR052Ym5OMElITnZZMnRsZENBOUlIUm9hWE11Wlc1bmFXNWxPMXh1SUNBZ0lDQWdJQ0IwYUdsekxuTjFZbk11Y0hWemFDaHZibDlxYzE4eExtOXVLSE52WTJ0bGRDd2dYQ0p3YVc1blhDSXNJSFJvYVhNdWIyNXdhVzVuTG1KcGJtUW9kR2hwY3lrcExDQnZibDlxYzE4eExtOXVLSE52WTJ0bGRDd2dYQ0prWVhSaFhDSXNJSFJvYVhNdWIyNWtZWFJoTG1KcGJtUW9kR2hwY3lrcExDQnZibDlxYzE4eExtOXVLSE52WTJ0bGRDd2dYQ0psY25KdmNsd2lMQ0IwYUdsekxtOXVaWEp5YjNJdVltbHVaQ2gwYUdsektTa3NJRzl1WDJwelh6RXViMjRvYzI5amEyVjBMQ0JjSW1Oc2IzTmxYQ0lzSUhSb2FYTXViMjVqYkc5elpTNWlhVzVrS0hSb2FYTXBLU3dnYjI1ZmFuTmZNUzV2YmloMGFHbHpMbVJsWTI5a1pYSXNJRndpWkdWamIyUmxaRndpTENCMGFHbHpMbTl1WkdWamIyUmxaQzVpYVc1a0tIUm9hWE1wS1NrN1hHNGdJQ0FnZlZ4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVOaGJHeGxaQ0IxY0c5dUlHRWdjR2x1Wnk1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCd2NtbDJZWFJsWEc0Z0lDQWdJQ292WEc0Z0lDQWdiMjV3YVc1bktDa2dlMXh1SUNBZ0lDQWdJQ0IwYUdsekxtVnRhWFJTWlhObGNuWmxaQ2hjSW5CcGJtZGNJaWs3WEc0Z0lDQWdmVnh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRU5oYkd4bFpDQjNhWFJvSUdSaGRHRXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnSUNBcUwxeHVJQ0FnSUc5dVpHRjBZU2hrWVhSaEtTQjdYRzRnSUNBZ0lDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxtUmxZMjlrWlhJdVlXUmtLR1JoZEdFcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR05oZEdOb0lDaGxLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG05dVkyeHZjMlVvWENKd1lYSnpaU0JsY25KdmNsd2lMQ0JsS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCRFlXeHNaV1FnZDJobGJpQndZWEp6WlhJZ1puVnNiSGtnWkdWamIyUmxjeUJoSUhCaFkydGxkQzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ3Y21sMllYUmxYRzRnSUNBZ0lDb3ZYRzRnSUNBZ2IyNWtaV052WkdWa0tIQmhZMnRsZENrZ2UxeHVJQ0FnSUNBZ0lDQXZMeUIwYUdVZ2JtVjRkRlJwWTJzZ1kyRnNiQ0J3Y21WMlpXNTBjeUJoYmlCbGVHTmxjSFJwYjI0Z2FXNGdZU0IxYzJWeUxYQnliM1pwWkdWa0lHVjJaVzUwSUd4cGMzUmxibVZ5SUdaeWIyMGdkSEpwWjJkbGNtbHVaeUJoSUdScGMyTnZibTVsWTNScGIyNGdaSFZsSUhSdklHRWdYQ0p3WVhKelpTQmxjbkp2Y2x3aVhHNGdJQ0FnSUNBZ0lHVnVaMmx1WlY5cGIxOWpiR2xsYm5SZk1TNXVaWGgwVkdsamF5Z29LU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxtVnRhWFJTWlhObGNuWmxaQ2hjSW5CaFkydGxkRndpTENCd1lXTnJaWFFwTzF4dUlDQWdJQ0FnSUNCOUxDQjBhR2x6TG5ObGRGUnBiV1Z2ZFhSR2JpazdYRzRnSUNBZ2ZWeHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFTmhiR3hsWkNCMWNHOXVJSE52WTJ0bGRDQmxjbkp2Y2k1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCd2NtbDJZWFJsWEc0Z0lDQWdJQ292WEc0Z0lDQWdiMjVsY25KdmNpaGxjbklwSUh0Y2JpQWdJQ0FnSUNBZ1pHVmlkV2NvWENKbGNuSnZjbHdpTENCbGNuSXBPMXh1SUNBZ0lDQWdJQ0IwYUdsekxtVnRhWFJTWlhObGNuWmxaQ2hjSW1WeWNtOXlYQ0lzSUdWeWNpazdYRzRnSUNBZ2ZWeHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFTnlaV0YwWlhNZ1lTQnVaWGNnYzI5amEyVjBJR1p2Y2lCMGFHVWdaMmwyWlc0Z1lHNXpjR0F1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBY21WMGRYSnVJSHRUYjJOclpYUjlYRzRnSUNBZ0lDb2dRSEIxWW14cFkxeHVJQ0FnSUNBcUwxeHVJQ0FnSUhOdlkydGxkQ2h1YzNBc0lHOXdkSE1wSUh0Y2JpQWdJQ0FnSUNBZ2JHVjBJSE52WTJ0bGRDQTlJSFJvYVhNdWJuTndjMXR1YzNCZE8xeHVJQ0FnSUNBZ0lDQnBaaUFvSVhOdlkydGxkQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdjMjlqYTJWMElEMGdibVYzSUhOdlkydGxkRjlxYzE4eExsTnZZMnRsZENoMGFHbHpMQ0J1YzNBc0lHOXdkSE1wTzF4dUlDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1dWMzQnpXMjV6Y0YwZ1BTQnpiMk5yWlhRN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdaV3h6WlNCcFppQW9kR2hwY3k1ZllYVjBiME52Ym01bFkzUWdKaVlnSVhOdlkydGxkQzVoWTNScGRtVXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lITnZZMnRsZEM1amIyNXVaV04wS0NrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlITnZZMnRsZER0Y2JpQWdJQ0I5WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUTJGc2JHVmtJSFZ3YjI0Z1lTQnpiMk5yWlhRZ1kyeHZjMlV1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBY0dGeVlXMGdjMjlqYTJWMFhHNGdJQ0FnSUNvZ1FIQnlhWFpoZEdWY2JpQWdJQ0FnS2k5Y2JpQWdJQ0JmWkdWemRISnZlU2h6YjJOclpYUXBJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdibk53Y3lBOUlFOWlhbVZqZEM1clpYbHpLSFJvYVhNdWJuTndjeWs3WEc0Z0lDQWdJQ0FnSUdadmNpQW9ZMjl1YzNRZ2JuTndJRzltSUc1emNITXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUhOdlkydGxkQ0E5SUhSb2FYTXVibk53YzF0dWMzQmRPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSE52WTJ0bGRDNWhZM1JwZG1VcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmtaV0oxWnloY0luTnZZMnRsZENBbGN5QnBjeUJ6ZEdsc2JDQmhZM1JwZG1Vc0lITnJhWEJ3YVc1bklHTnNiM05sWENJc0lHNXpjQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSFJvYVhNdVgyTnNiM05sS0NrN1hHNGdJQ0FnZlZ4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUZkeWFYUmxjeUJoSUhCaFkydGxkQzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQndZV05yWlhSY2JpQWdJQ0FnS2lCQWNISnBkbUYwWlZ4dUlDQWdJQ0FxTDF4dUlDQWdJRjl3WVdOclpYUW9jR0ZqYTJWMEtTQjdYRzRnSUNBZ0lDQWdJR1JsWW5WbktGd2lkM0pwZEdsdVp5QndZV05yWlhRZ0pXcGNJaXdnY0dGamEyVjBLVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdaVzVqYjJSbFpGQmhZMnRsZEhNZ1BTQjBhR2x6TG1WdVkyOWtaWEl1Wlc1amIyUmxLSEJoWTJ0bGRDazdYRzRnSUNBZ0lDQWdJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnWlc1amIyUmxaRkJoWTJ0bGRITXViR1Z1WjNSb095QnBLeXNwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdVpXNW5hVzVsTG5keWFYUmxLR1Z1WTI5a1pXUlFZV05yWlhSelcybGRMQ0J3WVdOclpYUXViM0IwYVc5dWN5azdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dRMnhsWVc0Z2RYQWdkSEpoYm5Od2IzSjBJSE4xWW5OamNtbHdkR2x2Ym5NZ1lXNWtJSEJoWTJ0bGRDQmlkV1ptWlhJdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWNISnBkbUYwWlZ4dUlDQWdJQ0FxTDF4dUlDQWdJR05zWldGdWRYQW9LU0I3WEc0Z0lDQWdJQ0FnSUdSbFluVm5LRndpWTJ4bFlXNTFjRndpS1R0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV6ZFdKekxtWnZja1ZoWTJnb0tITjFZa1JsYzNSeWIza3BJRDArSUhOMVlrUmxjM1J5YjNrb0tTazdYRzRnSUNBZ0lDQWdJSFJvYVhNdWMzVmljeTVzWlc1bmRHZ2dQU0F3TzF4dUlDQWdJQ0FnSUNCMGFHbHpMbVJsWTI5a1pYSXVaR1Z6ZEhKdmVTZ3BPMXh1SUNBZ0lIMWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkRiRzl6WlNCMGFHVWdZM1Z5Y21WdWRDQnpiMk5yWlhRdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWNISnBkbUYwWlZ4dUlDQWdJQ0FxTDF4dUlDQWdJRjlqYkc5elpTZ3BJSHRjYmlBZ0lDQWdJQ0FnWkdWaWRXY29YQ0prYVhOamIyNXVaV04wWENJcE8xeHVJQ0FnSUNBZ0lDQjBhR2x6TG5OcmFYQlNaV052Ym01bFkzUWdQU0IwY25WbE8xeHVJQ0FnSUNBZ0lDQjBhR2x6TGw5eVpXTnZibTVsWTNScGJtY2dQU0JtWVd4elpUdGNiaUFnSUNBZ0lDQWdkR2hwY3k1dmJtTnNiM05sS0Z3aVptOXlZMlZrSUdOc2IzTmxYQ0lwTzF4dUlDQWdJQ0FnSUNCcFppQW9kR2hwY3k1bGJtZHBibVVwWEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG1WdVoybHVaUzVqYkc5elpTZ3BPMXh1SUNBZ0lIMWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkJiR2xoY3lCbWIzSWdZMnh2YzJVb0tWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FIQnlhWFpoZEdWY2JpQWdJQ0FnS2k5Y2JpQWdJQ0JrYVhOamIyNXVaV04wS0NrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTVmWTJ4dmMyVW9LVHRjYmlBZ0lDQjlYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dRMkZzYkdWa0lIVndiMjRnWlc1bmFXNWxJR05zYjNObExseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FIQnlhWFpoZEdWY2JpQWdJQ0FnS2k5Y2JpQWdJQ0J2Ym1Oc2IzTmxLSEpsWVhOdmJpd2daR1Z6WTNKcGNIUnBiMjRwSUh0Y2JpQWdJQ0FnSUNBZ1pHVmlkV2NvWENKamJHOXpaV1FnWkhWbElIUnZJQ1Z6WENJc0lISmxZWE52YmlrN1hHNGdJQ0FnSUNBZ0lIUm9hWE11WTJ4bFlXNTFjQ2dwTzF4dUlDQWdJQ0FnSUNCMGFHbHpMbUpoWTJ0dlptWXVjbVZ6WlhRb0tUdGNiaUFnSUNBZ0lDQWdkR2hwY3k1ZmNtVmhaSGxUZEdGMFpTQTlJRndpWTJ4dmMyVmtYQ0k3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVaVzFwZEZKbGMyVnlkbVZrS0Z3aVkyeHZjMlZjSWl3Z2NtVmhjMjl1TENCa1pYTmpjbWx3ZEdsdmJpazdYRzRnSUNBZ0lDQWdJR2xtSUNoMGFHbHpMbDl5WldOdmJtNWxZM1JwYjI0Z0ppWWdJWFJvYVhNdWMydHBjRkpsWTI5dWJtVmpkQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1eVpXTnZibTVsWTNRb0tUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkJkSFJsYlhCMElHRWdjbVZqYjI1dVpXTjBhVzl1TGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhCeWFYWmhkR1ZjYmlBZ0lDQWdLaTljYmlBZ0lDQnlaV052Ym01bFkzUW9LU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDaDBhR2x6TGw5eVpXTnZibTVsWTNScGJtY2dmSHdnZEdocGN5NXphMmx3VW1WamIyNXVaV04wS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE03WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSE5sYkdZZ1BTQjBhR2x6TzF4dUlDQWdJQ0FnSUNCcFppQW9kR2hwY3k1aVlXTnJiMlptTG1GMGRHVnRjSFJ6SUQ0OUlIUm9hWE11WDNKbFkyOXVibVZqZEdsdmJrRjBkR1Z0Y0hSektTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCa1pXSjFaeWhjSW5KbFkyOXVibVZqZENCbVlXbHNaV1JjSWlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxtSmhZMnR2Wm1ZdWNtVnpaWFFvS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdVpXMXBkRkpsYzJWeWRtVmtLRndpY21WamIyNXVaV04wWDJaaGFXeGxaRndpS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdVgzSmxZMjl1Ym1WamRHbHVaeUE5SUdaaGJITmxPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnWkdWc1lYa2dQU0IwYUdsekxtSmhZMnR2Wm1ZdVpIVnlZWFJwYjI0b0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdSbFluVm5LRndpZDJsc2JDQjNZV2wwSUNWa2JYTWdZbVZtYjNKbElISmxZMjl1Ym1WamRDQmhkSFJsYlhCMFhDSXNJR1JsYkdGNUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVYM0psWTI5dWJtVmpkR2x1WnlBOUlIUnlkV1U3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCMGFXMWxjaUE5SUhSb2FYTXVjMlYwVkdsdFpXOTFkRVp1S0NncElEMCtJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2MyVnNaaTV6YTJsd1VtVmpiMjV1WldOMEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaR1ZpZFdjb1hDSmhkSFJsYlhCMGFXNW5JSEpsWTI5dWJtVmpkRndpS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbVZ0YVhSU1pYTmxjblpsWkNoY0luSmxZMjl1Ym1WamRGOWhkSFJsYlhCMFhDSXNJSE5sYkdZdVltRmphMjltWmk1aGRIUmxiWEIwY3lrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0x5OGdZMmhsWTJzZ1lXZGhhVzRnWm05eUlIUm9aU0JqWVhObElITnZZMnRsZENCamJHOXpaV1FnYVc0Z1lXSnZkbVVnWlhabGJuUnpYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hObGJHWXVjMnRwY0ZKbFkyOXVibVZqZENsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdU8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lITmxiR1l1YjNCbGJpZ29aWEp5S1NBOVBpQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaGxjbklwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdSbFluVm5LRndpY21WamIyNXVaV04wSUdGMGRHVnRjSFFnWlhKeWIzSmNJaWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J6Wld4bUxsOXlaV052Ym01bFkzUnBibWNnUFNCbVlXeHpaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSE5sYkdZdWNtVmpiMjV1WldOMEtDazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG1WdGFYUlNaWE5sY25abFpDaGNJbkpsWTI5dWJtVmpkRjlsY25KdmNsd2lMQ0JsY25JcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHVnNjMlVnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWkdWaWRXY29YQ0p5WldOdmJtNWxZM1FnYzNWalkyVnpjMXdpS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhObGJHWXViMjV5WldOdmJtNWxZM1FvS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDBwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdmU3dnWkdWc1lYa3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSFJvYVhNdWIzQjBjeTVoZFhSdlZXNXlaV1lwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFXMWxjaTUxYm5KbFppZ3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXpkV0p6TG5CMWMyZ29LQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11WTJ4bFlYSlVhVzFsYjNWMFJtNG9kR2x0WlhJcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1EyRnNiR1ZrSUhWd2IyNGdjM1ZqWTJWemMyWjFiQ0J5WldOdmJtNWxZM1F1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBY0hKcGRtRjBaVnh1SUNBZ0lDQXFMMXh1SUNBZ0lHOXVjbVZqYjI1dVpXTjBLQ2tnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0JoZEhSbGJYQjBJRDBnZEdocGN5NWlZV05yYjJabUxtRjBkR1Z0Y0hSek8xeHVJQ0FnSUNBZ0lDQjBhR2x6TGw5eVpXTnZibTVsWTNScGJtY2dQU0JtWVd4elpUdGNiaUFnSUNBZ0lDQWdkR2hwY3k1aVlXTnJiMlptTG5KbGMyVjBLQ2s3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVaVzFwZEZKbGMyVnlkbVZrS0Z3aWNtVmpiMjV1WldOMFhDSXNJR0YwZEdWdGNIUXBPMXh1SUNBZ0lIMWNibjFjYm1WNGNHOXlkSE11VFdGdVlXZGxjaUE5SUUxaGJtRm5aWEk3WEc0aUxDSmNiaThxS2x4dUlDb2dWR2hwY3lCcGN5QjBhR1VnWTI5dGJXOXVJR3h2WjJsaklHWnZjaUJpYjNSb0lIUm9aU0JPYjJSbExtcHpJR0Z1WkNCM1pXSWdZbkp2ZDNObGNseHVJQ29nYVcxd2JHVnRaVzUwWVhScGIyNXpJRzltSUdCa1pXSjFaeWdwWUM1Y2JpQXFMMXh1WEc1bWRXNWpkR2x2YmlCelpYUjFjQ2hsYm5ZcElIdGNibHgwWTNKbFlYUmxSR1ZpZFdjdVpHVmlkV2NnUFNCamNtVmhkR1ZFWldKMVp6dGNibHgwWTNKbFlYUmxSR1ZpZFdjdVpHVm1ZWFZzZENBOUlHTnlaV0YwWlVSbFluVm5PMXh1WEhSamNtVmhkR1ZFWldKMVp5NWpiMlZ5WTJVZ1BTQmpiMlZ5WTJVN1hHNWNkR055WldGMFpVUmxZblZuTG1ScGMyRmliR1VnUFNCa2FYTmhZbXhsTzF4dVhIUmpjbVZoZEdWRVpXSjFaeTVsYm1GaWJHVWdQU0JsYm1GaWJHVTdYRzVjZEdOeVpXRjBaVVJsWW5WbkxtVnVZV0pzWldRZ1BTQmxibUZpYkdWa08xeHVYSFJqY21WaGRHVkVaV0oxWnk1b2RXMWhibWw2WlNBOUlISmxjWFZwY21Vb0oyMXpKeWs3WEc1Y2RHTnlaV0YwWlVSbFluVm5MbVJsYzNSeWIza2dQU0JrWlhOMGNtOTVPMXh1WEc1Y2RFOWlhbVZqZEM1clpYbHpLR1Z1ZGlrdVptOXlSV0ZqYUNoclpYa2dQVDRnZTF4dVhIUmNkR055WldGMFpVUmxZblZuVzJ0bGVWMGdQU0JsYm5aYmEyVjVYVHRjYmx4MGZTazdYRzVjYmx4MEx5b3FYRzVjZENvZ1ZHaGxJR04xY25KbGJuUnNlU0JoWTNScGRtVWdaR1ZpZFdjZ2JXOWtaU0J1WVcxbGN5d2dZVzVrSUc1aGJXVnpJSFJ2SUhOcmFYQXVYRzVjZENvdlhHNWNibHgwWTNKbFlYUmxSR1ZpZFdjdWJtRnRaWE1nUFNCYlhUdGNibHgwWTNKbFlYUmxSR1ZpZFdjdWMydHBjSE1nUFNCYlhUdGNibHh1WEhRdktpcGNibHgwS2lCTllYQWdiMllnYzNCbFkybGhiQ0JjSWlWdVhDSWdhR0Z1Wkd4cGJtY2dablZ1WTNScGIyNXpMQ0JtYjNJZ2RHaGxJR1JsWW5WbklGd2labTl5YldGMFhDSWdZWEpuZFcxbGJuUXVYRzVjZENwY2JseDBLaUJXWVd4cFpDQnJaWGtnYm1GdFpYTWdZWEpsSUdFZ2MybHVaMnhsTENCc2IzZGxjaUJ2Y2lCMWNIQmxjaTFqWVhObElHeGxkSFJsY2l3Z2FTNWxMaUJjSW01Y0lpQmhibVFnWENKT1hDSXVYRzVjZENvdlhHNWNkR055WldGMFpVUmxZblZuTG1admNtMWhkSFJsY25NZ1BTQjdmVHRjYmx4dVhIUXZLaXBjYmx4MEtpQlRaV3hsWTNSeklHRWdZMjlzYjNJZ1ptOXlJR0VnWkdWaWRXY2dibUZ0WlhOd1lXTmxYRzVjZENvZ1FIQmhjbUZ0SUh0VGRISnBibWQ5SUc1aGJXVnpjR0ZqWlNCVWFHVWdibUZ0WlhOd1lXTmxJSE4wY21sdVp5Qm1iM0lnZEdobElHUmxZblZuSUdsdWMzUmhibU5sSUhSdklHSmxJR052Ykc5eVpXUmNibHgwS2lCQWNtVjBkWEp1SUh0T2RXMWlaWEo4VTNSeWFXNW5mU0JCYmlCQlRsTkpJR052Ykc5eUlHTnZaR1VnWm05eUlIUm9aU0JuYVhabGJpQnVZVzFsYzNCaFkyVmNibHgwS2lCQVlYQnBJSEJ5YVhaaGRHVmNibHgwS2k5Y2JseDBablZ1WTNScGIyNGdjMlZzWldOMFEyOXNiM0lvYm1GdFpYTndZV05sS1NCN1hHNWNkRngwYkdWMElHaGhjMmdnUFNBd08xeHVYRzVjZEZ4MFptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQnVZVzFsYzNCaFkyVXViR1Z1WjNSb095QnBLeXNwSUh0Y2JseDBYSFJjZEdoaGMyZ2dQU0FvS0doaGMyZ2dQRHdnTlNrZ0xTQm9ZWE5vS1NBcklHNWhiV1Z6Y0dGalpTNWphR0Z5UTI5a1pVRjBLR2twTzF4dVhIUmNkRngwYUdGemFDQjhQU0F3T3lBdkx5QkRiMjUyWlhKMElIUnZJRE15WW1sMElHbHVkR1ZuWlhKY2JseDBYSFI5WEc1Y2JseDBYSFJ5WlhSMWNtNGdZM0psWVhSbFJHVmlkV2N1WTI5c2IzSnpXMDFoZEdndVlXSnpLR2hoYzJncElDVWdZM0psWVhSbFJHVmlkV2N1WTI5c2IzSnpMbXhsYm1kMGFGMDdYRzVjZEgxY2JseDBZM0psWVhSbFJHVmlkV2N1YzJWc1pXTjBRMjlzYjNJZ1BTQnpaV3hsWTNSRGIyeHZjanRjYmx4dVhIUXZLaXBjYmx4MEtpQkRjbVZoZEdVZ1lTQmtaV0oxWjJkbGNpQjNhWFJvSUhSb1pTQm5hWFpsYmlCZ2JtRnRaWE53WVdObFlDNWNibHgwS2x4dVhIUXFJRUJ3WVhKaGJTQjdVM1J5YVc1bmZTQnVZVzFsYzNCaFkyVmNibHgwS2lCQWNtVjBkWEp1SUh0R2RXNWpkR2x2Ym4xY2JseDBLaUJBWVhCcElIQjFZbXhwWTF4dVhIUXFMMXh1WEhSbWRXNWpkR2x2YmlCamNtVmhkR1ZFWldKMVp5aHVZVzFsYzNCaFkyVXBJSHRjYmx4MFhIUnNaWFFnY0hKbGRsUnBiV1U3WEc1Y2RGeDBiR1YwSUdWdVlXSnNaVTkyWlhKeWFXUmxJRDBnYm5Wc2JEdGNibHgwWEhSc1pYUWdibUZ0WlhOd1lXTmxjME5oWTJobE8xeHVYSFJjZEd4bGRDQmxibUZpYkdWa1EyRmphR1U3WEc1Y2JseDBYSFJtZFc1amRHbHZiaUJrWldKMVp5Z3VMaTVoY21kektTQjdYRzVjZEZ4MFhIUXZMeUJFYVhOaFlteGxaRDljYmx4MFhIUmNkR2xtSUNnaFpHVmlkV2N1Wlc1aFlteGxaQ2tnZTF4dVhIUmNkRngwWEhSeVpYUjFjbTQ3WEc1Y2RGeDBYSFI5WEc1Y2JseDBYSFJjZEdOdmJuTjBJSE5sYkdZZ1BTQmtaV0oxWnp0Y2JseHVYSFJjZEZ4MEx5OGdVMlYwSUdCa2FXWm1ZQ0IwYVcxbGMzUmhiWEJjYmx4MFhIUmNkR052Ym5OMElHTjFjbklnUFNCT2RXMWlaWElvYm1WM0lFUmhkR1VvS1NrN1hHNWNkRngwWEhSamIyNXpkQ0J0Y3lBOUlHTjFjbklnTFNBb2NISmxkbFJwYldVZ2ZId2dZM1Z5Y2lrN1hHNWNkRngwWEhSelpXeG1MbVJwWm1ZZ1BTQnRjenRjYmx4MFhIUmNkSE5sYkdZdWNISmxkaUE5SUhCeVpYWlVhVzFsTzF4dVhIUmNkRngwYzJWc1ppNWpkWEp5SUQwZ1kzVnljanRjYmx4MFhIUmNkSEJ5WlhaVWFXMWxJRDBnWTNWeWNqdGNibHh1WEhSY2RGeDBZWEpuYzFzd1hTQTlJR055WldGMFpVUmxZblZuTG1OdlpYSmpaU2hoY21keld6QmRLVHRjYmx4dVhIUmNkRngwYVdZZ0tIUjVjR1Z2WmlCaGNtZHpXekJkSUNFOVBTQW5jM1J5YVc1bkp5a2dlMXh1WEhSY2RGeDBYSFF2THlCQmJubDBhR2x1WnlCbGJITmxJR3hsZENkeklHbHVjM0JsWTNRZ2QybDBhQ0FsVDF4dVhIUmNkRngwWEhSaGNtZHpMblZ1YzJocFpuUW9KeVZQSnlrN1hHNWNkRngwWEhSOVhHNWNibHgwWEhSY2RDOHZJRUZ3Y0d4NUlHRnVlU0JnWm05eWJXRjBkR1Z5YzJBZ2RISmhibk5tYjNKdFlYUnBiMjV6WEc1Y2RGeDBYSFJzWlhRZ2FXNWtaWGdnUFNBd08xeHVYSFJjZEZ4MFlYSm5jMXN3WFNBOUlHRnlaM05iTUYwdWNtVndiR0ZqWlNndkpTaGJZUzE2UVMxYUpWMHBMMmNzSUNodFlYUmphQ3dnWm05eWJXRjBLU0E5UGlCN1hHNWNkRngwWEhSY2RDOHZJRWxtSUhkbElHVnVZMjkxYm5SbGNpQmhiaUJsYzJOaGNHVmtJQ1VnZEdobGJpQmtiMjRuZENCcGJtTnlaV0Z6WlNCMGFHVWdZWEp5WVhrZ2FXNWtaWGhjYmx4MFhIUmNkRngwYVdZZ0tHMWhkR05vSUQwOVBTQW5KU1VuS1NCN1hHNWNkRngwWEhSY2RGeDBjbVYwZFhKdUlDY2xKenRjYmx4MFhIUmNkRngwZlZ4dVhIUmNkRngwWEhScGJtUmxlQ3NyTzF4dVhIUmNkRngwWEhSamIyNXpkQ0JtYjNKdFlYUjBaWElnUFNCamNtVmhkR1ZFWldKMVp5NW1iM0p0WVhSMFpYSnpXMlp2Y20xaGRGMDdYRzVjZEZ4MFhIUmNkR2xtSUNoMGVYQmxiMllnWm05eWJXRjBkR1Z5SUQwOVBTQW5ablZ1WTNScGIyNG5LU0I3WEc1Y2RGeDBYSFJjZEZ4MFkyOXVjM1FnZG1Gc0lEMGdZWEpuYzF0cGJtUmxlRjA3WEc1Y2RGeDBYSFJjZEZ4MGJXRjBZMmdnUFNCbWIzSnRZWFIwWlhJdVkyRnNiQ2h6Wld4bUxDQjJZV3dwTzF4dVhHNWNkRngwWEhSY2RGeDBMeThnVG05M0lIZGxJRzVsWldRZ2RHOGdjbVZ0YjNabElHQmhjbWR6VzJsdVpHVjRYV0FnYzJsdVkyVWdhWFFuY3lCcGJteHBibVZrSUdsdUlIUm9aU0JnWm05eWJXRjBZRnh1WEhSY2RGeDBYSFJjZEdGeVozTXVjM0JzYVdObEtHbHVaR1Y0TENBeEtUdGNibHgwWEhSY2RGeDBYSFJwYm1SbGVDMHRPMXh1WEhSY2RGeDBYSFI5WEc1Y2RGeDBYSFJjZEhKbGRIVnliaUJ0WVhSamFEdGNibHgwWEhSY2RIMHBPMXh1WEc1Y2RGeDBYSFF2THlCQmNIQnNlU0JsYm5ZdGMzQmxZMmxtYVdNZ1ptOXliV0YwZEdsdVp5QW9ZMjlzYjNKekxDQmxkR011S1Z4dVhIUmNkRngwWTNKbFlYUmxSR1ZpZFdjdVptOXliV0YwUVhKbmN5NWpZV3hzS0hObGJHWXNJR0Z5WjNNcE8xeHVYRzVjZEZ4MFhIUmpiMjV6ZENCc2IyZEdiaUE5SUhObGJHWXViRzluSUh4OElHTnlaV0YwWlVSbFluVm5MbXh2Wnp0Y2JseDBYSFJjZEd4dlowWnVMbUZ3Y0d4NUtITmxiR1lzSUdGeVozTXBPMXh1WEhSY2RIMWNibHh1WEhSY2RHUmxZblZuTG01aGJXVnpjR0ZqWlNBOUlHNWhiV1Z6Y0dGalpUdGNibHgwWEhSa1pXSjFaeTUxYzJWRGIyeHZjbk1nUFNCamNtVmhkR1ZFWldKMVp5NTFjMlZEYjJ4dmNuTW9LVHRjYmx4MFhIUmtaV0oxWnk1amIyeHZjaUE5SUdOeVpXRjBaVVJsWW5WbkxuTmxiR1ZqZEVOdmJHOXlLRzVoYldWemNHRmpaU2s3WEc1Y2RGeDBaR1ZpZFdjdVpYaDBaVzVrSUQwZ1pYaDBaVzVrTzF4dVhIUmNkR1JsWW5WbkxtUmxjM1J5YjNrZ1BTQmpjbVZoZEdWRVpXSjFaeTVrWlhOMGNtOTVPeUF2THlCWVdGZ2dWR1Z0Y0c5eVlYSjVMaUJYYVd4c0lHSmxJSEpsYlc5MlpXUWdhVzRnZEdobElHNWxlSFFnYldGcWIzSWdjbVZzWldGelpTNWNibHh1WEhSY2RFOWlhbVZqZEM1a1pXWnBibVZRY205d1pYSjBlU2hrWldKMVp5d2dKMlZ1WVdKc1pXUW5MQ0I3WEc1Y2RGeDBYSFJsYm5WdFpYSmhZbXhsT2lCMGNuVmxMRnh1WEhSY2RGeDBZMjl1Wm1sbmRYSmhZbXhsT2lCbVlXeHpaU3hjYmx4MFhIUmNkR2RsZERvZ0tDa2dQVDRnZTF4dVhIUmNkRngwWEhScFppQW9aVzVoWW14bFQzWmxjbkpwWkdVZ0lUMDlJRzUxYkd3cElIdGNibHgwWEhSY2RGeDBYSFJ5WlhSMWNtNGdaVzVoWW14bFQzWmxjbkpwWkdVN1hHNWNkRngwWEhSY2RIMWNibHgwWEhSY2RGeDBhV1lnS0c1aGJXVnpjR0ZqWlhORFlXTm9aU0FoUFQwZ1kzSmxZWFJsUkdWaWRXY3VibUZ0WlhOd1lXTmxjeWtnZTF4dVhIUmNkRngwWEhSY2RHNWhiV1Z6Y0dGalpYTkRZV05vWlNBOUlHTnlaV0YwWlVSbFluVm5MbTVoYldWemNHRmpaWE03WEc1Y2RGeDBYSFJjZEZ4MFpXNWhZbXhsWkVOaFkyaGxJRDBnWTNKbFlYUmxSR1ZpZFdjdVpXNWhZbXhsWkNodVlXMWxjM0JoWTJVcE8xeHVYSFJjZEZ4MFhIUjlYRzVjYmx4MFhIUmNkRngwY21WMGRYSnVJR1Z1WVdKc1pXUkRZV05vWlR0Y2JseDBYSFJjZEgwc1hHNWNkRngwWEhSelpYUTZJSFlnUFQ0Z2UxeHVYSFJjZEZ4MFhIUmxibUZpYkdWUGRtVnljbWxrWlNBOUlIWTdYRzVjZEZ4MFhIUjlYRzVjZEZ4MGZTazdYRzVjYmx4MFhIUXZMeUJGYm5ZdGMzQmxZMmxtYVdNZ2FXNXBkR2xoYkdsNllYUnBiMjRnYkc5bmFXTWdabTl5SUdSbFluVm5JR2x1YzNSaGJtTmxjMXh1WEhSY2RHbG1JQ2gwZVhCbGIyWWdZM0psWVhSbFJHVmlkV2N1YVc1cGRDQTlQVDBnSjJaMWJtTjBhVzl1SnlrZ2UxeHVYSFJjZEZ4MFkzSmxZWFJsUkdWaWRXY3VhVzVwZENoa1pXSjFaeWs3WEc1Y2RGeDBmVnh1WEc1Y2RGeDBjbVYwZFhKdUlHUmxZblZuTzF4dVhIUjlYRzVjYmx4MFpuVnVZM1JwYjI0Z1pYaDBaVzVrS0c1aGJXVnpjR0ZqWlN3Z1pHVnNhVzFwZEdWeUtTQjdYRzVjZEZ4MFkyOXVjM1FnYm1WM1JHVmlkV2NnUFNCamNtVmhkR1ZFWldKMVp5aDBhR2x6TG01aGJXVnpjR0ZqWlNBcklDaDBlWEJsYjJZZ1pHVnNhVzFwZEdWeUlEMDlQU0FuZFc1a1pXWnBibVZrSnlBL0lDYzZKeUE2SUdSbGJHbHRhWFJsY2lrZ0t5QnVZVzFsYzNCaFkyVXBPMXh1WEhSY2RHNWxkMFJsWW5WbkxteHZaeUE5SUhSb2FYTXViRzluTzF4dVhIUmNkSEpsZEhWeWJpQnVaWGRFWldKMVp6dGNibHgwZlZ4dVhHNWNkQzhxS2x4dVhIUXFJRVZ1WVdKc1pYTWdZU0JrWldKMVp5QnRiMlJsSUdKNUlHNWhiV1Z6Y0dGalpYTXVJRlJvYVhNZ1kyRnVJR2x1WTJ4MVpHVWdiVzlrWlhOY2JseDBLaUJ6WlhCaGNtRjBaV1FnWW5rZ1lTQmpiMnh2YmlCaGJtUWdkMmxzWkdOaGNtUnpMbHh1WEhRcVhHNWNkQ29nUUhCaGNtRnRJSHRUZEhKcGJtZDlJRzVoYldWemNHRmpaWE5jYmx4MEtpQkFZWEJwSUhCMVlteHBZMXh1WEhRcUwxeHVYSFJtZFc1amRHbHZiaUJsYm1GaWJHVW9ibUZ0WlhOd1lXTmxjeWtnZTF4dVhIUmNkR055WldGMFpVUmxZblZuTG5OaGRtVW9ibUZ0WlhOd1lXTmxjeWs3WEc1Y2RGeDBZM0psWVhSbFJHVmlkV2N1Ym1GdFpYTndZV05sY3lBOUlHNWhiV1Z6Y0dGalpYTTdYRzVjYmx4MFhIUmpjbVZoZEdWRVpXSjFaeTV1WVcxbGN5QTlJRnRkTzF4dVhIUmNkR055WldGMFpVUmxZblZuTG5OcmFYQnpJRDBnVzEwN1hHNWNibHgwWEhSc1pYUWdhVHRjYmx4MFhIUmpiMjV6ZENCemNHeHBkQ0E5SUNoMGVYQmxiMllnYm1GdFpYTndZV05sY3lBOVBUMGdKM04wY21sdVp5Y2dQeUJ1WVcxbGMzQmhZMlZ6SURvZ0p5Y3BMbk53YkdsMEtDOWJYRnh6TEYwckx5azdYRzVjZEZ4MFkyOXVjM1FnYkdWdUlEMGdjM0JzYVhRdWJHVnVaM1JvTzF4dVhHNWNkRngwWm05eUlDaHBJRDBnTURzZ2FTQThJR3hsYmpzZ2FTc3JLU0I3WEc1Y2RGeDBYSFJwWmlBb0lYTndiR2wwVzJsZEtTQjdYRzVjZEZ4MFhIUmNkQzh2SUdsbmJtOXlaU0JsYlhCMGVTQnpkSEpwYm1kelhHNWNkRngwWEhSY2RHTnZiblJwYm5WbE8xeHVYSFJjZEZ4MGZWeHVYRzVjZEZ4MFhIUnVZVzFsYzNCaFkyVnpJRDBnYzNCc2FYUmJhVjB1Y21Wd2JHRmpaU2d2WEZ3cUwyY3NJQ2N1S2o4bktUdGNibHh1WEhSY2RGeDBhV1lnS0c1aGJXVnpjR0ZqWlhOYk1GMGdQVDA5SUNjdEp5a2dlMXh1WEhSY2RGeDBYSFJqY21WaGRHVkVaV0oxWnk1emEybHdjeTV3ZFhOb0tHNWxkeUJTWldkRmVIQW9KMTRuSUNzZ2JtRnRaWE53WVdObGN5NXpiR2xqWlNneEtTQXJJQ2NrSnlrcE8xeHVYSFJjZEZ4MGZTQmxiSE5sSUh0Y2JseDBYSFJjZEZ4MFkzSmxZWFJsUkdWaWRXY3VibUZ0WlhNdWNIVnphQ2h1WlhjZ1VtVm5SWGh3S0NkZUp5QXJJRzVoYldWemNHRmpaWE1nS3lBbkpDY3BLVHRjYmx4MFhIUmNkSDFjYmx4MFhIUjlYRzVjZEgxY2JseHVYSFF2S2lwY2JseDBLaUJFYVhOaFlteGxJR1JsWW5WbklHOTFkSEIxZEM1Y2JseDBLbHh1WEhRcUlFQnlaWFIxY200Z2UxTjBjbWx1WjMwZ2JtRnRaWE53WVdObGMxeHVYSFFxSUVCaGNHa2djSFZpYkdsalhHNWNkQ292WEc1Y2RHWjFibU4wYVc5dUlHUnBjMkZpYkdVb0tTQjdYRzVjZEZ4MFkyOXVjM1FnYm1GdFpYTndZV05sY3lBOUlGdGNibHgwWEhSY2RDNHVMbU55WldGMFpVUmxZblZuTG01aGJXVnpMbTFoY0NoMGIwNWhiV1Z6Y0dGalpTa3NYRzVjZEZ4MFhIUXVMaTVqY21WaGRHVkVaV0oxWnk1emEybHdjeTV0WVhBb2RHOU9ZVzFsYzNCaFkyVXBMbTFoY0NodVlXMWxjM0JoWTJVZ1BUNGdKeTBuSUNzZ2JtRnRaWE53WVdObEtWeHVYSFJjZEYwdWFtOXBiaWduTENjcE8xeHVYSFJjZEdOeVpXRjBaVVJsWW5WbkxtVnVZV0pzWlNnbkp5azdYRzVjZEZ4MGNtVjBkWEp1SUc1aGJXVnpjR0ZqWlhNN1hHNWNkSDFjYmx4dVhIUXZLaXBjYmx4MEtpQlNaWFIxY201eklIUnlkV1VnYVdZZ2RHaGxJR2RwZG1WdUlHMXZaR1VnYm1GdFpTQnBjeUJsYm1GaWJHVmtMQ0JtWVd4elpTQnZkR2hsY25kcGMyVXVYRzVjZENwY2JseDBLaUJBY0dGeVlXMGdlMU4wY21sdVozMGdibUZ0WlZ4dVhIUXFJRUJ5WlhSMWNtNGdlMEp2YjJ4bFlXNTlYRzVjZENvZ1FHRndhU0J3ZFdKc2FXTmNibHgwS2k5Y2JseDBablZ1WTNScGIyNGdaVzVoWW14bFpDaHVZVzFsS1NCN1hHNWNkRngwYVdZZ0tHNWhiV1ZiYm1GdFpTNXNaVzVuZEdnZ0xTQXhYU0E5UFQwZ0p5b25LU0I3WEc1Y2RGeDBYSFJ5WlhSMWNtNGdkSEoxWlR0Y2JseDBYSFI5WEc1Y2JseDBYSFJzWlhRZ2FUdGNibHgwWEhSc1pYUWdiR1Z1TzF4dVhHNWNkRngwWm05eUlDaHBJRDBnTUN3Z2JHVnVJRDBnWTNKbFlYUmxSR1ZpZFdjdWMydHBjSE11YkdWdVozUm9PeUJwSUR3Z2JHVnVPeUJwS3lzcElIdGNibHgwWEhSY2RHbG1JQ2hqY21WaGRHVkVaV0oxWnk1emEybHdjMXRwWFM1MFpYTjBLRzVoYldVcEtTQjdYRzVjZEZ4MFhIUmNkSEpsZEhWeWJpQm1ZV3h6WlR0Y2JseDBYSFJjZEgxY2JseDBYSFI5WEc1Y2JseDBYSFJtYjNJZ0tHa2dQU0F3TENCc1pXNGdQU0JqY21WaGRHVkVaV0oxWnk1dVlXMWxjeTVzWlc1bmRHZzdJR2tnUENCc1pXNDdJR2tyS3lrZ2UxeHVYSFJjZEZ4MGFXWWdLR055WldGMFpVUmxZblZuTG01aGJXVnpXMmxkTG5SbGMzUW9ibUZ0WlNrcElIdGNibHgwWEhSY2RGeDBjbVYwZFhKdUlIUnlkV1U3WEc1Y2RGeDBYSFI5WEc1Y2RGeDBmVnh1WEc1Y2RGeDBjbVYwZFhKdUlHWmhiSE5sTzF4dVhIUjlYRzVjYmx4MEx5b3FYRzVjZENvZ1EyOXVkbVZ5ZENCeVpXZGxlSEFnZEc4Z2JtRnRaWE53WVdObFhHNWNkQ3BjYmx4MEtpQkFjR0Z5WVcwZ2UxSmxaMFY0Y0gwZ2NtVm5lR1Z3WEc1Y2RDb2dRSEpsZEhWeWJpQjdVM1J5YVc1bmZTQnVZVzFsYzNCaFkyVmNibHgwS2lCQVlYQnBJSEJ5YVhaaGRHVmNibHgwS2k5Y2JseDBablZ1WTNScGIyNGdkRzlPWVcxbGMzQmhZMlVvY21WblpYaHdLU0I3WEc1Y2RGeDBjbVYwZFhKdUlISmxaMlY0Y0M1MGIxTjBjbWx1WnlncFhHNWNkRngwWEhRdWMzVmljM1J5YVc1bktESXNJSEpsWjJWNGNDNTBiMU4wY21sdVp5Z3BMbXhsYm1kMGFDQXRJRElwWEc1Y2RGeDBYSFF1Y21Wd2JHRmpaU2d2WEZ3dVhGd3FYRncvSkM4c0lDY3FKeWs3WEc1Y2RIMWNibHh1WEhRdktpcGNibHgwS2lCRGIyVnlZMlVnWUhaaGJHQXVYRzVjZENwY2JseDBLaUJBY0dGeVlXMGdlMDFwZUdWa2ZTQjJZV3hjYmx4MEtpQkFjbVYwZFhKdUlIdE5hWGhsWkgxY2JseDBLaUJBWVhCcElIQnlhWFpoZEdWY2JseDBLaTljYmx4MFpuVnVZM1JwYjI0Z1kyOWxjbU5sS0haaGJDa2dlMXh1WEhSY2RHbG1JQ2gyWVd3Z2FXNXpkR0Z1WTJWdlppQkZjbkp2Y2lrZ2UxeHVYSFJjZEZ4MGNtVjBkWEp1SUhaaGJDNXpkR0ZqYXlCOGZDQjJZV3d1YldWemMyRm5aVHRjYmx4MFhIUjlYRzVjZEZ4MGNtVjBkWEp1SUhaaGJEdGNibHgwZlZ4dVhHNWNkQzhxS2x4dVhIUXFJRmhZV0NCRVR5Qk9UMVFnVlZORkxpQlVhR2x6SUdseklHRWdkR1Z0Y0c5eVlYSjVJSE4wZFdJZ1puVnVZM1JwYjI0dVhHNWNkQ29nV0ZoWUlFbDBJRmRKVEV3Z1ltVWdjbVZ0YjNabFpDQnBiaUIwYUdVZ2JtVjRkQ0J0WVdwdmNpQnlaV3hsWVhObExseHVYSFFxTDF4dVhIUm1kVzVqZEdsdmJpQmtaWE4wY205NUtDa2dlMXh1WEhSY2RHTnZibk52YkdVdWQyRnliaWduU1c1emRHRnVZMlVnYldWMGFHOWtJR0JrWldKMVp5NWtaWE4wY205NUtDbGdJR2x6SUdSbGNISmxZMkYwWldRZ1lXNWtJRzV2SUd4dmJtZGxjaUJrYjJWeklHRnVlWFJvYVc1bkxpQkpkQ0IzYVd4c0lHSmxJSEpsYlc5MlpXUWdhVzRnZEdobElHNWxlSFFnYldGcWIzSWdkbVZ5YzJsdmJpQnZaaUJnWkdWaWRXZGdMaWNwTzF4dVhIUjlYRzVjYmx4MFkzSmxZWFJsUkdWaWRXY3VaVzVoWW14bEtHTnlaV0YwWlVSbFluVm5MbXh2WVdRb0tTazdYRzVjYmx4MGNtVjBkWEp1SUdOeVpXRjBaVVJsWW5Wbk8xeHVmVnh1WEc1dGIyUjFiR1V1Wlhod2IzSjBjeUE5SUhObGRIVndPMXh1SWl3aVhDSjFjMlVnYzNSeWFXTjBYQ0k3WEc1UFltcGxZM1F1WkdWbWFXNWxVSEp2Y0dWeWRIa29aWGh3YjNKMGN5d2dYQ0pmWDJWelRXOWtkV3hsWENJc0lIc2dkbUZzZFdVNklIUnlkV1VnZlNrN1hHNWxlSEJ2Y25SekxtUmxabUYxYkhSQ2FXNWhjbmxVZVhCbElEMGdaWGh3YjNKMGN5NTFjMmx1WjBKeWIzZHpaWEpYWldKVGIyTnJaWFFnUFNCbGVIQnZjblJ6TGxkbFlsTnZZMnRsZENBOUlHVjRjRzl5ZEhNdWJtVjRkRlJwWTJzZ1BTQjJiMmxrSURBN1hHNWpiMjV6ZENCbmJHOWlZV3hVYUdselgycHpYekVnUFNCeVpYRjFhWEpsS0Z3aUxpNHZaMnh2WW1Gc1ZHaHBjeTVxYzF3aUtUdGNibVY0Y0c5eWRITXVibVY0ZEZScFkyc2dQU0FvS0NrZ1BUNGdlMXh1SUNBZ0lHTnZibk4wSUdselVISnZiV2x6WlVGMllXbHNZV0pzWlNBOUlIUjVjR1Z2WmlCUWNtOXRhWE5sSUQwOVBTQmNJbVoxYm1OMGFXOXVYQ0lnSmlZZ2RIbHdaVzltSUZCeWIyMXBjMlV1Y21WemIyeDJaU0E5UFQwZ1hDSm1kVzVqZEdsdmJsd2lPMXh1SUNBZ0lHbG1JQ2hwYzFCeWIyMXBjMlZCZG1GcGJHRmliR1VwSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUNoallpa2dQVDRnVUhKdmJXbHpaUzV5WlhOdmJIWmxLQ2t1ZEdobGJpaGpZaWs3WEc0Z0lDQWdmVnh1SUNBZ0lHVnNjMlVnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnS0dOaUxDQnpaWFJVYVcxbGIzVjBSbTRwSUQwK0lITmxkRlJwYldWdmRYUkdiaWhqWWl3Z01DazdYRzRnSUNBZ2ZWeHVmU2tvS1R0Y2JtVjRjRzl5ZEhNdVYyVmlVMjlqYTJWMElEMGdaMnh2WW1Gc1ZHaHBjMTlxYzE4eExtZHNiMkpoYkZSb2FYTlRhR2x0TGxkbFlsTnZZMnRsZENCOGZDQm5iRzlpWVd4VWFHbHpYMnB6WHpFdVoyeHZZbUZzVkdocGMxTm9hVzB1VFc5NlYyVmlVMjlqYTJWME8xeHVaWGh3YjNKMGN5NTFjMmx1WjBKeWIzZHpaWEpYWldKVGIyTnJaWFFnUFNCMGNuVmxPMXh1Wlhod2IzSjBjeTVrWldaaGRXeDBRbWx1WVhKNVZIbHdaU0E5SUZ3aVlYSnlZWGxpZFdabVpYSmNJanRjYmlJc0lsd2lkWE5sSUhOMGNtbGpkRndpTzF4dVQySnFaV04wTG1SbFptbHVaVkJ5YjNCbGNuUjVLR1Y0Y0c5eWRITXNJRndpWDE5bGMwMXZaSFZzWlZ3aUxDQjdJSFpoYkhWbE9pQjBjblZsSUgwcE8xeHVaWGh3YjNKMGN5NW9ZWE5EVDFKVElEMGdkbTlwWkNBd08xeHVMeThnYVcxd2IzSjBaV1FnWm5KdmJTQm9kSFJ3Y3pvdkwyZHBkR2gxWWk1amIyMHZZMjl0Y0c5dVpXNTBMMmhoY3kxamIzSnpYRzVzWlhRZ2RtRnNkV1VnUFNCbVlXeHpaVHRjYm5SeWVTQjdYRzRnSUNBZ2RtRnNkV1VnUFNCMGVYQmxiMllnV0UxTVNIUjBjRkpsY1hWbGMzUWdJVDA5SUNkMWJtUmxabWx1WldRbklDWW1YRzRnSUNBZ0lDQWdJQ2QzYVhSb1EzSmxaR1Z1ZEdsaGJITW5JR2x1SUc1bGR5QllUVXhJZEhSd1VtVnhkV1Z6ZENncE8xeHVmVnh1WTJGMFkyZ2dLR1Z5Y2lrZ2UxeHVJQ0FnSUM4dklHbG1JRmhOVEVoMGRIQWdjM1Z3Y0c5eWRDQnBjeUJrYVhOaFlteGxaQ0JwYmlCSlJTQjBhR1Z1SUdsMElIZHBiR3dnZEdoeWIzZGNiaUFnSUNBdkx5QjNhR1Z1SUhSeWVXbHVaeUIwYnlCamNtVmhkR1ZjYm4xY2JtVjRjRzl5ZEhNdWFHRnpRMDlTVXlBOUlIWmhiSFZsTzF4dUlpd2lMeW9xWEc0Z0tpQkpibWwwYVdGc2FYcGxJR0VnYm1WM0lHQkZiV2wwZEdWeVlDNWNiaUFxWEc0Z0tpQkFZWEJwSUhCMVlteHBZMXh1SUNvdlhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQkZiV2wwZEdWeUtHOWlhaWtnZTF4dUlDQnBaaUFvYjJKcUtTQnlaWFIxY200Z2JXbDRhVzRvYjJKcUtUdGNibjFjYmx4dUx5b3FYRzRnS2lCTmFYaHBiaUIwYUdVZ1pXMXBkSFJsY2lCd2NtOXdaWEowYVdWekxseHVJQ3BjYmlBcUlFQndZWEpoYlNCN1QySnFaV04wZlNCdlltcGNiaUFxSUVCeVpYUjFjbTRnZTA5aWFtVmpkSDFjYmlBcUlFQmhjR2tnY0hKcGRtRjBaVnh1SUNvdlhHNWNibVoxYm1OMGFXOXVJRzFwZUdsdUtHOWlhaWtnZTF4dUlDQm1iM0lnS0haaGNpQnJaWGtnYVc0Z1JXMXBkSFJsY2k1d2NtOTBiM1I1Y0dVcElIdGNiaUFnSUNCdlltcGJhMlY1WFNBOUlFVnRhWFIwWlhJdWNISnZkRzkwZVhCbFcydGxlVjA3WEc0Z0lIMWNiaUFnY21WMGRYSnVJRzlpYWp0Y2JuMWNibHh1THlvcVhHNGdLaUJNYVhOMFpXNGdiMjRnZEdobElHZHBkbVZ1SUdCbGRtVnVkR0FnZDJsMGFDQmdabTVnTGx4dUlDcGNiaUFxSUVCd1lYSmhiU0I3VTNSeWFXNW5mU0JsZG1WdWRGeHVJQ29nUUhCaGNtRnRJSHRHZFc1amRHbHZibjBnWm01Y2JpQXFJRUJ5WlhSMWNtNGdlMFZ0YVhSMFpYSjlYRzRnS2lCQVlYQnBJSEIxWW14cFkxeHVJQ292WEc1Y2JrVnRhWFIwWlhJdWNISnZkRzkwZVhCbExtOXVJRDFjYmtWdGFYUjBaWEl1Y0hKdmRHOTBlWEJsTG1Ga1pFVjJaVzUwVEdsemRHVnVaWElnUFNCbWRXNWpkR2x2YmlobGRtVnVkQ3dnWm00cGUxeHVJQ0IwYUdsekxsOWpZV3hzWW1GamEzTWdQU0IwYUdsekxsOWpZV3hzWW1GamEzTWdmSHdnZTMwN1hHNGdJQ2gwYUdsekxsOWpZV3hzWW1GamEzTmJKeVFuSUNzZ1pYWmxiblJkSUQwZ2RHaHBjeTVmWTJGc2JHSmhZMnR6V3lja0p5QXJJR1YyWlc1MFhTQjhmQ0JiWFNsY2JpQWdJQ0F1Y0hWemFDaG1iaWs3WEc0Z0lISmxkSFZ5YmlCMGFHbHpPMXh1ZlR0Y2JseHVMeW9xWEc0Z0tpQkJaR1J6SUdGdUlHQmxkbVZ1ZEdBZ2JHbHpkR1Z1WlhJZ2RHaGhkQ0IzYVd4c0lHSmxJR2x1ZG05clpXUWdZU0J6YVc1bmJHVmNiaUFxSUhScGJXVWdkR2hsYmlCaGRYUnZiV0YwYVdOaGJHeDVJSEpsYlc5MlpXUXVYRzRnS2x4dUlDb2dRSEJoY21GdElIdFRkSEpwYm1kOUlHVjJaVzUwWEc0Z0tpQkFjR0Z5WVcwZ2UwWjFibU4wYVc5dWZTQm1ibHh1SUNvZ1FISmxkSFZ5YmlCN1JXMXBkSFJsY24xY2JpQXFJRUJoY0drZ2NIVmliR2xqWEc0Z0tpOWNibHh1UlcxcGRIUmxjaTV3Y205MGIzUjVjR1V1YjI1alpTQTlJR1oxYm1OMGFXOXVLR1YyWlc1MExDQm1iaWw3WEc0Z0lHWjFibU4wYVc5dUlHOXVLQ2tnZTF4dUlDQWdJSFJvYVhNdWIyWm1LR1YyWlc1MExDQnZiaWs3WEc0Z0lDQWdabTR1WVhCd2JIa29kR2hwY3l3Z1lYSm5kVzFsYm5SektUdGNiaUFnZlZ4dVhHNGdJRzl1TG1adUlEMGdabTQ3WEc0Z0lIUm9hWE11YjI0b1pYWmxiblFzSUc5dUtUdGNiaUFnY21WMGRYSnVJSFJvYVhNN1hHNTlPMXh1WEc0dktpcGNiaUFxSUZKbGJXOTJaU0IwYUdVZ1oybDJaVzRnWTJGc2JHSmhZMnNnWm05eUlHQmxkbVZ1ZEdBZ2IzSWdZV3hzWEc0Z0tpQnlaV2RwYzNSbGNtVmtJR05oYkd4aVlXTnJjeTVjYmlBcVhHNGdLaUJBY0dGeVlXMGdlMU4wY21sdVozMGdaWFpsYm5SY2JpQXFJRUJ3WVhKaGJTQjdSblZ1WTNScGIyNTlJR1p1WEc0Z0tpQkFjbVYwZFhKdUlIdEZiV2wwZEdWeWZWeHVJQ29nUUdGd2FTQndkV0pzYVdOY2JpQXFMMXh1WEc1RmJXbDBkR1Z5TG5CeWIzUnZkSGx3WlM1dlptWWdQVnh1UlcxcGRIUmxjaTV3Y205MGIzUjVjR1V1Y21WdGIzWmxUR2x6ZEdWdVpYSWdQVnh1UlcxcGRIUmxjaTV3Y205MGIzUjVjR1V1Y21WdGIzWmxRV3hzVEdsemRHVnVaWEp6SUQxY2JrVnRhWFIwWlhJdWNISnZkRzkwZVhCbExuSmxiVzkyWlVWMlpXNTBUR2x6ZEdWdVpYSWdQU0JtZFc1amRHbHZiaWhsZG1WdWRDd2dabTRwZTF4dUlDQjBhR2x6TGw5allXeHNZbUZqYTNNZ1BTQjBhR2x6TGw5allXeHNZbUZqYTNNZ2ZId2dlMzA3WEc1Y2JpQWdMeThnWVd4c1hHNGdJR2xtSUNnd0lEMDlJR0Z5WjNWdFpXNTBjeTVzWlc1bmRHZ3BJSHRjYmlBZ0lDQjBhR2x6TGw5allXeHNZbUZqYTNNZ1BTQjdmVHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjenRjYmlBZ2ZWeHVYRzRnSUM4dklITndaV05wWm1saklHVjJaVzUwWEc0Z0lIWmhjaUJqWVd4c1ltRmphM01nUFNCMGFHbHpMbDlqWVd4c1ltRmphM05iSnlRbklDc2daWFpsYm5SZE8xeHVJQ0JwWmlBb0lXTmhiR3hpWVdOcmN5a2djbVYwZFhKdUlIUm9hWE03WEc1Y2JpQWdMeThnY21WdGIzWmxJR0ZzYkNCb1lXNWtiR1Z5YzF4dUlDQnBaaUFvTVNBOVBTQmhjbWQxYldWdWRITXViR1Z1WjNSb0tTQjdYRzRnSUNBZ1pHVnNaWFJsSUhSb2FYTXVYMk5oYkd4aVlXTnJjMXNuSkNjZ0t5QmxkbVZ1ZEYwN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNN1hHNGdJSDFjYmx4dUlDQXZMeUJ5WlcxdmRtVWdjM0JsWTJsbWFXTWdhR0Z1Wkd4bGNseHVJQ0IyWVhJZ1kySTdYRzRnSUdadmNpQW9kbUZ5SUdrZ1BTQXdPeUJwSUR3Z1kyRnNiR0poWTJ0ekxteGxibWQwYURzZ2FTc3JLU0I3WEc0Z0lDQWdZMklnUFNCallXeHNZbUZqYTNOYmFWMDdYRzRnSUNBZ2FXWWdLR05pSUQwOVBTQm1iaUI4ZkNCallpNW1iaUE5UFQwZ1ptNHBJSHRjYmlBZ0lDQWdJR05oYkd4aVlXTnJjeTV6Y0d4cFkyVW9hU3dnTVNrN1hHNGdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0F2THlCU1pXMXZkbVVnWlhabGJuUWdjM0JsWTJsbWFXTWdZWEp5WVhseklHWnZjaUJsZG1WdWRDQjBlWEJsY3lCMGFHRjBJRzV2WEc0Z0lDOHZJRzl1WlNCcGN5QnpkV0p6WTNKcFltVmtJR1p2Y2lCMGJ5QmhkbTlwWkNCdFpXMXZjbmtnYkdWaGF5NWNiaUFnYVdZZ0tHTmhiR3hpWVdOcmN5NXNaVzVuZEdnZ1BUMDlJREFwSUh0Y2JpQWdJQ0JrWld4bGRHVWdkR2hwY3k1ZlkyRnNiR0poWTJ0eld5Y2tKeUFySUdWMlpXNTBYVHRjYmlBZ2ZWeHVYRzRnSUhKbGRIVnliaUIwYUdsek8xeHVmVHRjYmx4dUx5b3FYRzRnS2lCRmJXbDBJR0JsZG1WdWRHQWdkMmwwYUNCMGFHVWdaMmwyWlc0Z1lYSm5jeTVjYmlBcVhHNGdLaUJBY0dGeVlXMGdlMU4wY21sdVozMGdaWFpsYm5SY2JpQXFJRUJ3WVhKaGJTQjdUV2w0WldSOUlDNHVMbHh1SUNvZ1FISmxkSFZ5YmlCN1JXMXBkSFJsY24xY2JpQXFMMXh1WEc1RmJXbDBkR1Z5TG5CeWIzUnZkSGx3WlM1bGJXbDBJRDBnWm5WdVkzUnBiMjRvWlhabGJuUXBlMXh1SUNCMGFHbHpMbDlqWVd4c1ltRmphM01nUFNCMGFHbHpMbDlqWVd4c1ltRmphM01nZkh3Z2UzMDdYRzVjYmlBZ2RtRnlJR0Z5WjNNZ1BTQnVaWGNnUVhKeVlYa29ZWEpuZFcxbGJuUnpMbXhsYm1kMGFDQXRJREVwWEc0Z0lDQWdMQ0JqWVd4c1ltRmphM01nUFNCMGFHbHpMbDlqWVd4c1ltRmphM05iSnlRbklDc2daWFpsYm5SZE8xeHVYRzRnSUdadmNpQW9kbUZ5SUdrZ1BTQXhPeUJwSUR3Z1lYSm5kVzFsYm5SekxteGxibWQwYURzZ2FTc3JLU0I3WEc0Z0lDQWdZWEpuYzF0cElDMGdNVjBnUFNCaGNtZDFiV1Z1ZEhOYmFWMDdYRzRnSUgxY2JseHVJQ0JwWmlBb1kyRnNiR0poWTJ0ektTQjdYRzRnSUNBZ1kyRnNiR0poWTJ0eklEMGdZMkZzYkdKaFkydHpMbk5zYVdObEtEQXBPMXh1SUNBZ0lHWnZjaUFvZG1GeUlHa2dQU0F3TENCc1pXNGdQU0JqWVd4c1ltRmphM011YkdWdVozUm9PeUJwSUR3Z2JHVnVPeUFySzJrcElIdGNiaUFnSUNBZ0lHTmhiR3hpWVdOcmMxdHBYUzVoY0hCc2VTaDBhR2x6TENCaGNtZHpLVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0J5WlhSMWNtNGdkR2hwY3p0Y2JuMDdYRzVjYmk4dklHRnNhV0Z6SUhWelpXUWdabTl5SUhKbGMyVnlkbVZrSUdWMlpXNTBjeUFvY0hKdmRHVmpkR1ZrSUcxbGRHaHZaQ2xjYmtWdGFYUjBaWEl1Y0hKdmRHOTBlWEJsTG1WdGFYUlNaWE5sY25abFpDQTlJRVZ0YVhSMFpYSXVjSEp2ZEc5MGVYQmxMbVZ0YVhRN1hHNWNiaThxS2x4dUlDb2dVbVYwZFhKdUlHRnljbUY1SUc5bUlHTmhiR3hpWVdOcmN5Qm1iM0lnWUdWMlpXNTBZQzVjYmlBcVhHNGdLaUJBY0dGeVlXMGdlMU4wY21sdVozMGdaWFpsYm5SY2JpQXFJRUJ5WlhSMWNtNGdlMEZ5Y21GNWZWeHVJQ29nUUdGd2FTQndkV0pzYVdOY2JpQXFMMXh1WEc1RmJXbDBkR1Z5TG5CeWIzUnZkSGx3WlM1c2FYTjBaVzVsY25NZ1BTQm1kVzVqZEdsdmJpaGxkbVZ1ZENsN1hHNGdJSFJvYVhNdVgyTmhiR3hpWVdOcmN5QTlJSFJvYVhNdVgyTmhiR3hpWVdOcmN5QjhmQ0I3ZlR0Y2JpQWdjbVYwZFhKdUlIUm9hWE11WDJOaGJHeGlZV05yYzFzbkpDY2dLeUJsZG1WdWRGMGdmSHdnVzEwN1hHNTlPMXh1WEc0dktpcGNiaUFxSUVOb1pXTnJJR2xtSUhSb2FYTWdaVzFwZEhSbGNpQm9ZWE1nWUdWMlpXNTBZQ0JvWVc1a2JHVnljeTVjYmlBcVhHNGdLaUJBY0dGeVlXMGdlMU4wY21sdVozMGdaWFpsYm5SY2JpQXFJRUJ5WlhSMWNtNGdlMEp2YjJ4bFlXNTlYRzRnS2lCQVlYQnBJSEIxWW14cFkxeHVJQ292WEc1Y2JrVnRhWFIwWlhJdWNISnZkRzkwZVhCbExtaGhjMHhwYzNSbGJtVnljeUE5SUdaMWJtTjBhVzl1S0dWMlpXNTBLWHRjYmlBZ2NtVjBkWEp1SUNFaElIUm9hWE11YkdsemRHVnVaWEp6S0dWMlpXNTBLUzVzWlc1bmRHZzdYRzU5TzF4dUlpd2lYQ0oxYzJVZ2MzUnlhV04wWENJN1hHNTJZWElnWDE5cGJYQnZjblJFWldaaGRXeDBJRDBnS0hSb2FYTWdKaVlnZEdocGN5NWZYMmx0Y0c5eWRFUmxabUYxYkhRcElIeDhJR1oxYm1OMGFXOXVJQ2h0YjJRcElIdGNiaUFnSUNCeVpYUjFjbTRnS0cxdlpDQW1KaUJ0YjJRdVgxOWxjMDF2WkhWc1pTa2dQeUJ0YjJRZ09pQjdJRndpWkdWbVlYVnNkRndpT2lCdGIyUWdmVHRjYm4wN1hHNVBZbXBsWTNRdVpHVm1hVzVsVUhKdmNHVnlkSGtvWlhod2IzSjBjeXdnWENKZlgyVnpUVzlrZFd4bFhDSXNJSHNnZG1Gc2RXVTZJSFJ5ZFdVZ2ZTazdYRzVsZUhCdmNuUnpMbGRVSUQwZ2RtOXBaQ0F3TzF4dVkyOXVjM1FnZEhKaGJuTndiM0owWDJwelh6RWdQU0J5WlhGMWFYSmxLRndpTGk0dmRISmhibk53YjNKMExtcHpYQ0lwTzF4dVkyOXVjM1FnZDJWaWMyOWphMlYwWDJOdmJuTjBjblZqZEc5eVgycHpYekVnUFNCeVpYRjFhWEpsS0Z3aUxpOTNaV0p6YjJOclpYUXRZMjl1YzNSeWRXTjBiM0l1YW5OY0lpazdYRzVqYjI1emRDQmxibWRwYm1WZmFXOWZjR0Z5YzJWeVh6RWdQU0J5WlhGMWFYSmxLRndpWlc1bmFXNWxMbWx2TFhCaGNuTmxjbHdpS1R0Y2JtTnZibk4wSUdSbFluVm5YekVnUFNCZlgybHRjRzl5ZEVSbFptRjFiSFFvY21WeGRXbHlaU2hjSW1SbFluVm5YQ0lwS1RzZ0x5OGdaR1ZpZFdjb0tWeHVZMjl1YzNRZ1pHVmlkV2NnUFNBb01Dd2daR1ZpZFdkZk1TNWtaV1poZFd4MEtTaGNJbVZ1WjJsdVpTNXBieTFqYkdsbGJuUTZkMlZpZEhKaGJuTndiM0owWENJcE95QXZMeUJrWldKMVp5Z3BYRzVqYkdGemN5QlhWQ0JsZUhSbGJtUnpJSFJ5WVc1emNHOXlkRjlxYzE4eExsUnlZVzV6Y0c5eWRDQjdYRzRnSUNBZ1oyVjBJRzVoYldVb0tTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmNJbmRsWW5SeVlXNXpjRzl5ZEZ3aU8xeHVJQ0FnSUgxY2JpQWdJQ0JrYjA5d1pXNG9LU0I3WEc0Z0lDQWdJQ0FnSUM4dklFQjBjeTFwWjI1dmNtVmNiaUFnSUNBZ0lDQWdhV1lnS0hSNWNHVnZaaUJYWldKVWNtRnVjM0J2Y25RZ0lUMDlJRndpWm5WdVkzUnBiMjVjSWlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUM4dklFQjBjeTFwWjI1dmNtVmNiaUFnSUNBZ0lDQWdkR2hwY3k1MGNtRnVjM0J2Y25RZ1BTQnVaWGNnVjJWaVZISmhibk53YjNKMEtIUm9hWE11WTNKbFlYUmxWWEpwS0Z3aWFIUjBjSE5jSWlrc0lIUm9hWE11YjNCMGN5NTBjbUZ1YzNCdmNuUlBjSFJwYjI1elczUm9hWE11Ym1GdFpWMHBPMXh1SUNBZ0lDQWdJQ0IwYUdsekxuUnlZVzV6Y0c5eWRDNWpiRzl6WldSY2JpQWdJQ0FnSUNBZ0lDQWdJQzUwYUdWdUtDZ3BJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR1JsWW5WbktGd2lkSEpoYm5Od2IzSjBJR05zYjNObFpDQm5jbUZqWldaMWJHeDVYQ0lwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1dmJrTnNiM05sS0NrN1hHNGdJQ0FnSUNBZ0lIMHBYRzRnSUNBZ0lDQWdJQ0FnSUNBdVkyRjBZMmdvS0dWeWNpa2dQVDRnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdaR1ZpZFdjb1hDSjBjbUZ1YzNCdmNuUWdZMnh2YzJWa0lHUjFaU0IwYnlBbGMxd2lMQ0JsY25JcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXZia1Z5Y205eUtGd2lkMlZpZEhKaGJuTndiM0owSUdWeWNtOXlYQ0lzSUdWeWNpazdYRzRnSUNBZ0lDQWdJSDBwTzF4dUlDQWdJQ0FnSUNBdkx5QnViM1JsT2lCM1pTQmpiM1ZzWkNCb1lYWmxJSFZ6WldRZ1lYTjVibU12WVhkaGFYUXNJR0oxZENCMGFHRjBJSGR2ZFd4a0lISmxjWFZwY21VZ2MyOXRaU0JoWkdScGRHbHZibUZzSUhCdmJIbG1hV3hzYzF4dUlDQWdJQ0FnSUNCMGFHbHpMblJ5WVc1emNHOXlkQzV5WldGa2VTNTBhR1Z1S0NncElEMCtJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11ZEhKaGJuTndiM0owTG1OeVpXRjBaVUpwWkdseVpXTjBhVzl1WVd4VGRISmxZVzBvS1M1MGFHVnVLQ2h6ZEhKbFlXMHBJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JrWldOdlpHVnlVM1J5WldGdElEMGdLREFzSUdWdVoybHVaVjlwYjE5d1lYSnpaWEpmTVM1amNtVmhkR1ZRWVdOclpYUkVaV052WkdWeVUzUnlaV0Z0S1NoT2RXMWlaWEl1VFVGWVgxTkJSa1ZmU1U1VVJVZEZVaXdnZEdocGN5NXpiMk5yWlhRdVltbHVZWEo1Vkhsd1pTazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2NtVmhaR1Z5SUQwZ2MzUnlaV0Z0TG5KbFlXUmhZbXhsTG5CcGNHVlVhSEp2ZFdkb0tHUmxZMjlrWlhKVGRISmxZVzBwTG1kbGRGSmxZV1JsY2lncE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUdWdVkyOWtaWEpUZEhKbFlXMGdQU0FvTUN3Z1pXNW5hVzVsWDJsdlgzQmhjbk5sY2w4eExtTnlaV0YwWlZCaFkydGxkRVZ1WTI5a1pYSlRkSEpsWVcwcEtDazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaVzVqYjJSbGNsTjBjbVZoYlM1eVpXRmtZV0pzWlM1d2FYQmxWRzhvYzNSeVpXRnRMbmR5YVhSaFlteGxLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxuZHlhWFJsY2lBOUlHVnVZMjlrWlhKVGRISmxZVzB1ZDNKcGRHRmliR1V1WjJWMFYzSnBkR1Z5S0NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnY21WaFpDQTlJQ2dwSUQwK0lIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WaFpHVnlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXVjbVZoWkNncFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdWRHaGxiaWdvZXlCa2IyNWxMQ0IyWVd4MVpTQjlLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9aRzl1WlNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1JsWW5WbktGd2ljMlZ6YzJsdmJpQnBjeUJqYkc5elpXUmNJaWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1TzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWkdWaWRXY29YQ0p5WldObGFYWmxaQ0JqYUhWdWF6b2dKVzljSWl3Z2RtRnNkV1VwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXZibEJoWTJ0bGRDaDJZV3gxWlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpXRmtLQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMHBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXVZMkYwWTJnb0tHVnljaWtnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pHVmlkV2NvWENKaGJpQmxjbkp2Y2lCdlkyTjFjbkpsWkNCM2FHbHNaU0J5WldGa2FXNW5PaUFsYzF3aUxDQmxjbklwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5TzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbFlXUW9LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQndZV05yWlhRZ1BTQjdJSFI1Y0dVNklGd2liM0JsYmx3aUlIMDdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hSb2FYTXVjWFZsY25rdWMybGtLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIQmhZMnRsZEM1a1lYUmhJRDBnWUh0Y0luTnBaRndpT2x3aUpIdDBhR2x6TG5GMVpYSjVMbk5wWkgxY0luMWdPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxuZHlhWFJsY2k1M2NtbDBaU2h3WVdOclpYUXBMblJvWlc0b0tDa2dQVDRnZEdocGN5NXZiazl3Wlc0b0tTazdYRzRnSUNBZ0lDQWdJQ0FnSUNCOUtUdGNiaUFnSUNBZ0lDQWdmU2s3WEc0Z0lDQWdmVnh1SUNBZ0lIZHlhWFJsS0hCaFkydGxkSE1wSUh0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTUzY21sMFlXSnNaU0E5SUdaaGJITmxPMXh1SUNBZ0lDQWdJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUhCaFkydGxkSE11YkdWdVozUm9PeUJwS3lzcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSEJoWTJ0bGRDQTlJSEJoWTJ0bGRITmJhVjA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCc1lYTjBVR0ZqYTJWMElEMGdhU0E5UFQwZ2NHRmphMlYwY3k1c1pXNW5kR2dnTFNBeE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NTNjbWwwWlhJdWQzSnBkR1VvY0dGamEyVjBLUzUwYUdWdUtDZ3BJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9iR0Z6ZEZCaFkydGxkQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQW9NQ3dnZDJWaWMyOWphMlYwWDJOdmJuTjBjblZqZEc5eVgycHpYekV1Ym1WNGRGUnBZMnNwS0NncElEMCtJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWQzSnBkR0ZpYkdVZ1BTQjBjblZsTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NWxiV2wwVW1WelpYSjJaV1FvWENKa2NtRnBibHdpS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmU3dnZEdocGN5NXpaWFJVYVcxbGIzVjBSbTRwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJSDBwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQWdJR1J2UTJ4dmMyVW9LU0I3WEc0Z0lDQWdJQ0FnSUhaaGNpQmZZVHRjYmlBZ0lDQWdJQ0FnS0Y5aElEMGdkR2hwY3k1MGNtRnVjM0J2Y25RcElEMDlQU0J1ZFd4c0lIeDhJRjloSUQwOVBTQjJiMmxrSURBZ1B5QjJiMmxrSURBZ09pQmZZUzVqYkc5elpTZ3BPMXh1SUNBZ0lIMWNibjFjYm1WNGNHOXlkSE11VjFRZ1BTQlhWRHRjYmlJc0lsd2lkWE5sSUhOMGNtbGpkRndpTzF4dVQySnFaV04wTG1SbFptbHVaVkJ5YjNCbGNuUjVLR1Y0Y0c5eWRITXNJRndpWDE5bGMwMXZaSFZzWlZ3aUxDQjdJSFpoYkhWbE9pQjBjblZsSUgwcE8xeHVaWGh3YjNKMGN5NUVaV052WkdWeUlEMGdaWGh3YjNKMGN5NUZibU52WkdWeUlEMGdaWGh3YjNKMGN5NVFZV05yWlhSVWVYQmxJRDBnWlhod2IzSjBjeTV3Y205MGIyTnZiQ0E5SUhadmFXUWdNRHRjYm1OdmJuTjBJR052YlhCdmJtVnVkRjlsYldsMGRHVnlYekVnUFNCeVpYRjFhWEpsS0Z3aVFITnZZMnRsZEM1cGJ5OWpiMjF3YjI1bGJuUXRaVzFwZEhSbGNsd2lLVHRjYm1OdmJuTjBJR0pwYm1GeWVWOXFjMTh4SUQwZ2NtVnhkV2x5WlNoY0lpNHZZbWx1WVhKNUxtcHpYQ0lwTzF4dVkyOXVjM1FnYVhOZlltbHVZWEo1WDJwelh6RWdQU0J5WlhGMWFYSmxLRndpTGk5cGN5MWlhVzVoY25rdWFuTmNJaWs3WEc1amIyNXpkQ0JrWldKMVoxOHhJRDBnY21WeGRXbHlaU2hjSW1SbFluVm5YQ0lwT3lBdkx5QmtaV0oxWnlncFhHNWpiMjV6ZENCa1pXSjFaeUE5SUNnd0xDQmtaV0oxWjE4eExtUmxabUYxYkhRcEtGd2ljMjlqYTJWMExtbHZMWEJoY25ObGNsd2lLVHNnTHk4Z1pHVmlkV2NvS1Z4dUx5b3FYRzRnS2lCVWFHVnpaU0J6ZEhKcGJtZHpJRzExYzNRZ2JtOTBJR0psSUhWelpXUWdZWE1nWlhabGJuUWdibUZ0WlhNc0lHRnpJSFJvWlhrZ2FHRjJaU0JoSUhOd1pXTnBZV3dnYldWaGJtbHVaeTVjYmlBcUwxeHVZMjl1YzNRZ1VrVlRSVkpXUlVSZlJWWkZUbFJUSUQwZ1cxeHVJQ0FnSUZ3aVkyOXVibVZqZEZ3aUxGeHVJQ0FnSUZ3aVkyOXVibVZqZEY5bGNuSnZjbHdpTEZ4dUlDQWdJRndpWkdselkyOXVibVZqZEZ3aUxGeHVJQ0FnSUZ3aVpHbHpZMjl1Ym1WamRHbHVaMXdpTEZ4dUlDQWdJRndpYm1WM1RHbHpkR1Z1WlhKY0lpeGNiaUFnSUNCY0luSmxiVzkyWlV4cGMzUmxibVZ5WENJc0lDOHZJSFZ6WldRZ1lua2dkR2hsSUU1dlpHVXVhbk1nUlhabGJuUkZiV2wwZEdWeVhHNWRPMXh1THlvcVhHNGdLaUJRY205MGIyTnZiQ0IyWlhKemFXOXVMbHh1SUNwY2JpQXFJRUJ3ZFdKc2FXTmNiaUFxTDF4dVpYaHdiM0owY3k1d2NtOTBiMk52YkNBOUlEVTdYRzUyWVhJZ1VHRmphMlYwVkhsd1pUdGNiaWhtZFc1amRHbHZiaUFvVUdGamEyVjBWSGx3WlNrZ2UxeHVJQ0FnSUZCaFkydGxkRlI1Y0dWYlVHRmphMlYwVkhsd1pWdGNJa05QVGs1RlExUmNJbDBnUFNBd1hTQTlJRndpUTA5T1RrVkRWRndpTzF4dUlDQWdJRkJoWTJ0bGRGUjVjR1ZiVUdGamEyVjBWSGx3WlZ0Y0lrUkpVME5QVGs1RlExUmNJbDBnUFNBeFhTQTlJRndpUkVsVFEwOU9Ua1ZEVkZ3aU8xeHVJQ0FnSUZCaFkydGxkRlI1Y0dWYlVHRmphMlYwVkhsd1pWdGNJa1ZXUlU1VVhDSmRJRDBnTWwwZ1BTQmNJa1ZXUlU1VVhDSTdYRzRnSUNBZ1VHRmphMlYwVkhsd1pWdFFZV05yWlhSVWVYQmxXMXdpUVVOTFhDSmRJRDBnTTEwZ1BTQmNJa0ZEUzF3aU8xeHVJQ0FnSUZCaFkydGxkRlI1Y0dWYlVHRmphMlYwVkhsd1pWdGNJa05QVGs1RlExUmZSVkpTVDFKY0lsMGdQU0EwWFNBOUlGd2lRMDlPVGtWRFZGOUZVbEpQVWx3aU8xeHVJQ0FnSUZCaFkydGxkRlI1Y0dWYlVHRmphMlYwVkhsd1pWdGNJa0pKVGtGU1dWOUZWa1ZPVkZ3aVhTQTlJRFZkSUQwZ1hDSkNTVTVCVWxsZlJWWkZUbFJjSWp0Y2JpQWdJQ0JRWVdOclpYUlVlWEJsVzFCaFkydGxkRlI1Y0dWYlhDSkNTVTVCVWxsZlFVTkxYQ0pkSUQwZ05sMGdQU0JjSWtKSlRrRlNXVjlCUTB0Y0lqdGNibjBwS0ZCaFkydGxkRlI1Y0dVZ1BTQmxlSEJ2Y25SekxsQmhZMnRsZEZSNWNHVWdmSHdnS0dWNGNHOXlkSE11VUdGamEyVjBWSGx3WlNBOUlIdDlLU2s3WEc0dktpcGNiaUFxSUVFZ2MyOWphMlYwTG1sdklFVnVZMjlrWlhJZ2FXNXpkR0Z1WTJWY2JpQXFMMXh1WTJ4aGMzTWdSVzVqYjJSbGNpQjdYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dSVzVqYjJSbGNpQmpiMjV6ZEhKMVkzUnZjbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSEJoY21GdElIdG1kVzVqZEdsdmJuMGdjbVZ3YkdGalpYSWdMU0JqZFhOMGIyMGdjbVZ3YkdGalpYSWdkRzhnY0dGemN5QmtiM2R1SUhSdklFcFRUMDR1Y0dGeWMyVmNiaUFnSUNBZ0tpOWNiaUFnSUNCamIyNXpkSEoxWTNSdmNpaHlaWEJzWVdObGNpa2dlMXh1SUNBZ0lDQWdJQ0IwYUdsekxuSmxjR3hoWTJWeUlEMGdjbVZ3YkdGalpYSTdYRzRnSUNBZ2ZWeHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFVnVZMjlrWlNCaElIQmhZMnRsZENCaGN5QmhJSE5wYm1kc1pTQnpkSEpwYm1jZ2FXWWdibTl1TFdKcGJtRnllU3dnYjNJZ1lYTWdZVnh1SUNBZ0lDQXFJR0oxWm1abGNpQnpaWEYxWlc1alpTd2daR1Z3Wlc1a2FXNW5JRzl1SUhCaFkydGxkQ0IwZVhCbExseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0UFltcGxZM1I5SUc5aWFpQXRJSEJoWTJ0bGRDQnZZbXBsWTNSY2JpQWdJQ0FnS2k5Y2JpQWdJQ0JsYm1OdlpHVW9iMkpxS1NCN1hHNGdJQ0FnSUNBZ0lHUmxZblZuS0Z3aVpXNWpiMlJwYm1jZ2NHRmphMlYwSUNWcVhDSXNJRzlpYWlrN1hHNGdJQ0FnSUNBZ0lHbG1JQ2h2WW1vdWRIbHdaU0E5UFQwZ1VHRmphMlYwVkhsd1pTNUZWa1ZPVkNCOGZDQnZZbW91ZEhsd1pTQTlQVDBnVUdGamEyVjBWSGx3WlM1QlEwc3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2dvTUN3Z2FYTmZZbWx1WVhKNVgycHpYekV1YUdGelFtbHVZWEo1S1Nodlltb3BLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdVpXNWpiMlJsUVhOQ2FXNWhjbmtvZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBlWEJsT2lCdlltb3VkSGx3WlNBOVBUMGdVR0ZqYTJWMFZIbHdaUzVGVmtWT1ZGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1B5QlFZV05yWlhSVWVYQmxMa0pKVGtGU1dWOUZWa1ZPVkZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnT2lCUVlXTnJaWFJVZVhCbExrSkpUa0ZTV1Y5QlEwc3NYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUc1emNEb2diMkpxTG01emNDeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWkdGMFlUb2diMkpxTG1SaGRHRXNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsa09pQnZZbW91YVdRc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlGdDBhR2x6TG1WdVkyOWtaVUZ6VTNSeWFXNW5LRzlpYWlsZE8xeHVJQ0FnSUgxY2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCRmJtTnZaR1VnY0dGamEyVjBJR0Z6SUhOMGNtbHVaeTVjYmlBZ0lDQWdLaTljYmlBZ0lDQmxibU52WkdWQmMxTjBjbWx1Wnlodlltb3BJSHRjYmlBZ0lDQWdJQ0FnTHk4Z1ptbHljM1FnYVhNZ2RIbHdaVnh1SUNBZ0lDQWdJQ0JzWlhRZ2MzUnlJRDBnWENKY0lpQXJJRzlpYWk1MGVYQmxPMXh1SUNBZ0lDQWdJQ0F2THlCaGRIUmhZMmh0Wlc1MGN5QnBaaUIzWlNCb1lYWmxJSFJvWlcxY2JpQWdJQ0FnSUNBZ2FXWWdLRzlpYWk1MGVYQmxJRDA5UFNCUVlXTnJaWFJVZVhCbExrSkpUa0ZTV1Y5RlZrVk9WQ0I4ZkZ4dUlDQWdJQ0FnSUNBZ0lDQWdiMkpxTG5SNWNHVWdQVDA5SUZCaFkydGxkRlI1Y0dVdVFrbE9RVkpaWDBGRFN5a2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2MzUnlJQ3M5SUc5aWFpNWhkSFJoWTJodFpXNTBjeUFySUZ3aUxWd2lPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUM4dklHbG1JSGRsSUdoaGRtVWdZU0J1WVcxbGMzQmhZMlVnYjNSb1pYSWdkR2hoYmlCZ0wyQmNiaUFnSUNBZ0lDQWdMeThnZDJVZ1lYQndaVzVrSUdsMElHWnZiR3h2ZDJWa0lHSjVJR0VnWTI5dGJXRWdZQ3hnWEc0Z0lDQWdJQ0FnSUdsbUlDaHZZbW91Ym5Od0lDWW1JRndpTDF3aUlDRTlQU0J2WW1vdWJuTndLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnpkSElnS3owZ2IySnFMbTV6Y0NBcklGd2lMRndpTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDOHZJR2x0YldWa2FXRjBaV3g1SUdadmJHeHZkMlZrSUdKNUlIUm9aU0JwWkZ4dUlDQWdJQ0FnSUNCcFppQW9iblZzYkNBaFBTQnZZbW91YVdRcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhOMGNpQXJQU0J2WW1vdWFXUTdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnTHk4Z2FuTnZiaUJrWVhSaFhHNGdJQ0FnSUNBZ0lHbG1JQ2h1ZFd4c0lDRTlJRzlpYWk1a1lYUmhLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnpkSElnS3owZ1NsTlBUaTV6ZEhKcGJtZHBabmtvYjJKcUxtUmhkR0VzSUhSb2FYTXVjbVZ3YkdGalpYSXBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdSbFluVm5LRndpWlc1amIyUmxaQ0FsYWlCaGN5QWxjMXdpTENCdlltb3NJSE4wY2lrN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCemRISTdYRzRnSUNBZ2ZWeHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFVnVZMjlrWlNCd1lXTnJaWFFnWVhNZ0oySjFabVpsY2lCelpYRjFaVzVqWlNjZ1lua2djbVZ0YjNacGJtY2dZbXh2WW5Nc0lHRnVaRnh1SUNBZ0lDQXFJR1JsWTI5dWMzUnlkV04wYVc1bklIQmhZMnRsZENCcGJuUnZJRzlpYW1WamRDQjNhWFJvSUhCc1lXTmxhRzlzWkdWeWN5QmhibVJjYmlBZ0lDQWdLaUJoSUd4cGMzUWdiMllnWW5WbVptVnljeTVjYmlBZ0lDQWdLaTljYmlBZ0lDQmxibU52WkdWQmMwSnBibUZ5ZVNodlltb3BJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdaR1ZqYjI1emRISjFZM1JwYjI0Z1BTQW9NQ3dnWW1sdVlYSjVYMnB6WHpFdVpHVmpiMjV6ZEhKMVkzUlFZV05yWlhRcEtHOWlhaWs3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSEJoWTJzZ1BTQjBhR2x6TG1WdVkyOWtaVUZ6VTNSeWFXNW5LR1JsWTI5dWMzUnlkV04wYVc5dUxuQmhZMnRsZENrN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdKMVptWmxjbk1nUFNCa1pXTnZibk4wY25WamRHbHZiaTVpZFdabVpYSnpPMXh1SUNBZ0lDQWdJQ0JpZFdabVpYSnpMblZ1YzJocFpuUW9jR0ZqYXlrN0lDOHZJR0ZrWkNCd1lXTnJaWFFnYVc1bWJ5QjBieUJpWldkcGJtNXBibWNnYjJZZ1pHRjBZU0JzYVhOMFhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCaWRXWm1aWEp6T3lBdkx5QjNjbWwwWlNCaGJHd2dkR2hsSUdKMVptWmxjbk5jYmlBZ0lDQjlYRzU5WEc1bGVIQnZjblJ6TGtWdVkyOWtaWElnUFNCRmJtTnZaR1Z5TzF4dUx5OGdjMlZsSUdoMGRIQnpPaTh2YzNSaFkydHZkbVZ5Wm14dmR5NWpiMjB2Y1hWbGMzUnBiMjV6THpnMU1URXlPREV2WTJobFkyc3RhV1l0WVMxMllXeDFaUzFwY3kxaGJpMXZZbXBsWTNRdGFXNHRhbUYyWVhOamNtbHdkRnh1Wm5WdVkzUnBiMjRnYVhOUFltcGxZM1FvZG1Gc2RXVXBJSHRjYmlBZ0lDQnlaWFIxY200Z1QySnFaV04wTG5CeWIzUnZkSGx3WlM1MGIxTjBjbWx1Wnk1allXeHNLSFpoYkhWbEtTQTlQVDBnWENKYmIySnFaV04wSUU5aWFtVmpkRjFjSWp0Y2JuMWNiaThxS2x4dUlDb2dRU0J6YjJOclpYUXVhVzhnUkdWamIyUmxjaUJwYm5OMFlXNWpaVnh1SUNwY2JpQXFJRUJ5WlhSMWNtNGdlMDlpYW1WamRIMGdaR1ZqYjJSbGNseHVJQ292WEc1amJHRnpjeUJFWldOdlpHVnlJR1Y0ZEdWdVpITWdZMjl0Y0c5dVpXNTBYMlZ0YVhSMFpYSmZNUzVGYldsMGRHVnlJSHRjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJFWldOdlpHVnlJR052Ym5OMGNuVmpkRzl5WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMloxYm1OMGFXOXVmU0J5WlhacGRtVnlJQzBnWTNWemRHOXRJSEpsZG1sMlpYSWdkRzhnY0dGemN5QmtiM2R1SUhSdklFcFRUMDR1YzNSeWFXNW5hV1o1WEc0Z0lDQWdJQ292WEc0Z0lDQWdZMjl1YzNSeWRXTjBiM0lvY21WMmFYWmxjaWtnZTF4dUlDQWdJQ0FnSUNCemRYQmxjaWdwTzF4dUlDQWdJQ0FnSUNCMGFHbHpMbkpsZG1sMlpYSWdQU0J5WlhacGRtVnlPMXh1SUNBZ0lIMWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkVaV052WkdWeklHRnVJR1Z1WTI5a1pXUWdjR0ZqYTJWMElITjBjbWx1WnlCcGJuUnZJSEJoWTJ0bGRDQktVMDlPTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRUZEhKcGJtZDlJRzlpYWlBdElHVnVZMjlrWldRZ2NHRmphMlYwWEc0Z0lDQWdJQ292WEc0Z0lDQWdZV1JrS0c5aWFpa2dlMXh1SUNBZ0lDQWdJQ0JzWlhRZ2NHRmphMlYwTzF4dUlDQWdJQ0FnSUNCcFppQW9kSGx3Wlc5bUlHOWlhaUE5UFQwZ1hDSnpkSEpwYm1kY0lpa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSFJvYVhNdWNtVmpiMjV6ZEhKMVkzUnZjaWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWhjSW1kdmRDQndiR0ZwYm5SbGVIUWdaR0YwWVNCM2FHVnVJSEpsWTI5dWMzUnlkV04wYVc1bklHRWdjR0ZqYTJWMFhDSXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnY0dGamEyVjBJRDBnZEdocGN5NWtaV052WkdWVGRISnBibWNvYjJKcUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR2x6UW1sdVlYSjVSWFpsYm5RZ1BTQndZV05yWlhRdWRIbHdaU0E5UFQwZ1VHRmphMlYwVkhsd1pTNUNTVTVCVWxsZlJWWkZUbFE3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvYVhOQ2FXNWhjbmxGZG1WdWRDQjhmQ0J3WVdOclpYUXVkSGx3WlNBOVBUMGdVR0ZqYTJWMFZIbHdaUzVDU1U1QlVsbGZRVU5MS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NHRmphMlYwTG5SNWNHVWdQU0JwYzBKcGJtRnllVVYyWlc1MElEOGdVR0ZqYTJWMFZIbHdaUzVGVmtWT1ZDQTZJRkJoWTJ0bGRGUjVjR1V1UVVOTE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDOHZJR0pwYm1GeWVTQndZV05yWlhRbmN5QnFjMjl1WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXlaV052Ym5OMGNuVmpkRzl5SUQwZ2JtVjNJRUpwYm1GeWVWSmxZMjl1YzNSeWRXTjBiM0lvY0dGamEyVjBLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F2THlCdWJ5QmhkSFJoWTJodFpXNTBjeXdnYkdGaVpXeGxaQ0JpYVc1aGNua2dZblYwSUc1dklHSnBibUZ5ZVNCa1lYUmhJSFJ2SUdadmJHeHZkMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNod1lXTnJaWFF1WVhSMFlXTm9iV1Z1ZEhNZ1BUMDlJREFwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjM1Z3WlhJdVpXMXBkRkpsYzJWeWRtVmtLRndpWkdWamIyUmxaRndpTENCd1lXTnJaWFFwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lHVnNjMlVnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUM4dklHNXZiaTFpYVc1aGNua2dablZzYkNCd1lXTnJaWFJjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J6ZFhCbGNpNWxiV2wwVW1WelpYSjJaV1FvWENKa1pXTnZaR1ZrWENJc0lIQmhZMnRsZENrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ1pXeHpaU0JwWmlBb0tEQXNJR2x6WDJKcGJtRnllVjlxYzE4eExtbHpRbWx1WVhKNUtTaHZZbW9wSUh4OElHOWlhaTVpWVhObE5qUXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDOHZJSEpoZHlCaWFXNWhjbmtnWkdGMFlWeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tDRjBhR2x6TG5KbFkyOXVjM1J5ZFdOMGIzSXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9YQ0puYjNRZ1ltbHVZWEo1SUdSaGRHRWdkMmhsYmlCdWIzUWdjbVZqYjI1emRISjFZM1JwYm1jZ1lTQndZV05yWlhSY0lpazdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQndZV05yWlhRZ1BTQjBhR2x6TG5KbFkyOXVjM1J5ZFdOMGIzSXVkR0ZyWlVKcGJtRnllVVJoZEdFb2IySnFLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2NHRmphMlYwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQzh2SUhKbFkyVnBkbVZrSUdacGJtRnNJR0oxWm1abGNseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxuSmxZMjl1YzNSeWRXTjBiM0lnUFNCdWRXeHNPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCemRYQmxjaTVsYldsMFVtVnpaWEoyWldRb1hDSmtaV052WkdWa1hDSXNJSEJoWTJ0bGRDazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLRndpVlc1cmJtOTNiaUIwZVhCbE9pQmNJaUFySUc5aWFpazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dSR1ZqYjJSbElHRWdjR0ZqYTJWMElGTjBjbWx1WnlBb1NsTlBUaUJrWVhSaEtWeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0VGRISnBibWQ5SUhOMGNseHVJQ0FnSUNBcUlFQnlaWFIxY200Z2UwOWlhbVZqZEgwZ2NHRmphMlYwWEc0Z0lDQWdJQ292WEc0Z0lDQWdaR1ZqYjJSbFUzUnlhVzVuS0hOMGNpa2dlMXh1SUNBZ0lDQWdJQ0JzWlhRZ2FTQTlJREE3WEc0Z0lDQWdJQ0FnSUM4dklHeHZiMnNnZFhBZ2RIbHdaVnh1SUNBZ0lDQWdJQ0JqYjI1emRDQndJRDBnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdkSGx3WlRvZ1RuVnRZbVZ5S0hOMGNpNWphR0Z5UVhRb01Da3BMRnh1SUNBZ0lDQWdJQ0I5TzF4dUlDQWdJQ0FnSUNCcFppQW9VR0ZqYTJWMFZIbHdaVnR3TG5SNWNHVmRJRDA5UFNCMWJtUmxabWx1WldRcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWhjSW5WdWEyNXZkMjRnY0dGamEyVjBJSFI1Y0dVZ1hDSWdLeUJ3TG5SNWNHVXBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUM4dklHeHZiMnNnZFhBZ1lYUjBZV05vYldWdWRITWdhV1lnZEhsd1pTQmlhVzVoY25sY2JpQWdJQ0FnSUNBZ2FXWWdLSEF1ZEhsd1pTQTlQVDBnVUdGamEyVjBWSGx3WlM1Q1NVNUJVbGxmUlZaRlRsUWdmSHhjYmlBZ0lDQWdJQ0FnSUNBZ0lIQXVkSGx3WlNBOVBUMGdVR0ZqYTJWMFZIbHdaUzVDU1U1QlVsbGZRVU5MS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQnpkR0Z5ZENBOUlHa2dLeUF4TzF4dUlDQWdJQ0FnSUNBZ0lDQWdkMmhwYkdVZ0tITjBjaTVqYUdGeVFYUW9LeXRwS1NBaFBUMGdYQ0l0WENJZ0ppWWdhU0FoUFNCemRISXViR1Z1WjNSb0tTQjdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUdKMVppQTlJSE4wY2k1emRXSnpkSEpwYm1jb2MzUmhjblFzSUdrcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHSjFaaUFoUFNCT2RXMWlaWElvWW5WbUtTQjhmQ0J6ZEhJdVkyaGhja0YwS0drcElDRTlQU0JjSWkxY0lpa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpaGNJa2xzYkdWbllXd2dZWFIwWVdOb2JXVnVkSE5jSWlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQndMbUYwZEdGamFHMWxiblJ6SUQwZ1RuVnRZbVZ5S0dKMVppazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnTHk4Z2JHOXZheUIxY0NCdVlXMWxjM0JoWTJVZ0tHbG1JR0Z1ZVNsY2JpQWdJQ0FnSUNBZ2FXWWdLRndpTDF3aUlEMDlQU0J6ZEhJdVkyaGhja0YwS0drZ0t5QXhLU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2MzUmhjblFnUFNCcElDc2dNVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIZG9hV3hsSUNncksya3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQmpJRDBnYzNSeUxtTm9ZWEpCZENocEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWENJc1hDSWdQVDA5SUdNcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hwSUQwOVBTQnpkSEl1YkdWdVozUm9LVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUhBdWJuTndJRDBnYzNSeUxuTjFZbk4wY21sdVp5aHpkR0Z5ZEN3Z2FTazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCd0xtNXpjQ0E5SUZ3aUwxd2lPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUM4dklHeHZiMnNnZFhBZ2FXUmNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2JtVjRkQ0E5SUhOMGNpNWphR0Z5UVhRb2FTQXJJREVwTzF4dUlDQWdJQ0FnSUNCcFppQW9YQ0pjSWlBaFBUMGdibVY0ZENBbUppQk9kVzFpWlhJb2JtVjRkQ2tnUFQwZ2JtVjRkQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2MzUmhjblFnUFNCcElDc2dNVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIZG9hV3hsSUNncksya3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQmpJRDBnYzNSeUxtTm9ZWEpCZENocEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvYm5Wc2JDQTlQU0JqSUh4OElFNTFiV0psY2loaktTQWhQU0JqS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQzB0YVR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hwSUQwOVBTQnpkSEl1YkdWdVozUm9LVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUhBdWFXUWdQU0JPZFcxaVpYSW9jM1J5TG5OMVluTjBjbWx1WnloemRHRnlkQ3dnYVNBcklERXBLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBdkx5QnNiMjlySUhWd0lHcHpiMjRnWkdGMFlWeHVJQ0FnSUNBZ0lDQnBaaUFvYzNSeUxtTm9ZWEpCZENncksya3BLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCd1lYbHNiMkZrSUQwZ2RHaHBjeTUwY25sUVlYSnpaU2h6ZEhJdWMzVmljM1J5S0drcEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaEVaV052WkdWeUxtbHpVR0Y1Ykc5aFpGWmhiR2xrS0hBdWRIbHdaU3dnY0dGNWJHOWhaQ2twSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCd0xtUmhkR0VnUFNCd1lYbHNiMkZrTzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLRndpYVc1MllXeHBaQ0J3WVhsc2IyRmtYQ0lwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdSbFluVm5LRndpWkdWamIyUmxaQ0FsY3lCaGN5QWxhbHdpTENCemRISXNJSEFwTzF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnY0R0Y2JpQWdJQ0I5WEc0Z0lDQWdkSEo1VUdGeWMyVW9jM1J5S1NCN1hHNGdJQ0FnSUNBZ0lIUnllU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1NsTlBUaTV3WVhKelpTaHpkSElzSUhSb2FYTXVjbVYyYVhabGNpazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnWTJGMFkyZ2dLR1VwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQm1ZV3h6WlR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdJQ0J6ZEdGMGFXTWdhWE5RWVhsc2IyRmtWbUZzYVdRb2RIbHdaU3dnY0dGNWJHOWhaQ2tnZTF4dUlDQWdJQ0FnSUNCemQybDBZMmdnS0hSNWNHVXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnVUdGamEyVjBWSGx3WlM1RFQwNU9SVU5VT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJwYzA5aWFtVmpkQ2h3WVhsc2IyRmtLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnVUdGamEyVjBWSGx3WlM1RVNWTkRUMDVPUlVOVU9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCd1lYbHNiMkZrSUQwOVBTQjFibVJsWm1sdVpXUTdYRzRnSUNBZ0lDQWdJQ0FnSUNCallYTmxJRkJoWTJ0bGRGUjVjR1V1UTA5T1RrVkRWRjlGVWxKUFVqcGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2RIbHdaVzltSUhCaGVXeHZZV1FnUFQwOUlGd2ljM1J5YVc1blhDSWdmSHdnYVhOUFltcGxZM1FvY0dGNWJHOWhaQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUZCaFkydGxkRlI1Y0dVdVJWWkZUbFE2WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUZCaFkydGxkRlI1Y0dVdVFrbE9RVkpaWDBWV1JVNVVPbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQW9RWEp5WVhrdWFYTkJjbkpoZVNod1lYbHNiMkZrS1NBbUpseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FvZEhsd1pXOW1JSEJoZVd4dllXUmJNRjBnUFQwOUlGd2liblZ0WW1WeVhDSWdmSHhjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ2gwZVhCbGIyWWdjR0Y1Ykc5aFpGc3dYU0E5UFQwZ1hDSnpkSEpwYm1kY0lpQW1KbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUZKRlUwVlNWa1ZFWDBWV1JVNVVVeTVwYm1SbGVFOW1LSEJoZVd4dllXUmJNRjBwSUQwOVBTQXRNU2twS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ1VHRmphMlYwVkhsd1pTNUJRMHM2WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUZCaFkydGxkRlI1Y0dVdVFrbE9RVkpaWDBGRFN6cGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1FYSnlZWGt1YVhOQmNuSmhlU2h3WVhsc2IyRmtLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJFWldGc2JHOWpZWFJsY3lCaElIQmhjbk5sY2lkeklISmxjMjkxY21ObGMxeHVJQ0FnSUNBcUwxeHVJQ0FnSUdSbGMzUnliM2tvS1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2gwYUdsekxuSmxZMjl1YzNSeWRXTjBiM0lwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWNtVmpiMjV6ZEhKMVkzUnZjaTVtYVc1cGMyaGxaRkpsWTI5dWMzUnlkV04wYVc5dUtDazdYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbkpsWTI5dWMzUnlkV04wYjNJZ1BTQnVkV3hzTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dWZWeHVaWGh3YjNKMGN5NUVaV052WkdWeUlEMGdSR1ZqYjJSbGNqdGNiaThxS2x4dUlDb2dRU0J0WVc1aFoyVnlJRzltSUdFZ1ltbHVZWEo1SUdWMlpXNTBKM01nSjJKMVptWmxjaUJ6WlhGMVpXNWpaU2N1SUZOb2IzVnNaRnh1SUNvZ1ltVWdZMjl1YzNSeWRXTjBaV1FnZDJobGJtVjJaWElnWVNCd1lXTnJaWFFnYjJZZ2RIbHdaU0JDU1U1QlVsbGZSVlpGVGxRZ2FYTmNiaUFxSUdSbFkyOWtaV1F1WEc0Z0tseHVJQ29nUUhCaGNtRnRJSHRQWW1wbFkzUjlJSEJoWTJ0bGRGeHVJQ29nUUhKbGRIVnliaUI3UW1sdVlYSjVVbVZqYjI1emRISjFZM1J2Y24wZ2FXNXBkR2xoYkdsNlpXUWdjbVZqYjI1emRISjFZM1J2Y2x4dUlDb3ZYRzVqYkdGemN5QkNhVzVoY25sU1pXTnZibk4wY25WamRHOXlJSHRjYmlBZ0lDQmpiMjV6ZEhKMVkzUnZjaWh3WVdOclpYUXBJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXdZV05yWlhRZ1BTQndZV05yWlhRN1hHNGdJQ0FnSUNBZ0lIUm9hWE11WW5WbVptVnljeUE5SUZ0ZE8xeHVJQ0FnSUNBZ0lDQjBhR2x6TG5KbFkyOXVVR0ZqYXlBOUlIQmhZMnRsZER0Y2JpQWdJQ0I5WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nVFdWMGFHOWtJSFJ2SUdKbElHTmhiR3hsWkNCM2FHVnVJR0pwYm1GeWVTQmtZWFJoSUhKbFkyVnBkbVZrSUdaeWIyMGdZMjl1Ym1WamRHbHZibHh1SUNBZ0lDQXFJR0ZtZEdWeUlHRWdRa2xPUVZKWlgwVldSVTVVSUhCaFkydGxkQzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdRblZtWm1WeUlId2dRWEp5WVhsQ2RXWm1aWEo5SUdKcGJrUmhkR0VnTFNCMGFHVWdjbUYzSUdKcGJtRnllU0JrWVhSaElISmxZMlZwZG1Wa1hHNGdJQ0FnSUNvZ1FISmxkSFZ5YmlCN2JuVnNiQ0I4SUU5aWFtVmpkSDBnY21WMGRYSnVjeUJ1ZFd4c0lHbG1JRzF2Y21VZ1ltbHVZWEo1SUdSaGRHRWdhWE1nWlhod1pXTjBaV1FnYjNKY2JpQWdJQ0FnS2lBZ0lHRWdjbVZqYjI1emRISjFZM1JsWkNCd1lXTnJaWFFnYjJKcVpXTjBJR2xtSUdGc2JDQmlkV1ptWlhKeklHaGhkbVVnWW1WbGJpQnlaV05sYVhabFpDNWNiaUFnSUNBZ0tpOWNiaUFnSUNCMFlXdGxRbWx1WVhKNVJHRjBZU2hpYVc1RVlYUmhLU0I3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVZblZtWm1WeWN5NXdkWE5vS0dKcGJrUmhkR0VwTzF4dUlDQWdJQ0FnSUNCcFppQW9kR2hwY3k1aWRXWm1aWEp6TG14bGJtZDBhQ0E5UFQwZ2RHaHBjeTV5WldOdmJsQmhZMnN1WVhSMFlXTm9iV1Z1ZEhNcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUM4dklHUnZibVVnZDJsMGFDQmlkV1ptWlhJZ2JHbHpkRnh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnY0dGamEyVjBJRDBnS0RBc0lHSnBibUZ5ZVY5cWMxOHhMbkpsWTI5dWMzUnlkV04wVUdGamEyVjBLU2gwYUdsekxuSmxZMjl1VUdGamF5d2dkR2hwY3k1aWRXWm1aWEp6S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdVptbHVhWE5vWldSU1pXTnZibk4wY25WamRHbHZiaWdwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIQmhZMnRsZER0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2JuVnNiRHRjYmlBZ0lDQjlYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dRMnhsWVc1eklIVndJR0pwYm1GeWVTQndZV05yWlhRZ2NtVmpiMjV6ZEhKMVkzUnBiMjRnZG1GeWFXRmliR1Z6TGx4dUlDQWdJQ0FxTDF4dUlDQWdJR1pwYm1semFHVmtVbVZqYjI1emRISjFZM1JwYjI0b0tTQjdYRzRnSUNBZ0lDQWdJSFJvYVhNdWNtVmpiMjVRWVdOcklEMGdiblZzYkR0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVpZFdabVpYSnpJRDBnVzEwN1hHNGdJQ0FnZlZ4dWZWeHVJaXdpWENKMWMyVWdjM1J5YVdOMFhDSTdYRzUyWVhJZ1gxOXBiWEJ2Y25SRVpXWmhkV3gwSUQwZ0tIUm9hWE1nSmlZZ2RHaHBjeTVmWDJsdGNHOXlkRVJsWm1GMWJIUXBJSHg4SUdaMWJtTjBhVzl1SUNodGIyUXBJSHRjYmlBZ0lDQnlaWFIxY200Z0tHMXZaQ0FtSmlCdGIyUXVYMTlsYzAxdlpIVnNaU2tnUHlCdGIyUWdPaUI3SUZ3aVpHVm1ZWFZzZEZ3aU9pQnRiMlFnZlR0Y2JuMDdYRzVQWW1wbFkzUXVaR1ZtYVc1bFVISnZjR1Z5ZEhrb1pYaHdiM0owY3l3Z1hDSmZYMlZ6VFc5a2RXeGxYQ0lzSUhzZ2RtRnNkV1U2SUhSeWRXVWdmU2s3WEc1bGVIQnZjblJ6TGxSeVlXNXpjRzl5ZENBOUlHVjRjRzl5ZEhNdVZISmhibk53YjNKMFJYSnliM0lnUFNCMmIybGtJREE3WEc1amIyNXpkQ0JsYm1kcGJtVmZhVzlmY0dGeWMyVnlYekVnUFNCeVpYRjFhWEpsS0Z3aVpXNW5hVzVsTG1sdkxYQmhjbk5sY2x3aUtUdGNibU52Ym5OMElHTnZiWEJ2Ym1WdWRGOWxiV2wwZEdWeVh6RWdQU0J5WlhGMWFYSmxLRndpUUhOdlkydGxkQzVwYnk5amIyMXdiMjVsYm5RdFpXMXBkSFJsY2x3aUtUdGNibU52Ym5OMElIVjBhV3hmYW5OZk1TQTlJSEpsY1hWcGNtVW9YQ0l1TDNWMGFXd3Vhbk5jSWlrN1hHNWpiMjV6ZENCa1pXSjFaMTh4SUQwZ1gxOXBiWEJ2Y25SRVpXWmhkV3gwS0hKbGNYVnBjbVVvWENKa1pXSjFaMXdpS1NrN0lDOHZJR1JsWW5WbktDbGNibU52Ym5OMElIQmhjbk5sY1hOZmFuTmZNU0E5SUhKbGNYVnBjbVVvWENJdUwyTnZiblJ5YVdJdmNHRnljMlZ4Y3k1cWMxd2lLVHRjYm1OdmJuTjBJR1JsWW5WbklEMGdLREFzSUdSbFluVm5YekV1WkdWbVlYVnNkQ2tvWENKbGJtZHBibVV1YVc4dFkyeHBaVzUwT25SeVlXNXpjRzl5ZEZ3aUtUc2dMeThnWkdWaWRXY29LVnh1WTJ4aGMzTWdWSEpoYm5Od2IzSjBSWEp5YjNJZ1pYaDBaVzVrY3lCRmNuSnZjaUI3WEc0Z0lDQWdZMjl1YzNSeWRXTjBiM0lvY21WaGMyOXVMQ0JrWlhOamNtbHdkR2x2Yml3Z1kyOXVkR1Y0ZENrZ2UxeHVJQ0FnSUNBZ0lDQnpkWEJsY2loeVpXRnpiMjRwTzF4dUlDQWdJQ0FnSUNCMGFHbHpMbVJsYzJOeWFYQjBhVzl1SUQwZ1pHVnpZM0pwY0hScGIyNDdYRzRnSUNBZ0lDQWdJSFJvYVhNdVkyOXVkR1Y0ZENBOUlHTnZiblJsZUhRN1hHNGdJQ0FnSUNBZ0lIUm9hWE11ZEhsd1pTQTlJRndpVkhKaGJuTndiM0owUlhKeWIzSmNJanRjYmlBZ0lDQjlYRzU5WEc1bGVIQnZjblJ6TGxSeVlXNXpjRzl5ZEVWeWNtOXlJRDBnVkhKaGJuTndiM0owUlhKeWIzSTdYRzVqYkdGemN5QlVjbUZ1YzNCdmNuUWdaWGgwWlc1a2N5QmpiMjF3YjI1bGJuUmZaVzFwZEhSbGNsOHhMa1Z0YVhSMFpYSWdlMXh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRlJ5WVc1emNHOXlkQ0JoWW5OMGNtRmpkQ0JqYjI1emRISjFZM1J2Y2k1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3VDJKcVpXTjBmU0J2Y0hSeklDMGdiM0IwYVc5dWMxeHVJQ0FnSUNBcUlFQndjbTkwWldOMFpXUmNiaUFnSUNBZ0tpOWNiaUFnSUNCamIyNXpkSEoxWTNSdmNpaHZjSFJ6S1NCN1hHNGdJQ0FnSUNBZ0lITjFjR1Z5S0NrN1hHNGdJQ0FnSUNBZ0lIUm9hWE11ZDNKcGRHRmliR1VnUFNCbVlXeHpaVHRjYmlBZ0lDQWdJQ0FnS0RBc0lIVjBhV3hmYW5OZk1TNXBibk4wWVd4c1ZHbHRaWEpHZFc1amRHbHZibk1wS0hSb2FYTXNJRzl3ZEhNcE8xeHVJQ0FnSUNBZ0lDQjBhR2x6TG05d2RITWdQU0J2Y0hSek8xeHVJQ0FnSUNBZ0lDQjBhR2x6TG5GMVpYSjVJRDBnYjNCMGN5NXhkV1Z5ZVR0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV6YjJOclpYUWdQU0J2Y0hSekxuTnZZMnRsZER0Y2JpQWdJQ0I5WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUlcxcGRITWdZVzRnWlhKeWIzSXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UxTjBjbWx1WjMwZ2NtVmhjMjl1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJR1JsYzJOeWFYQjBhVzl1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJR052Ym5SbGVIUWdMU0IwYUdVZ1pYSnliM0lnWTI5dWRHVjRkRnh1SUNBZ0lDQXFJRUJ5WlhSMWNtNGdlMVJ5WVc1emNHOXlkSDBnWm05eUlHTm9ZV2x1YVc1blhHNGdJQ0FnSUNvZ1FIQnliM1JsWTNSbFpGeHVJQ0FnSUNBcUwxeHVJQ0FnSUc5dVJYSnliM0lvY21WaGMyOXVMQ0JrWlhOamNtbHdkR2x2Yml3Z1kyOXVkR1Y0ZENrZ2UxeHVJQ0FnSUNBZ0lDQnpkWEJsY2k1bGJXbDBVbVZ6WlhKMlpXUW9YQ0psY25KdmNsd2lMQ0J1WlhjZ1ZISmhibk53YjNKMFJYSnliM0lvY21WaGMyOXVMQ0JrWlhOamNtbHdkR2x2Yml3Z1kyOXVkR1Y0ZENrcE8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjenRjYmlBZ0lDQjlYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dUM0JsYm5NZ2RHaGxJSFJ5WVc1emNHOXlkQzVjYmlBZ0lDQWdLaTljYmlBZ0lDQnZjR1Z1S0NrZ2UxeHVJQ0FnSUNBZ0lDQjBhR2x6TG5KbFlXUjVVM1JoZEdVZ1BTQmNJbTl3Wlc1cGJtZGNJanRjYmlBZ0lDQWdJQ0FnZEdocGN5NWtiMDl3Wlc0b0tUdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE03WEc0Z0lDQWdmVnh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRU5zYjNObGN5QjBhR1VnZEhKaGJuTndiM0owTGx4dUlDQWdJQ0FxTDF4dUlDQWdJR05zYjNObEtDa2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb2RHaHBjeTV5WldGa2VWTjBZWFJsSUQwOVBTQmNJbTl3Wlc1cGJtZGNJaUI4ZkNCMGFHbHpMbkpsWVdSNVUzUmhkR1VnUFQwOUlGd2liM0JsYmx3aUtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbVJ2UTJ4dmMyVW9LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11YjI1RGJHOXpaU2dwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCMGFHbHpPMXh1SUNBZ0lIMWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQlRaVzVrY3lCdGRXeDBhWEJzWlNCd1lXTnJaWFJ6TGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRCY25KaGVYMGdjR0ZqYTJWMGMxeHVJQ0FnSUNBcUwxeHVJQ0FnSUhObGJtUW9jR0ZqYTJWMGN5a2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb2RHaHBjeTV5WldGa2VWTjBZWFJsSUQwOVBTQmNJbTl3Wlc1Y0lpa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTUzY21sMFpTaHdZV05yWlhSektUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUM4dklIUm9hWE1nYldsbmFIUWdhR0Z3Y0dWdUlHbG1JSFJvWlNCMGNtRnVjM0J2Y25RZ2QyRnpJSE5wYkdWdWRHeDVJR05zYjNObFpDQnBiaUIwYUdVZ1ltVm1iM0psZFc1c2IyRmtJR1YyWlc1MElHaGhibVJzWlhKY2JpQWdJQ0FnSUNBZ0lDQWdJR1JsWW5WbktGd2lkSEpoYm5Od2IzSjBJR2x6SUc1dmRDQnZjR1Z1TENCa2FYTmpZWEprYVc1bklIQmhZMnRsZEhOY0lpazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dRMkZzYkdWa0lIVndiMjRnYjNCbGJseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FIQnliM1JsWTNSbFpGeHVJQ0FnSUNBcUwxeHVJQ0FnSUc5dVQzQmxiaWdwSUh0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV5WldGa2VWTjBZWFJsSUQwZ1hDSnZjR1Z1WENJN1hHNGdJQ0FnSUNBZ0lIUm9hWE11ZDNKcGRHRmliR1VnUFNCMGNuVmxPMXh1SUNBZ0lDQWdJQ0J6ZFhCbGNpNWxiV2wwVW1WelpYSjJaV1FvWENKdmNHVnVYQ0lwTzF4dUlDQWdJSDFjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJEWVd4c1pXUWdkMmwwYUNCa1lYUmhMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSEJoY21GdElIdFRkSEpwYm1kOUlHUmhkR0ZjYmlBZ0lDQWdLaUJBY0hKdmRHVmpkR1ZrWEc0Z0lDQWdJQ292WEc0Z0lDQWdiMjVFWVhSaEtHUmhkR0VwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnY0dGamEyVjBJRDBnS0RBc0lHVnVaMmx1WlY5cGIxOXdZWEp6WlhKZk1TNWtaV052WkdWUVlXTnJaWFFwS0dSaGRHRXNJSFJvYVhNdWMyOWphMlYwTG1KcGJtRnllVlI1Y0dVcE8xeHVJQ0FnSUNBZ0lDQjBhR2x6TG05dVVHRmphMlYwS0hCaFkydGxkQ2s3WEc0Z0lDQWdmVnh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRU5oYkd4bFpDQjNhWFJvSUdFZ1pHVmpiMlJsWkNCd1lXTnJaWFF1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBY0hKdmRHVmpkR1ZrWEc0Z0lDQWdJQ292WEc0Z0lDQWdiMjVRWVdOclpYUW9jR0ZqYTJWMEtTQjdYRzRnSUNBZ0lDQWdJSE4xY0dWeUxtVnRhWFJTWlhObGNuWmxaQ2hjSW5CaFkydGxkRndpTENCd1lXTnJaWFFwTzF4dUlDQWdJSDFjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJEWVd4c1pXUWdkWEJ2YmlCamJHOXpaUzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ3Y205MFpXTjBaV1JjYmlBZ0lDQWdLaTljYmlBZ0lDQnZia05zYjNObEtHUmxkR0ZwYkhNcElIdGNiaUFnSUNBZ0lDQWdkR2hwY3k1eVpXRmtlVk4wWVhSbElEMGdYQ0pqYkc5elpXUmNJanRjYmlBZ0lDQWdJQ0FnYzNWd1pYSXVaVzFwZEZKbGMyVnlkbVZrS0Z3aVkyeHZjMlZjSWl3Z1pHVjBZV2xzY3lrN1hHNGdJQ0FnZlZ4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUZCaGRYTmxjeUIwYUdVZ2RISmhibk53YjNKMExDQnBiaUJ2Y21SbGNpQnViM1FnZEc4Z2JHOXpaU0J3WVdOclpYUnpJR1IxY21sdVp5QmhiaUIxY0dkeVlXUmxMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSEJoY21GdElHOXVVR0YxYzJWY2JpQWdJQ0FnS2k5Y2JpQWdJQ0J3WVhWelpTaHZibEJoZFhObEtTQjdJSDFjYmlBZ0lDQmpjbVZoZEdWVmNta29jMk5vWlcxaExDQnhkV1Z5ZVNBOUlIdDlLU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUFvYzJOb1pXMWhJQ3RjYmlBZ0lDQWdJQ0FnSUNBZ0lGd2lPaTh2WENJZ0sxeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NWZhRzl6ZEc1aGJXVW9LU0FyWEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TGw5d2IzSjBLQ2tnSzF4dUlDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1dmNIUnpMbkJoZEdnZ0sxeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NWZjWFZsY25rb2NYVmxjbmtwS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdYMmh2YzNSdVlXMWxLQ2tnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0JvYjNOMGJtRnRaU0E5SUhSb2FYTXViM0IwY3k1b2IzTjBibUZ0WlR0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUdodmMzUnVZVzFsTG1sdVpHVjRUMllvWENJNlhDSXBJRDA5UFNBdE1TQS9JR2h2YzNSdVlXMWxJRG9nWENKYlhDSWdLeUJvYjNOMGJtRnRaU0FySUZ3aVhWd2lPMXh1SUNBZ0lIMWNiaUFnSUNCZmNHOXlkQ2dwSUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLSFJvYVhNdWIzQjBjeTV3YjNKMElDWW1YRzRnSUNBZ0lDQWdJQ0FnSUNBb0tIUm9hWE11YjNCMGN5NXpaV04xY21VZ0ppWWdUblZ0WW1WeUtIUm9hWE11YjNCMGN5NXdiM0owSUNFOVBTQTBORE1wS1NCOGZGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDZ2hkR2hwY3k1dmNIUnpMbk5sWTNWeVpTQW1KaUJPZFcxaVpYSW9kR2hwY3k1dmNIUnpMbkJ2Y25RcElDRTlQU0E0TUNrcEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnWENJNlhDSWdLeUIwYUdsekxtOXdkSE11Y0c5eWREdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJjSWx3aU8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0FnSUY5eGRXVnllU2h4ZFdWeWVTa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQmxibU52WkdWa1VYVmxjbmtnUFNBb01Dd2djR0Z5YzJWeGMxOXFjMTh4TG1WdVkyOWtaU2tvY1hWbGNua3BPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdaVzVqYjJSbFpGRjFaWEo1TG14bGJtZDBhQ0EvSUZ3aVAxd2lJQ3NnWlc1amIyUmxaRkYxWlhKNUlEb2dYQ0pjSWp0Y2JpQWdJQ0I5WEc1OVhHNWxlSEJ2Y25SekxsUnlZVzV6Y0c5eWRDQTlJRlJ5WVc1emNHOXlkRHRjYmlJc0lsd2lkWE5sSUhOMGNtbGpkRndpTzF4dVQySnFaV04wTG1SbFptbHVaVkJ5YjNCbGNuUjVLR1Y0Y0c5eWRITXNJRndpWDE5bGMwMXZaSFZzWlZ3aUxDQjdJSFpoYkhWbE9pQjBjblZsSUgwcE8xeHVaWGh3YjNKMGN5NXlaV052Ym5OMGNuVmpkRkJoWTJ0bGRDQTlJR1Y0Y0c5eWRITXVaR1ZqYjI1emRISjFZM1JRWVdOclpYUWdQU0IyYjJsa0lEQTdYRzVqYjI1emRDQnBjMTlpYVc1aGNubGZhbk5mTVNBOUlISmxjWFZwY21Vb1hDSXVMMmx6TFdKcGJtRnllUzVxYzF3aUtUdGNiaThxS2x4dUlDb2dVbVZ3YkdGalpYTWdaWFpsY25rZ1FuVm1abVZ5SUh3Z1FYSnlZWGxDZFdabVpYSWdmQ0JDYkc5aUlId2dSbWxzWlNCcGJpQndZV05yWlhRZ2QybDBhQ0JoSUc1MWJXSmxjbVZrSUhCc1lXTmxhRzlzWkdWeUxseHVJQ3BjYmlBcUlFQndZWEpoYlNCN1QySnFaV04wZlNCd1lXTnJaWFFnTFNCemIyTnJaWFF1YVc4Z1pYWmxiblFnY0dGamEyVjBYRzRnS2lCQWNtVjBkWEp1SUh0UFltcGxZM1I5SUhkcGRHZ2daR1ZqYjI1emRISjFZM1JsWkNCd1lXTnJaWFFnWVc1a0lHeHBjM1FnYjJZZ1luVm1abVZ5YzF4dUlDb2dRSEIxWW14cFkxeHVJQ292WEc1bWRXNWpkR2x2YmlCa1pXTnZibk4wY25WamRGQmhZMnRsZENod1lXTnJaWFFwSUh0Y2JpQWdJQ0JqYjI1emRDQmlkV1ptWlhKeklEMGdXMTA3WEc0Z0lDQWdZMjl1YzNRZ2NHRmphMlYwUkdGMFlTQTlJSEJoWTJ0bGRDNWtZWFJoTzF4dUlDQWdJR052Ym5OMElIQmhZMnNnUFNCd1lXTnJaWFE3WEc0Z0lDQWdjR0ZqYXk1a1lYUmhJRDBnWDJSbFkyOXVjM1J5ZFdOMFVHRmphMlYwS0hCaFkydGxkRVJoZEdFc0lHSjFabVpsY25NcE8xeHVJQ0FnSUhCaFkyc3VZWFIwWVdOb2JXVnVkSE1nUFNCaWRXWm1aWEp6TG14bGJtZDBhRHNnTHk4Z2JuVnRZbVZ5SUc5bUlHSnBibUZ5ZVNBbllYUjBZV05vYldWdWRITW5YRzRnSUNBZ2NtVjBkWEp1SUhzZ2NHRmphMlYwT2lCd1lXTnJMQ0JpZFdabVpYSnpPaUJpZFdabVpYSnpJSDA3WEc1OVhHNWxlSEJ2Y25SekxtUmxZMjl1YzNSeWRXTjBVR0ZqYTJWMElEMGdaR1ZqYjI1emRISjFZM1JRWVdOclpYUTdYRzVtZFc1amRHbHZiaUJmWkdWamIyNXpkSEoxWTNSUVlXTnJaWFFvWkdGMFlTd2dZblZtWm1WeWN5a2dlMXh1SUNBZ0lHbG1JQ2doWkdGMFlTbGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHUmhkR0U3WEc0Z0lDQWdhV1lnS0Nnd0xDQnBjMTlpYVc1aGNubGZhbk5mTVM1cGMwSnBibUZ5ZVNrb1pHRjBZU2twSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnY0d4aFkyVm9iMnhrWlhJZ1BTQjdJRjl3YkdGalpXaHZiR1JsY2pvZ2RISjFaU3dnYm5WdE9pQmlkV1ptWlhKekxteGxibWQwYUNCOU8xeHVJQ0FnSUNBZ0lDQmlkV1ptWlhKekxuQjFjMmdvWkdGMFlTazdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQndiR0ZqWldodmJHUmxjanRjYmlBZ0lDQjlYRzRnSUNBZ1pXeHpaU0JwWmlBb1FYSnlZWGt1YVhOQmNuSmhlU2hrWVhSaEtTa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnVaWGRFWVhSaElEMGdibVYzSUVGeWNtRjVLR1JoZEdFdWJHVnVaM1JvS1R0Y2JpQWdJQ0FnSUNBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQmtZWFJoTG14bGJtZDBhRHNnYVNzcktTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCdVpYZEVZWFJoVzJsZElEMGdYMlJsWTI5dWMzUnlkV04wVUdGamEyVjBLR1JoZEdGYmFWMHNJR0oxWm1abGNuTXBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ1WlhkRVlYUmhPMXh1SUNBZ0lIMWNiaUFnSUNCbGJITmxJR2xtSUNoMGVYQmxiMllnWkdGMFlTQTlQVDBnWENKdlltcGxZM1JjSWlBbUppQWhLR1JoZEdFZ2FXNXpkR0Z1WTJWdlppQkVZWFJsS1NrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCdVpYZEVZWFJoSUQwZ2UzMDdYRzRnSUNBZ0lDQWdJR1p2Y2lBb1kyOXVjM1FnYTJWNUlHbHVJR1JoZEdFcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaFBZbXBsWTNRdWNISnZkRzkwZVhCbExtaGhjMDkzYmxCeWIzQmxjblI1TG1OaGJHd29aR0YwWVN3Z2EyVjVLU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUc1bGQwUmhkR0ZiYTJWNVhTQTlJRjlrWldOdmJuTjBjblZqZEZCaFkydGxkQ2hrWVhSaFcydGxlVjBzSUdKMVptWmxjbk1wTzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ1WlhkRVlYUmhPMXh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnWkdGMFlUdGNibjFjYmk4cUtseHVJQ29nVW1WamIyNXpkSEoxWTNSeklHRWdZbWx1WVhKNUlIQmhZMnRsZENCbWNtOXRJR2wwY3lCd2JHRmpaV2h2YkdSbGNpQndZV05yWlhRZ1lXNWtJR0oxWm1abGNuTmNiaUFxWEc0Z0tpQkFjR0Z5WVcwZ2UwOWlhbVZqZEgwZ2NHRmphMlYwSUMwZ1pYWmxiblFnY0dGamEyVjBJSGRwZEdnZ2NHeGhZMlZvYjJ4a1pYSnpYRzRnS2lCQWNHRnlZVzBnZTBGeWNtRjVmU0JpZFdabVpYSnpJQzBnWW1sdVlYSjVJR0oxWm1abGNuTWdkRzhnY0hWMElHbHVJSEJzWVdObGFHOXNaR1Z5SUhCdmMybDBhVzl1YzF4dUlDb2dRSEpsZEhWeWJpQjdUMkpxWldOMGZTQnlaV052Ym5OMGNuVmpkR1ZrSUhCaFkydGxkRnh1SUNvZ1FIQjFZbXhwWTF4dUlDb3ZYRzVtZFc1amRHbHZiaUJ5WldOdmJuTjBjblZqZEZCaFkydGxkQ2h3WVdOclpYUXNJR0oxWm1abGNuTXBJSHRjYmlBZ0lDQndZV05yWlhRdVpHRjBZU0E5SUY5eVpXTnZibk4wY25WamRGQmhZMnRsZENod1lXTnJaWFF1WkdGMFlTd2dZblZtWm1WeWN5azdYRzRnSUNBZ1pHVnNaWFJsSUhCaFkydGxkQzVoZEhSaFkyaHRaVzUwY3pzZ0x5OGdibThnYkc5dVoyVnlJSFZ6WldaMWJGeHVJQ0FnSUhKbGRIVnliaUJ3WVdOclpYUTdYRzU5WEc1bGVIQnZjblJ6TG5KbFkyOXVjM1J5ZFdOMFVHRmphMlYwSUQwZ2NtVmpiMjV6ZEhKMVkzUlFZV05yWlhRN1hHNW1kVzVqZEdsdmJpQmZjbVZqYjI1emRISjFZM1JRWVdOclpYUW9aR0YwWVN3Z1luVm1abVZ5Y3lrZ2UxeHVJQ0FnSUdsbUlDZ2haR0YwWVNsY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUdSaGRHRTdYRzRnSUNBZ2FXWWdLR1JoZEdFZ0ppWWdaR0YwWVM1ZmNHeGhZMlZvYjJ4a1pYSWdQVDA5SUhSeWRXVXBJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdhWE5KYm1SbGVGWmhiR2xrSUQwZ2RIbHdaVzltSUdSaGRHRXViblZ0SUQwOVBTQmNJbTUxYldKbGNsd2lJQ1ltWEc0Z0lDQWdJQ0FnSUNBZ0lDQmtZWFJoTG01MWJTQStQU0F3SUNZbVhHNGdJQ0FnSUNBZ0lDQWdJQ0JrWVhSaExtNTFiU0E4SUdKMVptWmxjbk11YkdWdVozUm9PMXh1SUNBZ0lDQWdJQ0JwWmlBb2FYTkpibVJsZUZaaGJHbGtLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1luVm1abVZ5YzF0a1lYUmhMbTUxYlYwN0lDOHZJR0Z3Y0hKdmNISnBZWFJsSUdKMVptWmxjaUFvYzJodmRXeGtJR0psSUc1aGRIVnlZV3dnYjNKa1pYSWdZVzU1ZDJGNUtWeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLRndpYVd4c1pXZGhiQ0JoZEhSaFkyaHRaVzUwYzF3aUtUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNCbGJITmxJR2xtSUNoQmNuSmhlUzVwYzBGeWNtRjVLR1JoZEdFcEtTQjdYRzRnSUNBZ0lDQWdJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnWkdGMFlTNXNaVzVuZEdnN0lHa3JLeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdaR0YwWVZ0cFhTQTlJRjl5WldOdmJuTjBjblZqZEZCaFkydGxkQ2hrWVhSaFcybGRMQ0JpZFdabVpYSnpLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ0lDQmxiSE5sSUdsbUlDaDBlWEJsYjJZZ1pHRjBZU0E5UFQwZ1hDSnZZbXBsWTNSY0lpa2dlMXh1SUNBZ0lDQWdJQ0JtYjNJZ0tHTnZibk4wSUd0bGVTQnBiaUJrWVhSaEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9UMkpxWldOMExuQnliM1J2ZEhsd1pTNW9ZWE5QZDI1UWNtOXdaWEowZVM1allXeHNLR1JoZEdFc0lHdGxlU2twSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCa1lYUmhXMnRsZVYwZ1BTQmZjbVZqYjI1emRISjFZM1JRWVdOclpYUW9aR0YwWVZ0clpYbGRMQ0JpZFdabVpYSnpLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnWkdGMFlUdGNibjFjYmlJc0lsd2lkWE5sSUhOMGNtbGpkRndpTzF4dVQySnFaV04wTG1SbFptbHVaVkJ5YjNCbGNuUjVLR1Y0Y0c5eWRITXNJRndpWDE5bGMwMXZaSFZzWlZ3aUxDQjdJSFpoYkhWbE9pQjBjblZsSUgwcE8xeHVaWGh3YjNKMGN5NXVaWGgwVkdsamF5QTlJR1Y0Y0c5eWRITXVjR0Z5YzJVZ1BTQmxlSEJ2Y25SekxtbHVjM1JoYkd4VWFXMWxja1oxYm1OMGFXOXVjeUE5SUdWNGNHOXlkSE11ZEhKaGJuTndiM0owY3lBOUlHVjRjRzl5ZEhNdVZISmhibk53YjNKMFJYSnliM0lnUFNCbGVIQnZjblJ6TGxSeVlXNXpjRzl5ZENBOUlHVjRjRzl5ZEhNdWNISnZkRzlqYjJ3Z1BTQmxlSEJ2Y25SekxsTnZZMnRsZENBOUlIWnZhV1FnTUR0Y2JtTnZibk4wSUhOdlkydGxkRjlxYzE4eElEMGdjbVZ4ZFdseVpTaGNJaTR2YzI5amEyVjBMbXB6WENJcE8xeHVUMkpxWldOMExtUmxabWx1WlZCeWIzQmxjblI1S0dWNGNHOXlkSE1zSUZ3aVUyOWphMlYwWENJc0lIc2daVzUxYldWeVlXSnNaVG9nZEhKMVpTd2daMlYwT2lCbWRXNWpkR2x2YmlBb0tTQjdJSEpsZEhWeWJpQnpiMk5yWlhSZmFuTmZNUzVUYjJOclpYUTdJSDBnZlNrN1hHNWxlSEJ2Y25SekxuQnliM1J2WTI5c0lEMGdjMjlqYTJWMFgycHpYekV1VTI5amEyVjBMbkJ5YjNSdlkyOXNPMXh1ZG1GeUlIUnlZVzV6Y0c5eWRGOXFjMTh4SUQwZ2NtVnhkV2x5WlNoY0lpNHZkSEpoYm5Od2IzSjBMbXB6WENJcE8xeHVUMkpxWldOMExtUmxabWx1WlZCeWIzQmxjblI1S0dWNGNHOXlkSE1zSUZ3aVZISmhibk53YjNKMFhDSXNJSHNnWlc1MWJXVnlZV0pzWlRvZ2RISjFaU3dnWjJWME9pQm1kVzVqZEdsdmJpQW9LU0I3SUhKbGRIVnliaUIwY21GdWMzQnZjblJmYW5OZk1TNVVjbUZ1YzNCdmNuUTdJSDBnZlNrN1hHNVBZbXBsWTNRdVpHVm1hVzVsVUhKdmNHVnlkSGtvWlhod2IzSjBjeXdnWENKVWNtRnVjM0J2Y25SRmNuSnZjbHdpTENCN0lHVnVkVzFsY21GaWJHVTZJSFJ5ZFdVc0lHZGxkRG9nWm5WdVkzUnBiMjRnS0NrZ2V5QnlaWFIxY200Z2RISmhibk53YjNKMFgycHpYekV1VkhKaGJuTndiM0owUlhKeWIzSTdJSDBnZlNrN1hHNTJZWElnYVc1a1pYaGZhbk5mTVNBOUlISmxjWFZwY21Vb1hDSXVMM1J5WVc1emNHOXlkSE12YVc1a1pYZ3Vhbk5jSWlrN1hHNVBZbXBsWTNRdVpHVm1hVzVsVUhKdmNHVnlkSGtvWlhod2IzSjBjeXdnWENKMGNtRnVjM0J2Y25SelhDSXNJSHNnWlc1MWJXVnlZV0pzWlRvZ2RISjFaU3dnWjJWME9pQm1kVzVqZEdsdmJpQW9LU0I3SUhKbGRIVnliaUJwYm1SbGVGOXFjMTh4TG5SeVlXNXpjRzl5ZEhNN0lIMGdmU2s3WEc1MllYSWdkWFJwYkY5cWMxOHhJRDBnY21WeGRXbHlaU2hjSWk0dmRYUnBiQzVxYzF3aUtUdGNiazlpYW1WamRDNWtaV1pwYm1WUWNtOXdaWEowZVNobGVIQnZjblJ6TENCY0ltbHVjM1JoYkd4VWFXMWxja1oxYm1OMGFXOXVjMXdpTENCN0lHVnVkVzFsY21GaWJHVTZJSFJ5ZFdVc0lHZGxkRG9nWm5WdVkzUnBiMjRnS0NrZ2V5QnlaWFIxY200Z2RYUnBiRjlxYzE4eExtbHVjM1JoYkd4VWFXMWxja1oxYm1OMGFXOXVjenNnZlNCOUtUdGNiblpoY2lCd1lYSnpaWFZ5YVY5cWMxOHhJRDBnY21WeGRXbHlaU2hjSWk0dlkyOXVkSEpwWWk5d1lYSnpaWFZ5YVM1cWMxd2lLVHRjYms5aWFtVmpkQzVrWldacGJtVlFjbTl3WlhKMGVTaGxlSEJ2Y25SekxDQmNJbkJoY25ObFhDSXNJSHNnWlc1MWJXVnlZV0pzWlRvZ2RISjFaU3dnWjJWME9pQm1kVzVqZEdsdmJpQW9LU0I3SUhKbGRIVnliaUJ3WVhKelpYVnlhVjlxYzE4eExuQmhjbk5sT3lCOUlIMHBPMXh1ZG1GeUlIZGxZbk52WTJ0bGRGOWpiMjV6ZEhKMVkzUnZjbDlxYzE4eElEMGdjbVZ4ZFdseVpTaGNJaTR2ZEhKaGJuTndiM0owY3k5M1pXSnpiMk5yWlhRdFkyOXVjM1J5ZFdOMGIzSXVhbk5jSWlrN1hHNVBZbXBsWTNRdVpHVm1hVzVsVUhKdmNHVnlkSGtvWlhod2IzSjBjeXdnWENKdVpYaDBWR2xqYTF3aUxDQjdJR1Z1ZFcxbGNtRmliR1U2SUhSeWRXVXNJR2RsZERvZ1puVnVZM1JwYjI0Z0tDa2dleUJ5WlhSMWNtNGdkMlZpYzI5amEyVjBYMk52Ym5OMGNuVmpkRzl5WDJwelh6RXVibVY0ZEZScFkyczdJSDBnZlNrN1hHNGlMQ0pjSW5WelpTQnpkSEpwWTNSY0lqdGNiblpoY2lCZlgybHRjRzl5ZEVSbFptRjFiSFFnUFNBb2RHaHBjeUFtSmlCMGFHbHpMbDlmYVcxd2IzSjBSR1ZtWVhWc2RDa2dmSHdnWm5WdVkzUnBiMjRnS0cxdlpDa2dlMXh1SUNBZ0lISmxkSFZ5YmlBb2JXOWtJQ1ltSUcxdlpDNWZYMlZ6VFc5a2RXeGxLU0EvSUcxdlpDQTZJSHNnWENKa1pXWmhkV3gwWENJNklHMXZaQ0I5TzF4dWZUdGNiazlpYW1WamRDNWtaV1pwYm1WUWNtOXdaWEowZVNobGVIQnZjblJ6TENCY0lsOWZaWE5OYjJSMWJHVmNJaXdnZXlCMllXeDFaVG9nZEhKMVpTQjlLVHRjYm1WNGNHOXlkSE11YVc1cGRDQTlJSFp2YVdRZ01EdGNibU52Ym5OMElFTm9YekVnUFNCZlgybHRjRzl5ZEVSbFptRjFiSFFvY21WeGRXbHlaU2hjSWk0dlEyaGNJaWtwTzF4dVkyOXVjM1FnVkhWdVpVOXdkR2x2Ymw4eElEMGdjbVZ4ZFdseVpTaGNJaTR2VkhWdVpVOXdkR2x2Ymx3aUtUdGNibU5zWVhOeklFSnZiM1JQY0hScGIyNU5iMlJsYkNCN1hHNGdJQ0FnYzNSaGRHbGpJR2RsZEVOdmJtNWxZM1JwYjI0b1kyOXVibVZqZEdsdmJpa2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb1kyOXVibVZqZEdsdmJpQTlQVDBnSnljcFhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdRMmhmTVM1a1pXWmhkV3gwTG5KdmIzUkRiMjV1WldOMGFXOXVPMXh1SUNBZ0lDQWdJQ0JqYjI1dVpXTjBhVzl1SUQwZ1kyOXVibVZqZEdsdmJpNWxibVJ6VjJsMGFDaERhRjh4TG1SbFptRjFiSFF1Y205dmRFTnZibTVsWTNScGIyNHBJRDhnWTI5dWJtVmpkR2x2YmlBNklHQWtlMk52Ym01bFkzUnBiMjU5Skh0RGFGOHhMbVJsWm1GMWJIUXVjbTl2ZEVOdmJtNWxZM1JwYjI1OVlEdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHTnZibTVsWTNScGIyNHVjM1JoY25SelYybDBhQ2hEYUY4eExtUmxabUYxYkhRdWNtOXZkRU52Ym01bFkzUnBiMjRwSUQ4Z1kyOXVibVZqZEdsdmJpQTZJR0FrZTBOb1h6RXVaR1ZtWVhWc2RDNXliMjkwUTI5dWJtVmpkR2x2Ym4wa2UyTnZibTVsWTNScGIyNTlZRHRjYmlBZ0lDQjlYRzRnSUNBZ2MzUmhkR2xqSUdkbGRGUjFibVZQY0hScGIyNVRkSEpwYm1jb2RIVnVaVTl3ZEdsdmJpa2dlMXh1SUNBZ0lDQWdJQ0JzWlhRZ2RIVnVaVTl3ZEdsdmJrNTFiV0psY25NZ1BTQjdmVHRjYmlBZ0lDQWdJQ0FnVDJKcVpXTjBMbXRsZVhNb2RIVnVaVTl3ZEdsdmJpa3VabTl5UldGamFDZ29hMlY1S1NBOVBpQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0IwZFc1bFQzQjBhVzl1UzJWNUlEMGdhMlY1TzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2RtRnNkV1VnUFNCT2RXMWlaWElvZEhWdVpVOXdkR2x2Ymx0MGRXNWxUM0IwYVc5dVMyVjVYU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvZG1Gc2RXVXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwZFc1bFQzQjBhVzl1VG5WdFltVnljMXQwZFc1bFQzQjBhVzl1UzJWNVhTQTlJSFpoYkhWbE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCOUtUdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2NHRnljMlZrVkhWdVpVOXdkR2x2YmlBOUlFcFRUMDR1Y0dGeWMyVW9TbE5QVGk1emRISnBibWRwWm5rb2RIVnVaVTl3ZEdsdmJrNTFiV0psY25NcEtUdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHNWxkeUJWVWt4VFpXRnlZMmhRWVhKaGJYTW9jR0Z5YzJWa1ZIVnVaVTl3ZEdsdmJpa3VkRzlUZEhKcGJtY29LVHRjYmlBZ0lDQjlYRzRnSUNBZ1kyOXVjM1J5ZFdOMGIzSW9jR0Z5WVcxeklEMGdaWGh3YjNKMGN5NXBibWwwS1NCN1hHNGdJQ0FnSUNBZ0lIUm9hWE11YUdGelUyeGhjMmdnUFNCbVlXeHpaVHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXdjbTkwYjJOdmJDQTlJQ2NuTzF4dUlDQWdJQ0FnSUNCMGFHbHpMbWh2YzNRZ1BTQW5KenRjYmlBZ0lDQWdJQ0FnZEdocGN5NWpiMjV1WldOMGFXOXVJRDBnUTJoZk1TNWtaV1poZFd4MExuSnZiM1JEYjI1dVpXTjBhVzl1TzF4dUlDQWdJQ0FnSUNCMGFHbHpMblIxYm1WUGNIUnBiMjRnUFNCVWRXNWxUM0IwYVc5dVh6RXVhVzVwZER0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUU5aWFtVmpkQzVoYzNOcFoyNG9kR2hwY3l3Z2NHRnlZVzF6S1R0Y2JpQWdJQ0I5WEc1OVhHNWxlSEJ2Y25SekxtUmxabUYxYkhRZ1BTQkNiMjkwVDNCMGFXOXVUVzlrWld3N1hHNWxlSEJ2Y25SekxtbHVhWFFnUFNCN1hHNGdJQ0FnYUdGelUyeGhjMmc2SUdaaGJITmxMRnh1SUNBZ0lIQnliM1J2WTI5c09pQW5KeXhjYmlBZ0lDQm9iM04wT2lBbkp5eGNiaUFnSUNCamIyNXVaV04wYVc5dU9pQW5KeXhjYmlBZ0lDQjBkVzVsVDNCMGFXOXVPaUI3ZlN4Y2JuMDdYRzRpTENKY0luVnpaU0J6ZEhKcFkzUmNJanRjYms5aWFtVmpkQzVrWldacGJtVlFjbTl3WlhKMGVTaGxlSEJ2Y25SekxDQmNJbDlmWlhOTmIyUjFiR1ZjSWl3Z2V5QjJZV3gxWlRvZ2RISjFaU0I5S1R0Y2JtVjRjRzl5ZEhNdVlubDBaVXhsYm1kMGFDQTlJR1Y0Y0c5eWRITXVhVzV6ZEdGc2JGUnBiV1Z5Um5WdVkzUnBiMjV6SUQwZ1pYaHdiM0owY3k1d2FXTnJJRDBnZG05cFpDQXdPMXh1WTI5dWMzUWdaMnh2WW1Gc1ZHaHBjMTlxYzE4eElEMGdjbVZ4ZFdseVpTaGNJaTR2WjJ4dlltRnNWR2hwY3k1cWMxd2lLVHRjYm1aMWJtTjBhVzl1SUhCcFkyc29iMkpxTENBdUxpNWhkSFJ5S1NCN1hHNGdJQ0FnY21WMGRYSnVJR0YwZEhJdWNtVmtkV05sS0NoaFkyTXNJR3NwSUQwK0lIdGNiaUFnSUNBZ0lDQWdhV1lnS0c5aWFpNW9ZWE5QZDI1UWNtOXdaWEowZVNocktTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1lXTmpXMnRkSUQwZ2IySnFXMnRkTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCaFkyTTdYRzRnSUNBZ2ZTd2dlMzBwTzF4dWZWeHVaWGh3YjNKMGN5NXdhV05ySUQwZ2NHbGphenRjYmk4dklFdGxaWEFnWVNCeVpXWmxjbVZ1WTJVZ2RHOGdkR2hsSUhKbFlXd2dkR2x0Wlc5MWRDQm1kVzVqZEdsdmJuTWdjMjhnZEdobGVTQmpZVzRnWW1VZ2RYTmxaQ0IzYUdWdUlHOTJaWEp5YVdSa1pXNWNibU52Ym5OMElFNUJWRWxXUlY5VFJWUmZWRWxOUlU5VlZDQTlJR2RzYjJKaGJGUm9hWE5mYW5OZk1TNW5iRzlpWVd4VWFHbHpVMmhwYlM1elpYUlVhVzFsYjNWME8xeHVZMjl1YzNRZ1RrRlVTVlpGWDBOTVJVRlNYMVJKVFVWUFZWUWdQU0JuYkc5aVlXeFVhR2x6WDJwelh6RXVaMnh2WW1Gc1ZHaHBjMU5vYVcwdVkyeGxZWEpVYVcxbGIzVjBPMXh1Wm5WdVkzUnBiMjRnYVc1emRHRnNiRlJwYldWeVJuVnVZM1JwYjI1ektHOWlhaXdnYjNCMGN5a2dlMXh1SUNBZ0lHbG1JQ2h2Y0hSekxuVnpaVTVoZEdsMlpWUnBiV1Z5Y3lrZ2UxeHVJQ0FnSUNBZ0lDQnZZbW91YzJWMFZHbHRaVzkxZEVadUlEMGdUa0ZVU1ZaRlgxTkZWRjlVU1UxRlQxVlVMbUpwYm1Rb1oyeHZZbUZzVkdocGMxOXFjMTh4TG1kc2IySmhiRlJvYVhOVGFHbHRLVHRjYmlBZ0lDQWdJQ0FnYjJKcUxtTnNaV0Z5VkdsdFpXOTFkRVp1SUQwZ1RrRlVTVlpGWDBOTVJVRlNYMVJKVFVWUFZWUXVZbWx1WkNobmJHOWlZV3hVYUdselgycHpYekV1WjJ4dlltRnNWR2hwYzFOb2FXMHBPMXh1SUNBZ0lIMWNiaUFnSUNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnYjJKcUxuTmxkRlJwYldWdmRYUkdiaUE5SUdkc2IySmhiRlJvYVhOZmFuTmZNUzVuYkc5aVlXeFVhR2x6VTJocGJTNXpaWFJVYVcxbGIzVjBMbUpwYm1Rb1oyeHZZbUZzVkdocGMxOXFjMTh4TG1kc2IySmhiRlJvYVhOVGFHbHRLVHRjYmlBZ0lDQWdJQ0FnYjJKcUxtTnNaV0Z5VkdsdFpXOTFkRVp1SUQwZ1oyeHZZbUZzVkdocGMxOXFjMTh4TG1kc2IySmhiRlJvYVhOVGFHbHRMbU5zWldGeVZHbHRaVzkxZEM1aWFXNWtLR2RzYjJKaGJGUm9hWE5mYW5OZk1TNW5iRzlpWVd4VWFHbHpVMmhwYlNrN1hHNGdJQ0FnZlZ4dWZWeHVaWGh3YjNKMGN5NXBibk4wWVd4c1ZHbHRaWEpHZFc1amRHbHZibk1nUFNCcGJuTjBZV3hzVkdsdFpYSkdkVzVqZEdsdmJuTTdYRzR2THlCaVlYTmxOalFnWlc1amIyUmxaQ0JpZFdabVpYSnpJR0Z5WlNCaFltOTFkQ0F6TXlVZ1ltbG5aMlZ5SUNob2RIUndjem92TDJWdUxuZHBhMmx3WldScFlTNXZjbWN2ZDJscmFTOUNZWE5sTmpRcFhHNWpiMjV6ZENCQ1FWTkZOalJmVDFaRlVraEZRVVFnUFNBeExqTXpPMXh1THk4Z2QyVWdZMjkxYkdRZ1lXeHpieUJvWVhabElIVnpaV1FnWUc1bGR5QkNiRzlpS0Z0dlltcGRLUzV6YVhwbFlDd2dZblYwSUdsMElHbHpiaWQwSUhOMWNIQnZjblJsWkNCcGJpQkpSVGxjYm1aMWJtTjBhVzl1SUdKNWRHVk1aVzVuZEdnb2IySnFLU0I3WEc0Z0lDQWdhV1lnS0hSNWNHVnZaaUJ2WW1vZ1BUMDlJRndpYzNSeWFXNW5YQ0lwSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhWMFpqaE1aVzVuZEdnb2IySnFLVHRjYmlBZ0lDQjlYRzRnSUNBZ0x5OGdZWEp5WVhsaWRXWm1aWElnYjNJZ1lteHZZbHh1SUNBZ0lISmxkSFZ5YmlCTllYUm9MbU5sYVd3b0tHOWlhaTVpZVhSbFRHVnVaM1JvSUh4OElHOWlhaTV6YVhwbEtTQXFJRUpCVTBVMk5GOVBWa1ZTU0VWQlJDazdYRzU5WEc1bGVIQnZjblJ6TG1KNWRHVk1aVzVuZEdnZ1BTQmllWFJsVEdWdVozUm9PMXh1Wm5WdVkzUnBiMjRnZFhSbU9FeGxibWQwYUNoemRISXBJSHRjYmlBZ0lDQnNaWFFnWXlBOUlEQXNJR3hsYm1kMGFDQTlJREE3WEc0Z0lDQWdabTl5SUNoc1pYUWdhU0E5SURBc0lHd2dQU0J6ZEhJdWJHVnVaM1JvT3lCcElEd2diRHNnYVNzcktTQjdYRzRnSUNBZ0lDQWdJR01nUFNCemRISXVZMmhoY2tOdlpHVkJkQ2hwS1R0Y2JpQWdJQ0FnSUNBZ2FXWWdLR01nUENBd2VEZ3dLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnNaVzVuZEdnZ0t6MGdNVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCbGJITmxJR2xtSUNoaklEd2dNSGc0TURBcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUd4bGJtZDBhQ0FyUFNBeU8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR1ZzYzJVZ2FXWWdLR01nUENBd2VHUTRNREFnZkh3Z1l5QStQU0F3ZUdVd01EQXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHeGxibWQwYUNBclBTQXpPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FTc3JPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2JHVnVaM1JvSUNzOUlEUTdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUd4bGJtZDBhRHRjYm4xY2JpSXNJbHdpZFhObElITjBjbWxqZEZ3aU8xeHVUMkpxWldOMExtUmxabWx1WlZCeWIzQmxjblI1S0dWNGNHOXlkSE1zSUZ3aVgxOWxjMDF2WkhWc1pWd2lMQ0I3SUhaaGJIVmxPaUIwY25WbElIMHBPMXh1WTI5dWMzUWdaR1ZtYVc1bElEMGdlMXh1SUNBZ0lFRlFVRjlPUVUxRk9pQmNJblJoYkd0dVhDSXNYRzRnSUNBZ1VGSlBSRlZEVkVsUFRqb2dYQ0pRVWs5RVZVTlVTVTlPWENJc1hHNGdJQ0FnVEU5RFFVeElUMU5VT2lCY0lreFBRMEZNU0U5VFZGd2lMRnh1SUNBZ0lFUkZWa1ZNVDFCTlJVNVVPaUJjSWtSRlZrVk1UMUJOUlU1VVhDSXNYRzRnSUNBZ1VGSlBSRlZEVkVsUFRsOUVUMDFCU1U0NklGd2lkR0ZzYTI0dWFXOWNJaXhjYmlBZ0lDQlFVazlFVlVOVVNVOU9YMEZRU1Y5RVQwMUJTVTQ2SUZ3aVlYQnBMblJoYkd0dUxtbHZYQ0lzWEc0Z0lDQWdSRVZXUlV4UFVFMUZUbFJmUkU5TlFVbE9PaUJjSW14dlkyRnNhRzl6ZEZ3aUxGeHVJQ0FnSUVGWFUxOUlUMU5VWDB0RldUb2dYQ0pqYjIxd2RYUmxMbWx1ZEdWeWJtRnNYQ0lzSUM4dkoyVmpNaTVwYm5SbGNtNWhiQ2NzWEc0Z0lDQWdVRTlTVkZNNklIdGNiaUFnSUNBZ0lDQWdTRlJVVURvZ09EQXNYRzRnSUNBZ0lDQWdJRWhVVkZCVE9pQTBORE1zWEc0Z0lDQWdJQ0FnSUVSRlZrVk1UMUJOUlU1VVgwTlBWa1ZTT2lBNE1EQXdMRnh1SUNBZ0lDQWdJQ0JFUlZaRlRFOVFUVVZPVkY5QlVFazZJRGd3TURFc1hHNGdJQ0FnSUNBZ0lFUkZWa1ZNVDFCTlJVNVVYME5QVFZCUFRrVk9WRk02SURnd01ESXNYRzRnSUNBZ0lDQWdJRVJGVmtWTVQxQk5SVTVVWDFSVlRrVTZJRGd3TURNc1hHNGdJQ0FnSUNBZ0lFUkZWa1ZNVDFCTlJVNVVYME5NU1VWT1ZEb2dPREE0TUN4Y2JpQWdJQ0FnSUNBZ1VrVkVTVk02SURZek56a3NYRzRnSUNBZ0lDQWdJRTFQVGtkUE9pQXlOekF4Tnl4Y2JpQWdJQ0FnSUNBZ1NVOWZURUk2SURFd05EUXdMRnh1SUNBZ0lDQWdJQ0JKVDE5U1QwOVVPaUF4TURRME5DeGNiaUFnSUNCOUxGeHVJQ0FnSUZOVlFsOUVUMDFCU1U1VE9pQjdYRzRnSUNBZ0lDQWdJRmRYVnpvZ1hDSjNkM2RjSWl4Y2JpQWdJQ0FnSUNBZ1FWQkpPaUJjSW1Gd2FWd2lMRnh1SUNBZ0lDQWdJQ0JFUlZORE9pQmNJbVJsYzJOY0lpeGNiaUFnSUNBZ0lDQWdVRTlTVkVGTU9pQmNJbkJ2Y25SaGJGd2lMRnh1SUNBZ0lDQWdJQ0JEVEVsRlRsUTZJRndpWTJ4cFpXNTBYQ0lzWEc0Z0lDQWdJQ0FnSUVGVFUwVlVVem9nWENKaGMzTmxkSE5jSWl4Y2JpQWdJQ0FnSUNBZ1UwVlRVMGxQVGpvZ1hDSnpaWE56YVc5dVhDSXNYRzRnSUNBZ0lDQWdJRUZWVkU4NklGd2lZWFYwYjF3aUxGeHVJQ0FnSUNBZ0lDQlBWMDQ2SUZ3aWIzZHVYQ0lzWEc0Z0lDQWdJQ0FnSUU1RlYxTTZJRndpYm1WM2Mxd2lMRnh1SUNBZ0lDQWdJQ0JDUVU1T1JWSTZJRndpWW1GdWJtVnlYQ0lzWEc0Z0lDQWdJQ0FnSUVOUFZrVlNPaUJjSW1OdmRtVnlYQ0lzWEc0Z0lDQWdJQ0FnSUZKQlRrczZJRndpY21GdWExd2lMRnh1SUNBZ0lDQWdJQ0JGV0ZRNklGd2laWGgwWENJc1hHNGdJQ0FnSUNBZ0lFTlBUVkJQVGtWT1ZGTTZJRndpWTI5dGNHOXVaVzUwYzF3aUxGeHVJQ0FnSUNBZ0lDQlVWVTVGT2lCY0luUjFibVZjSWl4Y2JpQWdJQ0FnSUNBZ1ZGSkJUbE5CUTFSSlQwNDZJRndpZEhKaGJuTmhZM1JwYjI1Y0lpeGNiaUFnSUNBZ0lDQWdRVlZVU0RvZ1hDSmhkWFJvWENJc1hHNGdJQ0FnZlN4Y2JpQWdJQ0JCVUZCZlZGbFFSVk02SUh0Y2JpQWdJQ0FnSUNBZ1EweEpSVTVVT2lCY0lrTk1TVVZPVkZ3aUxGeHVJQ0FnSUNBZ0lDQlFUMUpVUVV3NklGd2lVRTlTVkVGTVhDSXNYRzRnSUNBZ0lDQWdJRVZZVkVWT1UwbFBUam9nWENKRldGUkZUbE5KVDA1Y0lpeGNiaUFnSUNBZ0lDQWdRVkJKT2lCY0lrRlFTVndpTEZ4dUlDQWdJQ0FnSUNCRFQxWkZVam9nWENKRFQxWkZVbHdpTEZ4dUlDQWdJQ0FnSUNCRFQwMVFUMDVGVGxSVE9pQmNJa05QVFZCUFRrVk9WRk5jSWl4Y2JpQWdJQ0FnSUNBZ1ZGVk9SVG9nWENKVVZVNUZYQ0lzWEc0Z0lDQWdmU3hjYmlBZ0lDQlZVa3c2SUh0Y2JpQWdJQ0FnSUNBZ2RIZHBkSFJsY2pvZ1hDSm9kSFJ3Y3pvdkwzUjNhWFIwWlhJdVkyOXRMMXdpTEZ4dUlDQWdJQ0FnSUNCbVlXTmxZbTl2YXpvZ1hDSm9kSFJ3Y3pvdkwzZDNkeTVtWVdObFltOXZheTVqYjIwdlhDSXNYRzRnSUNBZ0lDQWdJR0Z3Y0hOMGIzSmxPaUJjSW1oMGRIQnpPaTh2YVhSMWJtVnpMbUZ3Y0d4bExtTnZiUzloY0hBdmFXUmNJaXhjYmlBZ0lDQWdJQ0FnY0d4aGVYTjBiM0psT2lCY0ltaDBkSEJ6T2k4dmNHeGhlUzVuYjI5bmJHVXVZMjl0TDNOMGIzSmxMMkZ3Y0hNdlpHVjBZV2xzY3o5cFpEMWNJaXhjYmlBZ0lDQWdJQ0FnWTJoeWIyMWxSWGgwWlc1emFXOXVPaUJjSW1oMGRIQnpPaTh2WTJoeWIyMWxMbWR2YjJkc1pTNWpiMjB2ZDJWaWMzUnZjbVV2WkdWMFlXbHNMM1JoYkd0dUxXWnZjaTFqYUhKdmJXVXZaR3R1WjI1dFpHeGpiMlpoYldKd1ptRmpZMlZ3WW01cVoyWm9iMnhuWW04L2FHdzlaVzVjSWl4Y2JpQWdJQ0I5TEZ4dUlDQWdJSFJoYkd0dVEyeHBaVzUwU25NNklGd2lkR0ZzYTI0dVkyeHBaVzUwTG1welhDSXNYRzRnSUNBZ2RHRnNhMjVCY0dsS2N6b2dYQ0owWVd4cmJpNWhjR2t1YW5OY0lpeGNiaUFnSUNCMFlXeHJibEpoYm10S2N6b2dYQ0owWVd4cmJpNXlZVzVyTG1welhDSXNYRzRnSUNBZ2JtOUpibTVsY2s1dmRHbG1PaUJjSWxOdmNuSjVMQ0JPYnlCR2RXNWpkR2x2Ymk1Y0lpeGNiaUFnSUNCaVlXNXVaWEpEYkdGemN6b2dYQ0owWVd4cmJsOWlZVzV1WlhKY0lpeGNiaUFnSUNCemRHOXlZV2RsUzJWNU9pQjdYRzRnSUNBZ0lDQWdJR0poYzJWTFpYazZJRndpUUhSaGJHdHVRRndpTEZ4dUlDQWdJQ0FnSUNCd2IzTjBjMVJwYldWc2FXNWxXbVZ5YnpvZ1hDSndiM04wYzFScGJXVnNhVzVsV21WeWIxd2lMRnh1SUNBZ0lDQWdJQ0J3YjNOMGMxUnBiV1ZzYVc1bE9pQmNJbkJ2YzNSelZHbHRaV3hwYm1WY0lpeGNiaUFnSUNBZ0lDQWdjRzl6ZEhOVGFXNW5iR1U2SUZ3aWNHOXpkSE5UYVc1bmJHVmNJaXhjYmlBZ0lDQWdJQ0FnY0c5emRITk5kV3gwYVRvZ1hDSndiM04wYzAxMWJIUnBYQ0lzWEc0Z0lDQWdJQ0FnSUhCdmMzUnpRMmhwYkdRNklGd2ljRzl6ZEhORGFHbHNaRndpTEZ4dUlDQWdJQ0FnSUNCd2IzTjBjMHh2WjNNNklGd2ljRzl6ZEhOTWIyZHpYQ0lzWEc0Z0lDQWdJQ0FnSUhSb2NtVmhaSE02SUZ3aWRHaHlaV0ZrYzF3aUxGeHVJQ0FnSUgwc1hHNTlPMXh1Wlhod2IzSjBjeTVrWldaaGRXeDBJRDBnWkdWbWFXNWxPMXh1SWl3aUx5OGdjMmhwYlNCbWIzSWdkWE5wYm1jZ2NISnZZMlZ6Y3lCcGJpQmljbTkzYzJWeVhHNTJZWElnY0hKdlkyVnpjeUE5SUcxdlpIVnNaUzVsZUhCdmNuUnpJRDBnZTMwN1hHNWNiaTh2SUdOaFkyaGxaQ0JtY205dElIZG9ZWFJsZG1WeUlHZHNiMkpoYkNCcGN5QndjbVZ6Wlc1MElITnZJSFJvWVhRZ2RHVnpkQ0J5ZFc1dVpYSnpJSFJvWVhRZ2MzUjFZaUJwZEZ4dUx5OGdaRzl1SjNRZ1luSmxZV3NnZEdocGJtZHpMaUFnUW5WMElIZGxJRzVsWldRZ2RHOGdkM0poY0NCcGRDQnBiaUJoSUhSeWVTQmpZWFJqYUNCcGJpQmpZWE5sSUdsMElHbHpYRzR2THlCM2NtRndjR1ZrSUdsdUlITjBjbWxqZENCdGIyUmxJR052WkdVZ2QyaHBZMmdnWkc5bGMyNG5kQ0JrWldacGJtVWdZVzU1SUdkc2IySmhiSE11SUNCSmRDZHpJR2x1YzJsa1pTQmhYRzR2THlCbWRXNWpkR2x2YmlCaVpXTmhkWE5sSUhSeWVTOWpZWFJqYUdWeklHUmxiM0IwYVcxcGVtVWdhVzRnWTJWeWRHRnBiaUJsYm1kcGJtVnpMbHh1WEc1MllYSWdZMkZqYUdWa1UyVjBWR2x0Wlc5MWREdGNiblpoY2lCallXTm9aV1JEYkdWaGNsUnBiV1Z2ZFhRN1hHNWNibVoxYm1OMGFXOXVJR1JsWm1GMWJIUlRaWFJVYVcxdmRYUW9LU0I3WEc0Z0lDQWdkR2h5YjNjZ2JtVjNJRVZ5Y205eUtDZHpaWFJVYVcxbGIzVjBJR2hoY3lCdWIzUWdZbVZsYmlCa1pXWnBibVZrSnlrN1hHNTlYRzVtZFc1amRHbHZiaUJrWldaaGRXeDBRMnhsWVhKVWFXMWxiM1YwSUNncElIdGNiaUFnSUNCMGFISnZkeUJ1WlhjZ1JYSnliM0lvSjJOc1pXRnlWR2x0Wlc5MWRDQm9ZWE1nYm05MElHSmxaVzRnWkdWbWFXNWxaQ2NwTzF4dWZWeHVLR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0IwY25rZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvZEhsd1pXOW1JSE5sZEZScGJXVnZkWFFnUFQwOUlDZG1kVzVqZEdsdmJpY3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhZMmhsWkZObGRGUnBiV1Z2ZFhRZ1BTQnpaWFJVYVcxbGIzVjBPMXh1SUNBZ0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRmphR1ZrVTJWMFZHbHRaVzkxZENBOUlHUmxabUYxYkhSVFpYUlVhVzF2ZFhRN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNCOUlHTmhkR05vSUNobEtTQjdYRzRnSUNBZ0lDQWdJR05oWTJobFpGTmxkRlJwYldWdmRYUWdQU0JrWldaaGRXeDBVMlYwVkdsdGIzVjBPMXh1SUNBZ0lIMWNiaUFnSUNCMGNua2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb2RIbHdaVzltSUdOc1pXRnlWR2x0Wlc5MWRDQTlQVDBnSjJaMWJtTjBhVzl1SnlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGamFHVmtRMnhsWVhKVWFXMWxiM1YwSUQwZ1kyeGxZWEpVYVcxbGIzVjBPMXh1SUNBZ0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRmphR1ZrUTJ4bFlYSlVhVzFsYjNWMElEMGdaR1ZtWVhWc2RFTnNaV0Z5VkdsdFpXOTFkRHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJSDBnWTJGMFkyZ2dLR1VwSUh0Y2JpQWdJQ0FnSUNBZ1kyRmphR1ZrUTJ4bFlYSlVhVzFsYjNWMElEMGdaR1ZtWVhWc2RFTnNaV0Z5VkdsdFpXOTFkRHRjYmlBZ0lDQjlYRzU5SUNncEtWeHVablZ1WTNScGIyNGdjblZ1VkdsdFpXOTFkQ2htZFc0cElIdGNiaUFnSUNCcFppQW9ZMkZqYUdWa1UyVjBWR2x0Wlc5MWRDQTlQVDBnYzJWMFZHbHRaVzkxZENrZ2UxeHVJQ0FnSUNBZ0lDQXZMMjV2Y20xaGJDQmxiblpwY205dFpXNTBjeUJwYmlCellXNWxJSE5wZEhWaGRHbHZibk5jYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSE5sZEZScGJXVnZkWFFvWm5WdUxDQXdLVHRjYmlBZ0lDQjlYRzRnSUNBZ0x5OGdhV1lnYzJWMFZHbHRaVzkxZENCM1lYTnVKM1FnWVhaaGFXeGhZbXhsSUdKMWRDQjNZWE1nYkdGMGRHVnlJR1JsWm1sdVpXUmNiaUFnSUNCcFppQW9LR05oWTJobFpGTmxkRlJwYldWdmRYUWdQVDA5SUdSbFptRjFiSFJUWlhSVWFXMXZkWFFnZkh3Z0lXTmhZMmhsWkZObGRGUnBiV1Z2ZFhRcElDWW1JSE5sZEZScGJXVnZkWFFwSUh0Y2JpQWdJQ0FnSUNBZ1kyRmphR1ZrVTJWMFZHbHRaVzkxZENBOUlITmxkRlJwYldWdmRYUTdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnpaWFJVYVcxbGIzVjBLR1oxYml3Z01DazdYRzRnSUNBZ2ZWeHVJQ0FnSUhSeWVTQjdYRzRnSUNBZ0lDQWdJQzh2SUhkb1pXNGdkMmhsYmlCemIyMWxZbTlrZVNCb1lYTWdjMk55WlhkbFpDQjNhWFJvSUhObGRGUnBiV1Z2ZFhRZ1luVjBJRzV2SUVrdVJTNGdiV0ZrWkc1bGMzTmNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHTmhZMmhsWkZObGRGUnBiV1Z2ZFhRb1puVnVMQ0F3S1R0Y2JpQWdJQ0I5SUdOaGRHTm9LR1VwZTF4dUlDQWdJQ0FnSUNCMGNua2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0x5OGdWMmhsYmlCM1pTQmhjbVVnYVc0Z1NTNUZMaUJpZFhRZ2RHaGxJSE5qY21sd2RDQm9ZWE1nWW1WbGJpQmxkbUZzWldRZ2MyOGdTUzVGTGlCa2IyVnpiaWQwSUhSeWRYTjBJSFJvWlNCbmJHOWlZV3dnYjJKcVpXTjBJSGRvWlc0Z1kyRnNiR1ZrSUc1dmNtMWhiR3g1WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1kyRmphR1ZrVTJWMFZHbHRaVzkxZEM1allXeHNLRzUxYkd3c0lHWjFiaXdnTUNrN1hHNGdJQ0FnSUNBZ0lIMGdZMkYwWTJnb1pTbDdYRzRnSUNBZ0lDQWdJQ0FnSUNBdkx5QnpZVzFsSUdGeklHRmliM1psSUdKMWRDQjNhR1Z1SUdsMEozTWdZU0IyWlhKemFXOXVJRzltSUVrdVJTNGdkR2hoZENCdGRYTjBJR2hoZG1VZ2RHaGxJR2RzYjJKaGJDQnZZbXBsWTNRZ1ptOXlJQ2QwYUdsekp5d2dhRzl3Wm5Wc2JIa2diM1Z5SUdOdmJuUmxlSFFnWTI5eWNtVmpkQ0J2ZEdobGNuZHBjMlVnYVhRZ2QybHNiQ0IwYUhKdmR5QmhJR2RzYjJKaGJDQmxjbkp2Y2x4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHTmhZMmhsWkZObGRGUnBiV1Z2ZFhRdVkyRnNiQ2gwYUdsekxDQm1kVzRzSURBcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVYRzVjYm4xY2JtWjFibU4wYVc5dUlISjFia05zWldGeVZHbHRaVzkxZENodFlYSnJaWElwSUh0Y2JpQWdJQ0JwWmlBb1kyRmphR1ZrUTJ4bFlYSlVhVzFsYjNWMElEMDlQU0JqYkdWaGNsUnBiV1Z2ZFhRcElIdGNiaUFnSUNBZ0lDQWdMeTl1YjNKdFlXd2daVzUyYVhKdmJXVnVkSE1nYVc0Z2MyRnVaU0J6YVhSMVlYUnBiMjV6WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJqYkdWaGNsUnBiV1Z2ZFhRb2JXRnlhMlZ5S1R0Y2JpQWdJQ0I5WEc0Z0lDQWdMeThnYVdZZ1kyeGxZWEpVYVcxbGIzVjBJSGRoYzI0bmRDQmhkbUZwYkdGaWJHVWdZblYwSUhkaGN5QnNZWFIwWlhJZ1pHVm1hVzVsWkZ4dUlDQWdJR2xtSUNnb1kyRmphR1ZrUTJ4bFlYSlVhVzFsYjNWMElEMDlQU0JrWldaaGRXeDBRMnhsWVhKVWFXMWxiM1YwSUh4OElDRmpZV05vWldSRGJHVmhjbFJwYldWdmRYUXBJQ1ltSUdOc1pXRnlWR2x0Wlc5MWRDa2dlMXh1SUNBZ0lDQWdJQ0JqWVdOb1pXUkRiR1ZoY2xScGJXVnZkWFFnUFNCamJHVmhjbFJwYldWdmRYUTdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmpiR1ZoY2xScGJXVnZkWFFvYldGeWEyVnlLVHRjYmlBZ0lDQjlYRzRnSUNBZ2RISjVJSHRjYmlBZ0lDQWdJQ0FnTHk4Z2QyaGxiaUIzYUdWdUlITnZiV1ZpYjJSNUlHaGhjeUJ6WTNKbGQyVmtJSGRwZEdnZ2MyVjBWR2x0Wlc5MWRDQmlkWFFnYm04Z1NTNUZMaUJ0WVdSa2JtVnpjMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdZMkZqYUdWa1EyeGxZWEpVYVcxbGIzVjBLRzFoY210bGNpazdYRzRnSUNBZ2ZTQmpZWFJqYUNBb1pTbDdYRzRnSUNBZ0lDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0F2THlCWGFHVnVJSGRsSUdGeVpTQnBiaUJKTGtVdUlHSjFkQ0IwYUdVZ2MyTnlhWEIwSUdoaGN5QmlaV1Z1SUdWMllXeGxaQ0J6YnlCSkxrVXVJR1J2WlhOdUozUWdJSFJ5ZFhOMElIUm9aU0JuYkc5aVlXd2diMkpxWldOMElIZG9aVzRnWTJGc2JHVmtJRzV2Y20xaGJHeDVYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnWTJGamFHVmtRMnhsWVhKVWFXMWxiM1YwTG1OaGJHd29iblZzYkN3Z2JXRnlhMlZ5S1R0Y2JpQWdJQ0FnSUNBZ2ZTQmpZWFJqYUNBb1pTbDdYRzRnSUNBZ0lDQWdJQ0FnSUNBdkx5QnpZVzFsSUdGeklHRmliM1psSUdKMWRDQjNhR1Z1SUdsMEozTWdZU0IyWlhKemFXOXVJRzltSUVrdVJTNGdkR2hoZENCdGRYTjBJR2hoZG1VZ2RHaGxJR2RzYjJKaGJDQnZZbXBsWTNRZ1ptOXlJQ2QwYUdsekp5d2dhRzl3Wm5Wc2JIa2diM1Z5SUdOdmJuUmxlSFFnWTI5eWNtVmpkQ0J2ZEdobGNuZHBjMlVnYVhRZ2QybHNiQ0IwYUhKdmR5QmhJR2RzYjJKaGJDQmxjbkp2Y2k1Y2JpQWdJQ0FnSUNBZ0lDQWdJQzh2SUZOdmJXVWdkbVZ5YzJsdmJuTWdiMllnU1M1RkxpQm9ZWFpsSUdScFptWmxjbVZ1ZENCeWRXeGxjeUJtYjNJZ1kyeGxZWEpVYVcxbGIzVjBJSFp6SUhObGRGUnBiV1Z2ZFhSY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQmpZV05vWldSRGJHVmhjbFJwYldWdmRYUXVZMkZzYkNoMGFHbHpMQ0J0WVhKclpYSXBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdmVnh1WEc1Y2JseHVmVnh1ZG1GeUlIRjFaWFZsSUQwZ1cxMDdYRzUyWVhJZ1pISmhhVzVwYm1jZ1BTQm1ZV3h6WlR0Y2JuWmhjaUJqZFhKeVpXNTBVWFZsZFdVN1hHNTJZWElnY1hWbGRXVkpibVJsZUNBOUlDMHhPMXh1WEc1bWRXNWpkR2x2YmlCamJHVmhibFZ3VG1WNGRGUnBZMnNvS1NCN1hHNGdJQ0FnYVdZZ0tDRmtjbUZwYm1sdVp5QjhmQ0FoWTNWeWNtVnVkRkYxWlhWbEtTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJqdGNiaUFnSUNCOVhHNGdJQ0FnWkhKaGFXNXBibWNnUFNCbVlXeHpaVHRjYmlBZ0lDQnBaaUFvWTNWeWNtVnVkRkYxWlhWbExteGxibWQwYUNrZ2UxeHVJQ0FnSUNBZ0lDQnhkV1YxWlNBOUlHTjFjbkpsYm5SUmRXVjFaUzVqYjI1allYUW9jWFZsZFdVcE8xeHVJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUhGMVpYVmxTVzVrWlhnZ1BTQXRNVHRjYmlBZ0lDQjlYRzRnSUNBZ2FXWWdLSEYxWlhWbExteGxibWQwYUNrZ2UxeHVJQ0FnSUNBZ0lDQmtjbUZwYmxGMVpYVmxLQ2s3WEc0Z0lDQWdmVnh1ZlZ4dVhHNW1kVzVqZEdsdmJpQmtjbUZwYmxGMVpYVmxLQ2tnZTF4dUlDQWdJR2xtSUNoa2NtRnBibWx1WnlrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200N1hHNGdJQ0FnZlZ4dUlDQWdJSFpoY2lCMGFXMWxiM1YwSUQwZ2NuVnVWR2x0Wlc5MWRDaGpiR1ZoYmxWd1RtVjRkRlJwWTJzcE8xeHVJQ0FnSUdSeVlXbHVhVzVuSUQwZ2RISjFaVHRjYmx4dUlDQWdJSFpoY2lCc1pXNGdQU0J4ZFdWMVpTNXNaVzVuZEdnN1hHNGdJQ0FnZDJocGJHVW9iR1Z1S1NCN1hHNGdJQ0FnSUNBZ0lHTjFjbkpsYm5SUmRXVjFaU0E5SUhGMVpYVmxPMXh1SUNBZ0lDQWdJQ0J4ZFdWMVpTQTlJRnRkTzF4dUlDQWdJQ0FnSUNCM2FHbHNaU0FvS3l0eGRXVjFaVWx1WkdWNElEd2diR1Z1S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb1kzVnljbVZ1ZEZGMVpYVmxLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTNWeWNtVnVkRkYxWlhWbFczRjFaWFZsU1c1a1pYaGRMbkoxYmlncE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lIRjFaWFZsU1c1a1pYZ2dQU0F0TVR0Y2JpQWdJQ0FnSUNBZ2JHVnVJRDBnY1hWbGRXVXViR1Z1WjNSb08xeHVJQ0FnSUgxY2JpQWdJQ0JqZFhKeVpXNTBVWFZsZFdVZ1BTQnVkV3hzTzF4dUlDQWdJR1J5WVdsdWFXNW5JRDBnWm1Gc2MyVTdYRzRnSUNBZ2NuVnVRMnhsWVhKVWFXMWxiM1YwS0hScGJXVnZkWFFwTzF4dWZWeHVYRzV3Y205alpYTnpMbTVsZUhSVWFXTnJJRDBnWm5WdVkzUnBiMjRnS0daMWJpa2dlMXh1SUNBZ0lIWmhjaUJoY21keklEMGdibVYzSUVGeWNtRjVLR0Z5WjNWdFpXNTBjeTVzWlc1bmRHZ2dMU0F4S1R0Y2JpQWdJQ0JwWmlBb1lYSm5kVzFsYm5SekxteGxibWQwYUNBK0lERXBJSHRjYmlBZ0lDQWdJQ0FnWm05eUlDaDJZWElnYVNBOUlERTdJR2tnUENCaGNtZDFiV1Z1ZEhNdWJHVnVaM1JvT3lCcEt5c3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHRnlaM05iYVNBdElERmRJRDBnWVhKbmRXMWxiblJ6VzJsZE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0FnSUhGMVpYVmxMbkIxYzJnb2JtVjNJRWwwWlcwb1puVnVMQ0JoY21kektTazdYRzRnSUNBZ2FXWWdLSEYxWlhWbExteGxibWQwYUNBOVBUMGdNU0FtSmlBaFpISmhhVzVwYm1jcElIdGNiaUFnSUNBZ0lDQWdjblZ1VkdsdFpXOTFkQ2hrY21GcGJsRjFaWFZsS1R0Y2JpQWdJQ0I5WEc1OU8xeHVYRzR2THlCMk9DQnNhV3RsY3lCd2NtVmthV04wYVdKc1pTQnZZbXBsWTNSelhHNW1kVzVqZEdsdmJpQkpkR1Z0S0daMWJpd2dZWEp5WVhrcElIdGNiaUFnSUNCMGFHbHpMbVoxYmlBOUlHWjFianRjYmlBZ0lDQjBhR2x6TG1GeWNtRjVJRDBnWVhKeVlYazdYRzU5WEc1SmRHVnRMbkJ5YjNSdmRIbHdaUzV5ZFc0Z1BTQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdkR2hwY3k1bWRXNHVZWEJ3Ykhrb2JuVnNiQ3dnZEdocGN5NWhjbkpoZVNrN1hHNTlPMXh1Y0hKdlkyVnpjeTUwYVhSc1pTQTlJQ2RpY205M2MyVnlKenRjYm5CeWIyTmxjM011WW5KdmQzTmxjaUE5SUhSeWRXVTdYRzV3Y205alpYTnpMbVZ1ZGlBOUlIdDlPMXh1Y0hKdlkyVnpjeTVoY21kMklEMGdXMTA3WEc1d2NtOWpaWE56TG5abGNuTnBiMjRnUFNBbkp6c2dMeThnWlcxd2RIa2djM1J5YVc1bklIUnZJR0YyYjJsa0lISmxaMlY0Y0NCcGMzTjFaWE5jYm5CeWIyTmxjM011ZG1WeWMybHZibk1nUFNCN2ZUdGNibHh1Wm5WdVkzUnBiMjRnYm05dmNDZ3BJSHQ5WEc1Y2JuQnliMk5sYzNNdWIyNGdQU0J1YjI5d08xeHVjSEp2WTJWemN5NWhaR1JNYVhOMFpXNWxjaUE5SUc1dmIzQTdYRzV3Y205alpYTnpMbTl1WTJVZ1BTQnViMjl3TzF4dWNISnZZMlZ6Y3k1dlptWWdQU0J1YjI5d08xeHVjSEp2WTJWemN5NXlaVzF2ZG1WTWFYTjBaVzVsY2lBOUlHNXZiM0E3WEc1d2NtOWpaWE56TG5KbGJXOTJaVUZzYkV4cGMzUmxibVZ5Y3lBOUlHNXZiM0E3WEc1d2NtOWpaWE56TG1WdGFYUWdQU0J1YjI5d08xeHVjSEp2WTJWemN5NXdjbVZ3Wlc1a1RHbHpkR1Z1WlhJZ1BTQnViMjl3TzF4dWNISnZZMlZ6Y3k1d2NtVndaVzVrVDI1alpVeHBjM1JsYm1WeUlEMGdibTl2Y0R0Y2JseHVjSEp2WTJWemN5NXNhWE4wWlc1bGNuTWdQU0JtZFc1amRHbHZiaUFvYm1GdFpTa2dleUJ5WlhSMWNtNGdXMTBnZlZ4dVhHNXdjbTlqWlhOekxtSnBibVJwYm1jZ1BTQm1kVzVqZEdsdmJpQW9ibUZ0WlNrZ2UxeHVJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWduY0hKdlkyVnpjeTVpYVc1a2FXNW5JR2x6SUc1dmRDQnpkWEJ3YjNKMFpXUW5LVHRjYm4wN1hHNWNibkJ5YjJObGMzTXVZM2RrSUQwZ1puVnVZM1JwYjI0Z0tDa2dleUJ5WlhSMWNtNGdKeThuSUgwN1hHNXdjbTlqWlhOekxtTm9aR2x5SUQwZ1puVnVZM1JwYjI0Z0tHUnBjaWtnZTF4dUlDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpZ25jSEp2WTJWemN5NWphR1JwY2lCcGN5QnViM1FnYzNWd2NHOXlkR1ZrSnlrN1hHNTlPMXh1Y0hKdlkyVnpjeTUxYldGemF5QTlJR1oxYm1OMGFXOXVLQ2tnZXlCeVpYUjFjbTRnTURzZ2ZUdGNiaUlzSWx3aWRYTmxJSE4wY21samRGd2lPMXh1VDJKcVpXTjBMbVJsWm1sdVpWQnliM0JsY25SNUtHVjRjRzl5ZEhNc0lGd2lYMTlsYzAxdlpIVnNaVndpTENCN0lIWmhiSFZsT2lCMGNuVmxJSDBwTzF4dVpYaHdiM0owY3k1blpXNWxjbUYwWlZWdWFYRjFaVXRsZVNBOUlHVjRjRzl5ZEhNdVoyVnVaWEpoZEdWVmJtbHhkV1ZMWlhsVFpYQmhjbUYwYjNJZ1BTQmxlSEJ2Y25SekxtbHpWbUZzYVdSTFpYa2dQU0JsZUhCdmNuUnpMa2xUWDA1UFJFVWdQU0JsZUhCdmNuUnpMa2xUWDBKU1QxZFRSVklnUFNCbGVIQnZjblJ6TG1selRtOWtaVk5sY25abGNpQTlJSFp2YVdRZ01EdGNibVY0Y0c5eWRITXVaMlYwUlc1MlZtRnlJRDBnWjJWMFJXNTJWbUZ5TzF4dVkyOXVjM1FnYVhOT2IyUmxVMlZ5ZG1WeUlEMGdLQ2tnUFQ0Z2RIbHdaVzltSUhkcGJtUnZkeUE5UFQwZ1hDSjFibVJsWm1sdVpXUmNJanRjYm1WNGNHOXlkSE11YVhOT2IyUmxVMlZ5ZG1WeUlEMGdhWE5PYjJSbFUyVnlkbVZ5TzF4dUx5OGdjblZ1ZEdsdFpTNTBjMXh1Wlhod2IzSjBjeTVKVTE5Q1VrOVhVMFZTSUQwZ2RIbHdaVzltSUhkcGJtUnZkeUFoUFQwZ1hDSjFibVJsWm1sdVpXUmNJanRjYm1WNGNHOXlkSE11U1ZOZlRrOUVSU0E5SUhSNWNHVnZaaUJ3Y205alpYTnpJQ0U5UFNCY0luVnVaR1ZtYVc1bFpGd2lJQ1ltSUNFaGNISnZZMlZ6Y3k1eVpXeGxZWE5sUHk1dVlXMWxPMXh1Wm5WdVkzUnBiMjRnWjJWMFJXNTJWbUZ5S0d0bGVTa2dlMXh1SUNBZ0lHbG1JQ2hsZUhCdmNuUnpMa2xUWDA1UFJFVXBJSHRjYmlBZ0lDQWdJQ0FnTHk4Z1RtOWtaZSs4aU9PQ3RlT0R2T09Ea08rOGllT0JvT09Ca2VXUGd1ZUZwMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdjSEp2WTJWemN5NWxiblkvTGx0clpYbGRPMXh1SUNBZ0lIMWNiaUFnSUNBdkx5RGpnNWJqZzZuamdxYmpncmJqZ2FmamdhL2xqNExuaGFmamdaZmpnYXJqZ1lUdnZJamx2NFhvcG9Iamdhcmpnb2tnY0hWaWJHbGpJT2VTc09XaWcrV2tpZWFWc09PQnVPKzhpVnh1SUNBZ0lISmxkSFZ5YmlCMWJtUmxabWx1WldRN1hHNTlYRzVqYjI1emRDQnBjMVpoYkdsa1MyVjVJRDBnS0d0bGVTd2diMkpxS1NBOVBpQjdYRzRnSUNBZ2NtVjBkWEp1SUd0bGVTQnBiaUJ2WW1vN1hHNTlPMXh1Wlhod2IzSjBjeTVwYzFaaGJHbGtTMlY1SUQwZ2FYTldZV3hwWkV0bGVUdGNibVY0Y0c5eWRITXVaMlZ1WlhKaGRHVlZibWx4ZFdWTFpYbFRaWEJoY21GMGIzSWdQU0JjSWpvNlhDSTdYRzVqYjI1emRDQm5aVzVsY21GMFpWVnVhWEYxWlV0bGVTQTlJQ2hzWVdKbGJDQTlJRndpYVdSY0lpd2djMlZ3WlhKaGRHOXlJRDBnWlhod2IzSjBjeTVuWlc1bGNtRjBaVlZ1YVhGMVpVdGxlVk5sY0dGeVlYUnZjaWtnUFQ0Z2UxeHVJQ0FnSUhKbGRIVnliaUFvYkdGaVpXd2dLMXh1SUNBZ0lDQWdJQ0J6WlhCbGNtRjBiM0lnSzF4dUlDQWdJQ0FnSUNCRVlYUmxMbTV2ZHlncExuUnZVM1J5YVc1bktETTJLU0FyWEc0Z0lDQWdJQ0FnSUUxaGRHZ3VjbUZ1Wkc5dEtDa3VkRzlUZEhKcGJtY29NellwTG5OMVluTjBjaWd5TENBMUtTazdYRzU5TzF4dVpYaHdiM0owY3k1blpXNWxjbUYwWlZWdWFYRjFaVXRsZVNBOUlHZGxibVZ5WVhSbFZXNXBjWFZsUzJWNU8xeHVJaXdpWENKMWMyVWdjM1J5YVdOMFhDSTdYRzVQWW1wbFkzUXVaR1ZtYVc1bFVISnZjR1Z5ZEhrb1pYaHdiM0owY3l3Z1hDSmZYMlZ6VFc5a2RXeGxYQ0lzSUhzZ2RtRnNkV1U2SUhSeWRXVWdmU2s3WEc1bGVIQnZjblJ6TG05dUlEMGdkbTlwWkNBd08xeHVablZ1WTNScGIyNGdiMjRvYjJKcUxDQmxkaXdnWm00cElIdGNiaUFnSUNCdlltb3ViMjRvWlhZc0lHWnVLVHRjYmlBZ0lDQnlaWFIxY200Z1puVnVZM1JwYjI0Z2MzVmlSR1Z6ZEhKdmVTZ3BJSHRjYmlBZ0lDQWdJQ0FnYjJKcUxtOW1aaWhsZGl3Z1ptNHBPMXh1SUNBZ0lIMDdYRzU5WEc1bGVIQnZjblJ6TG05dUlEMGdiMjQ3WEc0aUxDSmNJblZ6WlNCemRISnBZM1JjSWp0Y2JuWmhjaUJmWDJsdGNHOXlkRVJsWm1GMWJIUWdQU0FvZEdocGN5QW1KaUIwYUdsekxsOWZhVzF3YjNKMFJHVm1ZWFZzZENrZ2ZId2dablZ1WTNScGIyNGdLRzF2WkNrZ2UxeHVJQ0FnSUhKbGRIVnliaUFvYlc5a0lDWW1JRzF2WkM1ZlgyVnpUVzlrZFd4bEtTQS9JRzF2WkNBNklIc2dYQ0prWldaaGRXeDBYQ0k2SUcxdlpDQjlPMXh1ZlR0Y2JrOWlhbVZqZEM1a1pXWnBibVZRY205d1pYSjBlU2hsZUhCdmNuUnpMQ0JjSWw5ZlpYTk5iMlIxYkdWY0lpd2dleUIyWVd4MVpUb2dkSEoxWlNCOUtUdGNibVY0Y0c5eWRITXVVMjlqYTJWMElEMGdkbTlwWkNBd08xeHVZMjl1YzNRZ2MyOWphMlYwWDJsdlgzQmhjbk5sY2w4eElEMGdjbVZ4ZFdseVpTaGNJbk52WTJ0bGRDNXBieTF3WVhKelpYSmNJaWs3WEc1amIyNXpkQ0J2Ymw5cWMxOHhJRDBnY21WeGRXbHlaU2hjSWk0dmIyNHVhbk5jSWlrN1hHNWpiMjV6ZENCamIyMXdiMjVsYm5SZlpXMXBkSFJsY2w4eElEMGdjbVZ4ZFdseVpTaGNJa0J6YjJOclpYUXVhVzh2WTI5dGNHOXVaVzUwTFdWdGFYUjBaWEpjSWlrN1hHNWpiMjV6ZENCa1pXSjFaMTh4SUQwZ1gxOXBiWEJ2Y25SRVpXWmhkV3gwS0hKbGNYVnBjbVVvWENKa1pXSjFaMXdpS1NrN0lDOHZJR1JsWW5WbktDbGNibU52Ym5OMElHUmxZblZuSUQwZ1pHVmlkV2RmTVM1a1pXWmhkV3gwS0Z3aWMyOWphMlYwTG1sdkxXTnNhV1Z1ZERwemIyTnJaWFJjSWlrN0lDOHZJR1JsWW5WbktDbGNiaThxS2x4dUlDb2dTVzUwWlhKdVlXd2daWFpsYm5SekxseHVJQ29nVkdobGMyVWdaWFpsYm5SeklHTmhiaWQwSUdKbElHVnRhWFIwWldRZ1lua2dkR2hsSUhWelpYSXVYRzRnS2k5Y2JtTnZibk4wSUZKRlUwVlNWa1ZFWDBWV1JVNVVVeUE5SUU5aWFtVmpkQzVtY21WbGVtVW9lMXh1SUNBZ0lHTnZibTVsWTNRNklERXNYRzRnSUNBZ1kyOXVibVZqZEY5bGNuSnZjam9nTVN4Y2JpQWdJQ0JrYVhOamIyNXVaV04wT2lBeExGeHVJQ0FnSUdScGMyTnZibTVsWTNScGJtYzZJREVzWEc0Z0lDQWdMeThnUlhabGJuUkZiV2wwZEdWeUlISmxjMlZ5ZG1Wa0lHVjJaVzUwY3pvZ2FIUjBjSE02THk5dWIyUmxhbk11YjNKbkwyRndhUzlsZG1WdWRITXVhSFJ0YkNObGRtVnVkSE5mWlhabGJuUmZibVYzYkdsemRHVnVaWEpjYmlBZ0lDQnVaWGRNYVhOMFpXNWxjam9nTVN4Y2JpQWdJQ0J5WlcxdmRtVk1hWE4wWlc1bGNqb2dNU3hjYm4wcE8xeHVMeW9xWEc0Z0tpQkJJRk52WTJ0bGRDQnBjeUIwYUdVZ1puVnVaR0Z0Wlc1MFlXd2dZMnhoYzNNZ1ptOXlJR2x1ZEdWeVlXTjBhVzVuSUhkcGRHZ2dkR2hsSUhObGNuWmxjaTVjYmlBcVhHNGdLaUJCSUZOdlkydGxkQ0JpWld4dmJtZHpJSFJ2SUdFZ1kyVnlkR0ZwYmlCT1lXMWxjM0JoWTJVZ0tHSjVJR1JsWm1GMWJIUWdMeWtnWVc1a0lIVnpaWE1nWVc0Z2RXNWtaWEpzZVdsdVp5QjdRR3hwYm1zZ1RXRnVZV2RsY24wZ2RHOGdZMjl0YlhWdWFXTmhkR1V1WEc0Z0tseHVJQ29nUUdWNFlXMXdiR1ZjYmlBcUlHTnZibk4wSUhOdlkydGxkQ0E5SUdsdktDazdYRzRnS2x4dUlDb2djMjlqYTJWMExtOXVLRndpWTI5dWJtVmpkRndpTENBb0tTQTlQaUI3WEc0Z0tpQWdJR052Ym5OdmJHVXViRzluS0Z3aVkyOXVibVZqZEdWa1hDSXBPMXh1SUNvZ2ZTazdYRzRnS2x4dUlDb2dMeThnYzJWdVpDQmhiaUJsZG1WdWRDQjBieUIwYUdVZ2MyVnlkbVZ5WEc0Z0tpQnpiMk5yWlhRdVpXMXBkQ2hjSW1admIxd2lMQ0JjSW1KaGNsd2lLVHRjYmlBcVhHNGdLaUJ6YjJOclpYUXViMjRvWENKbWIyOWlZWEpjSWl3Z0tDa2dQVDRnZTF4dUlDb2dJQ0F2THlCaGJpQmxkbVZ1ZENCM1lYTWdjbVZqWldsMlpXUWdabkp2YlNCMGFHVWdjMlZ5ZG1WeVhHNGdLaUI5S1R0Y2JpQXFYRzRnS2lBdkx5QjFjRzl1SUdScGMyTnZibTVsWTNScGIyNWNiaUFxSUhOdlkydGxkQzV2YmloY0ltUnBjMk52Ym01bFkzUmNJaXdnS0hKbFlYTnZiaWtnUFQ0Z2UxeHVJQ29nSUNCamIyNXpiMnhsTG14dlp5aGdaR2x6WTI5dWJtVmpkR1ZrSUdSMVpTQjBieUFrZTNKbFlYTnZibjFnS1R0Y2JpQXFJSDBwTzF4dUlDb3ZYRzVqYkdGemN5QlRiMk5yWlhRZ1pYaDBaVzVrY3lCamIyMXdiMjVsYm5SZlpXMXBkSFJsY2w4eExrVnRhWFIwWlhJZ2UxeHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlHQlRiMk5yWlhSZ0lHTnZibk4wY25WamRHOXlMbHh1SUNBZ0lDQXFMMXh1SUNBZ0lHTnZibk4wY25WamRHOXlLR2x2TENCdWMzQXNJRzl3ZEhNcElIdGNiaUFnSUNBZ0lDQWdjM1Z3WlhJb0tUdGNiaUFnSUNBZ0lDQWdMeW9xWEc0Z0lDQWdJQ0FnSUNBcUlGZG9aWFJvWlhJZ2RHaGxJSE52WTJ0bGRDQnBjeUJqZFhKeVpXNTBiSGtnWTI5dWJtVmpkR1ZrSUhSdklIUm9aU0J6WlhKMlpYSXVYRzRnSUNBZ0lDQWdJQ0FxWEc0Z0lDQWdJQ0FnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FnSUNBZ0lDQXFJR052Ym5OMElITnZZMnRsZENBOUlHbHZLQ2s3WEc0Z0lDQWdJQ0FnSUNBcVhHNGdJQ0FnSUNBZ0lDQXFJSE52WTJ0bGRDNXZiaWhjSW1OdmJtNWxZM1JjSWl3Z0tDa2dQVDRnZTF4dUlDQWdJQ0FnSUNBZ0tpQWdJR052Ym5OdmJHVXViRzluS0hOdlkydGxkQzVqYjI1dVpXTjBaV1FwT3lBdkx5QjBjblZsWEc0Z0lDQWdJQ0FnSUNBcUlIMHBPMXh1SUNBZ0lDQWdJQ0FnS2x4dUlDQWdJQ0FnSUNBZ0tpQnpiMk5yWlhRdWIyNG9YQ0prYVhOamIyNXVaV04wWENJc0lDZ3BJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDb2dJQ0JqYjI1emIyeGxMbXh2WnloemIyTnJaWFF1WTI5dWJtVmpkR1ZrS1RzZ0x5OGdabUZzYzJWY2JpQWdJQ0FnSUNBZ0lDb2dmU2s3WEc0Z0lDQWdJQ0FnSUNBcUwxeHVJQ0FnSUNBZ0lDQjBhR2x6TG1OdmJtNWxZM1JsWkNBOUlHWmhiSE5sTzF4dUlDQWdJQ0FnSUNBdktpcGNiaUFnSUNBZ0lDQWdJQ29nVjJobGRHaGxjaUIwYUdVZ1kyOXVibVZqZEdsdmJpQnpkR0YwWlNCM1lYTWdjbVZqYjNabGNtVmtJR0ZtZEdWeUlHRWdkR1Z0Y0c5eVlYSjVJR1JwYzJOdmJtNWxZM1JwYjI0dUlFbHVJSFJvWVhRZ1kyRnpaU3dnWVc1NUlHMXBjM05sWkNCd1lXTnJaWFJ6SUhkcGJHeGNiaUFnSUNBZ0lDQWdJQ29nWW1VZ2RISmhibk50YVhSMFpXUWdZbmtnZEdobElITmxjblpsY2k1Y2JpQWdJQ0FnSUNBZ0lDb3ZYRzRnSUNBZ0lDQWdJSFJvYVhNdWNtVmpiM1psY21Wa0lEMGdabUZzYzJVN1hHNGdJQ0FnSUNBZ0lDOHFLbHh1SUNBZ0lDQWdJQ0FnS2lCQ2RXWm1aWElnWm05eUlIQmhZMnRsZEhNZ2NtVmpaV2wyWldRZ1ltVm1iM0psSUhSb1pTQkRUMDVPUlVOVUlIQmhZMnRsZEZ4dUlDQWdJQ0FnSUNBZ0tpOWNiaUFnSUNBZ0lDQWdkR2hwY3k1eVpXTmxhWFpsUW5WbVptVnlJRDBnVzEwN1hHNGdJQ0FnSUNBZ0lDOHFLbHh1SUNBZ0lDQWdJQ0FnS2lCQ2RXWm1aWElnWm05eUlIQmhZMnRsZEhNZ2RHaGhkQ0IzYVd4c0lHSmxJSE5sYm5RZ2IyNWpaU0IwYUdVZ2MyOWphMlYwSUdseklHTnZibTVsWTNSbFpGeHVJQ0FnSUNBZ0lDQWdLaTljYmlBZ0lDQWdJQ0FnZEdocGN5NXpaVzVrUW5WbVptVnlJRDBnVzEwN1hHNGdJQ0FnSUNBZ0lDOHFLbHh1SUNBZ0lDQWdJQ0FnS2lCVWFHVWdjWFZsZFdVZ2IyWWdjR0ZqYTJWMGN5QjBieUJpWlNCelpXNTBJSGRwZEdnZ2NtVjBjbmtnYVc0Z1kyRnpaU0J2WmlCbVlXbHNkWEpsTGx4dUlDQWdJQ0FnSUNBZ0tseHVJQ0FnSUNBZ0lDQWdLaUJRWVdOclpYUnpJR0Z5WlNCelpXNTBJRzl1WlNCaWVTQnZibVVzSUdWaFkyZ2dkMkZwZEdsdVp5Qm1iM0lnZEdobElITmxjblpsY2lCaFkydHViM2RzWldSblpXMWxiblFzSUdsdUlHOXlaR1Z5SUhSdklHZDFZWEpoYm5SbFpTQjBhR1VnWkdWc2FYWmxjbmtnYjNKa1pYSXVYRzRnSUNBZ0lDQWdJQ0FxSUVCd2NtbDJZWFJsWEc0Z0lDQWdJQ0FnSUNBcUwxeHVJQ0FnSUNBZ0lDQjBhR2x6TGw5eGRXVjFaU0E5SUZ0ZE8xeHVJQ0FnSUNBZ0lDQXZLaXBjYmlBZ0lDQWdJQ0FnSUNvZ1FTQnpaWEYxWlc1alpTQjBieUJuWlc1bGNtRjBaU0IwYUdVZ1NVUWdiMllnZEdobElIdEFiR2x1YXlCUmRXVjFaV1JRWVdOclpYUjlMbHh1SUNBZ0lDQWdJQ0FnS2lCQWNISnBkbUYwWlZ4dUlDQWdJQ0FnSUNBZ0tpOWNiaUFnSUNBZ0lDQWdkR2hwY3k1ZmNYVmxkV1ZUWlhFZ1BTQXdPMXh1SUNBZ0lDQWdJQ0IwYUdsekxtbGtjeUE5SURBN1hHNGdJQ0FnSUNBZ0lIUm9hWE11WVdOcmN5QTlJSHQ5TzF4dUlDQWdJQ0FnSUNCMGFHbHpMbVpzWVdkeklEMGdlMzA3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVhVzhnUFNCcGJ6dGNiaUFnSUNBZ0lDQWdkR2hwY3k1dWMzQWdQU0J1YzNBN1hHNGdJQ0FnSUNBZ0lHbG1JQ2h2Y0hSeklDWW1JRzl3ZEhNdVlYVjBhQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1aGRYUm9JRDBnYjNCMGN5NWhkWFJvTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lIUm9hWE11WDI5d2RITWdQU0JQWW1wbFkzUXVZWE56YVdkdUtIdDlMQ0J2Y0hSektUdGNiaUFnSUNBZ0lDQWdhV1lnS0hSb2FYTXVhVzh1WDJGMWRHOURiMjV1WldOMEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXZjR1Z1S0NrN1hHNGdJQ0FnZlZ4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUZkb1pYUm9aWElnZEdobElITnZZMnRsZENCcGN5QmpkWEp5Wlc1MGJIa2daR2x6WTI5dWJtVmpkR1ZrWEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBWlhoaGJYQnNaVnh1SUNBZ0lDQXFJR052Ym5OMElITnZZMnRsZENBOUlHbHZLQ2s3WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJ6YjJOclpYUXViMjRvWENKamIyNXVaV04wWENJc0lDZ3BJRDArSUh0Y2JpQWdJQ0FnS2lBZ0lHTnZibk52YkdVdWJHOW5LSE52WTJ0bGRDNWthWE5qYjI1dVpXTjBaV1FwT3lBdkx5Qm1ZV3h6WlZ4dUlDQWdJQ0FxSUgwcE8xeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ2MyOWphMlYwTG05dUtGd2laR2x6WTI5dWJtVmpkRndpTENBb0tTQTlQaUI3WEc0Z0lDQWdJQ29nSUNCamIyNXpiMnhsTG14dlp5aHpiMk5yWlhRdVpHbHpZMjl1Ym1WamRHVmtLVHNnTHk4Z2RISjFaVnh1SUNBZ0lDQXFJSDBwTzF4dUlDQWdJQ0FxTDF4dUlDQWdJR2RsZENCa2FYTmpiMjV1WldOMFpXUW9LU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUFoZEdocGN5NWpiMjV1WldOMFpXUTdYRzRnSUNBZ2ZWeHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlGTjFZbk5qY21saVpTQjBieUJ2Y0dWdUxDQmpiRzl6WlNCaGJtUWdjR0ZqYTJWMElHVjJaVzUwYzF4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhCeWFYWmhkR1ZjYmlBZ0lDQWdLaTljYmlBZ0lDQnpkV0pGZG1WdWRITW9LU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDaDBhR2x6TG5OMVluTXBYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR2x2SUQwZ2RHaHBjeTVwYnp0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV6ZFdKeklEMGdXMXh1SUNBZ0lDQWdJQ0FnSUNBZ2IyNWZhbk5mTVM1dmJpaHBieXdnWENKdmNHVnVYQ0lzSUhSb2FYTXViMjV2Y0dWdUxtSnBibVFvZEdocGN5a3BMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2IyNWZhbk5mTVM1dmJpaHBieXdnWENKd1lXTnJaWFJjSWl3Z2RHaHBjeTV2Ym5CaFkydGxkQzVpYVc1a0tIUm9hWE1wS1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJRzl1WDJwelh6RXViMjRvYVc4c0lGd2laWEp5YjNKY0lpd2dkR2hwY3k1dmJtVnljbTl5TG1KcGJtUW9kR2hwY3lrcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnYjI1ZmFuTmZNUzV2YmlocGJ5d2dYQ0pqYkc5elpWd2lMQ0IwYUdsekxtOXVZMnh2YzJVdVltbHVaQ2gwYUdsektTa3NYRzRnSUNBZ0lDQWdJRjA3WEc0Z0lDQWdmVnh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRmRvWlhSb1pYSWdkR2hsSUZOdlkydGxkQ0IzYVd4c0lIUnllU0IwYnlCeVpXTnZibTVsWTNRZ2QyaGxiaUJwZEhNZ1RXRnVZV2RsY2lCamIyNXVaV04wY3lCdmNpQnlaV052Ym01bFkzUnpMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRR1Y0WVcxd2JHVmNiaUFnSUNBZ0tpQmpiMjV6ZENCemIyTnJaWFFnUFNCcGJ5Z3BPMXh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dZMjl1YzI5c1pTNXNiMmNvYzI5amEyVjBMbUZqZEdsMlpTazdJQzh2SUhSeWRXVmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlITnZZMnRsZEM1dmJpaGNJbVJwYzJOdmJtNWxZM1JjSWl3Z0tISmxZWE52YmlrZ1BUNGdlMXh1SUNBZ0lDQXFJQ0FnYVdZZ0tISmxZWE52YmlBOVBUMGdYQ0pwYnlCelpYSjJaWElnWkdselkyOXVibVZqZEZ3aUtTQjdYRzRnSUNBZ0lDb2dJQ0FnSUM4dklIUm9aU0JrYVhOamIyNXVaV04wYVc5dUlIZGhjeUJwYm1sMGFXRjBaV1FnWW5rZ2RHaGxJSE5sY25abGNpd2dlVzkxSUc1bFpXUWdkRzhnYldGdWRXRnNiSGtnY21WamIyNXVaV04wWEc0Z0lDQWdJQ29nSUNBZ0lHTnZibk52YkdVdWJHOW5LSE52WTJ0bGRDNWhZM1JwZG1VcE95QXZMeUJtWVd4elpWeHVJQ0FnSUNBcUlDQWdmVnh1SUNBZ0lDQXFJQ0FnTHk4Z1pXeHpaU0IwYUdVZ2MyOWphMlYwSUhkcGJHd2dZWFYwYjIxaGRHbGpZV3hzZVNCMGNua2dkRzhnY21WamIyNXVaV04wWEc0Z0lDQWdJQ29nSUNCamIyNXpiMnhsTG14dlp5aHpiMk5yWlhRdVlXTjBhWFpsS1RzZ0x5OGdkSEoxWlZ4dUlDQWdJQ0FxSUgwcE8xeHVJQ0FnSUNBcUwxeHVJQ0FnSUdkbGRDQmhZM1JwZG1Vb0tTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQWhJWFJvYVhNdWMzVmljenRjYmlBZ0lDQjlYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dYQ0pQY0dWdWMxd2lJSFJvWlNCemIyTnJaWFF1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBWlhoaGJYQnNaVnh1SUNBZ0lDQXFJR052Ym5OMElITnZZMnRsZENBOUlHbHZLSHRjYmlBZ0lDQWdLaUFnSUdGMWRHOURiMjV1WldOME9pQm1ZV3h6WlZ4dUlDQWdJQ0FxSUgwcE8xeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ2MyOWphMlYwTG1OdmJtNWxZM1FvS1R0Y2JpQWdJQ0FnS2k5Y2JpQWdJQ0JqYjI1dVpXTjBLQ2tnZTF4dUlDQWdJQ0FnSUNCcFppQW9kR2hwY3k1amIyNXVaV04wWldRcFhHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3p0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV6ZFdKRmRtVnVkSE1vS1R0Y2JpQWdJQ0FnSUNBZ2FXWWdLQ0YwYUdsekxtbHZXMXdpWDNKbFkyOXVibVZqZEdsdVoxd2lYU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11YVc4dWIzQmxiaWdwT3lBdkx5Qmxibk4xY21VZ2IzQmxibHh1SUNBZ0lDQWdJQ0JwWmlBb1hDSnZjR1Z1WENJZ1BUMDlJSFJvYVhNdWFXOHVYM0psWVdSNVUzUmhkR1VwWEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG05dWIzQmxiaWdwTzF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZEdocGN6dGNiaUFnSUNCOVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1FXeHBZWE1nWm05eUlIdEFiR2x1YXlCamIyNXVaV04wS0NsOUxseHVJQ0FnSUNBcUwxeHVJQ0FnSUc5d1pXNG9LU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxtTnZibTVsWTNRb0tUdGNiaUFnSUNCOVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1UyVnVaSE1nWVNCZ2JXVnpjMkZuWldBZ1pYWmxiblF1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJVYUdseklHMWxkR2h2WkNCdGFXMXBZM01nZEdobElGZGxZbE52WTJ0bGRDNXpaVzVrS0NrZ2JXVjBhRzlrTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhObFpTQm9kSFJ3Y3pvdkwyUmxkbVZzYjNCbGNpNXRiM3BwYkd4aExtOXlaeTlsYmkxVlV5OWtiMk56TDFkbFlpOUJVRWt2VjJWaVUyOWphMlYwTDNObGJtUmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FnSUNvZ2MyOWphMlYwTG5ObGJtUW9YQ0pvWld4c2Ixd2lLVHRjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJQzh2SUhSb2FYTWdhWE1nWlhGMWFYWmhiR1Z1ZENCMGIxeHVJQ0FnSUNBcUlITnZZMnRsZEM1bGJXbDBLRndpYldWemMyRm5aVndpTENCY0ltaGxiR3h2WENJcE8xeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FISmxkSFZ5YmlCelpXeG1YRzRnSUNBZ0lDb3ZYRzRnSUNBZ2MyVnVaQ2d1TGk1aGNtZHpLU0I3WEc0Z0lDQWdJQ0FnSUdGeVozTXVkVzV6YUdsbWRDaGNJbTFsYzNOaFoyVmNJaWs3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVaVzFwZEM1aGNIQnNlU2gwYUdsekxDQmhjbWR6S1R0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTTdYRzRnSUNBZ2ZWeHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFOTJaWEp5YVdSbElHQmxiV2wwWUM1Y2JpQWdJQ0FnS2lCSlppQjBhR1VnWlhabGJuUWdhWE1nYVc0Z1lHVjJaVzUwYzJBc0lHbDBKM01nWlcxcGRIUmxaQ0J1YjNKdFlXeHNlUzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJsZUdGdGNHeGxYRzRnSUNBZ0lDb2djMjlqYTJWMExtVnRhWFFvWENKb1pXeHNiMXdpTENCY0luZHZjbXhrWENJcE8xeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ0x5OGdZV3hzSUhObGNtbGhiR2w2WVdKc1pTQmtZWFJoYzNSeWRXTjBkWEpsY3lCaGNtVWdjM1Z3Y0c5eWRHVmtJQ2h1YnlCdVpXVmtJSFJ2SUdOaGJHd2dTbE5QVGk1emRISnBibWRwWm5rcFhHNGdJQ0FnSUNvZ2MyOWphMlYwTG1WdGFYUW9YQ0pvWld4c2Ixd2lMQ0F4TENCY0lqSmNJaXdnZXlBek9pQmJYQ0kwWENKZExDQTFPaUJWYVc1ME9FRnljbUY1TG1aeWIyMG9XelpkS1NCOUtUdGNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlDOHZJSGRwZEdnZ1lXNGdZV05yYm05M2JHVmtaMlZ0Wlc1MElHWnliMjBnZEdobElITmxjblpsY2x4dUlDQWdJQ0FxSUhOdlkydGxkQzVsYldsMEtGd2lhR1ZzYkc5Y0lpd2dYQ0ozYjNKc1pGd2lMQ0FvZG1Gc0tTQTlQaUI3WEc0Z0lDQWdJQ29nSUNBdkx5QXVMaTVjYmlBZ0lDQWdLaUI5S1R0Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCeVpYUjFjbTRnYzJWc1pseHVJQ0FnSUNBcUwxeHVJQ0FnSUdWdGFYUW9aWFlzSUM0dUxtRnlaM01wSUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLRkpGVTBWU1ZrVkVYMFZXUlU1VVV5NW9ZWE5QZDI1UWNtOXdaWEowZVNobGRpa3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2lnblhDSW5JQ3NnWlhZdWRHOVRkSEpwYm1jb0tTQXJJQ2RjSWlCcGN5QmhJSEpsYzJWeWRtVmtJR1YyWlc1MElHNWhiV1VuS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQmhjbWR6TG5WdWMyaHBablFvWlhZcE8xeHVJQ0FnSUNBZ0lDQnBaaUFvZEdocGN5NWZiM0IwY3k1eVpYUnlhV1Z6SUNZbUlDRjBhR2x6TG1ac1lXZHpMbVp5YjIxUmRXVjFaU0FtSmlBaGRHaHBjeTVtYkdGbmN5NTJiMnhoZEdsc1pTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTVmWVdSa1ZHOVJkV1YxWlNoaGNtZHpLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCMGFHbHpPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSEJoWTJ0bGRDQTlJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIUjVjR1U2SUhOdlkydGxkRjlwYjE5d1lYSnpaWEpmTVM1UVlXTnJaWFJVZVhCbExrVldSVTVVTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdaR0YwWVRvZ1lYSm5jeXhjYmlBZ0lDQWdJQ0FnZlR0Y2JpQWdJQ0FnSUNBZ2NHRmphMlYwTG05d2RHbHZibk1nUFNCN2ZUdGNiaUFnSUNBZ0lDQWdjR0ZqYTJWMExtOXdkR2x2Ym5NdVkyOXRjSEpsYzNNZ1BTQjBhR2x6TG1ac1lXZHpMbU52YlhCeVpYTnpJQ0U5UFNCbVlXeHpaVHRjYmlBZ0lDQWdJQ0FnTHk4Z1pYWmxiblFnWVdOcklHTmhiR3hpWVdOclhHNGdJQ0FnSUNBZ0lHbG1JQ2hjSW1aMWJtTjBhVzl1WENJZ1BUMDlJSFI1Y0dWdlppQmhjbWR6VzJGeVozTXViR1Z1WjNSb0lDMGdNVjBwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHbGtJRDBnZEdocGN5NXBaSE1yS3p0Y2JpQWdJQ0FnSUNBZ0lDQWdJR1JsWW5WbktGd2laVzFwZEhScGJtY2djR0ZqYTJWMElIZHBkR2dnWVdOcklHbGtJQ1ZrWENJc0lHbGtLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUdGamF5QTlJR0Z5WjNNdWNHOXdLQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TGw5eVpXZHBjM1JsY2tGamEwTmhiR3hpWVdOcktHbGtMQ0JoWTJzcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnY0dGamEyVjBMbWxrSUQwZ2FXUTdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdhWE5VY21GdWMzQnZjblJYY21sMFlXSnNaU0E5SUhSb2FYTXVhVzh1Wlc1bmFXNWxJQ1ltWEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG1sdkxtVnVaMmx1WlM1MGNtRnVjM0J2Y25RZ0ppWmNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVhVzh1Wlc1bmFXNWxMblJ5WVc1emNHOXlkQzUzY21sMFlXSnNaVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdaR2x6WTJGeVpGQmhZMnRsZENBOUlIUm9hWE11Wm14aFozTXVkbTlzWVhScGJHVWdKaVlnS0NGcGMxUnlZVzV6Y0c5eWRGZHlhWFJoWW14bElIeDhJQ0YwYUdsekxtTnZibTVsWTNSbFpDazdYRzRnSUNBZ0lDQWdJR2xtSUNoa2FYTmpZWEprVUdGamEyVjBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmtaV0oxWnloY0ltUnBjMk5oY21RZ2NHRmphMlYwSUdGeklIUm9aU0IwY21GdWMzQnZjblFnYVhNZ2JtOTBJR04xY25KbGJuUnNlU0IzY21sMFlXSnNaVndpS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQmxiSE5sSUdsbUlDaDBhR2x6TG1OdmJtNWxZM1JsWkNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXViM1JwWm5sUGRYUm5iMmx1WjB4cGMzUmxibVZ5Y3lod1lXTnJaWFFwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1d1lXTnJaWFFvY0dGamEyVjBLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11YzJWdVpFSjFabVpsY2k1d2RYTm9LSEJoWTJ0bGRDazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZEdocGN5NW1iR0ZuY3lBOUlIdDlPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3p0Y2JpQWdJQ0I5WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUUhCeWFYWmhkR1ZjYmlBZ0lDQWdLaTljYmlBZ0lDQmZjbVZuYVhOMFpYSkJZMnREWVd4c1ltRmpheWhwWkN3Z1lXTnJLU0I3WEc0Z0lDQWdJQ0FnSUhaaGNpQmZZVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdkR2x0Wlc5MWRDQTlJQ2hmWVNBOUlIUm9hWE11Wm14aFozTXVkR2x0Wlc5MWRDa2dJVDA5SUc1MWJHd2dKaVlnWDJFZ0lUMDlJSFp2YVdRZ01DQS9JRjloSURvZ2RHaHBjeTVmYjNCMGN5NWhZMnRVYVcxbGIzVjBPMXh1SUNBZ0lDQWdJQ0JwWmlBb2RHbHRaVzkxZENBOVBUMGdkVzVrWldacGJtVmtLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG1GamEzTmJhV1JkSUQwZ1lXTnJPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1TzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDOHZJRUIwY3kxcFoyNXZjbVZjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdkR2x0WlhJZ1BTQjBhR2x6TG1sdkxuTmxkRlJwYldWdmRYUkdiaWdvS1NBOVBpQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCa1pXeGxkR1VnZEdocGN5NWhZMnR6VzJsa1hUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z2RHaHBjeTV6Wlc1a1FuVm1abVZ5TG14bGJtZDBhRHNnYVNzcktTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hSb2FYTXVjMlZ1WkVKMVptWmxjbHRwWFM1cFpDQTlQVDBnYVdRcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWkdWaWRXY29YQ0p5WlcxdmRtbHVaeUJ3WVdOclpYUWdkMmwwYUNCaFkyc2dhV1FnSldRZ1puSnZiU0IwYUdVZ1luVm1abVZ5WENJc0lHbGtLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTV6Wlc1a1FuVm1abVZ5TG5Od2JHbGpaU2hwTENBeEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0JrWldKMVp5aGNJbVYyWlc1MElIZHBkR2dnWVdOcklHbGtJQ1ZrSUdoaGN5QjBhVzFsWkNCdmRYUWdZV1owWlhJZ0pXUWdiWE5jSWl3Z2FXUXNJSFJwYldWdmRYUXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1lXTnJMbU5oYkd3b2RHaHBjeXdnYm1WM0lFVnljbTl5S0Z3aWIzQmxjbUYwYVc5dUlHaGhjeUIwYVcxbFpDQnZkWFJjSWlrcE8xeHVJQ0FnSUNBZ0lDQjlMQ0IwYVcxbGIzVjBLVHRjYmlBZ0lDQWdJQ0FnZEdocGN5NWhZMnR6VzJsa1hTQTlJQ2d1TGk1aGNtZHpLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0F2THlCQWRITXRhV2R1YjNKbFhHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxtbHZMbU5zWldGeVZHbHRaVzkxZEVadUtIUnBiV1Z5S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR0ZqYXk1aGNIQnNlU2gwYUdsekxDQmJiblZzYkN3Z0xpNHVZWEpuYzEwcE8xeHVJQ0FnSUNBZ0lDQjlPMXh1SUNBZ0lIMWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkZiV2wwY3lCaGJpQmxkbVZ1ZENCaGJtUWdkMkZwZEhNZ1ptOXlJR0Z1SUdGamEyNXZkMnhsWkdkbGJXVnVkRnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRR1Y0WVcxd2JHVmNiaUFnSUNBZ0tpQXZMeUIzYVhSb2IzVjBJSFJwYldWdmRYUmNiaUFnSUNBZ0tpQmpiMjV6ZENCeVpYTndiMjV6WlNBOUlHRjNZV2wwSUhOdlkydGxkQzVsYldsMFYybDBhRUZqYXloY0ltaGxiR3h2WENJc0lGd2lkMjl5YkdSY0lpazdYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQXZMeUIzYVhSb0lHRWdjM0JsWTJsbWFXTWdkR2x0Wlc5MWRGeHVJQ0FnSUNBcUlIUnllU0I3WEc0Z0lDQWdJQ29nSUNCamIyNXpkQ0J5WlhOd2IyNXpaU0E5SUdGM1lXbDBJSE52WTJ0bGRDNTBhVzFsYjNWMEtERXdNREFwTG1WdGFYUlhhWFJvUVdOcktGd2lhR1ZzYkc5Y0lpd2dYQ0ozYjNKc1pGd2lLVHRjYmlBZ0lDQWdLaUI5SUdOaGRHTm9JQ2hsY25JcElIdGNiaUFnSUNBZ0tpQWdJQzh2SUhSb1pTQnpaWEoyWlhJZ1pHbGtJRzV2ZENCaFkydHViM2RzWldSblpTQjBhR1VnWlhabGJuUWdhVzRnZEdobElHZHBkbVZ1SUdSbGJHRjVYRzRnSUNBZ0lDb2dmVnh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSEpsZEhWeWJpQmhJRkJ5YjIxcGMyVWdkR2hoZENCM2FXeHNJR0psSUdaMWJHWnBiR3hsWkNCM2FHVnVJSFJvWlNCelpYSjJaWElnWVdOcmJtOTNiR1ZrWjJWeklIUm9aU0JsZG1WdWRGeHVJQ0FnSUNBcUwxeHVJQ0FnSUdWdGFYUlhhWFJvUVdOcktHVjJMQ0F1TGk1aGNtZHpLU0I3WEc0Z0lDQWdJQ0FnSUM4dklIUm9aU0IwYVcxbGIzVjBJR1pzWVdjZ2FYTWdiM0IwYVc5dVlXeGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2QybDBhRVZ5Y2lBOUlIUm9hWE11Wm14aFozTXVkR2x0Wlc5MWRDQWhQVDBnZFc1a1pXWnBibVZrSUh4OElIUm9hWE11WDI5d2RITXVZV05yVkdsdFpXOTFkQ0FoUFQwZ2RXNWtaV1pwYm1Wa08xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2JtVjNJRkJ5YjIxcGMyVW9LSEpsYzI5c2RtVXNJSEpsYW1WamRDa2dQVDRnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZWEpuY3k1d2RYTm9LQ2hoY21jeExDQmhjbWN5S1NBOVBpQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hkcGRHaEZjbklwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHRnlaekVnUHlCeVpXcGxZM1FvWVhKbk1Ta2dPaUJ5WlhOdmJIWmxLR0Z5WnpJcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlISmxjMjlzZG1Vb1lYSm5NU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG1WdGFYUW9aWFlzSUM0dUxtRnlaM01wTzF4dUlDQWdJQ0FnSUNCOUtUdGNiaUFnSUNCOVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1FXUmtJSFJvWlNCd1lXTnJaWFFnZEc4Z2RHaGxJSEYxWlhWbExseHVJQ0FnSUNBcUlFQndZWEpoYlNCaGNtZHpYRzRnSUNBZ0lDb2dRSEJ5YVhaaGRHVmNiaUFnSUNBZ0tpOWNiaUFnSUNCZllXUmtWRzlSZFdWMVpTaGhjbWR6S1NCN1hHNGdJQ0FnSUNBZ0lHeGxkQ0JoWTJzN1hHNGdJQ0FnSUNBZ0lHbG1JQ2gwZVhCbGIyWWdZWEpuYzF0aGNtZHpMbXhsYm1kMGFDQXRJREZkSUQwOVBTQmNJbVoxYm1OMGFXOXVYQ0lwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR0ZqYXlBOUlHRnlaM011Y0c5d0tDazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdjR0ZqYTJWMElEMGdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXUTZJSFJvYVhNdVgzRjFaWFZsVTJWeEt5c3NYRzRnSUNBZ0lDQWdJQ0FnSUNCMGNubERiM1Z1ZERvZ01DeGNiaUFnSUNBZ0lDQWdJQ0FnSUhCbGJtUnBibWM2SUdaaGJITmxMRnh1SUNBZ0lDQWdJQ0FnSUNBZ1lYSm5jeXhjYmlBZ0lDQWdJQ0FnSUNBZ0lHWnNZV2R6T2lCUFltcGxZM1F1WVhOemFXZHVLSHNnWm5KdmJWRjFaWFZsT2lCMGNuVmxJSDBzSUhSb2FYTXVabXhoWjNNcExGeHVJQ0FnSUNBZ0lDQjlPMXh1SUNBZ0lDQWdJQ0JoY21kekxuQjFjMmdvS0dWeWNpd2dMaTR1Y21WemNHOXVjMlZCY21kektTQTlQaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvY0dGamEyVjBJQ0U5UFNCMGFHbHpMbDl4ZFdWMVpWc3dYU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUM4dklIUm9aU0J3WVdOclpYUWdhR0Z6SUdGc2NtVmhaSGtnWW1WbGJpQmhZMnR1YjNkc1pXUm5aV1JjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQm9ZWE5GY25KdmNpQTlJR1Z5Y2lBaFBUMGdiblZzYkR0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNob1lYTkZjbkp2Y2lrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2h3WVdOclpYUXVkSEo1UTI5MWJuUWdQaUIwYUdsekxsOXZjSFJ6TG5KbGRISnBaWE1wSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaR1ZpZFdjb1hDSndZV05yWlhRZ1d5VmtYU0JwY3lCa2FYTmpZWEprWldRZ1lXWjBaWElnSldRZ2RISnBaWE5jSWl3Z2NHRmphMlYwTG1sa0xDQndZV05yWlhRdWRISjVRMjkxYm5RcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxsOXhkV1YxWlM1emFHbG1kQ2dwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWVdOcktTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmhZMnNvWlhKeUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lHVnNjMlVnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdSbFluVm5LRndpY0dGamEyVjBJRnNsWkYwZ2QyRnpJSE4xWTJObGMzTm1kV3hzZVNCelpXNTBYQ0lzSUhCaFkydGxkQzVwWkNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTVmY1hWbGRXVXVjMmhwWm5Rb0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWVdOcktTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdGamF5aHVkV3hzTENBdUxpNXlaWE53YjI1elpVRnlaM01wTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lIQmhZMnRsZEM1d1pXNWthVzVuSUQwZ1ptRnNjMlU3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTVmWkhKaGFXNVJkV1YxWlNncE8xeHVJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJQ0FnZEdocGN5NWZjWFZsZFdVdWNIVnphQ2h3WVdOclpYUXBPMXh1SUNBZ0lDQWdJQ0IwYUdsekxsOWtjbUZwYmxGMVpYVmxLQ2s3WEc0Z0lDQWdmVnh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRk5sYm1RZ2RHaGxJR1pwY25OMElIQmhZMnRsZENCdlppQjBhR1VnY1hWbGRXVXNJR0Z1WkNCM1lXbDBJR1p2Y2lCaGJpQmhZMnR1YjNkc1pXUm5aVzFsYm5RZ1puSnZiU0IwYUdVZ2MyVnlkbVZ5TGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0JtYjNKalpTQXRJSGRvWlhSb1pYSWdkRzhnY21WelpXNWtJR0VnY0dGamEyVjBJSFJvWVhRZ2FHRnpJRzV2ZENCaVpXVnVJR0ZqYTI1dmQyeGxaR2RsWkNCNVpYUmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQndjbWwyWVhSbFhHNGdJQ0FnSUNvdlhHNGdJQ0FnWDJSeVlXbHVVWFZsZFdVb1ptOXlZMlVnUFNCbVlXeHpaU2tnZTF4dUlDQWdJQ0FnSUNCa1pXSjFaeWhjSW1SeVlXbHVhVzVuSUhGMVpYVmxYQ0lwTzF4dUlDQWdJQ0FnSUNCcFppQW9JWFJvYVhNdVkyOXVibVZqZEdWa0lIeDhJSFJvYVhNdVgzRjFaWFZsTG14bGJtZDBhQ0E5UFQwZ01Da2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1TzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHTnZibk4wSUhCaFkydGxkQ0E5SUhSb2FYTXVYM0YxWlhWbFd6QmRPMXh1SUNBZ0lDQWdJQ0JwWmlBb2NHRmphMlYwTG5CbGJtUnBibWNnSmlZZ0lXWnZjbU5sS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JrWldKMVp5aGNJbkJoWTJ0bGRDQmJKV1JkSUdoaGN5QmhiSEpsWVdSNUlHSmxaVzRnYzJWdWRDQmhibVFnYVhNZ2QyRnBkR2x1WnlCbWIzSWdZVzRnWVdOclhDSXNJSEJoWTJ0bGRDNXBaQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200N1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdjR0ZqYTJWMExuQmxibVJwYm1jZ1BTQjBjblZsTzF4dUlDQWdJQ0FnSUNCd1lXTnJaWFF1ZEhKNVEyOTFiblFyS3p0Y2JpQWdJQ0FnSUNBZ1pHVmlkV2NvWENKelpXNWthVzVuSUhCaFkydGxkQ0JiSldSZElDaDBjbmtnYnNLd0pXUXBYQ0lzSUhCaFkydGxkQzVwWkN3Z2NHRmphMlYwTG5SeWVVTnZkVzUwS1R0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVtYkdGbmN5QTlJSEJoWTJ0bGRDNW1iR0ZuY3p0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVsYldsMExtRndjR3g1S0hSb2FYTXNJSEJoWTJ0bGRDNWhjbWR6S1R0Y2JpQWdJQ0I5WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nVTJWdVpITWdZU0J3WVdOclpYUXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2NHRmphMlYwWEc0Z0lDQWdJQ29nUUhCeWFYWmhkR1ZjYmlBZ0lDQWdLaTljYmlBZ0lDQndZV05yWlhRb2NHRmphMlYwS1NCN1hHNGdJQ0FnSUNBZ0lIQmhZMnRsZEM1dWMzQWdQU0IwYUdsekxtNXpjRHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXBieTVmY0dGamEyVjBLSEJoWTJ0bGRDazdYRzRnSUNBZ2ZWeHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFTmhiR3hsWkNCMWNHOXVJR1Z1WjJsdVpTQmdiM0JsYm1BdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWNISnBkbUYwWlZ4dUlDQWdJQ0FxTDF4dUlDQWdJRzl1YjNCbGJpZ3BJSHRjYmlBZ0lDQWdJQ0FnWkdWaWRXY29YQ0owY21GdWMzQnZjblFnYVhNZ2IzQmxiaUF0SUdOdmJtNWxZM1JwYm1kY0lpazdYRzRnSUNBZ0lDQWdJR2xtSUNoMGVYQmxiMllnZEdocGN5NWhkWFJvSUQwOUlGd2lablZ1WTNScGIyNWNJaWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1aGRYUm9LQ2hrWVhSaEtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NWZjMlZ1WkVOdmJtNWxZM1JRWVdOclpYUW9aR0YwWVNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdVgzTmxibVJEYjI1dVpXTjBVR0ZqYTJWMEtIUm9hWE11WVhWMGFDazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dVMlZ1WkhNZ1lTQkRUMDVPUlVOVUlIQmhZMnRsZENCMGJ5QnBibWwwYVdGMFpTQjBhR1VnVTI5amEyVjBMa2xQSUhObGMzTnBiMjR1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBY0dGeVlXMGdaR0YwWVZ4dUlDQWdJQ0FxSUVCd2NtbDJZWFJsWEc0Z0lDQWdJQ292WEc0Z0lDQWdYM05sYm1SRGIyNXVaV04wVUdGamEyVjBLR1JoZEdFcElIdGNiaUFnSUNBZ0lDQWdkR2hwY3k1d1lXTnJaWFFvZTF4dUlDQWdJQ0FnSUNBZ0lDQWdkSGx3WlRvZ2MyOWphMlYwWDJsdlgzQmhjbk5sY2w4eExsQmhZMnRsZEZSNWNHVXVRMDlPVGtWRFZDeGNiaUFnSUNBZ0lDQWdJQ0FnSUdSaGRHRTZJSFJvYVhNdVgzQnBaRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRDhnVDJKcVpXTjBMbUZ6YzJsbmJpaDdJSEJwWkRvZ2RHaHBjeTVmY0dsa0xDQnZabVp6WlhRNklIUm9hWE11WDJ4aGMzUlBabVp6WlhRZ2ZTd2daR0YwWVNsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBNklHUmhkR0VzWEc0Z0lDQWdJQ0FnSUgwcE8xeHVJQ0FnSUgxY2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCRFlXeHNaV1FnZFhCdmJpQmxibWRwYm1VZ2IzSWdiV0Z1WVdkbGNpQmdaWEp5YjNKZ0xseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUdWeWNseHVJQ0FnSUNBcUlFQndjbWwyWVhSbFhHNGdJQ0FnSUNvdlhHNGdJQ0FnYjI1bGNuSnZjaWhsY25JcElIdGNiaUFnSUNBZ0lDQWdhV1lnS0NGMGFHbHpMbU52Ym01bFkzUmxaQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1bGJXbDBVbVZ6WlhKMlpXUW9YQ0pqYjI1dVpXTjBYMlZ5Y205eVhDSXNJR1Z5Y2lrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1EyRnNiR1ZrSUhWd2IyNGdaVzVuYVc1bElHQmpiRzl6WldBdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWNHRnlZVzBnY21WaGMyOXVYRzRnSUNBZ0lDb2dRSEJoY21GdElHUmxjMk55YVhCMGFXOXVYRzRnSUNBZ0lDb2dRSEJ5YVhaaGRHVmNiaUFnSUNBZ0tpOWNiaUFnSUNCdmJtTnNiM05sS0hKbFlYTnZiaXdnWkdWelkzSnBjSFJwYjI0cElIdGNiaUFnSUNBZ0lDQWdaR1ZpZFdjb1hDSmpiRzl6WlNBb0pYTXBYQ0lzSUhKbFlYTnZiaWs3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVZMjl1Ym1WamRHVmtJRDBnWm1Gc2MyVTdYRzRnSUNBZ0lDQWdJR1JsYkdWMFpTQjBhR2x6TG1sa08xeHVJQ0FnSUNBZ0lDQjBhR2x6TG1WdGFYUlNaWE5sY25abFpDaGNJbVJwYzJOdmJtNWxZM1JjSWl3Z2NtVmhjMjl1TENCa1pYTmpjbWx3ZEdsdmJpazdYRzRnSUNBZ2ZWeHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFTmhiR3hsWkNCM2FYUm9JSE52WTJ0bGRDQndZV05yWlhRdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWNHRnlZVzBnY0dGamEyVjBYRzRnSUNBZ0lDb2dRSEJ5YVhaaGRHVmNiaUFnSUNBZ0tpOWNiaUFnSUNCdmJuQmhZMnRsZENod1lXTnJaWFFwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYzJGdFpVNWhiV1Z6Y0dGalpTQTlJSEJoWTJ0bGRDNXVjM0FnUFQwOUlIUm9hWE11Ym5Od08xeHVJQ0FnSUNBZ0lDQnBaaUFvSVhOaGJXVk9ZVzFsYzNCaFkyVXBYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdJQ0FnSUhOM2FYUmphQ0FvY0dGamEyVjBMblI1Y0dVcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdjMjlqYTJWMFgybHZYM0JoY25ObGNsOHhMbEJoWTJ0bGRGUjVjR1V1UTA5T1RrVkRWRHBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2NHRmphMlYwTG1SaGRHRWdKaVlnY0dGamEyVjBMbVJoZEdFdWMybGtLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11YjI1amIyNXVaV04wS0hCaFkydGxkQzVrWVhSaExuTnBaQ3dnY0dGamEyVjBMbVJoZEdFdWNHbGtLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVaVzFwZEZKbGMyVnlkbVZrS0Z3aVkyOXVibVZqZEY5bGNuSnZjbHdpTENCdVpYY2dSWEp5YjNJb1hDSkpkQ0J6WldWdGN5QjViM1VnWVhKbElIUnllV2x1WnlCMGJ5QnlaV0ZqYUNCaElGTnZZMnRsZEM1SlR5QnpaWEoyWlhJZ2FXNGdkakl1ZUNCM2FYUm9JR0VnZGpNdWVDQmpiR2xsYm5Rc0lHSjFkQ0IwYUdWNUlHRnlaU0J1YjNRZ1kyOXRjR0YwYVdKc1pTQW9iVzl5WlNCcGJtWnZjbTFoZEdsdmJpQm9aWEpsT2lCb2RIUndjem92TDNOdlkydGxkQzVwYnk5a2IyTnpMM1l6TDIxcFozSmhkR2x1WnkxbWNtOXRMVEl0ZUMxMGJ5MHpMVEF2S1Z3aUtTazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQnpiMk5yWlhSZmFXOWZjR0Z5YzJWeVh6RXVVR0ZqYTJWMFZIbHdaUzVGVmtWT1ZEcGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdjMjlqYTJWMFgybHZYM0JoY25ObGNsOHhMbEJoWTJ0bGRGUjVjR1V1UWtsT1FWSlpYMFZXUlU1VU9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11YjI1bGRtVnVkQ2h3WVdOclpYUXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQnpiMk5yWlhSZmFXOWZjR0Z5YzJWeVh6RXVVR0ZqYTJWMFZIbHdaUzVCUTBzNlhHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElITnZZMnRsZEY5cGIxOXdZWEp6WlhKZk1TNVFZV05yWlhSVWVYQmxMa0pKVGtGU1dWOUJRMHM2WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXZibUZqYXlod1lXTnJaWFFwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0J6YjJOclpYUmZhVzlmY0dGeWMyVnlYekV1VUdGamEyVjBWSGx3WlM1RVNWTkRUMDVPUlVOVU9seHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11YjI1a2FYTmpiMjV1WldOMEtDazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqWVhObElITnZZMnRsZEY5cGIxOXdZWEp6WlhKZk1TNVFZV05yWlhSVWVYQmxMa05QVGs1RlExUmZSVkpTVDFJNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTVrWlhOMGNtOTVLQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdaWEp5SUQwZ2JtVjNJRVZ5Y205eUtIQmhZMnRsZEM1a1lYUmhMbTFsYzNOaFoyVXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQzh2SUVCMGN5MXBaMjV2Y21WY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbGNuSXVaR0YwWVNBOUlIQmhZMnRsZEM1a1lYUmhMbVJoZEdFN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTVsYldsMFVtVnpaWEoyWldRb1hDSmpiMjV1WldOMFgyVnljbTl5WENJc0lHVnljaWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dRMkZzYkdWa0lIVndiMjRnWVNCelpYSjJaWElnWlhabGJuUXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2NHRmphMlYwWEc0Z0lDQWdJQ29nUUhCeWFYWmhkR1ZjYmlBZ0lDQWdLaTljYmlBZ0lDQnZibVYyWlc1MEtIQmhZMnRsZENrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCaGNtZHpJRDBnY0dGamEyVjBMbVJoZEdFZ2ZId2dXMTA3WEc0Z0lDQWdJQ0FnSUdSbFluVm5LRndpWlcxcGRIUnBibWNnWlhabGJuUWdKV3BjSWl3Z1lYSm5jeWs3WEc0Z0lDQWdJQ0FnSUdsbUlDaHVkV3hzSUNFOUlIQmhZMnRsZEM1cFpDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1pHVmlkV2NvWENKaGRIUmhZMmhwYm1jZ1lXTnJJR05oYkd4aVlXTnJJSFJ2SUdWMlpXNTBYQ0lwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZWEpuY3k1d2RYTm9LSFJvYVhNdVlXTnJLSEJoWTJ0bGRDNXBaQ2twTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHbG1JQ2gwYUdsekxtTnZibTVsWTNSbFpDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTVsYldsMFJYWmxiblFvWVhKbmN5azdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbkpsWTJWcGRtVkNkV1ptWlhJdWNIVnphQ2hQWW1wbFkzUXVabkpsWlhwbEtHRnlaM01wS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdJQ0JsYldsMFJYWmxiblFvWVhKbmN5a2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb2RHaHBjeTVmWVc1NVRHbHpkR1Z1WlhKeklDWW1JSFJvYVhNdVgyRnVlVXhwYzNSbGJtVnljeTVzWlc1bmRHZ3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUd4cGMzUmxibVZ5Y3lBOUlIUm9hWE11WDJGdWVVeHBjM1JsYm1WeWN5NXpiR2xqWlNncE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWm05eUlDaGpiMjV6ZENCc2FYTjBaVzVsY2lCdlppQnNhWE4wWlc1bGNuTXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JzYVhOMFpXNWxjaTVoY0hCc2VTaDBhR2x6TENCaGNtZHpLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0J6ZFhCbGNpNWxiV2wwTG1Gd2NHeDVLSFJvYVhNc0lHRnlaM01wTzF4dUlDQWdJQ0FnSUNCcFppQW9kR2hwY3k1ZmNHbGtJQ1ltSUdGeVozTXViR1Z1WjNSb0lDWW1JSFI1Y0dWdlppQmhjbWR6VzJGeVozTXViR1Z1WjNSb0lDMGdNVjBnUFQwOUlGd2ljM1J5YVc1blhDSXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11WDJ4aGMzUlBabVp6WlhRZ1BTQmhjbWR6VzJGeVozTXViR1Z1WjNSb0lDMGdNVjA3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nVUhKdlpIVmpaWE1nWVc0Z1lXTnJJR05oYkd4aVlXTnJJSFJ2SUdWdGFYUWdkMmwwYUNCaGJpQmxkbVZ1ZEM1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCd2NtbDJZWFJsWEc0Z0lDQWdJQ292WEc0Z0lDQWdZV05yS0dsa0tTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElITmxiR1lnUFNCMGFHbHpPMXh1SUNBZ0lDQWdJQ0JzWlhRZ2MyVnVkQ0E5SUdaaGJITmxPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdablZ1WTNScGIyNGdLQzR1TG1GeVozTXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDOHZJSEJ5WlhabGJuUWdaRzkxWW14bElHTmhiR3hpWVdOcmMxeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tITmxiblFwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2MyVnVkQ0E5SUhSeWRXVTdYRzRnSUNBZ0lDQWdJQ0FnSUNCa1pXSjFaeWhjSW5ObGJtUnBibWNnWVdOcklDVnFYQ0lzSUdGeVozTXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2MyVnNaaTV3WVdOclpYUW9lMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFI1Y0dVNklITnZZMnRsZEY5cGIxOXdZWEp6WlhKZk1TNVFZV05yWlhSVWVYQmxMa0ZEU3l4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFpEb2dhV1FzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWkdGMFlUb2dZWEpuY3l4Y2JpQWdJQ0FnSUNBZ0lDQWdJSDBwTzF4dUlDQWdJQ0FnSUNCOU8xeHVJQ0FnSUgxY2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCRFlXeHNaV1FnZFhCdmJpQmhJSE5sY25abGNpQmhZMnR1YjNkc1pXZGxiV1Z1ZEM1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCd1lYSmhiU0J3WVdOclpYUmNiaUFnSUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnSUNBcUwxeHVJQ0FnSUc5dVlXTnJLSEJoWTJ0bGRDa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQmhZMnNnUFNCMGFHbHpMbUZqYTNOYmNHRmphMlYwTG1sa1hUdGNiaUFnSUNBZ0lDQWdhV1lnS0Z3aVpuVnVZM1JwYjI1Y0lpQTlQVDBnZEhsd1pXOW1JR0ZqYXlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWkdWaWRXY29YQ0pqWVd4c2FXNW5JR0ZqYXlBbGN5QjNhWFJvSUNWcVhDSXNJSEJoWTJ0bGRDNXBaQ3dnY0dGamEyVjBMbVJoZEdFcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWVdOckxtRndjR3g1S0hSb2FYTXNJSEJoWTJ0bGRDNWtZWFJoS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR1JsYkdWMFpTQjBhR2x6TG1GamEzTmJjR0ZqYTJWMExtbGtYVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHUmxZblZuS0Z3aVltRmtJR0ZqYXlBbGMxd2lMQ0J3WVdOclpYUXVhV1FwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVOaGJHeGxaQ0IxY0c5dUlITmxjblpsY2lCamIyNXVaV04wTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhCeWFYWmhkR1ZjYmlBZ0lDQWdLaTljYmlBZ0lDQnZibU52Ym01bFkzUW9hV1FzSUhCcFpDa2dlMXh1SUNBZ0lDQWdJQ0JrWldKMVp5aGNJbk52WTJ0bGRDQmpiMjV1WldOMFpXUWdkMmwwYUNCcFpDQWxjMXdpTENCcFpDazdYRzRnSUNBZ0lDQWdJSFJvYVhNdWFXUWdQU0JwWkR0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV5WldOdmRtVnlaV1FnUFNCd2FXUWdKaVlnZEdocGN5NWZjR2xrSUQwOVBTQndhV1E3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVYM0JwWkNBOUlIQnBaRHNnTHk4Z1pHVm1hVzVsWkNCdmJteDVJR2xtSUdOdmJtNWxZM1JwYjI0Z2MzUmhkR1VnY21WamIzWmxjbmtnYVhNZ1pXNWhZbXhsWkZ4dUlDQWdJQ0FnSUNCMGFHbHpMbU52Ym01bFkzUmxaQ0E5SUhSeWRXVTdYRzRnSUNBZ0lDQWdJSFJvYVhNdVpXMXBkRUoxWm1abGNtVmtLQ2s3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVaVzFwZEZKbGMyVnlkbVZrS0Z3aVkyOXVibVZqZEZ3aUtUdGNiaUFnSUNBZ0lDQWdkR2hwY3k1ZlpISmhhVzVSZFdWMVpTaDBjblZsS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUlcxcGRDQmlkV1ptWlhKbFpDQmxkbVZ1ZEhNZ0tISmxZMlZwZG1Wa0lHRnVaQ0JsYldsMGRHVmtLUzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ3Y21sMllYUmxYRzRnSUNBZ0lDb3ZYRzRnSUNBZ1pXMXBkRUoxWm1abGNtVmtLQ2tnZTF4dUlDQWdJQ0FnSUNCMGFHbHpMbkpsWTJWcGRtVkNkV1ptWlhJdVptOXlSV0ZqYUNnb1lYSm5jeWtnUFQ0Z2RHaHBjeTVsYldsMFJYWmxiblFvWVhKbmN5a3BPMXh1SUNBZ0lDQWdJQ0IwYUdsekxuSmxZMlZwZG1WQ2RXWm1aWElnUFNCYlhUdGNiaUFnSUNBZ0lDQWdkR2hwY3k1elpXNWtRblZtWm1WeUxtWnZja1ZoWTJnb0tIQmhZMnRsZENrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTV1YjNScFpubFBkWFJuYjJsdVoweHBjM1JsYm1WeWN5aHdZV05yWlhRcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXdZV05yWlhRb2NHRmphMlYwS1R0Y2JpQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQWdJSFJvYVhNdWMyVnVaRUoxWm1abGNpQTlJRnRkTzF4dUlDQWdJSDFjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJEWVd4c1pXUWdkWEJ2YmlCelpYSjJaWElnWkdselkyOXVibVZqZEM1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCd2NtbDJZWFJsWEc0Z0lDQWdJQ292WEc0Z0lDQWdiMjVrYVhOamIyNXVaV04wS0NrZ2UxeHVJQ0FnSUNBZ0lDQmtaV0oxWnloY0luTmxjblpsY2lCa2FYTmpiMjV1WldOMElDZ2xjeWxjSWl3Z2RHaHBjeTV1YzNBcE8xeHVJQ0FnSUNBZ0lDQjBhR2x6TG1SbGMzUnliM2tvS1R0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV2Ym1Oc2IzTmxLRndpYVc4Z2MyVnlkbVZ5SUdScGMyTnZibTVsWTNSY0lpazdYRzRnSUNBZ2ZWeHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFTmhiR3hsWkNCMWNHOXVJR1p2Y21ObFpDQmpiR2xsYm5RdmMyVnlkbVZ5SUhOcFpHVWdaR2x6WTI5dWJtVmpkR2x2Ym5Nc1hHNGdJQ0FnSUNvZ2RHaHBjeUJ0WlhSb2IyUWdaVzV6ZFhKbGN5QjBhR1VnYldGdVlXZGxjaUJ6ZEc5d2N5QjBjbUZqYTJsdVp5QjFjeUJoYm1SY2JpQWdJQ0FnS2lCMGFHRjBJSEpsWTI5dWJtVmpkR2x2Ym5NZ1pHOXVKM1FnWjJWMElIUnlhV2RuWlhKbFpDQm1iM0lnZEdocGN5NWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQndjbWwyWVhSbFhHNGdJQ0FnSUNvdlhHNGdJQ0FnWkdWemRISnZlU2dwSUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLSFJvYVhNdWMzVmljeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdMeThnWTJ4bFlXNGdjM1ZpYzJOeWFYQjBhVzl1Y3lCMGJ5QmhkbTlwWkNCeVpXTnZibTVsWTNScGIyNXpYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbk4xWW5NdVptOXlSV0ZqYUNnb2MzVmlSR1Z6ZEhKdmVTa2dQVDRnYzNWaVJHVnpkSEp2ZVNncEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVjM1ZpY3lBOUlIVnVaR1ZtYVc1bFpEdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0IwYUdsekxtbHZXMXdpWDJSbGMzUnliM2xjSWwwb2RHaHBjeWs3WEc0Z0lDQWdmVnh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRVJwYzJOdmJtNWxZM1J6SUhSb1pTQnpiMk5yWlhRZ2JXRnVkV0ZzYkhrdUlFbHVJSFJvWVhRZ1kyRnpaU3dnZEdobElITnZZMnRsZENCM2FXeHNJRzV2ZENCMGNua2dkRzhnY21WamIyNXVaV04wTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nU1dZZ2RHaHBjeUJwY3lCMGFHVWdiR0Z6ZENCaFkzUnBkbVVnVTI5amEyVjBJR2x1YzNSaGJtTmxJRzltSUhSb1pTQjdRR3hwYm1zZ1RXRnVZV2RsY24wc0lIUm9aU0JzYjNjdGJHVjJaV3dnWTI5dWJtVmpkR2x2YmlCM2FXeHNJR0psSUdOc2IzTmxaQzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJsZUdGdGNHeGxYRzRnSUNBZ0lDb2dZMjl1YzNRZ2MyOWphMlYwSUQwZ2FXOG9LVHRjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJSE52WTJ0bGRDNXZiaWhjSW1ScGMyTnZibTVsWTNSY0lpd2dLSEpsWVhOdmJpa2dQVDRnZTF4dUlDQWdJQ0FxSUNBZ0x5OGdZMjl1YzI5c1pTNXNiMmNvY21WaGMyOXVLVHNnY0hKcGJuUnpJRndpYVc4Z1kyeHBaVzUwSUdScGMyTnZibTVsWTNSY0lseHVJQ0FnSUNBcUlIMHBPMXh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2djMjlqYTJWMExtUnBjMk52Ym01bFkzUW9LVHRjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNGdjMlZzWmx4dUlDQWdJQ0FxTDF4dUlDQWdJR1JwYzJOdmJtNWxZM1FvS1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2gwYUdsekxtTnZibTVsWTNSbFpDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1pHVmlkV2NvWENKd1pYSm1iM0p0YVc1bklHUnBjMk52Ym01bFkzUWdLQ1Z6S1Z3aUxDQjBhR2x6TG01emNDazdYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbkJoWTJ0bGRDaDdJSFI1Y0dVNklITnZZMnRsZEY5cGIxOXdZWEp6WlhKZk1TNVFZV05yWlhSVWVYQmxMa1JKVTBOUFRrNUZRMVFnZlNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdMeThnY21WdGIzWmxJSE52WTJ0bGRDQm1jbTl0SUhCdmIyeGNiaUFnSUNBZ0lDQWdkR2hwY3k1a1pYTjBjbTk1S0NrN1hHNGdJQ0FnSUNBZ0lHbG1JQ2gwYUdsekxtTnZibTVsWTNSbFpDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0x5OGdabWx5WlNCbGRtVnVkSE5jYmlBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11YjI1amJHOXpaU2hjSW1sdklHTnNhV1Z1ZENCa2FYTmpiMjV1WldOMFhDSXBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUIwYUdsek8xeHVJQ0FnSUgxY2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCQmJHbGhjeUJtYjNJZ2UwQnNhVzVySUdScGMyTnZibTVsWTNRb0tYMHVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjbVYwZFhKdUlITmxiR1pjYmlBZ0lDQWdLaTljYmlBZ0lDQmpiRzl6WlNncElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11WkdselkyOXVibVZqZENncE8xeHVJQ0FnSUgxY2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCVFpYUnpJSFJvWlNCamIyMXdjbVZ6Y3lCbWJHRm5MbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRR1Y0WVcxd2JHVmNiaUFnSUNBZ0tpQnpiMk5yWlhRdVkyOXRjSEpsYzNNb1ptRnNjMlVwTG1WdGFYUW9YQ0pvWld4c2Ixd2lLVHRjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQmpiMjF3Y21WemN5QXRJR2xtSUdCMGNuVmxZQ3dnWTI5dGNISmxjM05sY3lCMGFHVWdjMlZ1WkdsdVp5QmtZWFJoWEc0Z0lDQWdJQ29nUUhKbGRIVnliaUJ6Wld4bVhHNGdJQ0FnSUNvdlhHNGdJQ0FnWTI5dGNISmxjM01vWTI5dGNISmxjM01wSUh0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVtYkdGbmN5NWpiMjF3Y21WemN5QTlJR052YlhCeVpYTnpPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3p0Y2JpQWdJQ0I5WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nVTJWMGN5QmhJRzF2WkdsbWFXVnlJR1p2Y2lCaElITjFZbk5sY1hWbGJuUWdaWFpsYm5RZ1pXMXBjM05wYjI0Z2RHaGhkQ0IwYUdVZ1pYWmxiblFnYldWemMyRm5aU0IzYVd4c0lHSmxJR1J5YjNCd1pXUWdkMmhsYmlCMGFHbHpJSE52WTJ0bGRDQnBjeUJ1YjNSY2JpQWdJQ0FnS2lCeVpXRmtlU0IwYnlCelpXNWtJRzFsYzNOaFoyVnpMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRR1Y0WVcxd2JHVmNiaUFnSUNBZ0tpQnpiMk5yWlhRdWRtOXNZWFJwYkdVdVpXMXBkQ2hjSW1obGJHeHZYQ0lwT3lBdkx5QjBhR1VnYzJWeWRtVnlJRzFoZVNCdmNpQnRZWGtnYm05MElISmxZMlZwZG1VZ2FYUmNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQnlaWFIxY201eklITmxiR1pjYmlBZ0lDQWdLaTljYmlBZ0lDQm5aWFFnZG05c1lYUnBiR1VvS1NCN1hHNGdJQ0FnSUNBZ0lIUm9hWE11Wm14aFozTXVkbTlzWVhScGJHVWdQU0IwY25WbE8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjenRjYmlBZ0lDQjlYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dVMlYwY3lCaElHMXZaR2xtYVdWeUlHWnZjaUJoSUhOMVluTmxjWFZsYm5RZ1pYWmxiblFnWlcxcGMzTnBiMjRnZEdoaGRDQjBhR1VnWTJGc2JHSmhZMnNnZDJsc2JDQmlaU0JqWVd4c1pXUWdkMmwwYUNCaGJpQmxjbkp2Y2lCM2FHVnVJSFJvWlZ4dUlDQWdJQ0FxSUdkcGRtVnVJRzUxYldKbGNpQnZaaUJ0YVd4c2FYTmxZMjl1WkhNZ2FHRjJaU0JsYkdGd2MyVmtJSGRwZEdodmRYUWdZVzRnWVdOcmJtOTNiR1ZrWjJWdFpXNTBJR1p5YjIwZ2RHaGxJSE5sY25abGNqcGNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FnSUNvZ2MyOWphMlYwTG5ScGJXVnZkWFFvTlRBd01Da3VaVzFwZENoY0ltMTVMV1YyWlc1MFhDSXNJQ2hsY25JcElEMCtJSHRjYmlBZ0lDQWdLaUFnSUdsbUlDaGxjbklwSUh0Y2JpQWdJQ0FnS2lBZ0lDQWdMeThnZEdobElITmxjblpsY2lCa2FXUWdibTkwSUdGamEyNXZkMnhsWkdkbElIUm9aU0JsZG1WdWRDQnBiaUIwYUdVZ1oybDJaVzRnWkdWc1lYbGNiaUFnSUNBZ0tpQWdJSDFjYmlBZ0lDQWdLaUI5S1R0Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUhObGJHWmNiaUFnSUNBZ0tpOWNiaUFnSUNCMGFXMWxiM1YwS0hScGJXVnZkWFFwSUh0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVtYkdGbmN5NTBhVzFsYjNWMElEMGdkR2x0Wlc5MWREdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE03WEc0Z0lDQWdmVnh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRUZrWkhNZ1lTQnNhWE4wWlc1bGNpQjBhR0YwSUhkcGJHd2dZbVVnWm1seVpXUWdkMmhsYmlCaGJua2daWFpsYm5RZ2FYTWdaVzFwZEhSbFpDNGdWR2hsSUdWMlpXNTBJRzVoYldVZ2FYTWdjR0Z6YzJWa0lHRnpJSFJvWlNCbWFYSnpkQ0JoY21kMWJXVnVkQ0IwYnlCMGFHVmNiaUFnSUNBZ0tpQmpZV3hzWW1GamF5NWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FnSUNvZ2MyOWphMlYwTG05dVFXNTVLQ2hsZG1WdWRDd2dMaTR1WVhKbmN5a2dQVDRnZTF4dUlDQWdJQ0FxSUNBZ1kyOXVjMjlzWlM1c2IyY29ZR2R2ZENBa2UyVjJaVzUwZldBcE8xeHVJQ0FnSUNBcUlIMHBPMXh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSEJoY21GdElHeHBjM1JsYm1WeVhHNGdJQ0FnSUNvdlhHNGdJQ0FnYjI1QmJua29iR2x6ZEdWdVpYSXBJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NWZZVzU1VEdsemRHVnVaWEp6SUQwZ2RHaHBjeTVmWVc1NVRHbHpkR1Z1WlhKeklIeDhJRnRkTzF4dUlDQWdJQ0FnSUNCMGFHbHpMbDloYm5sTWFYTjBaVzVsY25NdWNIVnphQ2hzYVhOMFpXNWxjaWs3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUIwYUdsek8xeHVJQ0FnSUgxY2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCQlpHUnpJR0VnYkdsemRHVnVaWElnZEdoaGRDQjNhV3hzSUdKbElHWnBjbVZrSUhkb1pXNGdZVzU1SUdWMlpXNTBJR2x6SUdWdGFYUjBaV1F1SUZSb1pTQmxkbVZ1ZENCdVlXMWxJR2x6SUhCaGMzTmxaQ0JoY3lCMGFHVWdabWx5YzNRZ1lYSm5kVzFsYm5RZ2RHOGdkR2hsWEc0Z0lDQWdJQ29nWTJGc2JHSmhZMnN1SUZSb1pTQnNhWE4wWlc1bGNpQnBjeUJoWkdSbFpDQjBieUIwYUdVZ1ltVm5hVzV1YVc1bklHOW1JSFJvWlNCc2FYTjBaVzVsY25NZ1lYSnlZWGt1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBWlhoaGJYQnNaVnh1SUNBZ0lDQXFJSE52WTJ0bGRDNXdjbVZ3Wlc1a1FXNTVLQ2hsZG1WdWRDd2dMaTR1WVhKbmN5a2dQVDRnZTF4dUlDQWdJQ0FxSUNBZ1kyOXVjMjlzWlM1c2IyY29ZR2R2ZENCbGRtVnVkQ0FrZTJWMlpXNTBmV0FwTzF4dUlDQWdJQ0FxSUgwcE8xeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUd4cGMzUmxibVZ5WEc0Z0lDQWdJQ292WEc0Z0lDQWdjSEpsY0dWdVpFRnVlU2hzYVhOMFpXNWxjaWtnZTF4dUlDQWdJQ0FnSUNCMGFHbHpMbDloYm5sTWFYTjBaVzVsY25NZ1BTQjBhR2x6TGw5aGJubE1hWE4wWlc1bGNuTWdmSHdnVzEwN1hHNGdJQ0FnSUNBZ0lIUm9hWE11WDJGdWVVeHBjM1JsYm1WeWN5NTFibk5vYVdaMEtHeHBjM1JsYm1WeUtUdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE03WEc0Z0lDQWdmVnh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRkpsYlc5MlpYTWdkR2hsSUd4cGMzUmxibVZ5SUhSb1lYUWdkMmxzYkNCaVpTQm1hWEpsWkNCM2FHVnVJR0Z1ZVNCbGRtVnVkQ0JwY3lCbGJXbDBkR1ZrTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUdWNFlXMXdiR1ZjYmlBZ0lDQWdLaUJqYjI1emRDQmpZWFJqYUVGc2JFeHBjM1JsYm1WeUlEMGdLR1YyWlc1MExDQXVMaTVoY21kektTQTlQaUI3WEc0Z0lDQWdJQ29nSUNCamIyNXpiMnhsTG14dlp5aGdaMjkwSUdWMlpXNTBJQ1I3WlhabGJuUjlZQ2s3WEc0Z0lDQWdJQ29nZlZ4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nYzI5amEyVjBMbTl1UVc1NUtHTmhkR05vUVd4c1RHbHpkR1Z1WlhJcE8xeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ0x5OGdjbVZ0YjNabElHRWdjM0JsWTJsbWFXTWdiR2x6ZEdWdVpYSmNiaUFnSUNBZ0tpQnpiMk5yWlhRdWIyWm1RVzU1S0dOaGRHTm9RV3hzVEdsemRHVnVaWElwTzF4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nTHk4Z2IzSWdjbVZ0YjNabElHRnNiQ0JzYVhOMFpXNWxjbk5jYmlBZ0lDQWdLaUJ6YjJOclpYUXViMlptUVc1NUtDazdYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2JHbHpkR1Z1WlhKY2JpQWdJQ0FnS2k5Y2JpQWdJQ0J2Wm1aQmJua29iR2x6ZEdWdVpYSXBJSHRjYmlBZ0lDQWdJQ0FnYVdZZ0tDRjBhR2x6TGw5aGJubE1hWE4wWlc1bGNuTXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCMGFHbHpPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdsbUlDaHNhWE4wWlc1bGNpa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYkdsemRHVnVaWEp6SUQwZ2RHaHBjeTVmWVc1NVRHbHpkR1Z1WlhKek8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCc2FYTjBaVzVsY25NdWJHVnVaM1JvT3lCcEt5c3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2JHbHpkR1Z1WlhJZ1BUMDlJR3hwYzNSbGJtVnljMXRwWFNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JzYVhOMFpXNWxjbk11YzNCc2FXTmxLR2tzSURFcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3p0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TGw5aGJubE1hWE4wWlc1bGNuTWdQU0JiWFR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjenRjYmlBZ0lDQjlYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dVbVYwZFhKdWN5QmhiaUJoY25KaGVTQnZaaUJzYVhOMFpXNWxjbk1nZEdoaGRDQmhjbVVnYkdsemRHVnVhVzVuSUdadmNpQmhibmtnWlhabGJuUWdkR2hoZENCcGN5QnpjR1ZqYVdacFpXUXVJRlJvYVhNZ1lYSnlZWGtnWTJGdUlHSmxJRzFoYm1sd2RXeGhkR1ZrTEZ4dUlDQWdJQ0FxSUdVdVp5NGdkRzhnY21WdGIzWmxJR3hwYzNSbGJtVnljeTVjYmlBZ0lDQWdLaTljYmlBZ0lDQnNhWE4wWlc1bGNuTkJibmtvS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCMGFHbHpMbDloYm5sTWFYTjBaVzVsY25NZ2ZId2dXMTA3WEc0Z0lDQWdmVnh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRUZrWkhNZ1lTQnNhWE4wWlc1bGNpQjBhR0YwSUhkcGJHd2dZbVVnWm1seVpXUWdkMmhsYmlCaGJua2daWFpsYm5RZ2FYTWdaVzFwZEhSbFpDNGdWR2hsSUdWMlpXNTBJRzVoYldVZ2FYTWdjR0Z6YzJWa0lHRnpJSFJvWlNCbWFYSnpkQ0JoY21kMWJXVnVkQ0IwYnlCMGFHVmNiaUFnSUNBZ0tpQmpZV3hzWW1GamF5NWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFNXZkR1U2SUdGamEyNXZkMnhsWkdkbGJXVnVkSE1nYzJWdWRDQjBieUIwYUdVZ2MyVnlkbVZ5SUdGeVpTQnViM1FnYVc1amJIVmtaV1F1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBWlhoaGJYQnNaVnh1SUNBZ0lDQXFJSE52WTJ0bGRDNXZia0Z1ZVU5MWRHZHZhVzVuS0NobGRtVnVkQ3dnTGk0dVlYSm5jeWtnUFQ0Z2UxeHVJQ0FnSUNBcUlDQWdZMjl1YzI5c1pTNXNiMmNvWUhObGJuUWdaWFpsYm5RZ0pIdGxkbVZ1ZEgxZ0tUdGNiaUFnSUNBZ0tpQjlLVHRjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQnNhWE4wWlc1bGNseHVJQ0FnSUNBcUwxeHVJQ0FnSUc5dVFXNTVUM1YwWjI5cGJtY29iR2x6ZEdWdVpYSXBJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NWZZVzU1VDNWMFoyOXBibWRNYVhOMFpXNWxjbk1nUFNCMGFHbHpMbDloYm5sUGRYUm5iMmx1WjB4cGMzUmxibVZ5Y3lCOGZDQmJYVHRjYmlBZ0lDQWdJQ0FnZEdocGN5NWZZVzU1VDNWMFoyOXBibWRNYVhOMFpXNWxjbk11Y0hWemFDaHNhWE4wWlc1bGNpazdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TzF4dUlDQWdJSDFjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJCWkdSeklHRWdiR2x6ZEdWdVpYSWdkR2hoZENCM2FXeHNJR0psSUdacGNtVmtJSGRvWlc0Z1lXNTVJR1YyWlc1MElHbHpJR1Z0YVhSMFpXUXVJRlJvWlNCbGRtVnVkQ0J1WVcxbElHbHpJSEJoYzNObFpDQmhjeUIwYUdVZ1ptbHljM1FnWVhKbmRXMWxiblFnZEc4Z2RHaGxYRzRnSUNBZ0lDb2dZMkZzYkdKaFkyc3VJRlJvWlNCc2FYTjBaVzVsY2lCcGN5QmhaR1JsWkNCMGJ5QjBhR1VnWW1WbmFXNXVhVzVuSUc5bUlIUm9aU0JzYVhOMFpXNWxjbk1nWVhKeVlYa3VYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQk9iM1JsT2lCaFkydHViM2RzWldSblpXMWxiblJ6SUhObGJuUWdkRzhnZEdobElITmxjblpsY2lCaGNtVWdibTkwSUdsdVkyeDFaR1ZrTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUdWNFlXMXdiR1ZjYmlBZ0lDQWdLaUJ6YjJOclpYUXVjSEpsY0dWdVpFRnVlVTkxZEdkdmFXNW5LQ2hsZG1WdWRDd2dMaTR1WVhKbmN5a2dQVDRnZTF4dUlDQWdJQ0FxSUNBZ1kyOXVjMjlzWlM1c2IyY29ZSE5sYm5RZ1pYWmxiblFnSkh0bGRtVnVkSDFnS1R0Y2JpQWdJQ0FnS2lCOUtUdGNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQndZWEpoYlNCc2FYTjBaVzVsY2x4dUlDQWdJQ0FxTDF4dUlDQWdJSEJ5WlhCbGJtUkJibmxQZFhSbmIybHVaeWhzYVhOMFpXNWxjaWtnZTF4dUlDQWdJQ0FnSUNCMGFHbHpMbDloYm5sUGRYUm5iMmx1WjB4cGMzUmxibVZ5Y3lBOUlIUm9hWE11WDJGdWVVOTFkR2R2YVc1blRHbHpkR1Z1WlhKeklIeDhJRnRkTzF4dUlDQWdJQ0FnSUNCMGFHbHpMbDloYm5sUGRYUm5iMmx1WjB4cGMzUmxibVZ5Y3k1MWJuTm9hV1owS0d4cGMzUmxibVZ5S1R0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTTdYRzRnSUNBZ2ZWeHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlGSmxiVzkyWlhNZ2RHaGxJR3hwYzNSbGJtVnlJSFJvWVhRZ2QybHNiQ0JpWlNCbWFYSmxaQ0IzYUdWdUlHRnVlU0JsZG1WdWRDQnBjeUJsYldsMGRHVmtMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRR1Y0WVcxd2JHVmNiaUFnSUNBZ0tpQmpiMjV6ZENCallYUmphRUZzYkV4cGMzUmxibVZ5SUQwZ0tHVjJaVzUwTENBdUxpNWhjbWR6S1NBOVBpQjdYRzRnSUNBZ0lDb2dJQ0JqYjI1emIyeGxMbXh2WnloZ2MyVnVkQ0JsZG1WdWRDQWtlMlYyWlc1MGZXQXBPMXh1SUNBZ0lDQXFJSDFjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJSE52WTJ0bGRDNXZia0Z1ZVU5MWRHZHZhVzVuS0dOaGRHTm9RV3hzVEdsemRHVnVaWElwTzF4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nTHk4Z2NtVnRiM1psSUdFZ2MzQmxZMmxtYVdNZ2JHbHpkR1Z1WlhKY2JpQWdJQ0FnS2lCemIyTnJaWFF1YjJabVFXNTVUM1YwWjI5cGJtY29ZMkYwWTJoQmJHeE1hWE4wWlc1bGNpazdYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQXZMeUJ2Y2lCeVpXMXZkbVVnWVd4c0lHeHBjM1JsYm1WeWMxeHVJQ0FnSUNBcUlITnZZMnRsZEM1dlptWkJibmxQZFhSbmIybHVaeWdwTzF4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhCaGNtRnRJRnRzYVhOMFpXNWxjbDBnTFNCMGFHVWdZMkYwWTJndFlXeHNJR3hwYzNSbGJtVnlJQ2h2Y0hScGIyNWhiQ2xjYmlBZ0lDQWdLaTljYmlBZ0lDQnZabVpCYm5sUGRYUm5iMmx1Wnloc2FYTjBaVzVsY2lrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvSVhSb2FYTXVYMkZ1ZVU5MWRHZHZhVzVuVEdsemRHVnVaWEp6S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3p0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnBaaUFvYkdsemRHVnVaWElwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHeHBjM1JsYm1WeWN5QTlJSFJvYVhNdVgyRnVlVTkxZEdkdmFXNW5UR2x6ZEdWdVpYSnpPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQnNhWE4wWlc1bGNuTXViR1Z1WjNSb095QnBLeXNwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9iR2x6ZEdWdVpYSWdQVDA5SUd4cGMzUmxibVZ5YzF0cFhTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCc2FYTjBaVzVsY25NdWMzQnNhV05sS0drc0lERXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZEdocGN6dGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxsOWhibmxQZFhSbmIybHVaMHhwYzNSbGJtVnljeUE5SUZ0ZE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TzF4dUlDQWdJSDFjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJTWlhSMWNtNXpJR0Z1SUdGeWNtRjVJRzltSUd4cGMzUmxibVZ5Y3lCMGFHRjBJR0Z5WlNCc2FYTjBaVzVwYm1jZ1ptOXlJR0Z1ZVNCbGRtVnVkQ0IwYUdGMElHbHpJSE53WldOcFptbGxaQzRnVkdocGN5QmhjbkpoZVNCallXNGdZbVVnYldGdWFYQjFiR0YwWldRc1hHNGdJQ0FnSUNvZ1pTNW5MaUIwYnlCeVpXMXZkbVVnYkdsemRHVnVaWEp6TGx4dUlDQWdJQ0FxTDF4dUlDQWdJR3hwYzNSbGJtVnljMEZ1ZVU5MWRHZHZhVzVuS0NrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTVmWVc1NVQzVjBaMjlwYm1kTWFYTjBaVzVsY25NZ2ZId2dXMTA3WEc0Z0lDQWdmVnh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRTV2ZEdsbWVTQjBhR1VnYkdsemRHVnVaWEp6SUdadmNpQmxZV05vSUhCaFkydGxkQ0J6Wlc1MFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWNHRnlZVzBnY0dGamEyVjBYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnSUNBcUwxeHVJQ0FnSUc1dmRHbG1lVTkxZEdkdmFXNW5UR2x6ZEdWdVpYSnpLSEJoWTJ0bGRDa2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb2RHaHBjeTVmWVc1NVQzVjBaMjlwYm1kTWFYTjBaVzVsY25NZ0ppWWdkR2hwY3k1ZllXNTVUM1YwWjI5cGJtZE1hWE4wWlc1bGNuTXViR1Z1WjNSb0tTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JzYVhOMFpXNWxjbk1nUFNCMGFHbHpMbDloYm5sUGRYUm5iMmx1WjB4cGMzUmxibVZ5Y3k1emJHbGpaU2dwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdabTl5SUNoamIyNXpkQ0JzYVhOMFpXNWxjaUJ2WmlCc2FYTjBaVzVsY25NcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnNhWE4wWlc1bGNpNWhjSEJzZVNoMGFHbHpMQ0J3WVdOclpYUXVaR0YwWVNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0I5WEc1OVhHNWxlSEJ2Y25SekxsTnZZMnRsZENBOUlGTnZZMnRsZER0Y2JpSXNJbHdpZFhObElITjBjbWxqZEZ3aU8xeHVUMkpxWldOMExtUmxabWx1WlZCeWIzQmxjblI1S0dWNGNHOXlkSE1zSUZ3aVgxOWxjMDF2WkhWc1pWd2lMQ0I3SUhaaGJIVmxPaUIwY25WbElIMHBPMXh1Wlhod2IzSjBjeTVuYkc5aVlXeFVhR2x6VTJocGJTQTlJSFp2YVdRZ01EdGNibVY0Y0c5eWRITXVaMnh2WW1Gc1ZHaHBjMU5vYVcwZ1BTQW9LQ2tnUFQ0Z2UxeHVJQ0FnSUdsbUlDaDBlWEJsYjJZZ2MyVnNaaUFoUFQwZ1hDSjFibVJsWm1sdVpXUmNJaWtnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnYzJWc1pqdGNiaUFnSUNCOVhHNGdJQ0FnWld4elpTQnBaaUFvZEhsd1pXOW1JSGRwYm1SdmR5QWhQVDBnWENKMWJtUmxabWx1WldSY0lpa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkMmx1Wkc5M08xeHVJQ0FnSUgxY2JpQWdJQ0JsYkhObElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlFWjFibU4wYVc5dUtGd2ljbVYwZFhKdUlIUm9hWE5jSWlrb0tUdGNiaUFnSUNCOVhHNTlLU2dwTzF4dUlpd2lYQ0oxYzJVZ2MzUnlhV04wWENJN1hHNTJZWElnWDE5cGJYQnZjblJFWldaaGRXeDBJRDBnS0hSb2FYTWdKaVlnZEdocGN5NWZYMmx0Y0c5eWRFUmxabUYxYkhRcElIeDhJR1oxYm1OMGFXOXVJQ2h0YjJRcElIdGNiaUFnSUNCeVpYUjFjbTRnS0cxdlpDQW1KaUJ0YjJRdVgxOWxjMDF2WkhWc1pTa2dQeUJ0YjJRZ09pQjdJRndpWkdWbVlYVnNkRndpT2lCdGIyUWdmVHRjYm4wN1hHNVBZbXBsWTNRdVpHVm1hVzVsVUhKdmNHVnlkSGtvWlhod2IzSjBjeXdnWENKZlgyVnpUVzlrZFd4bFhDSXNJSHNnZG1Gc2RXVTZJSFJ5ZFdVZ2ZTazdYRzVqYjI1emRDQndjbTlqWlhOelh6RWdQU0JmWDJsdGNHOXlkRVJsWm1GMWJIUW9jbVZ4ZFdseVpTaGNJbkJ5YjJObGMzTmNJaWtwTzF4dVkyOXVjM1FnYzI5amEyVjBYMmx2WDJOc2FXVnVkRjh4SUQwZ1gxOXBiWEJ2Y25SRVpXWmhkV3gwS0hKbGNYVnBjbVVvWENKemIyTnJaWFF1YVc4dFkyeHBaVzUwWENJcEtUdGNibU52Ym5OMElFTm9RMjl1Wm1sblh6RWdQU0JmWDJsdGNHOXlkRVJsWm1GMWJIUW9jbVZ4ZFdseVpTaGNJa0JqYjIxdGIyNHZiVzlrWld4ekwwTm9RMjl1Wm1sblhDSXBLVHRjYm1OdmJuTjBJR05vWDJOdmJtWnBaMTlrWlhabGJHOXdiV1Z1ZEY5cWMyOXVYekVnUFNCZlgybHRjRzl5ZEVSbFptRjFiSFFvY21WeGRXbHlaU2hjSWtCamIyMXRiMjR2TGk0dlkyZ3RZMjl1Wm1sbkxtUmxkbVZzYjNCdFpXNTBMbXB6YjI1Y0lpa3BPMXh1WTI5dWMzUWdZMmhmWTI5dVptbG5YM0J5YjJSMVkzUnBiMjVmYW5OdmJsOHhJRDBnWDE5cGJYQnZjblJFWldaaGRXeDBLSEpsY1hWcGNtVW9YQ0pBWTI5dGJXOXVMeTR1TDJOb0xXTnZibVpwWnk1d2NtOWtkV04wYVc5dUxtcHpiMjVjSWlrcE8xeHVZMjl1YzNRZ1FtOXZkRTl3ZEdsdmJsOHhJRDBnWDE5cGJYQnZjblJFWldaaGRXeDBLSEpsY1hWcGNtVW9YQ0pBWTI5dGJXOXVMMjF2WkdWc2N5OUNiMjkwVDNCMGFXOXVYQ0lwS1R0Y2JtTnZibk4wSUZObGNYVmxibU5sWHpFZ1BTQmZYMmx0Y0c5eWRFUmxabUYxYkhRb2NtVnhkV2x5WlNoY0lrQmpiMjF0YjI0dlUyVnhkV1Z1WTJWY0lpa3BPMXh1WTI5dWMzUWdZMjl1Wmw4eElEMGdYMTlwYlhCdmNuUkVaV1poZFd4MEtISmxjWFZwY21Vb1hDSkFZMjl0Ylc5dUwyTnZibVpjSWlrcE8xeHVZMjl1YzNRZ1pHVm1hVzVsWHpFZ1BTQmZYMmx0Y0c5eWRFUmxabUYxYkhRb2NtVnhkV2x5WlNoY0lrQmpiMjF0YjI0dlpHVm1hVzVsWENJcEtUdGNibU52Ym5OMElIVjBhV3h6WHpFZ1BTQnlaWEYxYVhKbEtGd2lRR052YlcxdmJpOTFkR2xzYzF3aUtUdGNibU52Ym5OMElFTm9YekVnUFNCZlgybHRjRzl5ZEVSbFptRjFiSFFvY21WeGRXbHlaU2hjSWtCamIyMXRiMjR2Ylc5a1pXeHpMME5vWENJcEtUdGNibU52Ym5OMElGUjFibVZQY0hScGIyNWZNU0E5SUhKbGNYVnBjbVVvWENKQVkyOXRiVzl1TDIxdlpHVnNjeTlVZFc1bFQzQjBhVzl1WENJcE8xeHVZMjl1YzNRZ1h6RWdQU0J5WlhGMWFYSmxLRndpTGx3aUtUdGNibU52Ym5OMElHbHpSRzlqYTJWeUlEMGdRbTl2YkdWaGJpaHdjbTlqWlhOelh6RXVaR1ZtWVhWc2RDNWxibll1U1ZOZlJFOURTMFZTS1R0Y2JtTnZibk4wSUdOb1EyOXVabWxuU25OdmJpQTlJR3h2WTJGMGFXOXVMbWh5WldZdWFXNWtaWGhQWmloY0lteHZZMkZzYUc5emRGd2lLU0ErUFNBd0lEOGdZMmhmWTI5dVptbG5YMlJsZG1Wc2IzQnRaVzUwWDJwemIyNWZNUzVrWldaaGRXeDBJRG9nWTJoZlkyOXVabWxuWDNCeWIyUjFZM1JwYjI1ZmFuTnZibDh4TG1SbFptRjFiSFE3WEc0dkx5RG9wSWZtbGJEamdhNXBiK09CcnVPRHF1T0NyK09DcU9PQ3VlT0RpT09CcU9PRHJPT0N1ZU9EbmVPRHMrT0N1ZU9Da3VXUGwrT0JrZVdQbHVPQ2krT0JydU9CcStXd2d1Vy90ZU9CbWVPQ2kxeHVZMnhoYzNNZ1ZHOVRaWEoyWlhJZ2UxeHVJQ0FnSUhOMFlYUnBZeUJuWlhRZ1pHOXRZV2x1S0NrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1kyOXVabDh4TG1SbFptRjFiSFF1Wlc1MklEMDlQU0JrWldacGJtVmZNUzVrWldaaGRXeDBMa1JGVmtWTVQxQk5SVTVVSUh4OElHTnZibVpmTVM1a1pXWmhkV3gwTG1WdWRpQTlQVDBnWkdWbWFXNWxYekV1WkdWbVlYVnNkQzVNVDBOQlRFaFBVMVFnUHlCa1pXWnBibVZmTVM1a1pXWmhkV3gwTGtSRlZrVk1UMUJOUlU1VVgwUlBUVUZKVGlBNklHUmxabWx1WlY4eExtUmxabUYxYkhRdVVGSlBSRlZEVkVsUFRsOUJVRWxmUkU5TlFVbE9PMXh1SUNBZ0lIMWNiaUFnSUNCemRHRjBhV01nWjJWMElHOXdkR2x2YmlncElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdGMWRHOURiMjV1WldOME9pQjBjblZsTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjbVZqYjI1dVpXTjBhVzl1T2lCMGNuVmxMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVmpiMjV1WldOMGFXOXVRWFIwWlcxd2RITTZJRWx1Wm1sdWFYUjVMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVmpiMjV1WldOMGFXOXVSR1ZzWVhrNklERXdNREFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaV052Ym01bFkzUnBiMjVFWld4aGVVMWhlRG9nTlRBd01DeGNiaUFnSUNBZ0lDQWdJQ0FnSUhScGJXVnZkWFE2SURJd01EQXdMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0x5OTBjbUZ1YzNCdmNuUnpPaUJiSjNCdmJHeHBibWNuTENBbmQyVmljMjlqYTJWMEoxMHNYRzRnSUNBZ0lDQWdJQ0FnSUNBdkwzVndaM0poWkdVNklIUnlkV1VzWEc0Z0lDQWdJQ0FnSUNBZ0lDQjBjbUZ1YzNCdmNuUnpPaUJiSjNkbFluTnZZMnRsZENkZExGeHVJQ0FnSUNBZ0lDQWdJQ0FnZFhCbmNtRmtaVG9nWm1Gc2MyVXNYRzRnSUNBZ0lDQWdJQ0FnSUNCbWIzSmpaVTVsZHpvZ1ptRnNjMlVzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnhkV1Z5ZVRvZ2UzMHNYRzRnSUNBZ0lDQWdJQ0FnSUNCM2FYUm9RM0psWkdWdWRHbGhiSE02SUdaaGJITmxMRnh1SUNBZ0lDQWdJQ0FnSUNBZ1pYaDBjbUZJWldGa1pYSnpPaUI3ZlN4Y2JpQWdJQ0FnSUNBZ2ZUdGNiaUFnSUNCOVhHNGdJQ0FnWTI5dWMzUnlkV04wYjNJb2QzTnpWMjl5YTJWeUtTQjdYRzRnSUNBZ0lDQWdJSFJvYVhNdWRIVnVaU0E5SUhSb2FYTXVkSFZ1WlM1aWFXNWtLSFJvYVhNcE8xeHVJQ0FnSUNBZ0lDQjBhR2x6TG5WdWRIVnVaU0E5SUhSb2FYTXVkVzUwZFc1bExtSnBibVFvZEdocGN5azdYRzRnSUNBZ0lDQWdJSFJvYVhNdVpYaGxJRDBnZEdocGN5NWxlR1V1WW1sdVpDaDBhR2x6S1R0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV2YmtOdmJtNWxZM1FnUFNCMGFHbHpMbTl1UTI5dWJtVmpkQzVpYVc1a0tIUm9hWE1wTzF4dUlDQWdJQ0FnSUNCMGFHbHpMbTl1UTI5dWJtVmpkRVZ5Y205eUlEMGdkR2hwY3k1dmJrTnZibTVsWTNSRmNuSnZjaTVpYVc1a0tIUm9hWE1wTzF4dUlDQWdJQ0FnSUNCMGFHbHpMbTl1VW1WemNHOXVjMlZGYldsMElEMGdkR2hwY3k1dmJsSmxjM0J2Ym5ObFJXMXBkQzVpYVc1a0tIUm9hWE1wTzF4dUlDQWdJQ0FnSUNCMGFHbHpMbTl1VW1WemNHOXVjMlZDYjJGeVpHTmhjM1FnUFNCMGFHbHpMbTl1VW1WemNHOXVjMlZDYjJGeVpHTmhjM1F1WW1sdVpDaDBhR2x6S1R0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV2Wm1aU1pYTndiMjV6WlNBOUlIUm9hWE11YjJabVVtVnpjRzl1YzJVdVltbHVaQ2gwYUdsektUdGNiaUFnSUNBZ0lDQWdkR2hwY3k1d2FXUWdQU0JjSWx3aU8xeHVJQ0FnSUNBZ0lDQjBhR2x6TG1sdmN5QTlJSHQ5TzF4dUlDQWdJQ0FnSUNCMGFHbHpMbTFsZEdodlpITWdQU0I3ZlR0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTUzYzNOWGIzSnJaWElnUFNCM2MzTlhiM0pyWlhJN1hHNGdJQ0FnZlZ4dUlDQWdJR1Y0WlNod2FXUXNJSFIxYm1WSlpDd2diV1YwYUc5a0xDQndZWEpoYlhNcElIdGNiaUFnSUNBZ0lDQWdhV1lnS0Nnd0xDQjFkR2xzYzE4eExtbHpWbUZzYVdSTFpYa3BLRzFsZEdodlpDd2dkR2hwY3lrZ0ppWWdkSGx3Wlc5bUlIUm9hWE5iYldWMGFHOWtYU0E5UFQwZ0oyWjFibU4wYVc5dUp5a2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTV3YVdRZ1BTQndhV1E3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6VzIxbGRHaHZaRjBvZEhWdVpVbGtMQ0J3WVhKaGJYTXBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdsbUlDaDBhR2x6TG1sdmMxdDBkVzVsU1dSZEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbkJwWkNBOUlIQnBaRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11YVc5elczUjFibVZKWkYwdVpXMXBkQ2h0WlhSb2IyUXNJSEJoY21GdGN5azdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ2RIVnVaU2gwZFc1bFNXUXNJSHNnWW05dmRFOXdkR2x2YmlCOUtTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElIQnBaQ0E5SUhSb2FYTXVjR2xrTzF4dUlDQWdJQ0FnSUNCc1pYUWdZMjl1Ym1WamRHbHZiaUE5SUVOb1h6RXVaR1ZtWVhWc2RDNXliMjkwUTI5dWJtVmpkR2x2Ymp0Y2JpQWdJQ0FnSUNBZ2JHVjBJSFIxYm1WUGNIUnBiMjRnUFNCN0lDNHVMbFIxYm1WUGNIUnBiMjVmTVM1cGJtbDBJSDA3WEc0Z0lDQWdJQ0FnSUd4bGRDQjFjbXhUWldGeVkyaFFZWEpoYlhNZ1BTQmdQM1IxYm1WSlpEMGtlM1IxYm1WSlpIMWdPMXh1SUNBZ0lDQWdJQ0JzWlhRZ2FHOXpkRkJ2Y25RZ1BTQmdKSHRVYjFObGNuWmxjaTVrYjIxaGFXNTlPaVI3WkdWbWFXNWxYekV1WkdWbVlYVnNkQzVRVDFKVVV5NUlWRlJRVTMxZ08xeHVJQ0FnSUNBZ0lDQnBaaUFvWW05dmRFOXdkR2x2YmlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWJtVmpkR2x2YmlBOUlFSnZiM1JQY0hScGIyNWZNUzVrWldaaGRXeDBMbWRsZEVOdmJtNWxZM1JwYjI0b1ltOXZkRTl3ZEdsdmJpNWpiMjV1WldOMGFXOXVLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIUjFibVZQY0hScGIyNGdQU0JpYjI5MFQzQjBhVzl1TG5SMWJtVlBjSFJwYjI0N1hHNGdJQ0FnSUNBZ0lDQWdJQ0IxY214VFpXRnlZMmhRWVhKaGJYTWdLejBnWUNZa2UwSnZiM1JQY0hScGIyNWZNUzVrWldaaGRXeDBMbWRsZEZSMWJtVlBjSFJwYjI1VGRISnBibWNvWW05dmRFOXdkR2x2Ymk1MGRXNWxUM0IwYVc5dUtYMWdPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnWjJGMFpYZGhlU0E5SUVOb1EyOXVabWxuWHpFdVpHVm1ZWFZzZEM1blpYUkhZWFJsZDJGNUtIc2dZMmhEYjI1bWFXZEtjMjl1TENCMGRXNWxRMjl1Ym1WamRHbHZiam9nWTI5dWJtVmpkR2x2YmlCOUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdodmMzUlFiM0owSUQwZ1lDUjdaMkYwWlhkaGVTNW9iM04wZlRva2UyZGhkR1YzWVhrdWNHOXlkSDFnTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHTnZibk4wSUdWdVpIQnZhVzUwSUQwZ1lDUjdVMlZ4ZFdWdVkyVmZNUzVrWldaaGRXeDBMa2hVVkZCVFgxQlNUMVJQUTA5TWZTOHZKSHRvYjNOMFVHOXlkSDBrZTNWeWJGTmxZWEpqYUZCaGNtRnRjMzFnTzF4dUlDQWdJQ0FnSUNCMGFHbHpMbWx2YzF0MGRXNWxTV1JkSUQwZ0tEQXNJSE52WTJ0bGRGOXBiMTlqYkdsbGJuUmZNUzVrWldaaGRXeDBLU2hsYm1Sd2IybHVkQ3dnZXlBdUxpNVViMU5sY25abGNpNXZjSFJwYjI0Z2ZTazdYRzRnSUNBZ0lDQWdJSFJvYVhNdWFXOXpXM1IxYm1WSlpGMHViMjRvSjJOdmJtNWxZM1FuTENBb0tTQTlQaUIwYUdsekxuZHpjMWR2Y210bGNpNXdiM04wVFdWemMyRm5aU2g3SUhCcFpDd2dkSFZ1WlVsa0xDQnRaWFJvYjJRNklGOHhMbk4wWVhSMWMxUjFibTVwYm1jZ2ZTa3BPMXh1SUNBZ0lDQWdJQ0IwYUdsekxtbHZjMXQwZFc1bFNXUmRMbTl1S0Nka2FYTmpiMjV1WldOMEp5d2dLQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdjbVZ6Y0c5dWMyVWdQU0I3SUhSNWNHVTZJQ2QxYm5SMWJtVW5JSDA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG5kemMxZHZjbXRsY2k1d2IzTjBUV1Z6YzJGblpTaDdJSEJwWkN3Z2RIVnVaVWxrTENCdFpYUm9iMlE2SUhKbGMzQnZibk5sTG5SNWNHVXNJR0Z3YVZOMFlYUmxPaUJ5WlhOd2IyNXpaU0I5S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR1JsYkdWMFpTQjBhR2x6TG1sdmMxdDBkVzVsU1dSZE8xeHVJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXBiM05iZEhWdVpVbGtYUzV2YmlnblkyOXVibVZqZEY5bGNuSnZjaWNzSUNobGNuSnZjaWtnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMyOXNaUzVsY25KdmNpZ25RMjl1Ym1WamRHbHZiaUJsY25KdmNqb25MQ0IwZFc1bFNXUXNJR1Z5Y205eUtUdGNiaUFnSUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0FnSUhSb2FYTXViMjVTWlhOd2IyNXpaVVZ0YVhRb2RIVnVaVWxrTENCamIyNXVaV04wYVc5dUtUdGNiaUFnSUNBZ0lDQWdkR2hwY3k1dmJsSmxjM0J2Ym5ObFFtOWhjbVJqWVhOMEtIUjFibVZKWkN3Z1kyOXVibVZqZEdsdmJpd2dkSFZ1WlU5d2RHbHZiaWs3WEc0Z0lDQWdmVnh1SUNBZ0lIVnVkSFZ1WlNoZkxDQjBkVzVsU1dRcElIdGNiaUFnSUNBZ0lDQWdhV1lnS0Nnd0xDQjFkR2xzYzE4eExtbHpWbUZzYVdSTFpYa3BLSFIxYm1WSlpDd2dkR2hwY3k1cGIzTXBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG1sdmMxdDBkVzVsU1dSZFd5ZGthWE5qYjI1dVpXTjBKMTBvS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdJQ0J2YmtOdmJtNWxZM1FvS1NCN0lIMWNiaUFnSUNCdmJrTnZibTVsWTNSRmNuSnZjaWdwSUhzZ2ZWeHVJQ0FnSUc5dVVtVnpjRzl1YzJWRmJXbDBLSFIxYm1WSlpDd2dZMjl1Ym1WamRHbHZiaWtnZTF4dUlDQWdJQ0FnSUNCcFppQW9JWFJvYVhNdWFXOXpXM1IxYm1WSlpGMHVYMk5oYkd4aVlXTnJjMXRqYjI1dVpXTjBhVzl1WFNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXBiM05iZEhWdVpVbGtYUzV2YmloMGRXNWxTV1FzSUNoaGNHbFRkR0YwWlNrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElIQnBaQ0E5SUhSb2FYTXVjR2xrTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJRzFsZEdodlpDQTlJR0Z3YVZOMFlYUmxMblI1Y0dVN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYzJWeWRtVnlWRzlCY0dsVWVYQmxJRDBnVTJWeGRXVnVZMlZmTVM1a1pXWmhkV3gwTGxORlVsWkZVbDlVVDE5QlVFbGZSVTFKVkR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbmR6YzFkdmNtdGxjaTV3YjNOMFRXVnpjMkZuWlNoN0lIQnBaQ3dnZEhWdVpVbGtMQ0J0WlhSb2IyUXNJSE5sY25abGNsUnZRWEJwVkhsd1pTd2dZWEJwVTNSaGRHVWdmU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ0lDQnZibEpsYzNCdmJuTmxRbTloY21SallYTjBLSFIxYm1WSlpDd2dZMjl1Ym1WamRHbHZiaXdnZEhWdVpVOXdkR2x2YmlrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvSVhSb2FYTXVhVzl6VzNSMWJtVkpaRjB1WDJOaGJHeGlZV05yYzF0amIyNXVaV04wYVc5dVhTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnWTJGc2JHSmhZMnNnUFNBb1lYQnBVM1JoZEdVcElEMCtJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQndhV1FnUFNCMGFHbHpMbkJwWkR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J0WlhSb2IyUWdQU0JoY0dsVGRHRjBaUzUwZVhCbE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUhObGNuWmxjbFJ2UVhCcFZIbHdaU0E5SUZObGNYVmxibU5sWHpFdVpHVm1ZWFZzZEM1VFJWSldSVkpmVkU5ZlFWQkpYMEpTVDBGRVEwRlRWRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxuZHpjMWR2Y210bGNpNXdiM04wVFdWemMyRm5aU2g3SUhCcFpDd2dkSFZ1WlVsa0xDQnRaWFJvYjJRc0lITmxjblpsY2xSdlFYQnBWSGx3WlN3Z1lYQnBVM1JoZEdVZ2ZTazdYRzRnSUNBZ0lDQWdJQ0FnSUNCOU8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXBiM05iZEhWdVpVbGtYUzV2YmloZ2RIVnVaVG9rZTJOdmJtNWxZM1JwYjI1OVlDd2dZMkZzYkdKaFkyc3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1QySnFaV04wTG10bGVYTW9kSFZ1WlU5d2RHbHZiaWt1Wm05eVJXRmphQ2dvYldWMGFHOWtLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYTJWNUlEMGdiV1YwYUc5a08xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2gwZFc1bFQzQjBhVzl1VzJ0bGVWMHBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0x5OWpiMjV6YjJ4bExteHZaeWhjSWtCQVFDQkRURWxGVGlCQ2IyRnlaR05oYzNRZ1QwNGdYQ0lzSUdBa2UyMWxkR2h2WkgwNkpIdGpiMjV1WldOMGFXOXVmV0FwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11YVc5elczUjFibVZKWkYwdWIyNG9ZQ1I3YldWMGFHOWtmVG9rZTJOdmJtNWxZM1JwYjI1OVlDd2dZMkZzYkdKaFkyc3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNBZ0lHOW1abEpsYzNCdmJuTmxLSFIxYm1WSlpDd2dZMjl1Ym1WamRHbHZiaWtnZTF4dUlDQWdJQ0FnSUNCcFppQW9kR2hwY3k1cGIzTmJkSFZ1WlVsa1hTQW1KaUIwYUdsekxtbHZjMXQwZFc1bFNXUmRMbDlqWVd4c1ltRmphM05iZEhWdVpVbGtYU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1cGIzTmJkSFZ1WlVsa1hTNXZabVlvZEhWdVpVbGtLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11YVc5elczUjFibVZKWkYwdWIyWm1LR052Ym01bFkzUnBiMjRwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dWZWeHVaWGh3YjNKMGN5NWtaV1poZFd4MElEMGdWRzlUWlhKMlpYSTdYRzRpTENKY0luVnpaU0J6ZEhKcFkzUmNJanRjYms5aWFtVmpkQzVrWldacGJtVlFjbTl3WlhKMGVTaGxlSEJ2Y25SekxDQmNJbDlmWlhOTmIyUjFiR1ZjSWl3Z2V5QjJZV3gxWlRvZ2RISjFaU0I5S1R0Y2JtVjRjRzl5ZEhNdVpHVmpiMlJsVUdGNWJHOWhaQ0E5SUdWNGNHOXlkSE11WkdWamIyUmxVR0ZqYTJWMElEMGdaWGh3YjNKMGN5NWxibU52WkdWUVlYbHNiMkZrSUQwZ1pYaHdiM0owY3k1bGJtTnZaR1ZRWVdOclpYUWdQU0JsZUhCdmNuUnpMbkJ5YjNSdlkyOXNJRDBnZG05cFpDQXdPMXh1Wlhod2IzSjBjeTVqY21WaGRHVlFZV05yWlhSRmJtTnZaR1Z5VTNSeVpXRnRJRDBnWTNKbFlYUmxVR0ZqYTJWMFJXNWpiMlJsY2xOMGNtVmhiVHRjYm1WNGNHOXlkSE11WTNKbFlYUmxVR0ZqYTJWMFJHVmpiMlJsY2xOMGNtVmhiU0E5SUdOeVpXRjBaVkJoWTJ0bGRFUmxZMjlrWlhKVGRISmxZVzA3WEc1amIyNXpkQ0JsYm1OdlpHVlFZV05yWlhSZmFuTmZNU0E5SUhKbGNYVnBjbVVvWENJdUwyVnVZMjlrWlZCaFkydGxkQzVxYzF3aUtUdGNiazlpYW1WamRDNWtaV1pwYm1WUWNtOXdaWEowZVNobGVIQnZjblJ6TENCY0ltVnVZMjlrWlZCaFkydGxkRndpTENCN0lHVnVkVzFsY21GaWJHVTZJSFJ5ZFdVc0lHZGxkRG9nWm5WdVkzUnBiMjRnS0NrZ2V5QnlaWFIxY200Z1pXNWpiMlJsVUdGamEyVjBYMnB6WHpFdVpXNWpiMlJsVUdGamEyVjBPeUI5SUgwcE8xeHVZMjl1YzNRZ1pHVmpiMlJsVUdGamEyVjBYMnB6WHpFZ1BTQnlaWEYxYVhKbEtGd2lMaTlrWldOdlpHVlFZV05yWlhRdWFuTmNJaWs3WEc1UFltcGxZM1F1WkdWbWFXNWxVSEp2Y0dWeWRIa29aWGh3YjNKMGN5d2dYQ0prWldOdlpHVlFZV05yWlhSY0lpd2dleUJsYm5WdFpYSmhZbXhsT2lCMGNuVmxMQ0JuWlhRNklHWjFibU4wYVc5dUlDZ3BJSHNnY21WMGRYSnVJR1JsWTI5a1pWQmhZMnRsZEY5cWMxOHhMbVJsWTI5a1pWQmhZMnRsZERzZ2ZTQjlLVHRjYm1OdmJuTjBJR052YlcxdmJuTmZhbk5mTVNBOUlISmxjWFZwY21Vb1hDSXVMMk52YlcxdmJuTXVhbk5jSWlrN1hHNWpiMjV6ZENCVFJWQkJVa0ZVVDFJZ1BTQlRkSEpwYm1jdVpuSnZiVU5vWVhKRGIyUmxLRE13S1RzZ0x5OGdjMlZsSUdoMGRIQnpPaTh2Wlc0dWQybHJhWEJsWkdsaExtOXlaeTkzYVd0cEwwUmxiR2x0YVhSbGNpTkJVME5KU1Y5a1pXeHBiV2wwWldSZmRHVjRkRnh1WTI5dWMzUWdaVzVqYjJSbFVHRjViRzloWkNBOUlDaHdZV05yWlhSekxDQmpZV3hzWW1GamF5a2dQVDRnZTF4dUlDQWdJQzh2SUhOdmJXVWdjR0ZqYTJWMGN5QnRZWGtnWW1VZ1lXUmtaV1FnZEc4Z2RHaGxJR0Z5Y21GNUlIZG9hV3hsSUdWdVkyOWthVzVuTENCemJ5QjBhR1VnYVc1cGRHbGhiQ0JzWlc1bmRHZ2diWFZ6ZENCaVpTQnpZWFpsWkZ4dUlDQWdJR052Ym5OMElHeGxibWQwYUNBOUlIQmhZMnRsZEhNdWJHVnVaM1JvTzF4dUlDQWdJR052Ym5OMElHVnVZMjlrWldSUVlXTnJaWFJ6SUQwZ2JtVjNJRUZ5Y21GNUtHeGxibWQwYUNrN1hHNGdJQ0FnYkdWMElHTnZkVzUwSUQwZ01EdGNiaUFnSUNCd1lXTnJaWFJ6TG1admNrVmhZMmdvS0hCaFkydGxkQ3dnYVNrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0F2THlCbWIzSmpaU0JpWVhObE5qUWdaVzVqYjJScGJtY2dabTl5SUdKcGJtRnllU0J3WVdOclpYUnpYRzRnSUNBZ0lDQWdJQ2d3TENCbGJtTnZaR1ZRWVdOclpYUmZhbk5mTVM1bGJtTnZaR1ZRWVdOclpYUXBLSEJoWTJ0bGRDd2dabUZzYzJVc0lDaGxibU52WkdWa1VHRmphMlYwS1NBOVBpQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCbGJtTnZaR1ZrVUdGamEyVjBjMXRwWFNBOUlHVnVZMjlrWldSUVlXTnJaWFE3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvS3l0amIzVnVkQ0E5UFQwZ2JHVnVaM1JvS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyRnNiR0poWTJzb1pXNWpiMlJsWkZCaFkydGxkSE11YW05cGJpaFRSVkJCVWtGVVQxSXBLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdmU2s3WEc0Z0lDQWdmU2s3WEc1OU8xeHVaWGh3YjNKMGN5NWxibU52WkdWUVlYbHNiMkZrSUQwZ1pXNWpiMlJsVUdGNWJHOWhaRHRjYm1OdmJuTjBJR1JsWTI5a1pWQmhlV3h2WVdRZ1BTQW9aVzVqYjJSbFpGQmhlV3h2WVdRc0lHSnBibUZ5ZVZSNWNHVXBJRDArSUh0Y2JpQWdJQ0JqYjI1emRDQmxibU52WkdWa1VHRmphMlYwY3lBOUlHVnVZMjlrWldSUVlYbHNiMkZrTG5Od2JHbDBLRk5GVUVGU1FWUlBVaWs3WEc0Z0lDQWdZMjl1YzNRZ2NHRmphMlYwY3lBOUlGdGRPMXh1SUNBZ0lHWnZjaUFvYkdWMElHa2dQU0F3T3lCcElEd2daVzVqYjJSbFpGQmhZMnRsZEhNdWJHVnVaM1JvT3lCcEt5c3BJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdaR1ZqYjJSbFpGQmhZMnRsZENBOUlDZ3dMQ0JrWldOdlpHVlFZV05yWlhSZmFuTmZNUzVrWldOdlpHVlFZV05yWlhRcEtHVnVZMjlrWldSUVlXTnJaWFJ6VzJsZExDQmlhVzVoY25sVWVYQmxLVHRjYmlBZ0lDQWdJQ0FnY0dGamEyVjBjeTV3ZFhOb0tHUmxZMjlrWldSUVlXTnJaWFFwTzF4dUlDQWdJQ0FnSUNCcFppQW9aR1ZqYjJSbFpGQmhZMnRsZEM1MGVYQmxJRDA5UFNCY0ltVnljbTl5WENJcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCd1lXTnJaWFJ6TzF4dWZUdGNibVY0Y0c5eWRITXVaR1ZqYjJSbFVHRjViRzloWkNBOUlHUmxZMjlrWlZCaGVXeHZZV1E3WEc1bWRXNWpkR2x2YmlCamNtVmhkR1ZRWVdOclpYUkZibU52WkdWeVUzUnlaV0Z0S0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUJ1WlhjZ1ZISmhibk5tYjNKdFUzUnlaV0Z0S0h0Y2JpQWdJQ0FnSUNBZ2RISmhibk5tYjNKdEtIQmhZMnRsZEN3Z1kyOXVkSEp2Ykd4bGNpa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0tEQXNJR1Z1WTI5a1pWQmhZMnRsZEY5cWMxOHhMbVZ1WTI5a1pWQmhZMnRsZEZSdlFtbHVZWEo1S1Nod1lXTnJaWFFzSUNobGJtTnZaR1ZrVUdGamEyVjBLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnY0dGNWJHOWhaRXhsYm1kMGFDQTlJR1Z1WTI5a1pXUlFZV05yWlhRdWJHVnVaM1JvTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUd4bGRDQm9aV0ZrWlhJN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0x5OGdhVzV6Y0dseVpXUWdZbmtnZEdobElGZGxZbE52WTJ0bGRDQm1iM0p0WVhRNklHaDBkSEJ6T2k4dlpHVjJaV3h2Y0dWeUxtMXZlbWxzYkdFdWIzSm5MMlZ1TFZWVEwyUnZZM012VjJWaUwwRlFTUzlYWldKVGIyTnJaWFJ6WDBGUVNTOVhjbWwwYVc1blgxZGxZbE52WTJ0bGRGOXpaWEoyWlhKekkyUmxZMjlrYVc1blgzQmhlV3h2WVdSZmJHVnVaM1JvWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIQmhlV3h2WVdSTVpXNW5kR2dnUENBeE1qWXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FHVmhaR1Z5SUQwZ2JtVjNJRlZwYm5RNFFYSnlZWGtvTVNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzVsZHlCRVlYUmhWbWxsZHlob1pXRmtaWEl1WW5WbVptVnlLUzV6WlhSVmFXNTBPQ2d3TENCd1lYbHNiMkZrVEdWdVozUm9LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWld4elpTQnBaaUFvY0dGNWJHOWhaRXhsYm1kMGFDQThJRFkxTlRNMktTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdobFlXUmxjaUE5SUc1bGR5QlZhVzUwT0VGeWNtRjVLRE1wTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCMmFXVjNJRDBnYm1WM0lFUmhkR0ZXYVdWM0tHaGxZV1JsY2k1aWRXWm1aWElwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjJhV1YzTG5ObGRGVnBiblE0S0RBc0lERXlOaWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIWnBaWGN1YzJWMFZXbHVkREUyS0RFc0lIQmhlV3h2WVdSTVpXNW5kR2dwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FHVmhaR1Z5SUQwZ2JtVjNJRlZwYm5RNFFYSnlZWGtvT1NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElIWnBaWGNnUFNCdVpYY2dSR0YwWVZacFpYY29hR1ZoWkdWeUxtSjFabVpsY2lrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFpwWlhjdWMyVjBWV2x1ZERnb01Dd2dNVEkzS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkbWxsZHk1elpYUkNhV2RWYVc1ME5qUW9NU3dnUW1sblNXNTBLSEJoZVd4dllXUk1aVzVuZEdncEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdMeThnWm1seWMzUWdZbWwwSUdsdVpHbGpZWFJsY3lCM2FHVjBhR1Z5SUhSb1pTQndZWGxzYjJGa0lHbHpJSEJzWVdsdUlIUmxlSFFnS0RBcElHOXlJR0pwYm1GeWVTQW9NU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2NHRmphMlYwTG1SaGRHRWdKaVlnZEhsd1pXOW1JSEJoWTJ0bGRDNWtZWFJoSUNFOVBTQmNJbk4wY21sdVoxd2lLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHaGxZV1JsY2xzd1hTQjhQU0F3ZURnd08xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjUwY205c2JHVnlMbVZ1Y1hWbGRXVW9hR1ZoWkdWeUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjUwY205c2JHVnlMbVZ1Y1hWbGRXVW9aVzVqYjJSbFpGQmhZMnRsZENrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNCOUtUdGNibjFjYm14bGRDQlVSVmhVWDBSRlEwOUVSVkk3WEc1bWRXNWpkR2x2YmlCMGIzUmhiRXhsYm1kMGFDaGphSFZ1YTNNcElIdGNiaUFnSUNCeVpYUjFjbTRnWTJoMWJtdHpMbkpsWkhWalpTZ29ZV05qTENCamFIVnVheWtnUFQ0Z1lXTmpJQ3NnWTJoMWJtc3ViR1Z1WjNSb0xDQXdLVHRjYm4xY2JtWjFibU4wYVc5dUlHTnZibU5oZEVOb2RXNXJjeWhqYUhWdWEzTXNJSE5wZW1VcElIdGNiaUFnSUNCcFppQW9ZMmgxYm10eld6QmRMbXhsYm1kMGFDQTlQVDBnYzJsNlpTa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdZMmgxYm10ekxuTm9hV1owS0NrN1hHNGdJQ0FnZlZ4dUlDQWdJR052Ym5OMElHSjFabVpsY2lBOUlHNWxkeUJWYVc1ME9FRnljbUY1S0hOcGVtVXBPMXh1SUNBZ0lHeGxkQ0JxSUQwZ01EdGNiaUFnSUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElITnBlbVU3SUdrckt5a2dlMXh1SUNBZ0lDQWdJQ0JpZFdabVpYSmJhVjBnUFNCamFIVnVhM05iTUYxYmFpc3JYVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHb2dQVDA5SUdOb2RXNXJjMXN3WFM1c1pXNW5kR2dwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR05vZFc1cmN5NXphR2xtZENncE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYWlBOUlEQTdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ2FXWWdLR05vZFc1cmN5NXNaVzVuZEdnZ0ppWWdhaUE4SUdOb2RXNXJjMXN3WFM1c1pXNW5kR2dwSUh0Y2JpQWdJQ0FnSUNBZ1kyaDFibXR6V3pCZElEMGdZMmgxYm10eld6QmRMbk5zYVdObEtHb3BPMXh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnWW5WbVptVnlPMXh1ZlZ4dVpuVnVZM1JwYjI0Z1kzSmxZWFJsVUdGamEyVjBSR1ZqYjJSbGNsTjBjbVZoYlNodFlYaFFZWGxzYjJGa0xDQmlhVzVoY25sVWVYQmxLU0I3WEc0Z0lDQWdhV1lnS0NGVVJWaFVYMFJGUTA5RVJWSXBJSHRjYmlBZ0lDQWdJQ0FnVkVWWVZGOUVSVU5QUkVWU0lEMGdibVYzSUZSbGVIUkVaV052WkdWeUtDazdYRzRnSUNBZ2ZWeHVJQ0FnSUdOdmJuTjBJR05vZFc1cmN5QTlJRnRkTzF4dUlDQWdJR3hsZENCemRHRjBaU0E5SURBZ0x5b2dVM1JoZEdVdVVrVkJSRjlJUlVGRVJWSWdLaTg3WEc0Z0lDQWdiR1YwSUdWNGNHVmpkR1ZrVEdWdVozUm9JRDBnTFRFN1hHNGdJQ0FnYkdWMElHbHpRbWx1WVhKNUlEMGdabUZzYzJVN1hHNGdJQ0FnY21WMGRYSnVJRzVsZHlCVWNtRnVjMlp2Y20xVGRISmxZVzBvZTF4dUlDQWdJQ0FnSUNCMGNtRnVjMlp2Y20wb1kyaDFibXNzSUdOdmJuUnliMnhzWlhJcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOb2RXNXJjeTV3ZFhOb0tHTm9kVzVyS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSGRvYVd4bElDaDBjblZsS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSE4wWVhSbElEMDlQU0F3SUM4cUlGTjBZWFJsTGxKRlFVUmZTRVZCUkVWU0lDb3ZLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2gwYjNSaGJFeGxibWQwYUNoamFIVnVhM01wSUR3Z01Ta2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYUdWaFpHVnlJRDBnWTI5dVkyRjBRMmgxYm10ektHTm9kVzVyY3l3Z01TazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdselFtbHVZWEo1SUQwZ0tHaGxZV1JsY2xzd1hTQW1JREI0T0RBcElEMDlQU0F3ZURnd08xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JsZUhCbFkzUmxaRXhsYm1kMGFDQTlJR2hsWVdSbGNsc3dYU0FtSURCNE4yWTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaGxlSEJsWTNSbFpFeGxibWQwYUNBOElERXlOaWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYzNSaGRHVWdQU0F6SUM4cUlGTjBZWFJsTGxKRlFVUmZVRUZaVEU5QlJDQXFMenRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JsYkhObElHbG1JQ2hsZUhCbFkzUmxaRXhsYm1kMGFDQTlQVDBnTVRJMktTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnpkR0YwWlNBOUlERWdMeW9nVTNSaGRHVXVVa1ZCUkY5RldGUkZUa1JGUkY5TVJVNUhWRWhmTVRZZ0tpODdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCemRHRjBaU0E5SURJZ0x5b2dVM1JoZEdVdVVrVkJSRjlGV0ZSRlRrUkZSRjlNUlU1SFZFaGZOalFnS2k4N1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWld4elpTQnBaaUFvYzNSaGRHVWdQVDA5SURFZ0x5b2dVM1JoZEdVdVVrVkJSRjlGV0ZSRlRrUkZSRjlNUlU1SFZFaGZNVFlnS2k4cElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIUnZkR0ZzVEdWdVozUm9LR05vZFc1cmN5a2dQQ0F5S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQm9aV0ZrWlhKQmNuSmhlU0E5SUdOdmJtTmhkRU5vZFc1cmN5aGphSFZ1YTNNc0lESXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbGVIQmxZM1JsWkV4bGJtZDBhQ0E5SUc1bGR5QkVZWFJoVm1sbGR5aG9aV0ZrWlhKQmNuSmhlUzVpZFdabVpYSXNJR2hsWVdSbGNrRnljbUY1TG1KNWRHVlBabVp6WlhRc0lHaGxZV1JsY2tGeWNtRjVMbXhsYm1kMGFDa3VaMlYwVldsdWRERTJLREFwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnpkR0YwWlNBOUlETWdMeW9nVTNSaGRHVXVVa1ZCUkY5UVFWbE1UMEZFSUNvdk8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmxiSE5sSUdsbUlDaHpkR0YwWlNBOVBUMGdNaUF2S2lCVGRHRjBaUzVTUlVGRVgwVllWRVZPUkVWRVgweEZUa2RVU0Y4Mk5DQXFMeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvZEc5MFlXeE1aVzVuZEdnb1kyaDFibXR6S1NBOElEZ3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUdobFlXUmxja0Z5Y21GNUlEMGdZMjl1WTJGMFEyaDFibXR6S0dOb2RXNXJjeXdnT0NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElIWnBaWGNnUFNCdVpYY2dSR0YwWVZacFpYY29hR1ZoWkdWeVFYSnlZWGt1WW5WbVptVnlMQ0JvWldGa1pYSkJjbkpoZVM1aWVYUmxUMlptYzJWMExDQm9aV0ZrWlhKQmNuSmhlUzVzWlc1bmRHZ3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J1SUQwZ2RtbGxkeTVuWlhSVmFXNTBNeklvTUNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNodUlENGdUV0YwYUM1d2IzY29NaXdnTlRNZ0xTQXpNaWtnTFNBeEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXZMeUIwYUdVZ2JXRjRhVzExYlNCellXWmxJR2x1ZEdWblpYSWdhVzRnU21GMllWTmpjbWx3ZENCcGN5QXlYalV6SUMwZ01WeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVkSEp2Ykd4bGNpNWxibkYxWlhWbEtHTnZiVzF2Ym5OZmFuTmZNUzVGVWxKUFVsOVFRVU5MUlZRcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWlhod1pXTjBaV1JNWlc1bmRHZ2dQU0J1SUNvZ1RXRjBhQzV3YjNjb01pd2dNeklwSUNzZ2RtbGxkeTVuWlhSVmFXNTBNeklvTkNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSE4wWVhSbElEMGdNeUF2S2lCVGRHRjBaUzVTUlVGRVgxQkJXVXhQUVVRZ0tpODdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2RHOTBZV3hNWlc1bmRHZ29ZMmgxYm10ektTQThJR1Y0Y0dWamRHVmtUR1Z1WjNSb0tTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JrWVhSaElEMGdZMjl1WTJGMFEyaDFibXR6S0dOb2RXNXJjeXdnWlhod1pXTjBaV1JNWlc1bmRHZ3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNTBjbTlzYkdWeUxtVnVjWFZsZFdVb0tEQXNJR1JsWTI5a1pWQmhZMnRsZEY5cWMxOHhMbVJsWTI5a1pWQmhZMnRsZENrb2FYTkNhVzVoY25rZ1B5QmtZWFJoSURvZ1ZFVllWRjlFUlVOUFJFVlNMbVJsWTI5a1pTaGtZWFJoS1N3Z1ltbHVZWEo1Vkhsd1pTa3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCemRHRjBaU0E5SURBZ0x5b2dVM1JoZEdVdVVrVkJSRjlJUlVGRVJWSWdLaTg3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaGxlSEJsWTNSbFpFeGxibWQwYUNBOVBUMGdNQ0I4ZkNCbGVIQmxZM1JsWkV4bGJtZDBhQ0ErSUcxaGVGQmhlV3h2WVdRcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWRISnZiR3hsY2k1bGJuRjFaWFZsS0dOdmJXMXZibk5mYW5OZk1TNUZVbEpQVWw5UVFVTkxSVlFwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUgwc1hHNGdJQ0FnZlNrN1hHNTlYRzVsZUhCdmNuUnpMbkJ5YjNSdlkyOXNJRDBnTkR0Y2JpSXNJbHdpZFhObElITjBjbWxqZEZ3aU8xeHVUMkpxWldOMExtUmxabWx1WlZCeWIzQmxjblI1S0dWNGNHOXlkSE1zSUZ3aVgxOWxjMDF2WkhWc1pWd2lMQ0I3SUhaaGJIVmxPaUIwY25WbElIMHBPMXh1WTJ4aGMzTWdVMlZ4ZFdWdVkyVWdlMXh1SUNBZ0lITjBZWFJwWXlCblpYUWdWRUZNUzA1ZlVGSlBWRTlEVDB3b0tTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQW5kR0ZzYTI0Nkp6dGNiaUFnSUNCOVhHNGdJQ0FnYzNSaGRHbGpJR2RsZENCSVZGUlFYMUJTVDFSUFEwOU1LQ2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnSjJoMGRIQTZKenRjYmlBZ0lDQjlYRzRnSUNBZ2MzUmhkR2xqSUdkbGRDQklWRlJRVTE5UVVrOVVUME5QVENncElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlDZG9kSFJ3Y3pvbk8xeHVJQ0FnSUgxY2JpQWdJQ0J6ZEdGMGFXTWdaMlYwSUZkVFUxOVFVazlVVDBOUFRDZ3BJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJQ2QzYzNNNkp6dGNiaUFnSUNCOVhHNGdJQ0FnYzNSaGRHbGpJR2RsZENCVlRrdE9UMWRPWDFCU1QxUlBRMDlNS0NrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z0p6OC9Qejg2Snp0Y2JpQWdJQ0I5WEc0Z0lDQWdjM1JoZEdsaklHZGxkQ0JGVFVsVVgwMUZYMHRGV1NncElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlDZEFSVTFKVkY5TlJTYzdYRzRnSUNBZ2ZWeHVJQ0FnSUhOMFlYUnBZeUJuWlhRZ1FWQkpYMU5GVUVGU1FWUkZYMGxQWDFSWlVFVmZVMVJCVWxRb0tTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQW5XeWM3WEc0Z0lDQWdmVnh1SUNBZ0lITjBZWFJwWXlCblpYUWdRVkJKWDFORlVFRlNRVlJGWDBsUFgxUlpVRVZmUlU1RUtDa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdKMTBuTzF4dUlDQWdJSDFjYmlBZ0lDQnpkR0YwYVdNZ1oyVjBJRUZRU1Y5U1JWRlZSVk5VWDFSWlVFVW9LU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUFuVWtWUlZVVlRWQ2M3WEc0Z0lDQWdmVnh1SUNBZ0lITjBZWFJwWXlCblpYUWdRVkJKWDFKRlUxQlBUbE5GWDFSWlVFVmZSVTFKVkNncElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlDZEZUVWxVSnp0Y2JpQWdJQ0I5WEc0Z0lDQWdjM1JoZEdsaklHZGxkQ0JCVUVsZlVrVlRVRTlPVTBWZlZGbFFSVjlDVWs5QlJFTkJVMVFvS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlBblFsSlBRVVJEUVZOVUp6dGNiaUFnSUNCOVhHNGdJQ0FnYzNSaGRHbGpJR2RsZENCQlVFbGZVMFZVVlZBb0tTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQW5RVkJKWDFORlZGVlFKenRjYmlBZ0lDQjlYRzRnSUNBZ2MzUmhkR2xqSUdkbGRDQlZUa3RPVDFkT0tDa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdKMVZPUzA1UFYwNG5PMXh1SUNBZ0lIMWNiaUFnSUNCemRHRjBhV01nWjJWMElFTlBUazVGUTFSSlQwNWZVMFZTVmtWU1gwdEZXU2dwSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUNkRFQwNU9SVU5VU1U5T1gxTkZVbFpGVWljN1hHNGdJQ0FnZlZ4dUlDQWdJSE4wWVhScFl5Qm5aWFFnUVZCSlgxUlBYMU5GVWxaRlVsOVNSVkZWUlZOVUtDa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdZRUZRU1Y5VVQxOVRSVkpXUlZKYkpIdFRaWEYxWlc1alpTNUJVRWxmVWtWUlZVVlRWRjlVV1ZCRmZWMGtlMU5sY1hWbGJtTmxMazFGVkVoUFJGOURUMHhQVG4xZ08xeHVJQ0FnSUgxY2JpQWdJQ0J6ZEdGMGFXTWdaMlYwSUZORlVsWkZVbDlVVDE5QlVFbGZSVTFKVkNncElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHQlRSVkpXUlZKZlZFOWZRVkJKV3lSN1UyVnhkV1Z1WTJVdVFWQkpYMUpGVTFCUFRsTkZYMVJaVUVWZlJVMUpWSDFkSkh0VFpYRjFaVzVqWlM1TlJWUklUMFJmUTA5TVQwNTlZRHRjYmlBZ0lDQjlYRzRnSUNBZ2MzUmhkR2xqSUdkbGRDQlRSVkpXUlZKZlZFOWZRVkJKWDBKU1QwRkVRMEZUVkNncElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHQlRSVkpXUlZKZlZFOWZRVkJKV3lSN1UyVnhkV1Z1WTJVdVFWQkpYMUpGVTFCUFRsTkZYMVJaVUVWZlFsSlBRVVJEUVZOVWZWMGtlMU5sY1hWbGJtTmxMazFGVkVoUFJGOURUMHhQVG4xZ08xeHVJQ0FnSUgxY2JpQWdJQ0J6ZEdGMGFXTWdaMlYwSUVGUVNWOVVUMTlEVEVsRlRsUmZVa1ZSVlVWVFZDZ3BJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJR0JCVUVsZlZFOWZRMHhKUlU1VVd5UjdVMlZ4ZFdWdVkyVXVRVkJKWDFKRlVWVkZVMVJmVkZsUVJYMWRKSHRUWlhGMVpXNWpaUzVOUlZSSVQwUmZRMDlNVDA1OVlEdGNiaUFnSUNCOVhHNGdJQ0FnYzNSaGRHbGpJR2RsZENCQlVFbGZWRTlmUTB4SlJVNVVYMFZOU1ZRb0tTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmdRVkJKWDFSUFgwTk1TVVZPVkZza2UxTmxjWFZsYm1ObExrRlFTVjlTUlZOUVQwNVRSVjlVV1ZCRlgwVk5TVlI5WFNSN1UyVnhkV1Z1WTJVdVRVVlVTRTlFWDBOUFRFOU9mV0E3WEc0Z0lDQWdmVnh1SUNBZ0lITjBZWFJwWXlCblpYUWdRVkJKWDFSUFgwTk1TVVZPVkY5Q1VrOUJSRU5CVTFRb0tTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmdRVkJKWDFSUFgwTk1TVVZPVkZza2UxTmxjWFZsYm1ObExrRlFTVjlTUlZOUVQwNVRSVjlVV1ZCRlgwSlNUMEZFUTBGVFZIMWRKSHRUWlhGMVpXNWpaUzVOUlZSSVQwUmZRMDlNVDA1OVlEdGNiaUFnSUNCOVhHNGdJQ0FnYzNSaGRHbGpJR2RsZENCQlVFbGZRbEpQUVVSRFFWTlVYME5CVEV4Q1FVTkxLQ2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnSjNSMWJtVW5PMXh1SUNBZ0lIMWNiaUFnSUNCemRHRjBhV01nWjJWMElGSkZSRlZZWDBGRFZFbFBUbDlMUlZrb0tTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQW5kSGx3WlNjN1hHNGdJQ0FnZlZ4dUlDQWdJSE4wWVhScFl5Qm5aWFFnVFVWVVNFOUVYME5QVEU5T0tDa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdKem9uTzF4dUlDQWdJSDFjYmlBZ0lDQnpkR0YwYVdNZ1oyVjBJRUZFUkY5RFRFbEZUbFJmUVVOVVNVOU9YMUJTUlVaSldDZ3BJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJQ2RCVUVsZlZFOWZRMHhKUlU1VUp6dGNiaUFnSUNCOVhHNGdJQ0FnYzNSaGRHbGpJR2RsZENCdFlYQW9LU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBkVzVsT2lCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVnhkV1Z6ZEZCMVlteHBZMU4wWVhSbE9pQjdJSFIxYm1WRGFEb2dXeWRqYjI1dVpXTjBhVzl1SjEwZ2ZTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWEYxWlhOMFVISnBkbUYwWlZOMFlYUmxPaUI3ZlN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYTndiMjV6WlVWdGFYUlRkR0YwWlRvZ2V5QjFjMlZ5T2lCYkozVnBaQ2RkTENCelpYUjBhVzVuT2lBbktpY3NJSFJvY21WaFpEb2dKeW9uSUgwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVnpjRzl1YzJWQ2NtOWhaR05oYzNSVGRHRjBaVG9nZXlCMGFISmxZV1E2SUZzbmJHbDJaVU51ZENjc0lDZGphQ2RkSUgwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdabVYwWTJoUWIzTjBjem9nZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGNYVmxjM1JRZFdKc2FXTlRkR0YwWlRvZ2UzMHNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVZ4ZFdWemRGQnlhWFpoZEdWVGRHRjBaVG9nZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhSEpsWVdRNklGc25ZMmduTENBbmNISnZkRzlqYjJ3bkxDQW5hRzl6ZENjc0lDZG9ZWE5UYkdGemFDZGRMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCaGNIQTZJRnNuYlhWc2RHbHpkSEpsWVcwbkxDQW5jbTl2ZEVOb0p5d2dKMlJwYzNCVWFISmxZV1JVZVhCbEp5d2dKMkZqZEdsdmJtVmtKeXdnSjI5bVpuTmxkRVpwYm1SSlpDY3NJQ2RwYzFSdloyZHNaVTExYkhScGMzUnlaV0Z0SjEwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWE53YjI1elpVVnRhWFJUZEdGMFpUb2dleUJ3YjNOMGN6b2dKeW9uTENCMGFISmxZV1E2SUNjcUp5QjlMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsYzNCdmJuTmxRbkp2WVdSallYTjBVM1JoZEdVNklIdDlMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lDQWdJQ0FnSUdkbGRFMXZjbVU2SUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYRjFaWE4wVUhWaWJHbGpVM1JoZEdVNklIdDlMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsY1hWbGMzUlFjbWwyWVhSbFUzUmhkR1U2SUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2h5WldGa09pQmJKMk5vSjEwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR0Z3Y0RvZ1d5ZHRkV3gwYVhOMGNtVmhiU2NzSUNka2FYTndWR2h5WldGa1ZIbHdaU2NzSUNkdlptWnpaWFJHYVc1a1NXUW5YU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGMzQnZibk5sUlcxcGRGTjBZWFJsT2lCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR0Z3Y0RvZ1d5ZGthWE53VkdoeVpXRmtWSGx3WlNjc0lDZHZabVp6WlhSR2FXNWtTV1FuWFN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjRzl6ZEhNNklDY3FKeXhjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGMzQnZibk5sUW5KdllXUmpZWE4wVTNSaGRHVTZJSHQ5TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lIVndaR0YwWlZSb2NtVmhaRG9nZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGNYVmxjM1JRZFdKc2FXTlRkR0YwWlRvZ2UzMHNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVZ4ZFdWemRGQnlhWFpoZEdWVGRHRjBaVG9nZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhSEpsWVdRNklGc25ZMmduTENBbmNISnZkRzlqYjJ3bkxDQW5hRzl6ZENjc0lDZG9ZWE5UYkdGemFDZGRMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WemNHOXVjMlZGYldsMFUzUmhkR1U2SUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2h5WldGa09pQW5LaWNzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYTndiMjV6WlVKeWIyRmtZMkZ6ZEZOMFlYUmxPaUI3ZlN4Y2JpQWdJQ0FnSUNBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0FnSUNBZ0lDQmphR0Z1WjJWVWFISmxZV1E2SUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYRjFaWE4wVUhWaWJHbGpVM1JoZEdVNklIdDlMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsY1hWbGMzUlFjbWwyWVhSbFUzUmhkR1U2SUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2h5WldGa09pQmJKMk5vSnl3Z0oyaGhjMU5zWVhOb0p5d2dKM0J5YjNSdlkyOXNKMTBzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHRndjRG9nV3lkMGRXNWxaRU5vSnl3Z0oyMTFiSFJwYzNSeVpXRnRKeXdnSjNKdmIzUkRhQ2NzSUNka2FYTndWR2h5WldGa1ZIbHdaU2NzSUNkaFkzUnBiMjVsWkNjc0lDZHZabVp6WlhSR2FXNWtTV1FuTENBbmFYTlViMmRuYkdWTmRXeDBhWE4wY21WaGJTZGRMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WemNHOXVjMlZGYldsMFUzUmhkR1U2SUhzZ2RHaHlaV0ZrT2lBbktpY2dmU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhOd2IyNXpaVUp5YjJGa1kyRnpkRk4wWVhSbE9pQjdJSFJvY21WaFpEb2dXeWRzYVhabFEyNTBKeXdnSjJOb0oxMGdmU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lIMHNYRzRnSUNBZ0lDQWdJQ0FnSUNCamFHRnVaMlZVYUhKbFlXUkVaWFJoYVd3NklIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWEYxWlhOMFVIVmliR2xqVTNSaGRHVTZJSHQ5TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGNYVmxjM1JRY21sMllYUmxVM1JoZEdVNklIc2dkR2h5WldGa09pQmJKMk5vSjEwZ2ZTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWE53YjI1elpVVnRhWFJUZEdGMFpUb2dleUIwYUhKbFlXUTZJQ2NxSnlCOUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxjM0J2Ym5ObFFuSnZZV1JqWVhOMFUzUmhkR1U2SUh0OUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUNBZ0lDQWdJR0ZrWkVacGJtUkRhR2xzWkRvZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxjWFZsYzNSUWRXSnNhV05UZEdGMFpUb2dlMzBzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WeGRXVnpkRkJ5YVhaaGRHVlRkR0YwWlRvZ2V5QjBhSEpsWVdRNklGc25ZMmduWFNCOUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxjM0J2Ym5ObFJXMXBkRk4wWVhSbE9pQjdJSFJvY21WaFpEb2dKeW9uSUgwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVnpjRzl1YzJWQ2NtOWhaR05oYzNSVGRHRjBaVG9nZTMwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdabVYwWTJoU1lXNXJPaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WeGRXVnpkRkIxWW14cFkxTjBZWFJsT2lCN2ZTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWEYxWlhOMFVISnBkbUYwWlZOMFlYUmxPaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHRndjRG9nV3lkbWFXNWtWSGx3WlNjc0lDZHliMjkwUTJnbkxDQW5hWE5TWVc1clJHVjBZV2xzVFc5a1pTZGRMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WemNHOXVjMlZGYldsMFUzUmhkR1U2SUhzZ2NtRnVhem9nSnlvbklIMHNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVZ6Y0c5dWMyVkNjbTloWkdOaGMzUlRkR0YwWlRvZ2UzMHNYRzRnSUNBZ0lDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnY0c5emREb2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsY1hWbGMzUlFkV0pzYVdOVGRHRjBaVG9nZTMwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVnhkV1Z6ZEZCeWFYWmhkR1ZUZEdGMFpUb2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMWMyVnlPaUJiSjNWcFpDY3NJQ2QxZEhsd1pTZGRMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCaGNIQTZJRnNuYVc1d2RYUlFiM04wSnl3Z0oybHVjSFYwVTNSaGJYQkpaQ2NzSUNkcGJuQjFkRU4xY25KbGJuUlVhVzFsSnl3Z0oyUnBjM0JVYUhKbFlXUlVlWEJsSjEwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJvY21WaFpEb2dXeWRtYVc1a1ZIbHdaU2NzSUNkMGFYUnNaU2NzSUNkd2NtOTBiMk52YkNjc0lDZGphQ2NzSUNkamFITW5MQ0FuWlcxdmRHbHZibk1uTENBblptRjJhV052Ymljc0lDZGpiMjUwWlc1MFZIbHdaU2RkTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVnpjRzl1YzJWRmJXbDBVM1JoZEdVNklIdDlMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsYzNCdmJuTmxRbkp2WVdSallYTjBVM1JoZEdVNklIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY0c5emRITTZJQ2NxSnl4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2h5WldGa09pQmJKMk5vSnl3Z0oyVnRiM1JwYjI1ekp5d2dKM0J2YzNSRGJuUW5YU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RYTmxjam9nV3lkMWFXUW5YU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lIVndaR0YwWlZSb2NtVmhaRk5sY25abGNrMWxkR0Z6T2lCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVnhkV1Z6ZEZCMVlteHBZMU4wWVhSbE9pQjdJSFJvY21WaFpEb2dXeWR6WlhKMlpYSk5aWFJoY3lkZElIMHNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVZ4ZFdWemRGQnlhWFpoZEdWVGRHRjBaVG9nZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhSEpsWVdRNklGc25hRzl6ZENjc0lDZHdjbTkwYjJOdmJDY3NJQ2RqYUNkZExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IxYzJWeU9pQmJKM1ZwWkNkZExDQXZMeURtaDdqbHY3VWdMbVp2Y2tWaFkyampnWlhqZ296amdhcmpnWVRqZ2E3amdhZmt1SURtbDZiamdaUGpnYTdsdmFMamdhdmt2NjdtcmFOY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxjM0J2Ym5ObFJXMXBkRk4wWVhSbE9pQjdJSFJvY21WaFpEb2dKeW9uSUgwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVnpjRzl1YzJWQ2NtOWhaR05oYzNSVGRHRjBaVG9nZTMwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdaR2x6WTI5dWJtVmpkRG9nZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGNYVmxjM1JRZFdKc2FXTlRkR0YwWlRvZ2UzMHNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVZ4ZFdWemRGQnlhWFpoZEdWVGRHRjBaVG9nZTMwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVnpjRzl1YzJWRmJXbDBVM1JoZEdVNklIdDlMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsYzNCdmJuTmxRbkp2WVdSallYTjBVM1JoZEdVNklIc2dkR2h5WldGa09pQmJKMnhwZG1WRGJuUW5MQ0FuWTJnblhTQjlMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lDQWdmVHRjYmlBZ0lDQjlYRzRnSUNBZ2MzUmhkR2xqSUdkbGRGTmxjWFZsYm1ObFFXTjBhVzl1VFdGd0tHMWxkR2h2WkNrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCemNHeHBkR1ZrSUQwZ2JXVjBhRzlrTG5Od2JHbDBLRk5sY1hWbGJtTmxMazFGVkVoUFJGOURUMHhQVGlrN1hHNGdJQ0FnSUNBZ0lHbG1JQ2h6Y0d4cGRHVmtJQ1ltSUhOd2JHbDBaV1JiTUYwcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSE5sY1hWbGJtTmxJRDBnVTNSeWFXNW5LSE53YkdsMFpXUmJNRjB1YzNCc2FYUW9KMXNuS1Zzd1hTazdYRzRnSUNBZ0lDQWdJQ0FnSUNCc1pYUWdZV04wYVc5dVZIbHdaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2h6Y0d4cGRHVmtXekJkTG1sdVpHVjRUMllvWUZza2UxTmxjWFZsYm1ObExrRlFTVjlTUlZGVlJWTlVYMVJaVUVWOVhXQXBJRDRnTUNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHRmpkR2x2YmxSNWNHVWdQU0JUWlhGMVpXNWpaUzVCVUVsZlVrVlJWVVZUVkY5VVdWQkZPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZV04wYVc5dVZIbHdaU0E5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lITndiR2wwWldSYk1GMHVhVzVrWlhoUFppaGdXeVI3VTJWeGRXVnVZMlV1UVZCSlgxSkZVMUJQVGxORlgxUlpVRVZmUlUxSlZIMWRZQ2tnUGlBd1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBL0lGTmxjWFZsYm1ObExrRlFTVjlTUlZOUVQwNVRSVjlVV1ZCRlgwVk5TVlJjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRG9nVTJWeGRXVnVZMlV1UVZCSlgxSkZVMUJQVGxORlgxUlpVRVZmUWxKUFFVUkRRVk5VTzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnWVdOMGFXOXVUbUZ0WlNBOUlGTjBjbWx1WnloemNHeHBkR1ZrV3pGZEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUI3SUhObGNYVmxibU5sTENCaFkzUnBiMjVVZVhCbExDQmhZM1JwYjI1T1lXMWxJSDA3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhSEp2ZHlBblJYSnliM0k2SUZObGNYVmxibU5sSUdkbGRGTmxjWFZsYm1ObFFXTjBhVzl1VFdGd0p6dGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNCemRHRjBhV01nZFhCa1lYUmxRMkZzYkdKaFkydEZlR1ZEYjI1a2FYUnBiMjVOWVhBb1lXTjBhVzl1VG1GdFpTa2dlMXh1SUNBZ0lDQWdJQ0JzWlhRZ1lXTjBhWFpsVW1WemNHOXVjMlZOWVhBZ1BTQjdJR1Z0YVhRNklIUnlkV1VzSUdKeWIyRmtZMkZ6ZERvZ2RISjFaU0I5TzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J6WlhGMVpXNWpaVTFoY0NBOUlGTmxjWFZsYm1ObExtMWhjRHRjYmlBZ0lDQWdJQ0FnYVdZZ0tITmxjWFZsYm1ObFRXRndXMkZqZEdsdmJrNWhiV1ZkS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JoWTNScGRtVlNaWE53YjI1elpVMWhjQzVsYldsMElEMGdJU2hQWW1wbFkzUXVhMlY1Y3loelpYRjFaVzVqWlUxaGNGdGhZM1JwYjI1T1lXMWxYUzV5WlhOd2IyNXpaVVZ0YVhSVGRHRjBaU2t1YkdWdVozUm9JRDRnTUNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JoWTNScGRtVlNaWE53YjI1elpVMWhjQzVpY205aFpHTmhjM1FnUFNBaEtFOWlhbVZqZEM1clpYbHpLSE5sY1hWbGJtTmxUV0Z3VzJGamRHbHZiazVoYldWZExuSmxjM0J2Ym5ObFFuSnZZV1JqWVhOMFUzUmhkR1VwTG14bGJtZDBhQ0ErSURBcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmhZM1JwZG1WU1pYTndiMjV6WlUxaGNEdGNiaUFnSUNCOVhHNGdJQ0FnYzNSaGRHbGpJR052Ym5abGNuUlRaWEoyWlhKVWIwRndhVWx2Vkhsd1pTaHBSbkpoYldWSlpDd2dZV04wYVc5dVZIbHdaU2tnZTF4dUlDQWdJQ0FnSUNCcFppQW9ZV04wYVc5dVZIbHdaUzVwYm1SbGVFOW1LR0FrZTFObGNYVmxibU5sTGtGUVNWOVRSVkJCVWtGVVJWOUpUMTlVV1ZCRlgxTlVRVkpVZlNSN1UyVnhkV1Z1WTJVdVFWQkpYMUpGVVZWRlUxUmZWRmxRUlgwa2UxTmxjWFZsYm1ObExrRlFTVjlUUlZCQlVrRlVSVjlKVDE5VVdWQkZYMFZPUkgxZ0tTQStQU0F3S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdVMlZ4ZFdWdVkyVXVRVkJKWDFKRlVWVkZVMVJmVkZsUVJUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JwWmlBb1lXTjBhVzl1Vkhsd1pTNXBibVJsZUU5bUtHQWtlMU5sY1hWbGJtTmxMa0ZRU1Y5VFJWQkJVa0ZVUlY5SlQxOVVXVkJGWDFOVVFWSlVmU1I3VTJWeGRXVnVZMlV1UVZCSlgxSkZVMUJQVGxORlgxUlpVRVZmUWxKUFFVUkRRVk5VZlNSN1UyVnhkV1Z1WTJVdVFWQkpYMU5GVUVGU1FWUkZYMGxQWDFSWlVFVmZSVTVFZldBcElENDlJREFwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQlRaWEYxWlc1alpTNUJVRWxmVWtWVFVFOU9VMFZmVkZsUVJWOUNVazlCUkVOQlUxUTdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnYVdZZ0tHRmpkR2x2YmxSNWNHVXVhVzVrWlhoUFppaGdKSHRUWlhGMVpXNWpaUzVCVUVsZlUwVlFRVkpCVkVWZlNVOWZWRmxRUlY5VFZFRlNWSDBrZTFObGNYVmxibU5sTGtGUVNWOVNSVk5RVDA1VFJWOVVXVkJGWDBWTlNWUjlKSHRUWlhGMVpXNWpaUzVCVUVsZlUwVlFRVkpCVkVWZlNVOWZWRmxRUlY5RlRrUjlZQ2tnUGoxY2JpQWdJQ0FnSUNBZ0lDQWdJREFwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQlRaWEYxWlc1alpTNUJVRWxmVWtWVFVFOU9VMFZmVkZsUVJWOUZUVWxVTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCVFpYRjFaVzVqWlM1QlVFbGZVMFZVVlZBN1hHNGdJQ0FnZlZ4dUlDQWdJSE4wWVhScFl5QmpiMjUyWlhKMFJYaDBWRzlEYkdsbGJuUkJZM1JwYjI1VWVYQmxLR2xHY21GdFpVbGtMQ0JoWTNScGIyNVVlWEJsS1NCN1hHNGdJQ0FnSUNBZ0lHRmpkR2x2YmxSNWNHVWdQU0JUWlhGMVpXNWpaUzVqYjI1MlpYSjBRWEJwVkc5RGJHbGxiblJCWTNScGIyNVVlWEJsS0dGamRHbHZibFI1Y0dVcE8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1lXTjBhVzl1Vkhsd1pUdGNiaUFnSUNCOVhHNGdJQ0FnYzNSaGRHbGpJR052Ym5abGNuUkJjR2xVYjBOc2FXVnVkRUZqZEdsdmJsUjVjR1VvWVdOMGFXOXVWSGx3WlNrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvWVdOMGFXOXVWSGx3WlM1cGJtUmxlRTltS0ZObGNYVmxibU5sTGtGUVNWOVVUMTlUUlZKV1JWSmZVa1ZSVlVWVFZDa2dQVDA5SURBcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJoWTNScGIyNVVlWEJsTG5KbGNHeGhZMlVvVTJWeGRXVnVZMlV1UVZCSlgxUlBYMU5GVWxaRlVsOVNSVkZWUlZOVUxDQlRaWEYxWlc1alpTNUJVRWxmVkU5ZlEweEpSVTVVWDFKRlVWVkZVMVFwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHbG1JQ2hoWTNScGIyNVVlWEJsTG1sdVpHVjRUMllvVTJWeGRXVnVZMlV1VTBWU1ZrVlNYMVJQWDBGUVNWOUZUVWxVS1NBOVBUMGdNQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHRmpkR2x2YmxSNWNHVXVjbVZ3YkdGalpTaFRaWEYxWlc1alpTNVRSVkpXUlZKZlZFOWZRVkJKWDBWTlNWUXNJRk5sY1hWbGJtTmxMa0ZRU1Y5VVQxOURURWxGVGxSZlJVMUpWQ2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2FXWWdLR0ZqZEdsdmJsUjVjR1V1YVc1a1pYaFBaaWhUWlhGMVpXNWpaUzVUUlZKV1JWSmZWRTlmUVZCSlgwSlNUMEZFUTBGVFZDa2dQVDA5SURBcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJoWTNScGIyNVVlWEJsTG5KbGNHeGhZMlVvVTJWeGRXVnVZMlV1VTBWU1ZrVlNYMVJQWDBGUVNWOUNVazlCUkVOQlUxUXNJRk5sY1hWbGJtTmxMa0ZRU1Y5VVQxOURURWxGVGxSZlFsSlBRVVJEUVZOVUtUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdZV04wYVc5dVZIbHdaVHRjYmlBZ0lDQjlYRzRnSUNBZ2MzUmhkR2xqSUdkbGRGSmxjWFZsYzNSVGRHRjBaU2hoWTNScGIyNU9ZVzFsTENCeVpXUjFlRk4wWVhSbExDQnlaWEYxWlhOMFVHRnlZVzF6S1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdWdVpIQnZhVzUwUzJWNUlEMGdZV04wYVc5dVRtRnRaUzV5WlhCc1lXTmxLRk5sY1hWbGJtTmxMa0ZRU1Y5VVQxOVRSVkpXUlZKZlVrVlJWVVZUVkN3Z0p5Y3BPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnpaWEYxWlc1alpVMWhjQ0E5SUZObGNYVmxibU5sTG0xaGNEdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2V5QnlaWEYxWlhOMFVIVmliR2xqVTNSaGRHVXNJSEpsY1hWbGMzUlFjbWwyWVhSbFUzUmhkR1VnZlNBOUlITmxjWFZsYm1ObFRXRndXMlZ1WkhCdmFXNTBTMlY1WFR0Y2JpQWdJQ0FnSUNBZ2JHVjBJSEpsY1hWbGMzUlRkR0YwWlNBOUlIdGNiaUFnSUNBZ0lDQWdJQ0FnSUZ0VFpYRjFaVzVqWlM1U1JVUlZXRjlCUTFSSlQwNWZTMFZaWFRvZ1pXNWtjRzlwYm5STFpYa3NYRzRnSUNBZ0lDQWdJSDA3WEc0Z0lDQWdJQ0FnSUU5aWFtVmpkQzVyWlhsektISmxjWFZsYzNSUWNtbDJZWFJsVTNSaGRHVXBMbVp2Y2tWaFkyZ29LSE4wWVhSbFMyVjVLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb0lYSmxjWFZsYzNSVGRHRjBaVnR6ZEdGMFpVdGxlVjBwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WeGRXVnpkRk4wWVhSbFczTjBZWFJsUzJWNVhTQTlJSHQ5TzF4dUlDQWdJQ0FnSUNBZ0lDQWdjbVZ4ZFdWemRGQnlhWFpoZEdWVGRHRjBaVnR6ZEdGMFpVdGxlVjB1Wm05eVJXRmphQ2dvWTI5c2RXMXVUbUZ0WlNrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNnaGNtVnhkV1Z6ZEZOMFlYUmxXM04wWVhSbFMyVjVYVnRqYjJ4MWJXNU9ZVzFsWFNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JzWlhRZ2RtRnNkV1VnUFNCeVpXUjFlRk4wWVhSbFczTjBZWFJsUzJWNVhWdGpiMngxYlc1T1lXMWxYVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSEpsY1hWbGMzUlFZWEpoYlhNZ0ppWWdjbVZ4ZFdWemRGQmhjbUZ0YzF0emRHRjBaVXRsZVYwZ0ppWWdjbVZ4ZFdWemRGQmhjbUZ0YzF0emRHRjBaVXRsZVYxYlkyOXNkVzF1VG1GdFpWMHBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFpoYkhWbElEMGdjbVZ4ZFdWemRGQmhjbUZ0YzF0emRHRjBaVXRsZVYxYlkyOXNkVzF1VG1GdFpWMDdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVZ4ZFdWemRGTjBZWFJsVzNOMFlYUmxTMlY1WFZ0amIyeDFiVzVPWVcxbFhTQTlJSFpoYkhWbE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJQ0FnVDJKcVpXTjBMbXRsZVhNb2NtVnhkV1Z6ZEZCMVlteHBZMU4wWVhSbEtTNW1iM0pGWVdOb0tDaHpkR0YwWlV0bGVTa2dQVDRnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0NGeVpYRjFaWE4wVTNSaGRHVmJjM1JoZEdWTFpYbGRLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsY1hWbGMzUlRkR0YwWlZ0emRHRjBaVXRsZVYwZ1BTQjdmVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxjWFZsYzNSUWRXSnNhV05UZEdGMFpWdHpkR0YwWlV0bGVWMHVabTl5UldGamFDZ29ZMjlzZFcxdVRtRnRaU2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2doY21WeGRXVnpkRk4wWVhSbFczTjBZWFJsUzJWNVhWdGpiMngxYlc1T1lXMWxYU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWEYxWlhOMFUzUmhkR1ZiYzNSaGRHVkxaWGxkVzJOdmJIVnRiazVoYldWZElEMGdjbVZ4ZFdWemRGQmhjbUZ0Y3p0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnlaWEYxWlhOMFUzUmhkR1U3WEc0Z0lDQWdmVnh1SUNBZ0lITjBZWFJwWXlCblpYUlNaWE53YjI1elpWTjBZWFJsS0hKbGMzQnZibk5sVkhsd1pTd2djbVZ4ZFdWemRGTjBZWFJsTENCMWNHUmhkR1ZUZEdGMFpTa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQmxibVJ3YjJsdWRFdGxlU0E5SUhKbGNYVmxjM1JUZEdGMFpTNTBlWEJsTzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J6WlhGMVpXNWpaVTFoY0NBOUlGTmxjWFZsYm1ObExtMWhjRHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdjbVZ6Y0c5dWMyVlRZMmhsYldFZ1BTQnpaWEYxWlc1alpVMWhjRnRsYm1Sd2IybHVkRXRsZVYxYllISmxjM0J2Ym5ObEpIdHlaWE53YjI1elpWUjVjR1Y5VTNSaGRHVmdYVHRjYmlBZ0lDQWdJQ0FnYkdWMElISmxjM0J2Ym5ObFUzUmhkR1VnUFNCN0lGdFRaWEYxWlc1alpTNVNSVVJWV0Y5QlExUkpUMDVmUzBWWlhUb2daVzVrY0c5cGJuUkxaWGtnZlR0Y2JpQWdJQ0FnSUNBZ1QySnFaV04wTG10bGVYTW9jbVZ6Y0c5dWMyVlRZMmhsYldFcExtWnZja1ZoWTJnb0tIVndaR0YwWlZOMFlYUmxTMlY1S1NBOVBpQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9kWEJrWVhSbFUzUmhkR1ZiZFhCa1lYUmxVM1JoZEdWTFpYbGRLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdZMjlzZFcxdVRtRnRaWE1nUFNCeVpYTndiMjV6WlZOamFHVnRZVnQxY0dSaGRHVlRkR0YwWlV0bGVWMDdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiR1YwSUhWd1pHRjBaVk4wWVhSbFZtRnNkV1VnUFNCMWNHUmhkR1ZUZEdGMFpWdDFjR1JoZEdWVGRHRjBaVXRsZVYwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2MzZHBkR05vSUNoMWNHUmhkR1ZUZEdGMFpWWmhiSFZsTG1OdmJuTjBjblZqZEc5eUxtNWhiV1VwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMkZ6WlNBbmJXOWtaV3duT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZFhCa1lYUmxVM1JoZEdWV1lXeDFaU0E5SUhWd1pHRjBaVk4wWVhSbFZtRnNkV1V1ZEc5S1UwOU9LQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JrWld4bGRHVWdkWEJrWVhSbFUzUmhkR1ZXWVd4MVpTNWZhV1E3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JrWld4bGRHVWdkWEJrWVhSbFUzUmhkR1ZXWVd4MVpTNWZYM1k3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0dOdmJIVnRiazVoYldWeklEMDlQU0FuS2ljcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WemNHOXVjMlZUZEdGMFpTQTlJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQzR1TG5KbGMzQnZibk5sVTNSaGRHVXNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmJkWEJrWVhSbFUzUmhkR1ZMWlhsZE9pQjFjR1JoZEdWVGRHRjBaVlpoYkhWbExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5TzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXNkVzF1VG1GdFpYTXVabTl5UldGamFDZ29ZMjlzZFcxdVRtRnRaU2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSFZ3WkdGMFpWTjBZWFJsVzNWd1pHRjBaVk4wWVhSbFMyVjVYVnRqYjJ4MWJXNU9ZVzFsWFNBaFBUMGdkVzVrWldacGJtVmtLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVnpjRzl1YzJWVGRHRjBaU0E5SUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTGk0dWNtVnpjRzl1YzJWVGRHRjBaU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdXM1Z3WkdGMFpWTjBZWFJsUzJWNVhUb2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTGk0dWNtVnpjRzl1YzJWVGRHRjBaVnQxY0dSaGRHVlRkR0YwWlV0bGVWMHNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JiWTI5c2RXMXVUbUZ0WlYwNklIVndaR0YwWlZOMFlYUmxXM1Z3WkdGMFpWTjBZWFJsUzJWNVhWdGpiMngxYlc1T1lXMWxYU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOU8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHliM2NnWUZORlVWVkZUa05GSUVWU1VrOVNPaUJPVDE5VlVFUkJWRVZmVTFSQlZFVmZRMDlNVlUxT1gwNUJUVVU2SUNSN2NtVnhkV1Z6ZEZOMFlYUmxMblI1Y0dWOU9pQWtlM1Z3WkdGMFpWTjBZWFJsUzJWNWZTNGtlMk52YkhWdGJrNWhiV1Y5WUR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdoeWIzY2dZRk5GVVZWRlRrTkZJRVZTVWs5U09pQk9UMTlWVUVSQlZFVmZVMVJCVkVWZlMwVlpPaUFrZTNKbGNYVmxjM1JUZEdGMFpTNTBlWEJsZlRvZ0pIdDFjR1JoZEdWVGRHRjBaVXRsZVgxZ08xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCOUtUdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlISmxjM0J2Ym5ObFUzUmhkR1U3WEc0Z0lDQWdmVnh1SUNBZ0lITjBZWFJwWXlCblpYUlNaWEYxWlhOMFFXTjBhVzl1VTNSaGRHVW9ZV04wYVc5dVRtRnRaU3dnY21WeGRXVnpkRkJoY21GdGN6RWdQU0J1ZFd4c0xDQnlaWEYxWlhOMFVHRnlZVzF6TWlBOUlHNTFiR3dwSUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLSFI1Y0dWdlppQnlaWEYxWlhOMFVHRnlZVzF6TVNBOVBUMGdKM04wY21sdVp5Y2dKaVlnY21WeGRXVnpkRkJoY21GdGN6SWdQVDA5SUc1MWJHd3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCN0lIUjVjR1U2SUdGamRHbHZiazVoYldVZ2ZUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JwWmlBb2RIbHdaVzltSUhKbGNYVmxjM1JRWVhKaGJYTXhJRDA5UFNBbmIySnFaV04wSnlBbUppQjBlWEJsYjJZZ2NtVnhkV1Z6ZEZCaGNtRnRjeklnUFQwOUlDZHZZbXBsWTNRbktTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZXlBdUxpNXlaWEYxWlhOMFVHRnlZVzF6TVN3Z0xpNHVjbVZ4ZFdWemRGQmhjbUZ0Y3pJc0lIUjVjR1U2SUdGamRHbHZiazVoYldVZ2ZUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JwWmlBb2RIbHdaVzltSUhKbGNYVmxjM1JRWVhKaGJYTXhJRDA5UFNBbmMzUnlhVzVuSnlBbUppQjBlWEJsYjJZZ2NtVnhkV1Z6ZEZCaGNtRnRjeklnUFQwOUlDZHZZbXBsWTNRbktTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZXlBdUxpNXlaWEYxWlhOMFVHRnlZVzF6TWl3Z2RIbHdaVG9nWVdOMGFXOXVUbUZ0WlNCOU8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjdJQzR1TG5KbGNYVmxjM1JRWVhKaGJYTXhMQ0IwZVhCbE9pQmhZM1JwYjI1T1lXMWxJSDA3WEc0Z0lDQWdmVnh1ZlZ4dVpYaHdiM0owY3k1a1pXWmhkV3gwSUQwZ1UyVnhkV1Z1WTJVN1hHNGlMQ0l2S2lwY2JpQXFJRWhsYkhCbGNuTXVYRzRnS2k5Y2JseHVkbUZ5SUhNZ1BTQXhNREF3TzF4dWRtRnlJRzBnUFNCeklDb2dOakE3WEc1MllYSWdhQ0E5SUcwZ0tpQTJNRHRjYm5aaGNpQmtJRDBnYUNBcUlESTBPMXh1ZG1GeUlIY2dQU0JrSUNvZ056dGNiblpoY2lCNUlEMGdaQ0FxSURNMk5TNHlOVHRjYmx4dUx5b3FYRzRnS2lCUVlYSnpaU0J2Y2lCbWIzSnRZWFFnZEdobElHZHBkbVZ1SUdCMllXeGdMbHh1SUNwY2JpQXFJRTl3ZEdsdmJuTTZYRzRnS2x4dUlDb2dJQzBnWUd4dmJtZGdJSFpsY21KdmMyVWdabTl5YldGMGRHbHVaeUJiWm1Gc2MyVmRYRzRnS2x4dUlDb2dRSEJoY21GdElIdFRkSEpwYm1kOFRuVnRZbVZ5ZlNCMllXeGNiaUFxSUVCd1lYSmhiU0I3VDJKcVpXTjBmU0JiYjNCMGFXOXVjMTFjYmlBcUlFQjBhSEp2ZDNNZ2UwVnljbTl5ZlNCMGFISnZkeUJoYmlCbGNuSnZjaUJwWmlCMllXd2dhWE1nYm05MElHRWdibTl1TFdWdGNIUjVJSE4wY21sdVp5QnZjaUJoSUc1MWJXSmxjbHh1SUNvZ1FISmxkSFZ5YmlCN1UzUnlhVzVuZkU1MWJXSmxjbjFjYmlBcUlFQmhjR2tnY0hWaWJHbGpYRzRnS2k5Y2JseHViVzlrZFd4bExtVjRjRzl5ZEhNZ1BTQm1kVzVqZEdsdmJpQW9kbUZzTENCdmNIUnBiMjV6S1NCN1hHNGdJRzl3ZEdsdmJuTWdQU0J2Y0hScGIyNXpJSHg4SUh0OU8xeHVJQ0IyWVhJZ2RIbHdaU0E5SUhSNWNHVnZaaUIyWVd3N1hHNGdJR2xtSUNoMGVYQmxJRDA5UFNBbmMzUnlhVzVuSnlBbUppQjJZV3d1YkdWdVozUm9JRDRnTUNrZ2UxeHVJQ0FnSUhKbGRIVnliaUJ3WVhKelpTaDJZV3dwTzF4dUlDQjlJR1ZzYzJVZ2FXWWdLSFI1Y0dVZ1BUMDlJQ2R1ZFcxaVpYSW5JQ1ltSUdselJtbHVhWFJsS0haaGJDa3BJSHRjYmlBZ0lDQnlaWFIxY200Z2IzQjBhVzl1Y3k1c2IyNW5JRDhnWm0xMFRHOXVaeWgyWVd3cElEb2dabTEwVTJodmNuUW9kbUZzS1R0Y2JpQWdmVnh1SUNCMGFISnZkeUJ1WlhjZ1JYSnliM0lvWEc0Z0lDQWdKM1poYkNCcGN5QnViM1FnWVNCdWIyNHRaVzF3ZEhrZ2MzUnlhVzVuSUc5eUlHRWdkbUZzYVdRZ2JuVnRZbVZ5TGlCMllXdzlKeUFyWEc0Z0lDQWdJQ0JLVTA5T0xuTjBjbWx1WjJsbWVTaDJZV3dwWEc0Z0lDazdYRzU5TzF4dVhHNHZLaXBjYmlBcUlGQmhjbk5sSUhSb1pTQm5hWFpsYmlCZ2MzUnlZQ0JoYm1RZ2NtVjBkWEp1SUcxcGJHeHBjMlZqYjI1a2N5NWNiaUFxWEc0Z0tpQkFjR0Z5WVcwZ2UxTjBjbWx1WjMwZ2MzUnlYRzRnS2lCQWNtVjBkWEp1SUh0T2RXMWlaWEo5WEc0Z0tpQkFZWEJwSUhCeWFYWmhkR1ZjYmlBcUwxeHVYRzVtZFc1amRHbHZiaUJ3WVhKelpTaHpkSElwSUh0Y2JpQWdjM1J5SUQwZ1UzUnlhVzVuS0hOMGNpazdYRzRnSUdsbUlDaHpkSEl1YkdWdVozUm9JRDRnTVRBd0tTQjdYRzRnSUNBZ2NtVjBkWEp1TzF4dUlDQjlYRzRnSUhaaGNpQnRZWFJqYUNBOUlDOWVLQzAvS0Q4NlhGeGtLeWsvWEZ3dVAxeGNaQ3NwSUNvb2JXbHNiR2x6WldOdmJtUnpQM3h0YzJWamN6OThiWE44YzJWamIyNWtjejk4YzJWamN6OThjM3h0YVc1MWRHVnpQM3h0YVc1elAzeHRmR2h2ZFhKelAzeG9jbk0vZkdoOFpHRjVjejk4Wkh4M1pXVnJjejk4ZDN4NVpXRnljejk4ZVhKelAzeDVLVDhrTDJrdVpYaGxZeWhjYmlBZ0lDQnpkSEpjYmlBZ0tUdGNiaUFnYVdZZ0tDRnRZWFJqYUNrZ2UxeHVJQ0FnSUhKbGRIVnlianRjYmlBZ2ZWeHVJQ0IyWVhJZ2JpQTlJSEJoY25ObFJteHZZWFFvYldGMFkyaGJNVjBwTzF4dUlDQjJZWElnZEhsd1pTQTlJQ2h0WVhSamFGc3lYU0I4ZkNBbmJYTW5LUzUwYjB4dmQyVnlRMkZ6WlNncE8xeHVJQ0J6ZDJsMFkyZ2dLSFI1Y0dVcElIdGNiaUFnSUNCallYTmxJQ2Q1WldGeWN5YzZYRzRnSUNBZ1kyRnpaU0FuZVdWaGNpYzZYRzRnSUNBZ1kyRnpaU0FuZVhKekp6cGNiaUFnSUNCallYTmxJQ2Q1Y2ljNlhHNGdJQ0FnWTJGelpTQW5lU2M2WEc0Z0lDQWdJQ0J5WlhSMWNtNGdiaUFxSUhrN1hHNGdJQ0FnWTJGelpTQW5kMlZsYTNNbk9seHVJQ0FnSUdOaGMyVWdKM2RsWldzbk9seHVJQ0FnSUdOaGMyVWdKM2NuT2x4dUlDQWdJQ0FnY21WMGRYSnVJRzRnS2lCM08xeHVJQ0FnSUdOaGMyVWdKMlJoZVhNbk9seHVJQ0FnSUdOaGMyVWdKMlJoZVNjNlhHNGdJQ0FnWTJGelpTQW5aQ2M2WEc0Z0lDQWdJQ0J5WlhSMWNtNGdiaUFxSUdRN1hHNGdJQ0FnWTJGelpTQW5hRzkxY25Nbk9seHVJQ0FnSUdOaGMyVWdKMmh2ZFhJbk9seHVJQ0FnSUdOaGMyVWdKMmh5Y3ljNlhHNGdJQ0FnWTJGelpTQW5hSEluT2x4dUlDQWdJR05oYzJVZ0oyZ25PbHh1SUNBZ0lDQWdjbVYwZFhKdUlHNGdLaUJvTzF4dUlDQWdJR05oYzJVZ0oyMXBiblYwWlhNbk9seHVJQ0FnSUdOaGMyVWdKMjFwYm5WMFpTYzZYRzRnSUNBZ1kyRnpaU0FuYldsdWN5YzZYRzRnSUNBZ1kyRnpaU0FuYldsdUp6cGNiaUFnSUNCallYTmxJQ2R0SnpwY2JpQWdJQ0FnSUhKbGRIVnliaUJ1SUNvZ2JUdGNiaUFnSUNCallYTmxJQ2R6WldOdmJtUnpKenBjYmlBZ0lDQmpZWE5sSUNkelpXTnZibVFuT2x4dUlDQWdJR05oYzJVZ0ozTmxZM01uT2x4dUlDQWdJR05oYzJVZ0ozTmxZeWM2WEc0Z0lDQWdZMkZ6WlNBbmN5YzZYRzRnSUNBZ0lDQnlaWFIxY200Z2JpQXFJSE03WEc0Z0lDQWdZMkZ6WlNBbmJXbHNiR2x6WldOdmJtUnpKenBjYmlBZ0lDQmpZWE5sSUNkdGFXeHNhWE5sWTI5dVpDYzZYRzRnSUNBZ1kyRnpaU0FuYlhObFkzTW5PbHh1SUNBZ0lHTmhjMlVnSjIxelpXTW5PbHh1SUNBZ0lHTmhjMlVnSjIxekp6cGNiaUFnSUNBZ0lISmxkSFZ5YmlCdU8xeHVJQ0FnSUdSbFptRjFiSFE2WEc0Z0lDQWdJQ0J5WlhSMWNtNGdkVzVrWldacGJtVmtPMXh1SUNCOVhHNTlYRzVjYmk4cUtseHVJQ29nVTJodmNuUWdabTl5YldGMElHWnZjaUJnYlhOZ0xseHVJQ3BjYmlBcUlFQndZWEpoYlNCN1RuVnRZbVZ5ZlNCdGMxeHVJQ29nUUhKbGRIVnliaUI3VTNSeWFXNW5mVnh1SUNvZ1FHRndhU0J3Y21sMllYUmxYRzRnS2k5Y2JseHVablZ1WTNScGIyNGdabTEwVTJodmNuUW9iWE1wSUh0Y2JpQWdkbUZ5SUcxelFXSnpJRDBnVFdGMGFDNWhZbk1vYlhNcE8xeHVJQ0JwWmlBb2JYTkJZbk1nUGowZ1pDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCTllYUm9Mbkp2ZFc1a0tHMXpJQzhnWkNrZ0t5QW5aQ2M3WEc0Z0lIMWNiaUFnYVdZZ0tHMXpRV0p6SUQ0OUlHZ3BJSHRjYmlBZ0lDQnlaWFIxY200Z1RXRjBhQzV5YjNWdVpDaHRjeUF2SUdncElDc2dKMmduTzF4dUlDQjlYRzRnSUdsbUlDaHRjMEZpY3lBK1BTQnRLU0I3WEc0Z0lDQWdjbVYwZFhKdUlFMWhkR2d1Y205MWJtUW9iWE1nTHlCdEtTQXJJQ2R0Snp0Y2JpQWdmVnh1SUNCcFppQW9iWE5CWW5NZ1BqMGdjeWtnZTF4dUlDQWdJSEpsZEhWeWJpQk5ZWFJvTG5KdmRXNWtLRzF6SUM4Z2N5a2dLeUFuY3ljN1hHNGdJSDFjYmlBZ2NtVjBkWEp1SUcxeklDc2dKMjF6Snp0Y2JuMWNibHh1THlvcVhHNGdLaUJNYjI1bklHWnZjbTFoZENCbWIzSWdZRzF6WUM1Y2JpQXFYRzRnS2lCQWNHRnlZVzBnZTA1MWJXSmxjbjBnYlhOY2JpQXFJRUJ5WlhSMWNtNGdlMU4wY21sdVozMWNiaUFxSUVCaGNHa2djSEpwZG1GMFpWeHVJQ292WEc1Y2JtWjFibU4wYVc5dUlHWnRkRXh2Ym1jb2JYTXBJSHRjYmlBZ2RtRnlJRzF6UVdKeklEMGdUV0YwYUM1aFluTW9iWE1wTzF4dUlDQnBaaUFvYlhOQlluTWdQajBnWkNrZ2UxeHVJQ0FnSUhKbGRIVnliaUJ3YkhWeVlXd29iWE1zSUcxelFXSnpMQ0JrTENBblpHRjVKeWs3WEc0Z0lIMWNiaUFnYVdZZ0tHMXpRV0p6SUQ0OUlHZ3BJSHRjYmlBZ0lDQnlaWFIxY200Z2NHeDFjbUZzS0cxekxDQnRjMEZpY3l3Z2FDd2dKMmh2ZFhJbktUdGNiaUFnZlZ4dUlDQnBaaUFvYlhOQlluTWdQajBnYlNrZ2UxeHVJQ0FnSUhKbGRIVnliaUJ3YkhWeVlXd29iWE1zSUcxelFXSnpMQ0J0TENBbmJXbHVkWFJsSnlrN1hHNGdJSDFjYmlBZ2FXWWdLRzF6UVdKeklENDlJSE1wSUh0Y2JpQWdJQ0J5WlhSMWNtNGdjR3gxY21Gc0tHMXpMQ0J0YzBGaWN5d2djeXdnSjNObFkyOXVaQ2NwTzF4dUlDQjlYRzRnSUhKbGRIVnliaUJ0Y3lBcklDY2diWE1uTzF4dWZWeHVYRzR2S2lwY2JpQXFJRkJzZFhKaGJHbDZZWFJwYjI0Z2FHVnNjR1Z5TGx4dUlDb3ZYRzVjYm1aMWJtTjBhVzl1SUhCc2RYSmhiQ2h0Y3l3Z2JYTkJZbk1zSUc0c0lHNWhiV1VwSUh0Y2JpQWdkbUZ5SUdselVHeDFjbUZzSUQwZ2JYTkJZbk1nUGowZ2JpQXFJREV1TlR0Y2JpQWdjbVYwZFhKdUlFMWhkR2d1Y205MWJtUW9iWE1nTHlCdUtTQXJJQ2NnSnlBcklHNWhiV1VnS3lBb2FYTlFiSFZ5WVd3Z1B5QW5jeWNnT2lBbkp5azdYRzU5WEc0aUxDSXZLaUJsYzJ4cGJuUXRaVzUySUdKeWIzZHpaWElnS2k5Y2JseHVMeW9xWEc0Z0tpQlVhR2x6SUdseklIUm9aU0IzWldJZ1luSnZkM05sY2lCcGJYQnNaVzFsYm5SaGRHbHZiaUJ2WmlCZ1pHVmlkV2NvS1dBdVhHNGdLaTljYmx4dVpYaHdiM0owY3k1bWIzSnRZWFJCY21keklEMGdabTl5YldGMFFYSm5jenRjYm1WNGNHOXlkSE11YzJGMlpTQTlJSE5oZG1VN1hHNWxlSEJ2Y25SekxteHZZV1FnUFNCc2IyRmtPMXh1Wlhod2IzSjBjeTUxYzJWRGIyeHZjbk1nUFNCMWMyVkRiMnh2Y25NN1hHNWxlSEJ2Y25SekxuTjBiM0poWjJVZ1BTQnNiMk5oYkhOMGIzSmhaMlVvS1R0Y2JtVjRjRzl5ZEhNdVpHVnpkSEp2ZVNBOUlDZ29LU0E5UGlCN1hHNWNkR3hsZENCM1lYSnVaV1FnUFNCbVlXeHpaVHRjYmx4dVhIUnlaWFIxY200Z0tDa2dQVDRnZTF4dVhIUmNkR2xtSUNnaGQyRnlibVZrS1NCN1hHNWNkRngwWEhSM1lYSnVaV1FnUFNCMGNuVmxPMXh1WEhSY2RGeDBZMjl1YzI5c1pTNTNZWEp1S0NkSmJuTjBZVzVqWlNCdFpYUm9iMlFnWUdSbFluVm5MbVJsYzNSeWIza29LV0FnYVhNZ1pHVndjbVZqWVhSbFpDQmhibVFnYm04Z2JHOXVaMlZ5SUdSdlpYTWdZVzU1ZEdocGJtY3VJRWwwSUhkcGJHd2dZbVVnY21WdGIzWmxaQ0JwYmlCMGFHVWdibVY0ZENCdFlXcHZjaUIyWlhKemFXOXVJRzltSUdCa1pXSjFaMkF1SnlrN1hHNWNkRngwZlZ4dVhIUjlPMXh1ZlNrb0tUdGNibHh1THlvcVhHNGdLaUJEYjJ4dmNuTXVYRzRnS2k5Y2JseHVaWGh3YjNKMGN5NWpiMnh2Y25NZ1BTQmJYRzVjZENjak1EQXdNRU5ESnl4Y2JseDBKeU13TURBd1JrWW5MRnh1WEhRbkl6QXdNek5EUXljc1hHNWNkQ2NqTURBek0wWkdKeXhjYmx4MEp5TXdNRFkyUTBNbkxGeHVYSFFuSXpBd05qWkdSaWNzWEc1Y2RDY2pNREE1T1VOREp5eGNibHgwSnlNd01EazVSa1luTEZ4dVhIUW5JekF3UTBNd01DY3NYRzVjZENjak1EQkRRek16Snl4Y2JseDBKeU13TUVORE5qWW5MRnh1WEhRbkl6QXdRME01T1Njc1hHNWNkQ2NqTURCRFEwTkRKeXhjYmx4MEp5TXdNRU5EUmtZbkxGeHVYSFFuSXpNek1EQkRReWNzWEc1Y2RDY2pNek13TUVaR0p5eGNibHgwSnlNek16TXpRME1uTEZ4dVhIUW5Jek16TXpOR1JpY3NYRzVjZENjak16TTJOa05ESnl4Y2JseDBKeU16TXpZMlJrWW5MRnh1WEhRbkl6TXpPVGxEUXljc1hHNWNkQ2NqTXpNNU9VWkdKeXhjYmx4MEp5TXpNME5ETURBbkxGeHVYSFFuSXpNelEwTXpNeWNzWEc1Y2RDY2pNek5EUXpZMkp5eGNibHgwSnlNek0wTkRPVGtuTEZ4dVhIUW5Jek16UTBORFF5Y3NYRzVjZENjak16TkRRMFpHSnl4Y2JseDBKeU0yTmpBd1EwTW5MRnh1WEhRbkl6WTJNREJHUmljc1hHNWNkQ2NqTmpZek0wTkRKeXhjYmx4MEp5TTJOak16UmtZbkxGeHVYSFFuSXpZMlEwTXdNQ2NzWEc1Y2RDY2pOalpEUXpNekp5eGNibHgwSnlNNU9UQXdRME1uTEZ4dVhIUW5Jems1TURCR1JpY3NYRzVjZENjak9Ua3pNME5ESnl4Y2JseDBKeU01T1RNelJrWW5MRnh1WEhRbkl6azVRME13TUNjc1hHNWNkQ2NqT1RsRFF6TXpKeXhjYmx4MEp5TkRRekF3TURBbkxGeHVYSFFuSTBORE1EQXpNeWNzWEc1Y2RDY2pRME13TURZMkp5eGNibHgwSnlORFF6QXdPVGtuTEZ4dVhIUW5JME5ETURCRFF5Y3NYRzVjZENjalEwTXdNRVpHSnl4Y2JseDBKeU5EUXpNek1EQW5MRnh1WEhRbkkwTkRNek16TXljc1hHNWNkQ2NqUTBNek16WTJKeXhjYmx4MEp5TkRRek16T1RrbkxGeHVYSFFuSTBORE16TkRReWNzWEc1Y2RDY2pRME16TTBaR0p5eGNibHgwSnlORFF6WTJNREFuTEZ4dVhIUW5JME5ETmpZek15Y3NYRzVjZENjalEwTTVPVEF3Snl4Y2JseDBKeU5EUXprNU16TW5MRnh1WEhRbkkwTkRRME13TUNjc1hHNWNkQ2NqUTBORFF6TXpKeXhjYmx4MEp5TkdSakF3TURBbkxGeHVYSFFuSTBaR01EQXpNeWNzWEc1Y2RDY2pSa1l3TURZMkp5eGNibHgwSnlOR1JqQXdPVGtuTEZ4dVhIUW5JMFpHTURCRFF5Y3NYRzVjZENjalJrWXdNRVpHSnl4Y2JseDBKeU5HUmpNek1EQW5MRnh1WEhRbkkwWkdNek16TXljc1hHNWNkQ2NqUmtZek16WTJKeXhjYmx4MEp5TkdSak16T1RrbkxGeHVYSFFuSTBaR016TkRReWNzWEc1Y2RDY2pSa1l6TTBaR0p5eGNibHgwSnlOR1JqWTJNREFuTEZ4dVhIUW5JMFpHTmpZek15Y3NYRzVjZENjalJrWTVPVEF3Snl4Y2JseDBKeU5HUmprNU16TW5MRnh1WEhRbkkwWkdRME13TUNjc1hHNWNkQ2NqUmtaRFF6TXpKMXh1WFR0Y2JseHVMeW9xWEc0Z0tpQkRkWEp5Wlc1MGJIa2diMjVzZVNCWFpXSkxhWFF0WW1GelpXUWdWMlZpSUVsdWMzQmxZM1J2Y25Nc0lFWnBjbVZtYjNnZ1BqMGdkak14TEZ4dUlDb2dZVzVrSUhSb1pTQkdhWEpsWW5WbklHVjRkR1Z1YzJsdmJpQW9ZVzU1SUVacGNtVm1iM2dnZG1WeWMybHZiaWtnWVhKbElHdHViM2R1WEc0Z0tpQjBieUJ6ZFhCd2IzSjBJRndpSldOY0lpQkRVMU1nWTNWemRHOXRhWHBoZEdsdmJuTXVYRzRnS2x4dUlDb2dWRTlFVHpvZ1lXUmtJR0VnWUd4dlkyRnNVM1J2Y21GblpXQWdkbUZ5YVdGaWJHVWdkRzhnWlhod2JHbGphWFJzZVNCbGJtRmliR1V2WkdsellXSnNaU0JqYjJ4dmNuTmNiaUFxTDF4dVhHNHZMeUJsYzJ4cGJuUXRaR2x6WVdKc1pTMXVaWGgwTFd4cGJtVWdZMjl0Y0d4bGVHbDBlVnh1Wm5WdVkzUnBiMjRnZFhObFEyOXNiM0p6S0NrZ2UxeHVYSFF2THlCT1Fqb2dTVzRnWVc0Z1JXeGxZM1J5YjI0Z2NISmxiRzloWkNCelkzSnBjSFFzSUdSdlkzVnRaVzUwSUhkcGJHd2dZbVVnWkdWbWFXNWxaQ0JpZFhRZ2JtOTBJR1oxYkd4NVhHNWNkQzh2SUdsdWFYUnBZV3hwZW1Wa0xpQlRhVzVqWlNCM1pTQnJibTkzSUhkbEozSmxJR2x1SUVOb2NtOXRaU3dnZDJVbmJHd2dhblZ6ZENCa1pYUmxZM1FnZEdocGN5QmpZWE5sWEc1Y2RDOHZJR1Y0Y0d4cFkybDBiSGxjYmx4MGFXWWdLSFI1Y0dWdlppQjNhVzVrYjNjZ0lUMDlJQ2QxYm1SbFptbHVaV1FuSUNZbUlIZHBibVJ2ZHk1d2NtOWpaWE56SUNZbUlDaDNhVzVrYjNjdWNISnZZMlZ6Y3k1MGVYQmxJRDA5UFNBbmNtVnVaR1Z5WlhJbklIeDhJSGRwYm1SdmR5NXdjbTlqWlhOekxsOWZibmRxY3lrcElIdGNibHgwWEhSeVpYUjFjbTRnZEhKMVpUdGNibHgwZlZ4dVhHNWNkQzh2SUVsdWRHVnlibVYwSUVWNGNHeHZjbVZ5SUdGdVpDQkZaR2RsSUdSdklHNXZkQ0J6ZFhCd2IzSjBJR052Ykc5eWN5NWNibHgwYVdZZ0tIUjVjR1Z2WmlCdVlYWnBaMkYwYjNJZ0lUMDlJQ2QxYm1SbFptbHVaV1FuSUNZbUlHNWhkbWxuWVhSdmNpNTFjMlZ5UVdkbGJuUWdKaVlnYm1GMmFXZGhkRzl5TG5WelpYSkJaMlZ1ZEM1MGIweHZkMlZ5UTJGelpTZ3BMbTFoZEdOb0tDOG9aV1JuWlh4MGNtbGtaVzUwS1Z4Y0x5aGNYR1FyS1M4cEtTQjdYRzVjZEZ4MGNtVjBkWEp1SUdaaGJITmxPMXh1WEhSOVhHNWNibHgwYkdWMElHMDdYRzVjYmx4MEx5OGdTWE1nZDJWaWEybDBQeUJvZEhSd09pOHZjM1JoWTJ0dmRtVnlabXh2ZHk1amIyMHZZUzh4TmpRMU9UWXdOaTh6TnpZM056TmNibHgwTHk4Z1pHOWpkVzFsYm5RZ2FYTWdkVzVrWldacGJtVmtJR2x1SUhKbFlXTjBMVzVoZEdsMlpUb2dhSFIwY0hNNkx5OW5hWFJvZFdJdVkyOXRMMlpoWTJWaWIyOXJMM0psWVdOMExXNWhkR2wyWlM5d2RXeHNMekUyTXpKY2JseDBjbVYwZFhKdUlDaDBlWEJsYjJZZ1pHOWpkVzFsYm5RZ0lUMDlJQ2QxYm1SbFptbHVaV1FuSUNZbUlHUnZZM1Z0Wlc1MExtUnZZM1Z0Wlc1MFJXeGxiV1Z1ZENBbUppQmtiMk4xYldWdWRDNWtiMk4xYldWdWRFVnNaVzFsYm5RdWMzUjViR1VnSmlZZ1pHOWpkVzFsYm5RdVpHOWpkVzFsYm5SRmJHVnRaVzUwTG5OMGVXeGxMbGRsWW10cGRFRndjR1ZoY21GdVkyVXBJSHg4WEc1Y2RGeDBMeThnU1hNZ1ptbHlaV0oxWno4Z2FIUjBjRG92TDNOMFlXTnJiM1psY21ac2IzY3VZMjl0TDJFdk16azRNVEl3THpNM05qYzNNMXh1WEhSY2RDaDBlWEJsYjJZZ2QybHVaRzkzSUNFOVBTQW5kVzVrWldacGJtVmtKeUFtSmlCM2FXNWtiM2N1WTI5dWMyOXNaU0FtSmlBb2QybHVaRzkzTG1OdmJuTnZiR1V1Wm1seVpXSjFaeUI4ZkNBb2QybHVaRzkzTG1OdmJuTnZiR1V1WlhoalpYQjBhVzl1SUNZbUlIZHBibVJ2ZHk1amIyNXpiMnhsTG5SaFlteGxLU2twSUh4OFhHNWNkRngwTHk4Z1NYTWdabWx5WldadmVDQStQU0IyTXpFL1hHNWNkRngwTHk4Z2FIUjBjSE02THk5a1pYWmxiRzl3WlhJdWJXOTZhV3hzWVM1dmNtY3ZaVzR0VlZNdlpHOWpjeTlVYjI5c2N5OVhaV0pmUTI5dWMyOXNaU05UZEhsc2FXNW5YMjFsYzNOaFoyVnpYRzVjZEZ4MEtIUjVjR1Z2WmlCdVlYWnBaMkYwYjNJZ0lUMDlJQ2QxYm1SbFptbHVaV1FuSUNZbUlHNWhkbWxuWVhSdmNpNTFjMlZ5UVdkbGJuUWdKaVlnS0cwZ1BTQnVZWFpwWjJGMGIzSXVkWE5sY2tGblpXNTBMblJ2VEc5M1pYSkRZWE5sS0NrdWJXRjBZMmdvTDJacGNtVm1iM2hjWEM4b1hGeGtLeWt2S1NrZ0ppWWdjR0Z5YzJWSmJuUW9iVnN4WFN3Z01UQXBJRDQ5SURNeEtTQjhmRnh1WEhSY2RDOHZJRVJ2ZFdKc1pTQmphR1ZqYXlCM1pXSnJhWFFnYVc0Z2RYTmxja0ZuWlc1MElHcDFjM1FnYVc0Z1kyRnpaU0IzWlNCaGNtVWdhVzRnWVNCM2IzSnJaWEpjYmx4MFhIUW9kSGx3Wlc5bUlHNWhkbWxuWVhSdmNpQWhQVDBnSjNWdVpHVm1hVzVsWkNjZ0ppWWdibUYyYVdkaGRHOXlMblZ6WlhKQloyVnVkQ0FtSmlCdVlYWnBaMkYwYjNJdWRYTmxja0ZuWlc1MExuUnZURzkzWlhKRFlYTmxLQ2t1YldGMFkyZ29MMkZ3Y0d4bGQyVmlhMmwwWEZ3dktGeGNaQ3NwTHlrcE8xeHVmVnh1WEc0dktpcGNiaUFxSUVOdmJHOXlhWHBsSUd4dlp5QmhjbWQxYldWdWRITWdhV1lnWlc1aFlteGxaQzVjYmlBcVhHNGdLaUJBWVhCcElIQjFZbXhwWTF4dUlDb3ZYRzVjYm1aMWJtTjBhVzl1SUdadmNtMWhkRUZ5WjNNb1lYSm5jeWtnZTF4dVhIUmhjbWR6V3pCZElEMGdLSFJvYVhNdWRYTmxRMjlzYjNKeklEOGdKeVZqSnlBNklDY25LU0FyWEc1Y2RGeDBkR2hwY3k1dVlXMWxjM0JoWTJVZ0sxeHVYSFJjZENoMGFHbHpMblZ6WlVOdmJHOXljeUEvSUNjZ0pXTW5JRG9nSnlBbktTQXJYRzVjZEZ4MFlYSm5jMXN3WFNBclhHNWNkRngwS0hSb2FYTXVkWE5sUTI5c2IzSnpJRDhnSnlWaklDY2dPaUFuSUNjcElDdGNibHgwWEhRbkt5Y2dLeUJ0YjJSMWJHVXVaWGh3YjNKMGN5NW9kVzFoYm1sNlpTaDBhR2x6TG1ScFptWXBPMXh1WEc1Y2RHbG1JQ2doZEdocGN5NTFjMlZEYjJ4dmNuTXBJSHRjYmx4MFhIUnlaWFIxY200N1hHNWNkSDFjYmx4dVhIUmpiMjV6ZENCaklEMGdKMk52Ykc5eU9pQW5JQ3NnZEdocGN5NWpiMnh2Y2p0Y2JseDBZWEpuY3k1emNHeHBZMlVvTVN3Z01Dd2dZeXdnSjJOdmJHOXlPaUJwYm1obGNtbDBKeWs3WEc1Y2JseDBMeThnVkdobElHWnBibUZzSUZ3aUpXTmNJaUJwY3lCemIyMWxkMmhoZENCMGNtbGphM2tzSUdKbFkyRjFjMlVnZEdobGNtVWdZMjkxYkdRZ1ltVWdiM1JvWlhKY2JseDBMeThnWVhKbmRXMWxiblJ6SUhCaGMzTmxaQ0JsYVhSb1pYSWdZbVZtYjNKbElHOXlJR0ZtZEdWeUlIUm9aU0FsWXl3Z2MyOGdkMlVnYm1WbFpDQjBiMXh1WEhRdkx5Qm1hV2QxY21VZ2IzVjBJSFJvWlNCamIzSnlaV04wSUdsdVpHVjRJSFJ2SUdsdWMyVnlkQ0IwYUdVZ1ExTlRJR2x1ZEc5Y2JseDBiR1YwSUdsdVpHVjRJRDBnTUR0Y2JseDBiR1YwSUd4aGMzUkRJRDBnTUR0Y2JseDBZWEpuYzFzd1hTNXlaWEJzWVdObEtDOGxXMkV0ZWtFdFdpVmRMMmNzSUcxaGRHTm9JRDArSUh0Y2JseDBYSFJwWmlBb2JXRjBZMmdnUFQwOUlDY2xKU2NwSUh0Y2JseDBYSFJjZEhKbGRIVnlianRjYmx4MFhIUjlYRzVjZEZ4MGFXNWtaWGdyS3p0Y2JseDBYSFJwWmlBb2JXRjBZMmdnUFQwOUlDY2xZeWNwSUh0Y2JseDBYSFJjZEM4dklGZGxJRzl1YkhrZ1lYSmxJR2x1ZEdWeVpYTjBaV1FnYVc0Z2RHaGxJQ3BzWVhOMEtpQWxZMXh1WEhSY2RGeDBMeThnS0hSb1pTQjFjMlZ5SUcxaGVTQm9ZWFpsSUhCeWIzWnBaR1ZrSUhSb1pXbHlJRzkzYmlsY2JseDBYSFJjZEd4aGMzUkRJRDBnYVc1a1pYZzdYRzVjZEZ4MGZWeHVYSFI5S1R0Y2JseHVYSFJoY21kekxuTndiR2xqWlNoc1lYTjBReXdnTUN3Z1l5azdYRzU5WEc1Y2JpOHFLbHh1SUNvZ1NXNTJiMnRsY3lCZ1kyOXVjMjlzWlM1a1pXSjFaeWdwWUNCM2FHVnVJR0YyWVdsc1lXSnNaUzVjYmlBcUlFNXZMVzl3SUhkb1pXNGdZR052Ym5OdmJHVXVaR1ZpZFdkZ0lHbHpJRzV2ZENCaElGd2lablZ1WTNScGIyNWNJaTVjYmlBcUlFbG1JR0JqYjI1emIyeGxMbVJsWW5WbllDQnBjeUJ1YjNRZ1lYWmhhV3hoWW14bExDQm1ZV3hzY3lCaVlXTnJYRzRnS2lCMGJ5QmdZMjl1YzI5c1pTNXNiMmRnTGx4dUlDcGNiaUFxSUVCaGNHa2djSFZpYkdsalhHNGdLaTljYm1WNGNHOXlkSE11Ykc5bklEMGdZMjl1YzI5c1pTNWtaV0oxWnlCOGZDQmpiMjV6YjJ4bExteHZaeUI4ZkNBb0tDa2dQVDRnZTMwcE8xeHVYRzR2S2lwY2JpQXFJRk5oZG1VZ1lHNWhiV1Z6Y0dGalpYTmdMbHh1SUNwY2JpQXFJRUJ3WVhKaGJTQjdVM1J5YVc1bmZTQnVZVzFsYzNCaFkyVnpYRzRnS2lCQVlYQnBJSEJ5YVhaaGRHVmNiaUFxTDF4dVpuVnVZM1JwYjI0Z2MyRjJaU2h1WVcxbGMzQmhZMlZ6S1NCN1hHNWNkSFJ5ZVNCN1hHNWNkRngwYVdZZ0tHNWhiV1Z6Y0dGalpYTXBJSHRjYmx4MFhIUmNkR1Y0Y0c5eWRITXVjM1J2Y21GblpTNXpaWFJKZEdWdEtDZGtaV0oxWnljc0lHNWhiV1Z6Y0dGalpYTXBPMXh1WEhSY2RIMGdaV3h6WlNCN1hHNWNkRngwWEhSbGVIQnZjblJ6TG5OMGIzSmhaMlV1Y21WdGIzWmxTWFJsYlNnblpHVmlkV2NuS1R0Y2JseDBYSFI5WEc1Y2RIMGdZMkYwWTJnZ0tHVnljbTl5S1NCN1hHNWNkRngwTHk4Z1UzZGhiR3h2ZDF4dVhIUmNkQzh2SUZoWVdDQW9RRkZwZUMwcElITm9iM1ZzWkNCM1pTQmlaU0JzYjJkbmFXNW5JSFJvWlhObFAxeHVYSFI5WEc1OVhHNWNiaThxS2x4dUlDb2dURzloWkNCZ2JtRnRaWE53WVdObGMyQXVYRzRnS2x4dUlDb2dRSEpsZEhWeWJpQjdVM1J5YVc1bmZTQnlaWFIxY201eklIUm9aU0J3Y21WMmFXOTFjMng1SUhCbGNuTnBjM1JsWkNCa1pXSjFaeUJ0YjJSbGMxeHVJQ29nUUdGd2FTQndjbWwyWVhSbFhHNGdLaTljYm1aMWJtTjBhVzl1SUd4dllXUW9LU0I3WEc1Y2RHeGxkQ0J5TzF4dVhIUjBjbmtnZTF4dVhIUmNkSElnUFNCbGVIQnZjblJ6TG5OMGIzSmhaMlV1WjJWMFNYUmxiU2duWkdWaWRXY25LVHRjYmx4MGZTQmpZWFJqYUNBb1pYSnliM0lwSUh0Y2JseDBYSFF2THlCVGQyRnNiRzkzWEc1Y2RGeDBMeThnV0ZoWUlDaEFVV2w0TFNrZ2MyaHZkV3hrSUhkbElHSmxJR3h2WjJkcGJtY2dkR2hsYzJVL1hHNWNkSDFjYmx4dVhIUXZMeUJKWmlCa1pXSjFaeUJwYzI0bmRDQnpaWFFnYVc0Z1RGTXNJR0Z1WkNCM1pTZHlaU0JwYmlCRmJHVmpkSEp2Yml3Z2RISjVJSFJ2SUd4dllXUWdKRVJGUWxWSFhHNWNkR2xtSUNnaGNpQW1KaUIwZVhCbGIyWWdjSEp2WTJWemN5QWhQVDBnSjNWdVpHVm1hVzVsWkNjZ0ppWWdKMlZ1ZGljZ2FXNGdjSEp2WTJWemN5a2dlMXh1WEhSY2RISWdQU0J3Y205alpYTnpMbVZ1ZGk1RVJVSlZSenRjYmx4MGZWeHVYRzVjZEhKbGRIVnliaUJ5TzF4dWZWeHVYRzR2S2lwY2JpQXFJRXh2WTJGc2MzUnZjbUZuWlNCaGRIUmxiWEIwY3lCMGJ5QnlaWFIxY200Z2RHaGxJR3h2WTJGc2MzUnZjbUZuWlM1Y2JpQXFYRzRnS2lCVWFHbHpJR2x6SUc1bFkyVnpjMkZ5ZVNCaVpXTmhkWE5sSUhOaFptRnlhU0IwYUhKdmQzTmNiaUFxSUhkb1pXNGdZU0IxYzJWeUlHUnBjMkZpYkdWeklHTnZiMnRwWlhNdmJHOWpZV3h6ZEc5eVlXZGxYRzRnS2lCaGJtUWdlVzkxSUdGMGRHVnRjSFFnZEc4Z1lXTmpaWE56SUdsMExseHVJQ3BjYmlBcUlFQnlaWFIxY200Z2UweHZZMkZzVTNSdmNtRm5aWDFjYmlBcUlFQmhjR2tnY0hKcGRtRjBaVnh1SUNvdlhHNWNibVoxYm1OMGFXOXVJR3h2WTJGc2MzUnZjbUZuWlNncElIdGNibHgwZEhKNUlIdGNibHgwWEhRdkx5QlVWazFNUzJsMElDaEJjSEJzWlNCVVZpQktVeUJTZFc1MGFXMWxLU0JrYjJWeklHNXZkQ0JvWVhabElHRWdkMmx1Wkc5M0lHOWlhbVZqZEN3Z2FuVnpkQ0JzYjJOaGJGTjBiM0poWjJVZ2FXNGdkR2hsSUdkc2IySmhiQ0JqYjI1MFpYaDBYRzVjZEZ4MEx5OGdWR2hsSUVKeWIzZHpaWElnWVd4emJ5Qm9ZWE1nYkc5allXeFRkRzl5WVdkbElHbHVJSFJvWlNCbmJHOWlZV3dnWTI5dWRHVjRkQzVjYmx4MFhIUnlaWFIxY200Z2JHOWpZV3hUZEc5eVlXZGxPMXh1WEhSOUlHTmhkR05vSUNobGNuSnZjaWtnZTF4dVhIUmNkQzh2SUZOM1lXeHNiM2RjYmx4MFhIUXZMeUJZV0ZnZ0tFQlJhWGd0S1NCemFHOTFiR1FnZDJVZ1ltVWdiRzluWjJsdVp5QjBhR1Z6WlQ5Y2JseDBmVnh1ZlZ4dVhHNXRiMlIxYkdVdVpYaHdiM0owY3lBOUlISmxjWFZwY21Vb0p5NHZZMjl0Ylc5dUp5a29aWGh3YjNKMGN5azdYRzVjYm1OdmJuTjBJSHRtYjNKdFlYUjBaWEp6ZlNBOUlHMXZaSFZzWlM1bGVIQnZjblJ6TzF4dVhHNHZLaXBjYmlBcUlFMWhjQ0FsYWlCMGJ5QmdTbE5QVGk1emRISnBibWRwWm5rb0tXQXNJSE5wYm1ObElHNXZJRmRsWWlCSmJuTndaV04wYjNKeklHUnZJSFJvWVhRZ1lua2daR1ZtWVhWc2RDNWNiaUFxTDF4dVhHNW1iM0p0WVhSMFpYSnpMbW9nUFNCbWRXNWpkR2x2YmlBb2Rpa2dlMXh1WEhSMGNua2dlMXh1WEhSY2RISmxkSFZ5YmlCS1UwOU9Mbk4wY21sdVoybG1lU2gyS1R0Y2JseDBmU0JqWVhSamFDQW9aWEp5YjNJcElIdGNibHgwWEhSeVpYUjFjbTRnSjF0VmJtVjRjR1ZqZEdWa1NsTlBUbEJoY25ObFJYSnliM0pkT2lBbklDc2daWEp5YjNJdWJXVnpjMkZuWlR0Y2JseDBmVnh1ZlR0Y2JpSXNJbHdpZFhObElITjBjbWxqZEZ3aU8xeHVkbUZ5SUY5ZmFXMXdiM0owUkdWbVlYVnNkQ0E5SUNoMGFHbHpJQ1ltSUhSb2FYTXVYMTlwYlhCdmNuUkVaV1poZFd4MEtTQjhmQ0JtZFc1amRHbHZiaUFvYlc5a0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUNodGIyUWdKaVlnYlc5a0xsOWZaWE5OYjJSMWJHVXBJRDhnYlc5a0lEb2dleUJjSW1SbFptRjFiSFJjSWpvZ2JXOWtJSDA3WEc1OU8xeHVUMkpxWldOMExtUmxabWx1WlZCeWIzQmxjblI1S0dWNGNHOXlkSE1zSUZ3aVgxOWxjMDF2WkhWc1pWd2lMQ0I3SUhaaGJIVmxPaUIwY25WbElIMHBPMXh1Wlhod2IzSjBjeTUxY213Z1BTQjJiMmxrSURBN1hHNWpiMjV6ZENCbGJtZHBibVZmYVc5ZlkyeHBaVzUwWHpFZ1BTQnlaWEYxYVhKbEtGd2laVzVuYVc1bExtbHZMV05zYVdWdWRGd2lLVHRjYm1OdmJuTjBJR1JsWW5Wblh6RWdQU0JmWDJsdGNHOXlkRVJsWm1GMWJIUW9jbVZ4ZFdseVpTaGNJbVJsWW5WblhDSXBLVHNnTHk4Z1pHVmlkV2NvS1Z4dVkyOXVjM1FnWkdWaWRXY2dQU0JrWldKMVoxOHhMbVJsWm1GMWJIUW9YQ0p6YjJOclpYUXVhVzh0WTJ4cFpXNTBPblZ5YkZ3aUtUc2dMeThnWkdWaWRXY29LVnh1THlvcVhHNGdLaUJWVWt3Z2NHRnljMlZ5TGx4dUlDcGNiaUFxSUVCd1lYSmhiU0IxY21rZ0xTQjFjbXhjYmlBcUlFQndZWEpoYlNCd1lYUm9JQzBnZEdobElISmxjWFZsYzNRZ2NHRjBhQ0J2WmlCMGFHVWdZMjl1Ym1WamRHbHZibHh1SUNvZ1FIQmhjbUZ0SUd4dll5QXRJRUZ1SUc5aWFtVmpkQ0J0WldGdWRDQjBieUJ0YVcxcFl5QjNhVzVrYjNjdWJHOWpZWFJwYjI0dVhHNGdLaUFnSUNBZ0lDQWdSR1ZtWVhWc2RITWdkRzhnZDJsdVpHOTNMbXh2WTJGMGFXOXVMbHh1SUNvZ1FIQjFZbXhwWTF4dUlDb3ZYRzVtZFc1amRHbHZiaUIxY213b2RYSnBMQ0J3WVhSb0lEMGdYQ0pjSWl3Z2JHOWpLU0I3WEc0Z0lDQWdiR1YwSUc5aWFpQTlJSFZ5YVR0Y2JpQWdJQ0F2THlCa1pXWmhkV3gwSUhSdklIZHBibVJ2ZHk1c2IyTmhkR2x2Ymx4dUlDQWdJR3h2WXlBOUlHeHZZeUI4ZkNBb2RIbHdaVzltSUd4dlkyRjBhVzl1SUNFOVBTQmNJblZ1WkdWbWFXNWxaRndpSUNZbUlHeHZZMkYwYVc5dUtUdGNiaUFnSUNCcFppQW9iblZzYkNBOVBTQjFjbWtwWEc0Z0lDQWdJQ0FnSUhWeWFTQTlJR3h2WXk1d2NtOTBiMk52YkNBcklGd2lMeTljSWlBcklHeHZZeTVvYjNOME8xeHVJQ0FnSUM4dklISmxiR0YwYVhabElIQmhkR2dnYzNWd2NHOXlkRnh1SUNBZ0lHbG1JQ2gwZVhCbGIyWWdkWEpwSUQwOVBTQmNJbk4wY21sdVoxd2lLU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDaGNJaTljSWlBOVBUMGdkWEpwTG1Ob1lYSkJkQ2d3S1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tGd2lMMXdpSUQwOVBTQjFjbWt1WTJoaGNrRjBLREVwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RYSnBJRDBnYkc5akxuQnliM1J2WTI5c0lDc2dkWEpwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZFhKcElEMGdiRzlqTG1odmMzUWdLeUIxY21rN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2FXWWdLQ0V2WGlob2RIUndjejk4ZDNOelB5azZYRnd2WEZ3dkx5NTBaWE4wS0hWeWFTa3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHUmxZblZuS0Z3aWNISnZkRzlqYjJ3dGJHVnpjeUIxY213Z0pYTmNJaXdnZFhKcEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaGNJblZ1WkdWbWFXNWxaRndpSUNFOVBTQjBlWEJsYjJZZ2JHOWpLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZFhKcElEMGdiRzlqTG5CeWIzUnZZMjlzSUNzZ1hDSXZMMXdpSUNzZ2RYSnBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkWEpwSUQwZ1hDSm9kSFJ3Y3pvdkwxd2lJQ3NnZFhKcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDOHZJSEJoY25ObFhHNGdJQ0FnSUNBZ0lHUmxZblZuS0Z3aWNHRnljMlVnSlhOY0lpd2dkWEpwS1R0Y2JpQWdJQ0FnSUNBZ2IySnFJRDBnWlc1bmFXNWxYMmx2WDJOc2FXVnVkRjh4TG5CaGNuTmxLSFZ5YVNrN1hHNGdJQ0FnZlZ4dUlDQWdJQzh2SUcxaGEyVWdjM1Z5WlNCM1pTQjBjbVZoZENCZ2JHOWpZV3hvYjNOME9qZ3dZQ0JoYm1RZ1lHeHZZMkZzYUc5emRHQWdaWEYxWVd4c2VWeHVJQ0FnSUdsbUlDZ2hiMkpxTG5CdmNuUXBJSHRjYmlBZ0lDQWdJQ0FnYVdZZ0tDOWVLR2gwZEhCOGQzTXBKQzh1ZEdWemRDaHZZbW91Y0hKdmRHOWpiMndwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J2WW1vdWNHOXlkQ0E5SUZ3aU9EQmNJanRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCbGJITmxJR2xtSUNndlhpaG9kSFJ3ZkhkektYTWtMeTUwWlhOMEtHOWlhaTV3Y205MGIyTnZiQ2twSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJRzlpYWk1d2IzSjBJRDBnWENJME5ETmNJanRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ0lDQnZZbW91Y0dGMGFDQTlJRzlpYWk1d1lYUm9JSHg4SUZ3aUwxd2lPMXh1SUNBZ0lHTnZibk4wSUdsd2RqWWdQU0J2WW1vdWFHOXpkQzVwYm1SbGVFOW1LRndpT2x3aUtTQWhQVDBnTFRFN1hHNGdJQ0FnWTI5dWMzUWdhRzl6ZENBOUlHbHdkallnUHlCY0lsdGNJaUFySUc5aWFpNW9iM04wSUNzZ1hDSmRYQ0lnT2lCdlltb3VhRzl6ZER0Y2JpQWdJQ0F2THlCa1pXWnBibVVnZFc1cGNYVmxJR2xrWEc0Z0lDQWdiMkpxTG1sa0lEMGdiMkpxTG5CeWIzUnZZMjlzSUNzZ1hDSTZMeTljSWlBcklHaHZjM1FnS3lCY0lqcGNJaUFySUc5aWFpNXdiM0owSUNzZ2NHRjBhRHRjYmlBZ0lDQXZMeUJrWldacGJtVWdhSEpsWmx4dUlDQWdJRzlpYWk1b2NtVm1JRDFjYmlBZ0lDQWdJQ0FnYjJKcUxuQnliM1J2WTI5c0lDdGNiaUFnSUNBZ0lDQWdJQ0FnSUZ3aU9pOHZYQ0lnSzF4dUlDQWdJQ0FnSUNBZ0lDQWdhRzl6ZENBclhHNGdJQ0FnSUNBZ0lDQWdJQ0FvYkc5aklDWW1JR3h2WXk1d2IzSjBJRDA5UFNCdlltb3VjRzl5ZENBL0lGd2lYQ0lnT2lCY0lqcGNJaUFySUc5aWFpNXdiM0owS1R0Y2JpQWdJQ0J5WlhSMWNtNGdiMkpxTzF4dWZWeHVaWGh3YjNKMGN5NTFjbXdnUFNCMWNtdzdYRzRpTENKY0luVnpaU0J6ZEhKcFkzUmNJanRjYm5aaGNpQmZYMmx0Y0c5eWRFUmxabUYxYkhRZ1BTQW9kR2hwY3lBbUppQjBhR2x6TGw5ZmFXMXdiM0owUkdWbVlYVnNkQ2tnZkh3Z1puVnVZM1JwYjI0Z0tHMXZaQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQW9iVzlrSUNZbUlHMXZaQzVmWDJWelRXOWtkV3hsS1NBL0lHMXZaQ0E2SUhzZ1hDSmtaV1poZFd4MFhDSTZJRzF2WkNCOU8xeHVmVHRjYms5aWFtVmpkQzVrWldacGJtVlFjbTl3WlhKMGVTaGxlSEJ2Y25SekxDQmNJbDlmWlhOTmIyUjFiR1ZjSWl3Z2V5QjJZV3gxWlRvZ2RISjFaU0I5S1R0Y2JtVjRjRzl5ZEhNdVoyVjBTRzl6ZEU1aGJXVWdQU0JuWlhSSWIzTjBUbUZ0WlR0Y2JtTnZibk4wSUdSbFptbHVaVjh4SUQwZ1gxOXBiWEJ2Y25SRVpXWmhkV3gwS0hKbGNYVnBjbVVvWENJdUwyUmxabWx1WlZ3aUtTazdYRzVqYjI1emRDQjFkR2xzYzE4eElEMGdjbVZ4ZFdseVpTaGNJaTR2ZFhScGJITmNJaWs3WEc1amIyNXpkQ0I3SUZCU1QwUlZRMVJKVDA0c0lFUkZWa1ZNVDFCTlJVNVVMQ0JRVWs5RVZVTlVTVTlPWDBSUFRVRkpUaXdnUkVWV1JVeFBVRTFGVGxSZlJFOU5RVWxPTENCVFZVSmZSRTlOUVVsT1V5d2dVRTlTVkZNc0lIMGdQU0JrWldacGJtVmZNUzVrWldaaGRXeDBPMXh1WTI5dWMzUWdZWEJwVm1WeUlEMGdNVHRjYm1OdmJuTjBJR2h2YzNST1lXMWxJRDBnWjJWMFNHOXpkRTVoYldVb0tUdGNibU52Ym5OMElHVnVkaUE5SUdkbGRFVnVkaWhvYjNOMFRtRnRaU2s3WEc1amIyNXpkQ0JtYVd4bGN5QTlJSHRjYmlBZ0lDQmpiR2xsYm5RNklGd2lkR0ZzYTI0dVkyeHBaVzUwTG1welhDSXNYRzRnSUNBZ1lYQnBPaUJjSW5SaGJHdHVMbUZ3YVM1cWMxd2lMRnh1SUNBZ0lIZHpWMjl5YTJWeU9pQmNJbmR6TG1Gd2FTNTNiM0pyWlhJdWFuTmNJaXhjYmlBZ0lDQmxlSFE2SUZ3aWRHRnNhMjR1WlhoMExtcHpYQ0lzWEc0Z0lDQWdZMjkyWlhJNklGd2lkR0ZzYTI0dVkyOTJaWEl1YW5OY0lpeGNiaUFnSUNCMGRXNWxPaUJjSW5SaGJHdHVMblIxYm1VdWFuTmNJaXhjYmlBZ0lDQmpiMjF3YjI1bGJuUnpPaUJjSW5SaGJHdHVMbU52YlhCdmJtVnVkSE11YW5OY0lpeGNibjA3WEc1amIyNXpkQ0JwYzBSbGRpQTlJR1Z1ZGlBOVBUMGdSRVZXUlV4UFVFMUZUbFE3WEc1amIyNXpkQ0JrYjIxaGFXNGdQU0JsYm5ZZ1BUMDlJRkJTVDBSVlExUkpUMDRnUHlCUVVrOUVWVU5VU1U5T1gwUlBUVUZKVGlBNklFUkZWa1ZNVDFCTlJVNVVYMFJQVFVGSlRqdGNibU52Ym5OMElIZDNkMVZTVENBOUlHQWtlMU5WUWw5RVQwMUJTVTVUTGxkWFYzMHVKSHRrYjIxaGFXNTlZRHRjYm1OdmJuTjBJR052ZG1WeVZWSk1JRDBnWUNSN1UxVkNYMFJQVFVGSlRsTXVRMDlXUlZKOUxpUjdaRzl0WVdsdWZXQTdYRzVqYjI1emRDQmhjR2xWVWt3Z1BTQmdKSHRUVlVKZlJFOU5RVWxPVXk1QlVFbDlMaVI3Wkc5dFlXbHVmV0E3WEc1amIyNXpkQ0JoY0dsQlkyTmxjM05WVWt3Z1BTQnBjMFJsZGx4dUlDQWdJRDhnWUNSN1pHOXRZV2x1ZlRva2UxQlBVbFJUTGtSRlZrVk1UMUJOUlU1VVgwRlFTWDB2Skh0bWFXeGxjeTVoY0dsOVlGeHVJQ0FnSURvZ1lDUjdZWEJwVlZKTWZTOTJKSHRoY0dsV1pYSjlZRHRjYm1OdmJuTjBJR05zYVdWdWRGVlNUQ0E5SUdselJHVjJYRzRnSUNBZ1B5QmdKSHRrYjIxaGFXNTlPaVI3VUU5U1ZGTXVSRVZXUlV4UFVFMUZUbFJmUTB4SlJVNVVmUzhrZTJacGJHVnpMbU5zYVdWdWRIMWdYRzRnSUNBZ09pQmdKSHRUVlVKZlJFOU5RVWxPVXk1RFRFbEZUbFI5TGlSN1pHOXRZV2x1ZldBN1hHNWpiMjV6ZENCamIyMXdiMjVsYm5SelZWSk1JRDBnYVhORVpYWmNiaUFnSUNBL0lHQWtlMlJ2YldGcGJuMDZKSHRRVDFKVVV5NUVSVlpGVEU5UVRVVk9WRjlEVDAxUVQwNUZUbFJUZlM4a2UyWnBiR1Z6TG1OdmJYQnZibVZ1ZEhOOVlGeHVJQ0FnSURvZ1lDUjdVMVZDWDBSUFRVRkpUbE11UTA5TlVFOU9SVTVVVTMwdUpIdGtiMjFoYVc1OVlEdGNibU52Ym5OMElHUmxjMk5WVWt3Z1BTQmdKSHRUVlVKZlJFOU5RVWxPVXk1RVJWTkRmUzRrZTJSdmJXRnBibjFnTzF4dVkyOXVjM1FnY0c5eWRHRnNWVkpNSUQwZ1lDUjdVMVZDWDBSUFRVRkpUbE11VUU5U1ZFRk1mUzRrZTJSdmJXRnBibjFnTzF4dVkyOXVjM1FnWVhOelpYUnpWVkpNSUQwZ1lDUjdVMVZDWDBSUFRVRkpUbE11UVZOVFJWUlRmUzRrZTJSdmJXRnBibjFnTzF4dVkyOXVjM1FnWVhWMGIxVlNUQ0E5SUdBa2UxTlZRbDlFVDAxQlNVNVRMa0ZWVkU5OUxpUjdaRzl0WVdsdWZXQTdYRzVqYjI1emRDQmxlSFJWVWt3Z1BTQmdKSHRUVlVKZlJFOU5RVWxPVXk1RldGUjlMaVI3Wkc5dFlXbHVmV0E3WEc1amIyNXpkQ0JqYjIxd1ZWSk1JRDBnWUNSN1UxVkNYMFJQVFVGSlRsTXVRMDlOVUgwdUpIdGtiMjFoYVc1OVlEdGNibU52Ym5OMElHOTNibFZTVENBOUlHQWtlMU5WUWw5RVQwMUJTVTVUTGs5WFRuMHVKSHRrYjIxaGFXNTlZRHRjYm1OdmJuTjBJRzVsZDNOVlVrd2dQU0JnSkh0VFZVSmZSRTlOUVVsT1V5NU9SVmRUZlM0a2UyUnZiV0ZwYm4xZ08xeHVZMjl1YzNRZ2RIVnVaVlZTVENBOUlHQWtlMU5WUWw5RVQwMUJTVTVUTGxSVlRrVjlMaVI3Wkc5dFlXbHVmV0E3WEc1amIyNXpkQ0JpWVc1dVpYSlZVa3dnUFNCZ0pIdFRWVUpmUkU5TlFVbE9VeTVDUVU1T1JWSjlMaVI3Wkc5dFlXbHVmV0E3WEc1amIyNXpkQ0IwY21GdWMyRmpkR2x2YmxWU1RDQTlJR0FrZTFOVlFsOUVUMDFCU1U1VExsUlNRVTVUUVVOVVNVOU9mUzRrZTJSdmJXRnBibjFnTzF4dVkyOXVjM1FnWVhWMGFGVlNUQ0E5SUdBa2UxTlZRbDlFVDAxQlNVNVRMa0ZWVkVoOUxpUjdaRzl0WVdsdWZXQTdYRzVqYjI1emRDQmhjM05sZEhOSmJXZFFZWFJvSUQwZ1lDUjdZWE56WlhSelZWSk1mUzlwYldjdllEdGNibU52Ym5OMElHRnpjMlYwYzBOdmRtVnlVR0YwYUNBOUlHQWtlMkZ6YzJWMGMxVlNUSDB2WTI5MlpYSXZZRHRjYm1OdmJuTjBJR0Z6YzJWMGMwbGpiMjVRWVhSb0lEMGdZQ1I3WVhOelpYUnpWVkpNZlM5cFkyOXVMMkE3WEc1amIyNXpkQ0JoYzNObGRITktjMUJoZEdnZ1BTQmdKSHRoYzNObGRITlZVa3g5TDJwekwyQTdYRzVqYjI1emRDQnpaWE56YVc5dVZWSk1JRDBnWUNSN1UxVkNYMFJQVFVGSlRsTXVVMFZUVTBsUFRuMHVKSHRrYjIxaGFXNTlZRHRjYm1OdmJuTjBJR1JsYzJOeWFYQjBhVzl1SUQwZ1hDSjBZV3hyYmlCallXNGdjMmhoY21VZ1kyOXRiV1Z1ZEhNZ2QybDBhQ0IxYzJWeWN5QjNZWFJqYUdsdVp5QjBhR1VnYzJGdFpTQlhSVUlnY0dGblpTNGdVR3hsWVhObElHVnVhbTk1SUhSb1pTQjNiM0pzWkNCdlppQjBZV3hyYmk1Y0lqdGNibU52Ym5OMElHWmhkbWxqYjI0Z1BTQmdhSFIwY0hNNkx5OGtlMkZ6YzJWMGMxVlNUSDB2Wm1GMmFXTnZiaTVwWTI5Z08xeHVZMjl1YzNRZ2JIQk1ZVzVuZFdGblpYTWdQU0JiWEc0Z0lDQWdYQ0psYmx3aUxGeHVJQ0FnSUZ3aWVtaGNJaXhjYmlBZ0lDQmNJbXBoWENJc1hHNGdJQ0FnWENKa1pWd2lMRnh1SUNBZ0lGd2labkpjSWl4Y2JpQWdJQ0JjSW1ocFhDSXNYRzRnSUNBZ1hDSndkRndpTEZ4dUlDQWdJRndpYVhSY0lpeGNiaUFnSUNCY0luSjFYQ0lzWEc0Z0lDQWdYQ0pyYjF3aUxGeHVJQ0FnSUZ3aVpYTmNJaXhjYmlBZ0lDQmNJbWxrWENJc1hHNGdJQ0FnWENKMGNsd2lMRnh1SUNBZ0lGd2libXhjSWl4Y2JpQWdJQ0JjSW1GeVhDSXNYRzRnSUNBZ1hDSjZhQzFVVjF3aUxGeHVJQ0FnSUZ3aWNHeGNJaXhjYmlBZ0lDQmNJbk4yWENJc1hHNGdJQ0FnWENKMGFGd2lMRnh1SUNBZ0lGd2labUZjSWl4Y2JpQWdJQ0JjSW01dVhDSXNYRzRnSUNBZ1hDSm5ZVndpTEZ4dUlDQWdJRndpYUdWY0lpeGNiaUFnSUNCY0ltMXlYQ0lzWEc1ZE8xeHVZMjl1YzNRZ1pHVm1ZWFZzZEVKcGNuUm9aR0Y1Vlc1cGVIUnBiV1VnUFNBeE1EQXdNREF3TURBd01EQXdPMXh1WTI5dWMzUWdabWx1WkU5dVpWUm9jbVZoWkVGamRHbDJaVWh2ZFhJZ1BTQXhPMXh1WTI5dWMzUWdabWx1WkU5dVpWQnZjM1JEYm5RZ1BTQXpNRHRjYm1OdmJuTjBJR1pwYm1SUGJtVk1hVzFwZEVOdWRDQTlJRE13TUR0Y2JtTnZibk4wSUc5bmNFbHRZV2RsY3lBOUlIdGNiaUFnSUNCSWRHMXNPaUJnTHk4a2UyRnpjMlYwYzBsdFoxQmhkR2g5ZEdGc2EyNWZiRzluYjE5b2RHMXNMbkJ1WjJBc1hHNGdJQ0FnVFhWemFXTTZJR0F2THlSN1lYTnpaWFJ6U1cxblVHRjBhSDEwWVd4cmJsOXNiMmR2WDIxMWMybGpMbkJ1WjJBc1hHNGdJQ0FnVm1sa1pXODZJR0F2THlSN1lYTnpaWFJ6U1cxblVHRjBhSDEwWVd4cmJsOXNiMmR2WDNacFpHVnZMbkJ1WjJBc1hHNTlPMXh1WTI5dWMzUWdaR1ZtWVhWc2RFWmhkbWxqYjI0Z1BTQmdMeThrZTFOVlFsOUVUMDFCU1U1VExrRlRVMFZVVTMwdUpIdGtiMjFoYVc1OUwyWmhkbWxqYjI0dWFXTnZZRHRjYm1OdmJuTjBJR052Ym1ZZ1BTQjdYRzRnSUNBZ1pHOXRZV2x1TEZ4dUlDQWdJR2x6UkdWMkxGeHVJQ0FnSUdWdWRpeGNiaUFnSUNCbWFXeGxjeXhjYmlBZ0lDQm9iM04wVG1GdFpTeGNiaUFnSUNCaGNHbFZVa3dzWEc0Z0lDQWdZWEJwUVdOalpYTnpWVkpNTEZ4dUlDQWdJR052ZG1WeVZWSk1MRnh1SUNBZ0lIZDNkMVZTVEN4Y2JpQWdJQ0JrWlhOalZWSk1MRnh1SUNBZ0lIQnZjblJoYkZWU1RDeGNiaUFnSUNCamJHbGxiblJWVWt3c1hHNGdJQ0FnWVhOelpYUnpWVkpNTEZ4dUlDQWdJR0YxZEc5VlVrd3NYRzRnSUNBZ1pYaDBWVkpNTEZ4dUlDQWdJR052YlhCVlVrd3NYRzRnSUNBZ2IzZHVWVkpNTEZ4dUlDQWdJRzVsZDNOVlVrd3NYRzRnSUNBZ2RIVnVaVlZTVEN4Y2JpQWdJQ0JpWVc1dVpYSlZVa3dzWEc0Z0lDQWdZMjl0Y0c5dVpXNTBjMVZTVEN4Y2JpQWdJQ0IwY21GdWMyRmpkR2x2YmxWU1RDeGNiaUFnSUNCaGRYUm9WVkpNTEZ4dUlDQWdJR0Z6YzJWMGMwbHRaMUJoZEdnc1hHNGdJQ0FnWVhOelpYUnpRMjkyWlhKUVlYUm9MRnh1SUNBZ0lHRnpjMlYwYzBsamIyNVFZWFJvTEZ4dUlDQWdJR0Z6YzJWMGMwcHpVR0YwYUN4Y2JpQWdJQ0J6WlhOemFXOXVWVkpNTEZ4dUlDQWdJR1JsYzJOeWFYQjBhVzl1TEZ4dUlDQWdJR0Z3YVZabGNpeGNiaUFnSUNCbVlYWnBZMjl1TEZ4dUlDQWdJR3h3VEdGdVozVmhaMlZ6TEZ4dUlDQWdJR1JsWm1GMWJIUkNhWEowYUdSaGVWVnVhWGgwYVcxbExGeHVJQ0FnSUdacGJtUlBibVZVYUhKbFlXUkJZM1JwZG1WSWIzVnlMRnh1SUNBZ0lHWnBibVJQYm1WUWIzTjBRMjUwTEZ4dUlDQWdJR1pwYm1SUGJtVk1hVzFwZEVOdWRDeGNiaUFnSUNCdlozQkpiV0ZuWlhNc1hHNGdJQ0FnWkdWbVlYVnNkRVpoZG1samIyNHNYRzU5TzF4dVpYaHdiM0owY3k1a1pXWmhkV3gwSUQwZ2V5QXVMaTVqYjI1bUlIMDdYRzVtZFc1amRHbHZiaUJuWlhSSWIzTjBUbUZ0WlNncElIdGNiaUFnSUNCcFppQW9kWFJwYkhOZk1TNUpVMTlPVDBSRktTQjdYRzRnSUNBZ0lDQWdJQzh2SU9tQmkrZVVxTys4bXVPQnZ1T0JtdWVTc09XaWcrV2tpZWFWc09PQWdlZUVvZU9Ca2VPQ2pPT0JzQ0J2Y3k1b2IzTjBibUZ0WlNncFhHNGdJQ0FnSUNBZ0lHTnZibk4wSUdWdWRrNWhiV1VnUFNCd2NtOWpaWE56TG1WdWRqOHVTRTlUVkU1QlRVVWdmSHhjYmlBZ0lDQWdJQ0FnSUNBZ0lIQnliMk5sYzNNdVpXNTJQeTVJVDFOVUlIeDhYRzRnSUNBZ0lDQWdJQ0FnSUNCd2NtOWpaWE56TG1WdWRqOHVUazlFUlY5SVQxTlVUa0ZOUlR0Y2JpQWdJQ0FnSUNBZ2FXWWdLR1Z1ZGs1aGJXVS9MblJ5YVcwb0tTbGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJsYm5aT1lXMWxMblJ5YVcwb0tUdGNiaUFnSUNBZ0lDQWdMeThnWlhOc2FXNTBMV1JwYzJGaWJHVXRibVY0ZEMxc2FXNWxJRUIwZVhCbGMyTnlhWEIwTFdWemJHbHVkQzl1YnkxMllYSXRjbVZ4ZFdseVpYTmNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2IzTWdQU0J5WlhGMWFYSmxLRndpYjNOY0lpazdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnZjeTVvYjNOMGJtRnRaU2dwTzF4dUlDQWdJSDFjYmlBZ0lDQnBaaUFvZFhScGJITmZNUzVKVTE5Q1VrOVhVMFZTS1NCN1hHNGdJQ0FnSUNBZ0lDOHZJT09EbHVPRHFlT0NwdU9DdHUrOG11V3VuK2loak9TNHJlT0JydU9EbStPQ3VlT0RpT09CaStPQ2lWeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2JHOWpZWFJwYjI0dWFHOXpkRzVoYldVN1hHNGdJQ0FnZlZ4dUlDQWdJQzh2SU9PRGxlT0NxZU9Edk9PRHErT0RrT09EZytPQ3IxeHVJQ0FnSUhKbGRIVnliaUJjSW14dlkyRnNhRzl6ZEZ3aU8xeHVmVnh1THk4Z1ZFOUVUem9nVFc5MlpTQjBieUJ6WlhKMlpYSWdZMjl1WmlnZ2JtOTBJSFZ6WlNCbWNtOXRJR05zYVdWdWRDQXBMbHh1Wm5WdVkzUnBiMjRnWjJWMFJXNTJLR2h2YzNST1lXMWxLU0I3WEc0Z0lDQWdMeThnYm05a1pTQnpaWEoyWlhJZ2ZDQmtiMk5yWlhKY2JpQWdJQ0JwWmlBb2RYUnBiSE5mTVM1SlUxOU9UMFJGS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCb2IzTjBUbUZ0WlNBOVBUMGdYQ0pzYjJOaGJHaHZjM1JjSWx4dUlDQWdJQ0FnSUNBZ0lDQWdQeUJrWldacGJtVmZNUzVrWldaaGRXeDBMa1JGVmtWTVQxQk5SVTVVWEc0Z0lDQWdJQ0FnSUNBZ0lDQTZJR1JsWm1sdVpWOHhMbVJsWm1GMWJIUXVVRkpQUkZWRFZFbFBUanRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUdSbFptbHVaVjh4TG1SbFptRjFiSFF1VUZKUFJGVkRWRWxQVGp0Y2JuMWNiaUlzSWx3aWRYTmxJSE4wY21samRGd2lPMXh1ZG1GeUlGOWZhVzF3YjNKMFJHVm1ZWFZzZENBOUlDaDBhR2x6SUNZbUlIUm9hWE11WDE5cGJYQnZjblJFWldaaGRXeDBLU0I4ZkNCbWRXNWpkR2x2YmlBb2JXOWtLU0I3WEc0Z0lDQWdjbVYwZFhKdUlDaHRiMlFnSmlZZ2JXOWtMbDlmWlhOTmIyUjFiR1VwSUQ4Z2JXOWtJRG9nZXlCY0ltUmxabUYxYkhSY0lqb2diVzlrSUgwN1hHNTlPMXh1VDJKcVpXTjBMbVJsWm1sdVpWQnliM0JsY25SNUtHVjRjRzl5ZEhNc0lGd2lYMTlsYzAxdlpIVnNaVndpTENCN0lIWmhiSFZsT2lCMGNuVmxJSDBwTzF4dVpYaHdiM0owY3k1blpYUkRiMjV1WldOMGFXOXVjMDl3ZEdsdmJuTWdQU0JsZUhCdmNuUnpMbWx1YVhRZ1BTQjJiMmxrSURBN1hHNWpiMjV6ZENCMWRHbHNjMTh4SUQwZ2NtVnhkV2x5WlNoY0lrQmpiMjF0YjI0dmRYUnBiSE5jSWlrN1hHNWpiMjV6ZENCVFpYRjFaVzVqWlY4eElEMGdYMTlwYlhCdmNuUkVaV1poZFd4MEtISmxjWFZwY21Vb1hDSXVMaTlUWlhGMVpXNWpaVndpS1NrN1hHNWpiMjV6ZENCa1pXWnBibVZmTVNBOUlGOWZhVzF3YjNKMFJHVm1ZWFZzZENoeVpYRjFhWEpsS0Z3aUxpNHZaR1ZtYVc1bFhDSXBLVHRjYm1OdmJuTjBJRUp2YjNSUGNIUnBiMjVmTVNBOUlGOWZhVzF3YjNKMFJHVm1ZWFZzZENoeVpYRjFhWEpsS0Z3aUxpOUNiMjkwVDNCMGFXOXVYQ0lwS1R0Y2JtVjRjRzl5ZEhNdWFXNXBkQ0E5SUh0Y2JpQWdJQ0IwZFc1bFNXUTZJQ2NuTEZ4dUlDQWdJR052Ym01bFkzUnBiMjQ2SUNjbkxGeHVJQ0FnSUdOdmJtNWxZM1JwYjI1ek9pQmJYU3hjYmlBZ0lDQjBlWEJsT2lBbkp5eGNiaUFnSUNCc2FYWmxRMjUwT2lBd0xGeHVJQ0FnSUdaaGRtbGpiMjQ2SUNjbkxGeHVJQ0FnSUdkaGRHVjNZWGs2SUNjbkxGeHVJQ0FnSUhObGNuWmxjam9nSnljc1hHNGdJQ0FnWVdOMGFYWmxPaUJtWVd4elpTeGNiaUFnSUNCaGRXUnBiM002SUZ0ZExGeHVJQ0FnSUhacFpHVnZjem9nVzExY2JuMDdYRzVsZUhCdmNuUnpMbWRsZEVOdmJtNWxZM1JwYjI1elQzQjBhVzl1Y3lBOUlIdGNiaUFnSUNCcGMxTmxiR1pGZUdOc2RXUmxPaUJtWVd4elpTeGNiaUFnSUNCcGMxTnZjblJWY0hCbGNreGhlV1Z5T2lCMGNuVmxMRnh1ZlR0Y2JtTnNZWE56SUVOb1RXOWtaV3dnZTF4dUlDQWdJR052Ym5OMGNuVmpkRzl5S0hCaGNtRnRjeUE5SUdWNGNHOXlkSE11YVc1cGRDa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdUMkpxWldOMExtRnpjMmxuYmloMGFHbHpMQ0J3WVhKaGJYTXBPMXh1SUNBZ0lIMWNiaUFnSUNCemRHRjBhV01nWjJWMFVHRnlaVzUwUTI5dWJtVmpkR2x2YmlobWFYaERiMjV1WldOMGFXOXVLU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDaG1hWGhEYjI1dVpXTjBhVzl1SUQwOVBTQkRhRTF2WkdWc0xuSnZiM1JEYjI1dVpXTjBhVzl1S1Z4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIVnVaR1ZtYVc1bFpEdGNiaUFnSUNBZ0lDQWdiR1YwSUhKbGNHeGhZMlZrUTI5dWJtVmpkR2x2YmlBOUlHWnBlRU52Ym01bFkzUnBiMjR1Y21Wd2JHRmpaU2d2TGlRdkxDQW5KeWs3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR3hoYzNSVGJHRnphRWx1WkdWNElEMGdjbVZ3YkdGalpXUkRiMjV1WldOMGFXOXVMbXhoYzNSSmJtUmxlRTltS0Njdkp5azdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnlaWEJzWVdObFpFTnZibTVsWTNScGIyNHVjM1ZpYzNSeWFXNW5LREFzSUd4aGMzUlRiR0Z6YUVsdVpHVjRJQ3NnTVNrN1hHNGdJQ0FnZlZ4dUlDQWdJSE4wWVhScFl5Qm5aWFJVYjNCRGIyNXVaV04wYVc5dUtHTnZibTVsWTNScGIyNHBJSHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHTnZibTVsWTNScGIyNGdQVDA5SUVOb1RXOWtaV3d1Y205dmRFTnZibTVsWTNScGIyNHBYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnUTJoTmIyUmxiQzV5YjI5MFEyOXVibVZqZEdsdmJqdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2MyVndJRDBnZEdocGN5NXpaWEJoY21WMGIzSTdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmdKSHR6WlhCOUpIdGpiMjV1WldOMGFXOXVMbk53YkdsMEtITmxjQ2xiTVYxOUpIdHpaWEI5WUR0Y2JpQWdJQ0I5WEc0Z0lDQWdjM1JoZEdsaklHZGxkRU52Ym01bFkzUnBiMjRvWTI5dWJtVmpkR2x2YmlrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1FtOXZkRTl3ZEdsdmJsOHhMbVJsWm1GMWJIUXVaMlYwUTI5dWJtVmpkR2x2YmloamIyNXVaV04wYVc5dUtUdGNiaUFnSUNCOVhHNGdJQ0FnYzNSaGRHbGpJR2RsZEVOdmJtNWxZM1JwYjI1R2NtOXRWWEpzS0hWeWJDa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnhkV1Z5ZVZOMGNtbHVaeUE5SUhWeWJDNXpjR3hwZENoY0lqOWNJaWxiTVYwN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUhCaGNtRnRjeUE5SUc1bGR5QlZVa3hUWldGeVkyaFFZWEpoYlhNb2NYVmxjbmxUZEhKcGJtY3BPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnlZWGRVZFc1bFNXUWdQU0J3WVhKaGJYTXVaMlYwS0Z3aWRIVnVaVWxrWENJcE8xeHVJQ0FnSUNBZ0lDQnBaaUFvY21GM1ZIVnVaVWxrSUQwOVBTQnVkV3hzS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdRMmhOYjJSbGJDNXliMjkwUTI5dWJtVmpkR2x2Ymp0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQkRhRTF2WkdWc0xtZGxkRU52Ym01bFkzUnBiMjVHY205dFZIVnVaVWxrS0hKaGQxUjFibVZKWkNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJQ0FnYzNSaGRHbGpJR2RsZEVOdmJtNWxZM1JwYjI1R2NtOXRWSFZ1WlVsa0tIUjFibVZKWkNrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCa1pXTnZaR1ZrSUQwZ1pHVmpiMlJsVlZKSlEyOXRjRzl1Wlc1MEtIUjFibVZKWkNBL1B5QmNJbHdpS1R0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnWlhOallYQmxaRk5sY0dGeVlYUnZjaUE5SUhWMGFXeHpYekV1WjJWdVpYSmhkR1ZWYm1seGRXVkxaWGxUWlhCaGNtRjBiM0l1Y21Wd2JHRmpaU2d2V3kxY1hDOWNYRnhjWGlRcUt6OHVLQ2w4VzF4Y1hYdDlYUzluTENBblhGeGNYQ1FtSnlrN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUhCaGRIUmxjbTRnUFNCdVpYY2dVbVZuUlhod0tHQmVZMjl1Skh0bGMyTmhjR1ZrVTJWd1lYSmhkRzl5ZlNndUtqOHBKSHRsYzJOaGNHVmtVMlZ3WVhKaGRHOXlmV0FwTzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J0WVhSamFDQTlJR1JsWTI5a1pXUXViV0YwWTJnb2NHRjBkR1Z5YmlrN1hHNGdJQ0FnSUNBZ0lHeGxkQ0JqYjI1dVpXTjBhVzl1SUQwZ2JXRjBZMmcvTGxzeFhTQS9JRzFoZEdOb1B5NWJNVjBnT2lCRGFFMXZaR1ZzTG5KdmIzUkRiMjV1WldOMGFXOXVPMXh1SUNBZ0lDQWdJQ0JqYjI1dVpXTjBhVzl1SUQwZ1kyOXVibVZqZEdsdmJpNXpkR0Z5ZEhOWGFYUm9LRU5vVFc5a1pXd3VjbTl2ZEVOdmJtNWxZM1JwYjI0cElEOGdZMjl1Ym1WamRHbHZiaUE2SUdBa2UwTm9UVzlrWld3dWNtOXZkRU52Ym01bFkzUnBiMjU5Skh0amIyNXVaV04wYVc5dWZXQTdYRzRnSUNBZ0lDQWdJR052Ym01bFkzUnBiMjRnUFNCamIyNXVaV04wYVc5dUxtVnVaSE5YYVhSb0tFTm9UVzlrWld3dWNtOXZkRU52Ym01bFkzUnBiMjRwSUQ4Z1kyOXVibVZqZEdsdmJpQTZJR0FrZTJOdmJtNWxZM1JwYjI1OUpIdERhRTF2WkdWc0xuSnZiM1JEYjI1dVpXTjBhVzl1ZldBN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCamIyNXVaV04wYVc5dU8xeHVJQ0FnSUgxY2JpQWdJQ0J6ZEdGMGFXTWdaMlYwUm1GMmFXTnZiaWhvYjNOMEtTQjdYRzRnSUNBZ0lDQWdJR2xtSUNob2IzTjBJRDA5UFNCa1pXWnBibVZmTVM1a1pXWmhkV3gwTGtSRlZrVk1UMUJOUlU1VVgwUlBUVUZKVGlsY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQmNJbHdpTzF4dUlDQWdJQ0FnSUNCcFppQW9hRzl6ZENBOVBUMGdRMmhOYjJSbGJDNXliMjkwUTI5dWJtVmpkR2x2YmlsY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQmNJbHdpTzF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnWUNSN2FHOXpkSDB2Wm1GMmFXTnZiaTVwWTI5Z08xeHVJQ0FnSUgxY2JpQWdJQ0J6ZEdGMGFXTWdaMlYwUTI5dWJtVmpkR2x2Ym5Nb1kyOXVibVZqZEdsdmJpd2diM0IwYVc5dWN5QTlJR1Y0Y0c5eWRITXVaMlYwUTI5dWJtVmpkR2x2Ym5OUGNIUnBiMjV6S1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUhzZ2FYTlRaV3htUlhoamJIVmtaU3dnYVhOVGIzSjBWWEJ3WlhKTVlYbGxjaUI5SUQwZ2IzQjBhVzl1Y3p0Y2JpQWdJQ0FnSUNBZ2JHVjBJR052Ym01bFkzUnBiMjV6SUQwZ1cwTm9UVzlrWld3dWNtOXZkRU52Ym01bFkzUnBiMjVkTzF4dUlDQWdJQ0FnSUNCcFppQW9ZMjl1Ym1WamRHbHZiaUFtSmlCamIyNXVaV04wYVc5dUlDRTlQU0JEYUUxdlpHVnNMbkp2YjNSRGIyNXVaV04wYVc5dUtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JqYjI1dVpXTjBhVzl1UVhKeUlEMGdZMjl1Ym1WamRHbHZiaTV6Y0d4cGRDaERhRTF2WkdWc0xtTnZibTVsWTNScGIyNVRaWEJoY21GMGIzSXBMbVpwYkhSbGNpZ29jR0Z5ZENrZ1BUNGdjR0Z5ZENBaFBUMGdKeWNwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdiR1YwSUdOdmJtNWxZM1JwYjI1UVlYSjBJRDBnSnljN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1dVpXTjBhVzl1UVhKeUxtWnZja1ZoWTJnb0tITmxaMjFsYm5RcElEMCtJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1dVpXTjBhVzl1VUdGeWRDQXJQU0JnSkh0MGFHbHpMbk5sY0dGeVpYUnZjbjBrZTNObFoyMWxiblI5WUR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JoWkdSRGIyNXVaV04wYVc5dUlEMGdZQ1I3WTI5dWJtVmpkR2x2YmxCaGNuUjlKSHQwYUdsekxuTmxjR0Z5WlhSdmNuMWdPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNnaEtHbHpVMlZzWmtWNFkyeDFaR1VnSmlZZ1lXUmtRMjl1Ym1WamRHbHZiaUE5UFQwZ1kyOXVibVZqZEdsdmJpa3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVibVZqZEdsdmJuTXVjSFZ6YUNoaFpHUkRiMjV1WldOMGFXOXVLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCcFppQW9hWE5UYjNKMFZYQndaWEpNWVhsbGNpa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVibVZqZEdsdmJuTXVjMjl5ZENnb1lTd2dZaWtnUFQ0Z1lTNXNaVzVuZEdnZ0xTQmlMbXhsYm1kMGFDazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXVaV04wYVc5dWN5NXpiM0owS0NoaExDQmlLU0E5UGlCaUxteGxibWQwYUNBdElHRXViR1Z1WjNSb0tUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdZMjl1Ym1WamRHbHZibk03WEc0Z0lDQWdmVnh1SUNBZ0lITjBZWFJwWXlCblpYUk5lVU52Ym01bFkzUnBiMjVEYkdGemN5aGpiMjV1WldOMGFXOXVjeXdnYzNSaGNuUkRiMjV1WldOMGFXOXVMQ0JsYm1SRGIyNXVaV04wYVc5dUtTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElHMTVRMjl1Ym1WamRHbHZia05zWVhOeklEMGdXMTA3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR3h2YjNCRGIyNXVaV04wYVc5dWN5QTlJR052Ym01bFkzUnBiMjV6TG5Oc2FXTmxLQ2t1YzI5eWRDZ29ZU3dnWWlrZ1BUNGdZUzVzWlc1bmRHZ2dMU0JpTG14bGJtZDBhQ2s3WEc0Z0lDQWdJQ0FnSUdWdVpFTnZibTVsWTNScGIyNGdQU0JsYm1SRGIyNXVaV04wYVc5dUlEOGdaVzVrUTI5dWJtVmpkR2x2YmlBNklHeHZiM0JEYjI1dVpXTjBhVzl1YzF0c2IyOXdRMjl1Ym1WamRHbHZibk11YkdWdVozUm9JQzBnTVYwN1hHNGdJQ0FnSUNBZ0lHeGxkQ0JwYzFCMWMyZ2dQU0JtWVd4elpUdGNiaUFnSUNBZ0lDQWdabTl5SUNoamIyNXpkQ0JwSUdsdUlHeHZiM0JEYjI1dVpXTjBhVzl1Y3lrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHTnZibTVsWTNScGIyNXpXMmxkSUQwOVBTQnpkR0Z5ZEVOdmJtNWxZM1JwYjI0cElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBjMUIxYzJnZ1BTQjBjblZsTzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR052Ym01bFkzUnBiMjV6VzJsZElEMDlQU0JsYm1SRGIyNXVaV04wYVc5dUtWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0dselVIVnphQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUcxNVEyOXVibVZqZEdsdmJrTnNZWE56TG5CMWMyZ29ZMjl1Ym1WamRHbHZibk5iYVYwcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCdGVVTnZibTVsWTNScGIyNURiR0Z6Y3p0Y2JpQWdJQ0I5WEc0Z0lDQWdjM1JoZEdsaklHZGxkRlI1Y0dVb2FHOXpkQ2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnYUc5emRDNXpkR0Z5ZEhOWGFYUm9LRk5sY1hWbGJtTmxYekV1WkdWbVlYVnNkQzVJVkZSUVUxOVFVazlVVDBOUFRDa2dmSHdnYUc5emRDNXpkR0Z5ZEhOWGFYUm9LRk5sY1hWbGJtTmxYekV1WkdWbVlYVnNkQzVJVkZSUVgxQlNUMVJQUTA5TUtTQS9JRU5vVFc5a1pXd3VaR1ZtZFd4MFZIbHdaU0E2SUVOb1RXOWtaV3d1Y0d4aGFXNVVlWEJsTzF4dUlDQWdJSDFjYmlBZ0lDQnpkR0YwYVdNZ2FYTk5aV1JwWVVOb0tIUjVjR1VwSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSNWNHVXVjM1JoY25SelYybDBhQ2duWVhWa2FXOG5LU0I4ZkNCMGVYQmxMbk4wWVhKMGMxZHBkR2dvSjNacFpHVnZKeWs3WEc0Z0lDQWdmVnh1SUNBZ0lITjBZWFJwWXlCblpYUkhZWFJsZDJGNUtHTm9RMjl1Wm1sbktTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmphRU52Ym1acFp5QW1KaUJqYUVOdmJtWnBaeTVuWVhSbGQyRjVQeTVvYjNOMElDWW1JR05vUTI5dVptbG5MbWRoZEdWM1lYa3VjRzl5ZEZ4dUlDQWdJQ0FnSUNBZ0lDQWdQeUJnSkh0amFFTnZibVpwWnk1bllYUmxkMkY1TG1odmMzUjlPaVI3WTJoRGIyNW1hV2N1WjJGMFpYZGhlUzV3YjNKMGZXQmNiaUFnSUNBZ0lDQWdJQ0FnSURvZ1lERXlOeTR3TGpBdU1Ub2tlMlJsWm1sdVpWOHhMbVJsWm1GMWJIUXVVRTlTVkZNdVNVOWZVazlQVkgxZ08xeHVJQ0FnSUgxY2JpQWdJQ0J6ZEdGMGFXTWdaMlYwVTJWeWRtVnlLR05vUTI5dVptbG5LU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJqYUVOdmJtWnBaeUFtSmlCamFFTnZibVpwWnk1cGIxTmxjblpsY2k1b2IzTjBJQ1ltSUdOb1EyOXVabWxuTG1sdlUyVnlkbVZ5TG5CdmNuUmNiaUFnSUNBZ0lDQWdJQ0FnSUQ4Z1lDUjdZMmhEYjI1bWFXY3VhVzlUWlhKMlpYSXVhRzl6ZEgwNkpIdGphRU52Ym1acFp5NXBiMU5sY25abGNpNXdiM0owZldCY2JpQWdJQ0FnSUNBZ0lDQWdJRG9nWURFeU55NHdMakF1TVRva2UyUmxabWx1WlY4eExtUmxabUYxYkhRdVVFOVNWRk11U1U5ZlVrOVBWSDFnTzF4dUlDQWdJSDFjYm4xY2JrTm9UVzlrWld3dWMyVndZWEpsZEc5eUlEMGdKeThuTzF4dVEyaE5iMlJsYkM1eWIyOTBRMjl1Ym1WamRHbHZiaUE5SUVOb1RXOWtaV3d1YzJWd1lYSmxkRzl5TzF4dVEyaE5iMlJsYkM1amIyNXVaV04wYVc5dVUyVndZWEpoZEc5eUlEMGdKeThuTzF4dVEyaE5iMlJsYkM1a1pXWmhkV3gwVUhKdmRHOWpiMndnUFNBbmRHRnNhMjQ2T2ljN1hHNURhRTF2WkdWc0xtUmxablZzZEZSNWNHVWdQU0FuZEdWNGRDOW9kRzFzSnp0Y2JrTm9UVzlrWld3dWNHeGhhVzVVZVhCbElEMGdKM0JzWVdsdUp6dGNia05vVFc5a1pXd3VaMlYwUTJoUVlYSmhiWE1nUFNBb2NHRnlZVzF6S1NBOVBpQjdYRzRnSUNBZ1kyOXVjM1FnZXlCMGRXNWxTV1FzSUdOdmJtNWxZM1JwYjI0NklGOWpiMjV1WldOMGFXOXVMQ0JvYjNOMExDQnNhWFpsUTI1MExDQmphRU52Ym1acFp5QjlJRDBnY0dGeVlXMXpPMXh1SUNBZ0lHTnZibk4wSUdOdmJtNWxZM1JwYjI0Z1BTQkRhRTF2WkdWc0xtZGxkRU52Ym01bFkzUnBiMjRvWDJOdmJtNWxZM1JwYjI0cE8xeHVJQ0FnSUdOdmJuTjBJR052Ym01bFkzUnBiMjV6SUQwZ1EyaE5iMlJsYkM1blpYUkRiMjV1WldOMGFXOXVjeWhqYjI1dVpXTjBhVzl1S1R0Y2JpQWdJQ0JqYjI1emRDQm1ZWFpwWTI5dUlEMGdRMmhOYjJSbGJDNW5aWFJHWVhacFkyOXVLR2h2YzNRcE8xeHVJQ0FnSUdOdmJuTjBJSFI1Y0dVZ1BTQkRhRTF2WkdWc0xtZGxkRlI1Y0dVb2FHOXpkQ2s3WEc0Z0lDQWdZMjl1YzNRZ1oyRjBaWGRoZVNBOUlFTm9UVzlrWld3dVoyVjBSMkYwWlhkaGVTaGphRU52Ym1acFp5azdYRzRnSUNBZ1kyOXVjM1FnYzJWeWRtVnlJRDBnUTJoTmIyUmxiQzVuWlhSVFpYSjJaWElvWTJoRGIyNW1hV2NwTzF4dUlDQWdJSEpsZEhWeWJpQjdYRzRnSUNBZ0lDQWdJSFIxYm1WSlpDeGNiaUFnSUNBZ0lDQWdZMjl1Ym1WamRHbHZiaXhjYmlBZ0lDQWdJQ0FnWTI5dWJtVmpkR2x2Ym5Nc1hHNGdJQ0FnSUNBZ0lHWmhkbWxqYjI0c1hHNGdJQ0FnSUNBZ0lIUjVjR1VzWEc0Z0lDQWdJQ0FnSUd4cGRtVkRiblFzWEc0Z0lDQWdJQ0FnSUdkaGRHVjNZWGtzWEc0Z0lDQWdJQ0FnSUhObGNuWmxjaXhjYmlBZ0lDQjlPMXh1ZlR0Y2JtVjRjRzl5ZEhNdVpHVm1ZWFZzZENBOUlFTm9UVzlrWld3N1hHNGlMQ0pjSW5WelpTQnpkSEpwWTNSY0lqdGNiaThxS2x4dUlDb2dTVzVwZEdsaGJHbDZaU0JpWVdOcmIyWm1JSFJwYldWeUlIZHBkR2dnWUc5d2RITmdMbHh1SUNwY2JpQXFJQzBnWUcxcGJtQWdhVzVwZEdsaGJDQjBhVzFsYjNWMElHbHVJRzFwYkd4cGMyVmpiMjVrY3lCYk1UQXdYVnh1SUNvZ0xTQmdiV0Y0WUNCdFlYZ2dkR2x0Wlc5MWRDQmJNVEF3TURCZFhHNGdLaUF0SUdCcWFYUjBaWEpnSUZzd1hWeHVJQ29nTFNCZ1ptRmpkRzl5WUNCYk1sMWNiaUFxWEc0Z0tpQkFjR0Z5WVcwZ2UwOWlhbVZqZEgwZ2IzQjBjMXh1SUNvZ1FHRndhU0J3ZFdKc2FXTmNiaUFxTDF4dVQySnFaV04wTG1SbFptbHVaVkJ5YjNCbGNuUjVLR1Y0Y0c5eWRITXNJRndpWDE5bGMwMXZaSFZzWlZ3aUxDQjdJSFpoYkhWbE9pQjBjblZsSUgwcE8xeHVaWGh3YjNKMGN5NUNZV05yYjJabUlEMGdkbTlwWkNBd08xeHVablZ1WTNScGIyNGdRbUZqYTI5bVppaHZjSFJ6S1NCN1hHNGdJQ0FnYjNCMGN5QTlJRzl3ZEhNZ2ZId2dlMzA3WEc0Z0lDQWdkR2hwY3k1dGN5QTlJRzl3ZEhNdWJXbHVJSHg4SURFd01EdGNiaUFnSUNCMGFHbHpMbTFoZUNBOUlHOXdkSE11YldGNElIeDhJREV3TURBd08xeHVJQ0FnSUhSb2FYTXVabUZqZEc5eUlEMGdiM0IwY3k1bVlXTjBiM0lnZkh3Z01qdGNiaUFnSUNCMGFHbHpMbXBwZEhSbGNpQTlJRzl3ZEhNdWFtbDBkR1Z5SUQ0Z01DQW1KaUJ2Y0hSekxtcHBkSFJsY2lBOFBTQXhJRDhnYjNCMGN5NXFhWFIwWlhJZ09pQXdPMXh1SUNBZ0lIUm9hWE11WVhSMFpXMXdkSE1nUFNBd08xeHVmVnh1Wlhod2IzSjBjeTVDWVdOcmIyWm1JRDBnUW1GamEyOW1aanRjYmk4cUtseHVJQ29nVW1WMGRYSnVJSFJvWlNCaVlXTnJiMlptSUdSMWNtRjBhVzl1TGx4dUlDcGNiaUFxSUVCeVpYUjFjbTRnZTA1MWJXSmxjbjFjYmlBcUlFQmhjR2tnY0hWaWJHbGpYRzRnS2k5Y2JrSmhZMnR2Wm1ZdWNISnZkRzkwZVhCbExtUjFjbUYwYVc5dUlEMGdablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJSFpoY2lCdGN5QTlJSFJvYVhNdWJYTWdLaUJOWVhSb0xuQnZkeWgwYUdsekxtWmhZM1J2Y2l3Z2RHaHBjeTVoZEhSbGJYQjBjeXNyS1R0Y2JpQWdJQ0JwWmlBb2RHaHBjeTVxYVhSMFpYSXBJSHRjYmlBZ0lDQWdJQ0FnZG1GeUlISmhibVFnUFNCTllYUm9MbkpoYm1SdmJTZ3BPMXh1SUNBZ0lDQWdJQ0IyWVhJZ1pHVjJhV0YwYVc5dUlEMGdUV0YwYUM1bWJHOXZjaWh5WVc1a0lDb2dkR2hwY3k1cWFYUjBaWElnS2lCdGN5azdYRzRnSUNBZ0lDQWdJRzF6SUQwZ0tFMWhkR2d1Wm14dmIzSW9jbUZ1WkNBcUlERXdLU0FtSURFcElEMDlJREFnUHlCdGN5QXRJR1JsZG1saGRHbHZiaUE2SUcxeklDc2daR1YyYVdGMGFXOXVPMXh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnVFdGMGFDNXRhVzRvYlhNc0lIUm9hWE11YldGNEtTQjhJREE3WEc1OU8xeHVMeW9xWEc0Z0tpQlNaWE5sZENCMGFHVWdiblZ0WW1WeUlHOW1JR0YwZEdWdGNIUnpMbHh1SUNwY2JpQXFJRUJoY0drZ2NIVmliR2xqWEc0Z0tpOWNia0poWTJ0dlptWXVjSEp2ZEc5MGVYQmxMbkpsYzJWMElEMGdablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJSFJvYVhNdVlYUjBaVzF3ZEhNZ1BTQXdPMXh1ZlR0Y2JpOHFLbHh1SUNvZ1UyVjBJSFJvWlNCdGFXNXBiWFZ0SUdSMWNtRjBhVzl1WEc0Z0tseHVJQ29nUUdGd2FTQndkV0pzYVdOY2JpQXFMMXh1UW1GamEyOW1aaTV3Y205MGIzUjVjR1V1YzJWMFRXbHVJRDBnWm5WdVkzUnBiMjRnS0cxcGJpa2dlMXh1SUNBZ0lIUm9hWE11YlhNZ1BTQnRhVzQ3WEc1OU8xeHVMeW9xWEc0Z0tpQlRaWFFnZEdobElHMWhlR2x0ZFcwZ1pIVnlZWFJwYjI1Y2JpQXFYRzRnS2lCQVlYQnBJSEIxWW14cFkxeHVJQ292WEc1Q1lXTnJiMlptTG5CeWIzUnZkSGx3WlM1elpYUk5ZWGdnUFNCbWRXNWpkR2x2YmlBb2JXRjRLU0I3WEc0Z0lDQWdkR2hwY3k1dFlYZ2dQU0J0WVhnN1hHNTlPMXh1THlvcVhHNGdLaUJUWlhRZ2RHaGxJR3BwZEhSbGNseHVJQ3BjYmlBcUlFQmhjR2tnY0hWaWJHbGpYRzRnS2k5Y2JrSmhZMnR2Wm1ZdWNISnZkRzkwZVhCbExuTmxkRXBwZEhSbGNpQTlJR1oxYm1OMGFXOXVJQ2hxYVhSMFpYSXBJSHRjYmlBZ0lDQjBhR2x6TG1wcGRIUmxjaUE5SUdwcGRIUmxjanRjYm4wN1hHNGlMQ0pjSW5WelpTQnpkSEpwWTNSY0lqdGNiblpoY2lCZlgybHRjRzl5ZEVSbFptRjFiSFFnUFNBb2RHaHBjeUFtSmlCMGFHbHpMbDlmYVcxd2IzSjBSR1ZtWVhWc2RDa2dmSHdnWm5WdVkzUnBiMjRnS0cxdlpDa2dlMXh1SUNBZ0lISmxkSFZ5YmlBb2JXOWtJQ1ltSUcxdlpDNWZYMlZ6VFc5a2RXeGxLU0EvSUcxdlpDQTZJSHNnWENKa1pXWmhkV3gwWENJNklHMXZaQ0I5TzF4dWZUdGNiazlpYW1WamRDNWtaV1pwYm1WUWNtOXdaWEowZVNobGVIQnZjblJ6TENCY0lsOWZaWE5OYjJSMWJHVmNJaXdnZXlCMllXeDFaVG9nZEhKMVpTQjlLVHRjYm1WNGNHOXlkSE11WkdWbVlYVnNkQ0E5SUdWNGNHOXlkSE11WTI5dWJtVmpkQ0E5SUdWNGNHOXlkSE11YVc4Z1BTQmxlSEJ2Y25SekxsTnZZMnRsZENBOUlHVjRjRzl5ZEhNdVRXRnVZV2RsY2lBOUlHVjRjRzl5ZEhNdWNISnZkRzlqYjJ3Z1BTQjJiMmxrSURBN1hHNWpiMjV6ZENCMWNteGZhbk5mTVNBOUlISmxjWFZwY21Vb1hDSXVMM1Z5YkM1cWMxd2lLVHRjYm1OdmJuTjBJRzFoYm1GblpYSmZhbk5mTVNBOUlISmxjWFZwY21Vb1hDSXVMMjFoYm1GblpYSXVhbk5jSWlrN1hHNVBZbXBsWTNRdVpHVm1hVzVsVUhKdmNHVnlkSGtvWlhod2IzSjBjeXdnWENKTllXNWhaMlZ5WENJc0lIc2daVzUxYldWeVlXSnNaVG9nZEhKMVpTd2daMlYwT2lCbWRXNWpkR2x2YmlBb0tTQjdJSEpsZEhWeWJpQnRZVzVoWjJWeVgycHpYekV1VFdGdVlXZGxjanNnZlNCOUtUdGNibU52Ym5OMElITnZZMnRsZEY5cWMxOHhJRDBnY21WeGRXbHlaU2hjSWk0dmMyOWphMlYwTG1welhDSXBPMXh1VDJKcVpXTjBMbVJsWm1sdVpWQnliM0JsY25SNUtHVjRjRzl5ZEhNc0lGd2lVMjlqYTJWMFhDSXNJSHNnWlc1MWJXVnlZV0pzWlRvZ2RISjFaU3dnWjJWME9pQm1kVzVqZEdsdmJpQW9LU0I3SUhKbGRIVnliaUJ6YjJOclpYUmZhbk5mTVM1VGIyTnJaWFE3SUgwZ2ZTazdYRzVqYjI1emRDQmtaV0oxWjE4eElEMGdYMTlwYlhCdmNuUkVaV1poZFd4MEtISmxjWFZwY21Vb1hDSmtaV0oxWjF3aUtTazdJQzh2SUdSbFluVm5LQ2xjYm1OdmJuTjBJR1JsWW5WbklEMGdaR1ZpZFdkZk1TNWtaV1poZFd4MEtGd2ljMjlqYTJWMExtbHZMV05zYVdWdWRGd2lLVHNnTHk4Z1pHVmlkV2NvS1Z4dUx5b3FYRzRnS2lCTllXNWhaMlZ5Y3lCallXTm9aUzVjYmlBcUwxeHVZMjl1YzNRZ1kyRmphR1VnUFNCN2ZUdGNibVoxYm1OMGFXOXVJR3h2YjJ0MWNDaDFjbWtzSUc5d2RITXBJSHRjYmlBZ0lDQnBaaUFvZEhsd1pXOW1JSFZ5YVNBOVBUMGdYQ0p2WW1wbFkzUmNJaWtnZTF4dUlDQWdJQ0FnSUNCdmNIUnpJRDBnZFhKcE8xeHVJQ0FnSUNBZ0lDQjFjbWtnUFNCMWJtUmxabWx1WldRN1hHNGdJQ0FnZlZ4dUlDQWdJRzl3ZEhNZ1BTQnZjSFJ6SUh4OElIdDlPMXh1SUNBZ0lHTnZibk4wSUhCaGNuTmxaQ0E5SUhWeWJGOXFjMTh4TG5WeWJDaDFjbWtzSUc5d2RITXVjR0YwYUNCOGZDQmNJaTl6YjJOclpYUXVhVzljSWlrN1hHNGdJQ0FnWTI5dWMzUWdjMjkxY21ObElEMGdjR0Z5YzJWa0xuTnZkWEpqWlR0Y2JpQWdJQ0JqYjI1emRDQnBaQ0E5SUhCaGNuTmxaQzVwWkR0Y2JpQWdJQ0JqYjI1emRDQndZWFJvSUQwZ2NHRnljMlZrTG5CaGRHZzdYRzRnSUNBZ1kyOXVjM1FnYzJGdFpVNWhiV1Z6Y0dGalpTQTlJR05oWTJobFcybGtYU0FtSmlCd1lYUm9JR2x1SUdOaFkyaGxXMmxrWFZ0Y0ltNXpjSE5jSWwwN1hHNGdJQ0FnWTI5dWMzUWdibVYzUTI5dWJtVmpkR2x2YmlBOUlHOXdkSE11Wm05eVkyVk9aWGNnZkh4Y2JpQWdJQ0FnSUNBZ2IzQjBjMXRjSW1admNtTmxJRzVsZHlCamIyNXVaV04wYVc5dVhDSmRJSHg4WEc0Z0lDQWdJQ0FnSUdaaGJITmxJRDA5UFNCdmNIUnpMbTExYkhScGNHeGxlQ0I4ZkZ4dUlDQWdJQ0FnSUNCellXMWxUbUZ0WlhOd1lXTmxPMXh1SUNBZ0lHeGxkQ0JwYnp0Y2JpQWdJQ0JwWmlBb2JtVjNRMjl1Ym1WamRHbHZiaWtnZTF4dUlDQWdJQ0FnSUNCa1pXSjFaeWhjSW1sbmJtOXlhVzVuSUhOdlkydGxkQ0JqWVdOb1pTQm1iM0lnSlhOY0lpd2djMjkxY21ObEtUdGNiaUFnSUNBZ0lDQWdhVzhnUFNCdVpYY2diV0Z1WVdkbGNsOXFjMTh4TGsxaGJtRm5aWElvYzI5MWNtTmxMQ0J2Y0hSektUdGNiaUFnSUNCOVhHNGdJQ0FnWld4elpTQjdYRzRnSUNBZ0lDQWdJR2xtSUNnaFkyRmphR1ZiYVdSZEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCa1pXSjFaeWhjSW01bGR5QnBieUJwYm5OMFlXNWpaU0JtYjNJZ0pYTmNJaXdnYzI5MWNtTmxLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhZMmhsVzJsa1hTQTlJRzVsZHlCdFlXNWhaMlZ5WDJwelh6RXVUV0Z1WVdkbGNpaHpiM1Z5WTJVc0lHOXdkSE1wTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHbHZJRDBnWTJGamFHVmJhV1JkTzF4dUlDQWdJSDFjYmlBZ0lDQnBaaUFvY0dGeWMyVmtMbkYxWlhKNUlDWW1JQ0Z2Y0hSekxuRjFaWEo1S1NCN1hHNGdJQ0FnSUNBZ0lHOXdkSE11Y1hWbGNua2dQU0J3WVhKelpXUXVjWFZsY25sTFpYazdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJwYnk1emIyTnJaWFFvY0dGeWMyVmtMbkJoZEdnc0lHOXdkSE1wTzF4dWZWeHVaWGh3YjNKMGN5NXBieUE5SUd4dmIydDFjRHRjYm1WNGNHOXlkSE11WTI5dWJtVmpkQ0E5SUd4dmIydDFjRHRjYm1WNGNHOXlkSE11WkdWbVlYVnNkQ0E5SUd4dmIydDFjRHRjYmk4dklITnZJSFJvWVhRZ1hDSnNiMjlyZFhCY0lpQmpZVzRnWW1VZ2RYTmxaQ0JpYjNSb0lHRnpJR0VnWm5WdVkzUnBiMjRnS0dVdVp5NGdZR2x2S0M0dUxpbGdLU0JoYm1RZ1lYTWdZVnh1THk4Z2JtRnRaWE53WVdObElDaGxMbWN1SUdCcGJ5NWpiMjV1WldOMEtDNHVMaWxnS1N3Z1ptOXlJR0poWTJ0M1lYSmtJR052YlhCaGRHbGlhV3hwZEhsY2JrOWlhbVZqZEM1aGMzTnBaMjRvYkc5dmEzVndMQ0I3WEc0Z0lDQWdUV0Z1WVdkbGNqb2diV0Z1WVdkbGNsOXFjMTh4TGsxaGJtRm5aWElzWEc0Z0lDQWdVMjlqYTJWME9pQnpiMk5yWlhSZmFuTmZNUzVUYjJOclpYUXNYRzRnSUNBZ2FXODZJR3h2YjJ0MWNDeGNiaUFnSUNCamIyNXVaV04wT2lCc2IyOXJkWEFzWEc1OUtUdGNiaThxS2x4dUlDb2dVSEp2ZEc5amIyd2dkbVZ5YzJsdmJpNWNiaUFxWEc0Z0tpQkFjSFZpYkdsalhHNGdLaTljYm5aaGNpQnpiMk5yWlhSZmFXOWZjR0Z5YzJWeVh6RWdQU0J5WlhGMWFYSmxLRndpYzI5amEyVjBMbWx2TFhCaGNuTmxjbHdpS1R0Y2JrOWlhbVZqZEM1a1pXWnBibVZRY205d1pYSjBlU2hsZUhCdmNuUnpMQ0JjSW5CeWIzUnZZMjlzWENJc0lIc2daVzUxYldWeVlXSnNaVG9nZEhKMVpTd2daMlYwT2lCbWRXNWpkR2x2YmlBb0tTQjdJSEpsZEhWeWJpQnpiMk5yWlhSZmFXOWZjR0Z5YzJWeVh6RXVjSEp2ZEc5amIydzdJSDBnZlNrN1hHNWNibTF2WkhWc1pTNWxlSEJ2Y25SeklEMGdiRzl2YTNWd08xeHVJaXdpWENKMWMyVWdjM1J5YVdOMFhDSTdYRzUyWVhJZ1gxOXBiWEJ2Y25SRVpXWmhkV3gwSUQwZ0tIUm9hWE1nSmlZZ2RHaHBjeTVmWDJsdGNHOXlkRVJsWm1GMWJIUXBJSHg4SUdaMWJtTjBhVzl1SUNodGIyUXBJSHRjYmlBZ0lDQnlaWFIxY200Z0tHMXZaQ0FtSmlCdGIyUXVYMTlsYzAxdlpIVnNaU2tnUHlCdGIyUWdPaUI3SUZ3aVpHVm1ZWFZzZEZ3aU9pQnRiMlFnZlR0Y2JuMDdYRzVQWW1wbFkzUXVaR1ZtYVc1bFVISnZjR1Z5ZEhrb1pYaHdiM0owY3l3Z1hDSmZYMlZ6VFc5a2RXeGxYQ0lzSUhzZ2RtRnNkV1U2SUhSeWRXVWdmU2s3WEc1bGVIQnZjblJ6TGxOdlkydGxkQ0E5SUhadmFXUWdNRHRjYm1OdmJuTjBJR2x1WkdWNFgycHpYekVnUFNCeVpYRjFhWEpsS0Z3aUxpOTBjbUZ1YzNCdmNuUnpMMmx1WkdWNExtcHpYQ0lwTzF4dVkyOXVjM1FnZFhScGJGOXFjMTh4SUQwZ2NtVnhkV2x5WlNoY0lpNHZkWFJwYkM1cWMxd2lLVHRjYm1OdmJuTjBJSEJoY25ObGNYTmZhbk5mTVNBOUlISmxjWFZwY21Vb1hDSXVMMk52Ym5SeWFXSXZjR0Z5YzJWeGN5NXFjMXdpS1R0Y2JtTnZibk4wSUhCaGNuTmxkWEpwWDJwelh6RWdQU0J5WlhGMWFYSmxLRndpTGk5amIyNTBjbWxpTDNCaGNuTmxkWEpwTG1welhDSXBPMXh1WTI5dWMzUWdaR1ZpZFdkZk1TQTlJRjlmYVcxd2IzSjBSR1ZtWVhWc2RDaHlaWEYxYVhKbEtGd2laR1ZpZFdkY0lpa3BPeUF2THlCa1pXSjFaeWdwWEc1amIyNXpkQ0JqYjIxd2IyNWxiblJmWlcxcGRIUmxjbDh4SUQwZ2NtVnhkV2x5WlNoY0lrQnpiMk5yWlhRdWFXOHZZMjl0Y0c5dVpXNTBMV1Z0YVhSMFpYSmNJaWs3WEc1amIyNXpkQ0JsYm1kcGJtVmZhVzlmY0dGeWMyVnlYekVnUFNCeVpYRjFhWEpsS0Z3aVpXNW5hVzVsTG1sdkxYQmhjbk5sY2x3aUtUdGNibU52Ym5OMElIZGxZbk52WTJ0bGRGOWpiMjV6ZEhKMVkzUnZjbDlxYzE4eElEMGdjbVZ4ZFdseVpTaGNJaTR2ZEhKaGJuTndiM0owY3k5M1pXSnpiMk5yWlhRdFkyOXVjM1J5ZFdOMGIzSXVhbk5jSWlrN1hHNWpiMjV6ZENCa1pXSjFaeUE5SUNnd0xDQmtaV0oxWjE4eExtUmxabUYxYkhRcEtGd2laVzVuYVc1bExtbHZMV05zYVdWdWREcHpiMk5yWlhSY0lpazdJQzh2SUdSbFluVm5LQ2xjYm1Oc1lYTnpJRk52WTJ0bGRDQmxlSFJsYm1SeklHTnZiWEJ2Ym1WdWRGOWxiV2wwZEdWeVh6RXVSVzFwZEhSbGNpQjdYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dVMjlqYTJWMElHTnZibk4wY25WamRHOXlMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSEJoY21GdElIdFRkSEpwYm1kOFQySnFaV04wZlNCMWNta2dMU0IxY21rZ2IzSWdiM0IwYVc5dWMxeHVJQ0FnSUNBcUlFQndZWEpoYlNCN1QySnFaV04wZlNCdmNIUnpJQzBnYjNCMGFXOXVjMXh1SUNBZ0lDQXFMMXh1SUNBZ0lHTnZibk4wY25WamRHOXlLSFZ5YVN3Z2IzQjBjeUE5SUh0OUtTQjdYRzRnSUNBZ0lDQWdJSE4xY0dWeUtDazdYRzRnSUNBZ0lDQWdJSFJvYVhNdVltbHVZWEo1Vkhsd1pTQTlJSGRsWW5OdlkydGxkRjlqYjI1emRISjFZM1J2Y2w5cWMxOHhMbVJsWm1GMWJIUkNhVzVoY25sVWVYQmxPMXh1SUNBZ0lDQWdJQ0IwYUdsekxuZHlhWFJsUW5WbVptVnlJRDBnVzEwN1hHNGdJQ0FnSUNBZ0lHbG1JQ2gxY21rZ0ppWWdYQ0p2WW1wbFkzUmNJaUE5UFQwZ2RIbHdaVzltSUhWeWFTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2IzQjBjeUE5SUhWeWFUdGNiaUFnSUNBZ0lDQWdJQ0FnSUhWeWFTQTlJRzUxYkd3N1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdhV1lnS0hWeWFTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RYSnBJRDBnS0RBc0lIQmhjbk5sZFhKcFgycHpYekV1Y0dGeWMyVXBLSFZ5YVNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J2Y0hSekxtaHZjM1J1WVcxbElEMGdkWEpwTG1odmMzUTdYRzRnSUNBZ0lDQWdJQ0FnSUNCdmNIUnpMbk5sWTNWeVpTQTlJSFZ5YVM1d2NtOTBiMk52YkNBOVBUMGdYQ0pvZEhSd2Mxd2lJSHg4SUhWeWFTNXdjbTkwYjJOdmJDQTlQVDBnWENKM2MzTmNJanRjYmlBZ0lDQWdJQ0FnSUNBZ0lHOXdkSE11Y0c5eWRDQTlJSFZ5YVM1d2IzSjBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSFZ5YVM1eGRXVnllU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J2Y0hSekxuRjFaWEo1SUQwZ2RYSnBMbkYxWlhKNU8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR1ZzYzJVZ2FXWWdLRzl3ZEhNdWFHOXpkQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdiM0IwY3k1b2IzTjBibUZ0WlNBOUlDZ3dMQ0J3WVhKelpYVnlhVjlxYzE4eExuQmhjbk5sS1NodmNIUnpMbWh2YzNRcExtaHZjM1E3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0tEQXNJSFYwYVd4ZmFuTmZNUzVwYm5OMFlXeHNWR2x0WlhKR2RXNWpkR2x2Ym5NcEtIUm9hWE1zSUc5d2RITXBPMXh1SUNBZ0lDQWdJQ0IwYUdsekxuTmxZM1Z5WlNBOVhHNGdJQ0FnSUNBZ0lDQWdJQ0J1ZFd4c0lDRTlJRzl3ZEhNdWMyVmpkWEpsWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUHlCdmNIUnpMbk5sWTNWeVpWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEb2dkSGx3Wlc5bUlHeHZZMkYwYVc5dUlDRTlQU0JjSW5WdVpHVm1hVzVsWkZ3aUlDWW1JRndpYUhSMGNITTZYQ0lnUFQwOUlHeHZZMkYwYVc5dUxuQnliM1J2WTI5c08xeHVJQ0FnSUNBZ0lDQnBaaUFvYjNCMGN5NW9iM04wYm1GdFpTQW1KaUFoYjNCMGN5NXdiM0owS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0F2THlCcFppQnVieUJ3YjNKMElHbHpJSE53WldOcFptbGxaQ0J0WVc1MVlXeHNlU3dnZFhObElIUm9aU0J3Y205MGIyTnZiQ0JrWldaaGRXeDBYRzRnSUNBZ0lDQWdJQ0FnSUNCdmNIUnpMbkJ2Y25RZ1BTQjBhR2x6TG5ObFkzVnlaU0EvSUZ3aU5EUXpYQ0lnT2lCY0lqZ3dYQ0k3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2RHaHBjeTVvYjNOMGJtRnRaU0E5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnZjSFJ6TG1odmMzUnVZVzFsSUh4OFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0tIUjVjR1Z2WmlCc2IyTmhkR2x2YmlBaFBUMGdYQ0oxYm1SbFptbHVaV1JjSWlBL0lHeHZZMkYwYVc5dUxtaHZjM1J1WVcxbElEb2dYQ0pzYjJOaGJHaHZjM1JjSWlrN1hHNGdJQ0FnSUNBZ0lIUm9hWE11Y0c5eWRDQTlYRzRnSUNBZ0lDQWdJQ0FnSUNCdmNIUnpMbkJ2Y25RZ2ZIeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQW9kSGx3Wlc5bUlHeHZZMkYwYVc5dUlDRTlQU0JjSW5WdVpHVm1hVzVsWkZ3aUlDWW1JR3h2WTJGMGFXOXVMbkJ2Y25SY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQeUJzYjJOaGRHbHZiaTV3YjNKMFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRG9nZEdocGN5NXpaV04xY21WY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUQ4Z1hDSTBORE5jSWx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnT2lCY0lqZ3dYQ0lwTzF4dUlDQWdJQ0FnSUNCMGFHbHpMblJ5WVc1emNHOXlkSE1nUFNCdmNIUnpMblJ5WVc1emNHOXlkSE1nZkh3Z1cxeHVJQ0FnSUNBZ0lDQWdJQ0FnWENKd2IyeHNhVzVuWENJc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JjSW5kbFluTnZZMnRsZEZ3aUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnWENKM1pXSjBjbUZ1YzNCdmNuUmNJaXhjYmlBZ0lDQWdJQ0FnWFR0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTUzY21sMFpVSjFabVpsY2lBOUlGdGRPMXh1SUNBZ0lDQWdJQ0IwYUdsekxuQnlaWFpDZFdabVpYSk1aVzRnUFNBd08xeHVJQ0FnSUNBZ0lDQjBhR2x6TG05d2RITWdQU0JQWW1wbFkzUXVZWE56YVdkdUtIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhCaGRHZzZJRndpTDJWdVoybHVaUzVwYjF3aUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnWVdkbGJuUTZJR1poYkhObExGeHVJQ0FnSUNBZ0lDQWdJQ0FnZDJsMGFFTnlaV1JsYm5ScFlXeHpPaUJtWVd4elpTeGNiaUFnSUNBZ0lDQWdJQ0FnSUhWd1ozSmhaR1U2SUhSeWRXVXNYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFXMWxjM1JoYlhCUVlYSmhiVG9nWENKMFhDSXNYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpXMWxiV0psY2xWd1ozSmhaR1U2SUdaaGJITmxMRnh1SUNBZ0lDQWdJQ0FnSUNBZ1lXUmtWSEpoYVd4cGJtZFRiR0Z6YURvZ2RISjFaU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxhbVZqZEZWdVlYVjBhRzl5YVhwbFpEb2dkSEoxWlN4Y2JpQWdJQ0FnSUNBZ0lDQWdJSEJsY2sxbGMzTmhaMlZFWldac1lYUmxPaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdoeVpYTm9iMnhrT2lBeE1ESTBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lDQWdJQ0FnSUhSeVlXNXpjRzl5ZEU5d2RHbHZibk02SUh0OUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJ4dmMyVlBia0psWm05eVpYVnViRzloWkRvZ1ptRnNjMlVzWEc0Z0lDQWdJQ0FnSUgwc0lHOXdkSE1wTzF4dUlDQWdJQ0FnSUNCMGFHbHpMbTl3ZEhNdWNHRjBhQ0E5WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG05d2RITXVjR0YwYUM1eVpYQnNZV05sS0M5Y1hDOGtMeXdnWENKY0lpa2dLMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ2gwYUdsekxtOXdkSE11WVdSa1ZISmhhV3hwYm1kVGJHRnphQ0EvSUZ3aUwxd2lJRG9nWENKY0lpazdYRzRnSUNBZ0lDQWdJR2xtSUNoMGVYQmxiMllnZEdocGN5NXZjSFJ6TG5GMVpYSjVJRDA5UFNCY0luTjBjbWx1WjF3aUtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbTl3ZEhNdWNYVmxjbmtnUFNBb01Dd2djR0Z5YzJWeGMxOXFjMTh4TG1SbFkyOWtaU2tvZEdocGN5NXZjSFJ6TG5GMVpYSjVLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBdkx5QnpaWFFnYjI0Z2FHRnVaSE5vWVd0bFhHNGdJQ0FnSUNBZ0lIUm9hWE11YVdRZ1BTQnVkV3hzTzF4dUlDQWdJQ0FnSUNCMGFHbHpMblZ3WjNKaFpHVnpJRDBnYm5Wc2JEdGNiaUFnSUNBZ0lDQWdkR2hwY3k1d2FXNW5TVzUwWlhKMllXd2dQU0J1ZFd4c08xeHVJQ0FnSUNBZ0lDQjBhR2x6TG5CcGJtZFVhVzFsYjNWMElEMGdiblZzYkR0Y2JpQWdJQ0FnSUNBZ0x5OGdjMlYwSUc5dUlHaGxZWEowWW1WaGRGeHVJQ0FnSUNBZ0lDQjBhR2x6TG5CcGJtZFVhVzFsYjNWMFZHbHRaWElnUFNCdWRXeHNPMXh1SUNBZ0lDQWdJQ0JwWmlBb2RIbHdaVzltSUdGa1pFVjJaVzUwVEdsemRHVnVaWElnUFQwOUlGd2lablZ1WTNScGIyNWNJaWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hSb2FYTXViM0IwY3k1amJHOXpaVTl1UW1WbWIzSmxkVzVzYjJGa0tTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdMeThnUm1seVpXWnZlQ0JqYkc5elpYTWdkR2hsSUdOdmJtNWxZM1JwYjI0Z2QyaGxiaUIwYUdVZ1hDSmlaV1p2Y21WMWJteHZZV1JjSWlCbGRtVnVkQ0JwY3lCbGJXbDBkR1ZrSUdKMWRDQnViM1FnUTJoeWIyMWxMaUJVYUdseklHVjJaVzUwSUd4cGMzUmxibVZ5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z1pXNXpkWEpsY3lCbGRtVnllU0JpY205M2MyVnlJR0psYUdGMlpYTWdkR2hsSUhOaGJXVWdLRzV2SUZ3aVpHbHpZMjl1Ym1WamRGd2lJR1YyWlc1MElHRjBJSFJvWlNCVGIyTnJaWFF1U1U4Z2JHVjJaV3dnZDJobGJpQjBhR1VnY0dGblpTQnBjMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQzh2SUdOc2IzTmxaQzl5Wld4dllXUmxaQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxtSmxabTl5WlhWdWJHOWhaRVYyWlc1MFRHbHpkR1Z1WlhJZ1BTQW9LU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoMGFHbHpMblJ5WVc1emNHOXlkQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z2MybHNaVzUwYkhrZ1kyeHZjMlVnZEdobElIUnlZVzV6Y0c5eWRGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTUwY21GdWMzQnZjblF1Y21WdGIzWmxRV3hzVEdsemRHVnVaWEp6S0NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMblJ5WVc1emNHOXlkQzVqYkc5elpTZ3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmhaR1JGZG1WdWRFeHBjM1JsYm1WeUtGd2lZbVZtYjNKbGRXNXNiMkZrWENJc0lIUm9hWE11WW1WbWIzSmxkVzVzYjJGa1JYWmxiblJNYVhOMFpXNWxjaXdnWm1Gc2MyVXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIUm9hWE11YUc5emRHNWhiV1VnSVQwOUlGd2liRzlqWVd4b2IzTjBYQ0lwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbTltWm14cGJtVkZkbVZ1ZEV4cGMzUmxibVZ5SUQwZ0tDa2dQVDRnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG05dVEyeHZjMlVvWENKMGNtRnVjM0J2Y25RZ1kyeHZjMlZjSWl3Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pHVnpZM0pwY0hScGIyNDZJRndpYm1WMGQyOXlheUJqYjI1dVpXTjBhVzl1SUd4dmMzUmNJaXhjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JoWkdSRmRtVnVkRXhwYzNSbGJtVnlLRndpYjJabWJHbHVaVndpTENCMGFHbHpMbTltWm14cGJtVkZkbVZ1ZEV4cGMzUmxibVZ5TENCbVlXeHpaU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZEdocGN5NXZjR1Z1S0NrN1hHNGdJQ0FnZlZ4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVOeVpXRjBaWE1nZEhKaGJuTndiM0owSUc5bUlIUm9aU0JuYVhabGJpQjBlWEJsTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRUZEhKcGJtZDlJRzVoYldVZ0xTQjBjbUZ1YzNCdmNuUWdibUZ0WlZ4dUlDQWdJQ0FxSUVCeVpYUjFjbTRnZTFSeVlXNXpjRzl5ZEgxY2JpQWdJQ0FnS2lCQWNISnBkbUYwWlZ4dUlDQWdJQ0FxTDF4dUlDQWdJR055WldGMFpWUnlZVzV6Y0c5eWRDaHVZVzFsS1NCN1hHNGdJQ0FnSUNBZ0lHUmxZblZuS0NkamNtVmhkR2x1WnlCMGNtRnVjM0J2Y25RZ1hDSWxjMXdpSnl3Z2JtRnRaU2s3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSEYxWlhKNUlEMGdUMkpxWldOMExtRnpjMmxuYmloN2ZTd2dkR2hwY3k1dmNIUnpMbkYxWlhKNUtUdGNiaUFnSUNBZ0lDQWdMeThnWVhCd1pXNWtJR1Z1WjJsdVpTNXBieUJ3Y205MGIyTnZiQ0JwWkdWdWRHbG1hV1Z5WEc0Z0lDQWdJQ0FnSUhGMVpYSjVMa1ZKVHlBOUlHVnVaMmx1WlY5cGIxOXdZWEp6WlhKZk1TNXdjbTkwYjJOdmJEdGNiaUFnSUNBZ0lDQWdMeThnZEhKaGJuTndiM0owSUc1aGJXVmNiaUFnSUNBZ0lDQWdjWFZsY25rdWRISmhibk53YjNKMElEMGdibUZ0WlR0Y2JpQWdJQ0FnSUNBZ0x5OGdjMlZ6YzJsdmJpQnBaQ0JwWmlCM1pTQmhiSEpsWVdSNUlHaGhkbVVnYjI1bFhHNGdJQ0FnSUNBZ0lHbG1JQ2gwYUdsekxtbGtLVnh1SUNBZ0lDQWdJQ0FnSUNBZ2NYVmxjbmt1YzJsa0lEMGdkR2hwY3k1cFpEdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2IzQjBjeUE5SUU5aWFtVmpkQzVoYzNOcFoyNG9lMzBzSUhSb2FYTXViM0IwY3l3Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnY1hWbGNua3NYRzRnSUNBZ0lDQWdJQ0FnSUNCemIyTnJaWFE2SUhSb2FYTXNYRzRnSUNBZ0lDQWdJQ0FnSUNCb2IzTjBibUZ0WlRvZ2RHaHBjeTVvYjNOMGJtRnRaU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lITmxZM1Z5WlRvZ2RHaHBjeTV6WldOMWNtVXNYRzRnSUNBZ0lDQWdJQ0FnSUNCd2IzSjBPaUIwYUdsekxuQnZjblFzWEc0Z0lDQWdJQ0FnSUgwc0lIUm9hWE11YjNCMGN5NTBjbUZ1YzNCdmNuUlBjSFJwYjI1elcyNWhiV1ZkS1R0Y2JpQWdJQ0FnSUNBZ1pHVmlkV2NvWENKdmNIUnBiMjV6T2lBbGFsd2lMQ0J2Y0hSektUdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHNWxkeUJwYm1SbGVGOXFjMTh4TG5SeVlXNXpjRzl5ZEhOYmJtRnRaVjBvYjNCMGN5azdYRzRnSUNBZ2ZWeHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFbHVhWFJwWVd4cGVtVnpJSFJ5WVc1emNHOXlkQ0IwYnlCMWMyVWdZVzVrSUhOMFlYSjBjeUJ3Y205aVpTNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQndjbWwyWVhSbFhHNGdJQ0FnSUNvdlhHNGdJQ0FnYjNCbGJpZ3BJSHRjYmlBZ0lDQWdJQ0FnYkdWMElIUnlZVzV6Y0c5eWREdGNiaUFnSUNBZ0lDQWdhV1lnS0hSb2FYTXViM0IwY3k1eVpXMWxiV0psY2xWd1ozSmhaR1VnSmlaY2JpQWdJQ0FnSUNBZ0lDQWdJRk52WTJ0bGRDNXdjbWx2Y2xkbFluTnZZMnRsZEZOMVkyTmxjM01nSmlaY2JpQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWRISmhibk53YjNKMGN5NXBibVJsZUU5bUtGd2lkMlZpYzI5amEyVjBYQ0lwSUNFOVBTQXRNU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdkSEpoYm5Od2IzSjBJRDBnWENKM1pXSnpiMk5yWlhSY0lqdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JsYkhObElHbG1JQ2d3SUQwOVBTQjBhR2x6TG5SeVlXNXpjRzl5ZEhNdWJHVnVaM1JvS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0F2THlCRmJXbDBJR1Z5Y205eUlHOXVJRzVsZUhRZ2RHbGpheUJ6YnlCcGRDQmpZVzRnWW1VZ2JHbHpkR1Z1WldRZ2RHOWNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVjMlYwVkdsdFpXOTFkRVp1S0NncElEMCtJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxtVnRhWFJTWlhObGNuWmxaQ2hjSW1WeWNtOXlYQ0lzSUZ3aVRtOGdkSEpoYm5Od2IzSjBjeUJoZG1GcGJHRmliR1ZjSWlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5TENBd0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnlianRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIUnlZVzV6Y0c5eWRDQTlJSFJvYVhNdWRISmhibk53YjNKMGMxc3dYVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCMGFHbHpMbkpsWVdSNVUzUmhkR1VnUFNCY0ltOXdaVzVwYm1kY0lqdGNiaUFnSUNBZ0lDQWdMeThnVW1WMGNua2dkMmwwYUNCMGFHVWdibVY0ZENCMGNtRnVjM0J2Y25RZ2FXWWdkR2hsSUhSeVlXNXpjRzl5ZENCcGN5QmthWE5oWW14bFpDQW9hbk52Ym5BNklHWmhiSE5sS1Z4dUlDQWdJQ0FnSUNCMGNua2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RISmhibk53YjNKMElEMGdkR2hwY3k1amNtVmhkR1ZVY21GdWMzQnZjblFvZEhKaGJuTndiM0owS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQmpZWFJqYUNBb1pTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1pHVmlkV2NvWENKbGNuSnZjaUIzYUdsc1pTQmpjbVZoZEdsdVp5QjBjbUZ1YzNCdmNuUTZJQ1Z6WENJc0lHVXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTUwY21GdWMzQnZjblJ6TG5Ob2FXWjBLQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG05d1pXNG9LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5Ymp0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjBjbUZ1YzNCdmNuUXViM0JsYmlncE8xeHVJQ0FnSUNBZ0lDQjBhR2x6TG5ObGRGUnlZVzV6Y0c5eWRDaDBjbUZ1YzNCdmNuUXBPMXh1SUNBZ0lIMWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQlRaWFJ6SUhSb1pTQmpkWEp5Wlc1MElIUnlZVzV6Y0c5eWRDNGdSR2x6WVdKc1pYTWdkR2hsSUdWNGFYTjBhVzVuSUc5dVpTQW9hV1lnWVc1NUtTNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQndjbWwyWVhSbFhHNGdJQ0FnSUNvdlhHNGdJQ0FnYzJWMFZISmhibk53YjNKMEtIUnlZVzV6Y0c5eWRDa2dlMXh1SUNBZ0lDQWdJQ0JrWldKMVp5aGNJbk5sZEhScGJtY2dkSEpoYm5Od2IzSjBJQ1Z6WENJc0lIUnlZVzV6Y0c5eWRDNXVZVzFsS1R0Y2JpQWdJQ0FnSUNBZ2FXWWdLSFJvYVhNdWRISmhibk53YjNKMEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCa1pXSjFaeWhjSW1Oc1pXRnlhVzVuSUdWNGFYTjBhVzVuSUhSeVlXNXpjRzl5ZENBbGMxd2lMQ0IwYUdsekxuUnlZVzV6Y0c5eWRDNXVZVzFsS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWRISmhibk53YjNKMExuSmxiVzkyWlVGc2JFeHBjM1JsYm1WeWN5Z3BPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUM4dklITmxkQ0IxY0NCMGNtRnVjM0J2Y25SY2JpQWdJQ0FnSUNBZ2RHaHBjeTUwY21GdWMzQnZjblFnUFNCMGNtRnVjM0J2Y25RN1hHNGdJQ0FnSUNBZ0lDOHZJSE5sZENCMWNDQjBjbUZ1YzNCdmNuUWdiR2x6ZEdWdVpYSnpYRzRnSUNBZ0lDQWdJSFJ5WVc1emNHOXlkRnh1SUNBZ0lDQWdJQ0FnSUNBZ0xtOXVLRndpWkhKaGFXNWNJaXdnZEdocGN5NXZia1J5WVdsdUxtSnBibVFvZEdocGN5a3BYRzRnSUNBZ0lDQWdJQ0FnSUNBdWIyNG9YQ0p3WVdOclpYUmNJaXdnZEdocGN5NXZibEJoWTJ0bGRDNWlhVzVrS0hSb2FYTXBLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0xtOXVLRndpWlhKeWIzSmNJaXdnZEdocGN5NXZia1Z5Y205eUxtSnBibVFvZEdocGN5a3BYRzRnSUNBZ0lDQWdJQ0FnSUNBdWIyNG9YQ0pqYkc5elpWd2lMQ0FvY21WaGMyOXVLU0E5UGlCMGFHbHpMbTl1UTJ4dmMyVW9YQ0owY21GdWMzQnZjblFnWTJ4dmMyVmNJaXdnY21WaGMyOXVLU2s3WEc0Z0lDQWdmVnh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRkJ5YjJKbGN5QmhJSFJ5WVc1emNHOXlkQzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdVM1J5YVc1bmZTQnVZVzFsSUMwZ2RISmhibk53YjNKMElHNWhiV1ZjYmlBZ0lDQWdLaUJBY0hKcGRtRjBaVnh1SUNBZ0lDQXFMMXh1SUNBZ0lIQnliMkpsS0c1aGJXVXBJSHRjYmlBZ0lDQWdJQ0FnWkdWaWRXY29KM0J5YjJKcGJtY2dkSEpoYm5Od2IzSjBJRndpSlhOY0lpY3NJRzVoYldVcE8xeHVJQ0FnSUNBZ0lDQnNaWFFnZEhKaGJuTndiM0owSUQwZ2RHaHBjeTVqY21WaGRHVlVjbUZ1YzNCdmNuUW9ibUZ0WlNrN1hHNGdJQ0FnSUNBZ0lHeGxkQ0JtWVdsc1pXUWdQU0JtWVd4elpUdGNiaUFnSUNBZ0lDQWdVMjlqYTJWMExuQnlhVzl5VjJWaWMyOWphMlYwVTNWalkyVnpjeUE5SUdaaGJITmxPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnZibFJ5WVc1emNHOXlkRTl3Wlc0Z1BTQW9LU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb1ptRnBiR1ZrS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGRIVnlianRjYmlBZ0lDQWdJQ0FnSUNBZ0lHUmxZblZuS0Nkd2NtOWlaU0IwY21GdWMzQnZjblFnWENJbGMxd2lJRzl3Wlc1bFpDY3NJRzVoYldVcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZEhKaGJuTndiM0owTG5ObGJtUW9XM3NnZEhsd1pUb2dYQ0p3YVc1blhDSXNJR1JoZEdFNklGd2ljSEp2WW1WY0lpQjlYU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBjbUZ1YzNCdmNuUXViMjVqWlNoY0luQmhZMnRsZEZ3aUxDQW9iWE5uS1NBOVBpQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0daaGFXeGxaQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1TzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaGNJbkJ2Ym1kY0lpQTlQVDBnYlhObkxuUjVjR1VnSmlZZ1hDSndjbTlpWlZ3aUlEMDlQU0J0YzJjdVpHRjBZU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmtaV0oxWnlnbmNISnZZbVVnZEhKaGJuTndiM0owSUZ3aUpYTmNJaUJ3YjI1bkp5d2dibUZ0WlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWRYQm5jbUZrYVc1bklEMGdkSEoxWlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1bGJXbDBVbVZ6WlhKMlpXUW9YQ0oxY0dkeVlXUnBibWRjSWl3Z2RISmhibk53YjNKMEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tDRjBjbUZ1YzNCdmNuUXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200N1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRk52WTJ0bGRDNXdjbWx2Y2xkbFluTnZZMnRsZEZOMVkyTmxjM01nUFNCY0luZGxZbk52WTJ0bGRGd2lJRDA5UFNCMGNtRnVjM0J2Y25RdWJtRnRaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pHVmlkV2NvSjNCaGRYTnBibWNnWTNWeWNtVnVkQ0IwY21GdWMzQnZjblFnWENJbGMxd2lKeXdnZEdocGN5NTBjbUZ1YzNCdmNuUXVibUZ0WlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWRISmhibk53YjNKMExuQmhkWE5sS0NncElEMCtJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNobVlXbHNaV1FwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1TzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tGd2lZMnh2YzJWa1hDSWdQVDA5SUhSb2FYTXVjbVZoWkhsVGRHRjBaU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JrWldKMVp5aGNJbU5vWVc1bmFXNW5JSFJ5WVc1emNHOXlkQ0JoYm1RZ2MyVnVaR2x1WnlCMWNHZHlZV1JsSUhCaFkydGxkRndpS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOc1pXRnVkWEFvS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVjMlYwVkhKaGJuTndiM0owS0hSeVlXNXpjRzl5ZENrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGNtRnVjM0J2Y25RdWMyVnVaQ2hiZXlCMGVYQmxPaUJjSW5Wd1ozSmhaR1ZjSWlCOVhTazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG1WdGFYUlNaWE5sY25abFpDaGNJblZ3WjNKaFpHVmNJaXdnZEhKaGJuTndiM0owS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSeVlXNXpjRzl5ZENBOUlHNTFiR3c3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxuVndaM0poWkdsdVp5QTlJR1poYkhObE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTVtYkhWemFDZ3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1JsWW5WbktDZHdjbTlpWlNCMGNtRnVjM0J2Y25RZ1hDSWxjMXdpSUdaaGFXeGxaQ2NzSUc1aGJXVXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JsY25JZ1BTQnVaWGNnUlhKeWIzSW9YQ0p3Y205aVpTQmxjbkp2Y2x3aUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z1FIUnpMV2xuYm05eVpWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JsY25JdWRISmhibk53YjNKMElEMGdkSEpoYm5Od2IzSjBMbTVoYldVN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdVpXMXBkRkpsYzJWeWRtVmtLRndpZFhCbmNtRmtaVVZ5Y205eVhDSXNJR1Z5Y2lrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNBZ0lIMDdYRzRnSUNBZ0lDQWdJR1oxYm1OMGFXOXVJR1p5WldWNlpWUnlZVzV6Y0c5eWRDZ3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2htWVdsc1pXUXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdU8xeHVJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z1FXNTVJR05oYkd4aVlXTnJJR05oYkd4bFpDQmllU0IwY21GdWMzQnZjblFnYzJodmRXeGtJR0psSUdsbmJtOXlaV1FnYzJsdVkyVWdibTkzWEc0Z0lDQWdJQ0FnSUNBZ0lDQm1ZV2xzWldRZ1BTQjBjblZsTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMnhsWVc1MWNDZ3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RISmhibk53YjNKMExtTnNiM05sS0NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwY21GdWMzQnZjblFnUFNCdWRXeHNPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUM4dklFaGhibVJzWlNCaGJua2daWEp5YjNJZ2RHaGhkQ0JvWVhCd1pXNXpJSGRvYVd4bElIQnliMkpwYm1kY2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYjI1bGNuSnZjaUE5SUNobGNuSXBJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHVnljbTl5SUQwZ2JtVjNJRVZ5Y205eUtGd2ljSEp2WW1VZ1pYSnliM0k2SUZ3aUlDc2daWEp5S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQzh2SUVCMGN5MXBaMjV2Y21WY2JpQWdJQ0FnSUNBZ0lDQWdJR1Z5Y205eUxuUnlZVzV6Y0c5eWRDQTlJSFJ5WVc1emNHOXlkQzV1WVcxbE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWm5KbFpYcGxWSEpoYm5Od2IzSjBLQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmtaV0oxWnlnbmNISnZZbVVnZEhKaGJuTndiM0owSUZ3aUpYTmNJaUJtWVdsc1pXUWdZbVZqWVhWelpTQnZaaUJsY25KdmNqb2dKWE1uTENCdVlXMWxMQ0JsY25JcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NWxiV2wwVW1WelpYSjJaV1FvWENKMWNHZHlZV1JsUlhKeWIzSmNJaXdnWlhKeWIzSXBPMXh1SUNBZ0lDQWdJQ0I5TzF4dUlDQWdJQ0FnSUNCbWRXNWpkR2x2YmlCdmJsUnlZVzV6Y0c5eWRFTnNiM05sS0NrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYjI1bGNuSnZjaWhjSW5SeVlXNXpjRzl5ZENCamJHOXpaV1JjSWlrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdMeThnVjJobGJpQjBhR1VnYzI5amEyVjBJR2x6SUdOc2IzTmxaQ0IzYUdsc1pTQjNaU2R5WlNCd2NtOWlhVzVuWEc0Z0lDQWdJQ0FnSUdaMWJtTjBhVzl1SUc5dVkyeHZjMlVvS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J2Ym1WeWNtOXlLRndpYzI5amEyVjBJR05zYjNObFpGd2lLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBdkx5QlhhR1Z1SUhSb1pTQnpiMk5yWlhRZ2FYTWdkWEJuY21Ga1pXUWdkMmhwYkdVZ2QyVW5jbVVnY0hKdlltbHVaMXh1SUNBZ0lDQWdJQ0JtZFc1amRHbHZiaUJ2Ym5Wd1ozSmhaR1VvZEc4cElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaDBjbUZ1YzNCdmNuUWdKaVlnZEc4dWJtRnRaU0FoUFQwZ2RISmhibk53YjNKMExtNWhiV1VwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCa1pXSjFaeWduWENJbGMxd2lJSGR2Y210eklDMGdZV0p2Y25ScGJtY2dYQ0lsYzF3aUp5d2dkRzh1Ym1GdFpTd2dkSEpoYm5Od2IzSjBMbTVoYldVcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHWnlaV1Y2WlZSeVlXNXpjRzl5ZENncE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDOHZJRkpsYlc5MlpTQmhiR3dnYkdsemRHVnVaWEp6SUc5dUlIUm9aU0IwY21GdWMzQnZjblFnWVc1a0lHOXVJSE5sYkdaY2JpQWdJQ0FnSUNBZ1kyOXVjM1FnWTJ4bFlXNTFjQ0E5SUNncElEMCtJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIUnlZVzV6Y0c5eWRDNXlaVzF2ZG1WTWFYTjBaVzVsY2loY0ltOXdaVzVjSWl3Z2IyNVVjbUZ1YzNCdmNuUlBjR1Z1S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFJ5WVc1emNHOXlkQzV5WlcxdmRtVk1hWE4wWlc1bGNpaGNJbVZ5Y205eVhDSXNJRzl1WlhKeWIzSXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RISmhibk53YjNKMExuSmxiVzkyWlV4cGMzUmxibVZ5S0Z3aVkyeHZjMlZjSWl3Z2IyNVVjbUZ1YzNCdmNuUkRiRzl6WlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxtOW1aaWhjSW1Oc2IzTmxYQ0lzSUc5dVkyeHZjMlVwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1dlptWW9YQ0oxY0dkeVlXUnBibWRjSWl3Z2IyNTFjR2R5WVdSbEtUdGNiaUFnSUNBZ0lDQWdmVHRjYmlBZ0lDQWdJQ0FnZEhKaGJuTndiM0owTG05dVkyVW9YQ0p2Y0dWdVhDSXNJRzl1VkhKaGJuTndiM0owVDNCbGJpazdYRzRnSUNBZ0lDQWdJSFJ5WVc1emNHOXlkQzV2Ym1ObEtGd2laWEp5YjNKY0lpd2diMjVsY25KdmNpazdYRzRnSUNBZ0lDQWdJSFJ5WVc1emNHOXlkQzV2Ym1ObEtGd2lZMnh2YzJWY0lpd2diMjVVY21GdWMzQnZjblJEYkc5elpTazdYRzRnSUNBZ0lDQWdJSFJvYVhNdWIyNWpaU2hjSW1Oc2IzTmxYQ0lzSUc5dVkyeHZjMlVwTzF4dUlDQWdJQ0FnSUNCMGFHbHpMbTl1WTJVb1hDSjFjR2R5WVdScGJtZGNJaXdnYjI1MWNHZHlZV1JsS1R0Y2JpQWdJQ0FnSUNBZ2FXWWdLSFJvYVhNdWRYQm5jbUZrWlhNdWFXNWtaWGhQWmloY0luZGxZblJ5WVc1emNHOXlkRndpS1NBaFBUMGdMVEVnSmlaY2JpQWdJQ0FnSUNBZ0lDQWdJRzVoYldVZ0lUMDlJRndpZDJWaWRISmhibk53YjNKMFhDSXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDOHZJR1poZG05eUlGZGxZbFJ5WVc1emNHOXlkRnh1SUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTV6WlhSVWFXMWxiM1YwUm00b0tDa2dQVDRnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDZ2habUZwYkdWa0tTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSeVlXNXpjRzl5ZEM1dmNHVnVLQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdmU3dnTWpBd0tUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhSeVlXNXpjRzl5ZEM1dmNHVnVLQ2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUTJGc2JHVmtJSGRvWlc0Z1kyOXVibVZqZEdsdmJpQnBjeUJrWldWdFpXUWdiM0JsYmk1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCd2NtbDJZWFJsWEc0Z0lDQWdJQ292WEc0Z0lDQWdiMjVQY0dWdUtDa2dlMXh1SUNBZ0lDQWdJQ0JrWldKMVp5aGNJbk52WTJ0bGRDQnZjR1Z1WENJcE8xeHVJQ0FnSUNBZ0lDQjBhR2x6TG5KbFlXUjVVM1JoZEdVZ1BTQmNJbTl3Wlc1Y0lqdGNiaUFnSUNBZ0lDQWdVMjlqYTJWMExuQnlhVzl5VjJWaWMyOWphMlYwVTNWalkyVnpjeUE5SUZ3aWQyVmljMjlqYTJWMFhDSWdQVDA5SUhSb2FYTXVkSEpoYm5Od2IzSjBMbTVoYldVN1hHNGdJQ0FnSUNBZ0lIUm9hWE11WlcxcGRGSmxjMlZ5ZG1Wa0tGd2liM0JsYmx3aUtUdGNiaUFnSUNBZ0lDQWdkR2hwY3k1bWJIVnphQ2dwTzF4dUlDQWdJQ0FnSUNBdkx5QjNaU0JqYUdWamF5Qm1iM0lnWUhKbFlXUjVVM1JoZEdWZ0lHbHVJR05oYzJVZ1lXNGdZRzl3Wlc1Z1hHNGdJQ0FnSUNBZ0lDOHZJR3hwYzNSbGJtVnlJR0ZzY21WaFpIa2dZMnh2YzJWa0lIUm9aU0J6YjJOclpYUmNiaUFnSUNBZ0lDQWdhV1lnS0Z3aWIzQmxibHdpSUQwOVBTQjBhR2x6TG5KbFlXUjVVM1JoZEdVZ0ppWWdkR2hwY3k1dmNIUnpMblZ3WjNKaFpHVXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHUmxZblZuS0Z3aWMzUmhjblJwYm1jZ2RYQm5jbUZrWlNCd2NtOWlaWE5jSWlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JzWlhRZ2FTQTlJREE3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCc0lEMGdkR2hwY3k1MWNHZHlZV1JsY3k1c1pXNW5kR2c3WEc0Z0lDQWdJQ0FnSUNBZ0lDQm1iM0lnS0RzZ2FTQThJR3c3SUdrckt5a2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWNISnZZbVVvZEdocGN5NTFjR2R5WVdSbGMxdHBYU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dTR0Z1Wkd4bGN5QmhJSEJoWTJ0bGRDNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQndjbWwyWVhSbFhHNGdJQ0FnSUNvdlhHNGdJQ0FnYjI1UVlXTnJaWFFvY0dGamEyVjBLU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDaGNJbTl3Wlc1cGJtZGNJaUE5UFQwZ2RHaHBjeTV5WldGa2VWTjBZWFJsSUh4OFhHNGdJQ0FnSUNBZ0lDQWdJQ0JjSW05d1pXNWNJaUE5UFQwZ2RHaHBjeTV5WldGa2VWTjBZWFJsSUh4OFhHNGdJQ0FnSUNBZ0lDQWdJQ0JjSW1Oc2IzTnBibWRjSWlBOVBUMGdkR2hwY3k1eVpXRmtlVk4wWVhSbEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCa1pXSjFaeWduYzI5amEyVjBJSEpsWTJWcGRtVTZJSFI1Y0dVZ1hDSWxjMXdpTENCa1lYUmhJRndpSlhOY0lpY3NJSEJoWTJ0bGRDNTBlWEJsTENCd1lXTnJaWFF1WkdGMFlTazdYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbVZ0YVhSU1pYTmxjblpsWkNoY0luQmhZMnRsZEZ3aUxDQndZV05yWlhRcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z1UyOWphMlYwSUdseklHeHBkbVVnTFNCaGJua2djR0ZqYTJWMElHTnZkVzUwYzF4dUlDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1bGJXbDBVbVZ6WlhKMlpXUW9YQ0pvWldGeWRHSmxZWFJjSWlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxuSmxjMlYwVUdsdVoxUnBiV1Z2ZFhRb0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUhOM2FYUmphQ0FvY0dGamEyVjBMblI1Y0dVcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpZWE5sSUZ3aWIzQmxibHdpT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG05dVNHRnVaSE5vWVd0bEtFcFRUMDR1Y0dGeWMyVW9jR0ZqYTJWMExtUmhkR0VwS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0JjSW5CcGJtZGNJanBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTV6Wlc1a1VHRmphMlYwS0Z3aWNHOXVaMXdpS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1bGJXbDBVbVZ6WlhKMlpXUW9YQ0p3YVc1blhDSXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbVZ0YVhSU1pYTmxjblpsWkNoY0luQnZibWRjSWlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnWENKbGNuSnZjbHdpT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCbGNuSWdQU0J1WlhjZ1JYSnliM0lvWENKelpYSjJaWElnWlhKeWIzSmNJaWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDOHZJRUIwY3kxcFoyNXZjbVZjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1pYSnlMbU52WkdVZ1BTQndZV05yWlhRdVpHRjBZVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTV2YmtWeWNtOXlLR1Z5Y2lrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTmhjMlVnWENKdFpYTnpZV2RsWENJNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdVpXMXBkRkpsYzJWeWRtVmtLRndpWkdGMFlWd2lMQ0J3WVdOclpYUXVaR0YwWVNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdVpXMXBkRkpsYzJWeWRtVmtLRndpYldWemMyRm5aVndpTENCd1lXTnJaWFF1WkdGMFlTazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWkdWaWRXY29KM0JoWTJ0bGRDQnlaV05sYVhabFpDQjNhWFJvSUhOdlkydGxkQ0J5WldGa2VWTjBZWFJsSUZ3aUpYTmNJaWNzSUhSb2FYTXVjbVZoWkhsVGRHRjBaU2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUTJGc2JHVmtJSFZ3YjI0Z2FHRnVaSE5vWVd0bElHTnZiWEJzWlhScGIyNHVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UwOWlhbVZqZEgwZ1pHRjBZU0F0SUdoaGJtUnphR0ZyWlNCdlltcGNiaUFnSUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnSUNBcUwxeHVJQ0FnSUc5dVNHRnVaSE5vWVd0bEtHUmhkR0VwSUh0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVsYldsMFVtVnpaWEoyWldRb1hDSm9ZVzVrYzJoaGEyVmNJaXdnWkdGMFlTazdYRzRnSUNBZ0lDQWdJSFJvYVhNdWFXUWdQU0JrWVhSaExuTnBaRHRjYmlBZ0lDQWdJQ0FnZEdocGN5NTBjbUZ1YzNCdmNuUXVjWFZsY25rdWMybGtJRDBnWkdGMFlTNXphV1E3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVkWEJuY21Ga1pYTWdQU0IwYUdsekxtWnBiSFJsY2xWd1ozSmhaR1Z6S0dSaGRHRXVkWEJuY21Ga1pYTXBPMXh1SUNBZ0lDQWdJQ0IwYUdsekxuQnBibWRKYm5SbGNuWmhiQ0E5SUdSaGRHRXVjR2x1WjBsdWRHVnlkbUZzTzF4dUlDQWdJQ0FnSUNCMGFHbHpMbkJwYm1kVWFXMWxiM1YwSUQwZ1pHRjBZUzV3YVc1blZHbHRaVzkxZER0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV0WVhoUVlYbHNiMkZrSUQwZ1pHRjBZUzV0WVhoUVlYbHNiMkZrTzF4dUlDQWdJQ0FnSUNCMGFHbHpMbTl1VDNCbGJpZ3BPMXh1SUNBZ0lDQWdJQ0F2THlCSmJpQmpZWE5sSUc5d1pXNGdhR0Z1Wkd4bGNpQmpiRzl6WlhNZ2MyOWphMlYwWEc0Z0lDQWdJQ0FnSUdsbUlDaGNJbU5zYjNObFpGd2lJRDA5UFNCMGFHbHpMbkpsWVdSNVUzUmhkR1VwWEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200N1hHNGdJQ0FnSUNBZ0lIUm9hWE11Y21WelpYUlFhVzVuVkdsdFpXOTFkQ2dwTzF4dUlDQWdJSDFjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJUWlhSeklHRnVaQ0J5WlhObGRITWdjR2x1WnlCMGFXMWxiM1YwSUhScGJXVnlJR0poYzJWa0lHOXVJSE5sY25abGNpQndhVzVuY3k1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCd2NtbDJZWFJsWEc0Z0lDQWdJQ292WEc0Z0lDQWdjbVZ6WlhSUWFXNW5WR2x0Wlc5MWRDZ3BJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NWpiR1ZoY2xScGJXVnZkWFJHYmloMGFHbHpMbkJwYm1kVWFXMWxiM1YwVkdsdFpYSXBPMXh1SUNBZ0lDQWdJQ0IwYUdsekxuQnBibWRVYVcxbGIzVjBWR2x0WlhJZ1BTQjBhR2x6TG5ObGRGUnBiV1Z2ZFhSR2JpZ29LU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxtOXVRMnh2YzJVb1hDSndhVzVuSUhScGJXVnZkWFJjSWlrN1hHNGdJQ0FnSUNBZ0lIMHNJSFJvYVhNdWNHbHVaMGx1ZEdWeWRtRnNJQ3NnZEdocGN5NXdhVzVuVkdsdFpXOTFkQ2s3WEc0Z0lDQWdJQ0FnSUdsbUlDaDBhR2x6TG05d2RITXVZWFYwYjFWdWNtVm1LU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG5CcGJtZFVhVzFsYjNWMFZHbHRaWEl1ZFc1eVpXWW9LVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJEWVd4c1pXUWdiMjRnWUdSeVlXbHVZQ0JsZG1WdWRGeHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FIQnlhWFpoZEdWY2JpQWdJQ0FnS2k5Y2JpQWdJQ0J2YmtSeVlXbHVLQ2tnZTF4dUlDQWdJQ0FnSUNCMGFHbHpMbmR5YVhSbFFuVm1abVZ5TG5Od2JHbGpaU2d3TENCMGFHbHpMbkJ5WlhaQ2RXWm1aWEpNWlc0cE8xeHVJQ0FnSUNBZ0lDQXZMeUJ6WlhSMGFXNW5JSEJ5WlhaQ2RXWm1aWEpNWlc0Z1BTQXdJR2x6SUhabGNua2dhVzF3YjNKMFlXNTBYRzRnSUNBZ0lDQWdJQzh2SUdadmNpQmxlR0Z0Y0d4bExDQjNhR1Z1SUhWd1ozSmhaR2x1Wnl3Z2RYQm5jbUZrWlNCd1lXTnJaWFFnYVhNZ2MyVnVkQ0J2ZG1WeUxGeHVJQ0FnSUNBZ0lDQXZMeUJoYm1RZ1lTQnViMjU2WlhKdklIQnlaWFpDZFdabVpYSk1aVzRnWTI5MWJHUWdZMkYxYzJVZ2NISnZZbXhsYlhNZ2IyNGdZR1J5WVdsdVlGeHVJQ0FnSUNBZ0lDQjBhR2x6TG5CeVpYWkNkV1ptWlhKTVpXNGdQU0F3TzF4dUlDQWdJQ0FnSUNCcFppQW9NQ0E5UFQwZ2RHaHBjeTUzY21sMFpVSjFabVpsY2k1c1pXNW5kR2dwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdVpXMXBkRkpsYzJWeWRtVmtLRndpWkhKaGFXNWNJaWs3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG1ac2RYTm9LQ2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUm14MWMyZ2dkM0pwZEdVZ1luVm1abVZ5Y3k1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCd2NtbDJZWFJsWEc0Z0lDQWdJQ292WEc0Z0lDQWdabXgxYzJnb0tTQjdYRzRnSUNBZ0lDQWdJR2xtSUNoY0ltTnNiM05sWkZ3aUlDRTlQU0IwYUdsekxuSmxZV1I1VTNSaGRHVWdKaVpjYmlBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11ZEhKaGJuTndiM0owTG5keWFYUmhZbXhsSUNZbVhHNGdJQ0FnSUNBZ0lDQWdJQ0FoZEdocGN5NTFjR2R5WVdScGJtY2dKaVpjYmlBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11ZDNKcGRHVkNkV1ptWlhJdWJHVnVaM1JvS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQndZV05yWlhSeklEMGdkR2hwY3k1blpYUlhjbWwwWVdKc1pWQmhZMnRsZEhNb0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdSbFluVm5LRndpWm14MWMyaHBibWNnSldRZ2NHRmphMlYwY3lCcGJpQnpiMk5yWlhSY0lpd2djR0ZqYTJWMGN5NXNaVzVuZEdncE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NTBjbUZ1YzNCdmNuUXVjMlZ1WkNod1lXTnJaWFJ6S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQzh2SUd0bFpYQWdkSEpoWTJzZ2IyWWdZM1Z5Y21WdWRDQnNaVzVuZEdnZ2IyWWdkM0pwZEdWQ2RXWm1aWEpjYmlBZ0lDQWdJQ0FnSUNBZ0lDOHZJSE53YkdsalpTQjNjbWwwWlVKMVptWmxjaUJoYm1RZ1kyRnNiR0poWTJ0Q2RXWm1aWElnYjI0Z1lHUnlZV2x1WUZ4dUlDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1d2NtVjJRblZtWm1WeVRHVnVJRDBnY0dGamEyVjBjeTVzWlc1bmRHZzdYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbVZ0YVhSU1pYTmxjblpsWkNoY0ltWnNkWE5vWENJcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFVnVjM1Z5WlNCMGFHVWdaVzVqYjJSbFpDQnphWHBsSUc5bUlIUm9aU0IzY21sMFpVSjFabVpsY2lCcGN5QmlaV3h2ZHlCMGFHVWdiV0Y0VUdGNWJHOWhaQ0IyWVd4MVpTQnpaVzUwSUdKNUlIUm9aU0J6WlhKMlpYSWdLRzl1YkhrZ1ptOXlJRWhVVkZCY2JpQWdJQ0FnS2lCc2IyNW5MWEJ2Ykd4cGJtY3BYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjSEpwZG1GMFpWeHVJQ0FnSUNBcUwxeHVJQ0FnSUdkbGRGZHlhWFJoWW14bFVHRmphMlYwY3lncElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2MyaHZkV3hrUTJobFkydFFZWGxzYjJGa1UybDZaU0E5SUhSb2FYTXViV0Y0VUdGNWJHOWhaQ0FtSmx4dUlDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1MGNtRnVjM0J2Y25RdWJtRnRaU0E5UFQwZ1hDSndiMnhzYVc1blhDSWdKaVpjYmlBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11ZDNKcGRHVkNkV1ptWlhJdWJHVnVaM1JvSUQ0Z01UdGNiaUFnSUNBZ0lDQWdhV1lnS0NGemFHOTFiR1JEYUdWamExQmhlV3h2WVdSVGFYcGxLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTUzY21sMFpVSjFabVpsY2p0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnNaWFFnY0dGNWJHOWhaRk5wZW1VZ1BTQXhPeUF2THlCbWFYSnpkQ0J3WVdOclpYUWdkSGx3WlZ4dUlDQWdJQ0FnSUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElIUm9hWE11ZDNKcGRHVkNkV1ptWlhJdWJHVnVaM1JvT3lCcEt5c3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUdSaGRHRWdQU0IwYUdsekxuZHlhWFJsUW5WbVptVnlXMmxkTG1SaGRHRTdYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9aR0YwWVNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIQmhlV3h2WVdSVGFYcGxJQ3M5SUNnd0xDQjFkR2xzWDJwelh6RXVZbmwwWlV4bGJtZDBhQ2tvWkdGMFlTazdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2FTQStJREFnSmlZZ2NHRjViRzloWkZOcGVtVWdQaUIwYUdsekxtMWhlRkJoZVd4dllXUXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JrWldKMVp5aGNJbTl1YkhrZ2MyVnVaQ0FsWkNCdmRYUWdiMllnSldRZ2NHRmphMlYwYzF3aUxDQnBMQ0IwYUdsekxuZHlhWFJsUW5WbVptVnlMbXhsYm1kMGFDazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11ZDNKcGRHVkNkV1ptWlhJdWMyeHBZMlVvTUN3Z2FTazdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0J3WVhsc2IyRmtVMmw2WlNBclBTQXlPeUF2THlCelpYQmhjbUYwYjNJZ0t5QndZV05yWlhRZ2RIbHdaVnh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdSbFluVm5LRndpY0dGNWJHOWhaQ0J6YVhwbElHbHpJQ1ZrSUNodFlYZzZJQ1ZrS1Z3aUxDQndZWGxzYjJGa1UybDZaU3dnZEdocGN5NXRZWGhRWVhsc2IyRmtLVHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdWQzSnBkR1ZDZFdabVpYSTdYRzRnSUNBZ2ZWeHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlGTmxibVJ6SUdFZ2JXVnpjMkZuWlM1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3VTNSeWFXNW5mU0J0YzJjZ0xTQnRaWE56WVdkbExseHVJQ0FnSUNBcUlFQndZWEpoYlNCN1QySnFaV04wZlNCdmNIUnBiMjV6TGx4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3Um5WdVkzUnBiMjU5SUdOaGJHeGlZV05ySUdaMWJtTjBhVzl1TGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTRnZTFOdlkydGxkSDBnWm05eUlHTm9ZV2x1YVc1bkxseHVJQ0FnSUNBcUwxeHVJQ0FnSUhkeWFYUmxLRzF6Wnl3Z2IzQjBhVzl1Y3l3Z1ptNHBJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXpaVzVrVUdGamEyVjBLRndpYldWemMyRm5aVndpTENCdGMyY3NJRzl3ZEdsdmJuTXNJR1p1S1R0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTTdYRzRnSUNBZ2ZWeHVJQ0FnSUhObGJtUW9iWE5uTENCdmNIUnBiMjV6TENCbWJpa2dlMXh1SUNBZ0lDQWdJQ0IwYUdsekxuTmxibVJRWVdOclpYUW9YQ0p0WlhOellXZGxYQ0lzSUcxelp5d2diM0IwYVc5dWN5d2dabTRwTzF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZEdocGN6dGNiaUFnSUNCOVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1UyVnVaSE1nWVNCd1lXTnJaWFF1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMU4wY21sdVozMGdkSGx3WlRvZ2NHRmphMlYwSUhSNWNHVXVYRzRnSUNBZ0lDb2dRSEJoY21GdElIdFRkSEpwYm1kOUlHUmhkR0V1WEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHRQWW1wbFkzUjlJRzl3ZEdsdmJuTXVYRzRnSUNBZ0lDb2dRSEJoY21GdElIdEdkVzVqZEdsdmJuMGdabTRnTFNCallXeHNZbUZqYXlCbWRXNWpkR2x2Ymk1Y2JpQWdJQ0FnS2lCQWNISnBkbUYwWlZ4dUlDQWdJQ0FxTDF4dUlDQWdJSE5sYm1SUVlXTnJaWFFvZEhsd1pTd2daR0YwWVN3Z2IzQjBhVzl1Y3l3Z1ptNHBJSHRjYmlBZ0lDQWdJQ0FnYVdZZ0tGd2lablZ1WTNScGIyNWNJaUE5UFQwZ2RIbHdaVzltSUdSaGRHRXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHWnVJRDBnWkdGMFlUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdSaGRHRWdQU0IxYm1SbFptbHVaV1E3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2FXWWdLRndpWm5WdVkzUnBiMjVjSWlBOVBUMGdkSGx3Wlc5bUlHOXdkR2x2Ym5NcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdadUlEMGdiM0IwYVc5dWN6dGNiaUFnSUNBZ0lDQWdJQ0FnSUc5d2RHbHZibk1nUFNCdWRXeHNPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdsbUlDaGNJbU5zYjNOcGJtZGNJaUE5UFQwZ2RHaHBjeTV5WldGa2VWTjBZWFJsSUh4OElGd2lZMnh2YzJWa1hDSWdQVDA5SUhSb2FYTXVjbVZoWkhsVGRHRjBaU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdU8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJRzl3ZEdsdmJuTWdQU0J2Y0hScGIyNXpJSHg4SUh0OU8xeHVJQ0FnSUNBZ0lDQnZjSFJwYjI1ekxtTnZiWEJ5WlhOeklEMGdabUZzYzJVZ0lUMDlJRzl3ZEdsdmJuTXVZMjl0Y0hKbGMzTTdYRzRnSUNBZ0lDQWdJR052Ym5OMElIQmhZMnRsZENBOUlIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhSNWNHVTZJSFI1Y0dVc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JrWVhSaE9pQmtZWFJoTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdiM0IwYVc5dWN6b2diM0IwYVc5dWN5eGNiaUFnSUNBZ0lDQWdmVHRjYmlBZ0lDQWdJQ0FnZEdocGN5NWxiV2wwVW1WelpYSjJaV1FvWENKd1lXTnJaWFJEY21WaGRHVmNJaXdnY0dGamEyVjBLVHRjYmlBZ0lDQWdJQ0FnZEdocGN5NTNjbWwwWlVKMVptWmxjaTV3ZFhOb0tIQmhZMnRsZENrN1hHNGdJQ0FnSUNBZ0lHbG1JQ2htYmlsY2JpQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWIyNWpaU2hjSW1ac2RYTm9YQ0lzSUdadUtUdGNiaUFnSUNBZ0lDQWdkR2hwY3k1bWJIVnphQ2dwTzF4dUlDQWdJSDFjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJEYkc5elpYTWdkR2hsSUdOdmJtNWxZM1JwYjI0dVhHNGdJQ0FnSUNvdlhHNGdJQ0FnWTJ4dmMyVW9LU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR05zYjNObElEMGdLQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXZia05zYjNObEtGd2labTl5WTJWa0lHTnNiM05sWENJcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWkdWaWRXY29YQ0p6YjJOclpYUWdZMnh2YzJsdVp5QXRJSFJsYkd4cGJtY2dkSEpoYm5Od2IzSjBJSFJ2SUdOc2IzTmxYQ0lwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1MGNtRnVjM0J2Y25RdVkyeHZjMlVvS1R0Y2JpQWdJQ0FnSUNBZ2ZUdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ1kyeGxZVzUxY0VGdVpFTnNiM05sSUQwZ0tDa2dQVDRnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1dlptWW9YQ0oxY0dkeVlXUmxYQ0lzSUdOc1pXRnVkWEJCYm1SRGJHOXpaU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG05bVppaGNJblZ3WjNKaFpHVkZjbkp2Y2x3aUxDQmpiR1ZoYm5Wd1FXNWtRMnh2YzJVcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJ4dmMyVW9LVHRjYmlBZ0lDQWdJQ0FnZlR0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnZDJGcGRFWnZjbFZ3WjNKaFpHVWdQU0FvS1NBOVBpQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBdkx5QjNZV2wwSUdadmNpQjFjR2R5WVdSbElIUnZJR1pwYm1semFDQnphVzVqWlNCM1pTQmpZVzRuZENCelpXNWtJSEJoWTJ0bGRITWdkMmhwYkdVZ2NHRjFjMmx1WnlCaElIUnlZVzV6Y0c5eWRGeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXZibU5sS0Z3aWRYQm5jbUZrWlZ3aUxDQmpiR1ZoYm5Wd1FXNWtRMnh2YzJVcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXZibU5sS0Z3aWRYQm5jbUZrWlVWeWNtOXlYQ0lzSUdOc1pXRnVkWEJCYm1SRGJHOXpaU2s3WEc0Z0lDQWdJQ0FnSUgwN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hjSW05d1pXNXBibWRjSWlBOVBUMGdkR2hwY3k1eVpXRmtlVk4wWVhSbElIeDhJRndpYjNCbGJsd2lJRDA5UFNCMGFHbHpMbkpsWVdSNVUzUmhkR1VwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWNtVmhaSGxUZEdGMFpTQTlJRndpWTJ4dmMybHVaMXdpTzF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hSb2FYTXVkM0pwZEdWQ2RXWm1aWEl1YkdWdVozUm9LU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXZibU5sS0Z3aVpISmhhVzVjSWl3Z0tDa2dQVDRnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvZEdocGN5NTFjR2R5WVdScGJtY3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSGRoYVhSR2IzSlZjR2R5WVdSbEtDazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamJHOXpaU2dwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNCbGJITmxJR2xtSUNoMGFHbHpMblZ3WjNKaFpHbHVaeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhkaGFYUkdiM0pWY0dkeVlXUmxLQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYkc5elpTZ3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TzF4dUlDQWdJSDFjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJEWVd4c1pXUWdkWEJ2YmlCMGNtRnVjM0J2Y25RZ1pYSnliM0pjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ3Y21sMllYUmxYRzRnSUNBZ0lDb3ZYRzRnSUNBZ2IyNUZjbkp2Y2lobGNuSXBJSHRjYmlBZ0lDQWdJQ0FnWkdWaWRXY29YQ0p6YjJOclpYUWdaWEp5YjNJZ0pXcGNJaXdnWlhKeUtUdGNiaUFnSUNBZ0lDQWdVMjlqYTJWMExuQnlhVzl5VjJWaWMyOWphMlYwVTNWalkyVnpjeUE5SUdaaGJITmxPMXh1SUNBZ0lDQWdJQ0IwYUdsekxtVnRhWFJTWlhObGNuWmxaQ2hjSW1WeWNtOXlYQ0lzSUdWeWNpazdYRzRnSUNBZ0lDQWdJSFJvYVhNdWIyNURiRzl6WlNoY0luUnlZVzV6Y0c5eWRDQmxjbkp2Y2x3aUxDQmxjbklwTzF4dUlDQWdJSDFjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJEWVd4c1pXUWdkWEJ2YmlCMGNtRnVjM0J2Y25RZ1kyeHZjMlV1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBY0hKcGRtRjBaVnh1SUNBZ0lDQXFMMXh1SUNBZ0lHOXVRMnh2YzJVb2NtVmhjMjl1TENCa1pYTmpjbWx3ZEdsdmJpa2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb1hDSnZjR1Z1YVc1blhDSWdQVDA5SUhSb2FYTXVjbVZoWkhsVGRHRjBaU0I4ZkZ4dUlDQWdJQ0FnSUNBZ0lDQWdYQ0p2Y0dWdVhDSWdQVDA5SUhSb2FYTXVjbVZoWkhsVGRHRjBaU0I4ZkZ4dUlDQWdJQ0FnSUNBZ0lDQWdYQ0pqYkc5emFXNW5YQ0lnUFQwOUlIUm9hWE11Y21WaFpIbFRkR0YwWlNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWkdWaWRXY29KM052WTJ0bGRDQmpiRzl6WlNCM2FYUm9JSEpsWVhOdmJqb2dYQ0lsYzF3aUp5d2djbVZoYzI5dUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUM4dklHTnNaV0Z5SUhScGJXVnljMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTVqYkdWaGNsUnBiV1Z2ZFhSR2JpaDBhR2x6TG5CcGJtZFVhVzFsYjNWMFZHbHRaWElwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdMeThnYzNSdmNDQmxkbVZ1ZENCbWNtOXRJR1pwY21sdVp5QmhaMkZwYmlCbWIzSWdkSEpoYm5Od2IzSjBYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMblJ5WVc1emNHOXlkQzV5WlcxdmRtVkJiR3hNYVhOMFpXNWxjbk1vWENKamJHOXpaVndpS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQzh2SUdWdWMzVnlaU0IwY21GdWMzQnZjblFnZDI5dUozUWdjM1JoZVNCdmNHVnVYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMblJ5WVc1emNHOXlkQzVqYkc5elpTZ3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0x5OGdhV2R1YjNKbElHWjFjblJvWlhJZ2RISmhibk53YjNKMElHTnZiVzExYm1sallYUnBiMjVjYmlBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11ZEhKaGJuTndiM0owTG5KbGJXOTJaVUZzYkV4cGMzUmxibVZ5Y3lncE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIUjVjR1Z2WmlCeVpXMXZkbVZGZG1WdWRFeHBjM1JsYm1WeUlEMDlQU0JjSW1aMWJtTjBhVzl1WENJcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaVzF2ZG1WRmRtVnVkRXhwYzNSbGJtVnlLRndpWW1WbWIzSmxkVzVzYjJGa1hDSXNJSFJvYVhNdVltVm1iM0psZFc1c2IyRmtSWFpsYm5STWFYTjBaVzVsY2l3Z1ptRnNjMlVwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGJXOTJaVVYyWlc1MFRHbHpkR1Z1WlhJb1hDSnZabVpzYVc1bFhDSXNJSFJvYVhNdWIyWm1iR2x1WlVWMlpXNTBUR2x6ZEdWdVpYSXNJR1poYkhObEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJQzh2SUhObGRDQnlaV0ZrZVNCemRHRjBaVnh1SUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTV5WldGa2VWTjBZWFJsSUQwZ1hDSmpiRzl6WldSY0lqdGNiaUFnSUNBZ0lDQWdJQ0FnSUM4dklHTnNaV0Z5SUhObGMzTnBiMjRnYVdSY2JpQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWFXUWdQU0J1ZFd4c08xeHVJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z1pXMXBkQ0JqYkc5elpTQmxkbVZ1ZEZ4dUlDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1bGJXbDBVbVZ6WlhKMlpXUW9YQ0pqYkc5elpWd2lMQ0J5WldGemIyNHNJR1JsYzJOeWFYQjBhVzl1S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQzh2SUdOc1pXRnVJR0oxWm1abGNuTWdZV1owWlhJc0lITnZJSFZ6WlhKeklHTmhiaUJ6ZEdsc2JGeHVJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z1ozSmhZaUIwYUdVZ1luVm1abVZ5Y3lCdmJpQmdZMnh2YzJWZ0lHVjJaVzUwWEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG5keWFYUmxRblZtWm1WeUlEMGdXMTA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG5CeVpYWkNkV1ptWlhKTVpXNGdQU0F3TzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVacGJIUmxjbk1nZFhCbmNtRmtaWE1zSUhKbGRIVnlibWx1WnlCdmJteDVJSFJvYjNObElHMWhkR05vYVc1bklHTnNhV1Z1ZENCMGNtRnVjM0J2Y25SekxseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0QmNuSmhlWDBnZFhCbmNtRmtaWE1nTFNCelpYSjJaWElnZFhCbmNtRmtaWE5jYmlBZ0lDQWdLaUJBY0hKcGRtRjBaVnh1SUNBZ0lDQXFMMXh1SUNBZ0lHWnBiSFJsY2xWd1ozSmhaR1Z6S0hWd1ozSmhaR1Z6S1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdacGJIUmxjbVZrVlhCbmNtRmtaWE1nUFNCYlhUdGNiaUFnSUNBZ0lDQWdiR1YwSUdrZ1BTQXdPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnFJRDBnZFhCbmNtRmtaWE11YkdWdVozUm9PMXh1SUNBZ0lDQWdJQ0JtYjNJZ0tEc2dhU0E4SUdvN0lHa3JLeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0g1MGFHbHpMblJ5WVc1emNHOXlkSE11YVc1a1pYaFBaaWgxY0dkeVlXUmxjMXRwWFNrcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1ptbHNkR1Z5WldSVmNHZHlZV1JsY3k1d2RYTm9LSFZ3WjNKaFpHVnpXMmxkS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1ptbHNkR1Z5WldSVmNHZHlZV1JsY3p0Y2JpQWdJQ0I5WEc1OVhHNWxlSEJ2Y25SekxsTnZZMnRsZENBOUlGTnZZMnRsZER0Y2JsTnZZMnRsZEM1d2NtOTBiMk52YkNBOUlHVnVaMmx1WlY5cGIxOXdZWEp6WlhKZk1TNXdjbTkwYjJOdmJEdGNiaUlzSWx3aWRYTmxJSE4wY21samRGd2lPMXh1ZG1GeUlGOWZhVzF3YjNKMFJHVm1ZWFZzZENBOUlDaDBhR2x6SUNZbUlIUm9hWE11WDE5cGJYQnZjblJFWldaaGRXeDBLU0I4ZkNCbWRXNWpkR2x2YmlBb2JXOWtLU0I3WEc0Z0lDQWdjbVYwZFhKdUlDaHRiMlFnSmlZZ2JXOWtMbDlmWlhOTmIyUjFiR1VwSUQ4Z2JXOWtJRG9nZXlCY0ltUmxabUYxYkhSY0lqb2diVzlrSUgwN1hHNTlPMXh1VDJKcVpXTjBMbVJsWm1sdVpWQnliM0JsY25SNUtHVjRjRzl5ZEhNc0lGd2lYMTlsYzAxdlpIVnNaVndpTENCN0lIWmhiSFZsT2lCMGNuVmxJSDBwTzF4dVpYaHdiM0owY3k1emRHRjBkWE5FYVhOd1lYUmphR1ZrSUQwZ1pYaHdiM0owY3k1emRHRjBkWE5FYVhOd1lYUmphR2x1WnlBOUlHVjRjRzl5ZEhNdWMzUmhkSFZ6VW1WemNHOXVjMlZrSUQwZ1pYaHdiM0owY3k1emRHRjBkWE5TWlhOd2IyNXphVzVuSUQwZ1pYaHdiM0owY3k1emRHRjBkWE5TWlhGMVpYTjBhVzVuSUQwZ1pYaHdiM0owY3k1emRHRjBkWE5WYmxSMWJtNXBibWNnUFNCbGVIQnZjblJ6TG5OMFlYUjFjMVIxYm1Wa0lEMGdaWGh3YjNKMGN5NXpkR0YwZFhOVWRXNXVhVzVuSUQwZ2RtOXBaQ0F3TzF4dVkyOXVjM1FnVkc5VFpYSjJaWEpmTVNBOUlGOWZhVzF3YjNKMFJHVm1ZWFZzZENoeVpYRjFhWEpsS0Z3aUxpOVViMU5sY25abGNsd2lLU2s3WEc1bGVIQnZjblJ6TG5OMFlYUjFjMVIxYm01cGJtY2dQU0FuZEhWdWJtbHVaeWM3WEc1bGVIQnZjblJ6TG5OMFlYUjFjMVIxYm1Wa0lEMGdKM1IxYm1Wa0p6dGNibVY0Y0c5eWRITXVjM1JoZEhWelZXNVVkVzV1YVc1bklEMGdKM1Z1ZEhWdWJtbHVaeWM3WEc1bGVIQnZjblJ6TG5OMFlYUjFjMUpsY1hWbGMzUnBibWNnUFNBbmNtVnhkV1Z6ZEdsdVp5YzdYRzVsZUhCdmNuUnpMbk4wWVhSMWMxSmxjM0J2Ym5OcGJtY2dQU0FuY21WemNHOXVjMmx1WnljN1hHNWxlSEJ2Y25SekxuTjBZWFIxYzFKbGMzQnZibk5sWkNBOUlDZHlaWE53YjI1elpXUW5PMXh1Wlhod2IzSjBjeTV6ZEdGMGRYTkVhWE53WVhSamFHbHVaeUE5SUNka2FYTndZWFJqYUdsdVp5YzdYRzVsZUhCdmNuUnpMbk4wWVhSMWMwUnBjM0JoZEdOb1pXUWdQU0FuWkdsemNHRjBZMmhsWkNjN1hHNHZMeUJOUlUxUE9pRGpnNi9qZzd6amdxdmpnN3pqZ2Evamc2L2pnN3pqZ3F2amc3empncExubEovbWlKRGpnYWZqZ1kzamdvdGNibU5zWVhOeklGZHpjMWR2Y210bGNpQjdYRzRnSUNBZ1kyOXVjM1J5ZFdOMGIzSW9kMjl5YTJWeUtTQjdYRzRnSUNBZ0lDQWdJSFJvYVhNdWIyNU5aWE56WVdkbElEMGdkR2hwY3k1dmJrMWxjM05oWjJVdVltbHVaQ2gwYUdsektUdGNiaUFnSUNBZ0lDQWdkR2hwY3k1dmJrMWxjM05oWjJWRmNuSnZjaUE5SUhSb2FYTXViMjVOWlhOellXZGxSWEp5YjNJdVltbHVaQ2gwYUdsektUdGNiaUFnSUNBZ0lDQWdkR2hwY3k1d2IzTjBUV1Z6YzJGblpTQTlJSFJvYVhNdWNHOXpkRTFsYzNOaFoyVXVZbWx1WkNoMGFHbHpLVHRjYmlBZ0lDQWdJQ0FnZEdocGN5NTNiM0pyWlhJZ1BTQjNiM0pyWlhJN1hHNGdJQ0FnSUNBZ0lIUm9hWE11ZDI5eWEyVnlMbTl1WlhKeWIzSWdQU0IwYUdsekxtOXVUV1Z6YzJGblpVVnljbTl5TzF4dUlDQWdJQ0FnSUNCMGFHbHpMbmR2Y210bGNpNXZibTFsYzNOaFoyVWdQU0IwYUdsekxtOXVUV1Z6YzJGblpUdGNiaUFnSUNBZ0lDQWdkR2hwY3k1MGIxTmxjblpsY2lBOUlHNWxkeUJVYjFObGNuWmxjbDh4TG1SbFptRjFiSFFvZEdocGN5azdYRzRnSUNBZ2ZWeHVJQ0FnSUhCdmMzUk5aWE56WVdkbEtIc2djR2xrTENCMGRXNWxTV1FzSUcxbGRHaHZaQ3dnYzJWeWRtVnlWRzlCY0dsVWVYQmxMQ0JoY0dsVGRHRjBaU0I5S1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2h3YVdRZ0ppWWdkSFZ1WlVsa0lDWW1JRzFsZEdodlpDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTUzYjNKclpYSXVjRzl6ZEUxbGMzTmhaMlVvZXlCd2FXUXNJSFIxYm1WSlpDd2diV1YwYUc5a0xDQnpaWEoyWlhKVWIwRndhVlI1Y0dVc0lHRndhVk4wWVhSbElIMHBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNBZ0lHOXVUV1Z6YzJGblpTaGxLU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSHNnY0dsa0xDQjBkVzVsU1dRc0lHMWxkR2h2WkN3Z2MyVnlkbVZ5Vkc5QmNHbFVlWEJsTENCaGNHbFRkR0YwWlNCOUlEMGdaUzVrWVhSaE8xeHVJQ0FnSUNBZ0lDQnBaaUFvY0dsa0lDWW1JSFIxYm1WSlpDQW1KaUJ0WlhSb2IyUWdKaVlnWVhCcFUzUmhkR1VwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWRHOVRaWEoyWlhJdVpYaGxLSEJwWkN3Z2RIVnVaVWxrTENCdFpYUm9iMlFzSUdGd2FWTjBZWFJsS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdJQ0J2YmsxbGMzTmhaMlZGY25KdmNpaGxLU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTnZiR1V1ZDJGeWJpaGxLVHRjYmlBZ0lDQjlYRzU5WEc1bGVIQnZjblJ6TG1SbFptRjFiSFFnUFNCWGMzTlhiM0pyWlhJN1hHNXVaWGNnVjNOelYyOXlhMlZ5S0hObGJHWXBPMXh1SWl3aVhDSjFjMlVnYzNSeWFXTjBYQ0k3WEc0dkx5QnBiWEJ2Y25SbFpDQm1jbTl0SUdoMGRIQnpPaTh2WjJsMGFIVmlMbU52YlM5bllXeHJiaTl4ZFdWeWVYTjBjbWx1WjF4dUx5b3FYRzRnS2lCRGIyMXdhV3hsY3lCaElIRjFaWEo1YzNSeWFXNW5YRzRnS2lCU1pYUjFjbTV6SUhOMGNtbHVaeUJ5WlhCeVpYTmxiblJoZEdsdmJpQnZaaUIwYUdVZ2IySnFaV04wWEc0Z0tseHVJQ29nUUhCaGNtRnRJSHRQWW1wbFkzUjlYRzRnS2lCQVlYQnBJSEJ5YVhaaGRHVmNiaUFxTDF4dVQySnFaV04wTG1SbFptbHVaVkJ5YjNCbGNuUjVLR1Y0Y0c5eWRITXNJRndpWDE5bGMwMXZaSFZzWlZ3aUxDQjdJSFpoYkhWbE9pQjBjblZsSUgwcE8xeHVaWGh3YjNKMGN5NWtaV052WkdVZ1BTQmxlSEJ2Y25SekxtVnVZMjlrWlNBOUlIWnZhV1FnTUR0Y2JtWjFibU4wYVc5dUlHVnVZMjlrWlNodlltb3BJSHRjYmlBZ0lDQnNaWFFnYzNSeUlEMGdKeWM3WEc0Z0lDQWdabTl5SUNoc1pYUWdhU0JwYmlCdlltb3BJSHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHOWlhaTVvWVhOUGQyNVFjbTl3WlhKMGVTaHBLU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hOMGNpNXNaVzVuZEdncFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2MzUnlJQ3M5SUNjbUp6dGNiaUFnSUNBZ0lDQWdJQ0FnSUhOMGNpQXJQU0JsYm1OdlpHVlZVa2xEYjIxd2IyNWxiblFvYVNrZ0t5QW5QU2NnS3lCbGJtTnZaR1ZWVWtsRGIyMXdiMjVsYm5Rb2IySnFXMmxkS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdjM1J5TzF4dWZWeHVaWGh3YjNKMGN5NWxibU52WkdVZ1BTQmxibU52WkdVN1hHNHZLaXBjYmlBcUlGQmhjbk5sY3lCaElITnBiWEJzWlNCeGRXVnllWE4wY21sdVp5QnBiblJ2SUdGdUlHOWlhbVZqZEZ4dUlDcGNiaUFxSUVCd1lYSmhiU0I3VTNSeWFXNW5mU0J4YzF4dUlDb2dRR0Z3YVNCd2NtbDJZWFJsWEc0Z0tpOWNibVoxYm1OMGFXOXVJR1JsWTI5a1pTaHhjeWtnZTF4dUlDQWdJR3hsZENCeGNua2dQU0I3ZlR0Y2JpQWdJQ0JzWlhRZ2NHRnBjbk1nUFNCeGN5NXpjR3hwZENnbkppY3BPMXh1SUNBZ0lHWnZjaUFvYkdWMElHa2dQU0F3TENCc0lEMGdjR0ZwY25NdWJHVnVaM1JvT3lCcElEd2diRHNnYVNzcktTQjdYRzRnSUNBZ0lDQWdJR3hsZENCd1lXbHlJRDBnY0dGcGNuTmJhVjB1YzNCc2FYUW9KejBuS1R0Y2JpQWdJQ0FnSUNBZ2NYSjVXMlJsWTI5a1pWVlNTVU52YlhCdmJtVnVkQ2h3WVdseVd6QmRLVjBnUFNCa1pXTnZaR1ZWVWtsRGIyMXdiMjVsYm5Rb2NHRnBjbHN4WFNrN1hHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQnhjbms3WEc1OVhHNWxlSEJ2Y25SekxtUmxZMjlrWlNBOUlHUmxZMjlrWlR0Y2JpSXNJbHdpZFhObElITjBjbWxqZEZ3aU8xeHVkbUZ5SUY5ZmFXMXdiM0owUkdWbVlYVnNkQ0E5SUNoMGFHbHpJQ1ltSUhSb2FYTXVYMTlwYlhCdmNuUkVaV1poZFd4MEtTQjhmQ0JtZFc1amRHbHZiaUFvYlc5a0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUNodGIyUWdKaVlnYlc5a0xsOWZaWE5OYjJSMWJHVXBJRDhnYlc5a0lEb2dleUJjSW1SbFptRjFiSFJjSWpvZ2JXOWtJSDA3WEc1OU8xeHVUMkpxWldOMExtUmxabWx1WlZCeWIzQmxjblI1S0dWNGNHOXlkSE1zSUZ3aVgxOWxjMDF2WkhWc1pWd2lMQ0I3SUhaaGJIVmxPaUIwY25WbElIMHBPMXh1Wlhod2IzSjBjeTVYVXlBOUlIWnZhV1FnTUR0Y2JtTnZibk4wSUhSeVlXNXpjRzl5ZEY5cWMxOHhJRDBnY21WeGRXbHlaU2hjSWk0dUwzUnlZVzV6Y0c5eWRDNXFjMXdpS1R0Y2JtTnZibk4wSUhsbFlYTjBYMnB6WHpFZ1BTQnlaWEYxYVhKbEtGd2lMaTR2WTI5dWRISnBZaTk1WldGemRDNXFjMXdpS1R0Y2JtTnZibk4wSUhWMGFXeGZhbk5mTVNBOUlISmxjWFZwY21Vb1hDSXVMaTkxZEdsc0xtcHpYQ0lwTzF4dVkyOXVjM1FnZDJWaWMyOWphMlYwWDJOdmJuTjBjblZqZEc5eVgycHpYekVnUFNCeVpYRjFhWEpsS0Z3aUxpOTNaV0p6YjJOclpYUXRZMjl1YzNSeWRXTjBiM0l1YW5OY0lpazdYRzVqYjI1emRDQmtaV0oxWjE4eElEMGdYMTlwYlhCdmNuUkVaV1poZFd4MEtISmxjWFZwY21Vb1hDSmtaV0oxWjF3aUtTazdJQzh2SUdSbFluVm5LQ2xjYm1OdmJuTjBJR1Z1WjJsdVpWOXBiMTl3WVhKelpYSmZNU0E5SUhKbGNYVnBjbVVvWENKbGJtZHBibVV1YVc4dGNHRnljMlZ5WENJcE8xeHVZMjl1YzNRZ1pHVmlkV2NnUFNBb01Dd2daR1ZpZFdkZk1TNWtaV1poZFd4MEtTaGNJbVZ1WjJsdVpTNXBieTFqYkdsbGJuUTZkMlZpYzI5amEyVjBYQ0lwT3lBdkx5QmtaV0oxWnlncFhHNHZMeUJrWlhSbFkzUWdVbVZoWTNST1lYUnBkbVVnWlc1MmFYSnZibTFsYm5SY2JtTnZibk4wSUdselVtVmhZM1JPWVhScGRtVWdQU0IwZVhCbGIyWWdibUYyYVdkaGRHOXlJQ0U5UFNCY0luVnVaR1ZtYVc1bFpGd2lJQ1ltWEc0Z0lDQWdkSGx3Wlc5bUlHNWhkbWxuWVhSdmNpNXdjbTlrZFdOMElEMDlQU0JjSW5OMGNtbHVaMXdpSUNZbVhHNGdJQ0FnYm1GMmFXZGhkRzl5TG5CeWIyUjFZM1F1ZEc5TWIzZGxja05oYzJVb0tTQTlQVDBnWENKeVpXRmpkRzVoZEdsMlpWd2lPMXh1WTJ4aGMzTWdWMU1nWlhoMFpXNWtjeUIwY21GdWMzQnZjblJmYW5OZk1TNVVjbUZ1YzNCdmNuUWdlMXh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRmRsWWxOdlkydGxkQ0IwY21GdWMzQnZjblFnWTI5dWMzUnlkV04wYjNJdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTA5aWFtVmpkSDBnYjNCMGN5QXRJR052Ym01bFkzUnBiMjRnYjNCMGFXOXVjMXh1SUNBZ0lDQXFJRUJ3Y205MFpXTjBaV1JjYmlBZ0lDQWdLaTljYmlBZ0lDQmpiMjV6ZEhKMVkzUnZjaWh2Y0hSektTQjdYRzRnSUNBZ0lDQWdJSE4xY0dWeUtHOXdkSE1wTzF4dUlDQWdJQ0FnSUNCMGFHbHpMbk4xY0hCdmNuUnpRbWx1WVhKNUlEMGdJVzl3ZEhNdVptOXlZMlZDWVhObE5qUTdYRzRnSUNBZ2ZWeHVJQ0FnSUdkbGRDQnVZVzFsS0NrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1hDSjNaV0p6YjJOclpYUmNJanRjYmlBZ0lDQjlYRzRnSUNBZ1pHOVBjR1Z1S0NrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvSVhSb2FYTXVZMmhsWTJzb0tTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0x5OGdiR1YwSUhCeWIySmxJSFJwYldWdmRYUmNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnlianRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCamIyNXpkQ0IxY21rZ1BTQjBhR2x6TG5WeWFTZ3BPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQndjbTkwYjJOdmJITWdQU0IwYUdsekxtOXdkSE11Y0hKdmRHOWpiMnh6TzF4dUlDQWdJQ0FnSUNBdkx5QlNaV0ZqZENCT1lYUnBkbVVnYjI1c2VTQnpkWEJ3YjNKMGN5QjBhR1VnSjJobFlXUmxjbk1uSUc5d2RHbHZiaXdnWVc1a0lIZHBiR3dnY0hKcGJuUWdZU0IzWVhKdWFXNW5JR2xtSUdGdWVYUm9hVzVuSUdWc2MyVWdhWE1nY0dGemMyVmtYRzRnSUNBZ0lDQWdJR052Ym5OMElHOXdkSE1nUFNCcGMxSmxZV04wVG1GMGFYWmxYRzRnSUNBZ0lDQWdJQ0FnSUNBL0lIdDlYRzRnSUNBZ0lDQWdJQ0FnSUNBNklDZ3dMQ0IxZEdsc1gycHpYekV1Y0dsamF5a29kR2hwY3k1dmNIUnpMQ0JjSW1GblpXNTBYQ0lzSUZ3aWNHVnlUV1Z6YzJGblpVUmxabXhoZEdWY0lpd2dYQ0p3Wm5oY0lpd2dYQ0pyWlhsY0lpd2dYQ0p3WVhOemNHaHlZWE5sWENJc0lGd2lZMlZ5ZEZ3aUxDQmNJbU5oWENJc0lGd2lZMmx3YUdWeWMxd2lMQ0JjSW5KbGFtVmpkRlZ1WVhWMGFHOXlhWHBsWkZ3aUxDQmNJbXh2WTJGc1FXUmtjbVZ6YzF3aUxDQmNJbkJ5YjNSdlkyOXNWbVZ5YzJsdmJsd2lMQ0JjSW05eWFXZHBibHdpTENCY0ltMWhlRkJoZVd4dllXUmNJaXdnWENKbVlXMXBiSGxjSWl3Z1hDSmphR1ZqYTFObGNuWmxja2xrWlc1MGFYUjVYQ0lwTzF4dUlDQWdJQ0FnSUNCcFppQW9kR2hwY3k1dmNIUnpMbVY0ZEhKaFNHVmhaR1Z5Y3lrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYjNCMGN5NW9aV0ZrWlhKeklEMGdkR2hwY3k1dmNIUnpMbVY0ZEhKaFNHVmhaR1Z5Y3p0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjBjbmtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1M2N5QTlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkMlZpYzI5amEyVjBYMk52Ym5OMGNuVmpkRzl5WDJwelh6RXVkWE5wYm1kQ2NtOTNjMlZ5VjJWaVUyOWphMlYwSUNZbUlDRnBjMUpsWVdOMFRtRjBhWFpsWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEOGdjSEp2ZEc5amIyeHpYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQS9JRzVsZHlCM1pXSnpiMk5yWlhSZlkyOXVjM1J5ZFdOMGIzSmZhbk5mTVM1WFpXSlRiMk5yWlhRb2RYSnBMQ0J3Y205MGIyTnZiSE1wWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E2SUc1bGR5QjNaV0p6YjJOclpYUmZZMjl1YzNSeWRXTjBiM0pmYW5OZk1TNVhaV0pUYjJOclpYUW9kWEpwS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQTZJRzVsZHlCM1pXSnpiMk5yWlhSZlkyOXVjM1J5ZFdOMGIzSmZhbk5mTVM1WFpXSlRiMk5yWlhRb2RYSnBMQ0J3Y205MGIyTnZiSE1zSUc5d2RITXBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdOaGRHTm9JQ2hsY25JcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxtVnRhWFJTWlhObGNuWmxaQ2hjSW1WeWNtOXlYQ0lzSUdWeWNpazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZEdocGN5NTNjeTVpYVc1aGNubFVlWEJsSUQwZ2RHaHBjeTV6YjJOclpYUXVZbWx1WVhKNVZIbHdaVHRjYmlBZ0lDQWdJQ0FnZEdocGN5NWhaR1JGZG1WdWRFeHBjM1JsYm1WeWN5Z3BPMXh1SUNBZ0lIMWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkJaR1J6SUdWMlpXNTBJR3hwYzNSbGJtVnljeUIwYnlCMGFHVWdjMjlqYTJWMFhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWNISnBkbUYwWlZ4dUlDQWdJQ0FxTDF4dUlDQWdJR0ZrWkVWMlpXNTBUR2x6ZEdWdVpYSnpLQ2tnZTF4dUlDQWdJQ0FnSUNCMGFHbHpMbmR6TG05dWIzQmxiaUE5SUNncElEMCtJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2gwYUdsekxtOXdkSE11WVhWMGIxVnVjbVZtS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTUzY3k1ZmMyOWphMlYwTG5WdWNtVm1LQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbTl1VDNCbGJpZ3BPMXh1SUNBZ0lDQWdJQ0I5TzF4dUlDQWdJQ0FnSUNCMGFHbHpMbmR6TG05dVkyeHZjMlVnUFNBb1kyeHZjMlZGZG1WdWRDa2dQVDRnZEdocGN5NXZia05zYjNObEtIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdSbGMyTnlhWEIwYVc5dU9pQmNJbmRsWW5OdlkydGxkQ0JqYjI1dVpXTjBhVzl1SUdOc2IzTmxaRndpTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1ZEdWNGREb2dZMnh2YzJWRmRtVnVkQ3hjYmlBZ0lDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNBZ0lIUm9hWE11ZDNNdWIyNXRaWE56WVdkbElEMGdLR1YyS1NBOVBpQjBhR2x6TG05dVJHRjBZU2hsZGk1a1lYUmhLVHRjYmlBZ0lDQWdJQ0FnZEdocGN5NTNjeTV2Ym1WeWNtOXlJRDBnS0dVcElEMCtJSFJvYVhNdWIyNUZjbkp2Y2loY0luZGxZbk52WTJ0bGRDQmxjbkp2Y2x3aUxDQmxLVHRjYmlBZ0lDQjlYRzRnSUNBZ2QzSnBkR1VvY0dGamEyVjBjeWtnZTF4dUlDQWdJQ0FnSUNCMGFHbHpMbmR5YVhSaFlteGxJRDBnWm1Gc2MyVTdYRzRnSUNBZ0lDQWdJQzh2SUdWdVkyOWtaVkJoWTJ0bGRDQmxabVpwWTJsbGJuUWdZWE1nYVhRZ2RYTmxjeUJYVXlCbWNtRnRhVzVuWEc0Z0lDQWdJQ0FnSUM4dklHNXZJRzVsWldRZ1ptOXlJR1Z1WTI5a1pWQmhlV3h2WVdSY2JpQWdJQ0FnSUNBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQndZV05yWlhSekxteGxibWQwYURzZ2FTc3JLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCd1lXTnJaWFFnUFNCd1lXTnJaWFJ6VzJsZE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdiR0Z6ZEZCaFkydGxkQ0E5SUdrZ1BUMDlJSEJoWTJ0bGRITXViR1Z1WjNSb0lDMGdNVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDZ3dMQ0JsYm1kcGJtVmZhVzlmY0dGeWMyVnlYekV1Wlc1amIyUmxVR0ZqYTJWMEtTaHdZV05yWlhRc0lIUm9hWE11YzNWd2NHOXlkSE5DYVc1aGNua3NJQ2hrWVhSaEtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z1lXeDNZWGx6SUdOeVpXRjBaU0JoSUc1bGR5QnZZbXBsWTNRZ0tFZElMVFF6TnlsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J2Y0hSeklEMGdlMzA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tDRjNaV0p6YjJOclpYUmZZMjl1YzNSeWRXTjBiM0pmYW5OZk1TNTFjMmx1WjBKeWIzZHpaWEpYWldKVGIyTnJaWFFwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0hCaFkydGxkQzV2Y0hScGIyNXpLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J2Y0hSekxtTnZiWEJ5WlhOeklEMGdjR0ZqYTJWMExtOXdkR2x2Ym5NdVkyOXRjSEpsYzNNN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSFJvYVhNdWIzQjBjeTV3WlhKTlpYTnpZV2RsUkdWbWJHRjBaU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdiR1Z1SUQwZ1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdkx5QkFkSE10YVdkdWIzSmxYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmNJbk4wY21sdVoxd2lJRDA5UFNCMGVYQmxiMllnWkdGMFlTQS9JRUoxWm1abGNpNWllWFJsVEdWdVozUm9LR1JoZEdFcElEb2daR0YwWVM1c1pXNW5kR2c3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2JHVnVJRHdnZEdocGN5NXZjSFJ6TG5CbGNrMWxjM05oWjJWRVpXWnNZWFJsTG5Sb2NtVnphRzlzWkNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzl3ZEhNdVkyOXRjSEpsYzNNZ1BTQm1ZV3h6WlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F2THlCVGIyMWxkR2x0WlhNZ2RHaGxJSGRsWW5OdlkydGxkQ0JvWVhNZ1lXeHlaV0ZrZVNCaVpXVnVJR05zYjNObFpDQmlkWFFnZEdobElHSnliM2R6WlhJZ1pHbGtiaWQwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z2FHRjJaU0JoSUdOb1lXNWpaU0J2WmlCcGJtWnZjbTFwYm1jZ2RYTWdZV0p2ZFhRZ2FYUWdlV1YwTENCcGJpQjBhR0YwSUdOaGMyVWdjMlZ1WkNCM2FXeHNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdMeThnZEdoeWIzY2dZVzRnWlhKeWIzSmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBjbmtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvZDJWaWMyOWphMlYwWDJOdmJuTjBjblZqZEc5eVgycHpYekV1ZFhOcGJtZENjbTkzYzJWeVYyVmlVMjlqYTJWMEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXZMeUJVZVhCbFJYSnliM0lnYVhNZ2RHaHliM2R1SUhkb1pXNGdjR0Z6YzJsdVp5QjBhR1VnYzJWamIyNWtJR0Z5WjNWdFpXNTBJRzl1SUZOaFptRnlhVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1M2N5NXpaVzVrS0dSaGRHRXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTUzY3k1elpXNWtLR1JoZEdFc0lHOXdkSE1wTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR05oZEdOb0lDaGxLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHUmxZblZuS0Z3aWQyVmljMjlqYTJWMElHTnNiM05sWkNCaVpXWnZjbVVnYjI1amJHOXpaU0JsZG1WdWRGd2lLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHeGhjM1JRWVdOclpYUXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0x5OGdabUZyWlNCa2NtRnBibHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdkx5QmtaV1psY2lCMGJ5QnVaWGgwSUhScFkyc2dkRzhnWVd4c2IzY2dVMjlqYTJWMElIUnZJR05zWldGeUlIZHlhWFJsUW5WbVptVnlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNnd0xDQjNaV0p6YjJOclpYUmZZMjl1YzNSeWRXTjBiM0pmYW5OZk1TNXVaWGgwVkdsamF5a29LQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTUzY21sMFlXSnNaU0E5SUhSeWRXVTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG1WdGFYUlNaWE5sY25abFpDaGNJbVJ5WVdsdVhDSXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOUxDQjBhR2x6TG5ObGRGUnBiV1Z2ZFhSR2JpazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ1pHOURiRzl6WlNncElIdGNiaUFnSUNBZ0lDQWdhV1lnS0hSNWNHVnZaaUIwYUdsekxuZHpJQ0U5UFNCY0luVnVaR1ZtYVc1bFpGd2lLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG5kekxtTnNiM05sS0NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxuZHpJRDBnYm5Wc2JEdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkhaVzVsY21GMFpYTWdkWEpwSUdadmNpQmpiMjV1WldOMGFXOXVMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSEJ5YVhaaGRHVmNiaUFnSUNBZ0tpOWNiaUFnSUNCMWNta29LU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSE5qYUdWdFlTQTlJSFJvYVhNdWIzQjBjeTV6WldOMWNtVWdQeUJjSW5kemMxd2lJRG9nWENKM2Mxd2lPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnhkV1Z5ZVNBOUlIUm9hWE11Y1hWbGNua2dmSHdnZTMwN1hHNGdJQ0FnSUNBZ0lDOHZJR0Z3Y0dWdVpDQjBhVzFsYzNSaGJYQWdkRzhnVlZKSlhHNGdJQ0FnSUNBZ0lHbG1JQ2gwYUdsekxtOXdkSE11ZEdsdFpYTjBZVzF3VW1WeGRXVnpkSE1wSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEYxWlhKNVczUm9hWE11YjNCMGN5NTBhVzFsYzNSaGJYQlFZWEpoYlYwZ1BTQW9NQ3dnZVdWaGMzUmZhbk5mTVM1NVpXRnpkQ2tvS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQXZMeUJqYjIxdGRXNXBZMkYwWlNCaWFXNWhjbmtnYzNWd2NHOXlkQ0JqWVhCaFltbHNhWFJwWlhOY2JpQWdJQ0FnSUNBZ2FXWWdLQ0YwYUdsekxuTjFjSEJ2Y25SelFtbHVZWEo1S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J4ZFdWeWVTNWlOalFnUFNBeE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TG1OeVpXRjBaVlZ5YVNoelkyaGxiV0VzSUhGMVpYSjVLVHRjYmlBZ0lDQjlYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dSbVZoZEhWeVpTQmtaWFJsWTNScGIyNGdabTl5SUZkbFlsTnZZMnRsZEM1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCeVpYUjFjbTRnZTBKdmIyeGxZVzU5SUhkb1pYUm9aWElnZEdocGN5QjBjbUZ1YzNCdmNuUWdhWE1nWVhaaGFXeGhZbXhsTGx4dUlDQWdJQ0FxSUVCd2NtbDJZWFJsWEc0Z0lDQWdJQ292WEc0Z0lDQWdZMmhsWTJzb0tTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQWhJWGRsWW5OdlkydGxkRjlqYjI1emRISjFZM1J2Y2w5cWMxOHhMbGRsWWxOdlkydGxkRHRjYmlBZ0lDQjlYRzU5WEc1bGVIQnZjblJ6TGxkVElEMGdWMU03WEc0aUxDSmNiaThxS2x4dUlDb2dWR2hwY3lCcGN5QjBhR1VnWTI5dGJXOXVJR3h2WjJsaklHWnZjaUJpYjNSb0lIUm9aU0JPYjJSbExtcHpJR0Z1WkNCM1pXSWdZbkp2ZDNObGNseHVJQ29nYVcxd2JHVnRaVzUwWVhScGIyNXpJRzltSUdCa1pXSjFaeWdwWUM1Y2JpQXFMMXh1WEc1bWRXNWpkR2x2YmlCelpYUjFjQ2hsYm5ZcElIdGNibHgwWTNKbFlYUmxSR1ZpZFdjdVpHVmlkV2NnUFNCamNtVmhkR1ZFWldKMVp6dGNibHgwWTNKbFlYUmxSR1ZpZFdjdVpHVm1ZWFZzZENBOUlHTnlaV0YwWlVSbFluVm5PMXh1WEhSamNtVmhkR1ZFWldKMVp5NWpiMlZ5WTJVZ1BTQmpiMlZ5WTJVN1hHNWNkR055WldGMFpVUmxZblZuTG1ScGMyRmliR1VnUFNCa2FYTmhZbXhsTzF4dVhIUmpjbVZoZEdWRVpXSjFaeTVsYm1GaWJHVWdQU0JsYm1GaWJHVTdYRzVjZEdOeVpXRjBaVVJsWW5WbkxtVnVZV0pzWldRZ1BTQmxibUZpYkdWa08xeHVYSFJqY21WaGRHVkVaV0oxWnk1b2RXMWhibWw2WlNBOUlISmxjWFZwY21Vb0oyMXpKeWs3WEc1Y2RHTnlaV0YwWlVSbFluVm5MbVJsYzNSeWIza2dQU0JrWlhOMGNtOTVPMXh1WEc1Y2RFOWlhbVZqZEM1clpYbHpLR1Z1ZGlrdVptOXlSV0ZqYUNoclpYa2dQVDRnZTF4dVhIUmNkR055WldGMFpVUmxZblZuVzJ0bGVWMGdQU0JsYm5aYmEyVjVYVHRjYmx4MGZTazdYRzVjYmx4MEx5b3FYRzVjZENvZ1ZHaGxJR04xY25KbGJuUnNlU0JoWTNScGRtVWdaR1ZpZFdjZ2JXOWtaU0J1WVcxbGN5d2dZVzVrSUc1aGJXVnpJSFJ2SUhOcmFYQXVYRzVjZENvdlhHNWNibHgwWTNKbFlYUmxSR1ZpZFdjdWJtRnRaWE1nUFNCYlhUdGNibHgwWTNKbFlYUmxSR1ZpZFdjdWMydHBjSE1nUFNCYlhUdGNibHh1WEhRdktpcGNibHgwS2lCTllYQWdiMllnYzNCbFkybGhiQ0JjSWlWdVhDSWdhR0Z1Wkd4cGJtY2dablZ1WTNScGIyNXpMQ0JtYjNJZ2RHaGxJR1JsWW5WbklGd2labTl5YldGMFhDSWdZWEpuZFcxbGJuUXVYRzVjZENwY2JseDBLaUJXWVd4cFpDQnJaWGtnYm1GdFpYTWdZWEpsSUdFZ2MybHVaMnhsTENCc2IzZGxjaUJ2Y2lCMWNIQmxjaTFqWVhObElHeGxkSFJsY2l3Z2FTNWxMaUJjSW01Y0lpQmhibVFnWENKT1hDSXVYRzVjZENvdlhHNWNkR055WldGMFpVUmxZblZuTG1admNtMWhkSFJsY25NZ1BTQjdmVHRjYmx4dVhIUXZLaXBjYmx4MEtpQlRaV3hsWTNSeklHRWdZMjlzYjNJZ1ptOXlJR0VnWkdWaWRXY2dibUZ0WlhOd1lXTmxYRzVjZENvZ1FIQmhjbUZ0SUh0VGRISnBibWQ5SUc1aGJXVnpjR0ZqWlNCVWFHVWdibUZ0WlhOd1lXTmxJSE4wY21sdVp5Qm1iM0lnZEdobElHUmxZblZuSUdsdWMzUmhibU5sSUhSdklHSmxJR052Ykc5eVpXUmNibHgwS2lCQWNtVjBkWEp1SUh0T2RXMWlaWEo4VTNSeWFXNW5mU0JCYmlCQlRsTkpJR052Ykc5eUlHTnZaR1VnWm05eUlIUm9aU0JuYVhabGJpQnVZVzFsYzNCaFkyVmNibHgwS2lCQVlYQnBJSEJ5YVhaaGRHVmNibHgwS2k5Y2JseDBablZ1WTNScGIyNGdjMlZzWldOMFEyOXNiM0lvYm1GdFpYTndZV05sS1NCN1hHNWNkRngwYkdWMElHaGhjMmdnUFNBd08xeHVYRzVjZEZ4MFptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQnVZVzFsYzNCaFkyVXViR1Z1WjNSb095QnBLeXNwSUh0Y2JseDBYSFJjZEdoaGMyZ2dQU0FvS0doaGMyZ2dQRHdnTlNrZ0xTQm9ZWE5vS1NBcklHNWhiV1Z6Y0dGalpTNWphR0Z5UTI5a1pVRjBLR2twTzF4dVhIUmNkRngwYUdGemFDQjhQU0F3T3lBdkx5QkRiMjUyWlhKMElIUnZJRE15WW1sMElHbHVkR1ZuWlhKY2JseDBYSFI5WEc1Y2JseDBYSFJ5WlhSMWNtNGdZM0psWVhSbFJHVmlkV2N1WTI5c2IzSnpXMDFoZEdndVlXSnpLR2hoYzJncElDVWdZM0psWVhSbFJHVmlkV2N1WTI5c2IzSnpMbXhsYm1kMGFGMDdYRzVjZEgxY2JseDBZM0psWVhSbFJHVmlkV2N1YzJWc1pXTjBRMjlzYjNJZ1BTQnpaV3hsWTNSRGIyeHZjanRjYmx4dVhIUXZLaXBjYmx4MEtpQkRjbVZoZEdVZ1lTQmtaV0oxWjJkbGNpQjNhWFJvSUhSb1pTQm5hWFpsYmlCZ2JtRnRaWE53WVdObFlDNWNibHgwS2x4dVhIUXFJRUJ3WVhKaGJTQjdVM1J5YVc1bmZTQnVZVzFsYzNCaFkyVmNibHgwS2lCQWNtVjBkWEp1SUh0R2RXNWpkR2x2Ym4xY2JseDBLaUJBWVhCcElIQjFZbXhwWTF4dVhIUXFMMXh1WEhSbWRXNWpkR2x2YmlCamNtVmhkR1ZFWldKMVp5aHVZVzFsYzNCaFkyVXBJSHRjYmx4MFhIUnNaWFFnY0hKbGRsUnBiV1U3WEc1Y2RGeDBiR1YwSUdWdVlXSnNaVTkyWlhKeWFXUmxJRDBnYm5Wc2JEdGNibHgwWEhSc1pYUWdibUZ0WlhOd1lXTmxjME5oWTJobE8xeHVYSFJjZEd4bGRDQmxibUZpYkdWa1EyRmphR1U3WEc1Y2JseDBYSFJtZFc1amRHbHZiaUJrWldKMVp5Z3VMaTVoY21kektTQjdYRzVjZEZ4MFhIUXZMeUJFYVhOaFlteGxaRDljYmx4MFhIUmNkR2xtSUNnaFpHVmlkV2N1Wlc1aFlteGxaQ2tnZTF4dVhIUmNkRngwWEhSeVpYUjFjbTQ3WEc1Y2RGeDBYSFI5WEc1Y2JseDBYSFJjZEdOdmJuTjBJSE5sYkdZZ1BTQmtaV0oxWnp0Y2JseHVYSFJjZEZ4MEx5OGdVMlYwSUdCa2FXWm1ZQ0IwYVcxbGMzUmhiWEJjYmx4MFhIUmNkR052Ym5OMElHTjFjbklnUFNCT2RXMWlaWElvYm1WM0lFUmhkR1VvS1NrN1hHNWNkRngwWEhSamIyNXpkQ0J0Y3lBOUlHTjFjbklnTFNBb2NISmxkbFJwYldVZ2ZId2dZM1Z5Y2lrN1hHNWNkRngwWEhSelpXeG1MbVJwWm1ZZ1BTQnRjenRjYmx4MFhIUmNkSE5sYkdZdWNISmxkaUE5SUhCeVpYWlVhVzFsTzF4dVhIUmNkRngwYzJWc1ppNWpkWEp5SUQwZ1kzVnljanRjYmx4MFhIUmNkSEJ5WlhaVWFXMWxJRDBnWTNWeWNqdGNibHh1WEhSY2RGeDBZWEpuYzFzd1hTQTlJR055WldGMFpVUmxZblZuTG1OdlpYSmpaU2hoY21keld6QmRLVHRjYmx4dVhIUmNkRngwYVdZZ0tIUjVjR1Z2WmlCaGNtZHpXekJkSUNFOVBTQW5jM1J5YVc1bkp5a2dlMXh1WEhSY2RGeDBYSFF2THlCQmJubDBhR2x1WnlCbGJITmxJR3hsZENkeklHbHVjM0JsWTNRZ2QybDBhQ0FsVDF4dVhIUmNkRngwWEhSaGNtZHpMblZ1YzJocFpuUW9KeVZQSnlrN1hHNWNkRngwWEhSOVhHNWNibHgwWEhSY2RDOHZJRUZ3Y0d4NUlHRnVlU0JnWm05eWJXRjBkR1Z5YzJBZ2RISmhibk5tYjNKdFlYUnBiMjV6WEc1Y2RGeDBYSFJzWlhRZ2FXNWtaWGdnUFNBd08xeHVYSFJjZEZ4MFlYSm5jMXN3WFNBOUlHRnlaM05iTUYwdWNtVndiR0ZqWlNndkpTaGJZUzE2UVMxYUpWMHBMMmNzSUNodFlYUmphQ3dnWm05eWJXRjBLU0E5UGlCN1hHNWNkRngwWEhSY2RDOHZJRWxtSUhkbElHVnVZMjkxYm5SbGNpQmhiaUJsYzJOaGNHVmtJQ1VnZEdobGJpQmtiMjRuZENCcGJtTnlaV0Z6WlNCMGFHVWdZWEp5WVhrZ2FXNWtaWGhjYmx4MFhIUmNkRngwYVdZZ0tHMWhkR05vSUQwOVBTQW5KU1VuS1NCN1hHNWNkRngwWEhSY2RGeDBjbVYwZFhKdUlDY2xKenRjYmx4MFhIUmNkRngwZlZ4dVhIUmNkRngwWEhScGJtUmxlQ3NyTzF4dVhIUmNkRngwWEhSamIyNXpkQ0JtYjNKdFlYUjBaWElnUFNCamNtVmhkR1ZFWldKMVp5NW1iM0p0WVhSMFpYSnpXMlp2Y20xaGRGMDdYRzVjZEZ4MFhIUmNkR2xtSUNoMGVYQmxiMllnWm05eWJXRjBkR1Z5SUQwOVBTQW5ablZ1WTNScGIyNG5LU0I3WEc1Y2RGeDBYSFJjZEZ4MFkyOXVjM1FnZG1Gc0lEMGdZWEpuYzF0cGJtUmxlRjA3WEc1Y2RGeDBYSFJjZEZ4MGJXRjBZMmdnUFNCbWIzSnRZWFIwWlhJdVkyRnNiQ2h6Wld4bUxDQjJZV3dwTzF4dVhHNWNkRngwWEhSY2RGeDBMeThnVG05M0lIZGxJRzVsWldRZ2RHOGdjbVZ0YjNabElHQmhjbWR6VzJsdVpHVjRYV0FnYzJsdVkyVWdhWFFuY3lCcGJteHBibVZrSUdsdUlIUm9aU0JnWm05eWJXRjBZRnh1WEhSY2RGeDBYSFJjZEdGeVozTXVjM0JzYVdObEtHbHVaR1Y0TENBeEtUdGNibHgwWEhSY2RGeDBYSFJwYm1SbGVDMHRPMXh1WEhSY2RGeDBYSFI5WEc1Y2RGeDBYSFJjZEhKbGRIVnliaUJ0WVhSamFEdGNibHgwWEhSY2RIMHBPMXh1WEc1Y2RGeDBYSFF2THlCQmNIQnNlU0JsYm5ZdGMzQmxZMmxtYVdNZ1ptOXliV0YwZEdsdVp5QW9ZMjlzYjNKekxDQmxkR011S1Z4dVhIUmNkRngwWTNKbFlYUmxSR1ZpZFdjdVptOXliV0YwUVhKbmN5NWpZV3hzS0hObGJHWXNJR0Z5WjNNcE8xeHVYRzVjZEZ4MFhIUmpiMjV6ZENCc2IyZEdiaUE5SUhObGJHWXViRzluSUh4OElHTnlaV0YwWlVSbFluVm5MbXh2Wnp0Y2JseDBYSFJjZEd4dlowWnVMbUZ3Y0d4NUtITmxiR1lzSUdGeVozTXBPMXh1WEhSY2RIMWNibHh1WEhSY2RHUmxZblZuTG01aGJXVnpjR0ZqWlNBOUlHNWhiV1Z6Y0dGalpUdGNibHgwWEhSa1pXSjFaeTUxYzJWRGIyeHZjbk1nUFNCamNtVmhkR1ZFWldKMVp5NTFjMlZEYjJ4dmNuTW9LVHRjYmx4MFhIUmtaV0oxWnk1amIyeHZjaUE5SUdOeVpXRjBaVVJsWW5WbkxuTmxiR1ZqZEVOdmJHOXlLRzVoYldWemNHRmpaU2s3WEc1Y2RGeDBaR1ZpZFdjdVpYaDBaVzVrSUQwZ1pYaDBaVzVrTzF4dVhIUmNkR1JsWW5WbkxtUmxjM1J5YjNrZ1BTQmpjbVZoZEdWRVpXSjFaeTVrWlhOMGNtOTVPeUF2THlCWVdGZ2dWR1Z0Y0c5eVlYSjVMaUJYYVd4c0lHSmxJSEpsYlc5MlpXUWdhVzRnZEdobElHNWxlSFFnYldGcWIzSWdjbVZzWldGelpTNWNibHh1WEhSY2RFOWlhbVZqZEM1a1pXWnBibVZRY205d1pYSjBlU2hrWldKMVp5d2dKMlZ1WVdKc1pXUW5MQ0I3WEc1Y2RGeDBYSFJsYm5WdFpYSmhZbXhsT2lCMGNuVmxMRnh1WEhSY2RGeDBZMjl1Wm1sbmRYSmhZbXhsT2lCbVlXeHpaU3hjYmx4MFhIUmNkR2RsZERvZ0tDa2dQVDRnZTF4dVhIUmNkRngwWEhScFppQW9aVzVoWW14bFQzWmxjbkpwWkdVZ0lUMDlJRzUxYkd3cElIdGNibHgwWEhSY2RGeDBYSFJ5WlhSMWNtNGdaVzVoWW14bFQzWmxjbkpwWkdVN1hHNWNkRngwWEhSY2RIMWNibHgwWEhSY2RGeDBhV1lnS0c1aGJXVnpjR0ZqWlhORFlXTm9aU0FoUFQwZ1kzSmxZWFJsUkdWaWRXY3VibUZ0WlhOd1lXTmxjeWtnZTF4dVhIUmNkRngwWEhSY2RHNWhiV1Z6Y0dGalpYTkRZV05vWlNBOUlHTnlaV0YwWlVSbFluVm5MbTVoYldWemNHRmpaWE03WEc1Y2RGeDBYSFJjZEZ4MFpXNWhZbXhsWkVOaFkyaGxJRDBnWTNKbFlYUmxSR1ZpZFdjdVpXNWhZbXhsWkNodVlXMWxjM0JoWTJVcE8xeHVYSFJjZEZ4MFhIUjlYRzVjYmx4MFhIUmNkRngwY21WMGRYSnVJR1Z1WVdKc1pXUkRZV05vWlR0Y2JseDBYSFJjZEgwc1hHNWNkRngwWEhSelpYUTZJSFlnUFQ0Z2UxeHVYSFJjZEZ4MFhIUmxibUZpYkdWUGRtVnljbWxrWlNBOUlIWTdYRzVjZEZ4MFhIUjlYRzVjZEZ4MGZTazdYRzVjYmx4MFhIUXZMeUJGYm5ZdGMzQmxZMmxtYVdNZ2FXNXBkR2xoYkdsNllYUnBiMjRnYkc5bmFXTWdabTl5SUdSbFluVm5JR2x1YzNSaGJtTmxjMXh1WEhSY2RHbG1JQ2gwZVhCbGIyWWdZM0psWVhSbFJHVmlkV2N1YVc1cGRDQTlQVDBnSjJaMWJtTjBhVzl1SnlrZ2UxeHVYSFJjZEZ4MFkzSmxZWFJsUkdWaWRXY3VhVzVwZENoa1pXSjFaeWs3WEc1Y2RGeDBmVnh1WEc1Y2RGeDBjbVYwZFhKdUlHUmxZblZuTzF4dVhIUjlYRzVjYmx4MFpuVnVZM1JwYjI0Z1pYaDBaVzVrS0c1aGJXVnpjR0ZqWlN3Z1pHVnNhVzFwZEdWeUtTQjdYRzVjZEZ4MFkyOXVjM1FnYm1WM1JHVmlkV2NnUFNCamNtVmhkR1ZFWldKMVp5aDBhR2x6TG01aGJXVnpjR0ZqWlNBcklDaDBlWEJsYjJZZ1pHVnNhVzFwZEdWeUlEMDlQU0FuZFc1a1pXWnBibVZrSnlBL0lDYzZKeUE2SUdSbGJHbHRhWFJsY2lrZ0t5QnVZVzFsYzNCaFkyVXBPMXh1WEhSY2RHNWxkMFJsWW5WbkxteHZaeUE5SUhSb2FYTXViRzluTzF4dVhIUmNkSEpsZEhWeWJpQnVaWGRFWldKMVp6dGNibHgwZlZ4dVhHNWNkQzhxS2x4dVhIUXFJRVZ1WVdKc1pYTWdZU0JrWldKMVp5QnRiMlJsSUdKNUlHNWhiV1Z6Y0dGalpYTXVJRlJvYVhNZ1kyRnVJR2x1WTJ4MVpHVWdiVzlrWlhOY2JseDBLaUJ6WlhCaGNtRjBaV1FnWW5rZ1lTQmpiMnh2YmlCaGJtUWdkMmxzWkdOaGNtUnpMbHh1WEhRcVhHNWNkQ29nUUhCaGNtRnRJSHRUZEhKcGJtZDlJRzVoYldWemNHRmpaWE5jYmx4MEtpQkFZWEJwSUhCMVlteHBZMXh1WEhRcUwxeHVYSFJtZFc1amRHbHZiaUJsYm1GaWJHVW9ibUZ0WlhOd1lXTmxjeWtnZTF4dVhIUmNkR055WldGMFpVUmxZblZuTG5OaGRtVW9ibUZ0WlhOd1lXTmxjeWs3WEc1Y2RGeDBZM0psWVhSbFJHVmlkV2N1Ym1GdFpYTndZV05sY3lBOUlHNWhiV1Z6Y0dGalpYTTdYRzVjYmx4MFhIUmpjbVZoZEdWRVpXSjFaeTV1WVcxbGN5QTlJRnRkTzF4dVhIUmNkR055WldGMFpVUmxZblZuTG5OcmFYQnpJRDBnVzEwN1hHNWNibHgwWEhSc1pYUWdhVHRjYmx4MFhIUmpiMjV6ZENCemNHeHBkQ0E5SUNoMGVYQmxiMllnYm1GdFpYTndZV05sY3lBOVBUMGdKM04wY21sdVp5Y2dQeUJ1WVcxbGMzQmhZMlZ6SURvZ0p5Y3BMbk53YkdsMEtDOWJYRnh6TEYwckx5azdYRzVjZEZ4MFkyOXVjM1FnYkdWdUlEMGdjM0JzYVhRdWJHVnVaM1JvTzF4dVhHNWNkRngwWm05eUlDaHBJRDBnTURzZ2FTQThJR3hsYmpzZ2FTc3JLU0I3WEc1Y2RGeDBYSFJwWmlBb0lYTndiR2wwVzJsZEtTQjdYRzVjZEZ4MFhIUmNkQzh2SUdsbmJtOXlaU0JsYlhCMGVTQnpkSEpwYm1kelhHNWNkRngwWEhSY2RHTnZiblJwYm5WbE8xeHVYSFJjZEZ4MGZWeHVYRzVjZEZ4MFhIUnVZVzFsYzNCaFkyVnpJRDBnYzNCc2FYUmJhVjB1Y21Wd2JHRmpaU2d2WEZ3cUwyY3NJQ2N1S2o4bktUdGNibHh1WEhSY2RGeDBhV1lnS0c1aGJXVnpjR0ZqWlhOYk1GMGdQVDA5SUNjdEp5a2dlMXh1WEhSY2RGeDBYSFJqY21WaGRHVkVaV0oxWnk1emEybHdjeTV3ZFhOb0tHNWxkeUJTWldkRmVIQW9KMTRuSUNzZ2JtRnRaWE53WVdObGN5NXpiR2xqWlNneEtTQXJJQ2NrSnlrcE8xeHVYSFJjZEZ4MGZTQmxiSE5sSUh0Y2JseDBYSFJjZEZ4MFkzSmxZWFJsUkdWaWRXY3VibUZ0WlhNdWNIVnphQ2h1WlhjZ1VtVm5SWGh3S0NkZUp5QXJJRzVoYldWemNHRmpaWE1nS3lBbkpDY3BLVHRjYmx4MFhIUmNkSDFjYmx4MFhIUjlYRzVjZEgxY2JseHVYSFF2S2lwY2JseDBLaUJFYVhOaFlteGxJR1JsWW5WbklHOTFkSEIxZEM1Y2JseDBLbHh1WEhRcUlFQnlaWFIxY200Z2UxTjBjbWx1WjMwZ2JtRnRaWE53WVdObGMxeHVYSFFxSUVCaGNHa2djSFZpYkdsalhHNWNkQ292WEc1Y2RHWjFibU4wYVc5dUlHUnBjMkZpYkdVb0tTQjdYRzVjZEZ4MFkyOXVjM1FnYm1GdFpYTndZV05sY3lBOUlGdGNibHgwWEhSY2RDNHVMbU55WldGMFpVUmxZblZuTG01aGJXVnpMbTFoY0NoMGIwNWhiV1Z6Y0dGalpTa3NYRzVjZEZ4MFhIUXVMaTVqY21WaGRHVkVaV0oxWnk1emEybHdjeTV0WVhBb2RHOU9ZVzFsYzNCaFkyVXBMbTFoY0NodVlXMWxjM0JoWTJVZ1BUNGdKeTBuSUNzZ2JtRnRaWE53WVdObEtWeHVYSFJjZEYwdWFtOXBiaWduTENjcE8xeHVYSFJjZEdOeVpXRjBaVVJsWW5WbkxtVnVZV0pzWlNnbkp5azdYRzVjZEZ4MGNtVjBkWEp1SUc1aGJXVnpjR0ZqWlhNN1hHNWNkSDFjYmx4dVhIUXZLaXBjYmx4MEtpQlNaWFIxY201eklIUnlkV1VnYVdZZ2RHaGxJR2RwZG1WdUlHMXZaR1VnYm1GdFpTQnBjeUJsYm1GaWJHVmtMQ0JtWVd4elpTQnZkR2hsY25kcGMyVXVYRzVjZENwY2JseDBLaUJBY0dGeVlXMGdlMU4wY21sdVozMGdibUZ0WlZ4dVhIUXFJRUJ5WlhSMWNtNGdlMEp2YjJ4bFlXNTlYRzVjZENvZ1FHRndhU0J3ZFdKc2FXTmNibHgwS2k5Y2JseDBablZ1WTNScGIyNGdaVzVoWW14bFpDaHVZVzFsS1NCN1hHNWNkRngwYVdZZ0tHNWhiV1ZiYm1GdFpTNXNaVzVuZEdnZ0xTQXhYU0E5UFQwZ0p5b25LU0I3WEc1Y2RGeDBYSFJ5WlhSMWNtNGdkSEoxWlR0Y2JseDBYSFI5WEc1Y2JseDBYSFJzWlhRZ2FUdGNibHgwWEhSc1pYUWdiR1Z1TzF4dVhHNWNkRngwWm05eUlDaHBJRDBnTUN3Z2JHVnVJRDBnWTNKbFlYUmxSR1ZpZFdjdWMydHBjSE11YkdWdVozUm9PeUJwSUR3Z2JHVnVPeUJwS3lzcElIdGNibHgwWEhSY2RHbG1JQ2hqY21WaGRHVkVaV0oxWnk1emEybHdjMXRwWFM1MFpYTjBLRzVoYldVcEtTQjdYRzVjZEZ4MFhIUmNkSEpsZEhWeWJpQm1ZV3h6WlR0Y2JseDBYSFJjZEgxY2JseDBYSFI5WEc1Y2JseDBYSFJtYjNJZ0tHa2dQU0F3TENCc1pXNGdQU0JqY21WaGRHVkVaV0oxWnk1dVlXMWxjeTVzWlc1bmRHZzdJR2tnUENCc1pXNDdJR2tyS3lrZ2UxeHVYSFJjZEZ4MGFXWWdLR055WldGMFpVUmxZblZuTG01aGJXVnpXMmxkTG5SbGMzUW9ibUZ0WlNrcElIdGNibHgwWEhSY2RGeDBjbVYwZFhKdUlIUnlkV1U3WEc1Y2RGeDBYSFI5WEc1Y2RGeDBmVnh1WEc1Y2RGeDBjbVYwZFhKdUlHWmhiSE5sTzF4dVhIUjlYRzVjYmx4MEx5b3FYRzVjZENvZ1EyOXVkbVZ5ZENCeVpXZGxlSEFnZEc4Z2JtRnRaWE53WVdObFhHNWNkQ3BjYmx4MEtpQkFjR0Z5WVcwZ2UxSmxaMFY0Y0gwZ2NtVm5lR1Z3WEc1Y2RDb2dRSEpsZEhWeWJpQjdVM1J5YVc1bmZTQnVZVzFsYzNCaFkyVmNibHgwS2lCQVlYQnBJSEJ5YVhaaGRHVmNibHgwS2k5Y2JseDBablZ1WTNScGIyNGdkRzlPWVcxbGMzQmhZMlVvY21WblpYaHdLU0I3WEc1Y2RGeDBjbVYwZFhKdUlISmxaMlY0Y0M1MGIxTjBjbWx1WnlncFhHNWNkRngwWEhRdWMzVmljM1J5YVc1bktESXNJSEpsWjJWNGNDNTBiMU4wY21sdVp5Z3BMbXhsYm1kMGFDQXRJRElwWEc1Y2RGeDBYSFF1Y21Wd2JHRmpaU2d2WEZ3dVhGd3FYRncvSkM4c0lDY3FKeWs3WEc1Y2RIMWNibHh1WEhRdktpcGNibHgwS2lCRGIyVnlZMlVnWUhaaGJHQXVYRzVjZENwY2JseDBLaUJBY0dGeVlXMGdlMDFwZUdWa2ZTQjJZV3hjYmx4MEtpQkFjbVYwZFhKdUlIdE5hWGhsWkgxY2JseDBLaUJBWVhCcElIQnlhWFpoZEdWY2JseDBLaTljYmx4MFpuVnVZM1JwYjI0Z1kyOWxjbU5sS0haaGJDa2dlMXh1WEhSY2RHbG1JQ2gyWVd3Z2FXNXpkR0Z1WTJWdlppQkZjbkp2Y2lrZ2UxeHVYSFJjZEZ4MGNtVjBkWEp1SUhaaGJDNXpkR0ZqYXlCOGZDQjJZV3d1YldWemMyRm5aVHRjYmx4MFhIUjlYRzVjZEZ4MGNtVjBkWEp1SUhaaGJEdGNibHgwZlZ4dVhHNWNkQzhxS2x4dVhIUXFJRmhZV0NCRVR5Qk9UMVFnVlZORkxpQlVhR2x6SUdseklHRWdkR1Z0Y0c5eVlYSjVJSE4wZFdJZ1puVnVZM1JwYjI0dVhHNWNkQ29nV0ZoWUlFbDBJRmRKVEV3Z1ltVWdjbVZ0YjNabFpDQnBiaUIwYUdVZ2JtVjRkQ0J0WVdwdmNpQnlaV3hsWVhObExseHVYSFFxTDF4dVhIUm1kVzVqZEdsdmJpQmtaWE4wY205NUtDa2dlMXh1WEhSY2RHTnZibk52YkdVdWQyRnliaWduU1c1emRHRnVZMlVnYldWMGFHOWtJR0JrWldKMVp5NWtaWE4wY205NUtDbGdJR2x6SUdSbGNISmxZMkYwWldRZ1lXNWtJRzV2SUd4dmJtZGxjaUJrYjJWeklHRnVlWFJvYVc1bkxpQkpkQ0IzYVd4c0lHSmxJSEpsYlc5MlpXUWdhVzRnZEdobElHNWxlSFFnYldGcWIzSWdkbVZ5YzJsdmJpQnZaaUJnWkdWaWRXZGdMaWNwTzF4dVhIUjlYRzVjYmx4MFkzSmxZWFJsUkdWaWRXY3VaVzVoWW14bEtHTnlaV0YwWlVSbFluVm5MbXh2WVdRb0tTazdYRzVjYmx4MGNtVjBkWEp1SUdOeVpXRjBaVVJsWW5Wbk8xeHVmVnh1WEc1dGIyUjFiR1V1Wlhod2IzSjBjeUE5SUhObGRIVndPMXh1SWl3aVhDSjFjMlVnYzNSeWFXTjBYQ0k3WEc1UFltcGxZM1F1WkdWbWFXNWxVSEp2Y0dWeWRIa29aWGh3YjNKMGN5d2dYQ0pmWDJWelRXOWtkV3hsWENJc0lIc2dkbUZzZFdVNklIUnlkV1VnZlNrN1hHNWxlSEJ2Y25SekxtaGhjMEpwYm1GeWVTQTlJR1Y0Y0c5eWRITXVhWE5DYVc1aGNua2dQU0IyYjJsa0lEQTdYRzVqYjI1emRDQjNhWFJvVG1GMGFYWmxRWEp5WVhsQ2RXWm1aWElnUFNCMGVYQmxiMllnUVhKeVlYbENkV1ptWlhJZ1BUMDlJRndpWm5WdVkzUnBiMjVjSWp0Y2JtTnZibk4wSUdselZtbGxkeUE5SUNodlltb3BJRDArSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkSGx3Wlc5bUlFRnljbUY1UW5WbVptVnlMbWx6Vm1sbGR5QTlQVDBnWENKbWRXNWpkR2x2Ymx3aVhHNGdJQ0FnSUNBZ0lEOGdRWEp5WVhsQ2RXWm1aWEl1YVhOV2FXVjNLRzlpYWlsY2JpQWdJQ0FnSUNBZ09pQnZZbW91WW5WbVptVnlJR2x1YzNSaGJtTmxiMllnUVhKeVlYbENkV1ptWlhJN1hHNTlPMXh1WTI5dWMzUWdkRzlUZEhKcGJtY2dQU0JQWW1wbFkzUXVjSEp2ZEc5MGVYQmxMblJ2VTNSeWFXNW5PMXh1WTI5dWMzUWdkMmwwYUU1aGRHbDJaVUpzYjJJZ1BTQjBlWEJsYjJZZ1FteHZZaUE5UFQwZ1hDSm1kVzVqZEdsdmJsd2lJSHg4WEc0Z0lDQWdLSFI1Y0dWdlppQkNiRzlpSUNFOVBTQmNJblZ1WkdWbWFXNWxaRndpSUNZbVhHNGdJQ0FnSUNBZ0lIUnZVM1J5YVc1bkxtTmhiR3dvUW14dllpa2dQVDA5SUZ3aVcyOWlhbVZqZENCQ2JHOWlRMjl1YzNSeWRXTjBiM0pkWENJcE8xeHVZMjl1YzNRZ2QybDBhRTVoZEdsMlpVWnBiR1VnUFNCMGVYQmxiMllnUm1sc1pTQTlQVDBnWENKbWRXNWpkR2x2Ymx3aUlIeDhYRzRnSUNBZ0tIUjVjR1Z2WmlCR2FXeGxJQ0U5UFNCY0luVnVaR1ZtYVc1bFpGd2lJQ1ltWEc0Z0lDQWdJQ0FnSUhSdlUzUnlhVzVuTG1OaGJHd29SbWxzWlNrZ1BUMDlJRndpVzI5aWFtVmpkQ0JHYVd4bFEyOXVjM1J5ZFdOMGIzSmRYQ0lwTzF4dUx5b3FYRzRnS2lCU1pYUjFjbTV6SUhSeWRXVWdhV1lnYjJKcUlHbHpJR0VnUW5WbVptVnlMQ0JoYmlCQmNuSmhlVUoxWm1abGNpd2dZU0JDYkc5aUlHOXlJR0VnUm1sc1pTNWNiaUFxWEc0Z0tpQkFjSEpwZG1GMFpWeHVJQ292WEc1bWRXNWpkR2x2YmlCcGMwSnBibUZ5ZVNodlltb3BJSHRjYmlBZ0lDQnlaWFIxY200Z0tDaDNhWFJvVG1GMGFYWmxRWEp5WVhsQ2RXWm1aWElnSmlZZ0tHOWlhaUJwYm5OMFlXNWpaVzltSUVGeWNtRjVRblZtWm1WeUlIeDhJR2x6Vm1sbGR5aHZZbW9wS1NrZ2ZIeGNiaUFnSUNBZ0lDQWdLSGRwZEdoT1lYUnBkbVZDYkc5aUlDWW1JRzlpYWlCcGJuTjBZVzVqWlc5bUlFSnNiMklwSUh4OFhHNGdJQ0FnSUNBZ0lDaDNhWFJvVG1GMGFYWmxSbWxzWlNBbUppQnZZbW9nYVc1emRHRnVZMlZ2WmlCR2FXeGxLU2s3WEc1OVhHNWxlSEJ2Y25SekxtbHpRbWx1WVhKNUlEMGdhWE5DYVc1aGNuazdYRzVtZFc1amRHbHZiaUJvWVhOQ2FXNWhjbmtvYjJKcUxDQjBiMHBUVDA0cElIdGNiaUFnSUNCcFppQW9JVzlpYWlCOGZDQjBlWEJsYjJZZ2IySnFJQ0U5UFNCY0ltOWlhbVZqZEZ3aUtTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQm1ZV3h6WlR0Y2JpQWdJQ0I5WEc0Z0lDQWdhV1lnS0VGeWNtRjVMbWx6UVhKeVlYa29iMkpxS1NrZ2UxeHVJQ0FnSUNBZ0lDQm1iM0lnS0d4bGRDQnBJRDBnTUN3Z2JDQTlJRzlpYWk1c1pXNW5kR2c3SUdrZ1BDQnNPeUJwS3lzcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaG9ZWE5DYVc1aGNua29iMkpxVzJsZEtTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjBjblZsTzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJtWVd4elpUdGNiaUFnSUNCOVhHNGdJQ0FnYVdZZ0tHbHpRbWx1WVhKNUtHOWlhaWtwSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSeWRXVTdYRzRnSUNBZ2ZWeHVJQ0FnSUdsbUlDaHZZbW91ZEc5S1UwOU9JQ1ltWEc0Z0lDQWdJQ0FnSUhSNWNHVnZaaUJ2WW1vdWRHOUtVMDlPSUQwOVBTQmNJbVoxYm1OMGFXOXVYQ0lnSmlaY2JpQWdJQ0FnSUNBZ1lYSm5kVzFsYm5SekxteGxibWQwYUNBOVBUMGdNU2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnYUdGelFtbHVZWEo1S0c5aWFpNTBiMHBUVDA0b0tTd2dkSEoxWlNrN1hHNGdJQ0FnZlZ4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnYTJWNUlHbHVJRzlpYWlrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvVDJKcVpXTjBMbkJ5YjNSdmRIbHdaUzVvWVhOUGQyNVFjbTl3WlhKMGVTNWpZV3hzS0c5aWFpd2dhMlY1S1NBbUppQm9ZWE5DYVc1aGNua29iMkpxVzJ0bGVWMHBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2RISjFaVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z1ptRnNjMlU3WEc1OVhHNWxlSEJ2Y25SekxtaGhjMEpwYm1GeWVTQTlJR2hoYzBKcGJtRnllVHRjYmlJc0lpOHFJR1Z6YkdsdWRDMWxibllnWW5KdmQzTmxjaUFxTDF4dVhHNHZLaXBjYmlBcUlGUm9hWE1nYVhNZ2RHaGxJSGRsWWlCaWNtOTNjMlZ5SUdsdGNHeGxiV1Z1ZEdGMGFXOXVJRzltSUdCa1pXSjFaeWdwWUM1Y2JpQXFMMXh1WEc1bGVIQnZjblJ6TG1admNtMWhkRUZ5WjNNZ1BTQm1iM0p0WVhSQmNtZHpPMXh1Wlhod2IzSjBjeTV6WVhabElEMGdjMkYyWlR0Y2JtVjRjRzl5ZEhNdWJHOWhaQ0E5SUd4dllXUTdYRzVsZUhCdmNuUnpMblZ6WlVOdmJHOXljeUE5SUhWelpVTnZiRzl5Y3p0Y2JtVjRjRzl5ZEhNdWMzUnZjbUZuWlNBOUlHeHZZMkZzYzNSdmNtRm5aU2dwTzF4dVpYaHdiM0owY3k1a1pYTjBjbTk1SUQwZ0tDZ3BJRDArSUh0Y2JseDBiR1YwSUhkaGNtNWxaQ0E5SUdaaGJITmxPMXh1WEc1Y2RISmxkSFZ5YmlBb0tTQTlQaUI3WEc1Y2RGeDBhV1lnS0NGM1lYSnVaV1FwSUh0Y2JseDBYSFJjZEhkaGNtNWxaQ0E5SUhSeWRXVTdYRzVjZEZ4MFhIUmpiMjV6YjJ4bExuZGhjbTRvSjBsdWMzUmhibU5sSUcxbGRHaHZaQ0JnWkdWaWRXY3VaR1Z6ZEhKdmVTZ3BZQ0JwY3lCa1pYQnlaV05oZEdWa0lHRnVaQ0J1YnlCc2IyNW5aWElnWkc5bGN5QmhibmwwYUdsdVp5NGdTWFFnZDJsc2JDQmlaU0J5WlcxdmRtVmtJR2x1SUhSb1pTQnVaWGgwSUcxaGFtOXlJSFpsY25OcGIyNGdiMllnWUdSbFluVm5ZQzRuS1R0Y2JseDBYSFI5WEc1Y2RIMDdYRzU5S1NncE8xeHVYRzR2S2lwY2JpQXFJRU52Ykc5eWN5NWNiaUFxTDF4dVhHNWxlSEJ2Y25SekxtTnZiRzl5Y3lBOUlGdGNibHgwSnlNd01EQXdRME1uTEZ4dVhIUW5JekF3TURCR1JpY3NYRzVjZENjak1EQXpNME5ESnl4Y2JseDBKeU13TURNelJrWW5MRnh1WEhRbkl6QXdOalpEUXljc1hHNWNkQ2NqTURBMk5rWkdKeXhjYmx4MEp5TXdNRGs1UTBNbkxGeHVYSFFuSXpBd09UbEdSaWNzWEc1Y2RDY2pNREJEUXpBd0p5eGNibHgwSnlNd01FTkRNek1uTEZ4dVhIUW5JekF3UTBNMk5pY3NYRzVjZENjak1EQkRRems1Snl4Y2JseDBKeU13TUVORFEwTW5MRnh1WEhRbkl6QXdRME5HUmljc1hHNWNkQ2NqTXpNd01FTkRKeXhjYmx4MEp5TXpNekF3UmtZbkxGeHVYSFFuSXpNek16TkRReWNzWEc1Y2RDY2pNek16TTBaR0p5eGNibHgwSnlNek16WTJRME1uTEZ4dVhIUW5Jek16TmpaR1JpY3NYRzVjZENjak16TTVPVU5ESnl4Y2JseDBKeU16TXprNVJrWW5MRnh1WEhRbkl6TXpRME13TUNjc1hHNWNkQ2NqTXpORFF6TXpKeXhjYmx4MEp5TXpNME5ETmpZbkxGeHVYSFFuSXpNelEwTTVPU2NzWEc1Y2RDY2pNek5EUTBOREp5eGNibHgwSnlNek0wTkRSa1luTEZ4dVhIUW5JelkyTURCRFF5Y3NYRzVjZENjak5qWXdNRVpHSnl4Y2JseDBKeU0yTmpNelEwTW5MRnh1WEhRbkl6WTJNek5HUmljc1hHNWNkQ2NqTmpaRFF6QXdKeXhjYmx4MEp5TTJOa05ETXpNbkxGeHVYSFFuSXprNU1EQkRReWNzWEc1Y2RDY2pPVGt3TUVaR0p5eGNibHgwSnlNNU9UTXpRME1uTEZ4dVhIUW5Jems1TXpOR1JpY3NYRzVjZENjak9UbERRekF3Snl4Y2JseDBKeU01T1VORE16TW5MRnh1WEhRbkkwTkRNREF3TUNjc1hHNWNkQ2NqUTBNd01ETXpKeXhjYmx4MEp5TkRRekF3TmpZbkxGeHVYSFFuSTBORE1EQTVPU2NzWEc1Y2RDY2pRME13TUVOREp5eGNibHgwSnlORFF6QXdSa1luTEZ4dVhIUW5JME5ETXpNd01DY3NYRzVjZENjalEwTXpNek16Snl4Y2JseDBKeU5EUXpNek5qWW5MRnh1WEhRbkkwTkRNek01T1Njc1hHNWNkQ2NqUTBNek0wTkRKeXhjYmx4MEp5TkRRek16UmtZbkxGeHVYSFFuSTBORE5qWXdNQ2NzWEc1Y2RDY2pRME0yTmpNekp5eGNibHgwSnlORFF6azVNREFuTEZ4dVhIUW5JME5ET1Rrek15Y3NYRzVjZENjalEwTkRRekF3Snl4Y2JseDBKeU5EUTBORE16TW5MRnh1WEhRbkkwWkdNREF3TUNjc1hHNWNkQ2NqUmtZd01ETXpKeXhjYmx4MEp5TkdSakF3TmpZbkxGeHVYSFFuSTBaR01EQTVPU2NzWEc1Y2RDY2pSa1l3TUVOREp5eGNibHgwSnlOR1JqQXdSa1luTEZ4dVhIUW5JMFpHTXpNd01DY3NYRzVjZENjalJrWXpNek16Snl4Y2JseDBKeU5HUmpNek5qWW5MRnh1WEhRbkkwWkdNek01T1Njc1hHNWNkQ2NqUmtZek0wTkRKeXhjYmx4MEp5TkdSak16UmtZbkxGeHVYSFFuSTBaR05qWXdNQ2NzWEc1Y2RDY2pSa1kyTmpNekp5eGNibHgwSnlOR1JqazVNREFuTEZ4dVhIUW5JMFpHT1Rrek15Y3NYRzVjZENjalJrWkRRekF3Snl4Y2JseDBKeU5HUmtORE16TW5YRzVkTzF4dVhHNHZLaXBjYmlBcUlFTjFjbkpsYm5Sc2VTQnZibXg1SUZkbFlrdHBkQzFpWVhObFpDQlhaV0lnU1c1emNHVmpkRzl5Y3l3Z1JtbHlaV1p2ZUNBK1BTQjJNekVzWEc0Z0tpQmhibVFnZEdobElFWnBjbVZpZFdjZ1pYaDBaVzV6YVc5dUlDaGhibmtnUm1seVpXWnZlQ0IyWlhKemFXOXVLU0JoY21VZ2EyNXZkMjVjYmlBcUlIUnZJSE4xY0hCdmNuUWdYQ0lsWTF3aUlFTlRVeUJqZFhOMGIyMXBlbUYwYVc5dWN5NWNiaUFxWEc0Z0tpQlVUMFJQT2lCaFpHUWdZU0JnYkc5allXeFRkRzl5WVdkbFlDQjJZWEpwWVdKc1pTQjBieUJsZUhCc2FXTnBkR3g1SUdWdVlXSnNaUzlrYVhOaFlteGxJR052Ykc5eWMxeHVJQ292WEc1Y2JpOHZJR1Z6YkdsdWRDMWthWE5oWW14bExXNWxlSFF0YkdsdVpTQmpiMjF3YkdWNGFYUjVYRzVtZFc1amRHbHZiaUIxYzJWRGIyeHZjbk1vS1NCN1hHNWNkQzh2SUU1Q09pQkpiaUJoYmlCRmJHVmpkSEp2YmlCd2NtVnNiMkZrSUhOamNtbHdkQ3dnWkc5amRXMWxiblFnZDJsc2JDQmlaU0JrWldacGJtVmtJR0oxZENCdWIzUWdablZzYkhsY2JseDBMeThnYVc1cGRHbGhiR2w2WldRdUlGTnBibU5sSUhkbElHdHViM2NnZDJVbmNtVWdhVzRnUTJoeWIyMWxMQ0IzWlNkc2JDQnFkWE4wSUdSbGRHVmpkQ0IwYUdseklHTmhjMlZjYmx4MEx5OGdaWGh3YkdsamFYUnNlVnh1WEhScFppQW9kSGx3Wlc5bUlIZHBibVJ2ZHlBaFBUMGdKM1Z1WkdWbWFXNWxaQ2NnSmlZZ2QybHVaRzkzTG5CeWIyTmxjM01nSmlZZ0tIZHBibVJ2ZHk1d2NtOWpaWE56TG5SNWNHVWdQVDA5SUNkeVpXNWtaWEpsY2ljZ2ZId2dkMmx1Wkc5M0xuQnliMk5sYzNNdVgxOXVkMnB6S1NrZ2UxeHVYSFJjZEhKbGRIVnliaUIwY25WbE8xeHVYSFI5WEc1Y2JseDBMeThnU1c1MFpYSnVaWFFnUlhod2JHOXlaWElnWVc1a0lFVmtaMlVnWkc4Z2JtOTBJSE4xY0hCdmNuUWdZMjlzYjNKekxseHVYSFJwWmlBb2RIbHdaVzltSUc1aGRtbG5ZWFJ2Y2lBaFBUMGdKM1Z1WkdWbWFXNWxaQ2NnSmlZZ2JtRjJhV2RoZEc5eUxuVnpaWEpCWjJWdWRDQW1KaUJ1WVhacFoyRjBiM0l1ZFhObGNrRm5aVzUwTG5SdlRHOTNaWEpEWVhObEtDa3ViV0YwWTJnb0x5aGxaR2RsZkhSeWFXUmxiblFwWEZ3dktGeGNaQ3NwTHlrcElIdGNibHgwWEhSeVpYUjFjbTRnWm1Gc2MyVTdYRzVjZEgxY2JseHVYSFJzWlhRZ2JUdGNibHh1WEhRdkx5QkpjeUIzWldKcmFYUS9JR2gwZEhBNkx5OXpkR0ZqYTI5MlpYSm1iRzkzTG1OdmJTOWhMekUyTkRVNU5qQTJMek0zTmpjM00xeHVYSFF2THlCa2IyTjFiV1Z1ZENCcGN5QjFibVJsWm1sdVpXUWdhVzRnY21WaFkzUXRibUYwYVhabE9pQm9kSFJ3Y3pvdkwyZHBkR2gxWWk1amIyMHZabUZqWldKdmIyc3ZjbVZoWTNRdGJtRjBhWFpsTDNCMWJHd3ZNVFl6TWx4dVhIUnlaWFIxY200Z0tIUjVjR1Z2WmlCa2IyTjFiV1Z1ZENBaFBUMGdKM1Z1WkdWbWFXNWxaQ2NnSmlZZ1pHOWpkVzFsYm5RdVpHOWpkVzFsYm5SRmJHVnRaVzUwSUNZbUlHUnZZM1Z0Wlc1MExtUnZZM1Z0Wlc1MFJXeGxiV1Z1ZEM1emRIbHNaU0FtSmlCa2IyTjFiV1Z1ZEM1a2IyTjFiV1Z1ZEVWc1pXMWxiblF1YzNSNWJHVXVWMlZpYTJsMFFYQndaV0Z5WVc1alpTa2dmSHhjYmx4MFhIUXZMeUJKY3lCbWFYSmxZblZuUHlCb2RIUndPaTh2YzNSaFkydHZkbVZ5Wm14dmR5NWpiMjB2WVM4ek9UZ3hNakF2TXpjMk56Y3pYRzVjZEZ4MEtIUjVjR1Z2WmlCM2FXNWtiM2NnSVQwOUlDZDFibVJsWm1sdVpXUW5JQ1ltSUhkcGJtUnZkeTVqYjI1emIyeGxJQ1ltSUNoM2FXNWtiM2N1WTI5dWMyOXNaUzVtYVhKbFluVm5JSHg4SUNoM2FXNWtiM2N1WTI5dWMyOXNaUzVsZUdObGNIUnBiMjRnSmlZZ2QybHVaRzkzTG1OdmJuTnZiR1V1ZEdGaWJHVXBLU2tnZkh4Y2JseDBYSFF2THlCSmN5Qm1hWEpsWm05NElENDlJSFl6TVQ5Y2JseDBYSFF2THlCb2RIUndjem92TDJSbGRtVnNiM0JsY2k1dGIzcHBiR3hoTG05eVp5OWxiaTFWVXk5a2IyTnpMMVJ2YjJ4ekwxZGxZbDlEYjI1emIyeGxJMU4wZVd4cGJtZGZiV1Z6YzJGblpYTmNibHgwWEhRb2RIbHdaVzltSUc1aGRtbG5ZWFJ2Y2lBaFBUMGdKM1Z1WkdWbWFXNWxaQ2NnSmlZZ2JtRjJhV2RoZEc5eUxuVnpaWEpCWjJWdWRDQW1KaUFvYlNBOUlHNWhkbWxuWVhSdmNpNTFjMlZ5UVdkbGJuUXVkRzlNYjNkbGNrTmhjMlVvS1M1dFlYUmphQ2d2Wm1seVpXWnZlRnhjTHloY1hHUXJLUzhwS1NBbUppQndZWEp6WlVsdWRDaHRXekZkTENBeE1Da2dQajBnTXpFcElIeDhYRzVjZEZ4MEx5OGdSRzkxWW14bElHTm9aV05ySUhkbFltdHBkQ0JwYmlCMWMyVnlRV2RsYm5RZ2FuVnpkQ0JwYmlCallYTmxJSGRsSUdGeVpTQnBiaUJoSUhkdmNtdGxjbHh1WEhSY2RDaDBlWEJsYjJZZ2JtRjJhV2RoZEc5eUlDRTlQU0FuZFc1a1pXWnBibVZrSnlBbUppQnVZWFpwWjJGMGIzSXVkWE5sY2tGblpXNTBJQ1ltSUc1aGRtbG5ZWFJ2Y2k1MWMyVnlRV2RsYm5RdWRHOU1iM2RsY2tOaGMyVW9LUzV0WVhSamFDZ3ZZWEJ3YkdWM1pXSnJhWFJjWEM4b1hGeGtLeWt2S1NrN1hHNTlYRzVjYmk4cUtseHVJQ29nUTI5c2IzSnBlbVVnYkc5bklHRnlaM1Z0Wlc1MGN5QnBaaUJsYm1GaWJHVmtMbHh1SUNwY2JpQXFJRUJoY0drZ2NIVmliR2xqWEc0Z0tpOWNibHh1Wm5WdVkzUnBiMjRnWm05eWJXRjBRWEpuY3loaGNtZHpLU0I3WEc1Y2RHRnlaM05iTUYwZ1BTQW9kR2hwY3k1MWMyVkRiMnh2Y25NZ1B5QW5KV01uSURvZ0p5Y3BJQ3RjYmx4MFhIUjBhR2x6TG01aGJXVnpjR0ZqWlNBclhHNWNkRngwS0hSb2FYTXVkWE5sUTI5c2IzSnpJRDhnSnlBbFl5Y2dPaUFuSUNjcElDdGNibHgwWEhSaGNtZHpXekJkSUN0Y2JseDBYSFFvZEdocGN5NTFjMlZEYjJ4dmNuTWdQeUFuSldNZ0p5QTZJQ2NnSnlrZ0sxeHVYSFJjZENjckp5QXJJRzF2WkhWc1pTNWxlSEJ2Y25SekxtaDFiV0Z1YVhwbEtIUm9hWE11WkdsbVppazdYRzVjYmx4MGFXWWdLQ0YwYUdsekxuVnpaVU52Ykc5eWN5a2dlMXh1WEhSY2RISmxkSFZ5Ymp0Y2JseDBmVnh1WEc1Y2RHTnZibk4wSUdNZ1BTQW5ZMjlzYjNJNklDY2dLeUIwYUdsekxtTnZiRzl5TzF4dVhIUmhjbWR6TG5Od2JHbGpaU2d4TENBd0xDQmpMQ0FuWTI5c2IzSTZJR2x1YUdWeWFYUW5LVHRjYmx4dVhIUXZMeUJVYUdVZ1ptbHVZV3dnWENJbFkxd2lJR2x6SUhOdmJXVjNhR0YwSUhSeWFXTnJlU3dnWW1WallYVnpaU0IwYUdWeVpTQmpiM1ZzWkNCaVpTQnZkR2hsY2x4dVhIUXZMeUJoY21kMWJXVnVkSE1nY0dGemMyVmtJR1ZwZEdobGNpQmlaV1p2Y21VZ2IzSWdZV1owWlhJZ2RHaGxJQ1ZqTENCemJ5QjNaU0J1WldWa0lIUnZYRzVjZEM4dklHWnBaM1Z5WlNCdmRYUWdkR2hsSUdOdmNuSmxZM1FnYVc1a1pYZ2dkRzhnYVc1elpYSjBJSFJvWlNCRFUxTWdhVzUwYjF4dVhIUnNaWFFnYVc1a1pYZ2dQU0F3TzF4dVhIUnNaWFFnYkdGemRFTWdQU0F3TzF4dVhIUmhjbWR6V3pCZExuSmxjR3hoWTJVb0x5VmJZUzE2UVMxYUpWMHZaeXdnYldGMFkyZ2dQVDRnZTF4dVhIUmNkR2xtSUNodFlYUmphQ0E5UFQwZ0p5VWxKeWtnZTF4dVhIUmNkRngwY21WMGRYSnVPMXh1WEhSY2RIMWNibHgwWEhScGJtUmxlQ3NyTzF4dVhIUmNkR2xtSUNodFlYUmphQ0E5UFQwZ0p5VmpKeWtnZTF4dVhIUmNkRngwTHk4Z1YyVWdiMjVzZVNCaGNtVWdhVzUwWlhKbGMzUmxaQ0JwYmlCMGFHVWdLbXhoYzNRcUlDVmpYRzVjZEZ4MFhIUXZMeUFvZEdobElIVnpaWElnYldGNUlHaGhkbVVnY0hKdmRtbGtaV1FnZEdobGFYSWdiM2R1S1Z4dVhIUmNkRngwYkdGemRFTWdQU0JwYm1SbGVEdGNibHgwWEhSOVhHNWNkSDBwTzF4dVhHNWNkR0Z5WjNNdWMzQnNhV05sS0d4aGMzUkRMQ0F3TENCaktUdGNibjFjYmx4dUx5b3FYRzRnS2lCSmJuWnZhMlZ6SUdCamIyNXpiMnhsTG1SbFluVm5LQ2xnSUhkb1pXNGdZWFpoYVd4aFlteGxMbHh1SUNvZ1RtOHRiM0FnZDJobGJpQmdZMjl1YzI5c1pTNWtaV0oxWjJBZ2FYTWdibTkwSUdFZ1hDSm1kVzVqZEdsdmJsd2lMbHh1SUNvZ1NXWWdZR052Ym5OdmJHVXVaR1ZpZFdkZ0lHbHpJRzV2ZENCaGRtRnBiR0ZpYkdVc0lHWmhiR3h6SUdKaFkydGNiaUFxSUhSdklHQmpiMjV6YjJ4bExteHZaMkF1WEc0Z0tseHVJQ29nUUdGd2FTQndkV0pzYVdOY2JpQXFMMXh1Wlhod2IzSjBjeTVzYjJjZ1BTQmpiMjV6YjJ4bExtUmxZblZuSUh4OElHTnZibk52YkdVdWJHOW5JSHg4SUNnb0tTQTlQaUI3ZlNrN1hHNWNiaThxS2x4dUlDb2dVMkYyWlNCZ2JtRnRaWE53WVdObGMyQXVYRzRnS2x4dUlDb2dRSEJoY21GdElIdFRkSEpwYm1kOUlHNWhiV1Z6Y0dGalpYTmNiaUFxSUVCaGNHa2djSEpwZG1GMFpWeHVJQ292WEc1bWRXNWpkR2x2YmlCellYWmxLRzVoYldWemNHRmpaWE1wSUh0Y2JseDBkSEo1SUh0Y2JseDBYSFJwWmlBb2JtRnRaWE53WVdObGN5a2dlMXh1WEhSY2RGeDBaWGh3YjNKMGN5NXpkRzl5WVdkbExuTmxkRWwwWlcwb0oyUmxZblZuSnl3Z2JtRnRaWE53WVdObGN5azdYRzVjZEZ4MGZTQmxiSE5sSUh0Y2JseDBYSFJjZEdWNGNHOXlkSE11YzNSdmNtRm5aUzV5WlcxdmRtVkpkR1Z0S0Nka1pXSjFaeWNwTzF4dVhIUmNkSDFjYmx4MGZTQmpZWFJqYUNBb1pYSnliM0lwSUh0Y2JseDBYSFF2THlCVGQyRnNiRzkzWEc1Y2RGeDBMeThnV0ZoWUlDaEFVV2w0TFNrZ2MyaHZkV3hrSUhkbElHSmxJR3h2WjJkcGJtY2dkR2hsYzJVL1hHNWNkSDFjYm4xY2JseHVMeW9xWEc0Z0tpQk1iMkZrSUdCdVlXMWxjM0JoWTJWellDNWNiaUFxWEc0Z0tpQkFjbVYwZFhKdUlIdFRkSEpwYm1kOUlISmxkSFZ5Ym5NZ2RHaGxJSEJ5WlhacGIzVnpiSGtnY0dWeWMybHpkR1ZrSUdSbFluVm5JRzF2WkdWelhHNGdLaUJBWVhCcElIQnlhWFpoZEdWY2JpQXFMMXh1Wm5WdVkzUnBiMjRnYkc5aFpDZ3BJSHRjYmx4MGJHVjBJSEk3WEc1Y2RIUnllU0I3WEc1Y2RGeDBjaUE5SUdWNGNHOXlkSE11YzNSdmNtRm5aUzVuWlhSSmRHVnRLQ2RrWldKMVp5Y3BPMXh1WEhSOUlHTmhkR05vSUNobGNuSnZjaWtnZTF4dVhIUmNkQzh2SUZOM1lXeHNiM2RjYmx4MFhIUXZMeUJZV0ZnZ0tFQlJhWGd0S1NCemFHOTFiR1FnZDJVZ1ltVWdiRzluWjJsdVp5QjBhR1Z6WlQ5Y2JseDBmVnh1WEc1Y2RDOHZJRWxtSUdSbFluVm5JR2x6YmlkMElITmxkQ0JwYmlCTVV5d2dZVzVrSUhkbEozSmxJR2x1SUVWc1pXTjBjbTl1TENCMGNua2dkRzhnYkc5aFpDQWtSRVZDVlVkY2JseDBhV1lnS0NGeUlDWW1JSFI1Y0dWdlppQndjbTlqWlhOeklDRTlQU0FuZFc1a1pXWnBibVZrSnlBbUppQW5aVzUySnlCcGJpQndjbTlqWlhOektTQjdYRzVjZEZ4MGNpQTlJSEJ5YjJObGMzTXVaVzUyTGtSRlFsVkhPMXh1WEhSOVhHNWNibHgwY21WMGRYSnVJSEk3WEc1OVhHNWNiaThxS2x4dUlDb2dURzlqWVd4emRHOXlZV2RsSUdGMGRHVnRjSFJ6SUhSdklISmxkSFZ5YmlCMGFHVWdiRzlqWVd4emRHOXlZV2RsTGx4dUlDcGNiaUFxSUZSb2FYTWdhWE1nYm1WalpYTnpZWEo1SUdKbFkyRjFjMlVnYzJGbVlYSnBJSFJvY205M2MxeHVJQ29nZDJobGJpQmhJSFZ6WlhJZ1pHbHpZV0pzWlhNZ1kyOXZhMmxsY3k5c2IyTmhiSE4wYjNKaFoyVmNiaUFxSUdGdVpDQjViM1VnWVhSMFpXMXdkQ0IwYnlCaFkyTmxjM01nYVhRdVhHNGdLbHh1SUNvZ1FISmxkSFZ5YmlCN1RHOWpZV3hUZEc5eVlXZGxmVnh1SUNvZ1FHRndhU0J3Y21sMllYUmxYRzRnS2k5Y2JseHVablZ1WTNScGIyNGdiRzlqWVd4emRHOXlZV2RsS0NrZ2UxeHVYSFIwY25rZ2UxeHVYSFJjZEM4dklGUldUVXhMYVhRZ0tFRndjR3hsSUZSV0lFcFRJRkoxYm5ScGJXVXBJR1J2WlhNZ2JtOTBJR2hoZG1VZ1lTQjNhVzVrYjNjZ2IySnFaV04wTENCcWRYTjBJR3h2WTJGc1UzUnZjbUZuWlNCcGJpQjBhR1VnWjJ4dlltRnNJR052Ym5SbGVIUmNibHgwWEhRdkx5QlVhR1VnUW5KdmQzTmxjaUJoYkhOdklHaGhjeUJzYjJOaGJGTjBiM0poWjJVZ2FXNGdkR2hsSUdkc2IySmhiQ0JqYjI1MFpYaDBMbHh1WEhSY2RISmxkSFZ5YmlCc2IyTmhiRk4wYjNKaFoyVTdYRzVjZEgwZ1kyRjBZMmdnS0dWeWNtOXlLU0I3WEc1Y2RGeDBMeThnVTNkaGJHeHZkMXh1WEhSY2RDOHZJRmhZV0NBb1FGRnBlQzBwSUhOb2IzVnNaQ0IzWlNCaVpTQnNiMmRuYVc1bklIUm9aWE5sUDF4dVhIUjlYRzU5WEc1Y2JtMXZaSFZzWlM1bGVIQnZjblJ6SUQwZ2NtVnhkV2x5WlNnbkxpOWpiMjF0YjI0bktTaGxlSEJ2Y25SektUdGNibHh1WTI5dWMzUWdlMlp2Y20xaGRIUmxjbk45SUQwZ2JXOWtkV3hsTG1WNGNHOXlkSE03WEc1Y2JpOHFLbHh1SUNvZ1RXRndJQ1ZxSUhSdklHQktVMDlPTG5OMGNtbHVaMmxtZVNncFlDd2djMmx1WTJVZ2JtOGdWMlZpSUVsdWMzQmxZM1J2Y25NZ1pHOGdkR2hoZENCaWVTQmtaV1poZFd4MExseHVJQ292WEc1Y2JtWnZjbTFoZEhSbGNuTXVhaUE5SUdaMWJtTjBhVzl1SUNoMktTQjdYRzVjZEhSeWVTQjdYRzVjZEZ4MGNtVjBkWEp1SUVwVFQwNHVjM1J5YVc1bmFXWjVLSFlwTzF4dVhIUjlJR05oZEdOb0lDaGxjbkp2Y2lrZ2UxeHVYSFJjZEhKbGRIVnliaUFuVzFWdVpYaHdaV04wWldSS1UwOU9VR0Z5YzJWRmNuSnZjbDA2SUNjZ0t5Qmxjbkp2Y2k1dFpYTnpZV2RsTzF4dVhIUjlYRzU5TzF4dUlpd2lYQ0oxYzJVZ2MzUnlhV04wWENJN1hHNVBZbXBsWTNRdVpHVm1hVzVsVUhKdmNHVnlkSGtvWlhod2IzSjBjeXdnWENKZlgyVnpUVzlrZFd4bFhDSXNJSHNnZG1Gc2RXVTZJSFJ5ZFdVZ2ZTazdYRzVsZUhCdmNuUnpMblJ5WVc1emNHOXlkSE1nUFNCMmIybGtJREE3WEc1amIyNXpkQ0J3YjJ4c2FXNW5YMnB6WHpFZ1BTQnlaWEYxYVhKbEtGd2lMaTl3YjJ4c2FXNW5MbXB6WENJcE8xeHVZMjl1YzNRZ2QyVmljMjlqYTJWMFgycHpYekVnUFNCeVpYRjFhWEpsS0Z3aUxpOTNaV0p6YjJOclpYUXVhbk5jSWlrN1hHNWpiMjV6ZENCM1pXSjBjbUZ1YzNCdmNuUmZhbk5mTVNBOUlISmxjWFZwY21Vb1hDSXVMM2RsWW5SeVlXNXpjRzl5ZEM1cWMxd2lLVHRjYm1WNGNHOXlkSE11ZEhKaGJuTndiM0owY3lBOUlIdGNiaUFnSUNCM1pXSnpiMk5yWlhRNklIZGxZbk52WTJ0bGRGOXFjMTh4TGxkVExGeHVJQ0FnSUhkbFluUnlZVzV6Y0c5eWREb2dkMlZpZEhKaGJuTndiM0owWDJwelh6RXVWMVFzWEc0Z0lDQWdjRzlzYkdsdVp6b2djRzlzYkdsdVoxOXFjMTh4TGxCdmJHeHBibWNzWEc1OU8xeHVJaXdpWENKMWMyVWdjM1J5YVdOMFhDSTdYRzVQWW1wbFkzUXVaR1ZtYVc1bFVISnZjR1Z5ZEhrb1pYaHdiM0owY3l3Z1hDSmZYMlZ6VFc5a2RXeGxYQ0lzSUhzZ2RtRnNkV1U2SUhSeWRXVWdmU2s3WEc1bGVIQnZjblJ6TG5SMWJtVlBjSFJwYjI1TlpYUm9iMlJ6SUQwZ1pYaHdiM0owY3k1cGJtbDBJRDBnWlhod2IzSjBjeTUwZFc1bFQzQjBhVzl1UkdWMFlXbHNUV1YwWVNBOUlHVjRjRzl5ZEhNdWRIVnVaVTl3ZEdsdmJrUmxkR0ZwYkVWdGIzUnBiMjRnUFNCbGVIQnZjblJ6TG5SMWJtVlBjSFJwYjI1U1lXNXJRV3hzU0dGelRHRjBaWE4wVUc5emRDQTlJR1Y0Y0c5eWRITXVkSFZ1WlU5d2RHbHZibEpoYm10SVlYTk1ZWFJsYzNSUWIzTjBJRDBnWlhod2IzSjBjeTUwZFc1bFQzQjBhVzl1U0dGelRHRjBaWE4wVUc5emRDQTlJR1Y0Y0c5eWRITXVkSFZ1WlU5d2RHbHZibEpoYm10QmJHd2dQU0JsZUhCdmNuUnpMblIxYm1WUGNIUnBiMjVTWVc1cklEMGdaWGh3YjNKMGN5NTBkVzVsVDNCMGFXOXVVRzl6ZEhNZ1BTQjJiMmxrSURBN1hHNWxlSEJ2Y25SekxuUjFibVZQY0hScGIyNVFiM04wY3lBOUlDZHdiM04wY3ljN1hHNWxlSEJ2Y25SekxuUjFibVZQY0hScGIyNVNZVzVySUQwZ0ozSmhibXNuTzF4dVpYaHdiM0owY3k1MGRXNWxUM0IwYVc5dVVtRnVhMEZzYkNBOUlDZHlZVzVyUVd4c0p6dGNibVY0Y0c5eWRITXVkSFZ1WlU5d2RHbHZia2hoYzB4aGRHVnpkRkJ2YzNRZ1BTQW5hR0Z6VEdGMFpYTjBVRzl6ZENjN1hHNWxlSEJ2Y25SekxuUjFibVZQY0hScGIyNVNZVzVyU0dGelRHRjBaWE4wVUc5emRDQTlJQ2R5WVc1clNHRnpUR0YwWlhOMFVHOXpkQ2M3WEc1bGVIQnZjblJ6TG5SMWJtVlBjSFJwYjI1U1lXNXJRV3hzU0dGelRHRjBaWE4wVUc5emRDQTlJQ2R5WVc1clFXeHNTR0Z6VEdGMFpYTjBVRzl6ZENjN1hHNWxlSEJ2Y25SekxuUjFibVZQY0hScGIyNUVaWFJoYVd4RmJXOTBhVzl1SUQwZ0oyUmxkR0ZwYkVWdGIzUnBiMjRuTzF4dVpYaHdiM0owY3k1MGRXNWxUM0IwYVc5dVJHVjBZV2xzVFdWMFlTQTlJQ2RrWlhSaGFXeE5aWFJoSnp0Y2JtVjRjRzl5ZEhNdWFXNXBkQ0E5SUh0Y2JpQWdJQ0JiWlhod2IzSjBjeTUwZFc1bFQzQjBhVzl1VUc5emRITmRPaUJtWVd4elpTeGNiaUFnSUNCYlpYaHdiM0owY3k1MGRXNWxUM0IwYVc5dVVtRnVhMTA2SUdaaGJITmxMRnh1SUNBZ0lGdGxlSEJ2Y25SekxuUjFibVZQY0hScGIyNVNZVzVyUVd4c1hUb2dabUZzYzJVc1hHNGdJQ0FnVzJWNGNHOXlkSE11ZEhWdVpVOXdkR2x2YmtoaGMweGhkR1Z6ZEZCdmMzUmRPaUJtWVd4elpTeGNiaUFnSUNCYlpYaHdiM0owY3k1MGRXNWxUM0IwYVc5dVVtRnVhMGhoYzB4aGRHVnpkRkJ2YzNSZE9pQm1ZV3h6WlN4Y2JpQWdJQ0JiWlhod2IzSjBjeTUwZFc1bFQzQjBhVzl1VW1GdWEwRnNiRWhoYzB4aGRHVnpkRkJ2YzNSZE9pQm1ZV3h6WlN4Y2JpQWdJQ0JiWlhod2IzSjBjeTUwZFc1bFQzQjBhVzl1UkdWMFlXbHNSVzF2ZEdsdmJsMDZJR1poYkhObExGeHVJQ0FnSUZ0bGVIQnZjblJ6TG5SMWJtVlBjSFJwYjI1RVpYUmhhV3hOWlhSaFhUb2dabUZzYzJVc1hHNTlPMXh1Wlhod2IzSjBjeTUwZFc1bFQzQjBhVzl1VFdWMGFHOWtjeUE5SUU5aWFtVmpkQzVyWlhsektHVjRjRzl5ZEhNdWFXNXBkQ2s3WEc1amJHRnpjeUJVZFc1bFQzQjBhVzl1VFc5a1pXd2dlMXh1SUNBZ0lHTnZibk4wY25WamRHOXlLSEJoY21GdGN5QTlJR1Y0Y0c5eWRITXVhVzVwZENrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1QySnFaV04wTG1GemMybG5iaWgwYUdsekxDQndZWEpoYlhNcE8xeHVJQ0FnSUgxY2JpQWdJQ0J6ZEdGMGFXTWdaMlYwVkhWdVpVOXdkR2x2YmtaeWIyMVZjbXdvZFhKc0tTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElIRjFaWEo1VTNSeWFXNW5JRDBnZFhKc0xuTndiR2wwS0Z3aVAxd2lLVnN4WFR0Y2JpQWdJQ0FnSUNBZ2FXWWdLQ0Z4ZFdWeWVWTjBjbWx1WnlsY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjdJQzR1TG1WNGNHOXlkSE11YVc1cGRDQjlPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQndZWEpoYlhNZ1BTQnVaWGNnVlZKTVUyVmhjbU5vVUdGeVlXMXpLSEYxWlhKNVUzUnlhVzVuS1R0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYjNCMGFXOXVJRDBnZTMwN1hHNGdJQ0FnSUNBZ0lHWnZjaUFvWTI5dWMzUWdhMlY1SUc5bUlHVjRjRzl5ZEhNdWRIVnVaVTl3ZEdsdmJrMWxkR2h2WkhNcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSFpoYkhWbElEMGdjR0Z5WVcxekxtZGxkQ2hyWlhrcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIWmhiSFZsSUQwOVBTQmNJblJ5ZFdWY0lpa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzl3ZEdsdmJsdHJaWGxkSUQwZ2RISjFaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUdWc2MyVWdhV1lnS0haaGJIVmxJRDA5UFNCY0ltWmhiSE5sWENJcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnZjSFJwYjI1YmEyVjVYU0E5SUdaaGJITmxPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiM0IwYVc5dVcydGxlVjBnUFNCQ2IyOXNaV0Z1S0haaGJIVmxLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0xpNHVaWGh3YjNKMGN5NXBibWwwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdMaTR1YjNCMGFXOXVMRnh1SUNBZ0lDQWdJQ0I5TzF4dUlDQWdJSDFjYm4xY2JtVjRjRzl5ZEhNdVpHVm1ZWFZzZENBOUlGUjFibVZQY0hScGIyNU5iMlJsYkR0Y2JpSXNJaTh2SUZSb1pTQnRiMlIxYkdVZ1kyRmphR1ZjYm5aaGNpQmZYM2RsWW5CaFkydGZiVzlrZFd4bFgyTmhZMmhsWDE4Z1BTQjdmVHRjYmx4dUx5OGdWR2hsSUhKbGNYVnBjbVVnWm5WdVkzUnBiMjVjYm1aMWJtTjBhVzl1SUY5ZmQyVmljR0ZqYTE5eVpYRjFhWEpsWDE4b2JXOWtkV3hsU1dRcElIdGNibHgwTHk4Z1EyaGxZMnNnYVdZZ2JXOWtkV3hsSUdseklHbHVJR05oWTJobFhHNWNkSFpoY2lCallXTm9aV1JOYjJSMWJHVWdQU0JmWDNkbFluQmhZMnRmYlc5a2RXeGxYMk5oWTJobFgxOWJiVzlrZFd4bFNXUmRPMXh1WEhScFppQW9ZMkZqYUdWa1RXOWtkV3hsSUNFOVBTQjFibVJsWm1sdVpXUXBJSHRjYmx4MFhIUnBaaUFvWTJGamFHVmtUVzlrZFd4bExtVnljbTl5SUNFOVBTQjFibVJsWm1sdVpXUXBJSFJvY205M0lHTmhZMmhsWkUxdlpIVnNaUzVsY25KdmNqdGNibHgwWEhSeVpYUjFjbTRnWTJGamFHVmtUVzlrZFd4bExtVjRjRzl5ZEhNN1hHNWNkSDFjYmx4MEx5OGdRM0psWVhSbElHRWdibVYzSUcxdlpIVnNaU0FvWVc1a0lIQjFkQ0JwZENCcGJuUnZJSFJvWlNCallXTm9aU2xjYmx4MGRtRnlJRzF2WkhWc1pTQTlJRjlmZDJWaWNHRmphMTl0YjJSMWJHVmZZMkZqYUdWZlgxdHRiMlIxYkdWSlpGMGdQU0I3WEc1Y2RGeDBMeThnYm04Z2JXOWtkV3hsTG1sa0lHNWxaV1JsWkZ4dVhIUmNkQzh2SUc1dklHMXZaSFZzWlM1c2IyRmtaV1FnYm1WbFpHVmtYRzVjZEZ4MFpYaHdiM0owY3pvZ2UzMWNibHgwZlR0Y2JseHVYSFF2THlCRmVHVmpkWFJsSUhSb1pTQnRiMlIxYkdVZ1puVnVZM1JwYjI1Y2JseDBkSEo1SUh0Y2JseDBYSFJmWDNkbFluQmhZMnRmYlc5a2RXeGxjMTlmVzIxdlpIVnNaVWxrWFM1allXeHNLRzF2WkhWc1pTNWxlSEJ2Y25SekxDQnRiMlIxYkdVc0lHMXZaSFZzWlM1bGVIQnZjblJ6TENCZlgzZGxZbkJoWTJ0ZmNtVnhkV2x5WlY5ZktUdGNibHgwZlNCallYUmphQ2hsS1NCN1hHNWNkRngwYlc5a2RXeGxMbVZ5Y205eUlEMGdaVHRjYmx4MFhIUjBhSEp2ZHlCbE8xeHVYSFI5WEc1Y2JseDBMeThnVW1WMGRYSnVJSFJvWlNCbGVIQnZjblJ6SUc5bUlIUm9aU0J0YjJSMWJHVmNibHgwY21WMGRYSnVJRzF2WkhWc1pTNWxlSEJ2Y25Sek8xeHVmVnh1WEc0aUxDSXZMeUJrWldacGJtVWdaMlYwZEdWeUlHWjFibU4wYVc5dWN5Qm1iM0lnYUdGeWJXOXVlU0JsZUhCdmNuUnpYRzVmWDNkbFluQmhZMnRmY21WeGRXbHlaVjlmTG1RZ1BTQW9aWGh3YjNKMGN5d2daR1ZtYVc1cGRHbHZiaWtnUFQ0Z2UxeHVYSFJtYjNJb2RtRnlJR3RsZVNCcGJpQmtaV1pwYm1sMGFXOXVLU0I3WEc1Y2RGeDBhV1lvWDE5M1pXSndZV05yWDNKbGNYVnBjbVZmWHk1dktHUmxabWx1YVhScGIyNHNJR3RsZVNrZ0ppWWdJVjlmZDJWaWNHRmphMTl5WlhGMWFYSmxYMTh1YnlobGVIQnZjblJ6TENCclpYa3BLU0I3WEc1Y2RGeDBYSFJQWW1wbFkzUXVaR1ZtYVc1bFVISnZjR1Z5ZEhrb1pYaHdiM0owY3l3Z2EyVjVMQ0I3SUdWdWRXMWxjbUZpYkdVNklIUnlkV1VzSUdkbGREb2daR1ZtYVc1cGRHbHZibHRyWlhsZElIMHBPMXh1WEhSY2RIMWNibHgwZlZ4dWZUc2lMQ0pmWDNkbFluQmhZMnRmY21WeGRXbHlaVjlmTG04Z1BTQW9iMkpxTENCd2NtOXdLU0E5UGlBb1QySnFaV04wTG5CeWIzUnZkSGx3WlM1b1lYTlBkMjVRY205d1pYSjBlUzVqWVd4c0tHOWlhaXdnY0hKdmNDa3BJaXdpTHk4Z1pHVm1hVzVsSUY5ZlpYTk5iMlIxYkdVZ2IyNGdaWGh3YjNKMGMxeHVYMTkzWldKd1lXTnJYM0psY1hWcGNtVmZYeTV5SUQwZ0tHVjRjRzl5ZEhNcElEMCtJSHRjYmx4MGFXWW9kSGx3Wlc5bUlGTjViV0p2YkNBaFBUMGdKM1Z1WkdWbWFXNWxaQ2NnSmlZZ1UzbHRZbTlzTG5SdlUzUnlhVzVuVkdGbktTQjdYRzVjZEZ4MFQySnFaV04wTG1SbFptbHVaVkJ5YjNCbGNuUjVLR1Y0Y0c5eWRITXNJRk41YldKdmJDNTBiMU4wY21sdVoxUmhaeXdnZXlCMllXeDFaVG9nSjAxdlpIVnNaU2NnZlNrN1hHNWNkSDFjYmx4MFQySnFaV04wTG1SbFptbHVaVkJ5YjNCbGNuUjVLR1Y0Y0c5eWRITXNJQ2RmWDJWelRXOWtkV3hsSnl3Z2V5QjJZV3gxWlRvZ2RISjFaU0I5S1R0Y2JuMDdJaXdpTHk4Z2MzUmhjblIxY0Z4dUx5OGdURzloWkNCbGJuUnllU0J0YjJSMWJHVWdZVzVrSUhKbGRIVnliaUJsZUhCdmNuUnpYRzR2THlCVWFHbHpJR1Z1ZEhKNUlHMXZaSFZzWlNCcGN5QnlaV1psY21WdVkyVmtJR0o1SUc5MGFHVnlJRzF2WkhWc1pYTWdjMjhnYVhRZ1kyRnVKM1FnWW1VZ2FXNXNhVzVsWkZ4dWRtRnlJRjlmZDJWaWNHRmphMTlsZUhCdmNuUnpYMThnUFNCZlgzZGxZbkJoWTJ0ZmNtVnhkV2x5WlY5ZktEZzJNallwTzF4dUlsMHNJbTVoYldWeklqcGJJbDlmYVcxd2IzSjBSR1ZtWVhWc2RDSXNJblJvYVhNaUxDSnRiMlFpTENKZlgyVnpUVzlrZFd4bElpd2lUMkpxWldOMElpd2laR1ZtYVc1bFVISnZjR1Z5ZEhraUxDSmxlSEJ2Y25Seklpd2lkbUZzZFdVaUxDSlNaWEYxWlhOMElpd2lVRzlzYkdsdVp5SXNJblJ5WVc1emNHOXlkRjlxYzE4eElpd2laR1ZpZFdkZk1TSXNJbmxsWVhOMFgycHpYekVpTENKbGJtZHBibVZmYVc5ZmNHRnljMlZ5WHpFaUxDSjRiV3hvZEhSd2NtVnhkV1Z6ZEY5cWMxOHhJaXdpWTI5dGNHOXVaVzUwWDJWdGFYUjBaWEpmTVNJc0luVjBhV3hmYW5OZk1TSXNJbWRzYjJKaGJGUm9hWE5mYW5OZk1TSXNJbVJsWW5Wbklpd2laR1ZtWVhWc2RDSXNJbVZ0Y0hSNUlpd2lhR0Z6V0VoU01pSXNJbGhJVWlJc0luaGtiMjFoYVc0aUxDSnlaWE53YjI1elpWUjVjR1VpTENKVWNtRnVjM0J2Y25RaUxDSmpiMjV6ZEhKMVkzUnZjaUlzSW05d2RITWlMQ0p6ZFhCbGNpSXNJbkJ2Ykd4cGJtY2lMQ0pzYjJOaGRHbHZiaUlzSW1selUxTk1JaXdpY0hKdmRHOWpiMndpTENKd2IzSjBJaXdpZUdRaUxDSm9iM04wYm1GdFpTSXNJbVp2Y21ObFFtRnpaVFkwSWl3aWMzVndjRzl5ZEhOQ2FXNWhjbmtpTENKM2FYUm9RM0psWkdWdWRHbGhiSE1pTENKamIyOXJhV1ZLWVhJaUxDSmpjbVZoZEdWRGIyOXJhV1ZLWVhJaUxDSnVZVzFsSWl3aVpHOVBjR1Z1SWl3aWNHOXNiQ0lzSW5CaGRYTmxJaXdpYjI1UVlYVnpaU0lzSW5KbFlXUjVVM1JoZEdVaUxDSjNjbWwwWVdKc1pTSXNJblJ2ZEdGc0lpd2liMjVqWlNJc0ltUnZVRzlzYkNJc0ltVnRhWFJTWlhObGNuWmxaQ0lzSW05dVJHRjBZU0lzSW1SaGRHRWlMQ0prWldOdlpHVlFZWGxzYjJGa0lpd2ljMjlqYTJWMElpd2lZbWx1WVhKNVZIbHdaU0lzSW1admNrVmhZMmdpTENKd1lXTnJaWFFpTENKMGVYQmxJaXdpYjI1UGNHVnVJaXdpYjI1RGJHOXpaU0lzSW1SbGMyTnlhWEIwYVc5dUlpd2liMjVRWVdOclpYUWlMQ0prYjBOc2IzTmxJaXdpWTJ4dmMyVWlMQ0ozY21sMFpTSXNJbkJoWTJ0bGRITWlMQ0psYm1OdlpHVlFZWGxzYjJGa0lpd2laRzlYY21sMFpTSXNJblZ5YVNJc0luTmphR1Z0WVNJc0luTmxZM1Z5WlNJc0luRjFaWEo1SWl3aWRHbHRaWE4wWVcxd1VtVnhkV1Z6ZEhNaUxDSjBhVzFsYzNSaGJYQlFZWEpoYlNJc0lubGxZWE4wSWl3aWMybGtJaXdpWWpZMElpd2lZM0psWVhSbFZYSnBJaXdpY21WeGRXVnpkQ0lzSW1GemMybG5iaUlzSW1adUlpd2ljbVZ4SWl3aWJXVjBhRzlrSWl3aWIyNGlMQ0o0YUhKVGRHRjBkWE1pTENKamIyNTBaWGgwSWl3aWIyNUZjbkp2Y2lJc0ltSnBibVFpTENKd2IyeHNXR2h5SWl3aVJXMXBkSFJsY2lJc0ltbHVjM1JoYkd4VWFXMWxja1oxYm1OMGFXOXVjeUlzSW5WdVpHVm1hVzVsWkNJc0ltTnlaV0YwWlNJc0lsOWhJaXdpY0dsamF5SXNJbmhvY2lJc0ltOXdaVzRpTENKbGVIUnlZVWhsWVdSbGNuTWlMQ0p6WlhSRWFYTmhZbXhsU0dWaFpHVnlRMmhsWTJzaUxDSnBJaXdpYUdGelQzZHVVSEp2Y0dWeWRIa2lMQ0p6WlhSU1pYRjFaWE4wU0dWaFpHVnlJaXdpWlNJc0ltRmtaRU52YjJ0cFpYTWlMQ0p5WlhGMVpYTjBWR2x0Wlc5MWRDSXNJblJwYldWdmRYUWlMQ0p2Ym5KbFlXUjVjM1JoZEdWamFHRnVaMlVpTENKd1lYSnpaVU52YjJ0cFpYTWlMQ0p6ZEdGMGRYTWlMQ0p2Ymt4dllXUWlMQ0p6WlhSVWFXMWxiM1YwUm00aUxDSnpaVzVrSWl3aVpHOWpkVzFsYm5RaUxDSnBibVJsZUNJc0luSmxjWFZsYzNSelEyOTFiblFpTENKeVpYRjFaWE4wY3lJc0ltVnljaUlzSW1Oc1pXRnVkWEFpTENKbWNtOXRSWEp5YjNJaUxDSmhZbTl5ZENJc0luSmxjM0J2Ym5ObFZHVjRkQ0lzSW1GMGRHRmphRVYyWlc1MElpd2lkVzVzYjJGa1NHRnVaR3hsY2lJc0ltRmtaRVYyWlc1MFRHbHpkR1Z1WlhJaUxDSjBaWEp0YVc1aGRHbHZia1YyWlc1MElpd2laMnh2WW1Gc1ZHaHBjMU5vYVcwaUxDSmtaV052WkdVaUxDSmxibU52WkdVaUxDSmhiSEJvWVdKbGRDSXNJbk53YkdsMElpd2liV0Z3SWl3aWNISmxkaUlzSW5ObFpXUWlMQ0p1ZFcwaUxDSmxibU52WkdWa0lpd2lUV0YwYUNJc0ltWnNiMjl5SWl3aWMzUnlJaXdpWkdWamIyUmxaQ0lzSW14bGJtZDBhQ0lzSW1Ob1lYSkJkQ0lzSW01dmR5SXNJa1JoZEdVaUxDSm1iM0p0WVhSQmNtZHpJaXdpWVhKbmN5SXNJblZ6WlVOdmJHOXljeUlzSW01aGJXVnpjR0ZqWlNJc0ltMXZaSFZzWlNJc0ltaDFiV0Z1YVhwbElpd2laR2xtWmlJc0ltTWlMQ0pqYjJ4dmNpSXNJbk53YkdsalpTSXNJbXhoYzNSRElpd2ljbVZ3YkdGalpTSXNJbTFoZEdOb0lpd2ljMkYyWlNJc0ltNWhiV1Z6Y0dGalpYTWlMQ0p6ZEc5eVlXZGxJaXdpYzJWMFNYUmxiU0lzSW5KbGJXOTJaVWwwWlcwaUxDSmxjbkp2Y2lJc0lteHZZV1FpTENKeUlpd2laMlYwU1hSbGJTSXNJbkJ5YjJObGMzTWlMQ0psYm5ZaUxDSkVSVUpWUnlJc0luZHBibVJ2ZHlJc0lsOWZibmRxY3lJc0ltNWhkbWxuWVhSdmNpSXNJblZ6WlhKQloyVnVkQ0lzSW5SdlRHOTNaWEpEWVhObElpd2liU0lzSW1SdlkzVnRaVzUwUld4bGJXVnVkQ0lzSW5OMGVXeGxJaXdpVjJWaWEybDBRWEJ3WldGeVlXNWpaU0lzSW1OdmJuTnZiR1VpTENKbWFYSmxZblZuSWl3aVpYaGpaWEIwYVc5dUlpd2lkR0ZpYkdVaUxDSndZWEp6WlVsdWRDSXNJbXh2WTJGc1UzUnZjbUZuWlNJc0lteHZZMkZzYzNSdmNtRm5aU0lzSW1SbGMzUnliM2tpTENKM1lYSnVaV1FpTENKM1lYSnVJaXdpWTI5c2IzSnpJaXdpYkc5bklpd2labTl5YldGMGRHVnljeUlzSW1vaUxDSjJJaXdpU2xOUFRpSXNJbk4wY21sdVoybG1lU0lzSW0xbGMzTmhaMlVpTENKd1lYSnpaU0lzSW5KbElpd2ljR0Z5ZEhNaUxDSnpjbU1pTENKaUlpd2lhVzVrWlhoUFppSXNJbk4xWW5OMGNtbHVaeUlzSW1WNFpXTWlMQ0p6YjNWeVkyVWlMQ0pvYjNOMElpd2lZWFYwYUc5eWFYUjVJaXdpYVhCMk5uVnlhU0lzSW5CaGRHaE9ZVzFsY3lJc0ltOWlhaUlzSW5CaGRHZ2lMQ0p1WVcxbGN5SXNJbk5zYVdObElpd2ljWFZsY25sTFpYa2lMQ0lrTUNJc0lpUXhJaXdpSkRJaUxDSnBibWwwSWl3aVEyaGZNU0lzSW1kaGRHVjNZWGtpTENKcGIxTmxjblpsY2lJc0luSmxaR2x6SWl3aVkyeDFjM1JsY2lJc0ltTnNhV1Z1ZENJc0ltRmpZMlZ3ZENJc0luSmhibXRCYkd3aUxDSmphR2xzWkhKbGJpSXNJa05vUTI5dVptbG5UVzlrWld3aUxDSndZWEpoYlhNaUxDSm5aWFJOZVVOb1EyOXVabWxuSWl3aVkyaERiMjVtYVdkS2MyOXVJaXdpYlhsRGIyNXVaV04wYVc5dUlpd2liV0YwWTJocGJtY2lMQ0pqYUVOdmJtWnBaeUlzSW5CaGNtVnVkRXh2WTJGMGFXOXVJaXdpWTNWeWNtVnVkRXh2WTJGMGFXOXVJaXdpWTI5dWJtVmpkR2x2YmlJc0ltTm9hV3hrSWl3aWNtVnpkV3gwSWl3aWJXRjBZMmhsWkNJc0ltZGxkRU5vVW05dmRITkRiMjVtYVdjaUxDSjBkVzVsUTI5dWJtVmpkR2x2YmlJc0luSmxZMk4xY21WdWRFWnBibVFpTENKd1lYSmxiblJEYjI1dVpXTjBhVzl1SWl3aWNtOXZkSE1pTENKbWFXNWtaV1FpTENKbWFXNWtJaXdpWTNWeWNtVnVkRU52Ym01bFkzUnBiMjRpTENKd2RYTm9JaXdpY205dmRFTnZibTVsWTNScGIyNGlMQ0puWlhSSFlYUmxkMkY1SWl3aVkyaFNiMjkwYzBOdmJtWnBaeUlzSW1kbGRGSnZiM1J6UTI5dWJtVmpkR2x2Ym5NaUxDSnBjMFY0WTJ4MVpHVlVkVzVsUTI5dWJtVmpkR2x2YmlJc0ltMTVVbTl2ZEhORGIyNXVaV04wYVc5dWN5SXNJbU52Ym1acFp5SXNJbVpwYkhSbGNpSXNJbU55WldGMFpVUmxZblZuSWl3aWNISmxkbFJwYldVaUxDSnVZVzFsYzNCaFkyVnpRMkZqYUdVaUxDSmxibUZpYkdWa1EyRmphR1VpTENKbGJtRmliR1ZQZG1WeWNtbGtaU0lzSW1WdVlXSnNaV1FpTENKelpXeG1JaXdpWTNWeWNpSXNJazUxYldKbGNpSXNJbTF6SWl3aVkyOWxjbU5sSWl3aWRXNXphR2xtZENJc0ltWnZjbTFoZENJc0ltWnZjbTFoZEhSbGNpSXNJblpoYkNJc0ltTmhiR3dpTENKaGNIQnNlU0lzSW5ObGJHVmpkRU52Ykc5eUlpd2laWGgwWlc1a0lpd2laVzUxYldWeVlXSnNaU0lzSW1OdmJtWnBaM1Z5WVdKc1pTSXNJbWRsZENJc0luTmxkQ0lzSW1SbGJHbHRhWFJsY2lJc0ltNWxkMFJsWW5Wbklpd2lkRzlPWVcxbGMzQmhZMlVpTENKeVpXZGxlSEFpTENKMGIxTjBjbWx1WnlJc0lrVnljbTl5SWl3aWMzUmhZMnNpTENKa2FYTmhZbXhsSWl3aWMydHBjSE1pTENKcWIybHVJaXdpWlc1aFlteGxJaXdpYkdWdUlpd2lVbVZuUlhod0lpd2lkR1Z6ZENJc0ltdGxlWE1pTENKclpYa2lMQ0pvWVhOb0lpd2lZMmhoY2tOdlpHVkJkQ0lzSW1GaWN5SXNJa1ZTVWs5U1gxQkJRMHRGVkNJc0lsQkJRMHRGVkY5VVdWQkZVMTlTUlZaRlVsTkZJaXdpVUVGRFMwVlVYMVJaVUVWVElpd2laR1ZqYjJSbFVHRmphMlYwSWl3aVkyOXRiVzl1YzE5cWMxOHhJaXdpWW1GelpUWTBYMkZ5Y21GNVluVm1abVZ5WDJwelh6RWlMQ0ozYVhSb1RtRjBhWFpsUVhKeVlYbENkV1ptWlhJaUxDSkJjbkpoZVVKMVptWmxjaUlzSW1WdVkyOWtaV1JRWVdOclpYUWlMQ0p0WVhCQ2FXNWhjbmtpTENKa1pXTnZaR1ZDWVhObE5qUlFZV05yWlhRaUxDSmlZWE5sTmpRaUxDSkNiRzlpSWl3aVluVm1abVZ5SWl3aVpXNWpiMlJsVUdGamEyVjBJaXdpWlc1amIyUmxVR0ZqYTJWMFZHOUNhVzVoY25raUxDSmpZV3hzWW1GamF5SXNJbmRwZEdoT1lYUnBkbVZDYkc5aUlpd2lZWEp5WVhsQ2RXWm1aWElpTENKMGFHVnVJaXdpZEc5QmNuSmhlU0lzSW1selZtbGxkeUlzSWxSRldGUmZSVTVEVDBSRlVpSXNJbFJsZUhSRmJtTnZaR1Z5SWl3aWNISnZkRzkwZVhCbElpd2laVzVqYjJSbFFteHZZa0Z6UW1GelpUWTBJaXdpWm1sc1pWSmxZV1JsY2lJc0lrWnBiR1ZTWldGa1pYSWlMQ0p2Ym14dllXUWlMQ0pqYjI1MFpXNTBJaXdpY21WaFpFRnpSR0YwWVZWU1RDSXNJbFZwYm5RNFFYSnlZWGtpTENKaWVYUmxUMlptYzJWMElpd2lZbmwwWlV4bGJtZDBhQ0lzSW1Ob1lYSnpJaXdpYkc5dmEzVndJaXdpWVhKeVlYbGlkV1ptWlhJaUxDSmllWFJsY3lJc0ltVnVZMjlrWldReElpd2laVzVqYjJSbFpESWlMQ0psYm1OdlpHVmtNeUlzSW1WdVkyOWtaV1EwSWl3aVluVm1abVZ5VEdWdVozUm9JaXdpY0NJc0ltaGhjMTlqYjNKelgycHpYekVpTENKWVRVeElkSFJ3VW1WeGRXVnpkQ0lzSW1oaGMwTlBVbE1pTENKamIyNWpZWFFpTENKZlgyTnlaV0YwWlVKcGJtUnBibWNpTENKdklpd2lheUlzSW1zeUlpd2lYMTl6WlhSTmIyUjFiR1ZFWldaaGRXeDBJaXdpWDE5cGJYQnZjblJUZEdGeUlpd2lUV0Z1WVdkbGNpSXNJbVZ1WjJsdVpWOXBiMTlqYkdsbGJuUmZNU0lzSW5OdlkydGxkRjlxYzE4eElpd2ljR0Z5YzJWeUlpd2liMjVmYW5OZk1TSXNJbUpoWTJ0dk1sOXFjMTh4SWl3aWJuTndjeUlzSW5OMVluTWlMQ0p5WldOdmJtNWxZM1JwYjI0aUxDSnlaV052Ym01bFkzUnBiMjVCZEhSbGJYQjBjeUlzSWtsdVptbHVhWFI1SWl3aWNtVmpiMjV1WldOMGFXOXVSR1ZzWVhraUxDSnlaV052Ym01bFkzUnBiMjVFWld4aGVVMWhlQ0lzSW5KaGJtUnZiV2w2WVhScGIyNUdZV04wYjNJaUxDSmlZV05yYjJabUlpd2lRbUZqYTI5bVppSXNJbTFwYmlJc0ltMWhlQ0lzSW1wcGRIUmxjaUlzSWw5eVpXRmtlVk4wWVhSbElpd2lYM0JoY25ObGNpSXNJbVZ1WTI5a1pYSWlMQ0pGYm1OdlpHVnlJaXdpWkdWamIyUmxjaUlzSWtSbFkyOWtaWElpTENKZllYVjBiME52Ym01bFkzUWlMQ0poZFhSdlEyOXVibVZqZENJc0ltRnlaM1Z0Wlc1MGN5SXNJbDl5WldOdmJtNWxZM1JwYjI0aUxDSmZjbVZqYjI1dVpXTjBhVzl1UVhSMFpXMXdkSE1pTENKZmNtVmpiMjV1WldOMGFXOXVSR1ZzWVhraUxDSnpaWFJOYVc0aUxDSmZjbUZ1Wkc5dGFYcGhkR2x2YmtaaFkzUnZjaUlzSW5ObGRFcHBkSFJsY2lJc0lsOXlaV052Ym01bFkzUnBiMjVFWld4aGVVMWhlQ0lzSW5ObGRFMWhlQ0lzSWw5MGFXMWxiM1YwSWl3aWJXRjVZbVZTWldOdmJtNWxZM1JQYms5d1pXNGlMQ0pmY21WamIyNXVaV04wYVc1bklpd2lZWFIwWlcxd2RITWlMQ0p5WldOdmJtNWxZM1FpTENKbGJtZHBibVVpTENKVGIyTnJaWFFpTENKemEybHdVbVZqYjI1dVpXTjBJaXdpYjNCbGJsTjFZa1JsYzNSeWIza2lMQ0p2Ym05d1pXNGlMQ0psY25KdmNsTjFZaUlzSW5ScGJXVnlJaXdpWVhWMGIxVnVjbVZtSWl3aWRXNXlaV1lpTENKamJHVmhjbFJwYldWdmRYUkdiaUlzSW1OdmJtNWxZM1FpTENKdmJuQnBibWNpTENKdmJtUmhkR0VpTENKdmJtVnljbTl5SWl3aWIyNWpiRzl6WlNJc0ltOXVaR1ZqYjJSbFpDSXNJbUZrWkNJc0ltNWxlSFJVYVdOcklpd2libk53SWl3aVlXTjBhWFpsSWl3aVgyUmxjM1J5YjNraUxDSmZZMnh2YzJVaUxDSmZjR0ZqYTJWMElpd2laVzVqYjJSbFpGQmhZMnRsZEhNaUxDSnZjSFJwYjI1eklpd2ljM1ZpUkdWemRISnZlU0lzSW1ScGMyTnZibTVsWTNRaUxDSnlaV0Z6YjI0aUxDSnlaWE5sZENJc0ltUmxiR0Y1SWl3aVpIVnlZWFJwYjI0aUxDSnZibkpsWTI5dWJtVmpkQ0lzSW1GMGRHVnRjSFFpTENKa1pXWmhkV3gwUW1sdVlYSjVWSGx3WlNJc0luVnphVzVuUW5KdmQzTmxjbGRsWWxOdlkydGxkQ0lzSWxkbFlsTnZZMnRsZENJc0lsQnliMjFwYzJVaUxDSnlaWE52YkhabElpd2lZMklpTENKTmIzcFhaV0pUYjJOclpYUWlMQ0p0YVhocGJpSXNJbVYyWlc1MElpd2lYMk5oYkd4aVlXTnJjeUlzSW05bVppSXNJbkpsYlc5MlpVeHBjM1JsYm1WeUlpd2ljbVZ0YjNabFFXeHNUR2x6ZEdWdVpYSnpJaXdpY21WdGIzWmxSWFpsYm5STWFYTjBaVzVsY2lJc0ltTmhiR3hpWVdOcmN5SXNJbVZ0YVhRaUxDSkJjbkpoZVNJc0lteHBjM1JsYm1WeWN5SXNJbWhoYzB4cGMzUmxibVZ5Y3lJc0lsZFVJaXdpZDJWaWMyOWphMlYwWDJOdmJuTjBjblZqZEc5eVgycHpYekVpTENKWFpXSlVjbUZ1YzNCdmNuUWlMQ0owY21GdWMzQnZjblFpTENKMGNtRnVjM0J2Y25SUGNIUnBiMjV6SWl3aVkyeHZjMlZrSWl3aVkyRjBZMmdpTENKeVpXRmtlU0lzSW1OeVpXRjBaVUpwWkdseVpXTjBhVzl1WVd4VGRISmxZVzBpTENKemRISmxZVzBpTENKa1pXTnZaR1Z5VTNSeVpXRnRJaXdpWTNKbFlYUmxVR0ZqYTJWMFJHVmpiMlJsY2xOMGNtVmhiU0lzSWsxQldGOVRRVVpGWDBsT1ZFVkhSVklpTENKeVpXRmtaWElpTENKeVpXRmtZV0pzWlNJc0luQnBjR1ZVYUhKdmRXZG9JaXdpWjJWMFVtVmhaR1Z5SWl3aVpXNWpiMlJsY2xOMGNtVmhiU0lzSW1OeVpXRjBaVkJoWTJ0bGRFVnVZMjlrWlhKVGRISmxZVzBpTENKd2FYQmxWRzhpTENKM2NtbDBaWElpTENKblpYUlhjbWwwWlhJaUxDSnlaV0ZrSWl3aVpHOXVaU0lzSW14aGMzUlFZV05yWlhRaUxDSlFZV05yWlhSVWVYQmxJaXdpWW1sdVlYSjVYMnB6WHpFaUxDSnBjMTlpYVc1aGNubGZhbk5mTVNJc0lsSkZVMFZTVmtWRVgwVldSVTVVVXlJc0ltbHpUMkpxWldOMElpd2ljbVZ3YkdGalpYSWlMQ0pGVmtWT1ZDSXNJa0ZEU3lJc0ltaGhjMEpwYm1GeWVTSXNJbVZ1WTI5a1pVRnpVM1J5YVc1bklpd2laVzVqYjJSbFFYTkNhVzVoY25raUxDSkNTVTVCVWxsZlJWWkZUbFFpTENKQ1NVNUJVbGxmUVVOTElpd2lhV1FpTENKaGRIUmhZMmh0Wlc1MGN5SXNJbVJsWTI5dWMzUnlkV04wYVc5dUlpd2laR1ZqYjI1emRISjFZM1JRWVdOclpYUWlMQ0p3WVdOcklpd2lZblZtWm1WeWN5SXNJbkpsZG1sMlpYSWlMQ0p5WldOdmJuTjBjblZqZEc5eUlpd2laR1ZqYjJSbFUzUnlhVzVuSWl3aWFYTkNhVzVoY25sRmRtVnVkQ0lzSWtKcGJtRnllVkpsWTI5dWMzUnlkV04wYjNJaUxDSnBjMEpwYm1GeWVTSXNJblJoYTJWQ2FXNWhjbmxFWVhSaElpd2ljM1JoY25RaUxDSmlkV1lpTENKdVpYaDBJaXdpY0dGNWJHOWhaQ0lzSW5SeWVWQmhjbk5sSWl3aWMzVmljM1J5SWl3aWFYTlFZWGxzYjJGa1ZtRnNhV1FpTENKRFQwNU9SVU5VSWl3aVJFbFRRMDlPVGtWRFZDSXNJa05QVGs1RlExUmZSVkpTVDFJaUxDSnBjMEZ5Y21GNUlpd2labWx1YVhOb1pXUlNaV052Ym5OMGNuVmpkR2x2YmlJc0luSmxZMjl1VUdGamF5SXNJbUpwYmtSaGRHRWlMQ0p5WldOdmJuTjBjblZqZEZCaFkydGxkQ0lzSWxSeVlXNXpjRzl5ZEVWeWNtOXlJaXdpY0dGeWMyVnhjMTlxYzE4eElpd2laR1YwWVdsc2N5SXNJbDlvYjNOMGJtRnRaU0lzSWw5d2IzSjBJaXdpWDNGMVpYSjVJaXdpWlc1amIyUmxaRkYxWlhKNUlpd2lYMlJsWTI5dWMzUnlkV04wVUdGamEyVjBJaXdpY0d4aFkyVm9iMnhrWlhJaUxDSmZjR3hoWTJWb2IyeGtaWElpTENKdVpYZEVZWFJoSWl3aVgzSmxZMjl1YzNSeWRXTjBVR0ZqYTJWMElpd2ljR0ZqYTJWMFJHRjBZU0lzSW5SeVlXNXpjRzl5ZEhNaUxDSnBibVJsZUY5cWMxOHhJaXdpY0dGeWMyVjFjbWxmYW5OZk1TSXNJbFIxYm1WUGNIUnBiMjVmTVNJc0ltZGxkRU52Ym01bFkzUnBiMjRpTENKbGJtUnpWMmwwYUNJc0luTjBZWEowYzFkcGRHZ2lMQ0puWlhSVWRXNWxUM0IwYVc5dVUzUnlhVzVuSWl3aWRIVnVaVTl3ZEdsdmJpSXNJblIxYm1WUGNIUnBiMjVPZFcxaVpYSnpJaXdpZEhWdVpVOXdkR2x2Ymt0bGVTSXNJbkJoY25ObFpGUjFibVZQY0hScGIyNGlMQ0pWVWt4VFpXRnlZMmhRWVhKaGJYTWlMQ0pvWVhOVGJHRnphQ0lzSW1GMGRISWlMQ0p5WldSMVkyVWlMQ0poWTJNaUxDSk9RVlJKVmtWZlUwVlVYMVJKVFVWUFZWUWlMQ0p6WlhSVWFXMWxiM1YwSWl3aVRrRlVTVlpGWDBOTVJVRlNYMVJKVFVWUFZWUWlMQ0pqYkdWaGNsUnBiV1Z2ZFhRaUxDSjFjMlZPWVhScGRtVlVhVzFsY25NaUxDSnNJaXdpZFhSbU9FeGxibWQwYUNJc0ltTmxhV3dpTENKemFYcGxJaXdpUVZCUVgwNUJUVVVpTENKUVVrOUVWVU5VU1U5T0lpd2lURTlEUVV4SVQxTlVJaXdpUkVWV1JVeFBVRTFGVGxRaUxDSlFVazlFVlVOVVNVOU9YMFJQVFVGSlRpSXNJbEJTVDBSVlExUkpUMDVmUVZCSlgwUlBUVUZKVGlJc0lrUkZWa1ZNVDFCTlJVNVVYMFJQVFVGSlRpSXNJa0ZYVTE5SVQxTlVYMHRGV1NJc0lsQlBVbFJUSWl3aVNGUlVVQ0lzSWtoVVZGQlRJaXdpUkVWV1JVeFBVRTFGVGxSZlEwOVdSVklpTENKRVJWWkZURTlRVFVWT1ZGOUJVRWtpTENKRVJWWkZURTlRVFVWT1ZGOURUMDFRVDA1RlRsUlRJaXdpUkVWV1JVeFBVRTFGVGxSZlZGVk9SU0lzSWtSRlZrVk1UMUJOUlU1VVgwTk1TVVZPVkNJc0lsSkZSRWxUSWl3aVRVOU9SMDhpTENKSlQxOU1RaUlzSWtsUFgxSlBUMVFpTENKVFZVSmZSRTlOUVVsT1V5SXNJbGRYVnlJc0lrRlFTU0lzSWtSRlUwTWlMQ0pRVDFKVVFVd2lMQ0pEVEVsRlRsUWlMQ0pCVTFORlZGTWlMQ0pUUlZOVFNVOU9JaXdpUVZWVVR5SXNJazlYVGlJc0lrNUZWMU1pTENKQ1FVNU9SVklpTENKRFQxWkZVaUlzSWxKQlRrc2lMQ0pGV0ZRaUxDSkRUMDFRVDA1RlRsUlRJaXdpVkZWT1JTSXNJbFJTUVU1VFFVTlVTVTlPSWl3aVFWVlVTQ0lzSWtGUVVGOVVXVkJGVXlJc0lrVllWRVZPVTBsUFRpSXNJbFZTVENJc0luUjNhWFIwWlhJaUxDSm1ZV05sWW05dmF5SXNJbUZ3Y0hOMGIzSmxJaXdpY0d4aGVYTjBiM0psSWl3aVkyaHliMjFsUlhoMFpXNXphVzl1SWl3aWRHRnNhMjVEYkdsbGJuUktjeUlzSW5SaGJHdHVRWEJwU25NaUxDSjBZV3hyYmxKaGJtdEtjeUlzSW01dlNXNXVaWEpPYjNScFppSXNJbUpoYm01bGNrTnNZWE56SWl3aWMzUnZjbUZuWlV0bGVTSXNJbUpoYzJWTFpYa2lMQ0p3YjNOMGMxUnBiV1ZzYVc1bFdtVnlieUlzSW5CdmMzUnpWR2x0Wld4cGJtVWlMQ0p3YjNOMGMxTnBibWRzWlNJc0luQnZjM1J6VFhWc2RHa2lMQ0p3YjNOMGMwTm9hV3hrSWl3aWNHOXpkSE5NYjJkeklpd2lkR2h5WldGa2N5SXNJbU5oWTJobFpGTmxkRlJwYldWdmRYUWlMQ0pqWVdOb1pXUkRiR1ZoY2xScGJXVnZkWFFpTENKa1pXWmhkV3gwVTJWMFZHbHRiM1YwSWl3aVpHVm1ZWFZzZEVOc1pXRnlWR2x0Wlc5MWRDSXNJbkoxYmxScGJXVnZkWFFpTENKbWRXNGlMQ0pqZFhKeVpXNTBVWFZsZFdVaUxDSnhkV1YxWlNJc0ltUnlZV2x1YVc1bklpd2ljWFZsZFdWSmJtUmxlQ0lzSW1Oc1pXRnVWWEJPWlhoMFZHbGpheUlzSW1SeVlXbHVVWFZsZFdVaUxDSnlkVzRpTENKdFlYSnJaWElpTENKeWRXNURiR1ZoY2xScGJXVnZkWFFpTENKSmRHVnRJaXdpWVhKeVlYa2lMQ0p1YjI5d0lpd2lkR2wwYkdVaUxDSmljbTkzYzJWeUlpd2lZWEpuZGlJc0luWmxjbk5wYjI0aUxDSjJaWEp6YVc5dWN5SXNJbUZrWkV4cGMzUmxibVZ5SWl3aWNISmxjR1Z1WkV4cGMzUmxibVZ5SWl3aWNISmxjR1Z1WkU5dVkyVk1hWE4wWlc1bGNpSXNJbUpwYm1ScGJtY2lMQ0pqZDJRaUxDSmphR1JwY2lJc0ltUnBjaUlzSW5WdFlYTnJJaXdpWjJWdVpYSmhkR1ZWYm1seGRXVkxaWGtpTENKblpXNWxjbUYwWlZWdWFYRjFaVXRsZVZObGNHRnlZWFJ2Y2lJc0ltbHpWbUZzYVdSTFpYa2lMQ0pKVTE5T1QwUkZJaXdpU1ZOZlFsSlBWMU5GVWlJc0ltbHpUbTlrWlZObGNuWmxjaUlzSW1kbGRFVnVkbFpoY2lJc0luSmxiR1ZoYzJVaUxDSnNZV0psYkNJc0luTmxjR1Z5WVhSdmNpSXNJbkpoYm1SdmJTSXNJbVYySWl3aWMyOWphMlYwWDJsdlgzQmhjbk5sY2w4eElpd2labkpsWlhwbElpd2lZMjl1Ym1WamRGOWxjbkp2Y2lJc0ltUnBjMk52Ym01bFkzUnBibWNpTENKdVpYZE1hWE4wWlc1bGNpSXNJbWx2SWl3aVkyOXVibVZqZEdWa0lpd2ljbVZqYjNabGNtVmtJaXdpY21WalpXbDJaVUoxWm1abGNpSXNJbk5sYm1SQ2RXWm1aWElpTENKZmNYVmxkV1VpTENKZmNYVmxkV1ZUWlhFaUxDSnBaSE1pTENKaFkydHpJaXdpWm14aFozTWlMQ0poZFhSb0lpd2lYMjl3ZEhNaUxDSmthWE5qYjI1dVpXTjBaV1FpTENKemRXSkZkbVZ1ZEhNaUxDSnZibkJoWTJ0bGRDSXNJbkpsZEhKcFpYTWlMQ0ptY205dFVYVmxkV1VpTENKMmIyeGhkR2xzWlNJc0lsOWhaR1JVYjFGMVpYVmxJaXdpWTI5dGNISmxjM01pTENKaFkyc2lMQ0p3YjNBaUxDSmZjbVZuYVhOMFpYSkJZMnREWVd4c1ltRmpheUlzSW1selZISmhibk53YjNKMFYzSnBkR0ZpYkdVaUxDSnViM1JwWm5sUGRYUm5iMmx1WjB4cGMzUmxibVZ5Y3lJc0ltRmphMVJwYldWdmRYUWlMQ0psYldsMFYybDBhRUZqYXlJc0luZHBkR2hGY25JaUxDSnlaV3BsWTNRaUxDSmhjbWN4SWl3aVlYSm5NaUlzSW5SeWVVTnZkVzUwSWl3aWNHVnVaR2x1WnlJc0luSmxjM0J2Ym5ObFFYSm5jeUlzSW5Ob2FXWjBJaXdpWDJSeVlXbHVVWFZsZFdVaUxDSm1iM0pqWlNJc0lsOXpaVzVrUTI5dWJtVmpkRkJoWTJ0bGRDSXNJbDl3YVdRaUxDSndhV1FpTENKdlptWnpaWFFpTENKZmJHRnpkRTltWm5ObGRDSXNJbTl1WTI5dWJtVmpkQ0lzSW05dVpYWmxiblFpTENKdmJtRmpheUlzSW05dVpHbHpZMjl1Ym1WamRDSXNJbVZ0YVhSRmRtVnVkQ0lzSWw5aGJubE1hWE4wWlc1bGNuTWlMQ0pzYVhOMFpXNWxjaUlzSW5ObGJuUWlMQ0psYldsMFFuVm1abVZ5WldRaUxDSnZia0Z1ZVNJc0luQnlaWEJsYm1SQmJua2lMQ0p2Wm1aQmJua2lMQ0pzYVhOMFpXNWxjbk5CYm5raUxDSnZia0Z1ZVU5MWRHZHZhVzVuSWl3aVgyRnVlVTkxZEdkdmFXNW5UR2x6ZEdWdVpYSnpJaXdpY0hKbGNHVnVaRUZ1ZVU5MWRHZHZhVzVuSWl3aWIyWm1RVzU1VDNWMFoyOXBibWNpTENKc2FYTjBaVzVsY25OQmJubFBkWFJuYjJsdVp5SXNJa1oxYm1OMGFXOXVJaXdpY0hKdlkyVnpjMTh4SWl3aWMyOWphMlYwWDJsdlgyTnNhV1Z1ZEY4eElpd2lRMmhEYjI1bWFXZGZNU0lzSW1Ob1gyTnZibVpwWjE5a1pYWmxiRzl3YldWdWRGOXFjMjl1WHpFaUxDSmphRjlqYjI1bWFXZGZjSEp2WkhWamRHbHZibDlxYzI5dVh6RWlMQ0pDYjI5MFQzQjBhVzl1WHpFaUxDSlRaWEYxWlc1alpWOHhJaXdpWTI5dVpsOHhJaXdpWkdWbWFXNWxYekVpTENKMWRHbHNjMTh4SWl3aVh6RWlMQ0pDYjI5c1pXRnVJaXdpU1ZOZlJFOURTMFZTSWl3aWFISmxaaUlzSWxSdlUyVnlkbVZ5SWl3aVpHOXRZV2x1SWl3aWIzQjBhVzl1SWl3aWRYQm5jbUZrWlNJc0ltWnZjbU5sVG1WM0lpd2lkM056VjI5eWEyVnlJaXdpZEhWdVpTSXNJblZ1ZEhWdVpTSXNJbVY0WlNJc0ltOXVRMjl1Ym1WamRDSXNJbTl1UTI5dWJtVmpkRVZ5Y205eUlpd2liMjVTWlhOd2IyNXpaVVZ0YVhRaUxDSnZibEpsYzNCdmJuTmxRbTloY21SallYTjBJaXdpYjJabVVtVnpjRzl1YzJVaUxDSnBiM01pTENKdFpYUm9iMlJ6SWl3aWRIVnVaVWxrSWl3aVltOXZkRTl3ZEdsdmJpSXNJblZ5YkZObFlYSmphRkJoY21GdGN5SXNJbWh2YzNSUWIzSjBJaXdpWlc1a2NHOXBiblFpTENKSVZGUlFVMTlRVWs5VVQwTlBUQ0lzSW5CdmMzUk5aWE56WVdkbElpd2ljM1JoZEhWelZIVnVibWx1WnlJc0luSmxjM0J2Ym5ObElpd2lZWEJwVTNSaGRHVWlMQ0pmSWl3aWMyVnlkbVZ5Vkc5QmNHbFVlWEJsSWl3aVUwVlNWa1ZTWDFSUFgwRlFTVjlGVFVsVUlpd2lVMFZTVmtWU1gxUlBYMEZRU1Y5Q1VrOUJSRU5CVTFRaUxDSlVjbUZ1YzJadmNtMVRkSEpsWVcwaUxDSjBjbUZ1YzJadmNtMGlMQ0pqYjI1MGNtOXNiR1Z5SWl3aVpXNWpiMlJsVUdGamEyVjBYMnB6WHpFaUxDSndZWGxzYjJGa1RHVnVaM1JvSWl3aWFHVmhaR1Z5SWl3aVJHRjBZVlpwWlhjaUxDSnpaWFJWYVc1ME9DSXNJblpwWlhjaUxDSnpaWFJWYVc1ME1UWWlMQ0p6WlhSQ2FXZFZhVzUwTmpRaUxDSkNhV2RKYm5RaUxDSmxibkYxWlhWbElpd2liV0Y0VUdGNWJHOWhaQ0lzSWxSRldGUmZSRVZEVDBSRlVpSXNJbFJsZUhSRVpXTnZaR1Z5SWl3aVkyaDFibXR6SWl3aWMzUmhkR1VpTENKbGVIQmxZM1JsWkV4bGJtZDBhQ0lzSW1Ob2RXNXJJaXdpZEc5MFlXeE1aVzVuZEdnaUxDSmpiMjVqWVhSRGFIVnVhM01pTENKb1pXRmtaWEpCY25KaGVTSXNJbWRsZEZWcGJuUXhOaUlzSW00aUxDSm5aWFJWYVc1ME16SWlMQ0p3YjNjaUxDSmtaV052WkdWUVlXTnJaWFJmYW5OZk1TSXNJbE5GVUVGU1FWUlBVaUlzSWxOMGNtbHVaeUlzSW1aeWIyMURhR0Z5UTI5a1pTSXNJbU52ZFc1MElpd2laVzVqYjJSbFpGQmhlV3h2WVdRaUxDSmtaV052WkdWa1VHRmphMlYwSWl3aVUyVnhkV1Z1WTJVaUxDSlVRVXhMVGw5UVVrOVVUME5QVENJc0lraFVWRkJmVUZKUFZFOURUMHdpTENKWFUxTmZVRkpQVkU5RFQwd2lMQ0pWVGt0T1QxZE9YMUJTVDFSUFEwOU1JaXdpUlUxSlZGOU5SVjlMUlZraUxDSkJVRWxmVTBWUVFWSkJWRVZmU1U5ZlZGbFFSVjlUVkVGU1ZDSXNJa0ZRU1Y5VFJWQkJVa0ZVUlY5SlQxOVVXVkJGWDBWT1JDSXNJa0ZRU1Y5U1JWRlZSVk5VWDFSWlVFVWlMQ0pCVUVsZlVrVlRVRTlPVTBWZlZGbFFSVjlGVFVsVUlpd2lRVkJKWDFKRlUxQlBUbE5GWDFSWlVFVmZRbEpQUVVSRFFWTlVJaXdpUVZCSlgxTkZWRlZRSWl3aVZVNUxUazlYVGlJc0lrTlBUazVGUTFSSlQwNWZVMFZTVmtWU1gwdEZXU0lzSWtGUVNWOVVUMTlUUlZKV1JWSmZVa1ZSVlVWVFZDSXNJazFGVkVoUFJGOURUMHhQVGlJc0lrRlFTVjlVVDE5RFRFbEZUbFJmVWtWUlZVVlRWQ0lzSWtGUVNWOVVUMTlEVEVsRlRsUmZSVTFKVkNJc0lrRlFTVjlVVDE5RFRFbEZUbFJmUWxKUFFVUkRRVk5VSWl3aVFWQkpYMEpTVDBGRVEwRlRWRjlEUVV4TVFrRkRTeUlzSWxKRlJGVllYMEZEVkVsUFRsOUxSVmtpTENKQlJFUmZRMHhKUlU1VVgwRkRWRWxQVGw5UVVrVkdTVmdpTENKeVpYRjFaWE4wVUhWaWJHbGpVM1JoZEdVaUxDSjBkVzVsUTJnaUxDSnlaWEYxWlhOMFVISnBkbUYwWlZOMFlYUmxJaXdpY21WemNHOXVjMlZGYldsMFUzUmhkR1VpTENKMWMyVnlJaXdpYzJWMGRHbHVaeUlzSW5Sb2NtVmhaQ0lzSW5KbGMzQnZibk5sUW5KdllXUmpZWE4wVTNSaGRHVWlMQ0ptWlhSamFGQnZjM1J6SWl3aVlYQndJaXdpY0c5emRITWlMQ0puWlhSTmIzSmxJaXdpZFhCa1lYUmxWR2h5WldGa0lpd2lZMmhoYm1kbFZHaHlaV0ZrSWl3aVkyaGhibWRsVkdoeVpXRmtSR1YwWVdsc0lpd2lZV1JrUm1sdVpFTm9hV3hrSWl3aVptVjBZMmhTWVc1cklpd2ljbUZ1YXlJc0luQnZjM1FpTENKMWNHUmhkR1ZVYUhKbFlXUlRaWEoyWlhKTlpYUmhjeUlzSW1kbGRGTmxjWFZsYm1ObFFXTjBhVzl1VFdGd0lpd2ljM0JzYVhSbFpDSXNJbk5sY1hWbGJtTmxJaXdpWVdOMGFXOXVWSGx3WlNJc0ltRmpkR2x2Yms1aGJXVWlMQ0oxY0dSaGRHVkRZV3hzWW1GamEwVjRaVU52Ym1ScGRHbHZiazFoY0NJc0ltRmpkR2wyWlZKbGMzQnZibk5sVFdGd0lpd2lZbkp2WVdSallYTjBJaXdpYzJWeGRXVnVZMlZOWVhBaUxDSmpiMjUyWlhKMFUyVnlkbVZ5Vkc5QmNHbEpiMVI1Y0dVaUxDSnBSbkpoYldWSlpDSXNJbU52Ym5abGNuUkZlSFJVYjBOc2FXVnVkRUZqZEdsdmJsUjVjR1VpTENKamIyNTJaWEowUVhCcFZHOURiR2xsYm5SQlkzUnBiMjVVZVhCbElpd2laMlYwVW1WeGRXVnpkRk4wWVhSbElpd2ljbVZrZFhoVGRHRjBaU0lzSW5KbGNYVmxjM1JRWVhKaGJYTWlMQ0psYm1Sd2IybHVkRXRsZVNJc0luSmxjWFZsYzNSVGRHRjBaU0lzSW5OMFlYUmxTMlY1SWl3aVkyOXNkVzF1VG1GdFpTSXNJbWRsZEZKbGMzQnZibk5sVTNSaGRHVWlMQ0oxY0dSaGRHVlRkR0YwWlNJc0luSmxjM0J2Ym5ObFUyTm9aVzFoSWl3aWNtVnpjRzl1YzJWVGRHRjBaU0lzSW5Wd1pHRjBaVk4wWVhSbFMyVjVJaXdpWTI5c2RXMXVUbUZ0WlhNaUxDSjFjR1JoZEdWVGRHRjBaVlpoYkhWbElpd2lkRzlLVTA5T0lpd2lYMmxrSWl3aVgxOTJJaXdpWjJWMFVtVnhkV1Z6ZEVGamRHbHZibE4wWVhSbElpd2ljbVZ4ZFdWemRGQmhjbUZ0Y3pFaUxDSnlaWEYxWlhOMFVHRnlZVzF6TWlJc0luTWlMQ0pvSWl3aVpDSXNJbmNpTENKd2JIVnlZV3dpTENKdGMwRmljeUlzSW1selVHeDFjbUZzSWl3aWNtOTFibVFpTENKd1lYSnpaVVpzYjJGMElpd2lhWE5HYVc1cGRHVWlMQ0pzYjI1bklpd2labTEwVTJodmNuUWlMQ0oxY213aUxDSnNiMk1pTENKblpYUkliM04wVG1GdFpTSXNJbWh2YzNST1lXMWxJaXdpWjJWMFJXNTJJaXdpWm1sc1pYTWlMQ0poY0draUxDSjNjMWR2Y210bGNpSXNJbVY0ZENJc0ltTnZkbVZ5SWl3aVkyOXRjRzl1Wlc1MGN5SXNJbWx6UkdWMklpd2lkM2QzVlZKTUlpd2lZMjkyWlhKVlVrd2lMQ0poY0dsVlVrd2lMQ0poY0dsQlkyTmxjM05WVWt3aUxDSmpiR2xsYm5SVlVrd2lMQ0pqYjIxd2IyNWxiblJ6VlZKTUlpd2laR1Z6WTFWU1RDSXNJbkJ2Y25SaGJGVlNUQ0lzSW1GemMyVjBjMVZTVENJc0ltRnpjMlYwYzBsdFoxQmhkR2dpTENKamIyNW1JaXdpWVhWMGIxVlNUQ0lzSW1WNGRGVlNUQ0lzSW1OdmJYQlZVa3dpTENKRFQwMVFJaXdpYjNkdVZWSk1JaXdpYm1WM2MxVlNUQ0lzSW5SMWJtVlZVa3dpTENKaVlXNXVaWEpWVWt3aUxDSjBjbUZ1YzJGamRHbHZibFZTVENJc0ltRjFkR2hWVWt3aUxDSmhjM05sZEhORGIzWmxjbEJoZEdnaUxDSmhjM05sZEhOSlkyOXVVR0YwYUNJc0ltRnpjMlYwYzBwelVHRjBhQ0lzSW5ObGMzTnBiMjVWVWt3aUxDSmhjR2xXWlhJaUxDSm1ZWFpwWTI5dUlpd2liSEJNWVc1bmRXRm5aWE1pTENKa1pXWmhkV3gwUW1seWRHaGtZWGxWYm1sNGRHbHRaU0lzSW1acGJtUlBibVZVYUhKbFlXUkJZM1JwZG1WSWIzVnlJaXdpWm1sdVpFOXVaVkJ2YzNSRGJuUWlMQ0ptYVc1a1QyNWxUR2x0YVhSRGJuUWlMQ0p2WjNCSmJXRm5aWE1pTENKSWRHMXNJaXdpVFhWemFXTWlMQ0pXYVdSbGJ5SXNJbVJsWm1GMWJIUkdZWFpwWTI5dUlpd2laVzUyVG1GdFpTSXNJa2hQVTFST1FVMUZJaXdpU0U5VFZDSXNJazVQUkVWZlNFOVRWRTVCVFVVaUxDSjBjbWx0SWl3aVoyVjBRMjl1Ym1WamRHbHZibk5QY0hScGIyNXpJaXdpWTI5dWJtVmpkR2x2Ym5NaUxDSnNhWFpsUTI1MElpd2ljMlZ5ZG1WeUlpd2lZWFZrYVc5eklpd2lkbWxrWlc5eklpd2lhWE5UWld4bVJYaGpiSFZrWlNJc0ltbHpVMjl5ZEZWd2NHVnlUR0Y1WlhJaUxDSkRhRTF2WkdWc0lpd2laMlYwVUdGeVpXNTBRMjl1Ym1WamRHbHZiaUlzSW1acGVFTnZibTVsWTNScGIyNGlMQ0p5WlhCc1lXTmxaRU52Ym01bFkzUnBiMjRpTENKc1lYTjBVMnhoYzJoSmJtUmxlQ0lzSW14aGMzUkpibVJsZUU5bUlpd2laMlYwVkc5d1EyOXVibVZqZEdsdmJpSXNJbk5sY0NJc0luTmxjR0Z5WlhSdmNpSXNJbWRsZEVOdmJtNWxZM1JwYjI1R2NtOXRWWEpzSWl3aWNYVmxjbmxUZEhKcGJtY2lMQ0p5WVhkVWRXNWxTV1FpTENKblpYUkRiMjV1WldOMGFXOXVSbkp2YlZSMWJtVkpaQ0lzSW1SbFkyOWtaVlZTU1VOdmJYQnZibVZ1ZENJc0ltVnpZMkZ3WldSVFpYQmhjbUYwYjNJaUxDSndZWFIwWlhKdUlpd2laMlYwUm1GMmFXTnZiaUlzSW1kbGRFTnZibTVsWTNScGIyNXpJaXdpWTI5dWJtVmpkR2x2YmtGeWNpSXNJbU52Ym01bFkzUnBiMjVUWlhCaGNtRjBiM0lpTENKd1lYSjBJaXdpWTI5dWJtVmpkR2x2YmxCaGNuUWlMQ0p6WldkdFpXNTBJaXdpWVdSa1EyOXVibVZqZEdsdmJpSXNJbk52Y25RaUxDSmhJaXdpWjJWMFRYbERiMjV1WldOMGFXOXVRMnhoYzNNaUxDSnpkR0Z5ZEVOdmJtNWxZM1JwYjI0aUxDSmxibVJEYjI1dVpXTjBhVzl1SWl3aWJYbERiMjV1WldOMGFXOXVRMnhoYzNNaUxDSnNiMjl3UTI5dWJtVmpkR2x2Ym5NaUxDSnBjMUIxYzJnaUxDSm5aWFJVZVhCbElpd2laR1ZtZFd4MFZIbHdaU0lzSW5Cc1lXbHVWSGx3WlNJc0ltbHpUV1ZrYVdGRGFDSXNJbWRsZEZObGNuWmxjaUlzSW1SbFptRjFiSFJRY205MGIyTnZiQ0lzSW1kbGRFTm9VR0Z5WVcxeklpd2lYMk52Ym01bFkzUnBiMjRpTENKbVlXTjBiM0lpTENKeVlXNWtJaXdpWkdWMmFXRjBhVzl1SWl3aWRYSnNYMnB6WHpFaUxDSnRZVzVoWjJWeVgycHpYekVpTENKallXTm9aU0lzSW5CaGNuTmxaQ0lzSW5OaGJXVk9ZVzFsYzNCaFkyVWlMQ0p0ZFd4MGFYQnNaWGdpTENKM2NtbDBaVUoxWm1abGNpSXNJbkJ5WlhaQ2RXWm1aWEpNWlc0aUxDSmhaMlZ1ZENJc0luSmxiV1Z0WW1WeVZYQm5jbUZrWlNJc0ltRmtaRlJ5WVdsc2FXNW5VMnhoYzJnaUxDSnlaV3BsWTNSVmJtRjFkR2h2Y21sNlpXUWlMQ0p3WlhKTlpYTnpZV2RsUkdWbWJHRjBaU0lzSW5Sb2NtVnphRzlzWkNJc0ltTnNiM05sVDI1Q1pXWnZjbVYxYm14dllXUWlMQ0oxY0dkeVlXUmxjeUlzSW5CcGJtZEpiblJsY25aaGJDSXNJbkJwYm1kVWFXMWxiM1YwSWl3aWNHbHVaMVJwYldWdmRYUlVhVzFsY2lJc0ltSmxabTl5WlhWdWJHOWhaRVYyWlc1MFRHbHpkR1Z1WlhJaUxDSnZabVpzYVc1bFJYWmxiblJNYVhOMFpXNWxjaUlzSW1OeVpXRjBaVlJ5WVc1emNHOXlkQ0lzSWtWSlR5SXNJbkJ5YVc5eVYyVmljMjlqYTJWMFUzVmpZMlZ6Y3lJc0luTmxkRlJ5WVc1emNHOXlkQ0lzSW05dVJISmhhVzRpTENKd2NtOWlaU0lzSW1aaGFXeGxaQ0lzSW05dVZISmhibk53YjNKMFQzQmxiaUlzSW0xelp5SXNJblZ3WjNKaFpHbHVaeUlzSW1ac2RYTm9JaXdpWm5KbFpYcGxWSEpoYm5Od2IzSjBJaXdpYjI1VWNtRnVjM0J2Y25SRGJHOXpaU0lzSW05dWRYQm5jbUZrWlNJc0luUnZJaXdpY21WelpYUlFhVzVuVkdsdFpXOTFkQ0lzSW05dVNHRnVaSE5vWVd0bElpd2ljMlZ1WkZCaFkydGxkQ0lzSW1OdlpHVWlMQ0ptYVd4MFpYSlZjR2R5WVdSbGN5SXNJbWRsZEZkeWFYUmhZbXhsVUdGamEyVjBjeUlzSW5CaGVXeHZZV1JUYVhwbElpd2lZMnhsWVc1MWNFRnVaRU5zYjNObElpd2lkMkZwZEVadmNsVndaM0poWkdVaUxDSm1hV3gwWlhKbFpGVndaM0poWkdWeklpd2ljM1JoZEhWelJHbHpjR0YwWTJobFpDSXNJbk4wWVhSMWMwUnBjM0JoZEdOb2FXNW5JaXdpYzNSaGRIVnpVbVZ6Y0c5dWMyVmtJaXdpYzNSaGRIVnpVbVZ6Y0c5dWMybHVaeUlzSW5OMFlYUjFjMUpsY1hWbGMzUnBibWNpTENKemRHRjBkWE5WYmxSMWJtNXBibWNpTENKemRHRjBkWE5VZFc1bFpDSXNJbFJ2VTJWeWRtVnlYekVpTENKWGMzTlhiM0pyWlhJaUxDSjNiM0pyWlhJaUxDSnZiazFsYzNOaFoyVWlMQ0p2YmsxbGMzTmhaMlZGY25KdmNpSXNJbTl1YldWemMyRm5aU0lzSW5SdlUyVnlkbVZ5SWl3aVpXNWpiMlJsVlZKSlEyOXRjRzl1Wlc1MElpd2ljWE1pTENKeGNua2lMQ0p3WVdseWN5SXNJbkJoYVhJaUxDSlhVeUlzSW1selVtVmhZM1JPWVhScGRtVWlMQ0p3Y205a2RXTjBJaXdpWTJobFkyc2lMQ0p3Y205MGIyTnZiSE1pTENKb1pXRmtaWEp6SWl3aWQzTWlMQ0poWkdSRmRtVnVkRXhwYzNSbGJtVnljeUlzSWw5emIyTnJaWFFpTENKamJHOXpaVVYyWlc1MElpd2lRblZtWm1WeUlpd2lkMmwwYUU1aGRHbDJaVVpwYkdVaUxDSkdhV3hsSWl3aWNHOXNiR2x1WjE5cWMxOHhJaXdpZDJWaWMyOWphMlYwWDJwelh6RWlMQ0ozWldKMGNtRnVjM0J2Y25SZmFuTmZNU0lzSW5kbFluTnZZMnRsZENJc0luZGxZblJ5WVc1emNHOXlkQ0lzSW5SMWJtVlBjSFJwYjI1TlpYUm9iMlJ6SWl3aWRIVnVaVTl3ZEdsdmJrUmxkR0ZwYkUxbGRHRWlMQ0owZFc1bFQzQjBhVzl1UkdWMFlXbHNSVzF2ZEdsdmJpSXNJblIxYm1WUGNIUnBiMjVTWVc1clFXeHNTR0Z6VEdGMFpYTjBVRzl6ZENJc0luUjFibVZQY0hScGIyNVNZVzVyU0dGelRHRjBaWE4wVUc5emRDSXNJblIxYm1WUGNIUnBiMjVJWVhOTVlYUmxjM1JRYjNOMElpd2lkSFZ1WlU5d2RHbHZibEpoYm10QmJHd2lMQ0owZFc1bFQzQjBhVzl1VW1GdWF5SXNJblIxYm1WUGNIUnBiMjVRYjNOMGN5SXNJbWRsZEZSMWJtVlBjSFJwYjI1R2NtOXRWWEpzSWl3aVgxOTNaV0p3WVdOclgyMXZaSFZzWlY5allXTm9aVjlmSWl3aVgxOTNaV0p3WVdOclgzSmxjWFZwY21WZlh5SXNJbTF2WkhWc1pVbGtJaXdpWTJGamFHVmtUVzlrZFd4bElpd2lYMTkzWldKd1lXTnJYMjF2WkhWc1pYTmZYeUlzSW1SbFptbHVhWFJwYjI0aUxDSndjbTl3SWl3aVUzbHRZbTlzSWl3aWRHOVRkSEpwYm1kVVlXY2lYU3dpYzI5MWNtTmxVbTl2ZENJNklpSjlcIiwgXCJXb3JrZXJcIiwgdW5kZWZpbmVkLCBfX3dlYnBhY2tfcHVibGljX3BhdGhfXyArIFwiV3NzV29ya2VyLmpzXCIpO1xufVxuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5jb25zdCBtb2RlbHNfMSA9IHJlcXVpcmUoXCJAY29tbW9uL21vZGVsc1wiKTtcbmV4cG9ydHMuZGVmYXVsdCA9IChzdGF0ZSA9IG1vZGVsc18xLmluaXRzLmNoRGV0YWlsLCBhY3Rpb24pID0+IHtcbiAgICByZXR1cm4gYWN0aW9uLmNoRGV0YWlsID8gYWN0aW9uLmNoRGV0YWlsIDogc3RhdGU7XG59O1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmRlY29kZVBhY2tldCA9IHZvaWQgMDtcbmNvbnN0IGNvbW1vbnNfanNfMSA9IHJlcXVpcmUoXCIuL2NvbW1vbnMuanNcIik7XG5jb25zdCBiYXNlNjRfYXJyYXlidWZmZXJfanNfMSA9IHJlcXVpcmUoXCIuL2NvbnRyaWIvYmFzZTY0LWFycmF5YnVmZmVyLmpzXCIpO1xuY29uc3Qgd2l0aE5hdGl2ZUFycmF5QnVmZmVyID0gdHlwZW9mIEFycmF5QnVmZmVyID09PSBcImZ1bmN0aW9uXCI7XG5jb25zdCBkZWNvZGVQYWNrZXQgPSAoZW5jb2RlZFBhY2tldCwgYmluYXJ5VHlwZSkgPT4ge1xuICAgIGlmICh0eXBlb2YgZW5jb2RlZFBhY2tldCAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogXCJtZXNzYWdlXCIsXG4gICAgICAgICAgICBkYXRhOiBtYXBCaW5hcnkoZW5jb2RlZFBhY2tldCwgYmluYXJ5VHlwZSksXG4gICAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0IHR5cGUgPSBlbmNvZGVkUGFja2V0LmNoYXJBdCgwKTtcbiAgICBpZiAodHlwZSA9PT0gXCJiXCIpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGU6IFwibWVzc2FnZVwiLFxuICAgICAgICAgICAgZGF0YTogZGVjb2RlQmFzZTY0UGFja2V0KGVuY29kZWRQYWNrZXQuc3Vic3RyaW5nKDEpLCBiaW5hcnlUeXBlKSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgY29uc3QgcGFja2V0VHlwZSA9IGNvbW1vbnNfanNfMS5QQUNLRVRfVFlQRVNfUkVWRVJTRVt0eXBlXTtcbiAgICBpZiAoIXBhY2tldFR5cGUpIHtcbiAgICAgICAgcmV0dXJuIGNvbW1vbnNfanNfMS5FUlJPUl9QQUNLRVQ7XG4gICAgfVxuICAgIHJldHVybiBlbmNvZGVkUGFja2V0Lmxlbmd0aCA+IDFcbiAgICAgICAgPyB7XG4gICAgICAgICAgICB0eXBlOiBjb21tb25zX2pzXzEuUEFDS0VUX1RZUEVTX1JFVkVSU0VbdHlwZV0sXG4gICAgICAgICAgICBkYXRhOiBlbmNvZGVkUGFja2V0LnN1YnN0cmluZygxKSxcbiAgICAgICAgfVxuICAgICAgICA6IHtcbiAgICAgICAgICAgIHR5cGU6IGNvbW1vbnNfanNfMS5QQUNLRVRfVFlQRVNfUkVWRVJTRVt0eXBlXSxcbiAgICAgICAgfTtcbn07XG5leHBvcnRzLmRlY29kZVBhY2tldCA9IGRlY29kZVBhY2tldDtcbmNvbnN0IGRlY29kZUJhc2U2NFBhY2tldCA9IChkYXRhLCBiaW5hcnlUeXBlKSA9PiB7XG4gICAgaWYgKHdpdGhOYXRpdmVBcnJheUJ1ZmZlcikge1xuICAgICAgICBjb25zdCBkZWNvZGVkID0gKDAsIGJhc2U2NF9hcnJheWJ1ZmZlcl9qc18xLmRlY29kZSkoZGF0YSk7XG4gICAgICAgIHJldHVybiBtYXBCaW5hcnkoZGVjb2RlZCwgYmluYXJ5VHlwZSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICByZXR1cm4geyBiYXNlNjQ6IHRydWUsIGRhdGEgfTsgLy8gZmFsbGJhY2sgZm9yIG9sZCBicm93c2Vyc1xuICAgIH1cbn07XG5jb25zdCBtYXBCaW5hcnkgPSAoZGF0YSwgYmluYXJ5VHlwZSkgPT4ge1xuICAgIHN3aXRjaCAoYmluYXJ5VHlwZSkge1xuICAgICAgICBjYXNlIFwiYmxvYlwiOlxuICAgICAgICAgICAgaWYgKGRhdGEgaW5zdGFuY2VvZiBCbG9iKSB7XG4gICAgICAgICAgICAgICAgLy8gZnJvbSBXZWJTb2NrZXQgKyBiaW5hcnlUeXBlIFwiYmxvYlwiXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBmcm9tIEhUVFAgbG9uZy1wb2xsaW5nIG9yIFdlYlRyYW5zcG9ydFxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQmxvYihbZGF0YV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICBjYXNlIFwiYXJyYXlidWZmZXJcIjpcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGlmIChkYXRhIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpIHtcbiAgICAgICAgICAgICAgICAvLyBmcm9tIEhUVFAgbG9uZy1wb2xsaW5nIChiYXNlNjQpIG9yIFdlYlNvY2tldCArIGJpbmFyeVR5cGUgXCJhcnJheWJ1ZmZlclwiXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBmcm9tIFdlYlRyYW5zcG9ydCAoVWludDhBcnJheSlcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0YS5idWZmZXI7XG4gICAgICAgICAgICB9XG4gICAgfVxufTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gKHN0YXRlID0gW10sIGFjdGlvbikgPT4ge1xuICAgIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICAgICAgY2FzZSAnQVBJX1RPX1NFUlZFUltSRVFVRVNUXTpjaGFuZ2VUaHJlYWQnOlxuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICBjYXNlICdTRVJWRVJfVE9fQVBJW0VNSVRdOmZldGNoUG9zdHMnOlxuICAgICAgICBjYXNlICdTRVJWRVJfVE9fQVBJW0JST0FEQ0FTVF06cG9zdHMnOlxuICAgICAgICAgICAgaWYgKGFjdGlvbi5wb3N0c1RpbWVsaW5lU3RvY2sgJiYgYWN0aW9uLnBvc3RzVGltZWxpbmVTdG9jay5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgaWYgKGFjdGlvbi50dW5lQ2guY29ubmVjdGlvbiA9PT0gYWN0aW9uLnBvc3RzVGltZWxpbmVTdG9ja1swXS5jb25uZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbLi4uc3RhdGUsIC4uLmFjdGlvbi5wb3N0c1RpbWVsaW5lU3RvY2tdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdTRVJWRVJfVE9fQVBJW0VNSVRdOmdldE1vcmUnOlxuICAgICAgICAgICAgaWYgKGFjdGlvbi5wb3N0c1RpbWVsaW5lU3RvY2sgJiYgYWN0aW9uLnBvc3RzVGltZWxpbmVTdG9jay5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFsuLi5hY3Rpb24ucG9zdHNUaW1lbGluZVN0b2NrLCAuLi5zdGF0ZV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICB9XG4gICAgcmV0dXJuIHN0YXRlO1xufTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5lbmNvZGVQYWNrZXQgPSB2b2lkIDA7XG5leHBvcnRzLmVuY29kZVBhY2tldFRvQmluYXJ5ID0gZW5jb2RlUGFja2V0VG9CaW5hcnk7XG5jb25zdCBjb21tb25zX2pzXzEgPSByZXF1aXJlKFwiLi9jb21tb25zLmpzXCIpO1xuY29uc3Qgd2l0aE5hdGl2ZUJsb2IgPSB0eXBlb2YgQmxvYiA9PT0gXCJmdW5jdGlvblwiIHx8XG4gICAgKHR5cGVvZiBCbG9iICE9PSBcInVuZGVmaW5lZFwiICYmXG4gICAgICAgIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChCbG9iKSA9PT0gXCJbb2JqZWN0IEJsb2JDb25zdHJ1Y3Rvcl1cIik7XG5jb25zdCB3aXRoTmF0aXZlQXJyYXlCdWZmZXIgPSB0eXBlb2YgQXJyYXlCdWZmZXIgPT09IFwiZnVuY3Rpb25cIjtcbi8vIEFycmF5QnVmZmVyLmlzVmlldyBtZXRob2QgaXMgbm90IGRlZmluZWQgaW4gSUUxMFxuY29uc3QgaXNWaWV3ID0gKG9iaikgPT4ge1xuICAgIHJldHVybiB0eXBlb2YgQXJyYXlCdWZmZXIuaXNWaWV3ID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgPyBBcnJheUJ1ZmZlci5pc1ZpZXcob2JqKVxuICAgICAgICA6IG9iaiAmJiBvYmouYnVmZmVyIGluc3RhbmNlb2YgQXJyYXlCdWZmZXI7XG59O1xuY29uc3QgZW5jb2RlUGFja2V0ID0gKHsgdHlwZSwgZGF0YSB9LCBzdXBwb3J0c0JpbmFyeSwgY2FsbGJhY2spID0+IHtcbiAgICBpZiAod2l0aE5hdGl2ZUJsb2IgJiYgZGF0YSBpbnN0YW5jZW9mIEJsb2IpIHtcbiAgICAgICAgaWYgKHN1cHBvcnRzQmluYXJ5KSB7XG4gICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soZGF0YSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZW5jb2RlQmxvYkFzQmFzZTY0KGRhdGEsIGNhbGxiYWNrKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIGlmICh3aXRoTmF0aXZlQXJyYXlCdWZmZXIgJiZcbiAgICAgICAgKGRhdGEgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlciB8fCBpc1ZpZXcoZGF0YSkpKSB7XG4gICAgICAgIGlmIChzdXBwb3J0c0JpbmFyeSkge1xuICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKGRhdGEpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGVuY29kZUJsb2JBc0Jhc2U2NChuZXcgQmxvYihbZGF0YV0pLCBjYWxsYmFjayk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gcGxhaW4gc3RyaW5nXG4gICAgcmV0dXJuIGNhbGxiYWNrKGNvbW1vbnNfanNfMS5QQUNLRVRfVFlQRVNbdHlwZV0gKyAoZGF0YSB8fCBcIlwiKSk7XG59O1xuZXhwb3J0cy5lbmNvZGVQYWNrZXQgPSBlbmNvZGVQYWNrZXQ7XG5jb25zdCBlbmNvZGVCbG9iQXNCYXNlNjQgPSAoZGF0YSwgY2FsbGJhY2spID0+IHtcbiAgICBjb25zdCBmaWxlUmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICBmaWxlUmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29uc3QgY29udGVudCA9IGZpbGVSZWFkZXIucmVzdWx0LnNwbGl0KFwiLFwiKVsxXTtcbiAgICAgICAgY2FsbGJhY2soXCJiXCIgKyAoY29udGVudCB8fCBcIlwiKSk7XG4gICAgfTtcbiAgICByZXR1cm4gZmlsZVJlYWRlci5yZWFkQXNEYXRhVVJMKGRhdGEpO1xufTtcbmZ1bmN0aW9uIHRvQXJyYXkoZGF0YSkge1xuICAgIGlmIChkYXRhIGluc3RhbmNlb2YgVWludDhBcnJheSkge1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gICAgZWxzZSBpZiAoZGF0YSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSB7XG4gICAgICAgIHJldHVybiBuZXcgVWludDhBcnJheShkYXRhKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHJldHVybiBuZXcgVWludDhBcnJheShkYXRhLmJ1ZmZlciwgZGF0YS5ieXRlT2Zmc2V0LCBkYXRhLmJ5dGVMZW5ndGgpO1xuICAgIH1cbn1cbmxldCBURVhUX0VOQ09ERVI7XG5mdW5jdGlvbiBlbmNvZGVQYWNrZXRUb0JpbmFyeShwYWNrZXQsIGNhbGxiYWNrKSB7XG4gICAgaWYgKHdpdGhOYXRpdmVCbG9iICYmIHBhY2tldC5kYXRhIGluc3RhbmNlb2YgQmxvYikge1xuICAgICAgICByZXR1cm4gcGFja2V0LmRhdGEuYXJyYXlCdWZmZXIoKS50aGVuKHRvQXJyYXkpLnRoZW4oY2FsbGJhY2spO1xuICAgIH1cbiAgICBlbHNlIGlmICh3aXRoTmF0aXZlQXJyYXlCdWZmZXIgJiZcbiAgICAgICAgKHBhY2tldC5kYXRhIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIgfHwgaXNWaWV3KHBhY2tldC5kYXRhKSkpIHtcbiAgICAgICAgcmV0dXJuIGNhbGxiYWNrKHRvQXJyYXkocGFja2V0LmRhdGEpKTtcbiAgICB9XG4gICAgZW5jb2RlUGFja2V0KHBhY2tldCwgZmFsc2UsIChlbmNvZGVkKSA9PiB7XG4gICAgICAgIGlmICghVEVYVF9FTkNPREVSKSB7XG4gICAgICAgICAgICBURVhUX0VOQ09ERVIgPSBuZXcgVGV4dEVuY29kZXIoKTtcbiAgICAgICAgfVxuICAgICAgICBjYWxsYmFjayhURVhUX0VOQ09ERVIuZW5jb2RlKGVuY29kZWQpKTtcbiAgICB9KTtcbn1cbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5kZWNvZGUgPSBleHBvcnRzLmVuY29kZSA9IHZvaWQgMDtcbi8vIGltcG9ydGVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3NvY2tldGlvL2Jhc2U2NC1hcnJheWJ1ZmZlclxuY29uc3QgY2hhcnMgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyc7XG4vLyBVc2UgYSBsb29rdXAgdGFibGUgdG8gZmluZCB0aGUgaW5kZXguXG5jb25zdCBsb29rdXAgPSB0eXBlb2YgVWludDhBcnJheSA9PT0gJ3VuZGVmaW5lZCcgPyBbXSA6IG5ldyBVaW50OEFycmF5KDI1Nik7XG5mb3IgKGxldCBpID0gMDsgaSA8IGNoYXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgbG9va3VwW2NoYXJzLmNoYXJDb2RlQXQoaSldID0gaTtcbn1cbmNvbnN0IGVuY29kZSA9IChhcnJheWJ1ZmZlcikgPT4ge1xuICAgIGxldCBieXRlcyA9IG5ldyBVaW50OEFycmF5KGFycmF5YnVmZmVyKSwgaSwgbGVuID0gYnl0ZXMubGVuZ3RoLCBiYXNlNjQgPSAnJztcbiAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpICs9IDMpIHtcbiAgICAgICAgYmFzZTY0ICs9IGNoYXJzW2J5dGVzW2ldID4+IDJdO1xuICAgICAgICBiYXNlNjQgKz0gY2hhcnNbKChieXRlc1tpXSAmIDMpIDw8IDQpIHwgKGJ5dGVzW2kgKyAxXSA+PiA0KV07XG4gICAgICAgIGJhc2U2NCArPSBjaGFyc1soKGJ5dGVzW2kgKyAxXSAmIDE1KSA8PCAyKSB8IChieXRlc1tpICsgMl0gPj4gNildO1xuICAgICAgICBiYXNlNjQgKz0gY2hhcnNbYnl0ZXNbaSArIDJdICYgNjNdO1xuICAgIH1cbiAgICBpZiAobGVuICUgMyA9PT0gMikge1xuICAgICAgICBiYXNlNjQgPSBiYXNlNjQuc3Vic3RyaW5nKDAsIGJhc2U2NC5sZW5ndGggLSAxKSArICc9JztcbiAgICB9XG4gICAgZWxzZSBpZiAobGVuICUgMyA9PT0gMSkge1xuICAgICAgICBiYXNlNjQgPSBiYXNlNjQuc3Vic3RyaW5nKDAsIGJhc2U2NC5sZW5ndGggLSAyKSArICc9PSc7XG4gICAgfVxuICAgIHJldHVybiBiYXNlNjQ7XG59O1xuZXhwb3J0cy5lbmNvZGUgPSBlbmNvZGU7XG5jb25zdCBkZWNvZGUgPSAoYmFzZTY0KSA9PiB7XG4gICAgbGV0IGJ1ZmZlckxlbmd0aCA9IGJhc2U2NC5sZW5ndGggKiAwLjc1LCBsZW4gPSBiYXNlNjQubGVuZ3RoLCBpLCBwID0gMCwgZW5jb2RlZDEsIGVuY29kZWQyLCBlbmNvZGVkMywgZW5jb2RlZDQ7XG4gICAgaWYgKGJhc2U2NFtiYXNlNjQubGVuZ3RoIC0gMV0gPT09ICc9Jykge1xuICAgICAgICBidWZmZXJMZW5ndGgtLTtcbiAgICAgICAgaWYgKGJhc2U2NFtiYXNlNjQubGVuZ3RoIC0gMl0gPT09ICc9Jykge1xuICAgICAgICAgICAgYnVmZmVyTGVuZ3RoLS07XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgYXJyYXlidWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoYnVmZmVyTGVuZ3RoKSwgYnl0ZXMgPSBuZXcgVWludDhBcnJheShhcnJheWJ1ZmZlcik7XG4gICAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSArPSA0KSB7XG4gICAgICAgIGVuY29kZWQxID0gbG9va3VwW2Jhc2U2NC5jaGFyQ29kZUF0KGkpXTtcbiAgICAgICAgZW5jb2RlZDIgPSBsb29rdXBbYmFzZTY0LmNoYXJDb2RlQXQoaSArIDEpXTtcbiAgICAgICAgZW5jb2RlZDMgPSBsb29rdXBbYmFzZTY0LmNoYXJDb2RlQXQoaSArIDIpXTtcbiAgICAgICAgZW5jb2RlZDQgPSBsb29rdXBbYmFzZTY0LmNoYXJDb2RlQXQoaSArIDMpXTtcbiAgICAgICAgYnl0ZXNbcCsrXSA9IChlbmNvZGVkMSA8PCAyKSB8IChlbmNvZGVkMiA+PiA0KTtcbiAgICAgICAgYnl0ZXNbcCsrXSA9ICgoZW5jb2RlZDIgJiAxNSkgPDwgNCkgfCAoZW5jb2RlZDMgPj4gMik7XG4gICAgICAgIGJ5dGVzW3ArK10gPSAoKGVuY29kZWQzICYgMykgPDwgNikgfCAoZW5jb2RlZDQgJiA2Myk7XG4gICAgfVxuICAgIHJldHVybiBhcnJheWJ1ZmZlcjtcbn07XG5leHBvcnRzLmRlY29kZSA9IGRlY29kZTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gKHN0YXRlID0gW10sIGFjdGlvbikgPT4ge1xuICAgIGNvbnN0IHsgcG9zdHMsIHJhbmssIHR1bmVDaCB9ID0gYWN0aW9uO1xuICAgIGxldCBwb3N0c0NudCA9IHBvc3RzPy5sZW5ndGggfHwgMDtcbiAgICBsZXQgcmFua0NudCA9IHJhbms/Lmxlbmd0aCB8fCAwO1xuICAgIGNvbnN0IHNvcnRMaXZlQ250ID0gKGEsIGIpID0+IHtcbiAgICAgICAgaWYgKCF0dW5lQ2gpXG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgaWYgKGEuY29ubmVjdGlvbiA9PT0gdHVuZUNoLmNvbm5lY3Rpb24gfHwgYi5jb25uZWN0aW9uID09PSB0dW5lQ2guY29ubmVjdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGEubGl2ZUNudCA8IGIubGl2ZUNudClcbiAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICBpZiAoYS5saXZlQ250ID4gYi5saXZlQ250KVxuICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICByZXR1cm4gMDtcbiAgICB9O1xuICAgIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICAgICAgY2FzZSAnU0VSVkVSX1RPX0FQSVtFTUlUXTpmZXRjaFBvc3RzJzpcbiAgICAgICAgICAgIGlmICh0dW5lQ2ggJiYgcG9zdHMpIHtcbiAgICAgICAgICAgICAgICBpZiAocG9zdHNDbnQgPT09IDApXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGUubWFwKChyYW5rKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0dW5lQ2guY29ubmVjdGlvbiA9PT0gcmFuay5jb25uZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnJhbmssXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgIGZhdmljb246IHBvc3RzW3Bvc3RzQ250IC0gMV0uZmF2aWNvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFtcElkOiBwb3N0c1twb3N0c0NudCAtIDFdLnN0YW1wSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zdDogcG9zdHNbcG9zdHNDbnQgLSAxXS5jb250ZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByYW5rO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIGNhc2UgJ1NFUlZFUl9UT19BUElbQlJPQURDQVNUXTp0dW5lJzpcbiAgICAgICAgY2FzZSAnU0VSVkVSX1RPX0FQSVtCUk9BRENBU1RdOmNoYW5nZVRocmVhZCc6XG4gICAgICAgIGNhc2UgJ1NFUlZFUl9UT19BUElbQlJPQURDQVNUXTpkaXNjb25uZWN0JzpcbiAgICAgICAgICAgIGlmICh0dW5lQ2ggJiYgcmFuaykge1xuICAgICAgICAgICAgICAgIHJldHVybiBbLi4ucmFua107XG4gICAgICAgICAgICB9XG4gICAgICAgIGNhc2UgJ1NFUlZFUl9UT19BUElbQlJPQURDQVNUXTpwb3N0cyc6XG4gICAgICAgICAgICBpZiAocG9zdHMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGUubWFwKChyYW5rKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwb3N0c1swXS5jb25uZWN0aW9uID09PSByYW5rLmNvbm5lY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IC4uLnJhbmssIGxhdGVzdFBvc3Q6IHBvc3RzWzBdIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJhbms7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIGNhc2UgJ1NFUlZFUl9UT19BUElbRU1JVF06cmFuayc6XG4gICAgICAgICAgICAvLyBzdGF0ZeOBqGFjdGlvbi5yYW5r44Gu5Lih5pa55a2Y5Zyo44GZ44KL5aC05ZCIXG4gICAgICAgICAgICBpZiAoc3RhdGUgJiYgc3RhdGUubGVuZ3RoID4gMCAmJiByYW5rICYmIHJhbmtDbnQgPiAwKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3UmFua3MgPSBbXTtcbiAgICAgICAgICAgICAgICBsZXQgbGFzdFBvc3QgPSByYW5rWzBdO1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmFua0NudDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBuZXdSYW5rID0gcmFua1tpXTtcbiAgICAgICAgICAgICAgICAgICAgbGFzdFBvc3QgPSBuZXdSYW5rLnVwZGF0ZVRpbWUgPiBsYXN0UG9zdC51cGRhdGVUaW1lID8gbmV3UmFuayA6IGxhc3RQb3N0O1xuICAgICAgICAgICAgICAgICAgICBpZiAobmV3UmFuay5jb25uZWN0aW9uID09PSBzdGF0ZVswXS5jb25uZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdSYW5rID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLm5ld1JhbmssXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGl2ZUNudDogc3RhdGVbMF0ubGl2ZUNudCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgbmV3UmFua3MucHVzaChuZXdSYW5rKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbmV3UmFua3Muc29ydChzb3J0TGl2ZUNudCk7XG4gICAgICAgICAgICAgICAgLy8gICAgICAgIG5ld1JhbmtzWzBdLmZhdmljb24gPSBsYXN0UG9zdC5mYXZpY29uO1xuICAgICAgICAgICAgICAgIG5ld1JhbmtzWzBdLmNvbnRlbnQgPSBsYXN0UG9zdC5jb250ZW50O1xuICAgICAgICAgICAgICAgIG5ld1JhbmtzWzBdLnN0YW1wSWQgPSBsYXN0UG9zdC5zdGFtcElkO1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXdSYW5rcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBhY3Rpb24ucmFuayA/IGFjdGlvbi5yYW5rIDogc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gYWN0aW9uLnJhbmsgPyBhY3Rpb24ucmFuayA6IHN0YXRlO1xuICAgIH1cbn07XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2RlZlByb3AgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG52YXIgX19nZXRPd25Qcm9wRGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG52YXIgX19nZXRPd25Qcm9wTmFtZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcztcbnZhciBfX2hhc093blByb3AgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xudmFyIF9fZXhwb3J0ID0gKHRhcmdldCwgYWxsKSA9PiB7XG4gIGZvciAodmFyIG5hbWUgaW4gYWxsKVxuICAgIF9fZGVmUHJvcCh0YXJnZXQsIG5hbWUsIHsgZ2V0OiBhbGxbbmFtZV0sIGVudW1lcmFibGU6IHRydWUgfSk7XG59O1xudmFyIF9fY29weVByb3BzID0gKHRvLCBmcm9tLCBleGNlcHQsIGRlc2MpID0+IHtcbiAgaWYgKGZyb20gJiYgdHlwZW9mIGZyb20gPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGZyb20gPT09IFwiZnVuY3Rpb25cIikge1xuICAgIGZvciAobGV0IGtleSBvZiBfX2dldE93blByb3BOYW1lcyhmcm9tKSlcbiAgICAgIGlmICghX19oYXNPd25Qcm9wLmNhbGwodG8sIGtleSkgJiYga2V5ICE9PSBleGNlcHQpXG4gICAgICAgIF9fZGVmUHJvcCh0bywga2V5LCB7IGdldDogKCkgPT4gZnJvbVtrZXldLCBlbnVtZXJhYmxlOiAhKGRlc2MgPSBfX2dldE93blByb3BEZXNjKGZyb20sIGtleSkpIHx8IGRlc2MuZW51bWVyYWJsZSB9KTtcbiAgfVxuICByZXR1cm4gdG87XG59O1xudmFyIF9fdG9Db21tb25KUyA9IChtb2QpID0+IF9fY29weVByb3BzKF9fZGVmUHJvcCh7fSwgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSksIG1vZCk7XG5cbi8vIHNyYy9pbmRleC50c1xudmFyIHNyY19leHBvcnRzID0ge307XG5fX2V4cG9ydChzcmNfZXhwb3J0cywge1xuICBjcmVhdGVTZWxlY3RvcjogKCkgPT4gY3JlYXRlU2VsZWN0b3IsXG4gIGNyZWF0ZVNlbGVjdG9yQ3JlYXRvcjogKCkgPT4gY3JlYXRlU2VsZWN0b3JDcmVhdG9yLFxuICBjcmVhdGVTdHJ1Y3R1cmVkU2VsZWN0b3I6ICgpID0+IGNyZWF0ZVN0cnVjdHVyZWRTZWxlY3RvcixcbiAgbHJ1TWVtb2l6ZTogKCkgPT4gbHJ1TWVtb2l6ZSxcbiAgcmVmZXJlbmNlRXF1YWxpdHlDaGVjazogKCkgPT4gcmVmZXJlbmNlRXF1YWxpdHlDaGVjayxcbiAgc2V0R2xvYmFsRGV2TW9kZUNoZWNrczogKCkgPT4gc2V0R2xvYmFsRGV2TW9kZUNoZWNrcyxcbiAgdW5zdGFibGVfYXV0b3RyYWNrTWVtb2l6ZTogKCkgPT4gYXV0b3RyYWNrTWVtb2l6ZSxcbiAgd2Vha01hcE1lbW9pemU6ICgpID0+IHdlYWtNYXBNZW1vaXplXG59KTtcbm1vZHVsZS5leHBvcnRzID0gX190b0NvbW1vbkpTKHNyY19leHBvcnRzKTtcblxuLy8gc3JjL2Rldk1vZGVDaGVja3MvaWRlbnRpdHlGdW5jdGlvbkNoZWNrLnRzXG52YXIgcnVuSWRlbnRpdHlGdW5jdGlvbkNoZWNrID0gKHJlc3VsdEZ1bmMsIGlucHV0U2VsZWN0b3JzUmVzdWx0cywgb3V0cHV0U2VsZWN0b3JSZXN1bHQpID0+IHtcbiAgaWYgKGlucHV0U2VsZWN0b3JzUmVzdWx0cy5sZW5ndGggPT09IDEgJiYgaW5wdXRTZWxlY3RvcnNSZXN1bHRzWzBdID09PSBvdXRwdXRTZWxlY3RvclJlc3VsdCkge1xuICAgIGxldCBpc0lucHV0U2FtZUFzT3V0cHV0ID0gZmFsc2U7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGVtcHR5T2JqZWN0ID0ge307XG4gICAgICBpZiAocmVzdWx0RnVuYyhlbXB0eU9iamVjdCkgPT09IGVtcHR5T2JqZWN0KVxuICAgICAgICBpc0lucHV0U2FtZUFzT3V0cHV0ID0gdHJ1ZTtcbiAgICB9IGNhdGNoIHtcbiAgICB9XG4gICAgaWYgKGlzSW5wdXRTYW1lQXNPdXRwdXQpIHtcbiAgICAgIGxldCBzdGFjayA9IHZvaWQgMDtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcigpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICA7XG4gICAgICAgICh7IHN0YWNrIH0gPSBlKTtcbiAgICAgIH1cbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgXCJUaGUgcmVzdWx0IGZ1bmN0aW9uIHJldHVybmVkIGl0cyBvd24gaW5wdXRzIHdpdGhvdXQgbW9kaWZpY2F0aW9uLiBlLmdcXG5gY3JlYXRlU2VsZWN0b3IoW3N0YXRlID0+IHN0YXRlLnRvZG9zXSwgdG9kb3MgPT4gdG9kb3MpYFxcblRoaXMgY291bGQgbGVhZCB0byBpbmVmZmljaWVudCBtZW1vaXphdGlvbiBhbmQgdW5uZWNlc3NhcnkgcmUtcmVuZGVycy5cXG5FbnN1cmUgdHJhbnNmb3JtYXRpb24gbG9naWMgaXMgaW4gdGhlIHJlc3VsdCBmdW5jdGlvbiwgYW5kIGV4dHJhY3Rpb24gbG9naWMgaXMgaW4gdGhlIGlucHV0IHNlbGVjdG9ycy5cIixcbiAgICAgICAgeyBzdGFjayB9XG4gICAgICApO1xuICAgIH1cbiAgfVxufTtcblxuLy8gc3JjL2Rldk1vZGVDaGVja3MvaW5wdXRTdGFiaWxpdHlDaGVjay50c1xudmFyIHJ1bklucHV0U3RhYmlsaXR5Q2hlY2sgPSAoaW5wdXRTZWxlY3RvclJlc3VsdHNPYmplY3QsIG9wdGlvbnMsIGlucHV0U2VsZWN0b3JBcmdzKSA9PiB7XG4gIGNvbnN0IHsgbWVtb2l6ZSwgbWVtb2l6ZU9wdGlvbnMgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IHsgaW5wdXRTZWxlY3RvclJlc3VsdHMsIGlucHV0U2VsZWN0b3JSZXN1bHRzQ29weSB9ID0gaW5wdXRTZWxlY3RvclJlc3VsdHNPYmplY3Q7XG4gIGNvbnN0IGNyZWF0ZUFuRW1wdHlPYmplY3QgPSBtZW1vaXplKCgpID0+ICh7fSksIC4uLm1lbW9pemVPcHRpb25zKTtcbiAgY29uc3QgYXJlSW5wdXRTZWxlY3RvclJlc3VsdHNFcXVhbCA9IGNyZWF0ZUFuRW1wdHlPYmplY3QuYXBwbHkobnVsbCwgaW5wdXRTZWxlY3RvclJlc3VsdHMpID09PSBjcmVhdGVBbkVtcHR5T2JqZWN0LmFwcGx5KG51bGwsIGlucHV0U2VsZWN0b3JSZXN1bHRzQ29weSk7XG4gIGlmICghYXJlSW5wdXRTZWxlY3RvclJlc3VsdHNFcXVhbCkge1xuICAgIGxldCBzdGFjayA9IHZvaWQgMDtcbiAgICB0cnkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgO1xuICAgICAgKHsgc3RhY2sgfSA9IGUpO1xuICAgIH1cbiAgICBjb25zb2xlLndhcm4oXG4gICAgICBcIkFuIGlucHV0IHNlbGVjdG9yIHJldHVybmVkIGEgZGlmZmVyZW50IHJlc3VsdCB3aGVuIHBhc3NlZCBzYW1lIGFyZ3VtZW50cy5cXG5UaGlzIG1lYW5zIHlvdXIgb3V0cHV0IHNlbGVjdG9yIHdpbGwgbGlrZWx5IHJ1biBtb3JlIGZyZXF1ZW50bHkgdGhhbiBpbnRlbmRlZC5cXG5Bdm9pZCByZXR1cm5pbmcgYSBuZXcgcmVmZXJlbmNlIGluc2lkZSB5b3VyIGlucHV0IHNlbGVjdG9yLCBlLmcuXFxuYGNyZWF0ZVNlbGVjdG9yKFtzdGF0ZSA9PiBzdGF0ZS50b2Rvcy5tYXAodG9kbyA9PiB0b2RvLmlkKV0sIHRvZG9JZHMgPT4gdG9kb0lkcy5sZW5ndGgpYFwiLFxuICAgICAge1xuICAgICAgICBhcmd1bWVudHM6IGlucHV0U2VsZWN0b3JBcmdzLFxuICAgICAgICBmaXJzdElucHV0czogaW5wdXRTZWxlY3RvclJlc3VsdHMsXG4gICAgICAgIHNlY29uZElucHV0czogaW5wdXRTZWxlY3RvclJlc3VsdHNDb3B5LFxuICAgICAgICBzdGFja1xuICAgICAgfVxuICAgICk7XG4gIH1cbn07XG5cbi8vIHNyYy9kZXZNb2RlQ2hlY2tzL3NldEdsb2JhbERldk1vZGVDaGVja3MudHNcbnZhciBnbG9iYWxEZXZNb2RlQ2hlY2tzID0ge1xuICBpbnB1dFN0YWJpbGl0eUNoZWNrOiBcIm9uY2VcIixcbiAgaWRlbnRpdHlGdW5jdGlvbkNoZWNrOiBcIm9uY2VcIlxufTtcbnZhciBzZXRHbG9iYWxEZXZNb2RlQ2hlY2tzID0gKGRldk1vZGVDaGVja3MpID0+IHtcbiAgT2JqZWN0LmFzc2lnbihnbG9iYWxEZXZNb2RlQ2hlY2tzLCBkZXZNb2RlQ2hlY2tzKTtcbn07XG5cbi8vIHNyYy91dGlscy50c1xudmFyIE5PVF9GT1VORCA9IC8qIEBfX1BVUkVfXyAqLyBTeW1ib2woXCJOT1RfRk9VTkRcIik7XG5mdW5jdGlvbiBhc3NlcnRJc0Z1bmN0aW9uKGZ1bmMsIGVycm9yTWVzc2FnZSA9IGBleHBlY3RlZCBhIGZ1bmN0aW9uLCBpbnN0ZWFkIHJlY2VpdmVkICR7dHlwZW9mIGZ1bmN9YCkge1xuICBpZiAodHlwZW9mIGZ1bmMgIT09IFwiZnVuY3Rpb25cIikge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoZXJyb3JNZXNzYWdlKTtcbiAgfVxufVxuZnVuY3Rpb24gYXNzZXJ0SXNPYmplY3Qob2JqZWN0LCBlcnJvck1lc3NhZ2UgPSBgZXhwZWN0ZWQgYW4gb2JqZWN0LCBpbnN0ZWFkIHJlY2VpdmVkICR7dHlwZW9mIG9iamVjdH1gKSB7XG4gIGlmICh0eXBlb2Ygb2JqZWN0ICE9PSBcIm9iamVjdFwiKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihlcnJvck1lc3NhZ2UpO1xuICB9XG59XG5mdW5jdGlvbiBhc3NlcnRJc0FycmF5T2ZGdW5jdGlvbnMoYXJyYXksIGVycm9yTWVzc2FnZSA9IGBleHBlY3RlZCBhbGwgaXRlbXMgdG8gYmUgZnVuY3Rpb25zLCBpbnN0ZWFkIHJlY2VpdmVkIHRoZSBmb2xsb3dpbmcgdHlwZXM6IGApIHtcbiAgaWYgKCFhcnJheS5ldmVyeSgoaXRlbSkgPT4gdHlwZW9mIGl0ZW0gPT09IFwiZnVuY3Rpb25cIikpIHtcbiAgICBjb25zdCBpdGVtVHlwZXMgPSBhcnJheS5tYXAoXG4gICAgICAoaXRlbSkgPT4gdHlwZW9mIGl0ZW0gPT09IFwiZnVuY3Rpb25cIiA/IGBmdW5jdGlvbiAke2l0ZW0ubmFtZSB8fCBcInVubmFtZWRcIn0oKWAgOiB0eXBlb2YgaXRlbVxuICAgICkuam9pbihcIiwgXCIpO1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYCR7ZXJyb3JNZXNzYWdlfVske2l0ZW1UeXBlc31dYCk7XG4gIH1cbn1cbnZhciBlbnN1cmVJc0FycmF5ID0gKGl0ZW0pID0+IHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkoaXRlbSkgPyBpdGVtIDogW2l0ZW1dO1xufTtcbmZ1bmN0aW9uIGdldERlcGVuZGVuY2llcyhjcmVhdGVTZWxlY3RvckFyZ3MpIHtcbiAgY29uc3QgZGVwZW5kZW5jaWVzID0gQXJyYXkuaXNBcnJheShjcmVhdGVTZWxlY3RvckFyZ3NbMF0pID8gY3JlYXRlU2VsZWN0b3JBcmdzWzBdIDogY3JlYXRlU2VsZWN0b3JBcmdzO1xuICBhc3NlcnRJc0FycmF5T2ZGdW5jdGlvbnMoXG4gICAgZGVwZW5kZW5jaWVzLFxuICAgIGBjcmVhdGVTZWxlY3RvciBleHBlY3RzIGFsbCBpbnB1dC1zZWxlY3RvcnMgdG8gYmUgZnVuY3Rpb25zLCBidXQgcmVjZWl2ZWQgdGhlIGZvbGxvd2luZyB0eXBlczogYFxuICApO1xuICByZXR1cm4gZGVwZW5kZW5jaWVzO1xufVxuZnVuY3Rpb24gY29sbGVjdElucHV0U2VsZWN0b3JSZXN1bHRzKGRlcGVuZGVuY2llcywgaW5wdXRTZWxlY3RvckFyZ3MpIHtcbiAgY29uc3QgaW5wdXRTZWxlY3RvclJlc3VsdHMgPSBbXTtcbiAgY29uc3QgeyBsZW5ndGggfSA9IGRlcGVuZGVuY2llcztcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgIGlucHV0U2VsZWN0b3JSZXN1bHRzLnB1c2goZGVwZW5kZW5jaWVzW2ldLmFwcGx5KG51bGwsIGlucHV0U2VsZWN0b3JBcmdzKSk7XG4gIH1cbiAgcmV0dXJuIGlucHV0U2VsZWN0b3JSZXN1bHRzO1xufVxudmFyIGdldERldk1vZGVDaGVja3NFeGVjdXRpb25JbmZvID0gKGZpcnN0UnVuLCBkZXZNb2RlQ2hlY2tzKSA9PiB7XG4gIGNvbnN0IHsgaWRlbnRpdHlGdW5jdGlvbkNoZWNrLCBpbnB1dFN0YWJpbGl0eUNoZWNrIH0gPSB7XG4gICAgLi4uZ2xvYmFsRGV2TW9kZUNoZWNrcyxcbiAgICAuLi5kZXZNb2RlQ2hlY2tzXG4gIH07XG4gIHJldHVybiB7XG4gICAgaWRlbnRpdHlGdW5jdGlvbkNoZWNrOiB7XG4gICAgICBzaG91bGRSdW46IGlkZW50aXR5RnVuY3Rpb25DaGVjayA9PT0gXCJhbHdheXNcIiB8fCBpZGVudGl0eUZ1bmN0aW9uQ2hlY2sgPT09IFwib25jZVwiICYmIGZpcnN0UnVuLFxuICAgICAgcnVuOiBydW5JZGVudGl0eUZ1bmN0aW9uQ2hlY2tcbiAgICB9LFxuICAgIGlucHV0U3RhYmlsaXR5Q2hlY2s6IHtcbiAgICAgIHNob3VsZFJ1bjogaW5wdXRTdGFiaWxpdHlDaGVjayA9PT0gXCJhbHdheXNcIiB8fCBpbnB1dFN0YWJpbGl0eUNoZWNrID09PSBcIm9uY2VcIiAmJiBmaXJzdFJ1bixcbiAgICAgIHJ1bjogcnVuSW5wdXRTdGFiaWxpdHlDaGVja1xuICAgIH1cbiAgfTtcbn07XG5cbi8vIHNyYy9hdXRvdHJhY2tNZW1vaXplL2F1dG90cmFja2luZy50c1xudmFyICRSRVZJU0lPTiA9IDA7XG52YXIgQ1VSUkVOVF9UUkFDS0VSID0gbnVsbDtcbnZhciBDZWxsID0gY2xhc3Mge1xuICByZXZpc2lvbiA9ICRSRVZJU0lPTjtcbiAgX3ZhbHVlO1xuICBfbGFzdFZhbHVlO1xuICBfaXNFcXVhbCA9IHRyaXBsZUVxO1xuICBjb25zdHJ1Y3Rvcihpbml0aWFsVmFsdWUsIGlzRXF1YWwgPSB0cmlwbGVFcSkge1xuICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5fbGFzdFZhbHVlID0gaW5pdGlhbFZhbHVlO1xuICAgIHRoaXMuX2lzRXF1YWwgPSBpc0VxdWFsO1xuICB9XG4gIC8vIFdoZW5ldmVyIGEgc3RvcmFnZSB2YWx1ZSBpcyByZWFkLCBpdCdsbCBhZGQgaXRzZWxmIHRvIHRoZSBjdXJyZW50IHRyYWNrZXIgaWZcbiAgLy8gb25lIGV4aXN0cywgZW50YW5nbGluZyBpdHMgc3RhdGUgd2l0aCB0aGF0IGNhY2hlLlxuICBnZXQgdmFsdWUoKSB7XG4gICAgQ1VSUkVOVF9UUkFDS0VSPy5hZGQodGhpcyk7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG4gIC8vIFdoZW5ldmVyIGEgc3RvcmFnZSB2YWx1ZSBpcyB1cGRhdGVkLCB3ZSBidW1wIHRoZSBnbG9iYWwgcmV2aXNpb24gY2xvY2ssXG4gIC8vIGFzc2lnbiB0aGUgcmV2aXNpb24gZm9yIHRoaXMgc3RvcmFnZSB0byB0aGUgbmV3IHZhbHVlLCBfYW5kXyB3ZSBzY2hlZHVsZSBhXG4gIC8vIHJlcmVuZGVyLiBUaGlzIGlzIGltcG9ydGFudCwgYW5kIGl0J3Mgd2hhdCBtYWtlcyBhdXRvdHJhY2tpbmcgIF9wdWxsX1xuICAvLyBiYXNlZC4gV2UgZG9uJ3QgYWN0aXZlbHkgdGVsbCB0aGUgY2FjaGVzIHdoaWNoIGRlcGVuZCBvbiB0aGUgc3RvcmFnZSB0aGF0XG4gIC8vIGFueXRoaW5nIGhhcyBoYXBwZW5lZC4gSW5zdGVhZCwgd2UgcmVjb21wdXRlIHRoZSBjYWNoZXMgd2hlbiBuZWVkZWQuXG4gIHNldCB2YWx1ZShuZXdWYWx1ZSkge1xuICAgIGlmICh0aGlzLnZhbHVlID09PSBuZXdWYWx1ZSlcbiAgICAgIHJldHVybjtcbiAgICB0aGlzLl92YWx1ZSA9IG5ld1ZhbHVlO1xuICAgIHRoaXMucmV2aXNpb24gPSArKyRSRVZJU0lPTjtcbiAgfVxufTtcbmZ1bmN0aW9uIHRyaXBsZUVxKGEsIGIpIHtcbiAgcmV0dXJuIGEgPT09IGI7XG59XG52YXIgVHJhY2tpbmdDYWNoZSA9IGNsYXNzIHtcbiAgX2NhY2hlZFZhbHVlO1xuICBfY2FjaGVkUmV2aXNpb24gPSAtMTtcbiAgX2RlcHMgPSBbXTtcbiAgaGl0cyA9IDA7XG4gIGZuO1xuICBjb25zdHJ1Y3Rvcihmbikge1xuICAgIHRoaXMuZm4gPSBmbjtcbiAgfVxuICBjbGVhcigpIHtcbiAgICB0aGlzLl9jYWNoZWRWYWx1ZSA9IHZvaWQgMDtcbiAgICB0aGlzLl9jYWNoZWRSZXZpc2lvbiA9IC0xO1xuICAgIHRoaXMuX2RlcHMgPSBbXTtcbiAgICB0aGlzLmhpdHMgPSAwO1xuICB9XG4gIGdldCB2YWx1ZSgpIHtcbiAgICBpZiAodGhpcy5yZXZpc2lvbiA+IHRoaXMuX2NhY2hlZFJldmlzaW9uKSB7XG4gICAgICBjb25zdCB7IGZuIH0gPSB0aGlzO1xuICAgICAgY29uc3QgY3VycmVudFRyYWNrZXIgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpO1xuICAgICAgY29uc3QgcHJldlRyYWNrZXIgPSBDVVJSRU5UX1RSQUNLRVI7XG4gICAgICBDVVJSRU5UX1RSQUNLRVIgPSBjdXJyZW50VHJhY2tlcjtcbiAgICAgIHRoaXMuX2NhY2hlZFZhbHVlID0gZm4oKTtcbiAgICAgIENVUlJFTlRfVFJBQ0tFUiA9IHByZXZUcmFja2VyO1xuICAgICAgdGhpcy5oaXRzKys7XG4gICAgICB0aGlzLl9kZXBzID0gQXJyYXkuZnJvbShjdXJyZW50VHJhY2tlcik7XG4gICAgICB0aGlzLl9jYWNoZWRSZXZpc2lvbiA9IHRoaXMucmV2aXNpb247XG4gICAgfVxuICAgIENVUlJFTlRfVFJBQ0tFUj8uYWRkKHRoaXMpO1xuICAgIHJldHVybiB0aGlzLl9jYWNoZWRWYWx1ZTtcbiAgfVxuICBnZXQgcmV2aXNpb24oKSB7XG4gICAgcmV0dXJuIE1hdGgubWF4KC4uLnRoaXMuX2RlcHMubWFwKChkKSA9PiBkLnJldmlzaW9uKSwgMCk7XG4gIH1cbn07XG5mdW5jdGlvbiBnZXRWYWx1ZShjZWxsKSB7XG4gIGlmICghKGNlbGwgaW5zdGFuY2VvZiBDZWxsKSkge1xuICAgIGNvbnNvbGUud2FybihcIk5vdCBhIHZhbGlkIGNlbGwhIFwiLCBjZWxsKTtcbiAgfVxuICByZXR1cm4gY2VsbC52YWx1ZTtcbn1cbmZ1bmN0aW9uIHNldFZhbHVlKHN0b3JhZ2UsIHZhbHVlKSB7XG4gIGlmICghKHN0b3JhZ2UgaW5zdGFuY2VvZiBDZWxsKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXG4gICAgICBcInNldFZhbHVlIG11c3QgYmUgcGFzc2VkIGEgdHJhY2tlZCBzdG9yZSBjcmVhdGVkIHdpdGggYGNyZWF0ZVN0b3JhZ2VgLlwiXG4gICAgKTtcbiAgfVxuICBzdG9yYWdlLnZhbHVlID0gc3RvcmFnZS5fbGFzdFZhbHVlID0gdmFsdWU7XG59XG5mdW5jdGlvbiBjcmVhdGVDZWxsKGluaXRpYWxWYWx1ZSwgaXNFcXVhbCA9IHRyaXBsZUVxKSB7XG4gIHJldHVybiBuZXcgQ2VsbChpbml0aWFsVmFsdWUsIGlzRXF1YWwpO1xufVxuZnVuY3Rpb24gY3JlYXRlQ2FjaGUoZm4pIHtcbiAgYXNzZXJ0SXNGdW5jdGlvbihcbiAgICBmbixcbiAgICBcInRoZSBmaXJzdCBwYXJhbWV0ZXIgdG8gYGNyZWF0ZUNhY2hlYCBtdXN0IGJlIGEgZnVuY3Rpb25cIlxuICApO1xuICByZXR1cm4gbmV3IFRyYWNraW5nQ2FjaGUoZm4pO1xufVxuXG4vLyBzcmMvYXV0b3RyYWNrTWVtb2l6ZS90cmFja2luZy50c1xudmFyIG5ldmVyRXEgPSAoYSwgYikgPT4gZmFsc2U7XG5mdW5jdGlvbiBjcmVhdGVUYWcoKSB7XG4gIHJldHVybiBjcmVhdGVDZWxsKG51bGwsIG5ldmVyRXEpO1xufVxuZnVuY3Rpb24gZGlydHlUYWcodGFnLCB2YWx1ZSkge1xuICBzZXRWYWx1ZSh0YWcsIHZhbHVlKTtcbn1cbnZhciBjb25zdW1lQ29sbGVjdGlvbiA9IChub2RlKSA9PiB7XG4gIGxldCB0YWcgPSBub2RlLmNvbGxlY3Rpb25UYWc7XG4gIGlmICh0YWcgPT09IG51bGwpIHtcbiAgICB0YWcgPSBub2RlLmNvbGxlY3Rpb25UYWcgPSBjcmVhdGVUYWcoKTtcbiAgfVxuICBnZXRWYWx1ZSh0YWcpO1xufTtcbnZhciBkaXJ0eUNvbGxlY3Rpb24gPSAobm9kZSkgPT4ge1xuICBjb25zdCB0YWcgPSBub2RlLmNvbGxlY3Rpb25UYWc7XG4gIGlmICh0YWcgIT09IG51bGwpIHtcbiAgICBkaXJ0eVRhZyh0YWcsIG51bGwpO1xuICB9XG59O1xuXG4vLyBzcmMvYXV0b3RyYWNrTWVtb2l6ZS9wcm94eS50c1xudmFyIFJFRFVYX1BST1hZX0xBQkVMID0gU3ltYm9sKCk7XG52YXIgbmV4dElkID0gMDtcbnZhciBwcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih7fSk7XG52YXIgT2JqZWN0VHJlZU5vZGUgPSBjbGFzcyB7XG4gIGNvbnN0cnVjdG9yKHZhbHVlKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLnRhZy52YWx1ZSA9IHZhbHVlO1xuICB9XG4gIHByb3h5ID0gbmV3IFByb3h5KHRoaXMsIG9iamVjdFByb3h5SGFuZGxlcik7XG4gIHRhZyA9IGNyZWF0ZVRhZygpO1xuICB0YWdzID0ge307XG4gIGNoaWxkcmVuID0ge307XG4gIGNvbGxlY3Rpb25UYWcgPSBudWxsO1xuICBpZCA9IG5leHRJZCsrO1xufTtcbnZhciBvYmplY3RQcm94eUhhbmRsZXIgPSB7XG4gIGdldChub2RlLCBrZXkpIHtcbiAgICBmdW5jdGlvbiBjYWxjdWxhdGVSZXN1bHQoKSB7XG4gICAgICBjb25zdCB7IHZhbHVlIH0gPSBub2RlO1xuICAgICAgY29uc3QgY2hpbGRWYWx1ZSA9IFJlZmxlY3QuZ2V0KHZhbHVlLCBrZXkpO1xuICAgICAgaWYgKHR5cGVvZiBrZXkgPT09IFwic3ltYm9sXCIpIHtcbiAgICAgICAgcmV0dXJuIGNoaWxkVmFsdWU7XG4gICAgICB9XG4gICAgICBpZiAoa2V5IGluIHByb3RvKSB7XG4gICAgICAgIHJldHVybiBjaGlsZFZhbHVlO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBjaGlsZFZhbHVlID09PSBcIm9iamVjdFwiICYmIGNoaWxkVmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgbGV0IGNoaWxkTm9kZSA9IG5vZGUuY2hpbGRyZW5ba2V5XTtcbiAgICAgICAgaWYgKGNoaWxkTm9kZSA9PT0gdm9pZCAwKSB7XG4gICAgICAgICAgY2hpbGROb2RlID0gbm9kZS5jaGlsZHJlbltrZXldID0gY3JlYXRlTm9kZShjaGlsZFZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hpbGROb2RlLnRhZykge1xuICAgICAgICAgIGdldFZhbHVlKGNoaWxkTm9kZS50YWcpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjaGlsZE5vZGUucHJveHk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgdGFnID0gbm9kZS50YWdzW2tleV07XG4gICAgICAgIGlmICh0YWcgPT09IHZvaWQgMCkge1xuICAgICAgICAgIHRhZyA9IG5vZGUudGFnc1trZXldID0gY3JlYXRlVGFnKCk7XG4gICAgICAgICAgdGFnLnZhbHVlID0gY2hpbGRWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBnZXRWYWx1ZSh0YWcpO1xuICAgICAgICByZXR1cm4gY2hpbGRWYWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgcmVzID0gY2FsY3VsYXRlUmVzdWx0KCk7XG4gICAgcmV0dXJuIHJlcztcbiAgfSxcbiAgb3duS2V5cyhub2RlKSB7XG4gICAgY29uc3VtZUNvbGxlY3Rpb24obm9kZSk7XG4gICAgcmV0dXJuIFJlZmxlY3Qub3duS2V5cyhub2RlLnZhbHVlKTtcbiAgfSxcbiAgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG5vZGUsIHByb3ApIHtcbiAgICByZXR1cm4gUmVmbGVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobm9kZS52YWx1ZSwgcHJvcCk7XG4gIH0sXG4gIGhhcyhub2RlLCBwcm9wKSB7XG4gICAgcmV0dXJuIFJlZmxlY3QuaGFzKG5vZGUudmFsdWUsIHByb3ApO1xuICB9XG59O1xudmFyIEFycmF5VHJlZU5vZGUgPSBjbGFzcyB7XG4gIGNvbnN0cnVjdG9yKHZhbHVlKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLnRhZy52YWx1ZSA9IHZhbHVlO1xuICB9XG4gIHByb3h5ID0gbmV3IFByb3h5KFt0aGlzXSwgYXJyYXlQcm94eUhhbmRsZXIpO1xuICB0YWcgPSBjcmVhdGVUYWcoKTtcbiAgdGFncyA9IHt9O1xuICBjaGlsZHJlbiA9IHt9O1xuICBjb2xsZWN0aW9uVGFnID0gbnVsbDtcbiAgaWQgPSBuZXh0SWQrKztcbn07XG52YXIgYXJyYXlQcm94eUhhbmRsZXIgPSB7XG4gIGdldChbbm9kZV0sIGtleSkge1xuICAgIGlmIChrZXkgPT09IFwibGVuZ3RoXCIpIHtcbiAgICAgIGNvbnN1bWVDb2xsZWN0aW9uKG5vZGUpO1xuICAgIH1cbiAgICByZXR1cm4gb2JqZWN0UHJveHlIYW5kbGVyLmdldChub2RlLCBrZXkpO1xuICB9LFxuICBvd25LZXlzKFtub2RlXSkge1xuICAgIHJldHVybiBvYmplY3RQcm94eUhhbmRsZXIub3duS2V5cyhub2RlKTtcbiAgfSxcbiAgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFtub2RlXSwgcHJvcCkge1xuICAgIHJldHVybiBvYmplY3RQcm94eUhhbmRsZXIuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG5vZGUsIHByb3ApO1xuICB9LFxuICBoYXMoW25vZGVdLCBwcm9wKSB7XG4gICAgcmV0dXJuIG9iamVjdFByb3h5SGFuZGxlci5oYXMobm9kZSwgcHJvcCk7XG4gIH1cbn07XG5mdW5jdGlvbiBjcmVhdGVOb2RlKHZhbHVlKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHJldHVybiBuZXcgQXJyYXlUcmVlTm9kZSh2YWx1ZSk7XG4gIH1cbiAgcmV0dXJuIG5ldyBPYmplY3RUcmVlTm9kZSh2YWx1ZSk7XG59XG5mdW5jdGlvbiB1cGRhdGVOb2RlKG5vZGUsIG5ld1ZhbHVlKSB7XG4gIGNvbnN0IHsgdmFsdWUsIHRhZ3MsIGNoaWxkcmVuIH0gPSBub2RlO1xuICBub2RlLnZhbHVlID0gbmV3VmFsdWU7XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiBBcnJheS5pc0FycmF5KG5ld1ZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggIT09IG5ld1ZhbHVlLmxlbmd0aCkge1xuICAgIGRpcnR5Q29sbGVjdGlvbihub2RlKTtcbiAgfSBlbHNlIHtcbiAgICBpZiAodmFsdWUgIT09IG5ld1ZhbHVlKSB7XG4gICAgICBsZXQgb2xkS2V5c1NpemUgPSAwO1xuICAgICAgbGV0IG5ld0tleXNTaXplID0gMDtcbiAgICAgIGxldCBhbnlLZXlzQWRkZWQgPSBmYWxzZTtcbiAgICAgIGZvciAoY29uc3QgX2tleSBpbiB2YWx1ZSkge1xuICAgICAgICBvbGRLZXlzU2l6ZSsrO1xuICAgICAgfVxuICAgICAgZm9yIChjb25zdCBrZXkgaW4gbmV3VmFsdWUpIHtcbiAgICAgICAgbmV3S2V5c1NpemUrKztcbiAgICAgICAgaWYgKCEoa2V5IGluIHZhbHVlKSkge1xuICAgICAgICAgIGFueUtleXNBZGRlZCA9IHRydWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbnN0IGlzRGlmZmVyZW50ID0gYW55S2V5c0FkZGVkIHx8IG9sZEtleXNTaXplICE9PSBuZXdLZXlzU2l6ZTtcbiAgICAgIGlmIChpc0RpZmZlcmVudCkge1xuICAgICAgICBkaXJ0eUNvbGxlY3Rpb24obm9kZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGZvciAoY29uc3Qga2V5IGluIHRhZ3MpIHtcbiAgICBjb25zdCBjaGlsZFZhbHVlID0gdmFsdWVba2V5XTtcbiAgICBjb25zdCBuZXdDaGlsZFZhbHVlID0gbmV3VmFsdWVba2V5XTtcbiAgICBpZiAoY2hpbGRWYWx1ZSAhPT0gbmV3Q2hpbGRWYWx1ZSkge1xuICAgICAgZGlydHlDb2xsZWN0aW9uKG5vZGUpO1xuICAgICAgZGlydHlUYWcodGFnc1trZXldLCBuZXdDaGlsZFZhbHVlKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBuZXdDaGlsZFZhbHVlID09PSBcIm9iamVjdFwiICYmIG5ld0NoaWxkVmFsdWUgIT09IG51bGwpIHtcbiAgICAgIGRlbGV0ZSB0YWdzW2tleV07XG4gICAgfVxuICB9XG4gIGZvciAoY29uc3Qga2V5IGluIGNoaWxkcmVuKSB7XG4gICAgY29uc3QgY2hpbGROb2RlID0gY2hpbGRyZW5ba2V5XTtcbiAgICBjb25zdCBuZXdDaGlsZFZhbHVlID0gbmV3VmFsdWVba2V5XTtcbiAgICBjb25zdCBjaGlsZFZhbHVlID0gY2hpbGROb2RlLnZhbHVlO1xuICAgIGlmIChjaGlsZFZhbHVlID09PSBuZXdDaGlsZFZhbHVlKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBuZXdDaGlsZFZhbHVlID09PSBcIm9iamVjdFwiICYmIG5ld0NoaWxkVmFsdWUgIT09IG51bGwpIHtcbiAgICAgIHVwZGF0ZU5vZGUoY2hpbGROb2RlLCBuZXdDaGlsZFZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVsZXRlTm9kZShjaGlsZE5vZGUpO1xuICAgICAgZGVsZXRlIGNoaWxkcmVuW2tleV07XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBkZWxldGVOb2RlKG5vZGUpIHtcbiAgaWYgKG5vZGUudGFnKSB7XG4gICAgZGlydHlUYWcobm9kZS50YWcsIG51bGwpO1xuICB9XG4gIGRpcnR5Q29sbGVjdGlvbihub2RlKTtcbiAgZm9yIChjb25zdCBrZXkgaW4gbm9kZS50YWdzKSB7XG4gICAgZGlydHlUYWcobm9kZS50YWdzW2tleV0sIG51bGwpO1xuICB9XG4gIGZvciAoY29uc3Qga2V5IGluIG5vZGUuY2hpbGRyZW4pIHtcbiAgICBkZWxldGVOb2RlKG5vZGUuY2hpbGRyZW5ba2V5XSk7XG4gIH1cbn1cblxuLy8gc3JjL2xydU1lbW9pemUudHNcbmZ1bmN0aW9uIGNyZWF0ZVNpbmdsZXRvbkNhY2hlKGVxdWFscykge1xuICBsZXQgZW50cnk7XG4gIHJldHVybiB7XG4gICAgZ2V0KGtleSkge1xuICAgICAgaWYgKGVudHJ5ICYmIGVxdWFscyhlbnRyeS5rZXksIGtleSkpIHtcbiAgICAgICAgcmV0dXJuIGVudHJ5LnZhbHVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIE5PVF9GT1VORDtcbiAgICB9LFxuICAgIHB1dChrZXksIHZhbHVlKSB7XG4gICAgICBlbnRyeSA9IHsga2V5LCB2YWx1ZSB9O1xuICAgIH0sXG4gICAgZ2V0RW50cmllcygpIHtcbiAgICAgIHJldHVybiBlbnRyeSA/IFtlbnRyeV0gOiBbXTtcbiAgICB9LFxuICAgIGNsZWFyKCkge1xuICAgICAgZW50cnkgPSB2b2lkIDA7XG4gICAgfVxuICB9O1xufVxuZnVuY3Rpb24gY3JlYXRlTHJ1Q2FjaGUobWF4U2l6ZSwgZXF1YWxzKSB7XG4gIGxldCBlbnRyaWVzID0gW107XG4gIGZ1bmN0aW9uIGdldChrZXkpIHtcbiAgICBjb25zdCBjYWNoZUluZGV4ID0gZW50cmllcy5maW5kSW5kZXgoKGVudHJ5KSA9PiBlcXVhbHMoa2V5LCBlbnRyeS5rZXkpKTtcbiAgICBpZiAoY2FjaGVJbmRleCA+IC0xKSB7XG4gICAgICBjb25zdCBlbnRyeSA9IGVudHJpZXNbY2FjaGVJbmRleF07XG4gICAgICBpZiAoY2FjaGVJbmRleCA+IDApIHtcbiAgICAgICAgZW50cmllcy5zcGxpY2UoY2FjaGVJbmRleCwgMSk7XG4gICAgICAgIGVudHJpZXMudW5zaGlmdChlbnRyeSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZW50cnkudmFsdWU7XG4gICAgfVxuICAgIHJldHVybiBOT1RfRk9VTkQ7XG4gIH1cbiAgZnVuY3Rpb24gcHV0KGtleSwgdmFsdWUpIHtcbiAgICBpZiAoZ2V0KGtleSkgPT09IE5PVF9GT1VORCkge1xuICAgICAgZW50cmllcy51bnNoaWZ0KHsga2V5LCB2YWx1ZSB9KTtcbiAgICAgIGlmIChlbnRyaWVzLmxlbmd0aCA+IG1heFNpemUpIHtcbiAgICAgICAgZW50cmllcy5wb3AoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgZnVuY3Rpb24gZ2V0RW50cmllcygpIHtcbiAgICByZXR1cm4gZW50cmllcztcbiAgfVxuICBmdW5jdGlvbiBjbGVhcigpIHtcbiAgICBlbnRyaWVzID0gW107XG4gIH1cbiAgcmV0dXJuIHsgZ2V0LCBwdXQsIGdldEVudHJpZXMsIGNsZWFyIH07XG59XG52YXIgcmVmZXJlbmNlRXF1YWxpdHlDaGVjayA9IChhLCBiKSA9PiBhID09PSBiO1xuZnVuY3Rpb24gY3JlYXRlQ2FjaGVLZXlDb21wYXJhdG9yKGVxdWFsaXR5Q2hlY2spIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGFyZUFyZ3VtZW50c1NoYWxsb3dseUVxdWFsKHByZXYsIG5leHQpIHtcbiAgICBpZiAocHJldiA9PT0gbnVsbCB8fCBuZXh0ID09PSBudWxsIHx8IHByZXYubGVuZ3RoICE9PSBuZXh0Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCB7IGxlbmd0aCB9ID0gcHJldjtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoIWVxdWFsaXR5Q2hlY2socHJldltpXSwgbmV4dFtpXSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfTtcbn1cbmZ1bmN0aW9uIGxydU1lbW9pemUoZnVuYywgZXF1YWxpdHlDaGVja09yT3B0aW9ucykge1xuICBjb25zdCBwcm92aWRlZE9wdGlvbnMgPSB0eXBlb2YgZXF1YWxpdHlDaGVja09yT3B0aW9ucyA9PT0gXCJvYmplY3RcIiA/IGVxdWFsaXR5Q2hlY2tPck9wdGlvbnMgOiB7IGVxdWFsaXR5Q2hlY2s6IGVxdWFsaXR5Q2hlY2tPck9wdGlvbnMgfTtcbiAgY29uc3Qge1xuICAgIGVxdWFsaXR5Q2hlY2sgPSByZWZlcmVuY2VFcXVhbGl0eUNoZWNrLFxuICAgIG1heFNpemUgPSAxLFxuICAgIHJlc3VsdEVxdWFsaXR5Q2hlY2tcbiAgfSA9IHByb3ZpZGVkT3B0aW9ucztcbiAgY29uc3QgY29tcGFyYXRvciA9IGNyZWF0ZUNhY2hlS2V5Q29tcGFyYXRvcihlcXVhbGl0eUNoZWNrKTtcbiAgbGV0IHJlc3VsdHNDb3VudCA9IDA7XG4gIGNvbnN0IGNhY2hlID0gbWF4U2l6ZSA8PSAxID8gY3JlYXRlU2luZ2xldG9uQ2FjaGUoY29tcGFyYXRvcikgOiBjcmVhdGVMcnVDYWNoZShtYXhTaXplLCBjb21wYXJhdG9yKTtcbiAgZnVuY3Rpb24gbWVtb2l6ZWQoKSB7XG4gICAgbGV0IHZhbHVlID0gY2FjaGUuZ2V0KGFyZ3VtZW50cyk7XG4gICAgaWYgKHZhbHVlID09PSBOT1RfRk9VTkQpIHtcbiAgICAgIHZhbHVlID0gZnVuYy5hcHBseShudWxsLCBhcmd1bWVudHMpO1xuICAgICAgcmVzdWx0c0NvdW50Kys7XG4gICAgICBpZiAocmVzdWx0RXF1YWxpdHlDaGVjaykge1xuICAgICAgICBjb25zdCBlbnRyaWVzID0gY2FjaGUuZ2V0RW50cmllcygpO1xuICAgICAgICBjb25zdCBtYXRjaGluZ0VudHJ5ID0gZW50cmllcy5maW5kKFxuICAgICAgICAgIChlbnRyeSkgPT4gcmVzdWx0RXF1YWxpdHlDaGVjayhlbnRyeS52YWx1ZSwgdmFsdWUpXG4gICAgICAgICk7XG4gICAgICAgIGlmIChtYXRjaGluZ0VudHJ5KSB7XG4gICAgICAgICAgdmFsdWUgPSBtYXRjaGluZ0VudHJ5LnZhbHVlO1xuICAgICAgICAgIHJlc3VsdHNDb3VudCAhPT0gMCAmJiByZXN1bHRzQ291bnQtLTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY2FjaGUucHV0KGFyZ3VtZW50cywgdmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgbWVtb2l6ZWQuY2xlYXJDYWNoZSA9ICgpID0+IHtcbiAgICBjYWNoZS5jbGVhcigpO1xuICAgIG1lbW9pemVkLnJlc2V0UmVzdWx0c0NvdW50KCk7XG4gIH07XG4gIG1lbW9pemVkLnJlc3VsdHNDb3VudCA9ICgpID0+IHJlc3VsdHNDb3VudDtcbiAgbWVtb2l6ZWQucmVzZXRSZXN1bHRzQ291bnQgPSAoKSA9PiB7XG4gICAgcmVzdWx0c0NvdW50ID0gMDtcbiAgfTtcbiAgcmV0dXJuIG1lbW9pemVkO1xufVxuXG4vLyBzcmMvYXV0b3RyYWNrTWVtb2l6ZS9hdXRvdHJhY2tNZW1vaXplLnRzXG5mdW5jdGlvbiBhdXRvdHJhY2tNZW1vaXplKGZ1bmMpIHtcbiAgY29uc3Qgbm9kZSA9IGNyZWF0ZU5vZGUoXG4gICAgW11cbiAgKTtcbiAgbGV0IGxhc3RBcmdzID0gbnVsbDtcbiAgY29uc3Qgc2hhbGxvd0VxdWFsID0gY3JlYXRlQ2FjaGVLZXlDb21wYXJhdG9yKHJlZmVyZW5jZUVxdWFsaXR5Q2hlY2spO1xuICBjb25zdCBjYWNoZSA9IGNyZWF0ZUNhY2hlKCgpID0+IHtcbiAgICBjb25zdCByZXMgPSBmdW5jLmFwcGx5KG51bGwsIG5vZGUucHJveHkpO1xuICAgIHJldHVybiByZXM7XG4gIH0pO1xuICBmdW5jdGlvbiBtZW1vaXplZCgpIHtcbiAgICBpZiAoIXNoYWxsb3dFcXVhbChsYXN0QXJncywgYXJndW1lbnRzKSkge1xuICAgICAgdXBkYXRlTm9kZShub2RlLCBhcmd1bWVudHMpO1xuICAgICAgbGFzdEFyZ3MgPSBhcmd1bWVudHM7XG4gICAgfVxuICAgIHJldHVybiBjYWNoZS52YWx1ZTtcbiAgfVxuICBtZW1vaXplZC5jbGVhckNhY2hlID0gKCkgPT4ge1xuICAgIHJldHVybiBjYWNoZS5jbGVhcigpO1xuICB9O1xuICByZXR1cm4gbWVtb2l6ZWQ7XG59XG5cbi8vIHNyYy93ZWFrTWFwTWVtb2l6ZS50c1xudmFyIFN0cm9uZ1JlZiA9IGNsYXNzIHtcbiAgY29uc3RydWN0b3IodmFsdWUpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cbiAgZGVyZWYoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gIH1cbn07XG52YXIgUmVmID0gdHlwZW9mIFdlYWtSZWYgIT09IFwidW5kZWZpbmVkXCIgPyBXZWFrUmVmIDogU3Ryb25nUmVmO1xudmFyIFVOVEVSTUlOQVRFRCA9IDA7XG52YXIgVEVSTUlOQVRFRCA9IDE7XG5mdW5jdGlvbiBjcmVhdGVDYWNoZU5vZGUoKSB7XG4gIHJldHVybiB7XG4gICAgczogVU5URVJNSU5BVEVELFxuICAgIHY6IHZvaWQgMCxcbiAgICBvOiBudWxsLFxuICAgIHA6IG51bGxcbiAgfTtcbn1cbmZ1bmN0aW9uIHdlYWtNYXBNZW1vaXplKGZ1bmMsIG9wdGlvbnMgPSB7fSkge1xuICBsZXQgZm5Ob2RlID0gY3JlYXRlQ2FjaGVOb2RlKCk7XG4gIGNvbnN0IHsgcmVzdWx0RXF1YWxpdHlDaGVjayB9ID0gb3B0aW9ucztcbiAgbGV0IGxhc3RSZXN1bHQ7XG4gIGxldCByZXN1bHRzQ291bnQgPSAwO1xuICBmdW5jdGlvbiBtZW1vaXplZCgpIHtcbiAgICBsZXQgY2FjaGVOb2RlID0gZm5Ob2RlO1xuICAgIGNvbnN0IHsgbGVuZ3RoIH0gPSBhcmd1bWVudHM7XG4gICAgZm9yIChsZXQgaSA9IDAsIGwgPSBsZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgIGNvbnN0IGFyZyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgIGlmICh0eXBlb2YgYXJnID09PSBcImZ1bmN0aW9uXCIgfHwgdHlwZW9mIGFyZyA9PT0gXCJvYmplY3RcIiAmJiBhcmcgIT09IG51bGwpIHtcbiAgICAgICAgbGV0IG9iamVjdENhY2hlID0gY2FjaGVOb2RlLm87XG4gICAgICAgIGlmIChvYmplY3RDYWNoZSA9PT0gbnVsbCkge1xuICAgICAgICAgIGNhY2hlTm9kZS5vID0gb2JqZWN0Q2FjaGUgPSAvKiBAX19QVVJFX18gKi8gbmV3IFdlYWtNYXAoKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvYmplY3ROb2RlID0gb2JqZWN0Q2FjaGUuZ2V0KGFyZyk7XG4gICAgICAgIGlmIChvYmplY3ROb2RlID09PSB2b2lkIDApIHtcbiAgICAgICAgICBjYWNoZU5vZGUgPSBjcmVhdGVDYWNoZU5vZGUoKTtcbiAgICAgICAgICBvYmplY3RDYWNoZS5zZXQoYXJnLCBjYWNoZU5vZGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNhY2hlTm9kZSA9IG9iamVjdE5vZGU7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCBwcmltaXRpdmVDYWNoZSA9IGNhY2hlTm9kZS5wO1xuICAgICAgICBpZiAocHJpbWl0aXZlQ2FjaGUgPT09IG51bGwpIHtcbiAgICAgICAgICBjYWNoZU5vZGUucCA9IHByaW1pdGl2ZUNhY2hlID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwcmltaXRpdmVOb2RlID0gcHJpbWl0aXZlQ2FjaGUuZ2V0KGFyZyk7XG4gICAgICAgIGlmIChwcmltaXRpdmVOb2RlID09PSB2b2lkIDApIHtcbiAgICAgICAgICBjYWNoZU5vZGUgPSBjcmVhdGVDYWNoZU5vZGUoKTtcbiAgICAgICAgICBwcmltaXRpdmVDYWNoZS5zZXQoYXJnLCBjYWNoZU5vZGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNhY2hlTm9kZSA9IHByaW1pdGl2ZU5vZGU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgdGVybWluYXRlZE5vZGUgPSBjYWNoZU5vZGU7XG4gICAgbGV0IHJlc3VsdDtcbiAgICBpZiAoY2FjaGVOb2RlLnMgPT09IFRFUk1JTkFURUQpIHtcbiAgICAgIHJlc3VsdCA9IGNhY2hlTm9kZS52O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHQgPSBmdW5jLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7XG4gICAgICByZXN1bHRzQ291bnQrKztcbiAgICAgIGlmIChyZXN1bHRFcXVhbGl0eUNoZWNrKSB7XG4gICAgICAgIGNvbnN0IGxhc3RSZXN1bHRWYWx1ZSA9IGxhc3RSZXN1bHQ/LmRlcmVmPy4oKSA/PyBsYXN0UmVzdWx0O1xuICAgICAgICBpZiAobGFzdFJlc3VsdFZhbHVlICE9IG51bGwgJiYgcmVzdWx0RXF1YWxpdHlDaGVjayhsYXN0UmVzdWx0VmFsdWUsIHJlc3VsdCkpIHtcbiAgICAgICAgICByZXN1bHQgPSBsYXN0UmVzdWx0VmFsdWU7XG4gICAgICAgICAgcmVzdWx0c0NvdW50ICE9PSAwICYmIHJlc3VsdHNDb3VudC0tO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5lZWRzV2Vha1JlZiA9IHR5cGVvZiByZXN1bHQgPT09IFwib2JqZWN0XCIgJiYgcmVzdWx0ICE9PSBudWxsIHx8IHR5cGVvZiByZXN1bHQgPT09IFwiZnVuY3Rpb25cIjtcbiAgICAgICAgbGFzdFJlc3VsdCA9IG5lZWRzV2Vha1JlZiA/IG5ldyBSZWYocmVzdWx0KSA6IHJlc3VsdDtcbiAgICAgIH1cbiAgICB9XG4gICAgdGVybWluYXRlZE5vZGUucyA9IFRFUk1JTkFURUQ7XG4gICAgdGVybWluYXRlZE5vZGUudiA9IHJlc3VsdDtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIG1lbW9pemVkLmNsZWFyQ2FjaGUgPSAoKSA9PiB7XG4gICAgZm5Ob2RlID0gY3JlYXRlQ2FjaGVOb2RlKCk7XG4gICAgbWVtb2l6ZWQucmVzZXRSZXN1bHRzQ291bnQoKTtcbiAgfTtcbiAgbWVtb2l6ZWQucmVzdWx0c0NvdW50ID0gKCkgPT4gcmVzdWx0c0NvdW50O1xuICBtZW1vaXplZC5yZXNldFJlc3VsdHNDb3VudCA9ICgpID0+IHtcbiAgICByZXN1bHRzQ291bnQgPSAwO1xuICB9O1xuICByZXR1cm4gbWVtb2l6ZWQ7XG59XG5cbi8vIHNyYy9jcmVhdGVTZWxlY3RvckNyZWF0b3IudHNcbmZ1bmN0aW9uIGNyZWF0ZVNlbGVjdG9yQ3JlYXRvcihtZW1vaXplT3JPcHRpb25zLCAuLi5tZW1vaXplT3B0aW9uc0Zyb21BcmdzKSB7XG4gIGNvbnN0IGNyZWF0ZVNlbGVjdG9yQ3JlYXRvck9wdGlvbnMgPSB0eXBlb2YgbWVtb2l6ZU9yT3B0aW9ucyA9PT0gXCJmdW5jdGlvblwiID8ge1xuICAgIG1lbW9pemU6IG1lbW9pemVPck9wdGlvbnMsXG4gICAgbWVtb2l6ZU9wdGlvbnM6IG1lbW9pemVPcHRpb25zRnJvbUFyZ3NcbiAgfSA6IG1lbW9pemVPck9wdGlvbnM7XG4gIGNvbnN0IGNyZWF0ZVNlbGVjdG9yMiA9ICguLi5jcmVhdGVTZWxlY3RvckFyZ3MpID0+IHtcbiAgICBsZXQgcmVjb21wdXRhdGlvbnMgPSAwO1xuICAgIGxldCBkZXBlbmRlbmN5UmVjb21wdXRhdGlvbnMgPSAwO1xuICAgIGxldCBsYXN0UmVzdWx0O1xuICAgIGxldCBkaXJlY3RseVBhc3NlZE9wdGlvbnMgPSB7fTtcbiAgICBsZXQgcmVzdWx0RnVuYyA9IGNyZWF0ZVNlbGVjdG9yQXJncy5wb3AoKTtcbiAgICBpZiAodHlwZW9mIHJlc3VsdEZ1bmMgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgIGRpcmVjdGx5UGFzc2VkT3B0aW9ucyA9IHJlc3VsdEZ1bmM7XG4gICAgICByZXN1bHRGdW5jID0gY3JlYXRlU2VsZWN0b3JBcmdzLnBvcCgpO1xuICAgIH1cbiAgICBhc3NlcnRJc0Z1bmN0aW9uKFxuICAgICAgcmVzdWx0RnVuYyxcbiAgICAgIGBjcmVhdGVTZWxlY3RvciBleHBlY3RzIGFuIG91dHB1dCBmdW5jdGlvbiBhZnRlciB0aGUgaW5wdXRzLCBidXQgcmVjZWl2ZWQ6IFske3R5cGVvZiByZXN1bHRGdW5jfV1gXG4gICAgKTtcbiAgICBjb25zdCBjb21iaW5lZE9wdGlvbnMgPSB7XG4gICAgICAuLi5jcmVhdGVTZWxlY3RvckNyZWF0b3JPcHRpb25zLFxuICAgICAgLi4uZGlyZWN0bHlQYXNzZWRPcHRpb25zXG4gICAgfTtcbiAgICBjb25zdCB7XG4gICAgICBtZW1vaXplLFxuICAgICAgbWVtb2l6ZU9wdGlvbnMgPSBbXSxcbiAgICAgIGFyZ3NNZW1vaXplID0gd2Vha01hcE1lbW9pemUsXG4gICAgICBhcmdzTWVtb2l6ZU9wdGlvbnMgPSBbXSxcbiAgICAgIGRldk1vZGVDaGVja3MgPSB7fVxuICAgIH0gPSBjb21iaW5lZE9wdGlvbnM7XG4gICAgY29uc3QgZmluYWxNZW1vaXplT3B0aW9ucyA9IGVuc3VyZUlzQXJyYXkobWVtb2l6ZU9wdGlvbnMpO1xuICAgIGNvbnN0IGZpbmFsQXJnc01lbW9pemVPcHRpb25zID0gZW5zdXJlSXNBcnJheShhcmdzTWVtb2l6ZU9wdGlvbnMpO1xuICAgIGNvbnN0IGRlcGVuZGVuY2llcyA9IGdldERlcGVuZGVuY2llcyhjcmVhdGVTZWxlY3RvckFyZ3MpO1xuICAgIGNvbnN0IG1lbW9pemVkUmVzdWx0RnVuYyA9IG1lbW9pemUoZnVuY3Rpb24gcmVjb21wdXRhdGlvbldyYXBwZXIoKSB7XG4gICAgICByZWNvbXB1dGF0aW9ucysrO1xuICAgICAgcmV0dXJuIHJlc3VsdEZ1bmMuYXBwbHkoXG4gICAgICAgIG51bGwsXG4gICAgICAgIGFyZ3VtZW50c1xuICAgICAgKTtcbiAgICB9LCAuLi5maW5hbE1lbW9pemVPcHRpb25zKTtcbiAgICBsZXQgZmlyc3RSdW4gPSB0cnVlO1xuICAgIGNvbnN0IHNlbGVjdG9yID0gYXJnc01lbW9pemUoZnVuY3Rpb24gZGVwZW5kZW5jaWVzQ2hlY2tlcigpIHtcbiAgICAgIGRlcGVuZGVuY3lSZWNvbXB1dGF0aW9ucysrO1xuICAgICAgY29uc3QgaW5wdXRTZWxlY3RvclJlc3VsdHMgPSBjb2xsZWN0SW5wdXRTZWxlY3RvclJlc3VsdHMoXG4gICAgICAgIGRlcGVuZGVuY2llcyxcbiAgICAgICAgYXJndW1lbnRzXG4gICAgICApO1xuICAgICAgbGFzdFJlc3VsdCA9IG1lbW9pemVkUmVzdWx0RnVuYy5hcHBseShudWxsLCBpbnB1dFNlbGVjdG9yUmVzdWx0cyk7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgIGNvbnN0IHsgaWRlbnRpdHlGdW5jdGlvbkNoZWNrLCBpbnB1dFN0YWJpbGl0eUNoZWNrIH0gPSBnZXREZXZNb2RlQ2hlY2tzRXhlY3V0aW9uSW5mbyhmaXJzdFJ1biwgZGV2TW9kZUNoZWNrcyk7XG4gICAgICAgIGlmIChpZGVudGl0eUZ1bmN0aW9uQ2hlY2suc2hvdWxkUnVuKSB7XG4gICAgICAgICAgaWRlbnRpdHlGdW5jdGlvbkNoZWNrLnJ1bihcbiAgICAgICAgICAgIHJlc3VsdEZ1bmMsXG4gICAgICAgICAgICBpbnB1dFNlbGVjdG9yUmVzdWx0cyxcbiAgICAgICAgICAgIGxhc3RSZXN1bHRcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbnB1dFN0YWJpbGl0eUNoZWNrLnNob3VsZFJ1bikge1xuICAgICAgICAgIGNvbnN0IGlucHV0U2VsZWN0b3JSZXN1bHRzQ29weSA9IGNvbGxlY3RJbnB1dFNlbGVjdG9yUmVzdWx0cyhcbiAgICAgICAgICAgIGRlcGVuZGVuY2llcyxcbiAgICAgICAgICAgIGFyZ3VtZW50c1xuICAgICAgICAgICk7XG4gICAgICAgICAgaW5wdXRTdGFiaWxpdHlDaGVjay5ydW4oXG4gICAgICAgICAgICB7IGlucHV0U2VsZWN0b3JSZXN1bHRzLCBpbnB1dFNlbGVjdG9yUmVzdWx0c0NvcHkgfSxcbiAgICAgICAgICAgIHsgbWVtb2l6ZSwgbWVtb2l6ZU9wdGlvbnM6IGZpbmFsTWVtb2l6ZU9wdGlvbnMgfSxcbiAgICAgICAgICAgIGFyZ3VtZW50c1xuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZpcnN0UnVuKVxuICAgICAgICAgIGZpcnN0UnVuID0gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gbGFzdFJlc3VsdDtcbiAgICB9LCAuLi5maW5hbEFyZ3NNZW1vaXplT3B0aW9ucyk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oc2VsZWN0b3IsIHtcbiAgICAgIHJlc3VsdEZ1bmMsXG4gICAgICBtZW1vaXplZFJlc3VsdEZ1bmMsXG4gICAgICBkZXBlbmRlbmNpZXMsXG4gICAgICBkZXBlbmRlbmN5UmVjb21wdXRhdGlvbnM6ICgpID0+IGRlcGVuZGVuY3lSZWNvbXB1dGF0aW9ucyxcbiAgICAgIHJlc2V0RGVwZW5kZW5jeVJlY29tcHV0YXRpb25zOiAoKSA9PiB7XG4gICAgICAgIGRlcGVuZGVuY3lSZWNvbXB1dGF0aW9ucyA9IDA7XG4gICAgICB9LFxuICAgICAgbGFzdFJlc3VsdDogKCkgPT4gbGFzdFJlc3VsdCxcbiAgICAgIHJlY29tcHV0YXRpb25zOiAoKSA9PiByZWNvbXB1dGF0aW9ucyxcbiAgICAgIHJlc2V0UmVjb21wdXRhdGlvbnM6ICgpID0+IHtcbiAgICAgICAgcmVjb21wdXRhdGlvbnMgPSAwO1xuICAgICAgfSxcbiAgICAgIG1lbW9pemUsXG4gICAgICBhcmdzTWVtb2l6ZVxuICAgIH0pO1xuICB9O1xuICBPYmplY3QuYXNzaWduKGNyZWF0ZVNlbGVjdG9yMiwge1xuICAgIHdpdGhUeXBlczogKCkgPT4gY3JlYXRlU2VsZWN0b3IyXG4gIH0pO1xuICByZXR1cm4gY3JlYXRlU2VsZWN0b3IyO1xufVxudmFyIGNyZWF0ZVNlbGVjdG9yID0gLyogQF9fUFVSRV9fICovIGNyZWF0ZVNlbGVjdG9yQ3JlYXRvcih3ZWFrTWFwTWVtb2l6ZSk7XG5cbi8vIHNyYy9jcmVhdGVTdHJ1Y3R1cmVkU2VsZWN0b3IudHNcbnZhciBjcmVhdGVTdHJ1Y3R1cmVkU2VsZWN0b3IgPSBPYmplY3QuYXNzaWduKFxuICAoaW5wdXRTZWxlY3RvcnNPYmplY3QsIHNlbGVjdG9yQ3JlYXRvciA9IGNyZWF0ZVNlbGVjdG9yKSA9PiB7XG4gICAgYXNzZXJ0SXNPYmplY3QoXG4gICAgICBpbnB1dFNlbGVjdG9yc09iamVjdCxcbiAgICAgIGBjcmVhdGVTdHJ1Y3R1cmVkU2VsZWN0b3IgZXhwZWN0cyBmaXJzdCBhcmd1bWVudCB0byBiZSBhbiBvYmplY3Qgd2hlcmUgZWFjaCBwcm9wZXJ0eSBpcyBhIHNlbGVjdG9yLCBpbnN0ZWFkIHJlY2VpdmVkIGEgJHt0eXBlb2YgaW5wdXRTZWxlY3RvcnNPYmplY3R9YFxuICAgICk7XG4gICAgY29uc3QgaW5wdXRTZWxlY3RvcktleXMgPSBPYmplY3Qua2V5cyhpbnB1dFNlbGVjdG9yc09iamVjdCk7XG4gICAgY29uc3QgZGVwZW5kZW5jaWVzID0gaW5wdXRTZWxlY3RvcktleXMubWFwKFxuICAgICAgKGtleSkgPT4gaW5wdXRTZWxlY3RvcnNPYmplY3Rba2V5XVxuICAgICk7XG4gICAgY29uc3Qgc3RydWN0dXJlZFNlbGVjdG9yID0gc2VsZWN0b3JDcmVhdG9yKFxuICAgICAgZGVwZW5kZW5jaWVzLFxuICAgICAgKC4uLmlucHV0U2VsZWN0b3JSZXN1bHRzKSA9PiB7XG4gICAgICAgIHJldHVybiBpbnB1dFNlbGVjdG9yUmVzdWx0cy5yZWR1Y2UoKGNvbXBvc2l0aW9uLCB2YWx1ZSwgaW5kZXgpID0+IHtcbiAgICAgICAgICBjb21wb3NpdGlvbltpbnB1dFNlbGVjdG9yS2V5c1tpbmRleF1dID0gdmFsdWU7XG4gICAgICAgICAgcmV0dXJuIGNvbXBvc2l0aW9uO1xuICAgICAgICB9LCB7fSk7XG4gICAgICB9XG4gICAgKTtcbiAgICByZXR1cm4gc3RydWN0dXJlZFNlbGVjdG9yO1xuICB9LFxuICB7IHdpdGhUeXBlczogKCkgPT4gY3JlYXRlU3RydWN0dXJlZFNlbGVjdG9yIH1cbik7XG4vLyBBbm5vdGF0ZSB0aGUgQ29tbW9uSlMgZXhwb3J0IG5hbWVzIGZvciBFU00gaW1wb3J0IGluIG5vZGU6XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgY3JlYXRlU2VsZWN0b3IsXG4gIGNyZWF0ZVNlbGVjdG9yQ3JlYXRvcixcbiAgY3JlYXRlU3RydWN0dXJlZFNlbGVjdG9yLFxuICBscnVNZW1vaXplLFxuICByZWZlcmVuY2VFcXVhbGl0eUNoZWNrLFxuICBzZXRHbG9iYWxEZXZNb2RlQ2hlY2tzLFxuICB1bnN0YWJsZV9hdXRvdHJhY2tNZW1vaXplLFxuICB3ZWFrTWFwTWVtb2l6ZVxufSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZXNlbGVjdC5janMubWFwIiwiXCJ1c2Ugc3RyaWN0XCI7XG4vLyBicm93c2VyIHNoaW0gZm9yIHhtbGh0dHByZXF1ZXN0IG1vZHVsZVxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5jcmVhdGVDb29raWVKYXIgPSBleHBvcnRzLlhIUiA9IHZvaWQgMDtcbmNvbnN0IGhhc19jb3JzX2pzXzEgPSByZXF1aXJlKFwiLi4vY29udHJpYi9oYXMtY29ycy5qc1wiKTtcbmNvbnN0IGdsb2JhbFRoaXNfanNfMSA9IHJlcXVpcmUoXCIuLi9nbG9iYWxUaGlzLmpzXCIpO1xuZnVuY3Rpb24gWEhSKG9wdHMpIHtcbiAgICBjb25zdCB4ZG9tYWluID0gb3B0cy54ZG9tYWluO1xuICAgIC8vIFhNTEh0dHBSZXF1ZXN0IGNhbiBiZSBkaXNhYmxlZCBvbiBJRVxuICAgIHRyeSB7XG4gICAgICAgIGlmIChcInVuZGVmaW5lZFwiICE9PSB0eXBlb2YgWE1MSHR0cFJlcXVlc3QgJiYgKCF4ZG9tYWluIHx8IGhhc19jb3JzX2pzXzEuaGFzQ09SUykpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjYXRjaCAoZSkgeyB9XG4gICAgaWYgKCF4ZG9tYWluKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IGdsb2JhbFRoaXNfanNfMS5nbG9iYWxUaGlzU2hpbVtbXCJBY3RpdmVcIl0uY29uY2F0KFwiT2JqZWN0XCIpLmpvaW4oXCJYXCIpXShcIk1pY3Jvc29mdC5YTUxIVFRQXCIpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7IH1cbiAgICB9XG59XG5leHBvcnRzLlhIUiA9IFhIUjtcbmZ1bmN0aW9uIGNyZWF0ZUNvb2tpZUphcigpIHsgfVxuZXhwb3J0cy5jcmVhdGVDb29raWVKYXIgPSBjcmVhdGVDb29raWVKYXI7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmNvbnN0IG1vZGVsc18xID0gcmVxdWlyZShcIkBjb21tb24vbW9kZWxzXCIpO1xuY2xhc3MgQXBpU3RhdGUge1xuICAgIGNvbnN0cnVjdG9yKHJlZHV4U3RhdGUgPSB7fSkge1xuICAgICAgICB0aGlzLmJvb3RPcHRpb24gPSByZWR1eFN0YXRlLmJvb3RPcHRpb24gfHwgbW9kZWxzXzEuaW5pdHMuYm9vdE9wdGlvbjtcbiAgICAgICAgdGhpcy50dW5lQ2ggPSByZWR1eFN0YXRlLnR1bmVDaCB8fCBtb2RlbHNfMS5pbml0cy5jaDtcbiAgICAgICAgdGhpcy5yYW5rID0gcmVkdXhTdGF0ZS5yYW5rIHx8IFtdO1xuICAgICAgICB0aGlzLnJhbmtBbGwgPSByZWR1eFN0YXRlLnJhbmtBbGwgfHwgW107XG4gICAgICAgIHRoaXMucG9zdHMgPSByZWR1eFN0YXRlLnBvc3RzIHx8IFtdO1xuICAgICAgICB0aGlzLnBvc3RzVGltZWxpbmUgPSByZWR1eFN0YXRlLnBvc3RzVGltZWxpbmUgfHwgW107XG4gICAgICAgIHRoaXMucG9zdHNUaW1lbGluZVN0b2NrID0gcmVkdXhTdGF0ZS5wb3N0c1RpbWVsaW5lU3RvY2sgfHwgW107XG4gICAgICAgIHRoaXMuY2hEZXRhaWwgPSByZWR1eFN0YXRlLmNoRGV0YWlsIHx8IG1vZGVsc18xLmluaXRzLmNoRGV0YWlsO1xuICAgICAgICB0aGlzLmxvZ3MgPSBbXTtcbiAgICB9XG59XG5leHBvcnRzLmRlZmF1bHQgPSBBcGlTdGF0ZTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuY29uc3QgbWlkZGxld2FyZSA9IChzdG9yZSkgPT4gKG5leHQpID0+IChhY3Rpb24pID0+IHtcbiAgICBpZiAoaXNBY3Rpb24oYWN0aW9uKSkge1xuICAgICAgICBjb25zdCBzdGF0ZSA9IHN0b3JlLmdldFN0YXRlKCk7XG4gICAgICAgIGlmIChmdW5jdGlvbnNbYWN0aW9uLnR5cGVdKSB7XG4gICAgICAgICAgICBhY3Rpb24gPSBmdW5jdGlvbnNbYWN0aW9uLnR5cGVdKHN0YXRlLCBhY3Rpb24pO1xuICAgICAgICB9XG4gICAgICAgIG5leHQoYWN0aW9uKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHJldHVybiBuZXh0KGFjdGlvbik7XG4gICAgfVxufTtcbmNvbnN0IGlzQWN0aW9uID0gKGFjdGlvbikgPT4ge1xuICAgIHJldHVybiB0eXBlb2YgYWN0aW9uID09PSAnb2JqZWN0JyAmJiBhY3Rpb24gIT09IG51bGwgJiYgJ3R5cGUnIGluIGFjdGlvbjtcbn07XG5jb25zdCBmdW5jdGlvbnMgPSB7XG4vLyAnQUNUSU9OX1RZUEUnOiAoc3RhdGUsIGFjdGlvbikgPT4geyAvKiAuLi4gKi8gfSxcbn07XG5leHBvcnRzLmRlZmF1bHQgPSBtaWRkbGV3YXJlO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19jcmVhdGVCaW5kaW5nID0gKHRoaXMgJiYgdGhpcy5fX2NyZWF0ZUJpbmRpbmcpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfSk7XG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgb1trMl0gPSBtW2tdO1xufSkpO1xudmFyIF9fc2V0TW9kdWxlRGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19zZXRNb2R1bGVEZWZhdWx0KSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCB2KSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIFwiZGVmYXVsdFwiLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2IH0pO1xufSkgOiBmdW5jdGlvbihvLCB2KSB7XG4gICAgb1tcImRlZmF1bHRcIl0gPSB2O1xufSk7XG52YXIgX19pbXBvcnRTdGFyID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydFN0YXIpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSByZXR1cm4gbW9kO1xuICAgIHZhciByZXN1bHQgPSB7fTtcbiAgICBpZiAobW9kICE9IG51bGwpIGZvciAodmFyIGsgaW4gbW9kKSBpZiAoayAhPT0gXCJkZWZhdWx0XCIgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG1vZCwgaykpIF9fY3JlYXRlQmluZGluZyhyZXN1bHQsIG1vZCwgayk7XG4gICAgX19zZXRNb2R1bGVEZWZhdWx0KHJlc3VsdCwgbW9kKTtcbiAgICByZXR1cm4gcmVzdWx0O1xufTtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuTWFuYWdlciA9IHZvaWQgMDtcbmNvbnN0IGVuZ2luZV9pb19jbGllbnRfMSA9IHJlcXVpcmUoXCJlbmdpbmUuaW8tY2xpZW50XCIpO1xuY29uc3Qgc29ja2V0X2pzXzEgPSByZXF1aXJlKFwiLi9zb2NrZXQuanNcIik7XG5jb25zdCBwYXJzZXIgPSBfX2ltcG9ydFN0YXIocmVxdWlyZShcInNvY2tldC5pby1wYXJzZXJcIikpO1xuY29uc3Qgb25fanNfMSA9IHJlcXVpcmUoXCIuL29uLmpzXCIpO1xuY29uc3QgYmFja28yX2pzXzEgPSByZXF1aXJlKFwiLi9jb250cmliL2JhY2tvMi5qc1wiKTtcbmNvbnN0IGNvbXBvbmVudF9lbWl0dGVyXzEgPSByZXF1aXJlKFwiQHNvY2tldC5pby9jb21wb25lbnQtZW1pdHRlclwiKTtcbmNvbnN0IGRlYnVnXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcImRlYnVnXCIpKTsgLy8gZGVidWcoKVxuY29uc3QgZGVidWcgPSBkZWJ1Z18xLmRlZmF1bHQoXCJzb2NrZXQuaW8tY2xpZW50Om1hbmFnZXJcIik7IC8vIGRlYnVnKClcbmNsYXNzIE1hbmFnZXIgZXh0ZW5kcyBjb21wb25lbnRfZW1pdHRlcl8xLkVtaXR0ZXIge1xuICAgIGNvbnN0cnVjdG9yKHVyaSwgb3B0cykge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMubnNwcyA9IHt9O1xuICAgICAgICB0aGlzLnN1YnMgPSBbXTtcbiAgICAgICAgaWYgKHVyaSAmJiBcIm9iamVjdFwiID09PSB0eXBlb2YgdXJpKSB7XG4gICAgICAgICAgICBvcHRzID0gdXJpO1xuICAgICAgICAgICAgdXJpID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIG9wdHMgPSBvcHRzIHx8IHt9O1xuICAgICAgICBvcHRzLnBhdGggPSBvcHRzLnBhdGggfHwgXCIvc29ja2V0LmlvXCI7XG4gICAgICAgIHRoaXMub3B0cyA9IG9wdHM7XG4gICAgICAgIGVuZ2luZV9pb19jbGllbnRfMS5pbnN0YWxsVGltZXJGdW5jdGlvbnModGhpcywgb3B0cyk7XG4gICAgICAgIHRoaXMucmVjb25uZWN0aW9uKG9wdHMucmVjb25uZWN0aW9uICE9PSBmYWxzZSk7XG4gICAgICAgIHRoaXMucmVjb25uZWN0aW9uQXR0ZW1wdHMob3B0cy5yZWNvbm5lY3Rpb25BdHRlbXB0cyB8fCBJbmZpbml0eSk7XG4gICAgICAgIHRoaXMucmVjb25uZWN0aW9uRGVsYXkob3B0cy5yZWNvbm5lY3Rpb25EZWxheSB8fCAxMDAwKTtcbiAgICAgICAgdGhpcy5yZWNvbm5lY3Rpb25EZWxheU1heChvcHRzLnJlY29ubmVjdGlvbkRlbGF5TWF4IHx8IDUwMDApO1xuICAgICAgICB0aGlzLnJhbmRvbWl6YXRpb25GYWN0b3IoKF9hID0gb3B0cy5yYW5kb21pemF0aW9uRmFjdG9yKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAwLjUpO1xuICAgICAgICB0aGlzLmJhY2tvZmYgPSBuZXcgYmFja28yX2pzXzEuQmFja29mZih7XG4gICAgICAgICAgICBtaW46IHRoaXMucmVjb25uZWN0aW9uRGVsYXkoKSxcbiAgICAgICAgICAgIG1heDogdGhpcy5yZWNvbm5lY3Rpb25EZWxheU1heCgpLFxuICAgICAgICAgICAgaml0dGVyOiB0aGlzLnJhbmRvbWl6YXRpb25GYWN0b3IoKSxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMudGltZW91dChudWxsID09IG9wdHMudGltZW91dCA/IDIwMDAwIDogb3B0cy50aW1lb3V0KTtcbiAgICAgICAgdGhpcy5fcmVhZHlTdGF0ZSA9IFwiY2xvc2VkXCI7XG4gICAgICAgIHRoaXMudXJpID0gdXJpO1xuICAgICAgICBjb25zdCBfcGFyc2VyID0gb3B0cy5wYXJzZXIgfHwgcGFyc2VyO1xuICAgICAgICB0aGlzLmVuY29kZXIgPSBuZXcgX3BhcnNlci5FbmNvZGVyKCk7XG4gICAgICAgIHRoaXMuZGVjb2RlciA9IG5ldyBfcGFyc2VyLkRlY29kZXIoKTtcbiAgICAgICAgdGhpcy5fYXV0b0Nvbm5lY3QgPSBvcHRzLmF1dG9Db25uZWN0ICE9PSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuX2F1dG9Db25uZWN0KVxuICAgICAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgfVxuICAgIHJlY29ubmVjdGlvbih2KSB7XG4gICAgICAgIGlmICghYXJndW1lbnRzLmxlbmd0aClcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9yZWNvbm5lY3Rpb247XG4gICAgICAgIHRoaXMuX3JlY29ubmVjdGlvbiA9ICEhdjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIHJlY29ubmVjdGlvbkF0dGVtcHRzKHYpIHtcbiAgICAgICAgaWYgKHYgPT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9yZWNvbm5lY3Rpb25BdHRlbXB0cztcbiAgICAgICAgdGhpcy5fcmVjb25uZWN0aW9uQXR0ZW1wdHMgPSB2O1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgcmVjb25uZWN0aW9uRGVsYXkodikge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICh2ID09PSB1bmRlZmluZWQpXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fcmVjb25uZWN0aW9uRGVsYXk7XG4gICAgICAgIHRoaXMuX3JlY29ubmVjdGlvbkRlbGF5ID0gdjtcbiAgICAgICAgKF9hID0gdGhpcy5iYWNrb2ZmKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Euc2V0TWluKHYpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgcmFuZG9taXphdGlvbkZhY3Rvcih2KSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKHYgPT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9yYW5kb21pemF0aW9uRmFjdG9yO1xuICAgICAgICB0aGlzLl9yYW5kb21pemF0aW9uRmFjdG9yID0gdjtcbiAgICAgICAgKF9hID0gdGhpcy5iYWNrb2ZmKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Euc2V0Sml0dGVyKHYpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgcmVjb25uZWN0aW9uRGVsYXlNYXgodikge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICh2ID09PSB1bmRlZmluZWQpXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fcmVjb25uZWN0aW9uRGVsYXlNYXg7XG4gICAgICAgIHRoaXMuX3JlY29ubmVjdGlvbkRlbGF5TWF4ID0gdjtcbiAgICAgICAgKF9hID0gdGhpcy5iYWNrb2ZmKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Euc2V0TWF4KHYpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgdGltZW91dCh2KSB7XG4gICAgICAgIGlmICghYXJndW1lbnRzLmxlbmd0aClcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl90aW1lb3V0O1xuICAgICAgICB0aGlzLl90aW1lb3V0ID0gdjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFN0YXJ0cyB0cnlpbmcgdG8gcmVjb25uZWN0IGlmIHJlY29ubmVjdGlvbiBpcyBlbmFibGVkIGFuZCB3ZSBoYXZlIG5vdFxuICAgICAqIHN0YXJ0ZWQgcmVjb25uZWN0aW5nIHlldFxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBtYXliZVJlY29ubmVjdE9uT3BlbigpIHtcbiAgICAgICAgLy8gT25seSB0cnkgdG8gcmVjb25uZWN0IGlmIGl0J3MgdGhlIGZpcnN0IHRpbWUgd2UncmUgY29ubmVjdGluZ1xuICAgICAgICBpZiAoIXRoaXMuX3JlY29ubmVjdGluZyAmJlxuICAgICAgICAgICAgdGhpcy5fcmVjb25uZWN0aW9uICYmXG4gICAgICAgICAgICB0aGlzLmJhY2tvZmYuYXR0ZW1wdHMgPT09IDApIHtcbiAgICAgICAgICAgIC8vIGtlZXBzIHJlY29ubmVjdGlvbiBmcm9tIGZpcmluZyB0d2ljZSBmb3IgdGhlIHNhbWUgcmVjb25uZWN0aW9uIGxvb3BcbiAgICAgICAgICAgIHRoaXMucmVjb25uZWN0KCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgY3VycmVudCB0cmFuc3BvcnQgYHNvY2tldGAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmbiAtIG9wdGlvbmFsLCBjYWxsYmFja1xuICAgICAqIEByZXR1cm4gc2VsZlxuICAgICAqIEBwdWJsaWNcbiAgICAgKi9cbiAgICBvcGVuKGZuKSB7XG4gICAgICAgIGRlYnVnKFwicmVhZHlTdGF0ZSAlc1wiLCB0aGlzLl9yZWFkeVN0YXRlKTtcbiAgICAgICAgaWYgKH50aGlzLl9yZWFkeVN0YXRlLmluZGV4T2YoXCJvcGVuXCIpKVxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIGRlYnVnKFwib3BlbmluZyAlc1wiLCB0aGlzLnVyaSk7XG4gICAgICAgIHRoaXMuZW5naW5lID0gbmV3IGVuZ2luZV9pb19jbGllbnRfMS5Tb2NrZXQodGhpcy51cmksIHRoaXMub3B0cyk7XG4gICAgICAgIGNvbnN0IHNvY2tldCA9IHRoaXMuZW5naW5lO1xuICAgICAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICAgICAgdGhpcy5fcmVhZHlTdGF0ZSA9IFwib3BlbmluZ1wiO1xuICAgICAgICB0aGlzLnNraXBSZWNvbm5lY3QgPSBmYWxzZTtcbiAgICAgICAgLy8gZW1pdCBgb3BlbmBcbiAgICAgICAgY29uc3Qgb3BlblN1YkRlc3Ryb3kgPSBvbl9qc18xLm9uKHNvY2tldCwgXCJvcGVuXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHNlbGYub25vcGVuKCk7XG4gICAgICAgICAgICBmbiAmJiBmbigpO1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3Qgb25FcnJvciA9IChlcnIpID0+IHtcbiAgICAgICAgICAgIGRlYnVnKFwiZXJyb3JcIik7XG4gICAgICAgICAgICB0aGlzLmNsZWFudXAoKTtcbiAgICAgICAgICAgIHRoaXMuX3JlYWR5U3RhdGUgPSBcImNsb3NlZFwiO1xuICAgICAgICAgICAgdGhpcy5lbWl0UmVzZXJ2ZWQoXCJlcnJvclwiLCBlcnIpO1xuICAgICAgICAgICAgaWYgKGZuKSB7XG4gICAgICAgICAgICAgICAgZm4oZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIE9ubHkgZG8gdGhpcyBpZiB0aGVyZSBpcyBubyBmbiB0byBoYW5kbGUgdGhlIGVycm9yXG4gICAgICAgICAgICAgICAgdGhpcy5tYXliZVJlY29ubmVjdE9uT3BlbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICAvLyBlbWl0IGBlcnJvcmBcbiAgICAgICAgY29uc3QgZXJyb3JTdWIgPSBvbl9qc18xLm9uKHNvY2tldCwgXCJlcnJvclwiLCBvbkVycm9yKTtcbiAgICAgICAgaWYgKGZhbHNlICE9PSB0aGlzLl90aW1lb3V0KSB7XG4gICAgICAgICAgICBjb25zdCB0aW1lb3V0ID0gdGhpcy5fdGltZW91dDtcbiAgICAgICAgICAgIGRlYnVnKFwiY29ubmVjdCBhdHRlbXB0IHdpbGwgdGltZW91dCBhZnRlciAlZFwiLCB0aW1lb3V0KTtcbiAgICAgICAgICAgIC8vIHNldCB0aW1lclxuICAgICAgICAgICAgY29uc3QgdGltZXIgPSB0aGlzLnNldFRpbWVvdXRGbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgZGVidWcoXCJjb25uZWN0IGF0dGVtcHQgdGltZWQgb3V0IGFmdGVyICVkXCIsIHRpbWVvdXQpO1xuICAgICAgICAgICAgICAgIG9wZW5TdWJEZXN0cm95KCk7XG4gICAgICAgICAgICAgICAgb25FcnJvcihuZXcgRXJyb3IoXCJ0aW1lb3V0XCIpKTtcbiAgICAgICAgICAgICAgICBzb2NrZXQuY2xvc2UoKTtcbiAgICAgICAgICAgIH0sIHRpbWVvdXQpO1xuICAgICAgICAgICAgaWYgKHRoaXMub3B0cy5hdXRvVW5yZWYpIHtcbiAgICAgICAgICAgICAgICB0aW1lci51bnJlZigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zdWJzLnB1c2goKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJUaW1lb3V0Rm4odGltZXIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zdWJzLnB1c2gob3BlblN1YkRlc3Ryb3kpO1xuICAgICAgICB0aGlzLnN1YnMucHVzaChlcnJvclN1Yik7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBBbGlhcyBmb3Igb3BlbigpXG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHNlbGZcbiAgICAgKiBAcHVibGljXG4gICAgICovXG4gICAgY29ubmVjdChmbikge1xuICAgICAgICByZXR1cm4gdGhpcy5vcGVuKGZuKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2FsbGVkIHVwb24gdHJhbnNwb3J0IG9wZW4uXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIG9ub3BlbigpIHtcbiAgICAgICAgZGVidWcoXCJvcGVuXCIpO1xuICAgICAgICAvLyBjbGVhciBvbGQgc3Vic1xuICAgICAgICB0aGlzLmNsZWFudXAoKTtcbiAgICAgICAgLy8gbWFyayBhcyBvcGVuXG4gICAgICAgIHRoaXMuX3JlYWR5U3RhdGUgPSBcIm9wZW5cIjtcbiAgICAgICAgdGhpcy5lbWl0UmVzZXJ2ZWQoXCJvcGVuXCIpO1xuICAgICAgICAvLyBhZGQgbmV3IHN1YnNcbiAgICAgICAgY29uc3Qgc29ja2V0ID0gdGhpcy5lbmdpbmU7XG4gICAgICAgIHRoaXMuc3Vicy5wdXNoKG9uX2pzXzEub24oc29ja2V0LCBcInBpbmdcIiwgdGhpcy5vbnBpbmcuYmluZCh0aGlzKSksIG9uX2pzXzEub24oc29ja2V0LCBcImRhdGFcIiwgdGhpcy5vbmRhdGEuYmluZCh0aGlzKSksIG9uX2pzXzEub24oc29ja2V0LCBcImVycm9yXCIsIHRoaXMub25lcnJvci5iaW5kKHRoaXMpKSwgb25fanNfMS5vbihzb2NrZXQsIFwiY2xvc2VcIiwgdGhpcy5vbmNsb3NlLmJpbmQodGhpcykpLCBvbl9qc18xLm9uKHRoaXMuZGVjb2RlciwgXCJkZWNvZGVkXCIsIHRoaXMub25kZWNvZGVkLmJpbmQodGhpcykpKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2FsbGVkIHVwb24gYSBwaW5nLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBvbnBpbmcoKSB7XG4gICAgICAgIHRoaXMuZW1pdFJlc2VydmVkKFwicGluZ1wiKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2FsbGVkIHdpdGggZGF0YS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgb25kYXRhKGRhdGEpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRoaXMuZGVjb2Rlci5hZGQoZGF0YSk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRoaXMub25jbG9zZShcInBhcnNlIGVycm9yXCIsIGUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENhbGxlZCB3aGVuIHBhcnNlciBmdWxseSBkZWNvZGVzIGEgcGFja2V0LlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBvbmRlY29kZWQocGFja2V0KSB7XG4gICAgICAgIC8vIHRoZSBuZXh0VGljayBjYWxsIHByZXZlbnRzIGFuIGV4Y2VwdGlvbiBpbiBhIHVzZXItcHJvdmlkZWQgZXZlbnQgbGlzdGVuZXIgZnJvbSB0cmlnZ2VyaW5nIGEgZGlzY29ubmVjdGlvbiBkdWUgdG8gYSBcInBhcnNlIGVycm9yXCJcbiAgICAgICAgZW5naW5lX2lvX2NsaWVudF8xLm5leHRUaWNrKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZW1pdFJlc2VydmVkKFwicGFja2V0XCIsIHBhY2tldCk7XG4gICAgICAgIH0sIHRoaXMuc2V0VGltZW91dEZuKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2FsbGVkIHVwb24gc29ja2V0IGVycm9yLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBvbmVycm9yKGVycikge1xuICAgICAgICBkZWJ1ZyhcImVycm9yXCIsIGVycik7XG4gICAgICAgIHRoaXMuZW1pdFJlc2VydmVkKFwiZXJyb3JcIiwgZXJyKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIG5ldyBzb2NrZXQgZm9yIHRoZSBnaXZlbiBgbnNwYC5cbiAgICAgKlxuICAgICAqIEByZXR1cm4ge1NvY2tldH1cbiAgICAgKiBAcHVibGljXG4gICAgICovXG4gICAgc29ja2V0KG5zcCwgb3B0cykge1xuICAgICAgICBsZXQgc29ja2V0ID0gdGhpcy5uc3BzW25zcF07XG4gICAgICAgIGlmICghc29ja2V0KSB7XG4gICAgICAgICAgICBzb2NrZXQgPSBuZXcgc29ja2V0X2pzXzEuU29ja2V0KHRoaXMsIG5zcCwgb3B0cyk7XG4gICAgICAgICAgICB0aGlzLm5zcHNbbnNwXSA9IHNvY2tldDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0aGlzLl9hdXRvQ29ubmVjdCAmJiAhc29ja2V0LmFjdGl2ZSkge1xuICAgICAgICAgICAgc29ja2V0LmNvbm5lY3QoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc29ja2V0O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgdXBvbiBhIHNvY2tldCBjbG9zZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzb2NrZXRcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIF9kZXN0cm95KHNvY2tldCkge1xuICAgICAgICBjb25zdCBuc3BzID0gT2JqZWN0LmtleXModGhpcy5uc3BzKTtcbiAgICAgICAgZm9yIChjb25zdCBuc3Agb2YgbnNwcykge1xuICAgICAgICAgICAgY29uc3Qgc29ja2V0ID0gdGhpcy5uc3BzW25zcF07XG4gICAgICAgICAgICBpZiAoc29ja2V0LmFjdGl2ZSkge1xuICAgICAgICAgICAgICAgIGRlYnVnKFwic29ja2V0ICVzIGlzIHN0aWxsIGFjdGl2ZSwgc2tpcHBpbmcgY2xvc2VcIiwgbnNwKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fY2xvc2UoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogV3JpdGVzIGEgcGFja2V0LlxuICAgICAqXG4gICAgICogQHBhcmFtIHBhY2tldFxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgX3BhY2tldChwYWNrZXQpIHtcbiAgICAgICAgZGVidWcoXCJ3cml0aW5nIHBhY2tldCAlalwiLCBwYWNrZXQpO1xuICAgICAgICBjb25zdCBlbmNvZGVkUGFja2V0cyA9IHRoaXMuZW5jb2Rlci5lbmNvZGUocGFja2V0KTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlbmNvZGVkUGFja2V0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdGhpcy5lbmdpbmUud3JpdGUoZW5jb2RlZFBhY2tldHNbaV0sIHBhY2tldC5vcHRpb25zKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBDbGVhbiB1cCB0cmFuc3BvcnQgc3Vic2NyaXB0aW9ucyBhbmQgcGFja2V0IGJ1ZmZlci5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgY2xlYW51cCgpIHtcbiAgICAgICAgZGVidWcoXCJjbGVhbnVwXCIpO1xuICAgICAgICB0aGlzLnN1YnMuZm9yRWFjaCgoc3ViRGVzdHJveSkgPT4gc3ViRGVzdHJveSgpKTtcbiAgICAgICAgdGhpcy5zdWJzLmxlbmd0aCA9IDA7XG4gICAgICAgIHRoaXMuZGVjb2Rlci5kZXN0cm95KCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENsb3NlIHRoZSBjdXJyZW50IHNvY2tldC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgX2Nsb3NlKCkge1xuICAgICAgICBkZWJ1ZyhcImRpc2Nvbm5lY3RcIik7XG4gICAgICAgIHRoaXMuc2tpcFJlY29ubmVjdCA9IHRydWU7XG4gICAgICAgIHRoaXMuX3JlY29ubmVjdGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLm9uY2xvc2UoXCJmb3JjZWQgY2xvc2VcIik7XG4gICAgICAgIGlmICh0aGlzLmVuZ2luZSlcbiAgICAgICAgICAgIHRoaXMuZW5naW5lLmNsb3NlKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEFsaWFzIGZvciBjbG9zZSgpXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIGRpc2Nvbm5lY3QoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jbG9zZSgpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgdXBvbiBlbmdpbmUgY2xvc2UuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIG9uY2xvc2UocmVhc29uLCBkZXNjcmlwdGlvbikge1xuICAgICAgICBkZWJ1ZyhcImNsb3NlZCBkdWUgdG8gJXNcIiwgcmVhc29uKTtcbiAgICAgICAgdGhpcy5jbGVhbnVwKCk7XG4gICAgICAgIHRoaXMuYmFja29mZi5yZXNldCgpO1xuICAgICAgICB0aGlzLl9yZWFkeVN0YXRlID0gXCJjbG9zZWRcIjtcbiAgICAgICAgdGhpcy5lbWl0UmVzZXJ2ZWQoXCJjbG9zZVwiLCByZWFzb24sIGRlc2NyaXB0aW9uKTtcbiAgICAgICAgaWYgKHRoaXMuX3JlY29ubmVjdGlvbiAmJiAhdGhpcy5za2lwUmVjb25uZWN0KSB7XG4gICAgICAgICAgICB0aGlzLnJlY29ubmVjdCgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEF0dGVtcHQgYSByZWNvbm5lY3Rpb24uXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHJlY29ubmVjdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuX3JlY29ubmVjdGluZyB8fCB0aGlzLnNraXBSZWNvbm5lY3QpXG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgICAgIGlmICh0aGlzLmJhY2tvZmYuYXR0ZW1wdHMgPj0gdGhpcy5fcmVjb25uZWN0aW9uQXR0ZW1wdHMpIHtcbiAgICAgICAgICAgIGRlYnVnKFwicmVjb25uZWN0IGZhaWxlZFwiKTtcbiAgICAgICAgICAgIHRoaXMuYmFja29mZi5yZXNldCgpO1xuICAgICAgICAgICAgdGhpcy5lbWl0UmVzZXJ2ZWQoXCJyZWNvbm5lY3RfZmFpbGVkXCIpO1xuICAgICAgICAgICAgdGhpcy5fcmVjb25uZWN0aW5nID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBkZWxheSA9IHRoaXMuYmFja29mZi5kdXJhdGlvbigpO1xuICAgICAgICAgICAgZGVidWcoXCJ3aWxsIHdhaXQgJWRtcyBiZWZvcmUgcmVjb25uZWN0IGF0dGVtcHRcIiwgZGVsYXkpO1xuICAgICAgICAgICAgdGhpcy5fcmVjb25uZWN0aW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIGNvbnN0IHRpbWVyID0gdGhpcy5zZXRUaW1lb3V0Rm4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChzZWxmLnNraXBSZWNvbm5lY3QpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICBkZWJ1ZyhcImF0dGVtcHRpbmcgcmVjb25uZWN0XCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdFJlc2VydmVkKFwicmVjb25uZWN0X2F0dGVtcHRcIiwgc2VsZi5iYWNrb2ZmLmF0dGVtcHRzKTtcbiAgICAgICAgICAgICAgICAvLyBjaGVjayBhZ2FpbiBmb3IgdGhlIGNhc2Ugc29ja2V0IGNsb3NlZCBpbiBhYm92ZSBldmVudHNcbiAgICAgICAgICAgICAgICBpZiAoc2VsZi5za2lwUmVjb25uZWN0KVxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgc2VsZi5vcGVuKChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVidWcoXCJyZWNvbm5lY3QgYXR0ZW1wdCBlcnJvclwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3JlY29ubmVjdGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5yZWNvbm5lY3QoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZW1pdFJlc2VydmVkKFwicmVjb25uZWN0X2Vycm9yXCIsIGVycik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWJ1ZyhcInJlY29ubmVjdCBzdWNjZXNzXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5vbnJlY29ubmVjdCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LCBkZWxheSk7XG4gICAgICAgICAgICBpZiAodGhpcy5vcHRzLmF1dG9VbnJlZikge1xuICAgICAgICAgICAgICAgIHRpbWVyLnVucmVmKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnN1YnMucHVzaCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbGVhclRpbWVvdXRGbih0aW1lcik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgdXBvbiBzdWNjZXNzZnVsIHJlY29ubmVjdC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgb25yZWNvbm5lY3QoKSB7XG4gICAgICAgIGNvbnN0IGF0dGVtcHQgPSB0aGlzLmJhY2tvZmYuYXR0ZW1wdHM7XG4gICAgICAgIHRoaXMuX3JlY29ubmVjdGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmJhY2tvZmYucmVzZXQoKTtcbiAgICAgICAgdGhpcy5lbWl0UmVzZXJ2ZWQoXCJyZWNvbm5lY3RcIiwgYXR0ZW1wdCk7XG4gICAgfVxufVxuZXhwb3J0cy5NYW5hZ2VyID0gTWFuYWdlcjtcbiIsIlwidXNlIHN0cmljdFwiO3ZhciBrZT1PYmplY3QuZGVmaW5lUHJvcGVydHk7dmFyIFJ0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7dmFyIE10PU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzO3ZhciB3dD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBQdD0oZSx0KT0+e2Zvcih2YXIgbiBpbiB0KWtlKGUsbix7Z2V0OnRbbl0sZW51bWVyYWJsZTohMH0pfSxTZT0oZSx0LG4scik9PntpZih0JiZ0eXBlb2YgdD09XCJvYmplY3RcInx8dHlwZW9mIHQ9PVwiZnVuY3Rpb25cIilmb3IobGV0IGEgb2YgTXQodCkpIXd0LmNhbGwoZSxhKSYmYSE9PW4mJmtlKGUsYSx7Z2V0OigpPT50W2FdLGVudW1lcmFibGU6IShyPVJ0KHQsYSkpfHxyLmVudW1lcmFibGV9KTtyZXR1cm4gZX0sQz0oZSx0LG4pPT4oU2UoZSx0LFwiZGVmYXVsdFwiKSxuJiZTZShuLHQsXCJkZWZhdWx0XCIpKTt2YXIgYnQ9ZT0+U2Uoa2Uoe30sXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksZSk7dmFyIGs9e307UHQoayx7UmVkdWNlclR5cGU6KCk9Pk9lLFNIT1VMRF9BVVRPQkFUQ0g6KCk9Pm5lLFRhc2tBYm9ydEVycm9yOigpPT5QLFR1cGxlOigpPT5PLGFkZExpc3RlbmVyOigpPT5MZSxhc3luY1RodW5rQ3JlYXRvcjooKT0+cnQsYXV0b0JhdGNoRW5oYW5jZXI6KCk9PnJlLGJ1aWxkQ3JlYXRlU2xpY2U6KCk9Pk5lLGNsZWFyQWxsTGlzdGVuZXJzOigpPT5VZSxjb21iaW5lU2xpY2VzOigpPT5FdCxjb25maWd1cmVTdG9yZTooKT0+ZXQsY3JlYXRlQWN0aW9uOigpPT5NLGNyZWF0ZUFjdGlvbkNyZWF0b3JJbnZhcmlhbnRNaWRkbGV3YXJlOigpPT5CZSxjcmVhdGVBc3luY1RodW5rOigpPT5jZSxjcmVhdGVEcmFmdFNhZmVTZWxlY3RvcjooKT0+SixjcmVhdGVEcmFmdFNhZmVTZWxlY3RvckNyZWF0b3I6KCk9PmdlLGNyZWF0ZUR5bmFtaWNNaWRkbGV3YXJlOigpPT54dCxjcmVhdGVFbnRpdHlBZGFwdGVyOigpPT5kdCxjcmVhdGVJbW11dGFibGVTdGF0ZUludmFyaWFudE1pZGRsZXdhcmU6KCk9PkhlLGNyZWF0ZUxpc3RlbmVyTWlkZGxld2FyZTooKT0+a3QsY3JlYXRlTmV4dFN0YXRlOigpPT5JLnByb2R1Y2UsY3JlYXRlUmVkdWNlcjooKT0+b2UsY3JlYXRlU2VsZWN0b3I6KCk9PkwuY3JlYXRlU2VsZWN0b3IsY3JlYXRlU2VsZWN0b3JDcmVhdG9yOigpPT5MLmNyZWF0ZVNlbGVjdG9yQ3JlYXRvcixjcmVhdGVTZXJpYWxpemFibGVTdGF0ZUludmFyaWFudE1pZGRsZXdhcmU6KCk9PlhlLGNyZWF0ZVNsaWNlOigpPT5hdCxjdXJyZW50OigpPT5JLmN1cnJlbnQsZmluZE5vblNlcmlhbGl6YWJsZVZhbHVlOigpPT5NZSxmb3JtYXRQcm9kRXJyb3JNZXNzYWdlOigpPT5TLGZyZWV6ZTooKT0+SS5mcmVlemUsaXNBY3Rpb25DcmVhdG9yOigpPT5ZLGlzQWxsT2Y6KCk9PnosaXNBbnlPZjooKT0+aixpc0FzeW5jVGh1bmtBY3Rpb246KCk9PkllLGlzRHJhZnQ6KCk9PkkuaXNEcmFmdCxpc0ZsdXhTdGFuZGFyZEFjdGlvbjooKT0+Wixpc0Z1bGZpbGxlZDooKT0+YmUsaXNJbW11dGFibGVEZWZhdWx0OigpPT5LZSxpc1BlbmRpbmc6KCk9PndlLGlzUGxhaW46KCk9PlJlLGlzUmVqZWN0ZWQ6KCk9PkIsaXNSZWplY3RlZFdpdGhWYWx1ZTooKT0+UGUsbHJ1TWVtb2l6ZTooKT0+TC5scnVNZW1vaXplLG1pbmlTZXJpYWxpemVFcnJvcjooKT0+dmUsbmFub2lkOigpPT53LG9yaWdpbmFsOigpPT5JLm9yaWdpbmFsLHByZXBhcmVBdXRvQmF0Y2hlZDooKT0+UWUscmVtb3ZlTGlzdGVuZXI6KCk9PldlLHVud3JhcFJlc3VsdDooKT0+RGUsd2Vha01hcE1lbW9pemU6KCk9Pkwud2Vha01hcE1lbW9pemV9KTttb2R1bGUuZXhwb3J0cz1idChrKTtDKGsscmVxdWlyZShcInJlZHV4XCIpLG1vZHVsZS5leHBvcnRzKTt2YXIgST1yZXF1aXJlKFwiaW1tZXJcIiksTD1yZXF1aXJlKFwicmVzZWxlY3RcIik7dmFyIHE9cmVxdWlyZShcImltbWVyXCIpLFg9cmVxdWlyZShcInJlc2VsZWN0XCIpLGdlPSguLi5lKT0+e2xldCB0PSgwLFguY3JlYXRlU2VsZWN0b3JDcmVhdG9yKSguLi5lKTtyZXR1cm4oLi4ubik9PntsZXQgcj10KC4uLm4pLGE9KGksLi4udSk9PnIoKDAscS5pc0RyYWZ0KShpKT8oMCxxLmN1cnJlbnQpKGkpOmksLi4udSk7cmV0dXJuIE9iamVjdC5hc3NpZ24oYSxyKSxhfX0sSj1nZShYLndlYWtNYXBNZW1vaXplKTt2YXIgYj1yZXF1aXJlKFwicmVkdXhcIik7dmFyIHhlPXJlcXVpcmUoXCJyZWR1eFwiKSxHZT10eXBlb2Ygd2luZG93PFwidVwiJiZ3aW5kb3cuX19SRURVWF9ERVZUT09MU19FWFRFTlNJT05fQ09NUE9TRV9fP3dpbmRvdy5fX1JFRFVYX0RFVlRPT0xTX0VYVEVOU0lPTl9DT01QT1NFX186ZnVuY3Rpb24oKXtpZihhcmd1bWVudHMubGVuZ3RoIT09MClyZXR1cm4gdHlwZW9mIGFyZ3VtZW50c1swXT09XCJvYmplY3RcIj94ZS5jb21wb3NlOnhlLmNvbXBvc2UuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxsbj10eXBlb2Ygd2luZG93PFwidVwiJiZ3aW5kb3cuX19SRURVWF9ERVZUT09MU19FWFRFTlNJT05fXz93aW5kb3cuX19SRURVWF9ERVZUT09MU19FWFRFTlNJT05fXzpmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gZX19O3ZhciB0ZT1yZXF1aXJlKFwicmVkdXgtdGh1bmtcIik7dmFyIENlPXJlcXVpcmUoXCJyZWR1eFwiKTt2YXIgUT1lPT5lJiZ0eXBlb2YgZS5tYXRjaD09XCJmdW5jdGlvblwiO2Z1bmN0aW9uIE0oZSx0KXtmdW5jdGlvbiBuKC4uLnIpe2lmKHQpe2xldCBhPXQoLi4ucik7aWYoIWEpdGhyb3cgbmV3IEVycm9yKFMoMCkpO3JldHVybnt0eXBlOmUscGF5bG9hZDphLnBheWxvYWQsLi4uXCJtZXRhXCJpbiBhJiZ7bWV0YTphLm1ldGF9LC4uLlwiZXJyb3JcImluIGEmJntlcnJvcjphLmVycm9yfX19cmV0dXJue3R5cGU6ZSxwYXlsb2FkOnJbMF19fXJldHVybiBuLnRvU3RyaW5nPSgpPT5gJHtlfWAsbi50eXBlPWUsbi5tYXRjaD1yPT4oMCxDZS5pc0FjdGlvbikocikmJnIudHlwZT09PWUsbn1mdW5jdGlvbiBZKGUpe3JldHVybiB0eXBlb2YgZT09XCJmdW5jdGlvblwiJiZcInR5cGVcImluIGUmJlEoZSl9ZnVuY3Rpb24gWihlKXtyZXR1cm4oMCxDZS5pc0FjdGlvbikoZSkmJk9iamVjdC5rZXlzKGUpLmV2ZXJ5KEl0KX1mdW5jdGlvbiBJdChlKXtyZXR1cm5bXCJ0eXBlXCIsXCJwYXlsb2FkXCIsXCJlcnJvclwiLFwibWV0YVwiXS5pbmRleE9mKGUpPi0xfWZ1bmN0aW9uIHZ0KGUpe2xldCB0PWU/YCR7ZX1gLnNwbGl0KFwiL1wiKTpbXSxuPXRbdC5sZW5ndGgtMV18fFwiYWN0aW9uQ3JlYXRvclwiO3JldHVybmBEZXRlY3RlZCBhbiBhY3Rpb24gY3JlYXRvciB3aXRoIHR5cGUgXCIke2V8fFwidW5rbm93blwifVwiIGJlaW5nIGRpc3BhdGNoZWQuIFxuTWFrZSBzdXJlIHlvdSdyZSBjYWxsaW5nIHRoZSBhY3Rpb24gY3JlYXRvciBiZWZvcmUgZGlzcGF0Y2hpbmcsIGkuZS4gXFxgZGlzcGF0Y2goJHtufSgpKVxcYCBpbnN0ZWFkIG9mIFxcYGRpc3BhdGNoKCR7bn0pXFxgLiBUaGlzIGlzIG5lY2Vzc2FyeSBldmVuIGlmIHRoZSBhY3Rpb24gaGFzIG5vIHBheWxvYWQuYH1mdW5jdGlvbiBCZShlPXt9KXtyZXR1cm4oKT0+bj0+cj0+bihyKX12YXIgZWU9cmVxdWlyZShcImltbWVyXCIpO2Z1bmN0aW9uIEcoZSx0KXtmb3IobGV0IG4gb2YgZSlpZih0KG4pKXJldHVybiBufXZhciBPPWNsYXNzIGUgZXh0ZW5kcyBBcnJheXtjb25zdHJ1Y3RvciguLi50KXtzdXBlciguLi50KSxPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcyxlLnByb3RvdHlwZSl9c3RhdGljIGdldFtTeW1ib2wuc3BlY2llc10oKXtyZXR1cm4gZX1jb25jYXQoLi4udCl7cmV0dXJuIHN1cGVyLmNvbmNhdC5hcHBseSh0aGlzLHQpfXByZXBlbmQoLi4udCl7cmV0dXJuIHQubGVuZ3RoPT09MSYmQXJyYXkuaXNBcnJheSh0WzBdKT9uZXcgZSguLi50WzBdLmNvbmNhdCh0aGlzKSk6bmV3IGUoLi4udC5jb25jYXQodGhpcykpfX07ZnVuY3Rpb24gRWUoZSl7cmV0dXJuKDAsZWUuaXNEcmFmdGFibGUpKGUpPygwLGVlLnByb2R1Y2UpKGUsKCk9Pnt9KTplfWZ1bmN0aW9uIFUoZSx0LG4pe2lmKGUuaGFzKHQpKXtsZXQgYT1lLmdldCh0KTtyZXR1cm4gbi51cGRhdGUmJihhPW4udXBkYXRlKGEsdCxlKSxlLnNldCh0LGEpKSxhfWlmKCFuLmluc2VydCl0aHJvdyBuZXcgRXJyb3IoUygxMCkpO2xldCByPW4uaW5zZXJ0KHQsZSk7cmV0dXJuIGUuc2V0KHQscikscn1mdW5jdGlvbiBLZShlKXtyZXR1cm4gdHlwZW9mIGUhPVwib2JqZWN0XCJ8fGU9PW51bGx8fE9iamVjdC5pc0Zyb3plbihlKX1mdW5jdGlvbiBIZShlPXt9KXtpZigxKXJldHVybigpPT5yPT5hPT5yKGEpO3ZhciB0LG59dmFyICRlPXJlcXVpcmUoXCJyZWR1eFwiKTtmdW5jdGlvbiBSZShlKXtsZXQgdD10eXBlb2YgZTtyZXR1cm4gZT09bnVsbHx8dD09PVwic3RyaW5nXCJ8fHQ9PT1cImJvb2xlYW5cInx8dD09PVwibnVtYmVyXCJ8fEFycmF5LmlzQXJyYXkoZSl8fCgwLCRlLmlzUGxhaW5PYmplY3QpKGUpfWZ1bmN0aW9uIE1lKGUsdD1cIlwiLG49UmUscixhPVtdLGkpe2xldCB1O2lmKCFuKGUpKXJldHVybntrZXlQYXRoOnR8fFwiPHJvb3Q+XCIsdmFsdWU6ZX07aWYodHlwZW9mIGUhPVwib2JqZWN0XCJ8fGU9PT1udWxsfHxpPy5oYXMoZSkpcmV0dXJuITE7bGV0IGY9ciE9bnVsbD9yKGUpOk9iamVjdC5lbnRyaWVzKGUpLGQ9YS5sZW5ndGg+MDtmb3IobGV0W2gsb11vZiBmKXtsZXQgbD10P3QrXCIuXCIraDpoO2lmKCEoZCYmYS5zb21lKGc9PmcgaW5zdGFuY2VvZiBSZWdFeHA/Zy50ZXN0KGwpOmw9PT1nKSkpe2lmKCFuKG8pKXJldHVybntrZXlQYXRoOmwsdmFsdWU6b307aWYodHlwZW9mIG89PVwib2JqZWN0XCImJih1PU1lKG8sbCxuLHIsYSxpKSx1KSlyZXR1cm4gdX19cmV0dXJuIGkmJnFlKGUpJiZpLmFkZChlKSwhMX1mdW5jdGlvbiBxZShlKXtpZighT2JqZWN0LmlzRnJvemVuKGUpKXJldHVybiExO2ZvcihsZXQgdCBvZiBPYmplY3QudmFsdWVzKGUpKWlmKCEodHlwZW9mIHQhPVwib2JqZWN0XCJ8fHQ9PT1udWxsKSYmIXFlKHQpKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIFhlKGU9e30pe3JldHVybigpPT50PT5uPT50KG4pfWZ1bmN0aW9uIER0KGUpe3JldHVybiB0eXBlb2YgZT09XCJib29sZWFuXCJ9dmFyIEplPSgpPT5mdW5jdGlvbih0KXtsZXR7dGh1bms6bj0hMCxpbW11dGFibGVDaGVjazpyPSEwLHNlcmlhbGl6YWJsZUNoZWNrOmE9ITAsYWN0aW9uQ3JlYXRvckNoZWNrOmk9ITB9PXQ/P3t9LHU9bmV3IE87cmV0dXJuIG4mJihEdChuKT91LnB1c2godGUudGh1bmspOnUucHVzaCgoMCx0ZS53aXRoRXh0cmFBcmd1bWVudCkobi5leHRyYUFyZ3VtZW50KSkpLHV9O3ZhciBuZT1cIlJUS19hdXRvQmF0Y2hcIixRZT0oKT0+ZT0+KHtwYXlsb2FkOmUsbWV0YTp7W25lXTohMH19KSxZZT1lPT50PT57c2V0VGltZW91dCh0LGUpfSxPdD10eXBlb2Ygd2luZG93PFwidVwiJiZ3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lP3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU6WWUoMTApLHJlPShlPXt0eXBlOlwicmFmXCJ9KT0+dD0+KC4uLm4pPT57bGV0IHI9dCguLi5uKSxhPSEwLGk9ITEsdT0hMSxmPW5ldyBTZXQsZD1lLnR5cGU9PT1cInRpY2tcIj9xdWV1ZU1pY3JvdGFzazplLnR5cGU9PT1cInJhZlwiP090OmUudHlwZT09PVwiY2FsbGJhY2tcIj9lLnF1ZXVlTm90aWZpY2F0aW9uOlllKGUudGltZW91dCksaD0oKT0+e3U9ITEsaSYmKGk9ITEsZi5mb3JFYWNoKG89Pm8oKSkpfTtyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSxyLHtzdWJzY3JpYmUobyl7bGV0IGw9KCk9PmEmJm8oKSx5PXIuc3Vic2NyaWJlKGwpO3JldHVybiBmLmFkZChvKSwoKT0+e3koKSxmLmRlbGV0ZShvKX19LGRpc3BhdGNoKG8pe3RyeXtyZXR1cm4gYT0hbz8ubWV0YT8uW25lXSxpPSFhLGkmJih1fHwodT0hMCxkKGgpKSksci5kaXNwYXRjaChvKX1maW5hbGx5e2E9ITB9fX0pfTt2YXIgWmU9ZT0+ZnVuY3Rpb24obil7bGV0e2F1dG9CYXRjaDpyPSEwfT1uPz97fSxhPW5ldyBPKGUpO3JldHVybiByJiZhLnB1c2gocmUodHlwZW9mIHI9PVwib2JqZWN0XCI/cjp2b2lkIDApKSxhfTt2YXIgTj0hMDtmdW5jdGlvbiBldChlKXtsZXQgdD1KZSgpLHtyZWR1Y2VyOm49dm9pZCAwLG1pZGRsZXdhcmU6cixkZXZUb29sczphPSEwLHByZWxvYWRlZFN0YXRlOmk9dm9pZCAwLGVuaGFuY2Vyczp1PXZvaWQgMH09ZXx8e30sZjtpZih0eXBlb2Ygbj09XCJmdW5jdGlvblwiKWY9bjtlbHNlIGlmKCgwLGIuaXNQbGFpbk9iamVjdCkobikpZj0oMCxiLmNvbWJpbmVSZWR1Y2Vycykobik7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoUygxKSk7aWYoIU4mJnImJnR5cGVvZiByIT1cImZ1bmN0aW9uXCIpdGhyb3cgbmV3IEVycm9yKFMoMikpO2xldCBkO2lmKHR5cGVvZiByPT1cImZ1bmN0aW9uXCIpe2lmKGQ9cih0KSwhTiYmIUFycmF5LmlzQXJyYXkoZCkpdGhyb3cgbmV3IEVycm9yKFMoMykpfWVsc2UgZD10KCk7aWYoIU4mJmQuc29tZShwPT50eXBlb2YgcCE9XCJmdW5jdGlvblwiKSl0aHJvdyBuZXcgRXJyb3IoUyg0KSk7bGV0IGg9Yi5jb21wb3NlO2EmJihoPUdlKHt0cmFjZTohTiwuLi50eXBlb2YgYT09XCJvYmplY3RcIiYmYX0pKTtsZXQgbz0oMCxiLmFwcGx5TWlkZGxld2FyZSkoLi4uZCksbD1aZShvKTtpZighTiYmdSYmdHlwZW9mIHUhPVwiZnVuY3Rpb25cIil0aHJvdyBuZXcgRXJyb3IoUyg1KSk7bGV0IHk9dHlwZW9mIHU9PVwiZnVuY3Rpb25cIj91KGwpOmwoKTtpZighTiYmIUFycmF5LmlzQXJyYXkoeSkpdGhyb3cgbmV3IEVycm9yKFMoNikpO2lmKCFOJiZ5LnNvbWUocD0+dHlwZW9mIHAhPVwiZnVuY3Rpb25cIikpdGhyb3cgbmV3IEVycm9yKFMoNykpOyFOJiZkLmxlbmd0aCYmIXkuaW5jbHVkZXMobykmJmNvbnNvbGUuZXJyb3IoXCJtaWRkbGV3YXJlcyB3ZXJlIHByb3ZpZGVkLCBidXQgbWlkZGxld2FyZSBlbmhhbmNlciB3YXMgbm90IGluY2x1ZGVkIGluIGZpbmFsIGVuaGFuY2VycyAtIG1ha2Ugc3VyZSB0byBjYWxsIGBnZXREZWZhdWx0RW5oYW5jZXJzYFwiKTtsZXQgZz1oKC4uLnkpO3JldHVybigwLGIuY3JlYXRlU3RvcmUpKGYsaSxnKX12YXIgVz1yZXF1aXJlKFwiaW1tZXJcIik7ZnVuY3Rpb24gYWUoZSl7bGV0IHQ9e30sbj1bXSxyLGE9e2FkZENhc2UoaSx1KXtsZXQgZj10eXBlb2YgaT09XCJzdHJpbmdcIj9pOmkudHlwZTtpZighZil0aHJvdyBuZXcgRXJyb3IoUygyOCkpO2lmKGYgaW4gdCl0aHJvdyBuZXcgRXJyb3IoUygyOSkpO3JldHVybiB0W2ZdPXUsYX0sYWRkTWF0Y2hlcihpLHUpe3JldHVybiBuLnB1c2goe21hdGNoZXI6aSxyZWR1Y2VyOnV9KSxhfSxhZGREZWZhdWx0Q2FzZShpKXtyZXR1cm4gcj1pLGF9fTtyZXR1cm4gZShhKSxbdCxuLHJdfWZ1bmN0aW9uIE50KGUpe3JldHVybiB0eXBlb2YgZT09XCJmdW5jdGlvblwifWZ1bmN0aW9uIG9lKGUsdCl7bGV0W24scixhXT1hZSh0KSxpO2lmKE50KGUpKWk9KCk9PkVlKGUoKSk7ZWxzZXtsZXQgZj1FZShlKTtpPSgpPT5mfWZ1bmN0aW9uIHUoZj1pKCksZCl7bGV0IGg9W25bZC50eXBlXSwuLi5yLmZpbHRlcigoe21hdGNoZXI6b30pPT5vKGQpKS5tYXAoKHtyZWR1Y2VyOm99KT0+byldO3JldHVybiBoLmZpbHRlcihvPT4hIW8pLmxlbmd0aD09PTAmJihoPVthXSksaC5yZWR1Y2UoKG8sbCk9PntpZihsKWlmKCgwLFcuaXNEcmFmdCkobykpe2xldCBnPWwobyxkKTtyZXR1cm4gZz09PXZvaWQgMD9vOmd9ZWxzZXtpZigoMCxXLmlzRHJhZnRhYmxlKShvKSlyZXR1cm4oMCxXLnByb2R1Y2UpKG8seT0+bCh5LGQpKTt7bGV0IHk9bChvLGQpO2lmKHk9PT12b2lkIDApe2lmKG89PT1udWxsKXJldHVybiBvO3Rocm93IG5ldyBFcnJvcihTKDkpKX1yZXR1cm4geX19cmV0dXJuIG99LGYpfXJldHVybiB1LmdldEluaXRpYWxTdGF0ZT1pLHV9dmFyIGp0PVwiTW9kdWxlU3ltYmhhc093blByLTAxMjM0NTY3ODlBQkNERUZHSE5SVmZnY3RpVXZ6X0txWVRKa0x4cFpYSWpRV1wiLHc9KGU9MjEpPT57bGV0IHQ9XCJcIixuPWU7Zm9yKDtuLS07KXQrPWp0W01hdGgucmFuZG9tKCkqNjR8MF07cmV0dXJuIHR9O3ZhciB0dD0oZSx0KT0+UShlKT9lLm1hdGNoKHQpOmUodCk7ZnVuY3Rpb24gaiguLi5lKXtyZXR1cm4gdD0+ZS5zb21lKG49PnR0KG4sdCkpfWZ1bmN0aW9uIHooLi4uZSl7cmV0dXJuIHQ9PmUuZXZlcnkobj0+dHQobix0KSl9ZnVuY3Rpb24gaWUoZSx0KXtpZighZXx8IWUubWV0YSlyZXR1cm4hMTtsZXQgbj10eXBlb2YgZS5tZXRhLnJlcXVlc3RJZD09XCJzdHJpbmdcIixyPXQuaW5kZXhPZihlLm1ldGEucmVxdWVzdFN0YXR1cyk+LTE7cmV0dXJuIG4mJnJ9ZnVuY3Rpb24gSyhlKXtyZXR1cm4gdHlwZW9mIGVbMF09PVwiZnVuY3Rpb25cIiYmXCJwZW5kaW5nXCJpbiBlWzBdJiZcImZ1bGZpbGxlZFwiaW4gZVswXSYmXCJyZWplY3RlZFwiaW4gZVswXX1mdW5jdGlvbiB3ZSguLi5lKXtyZXR1cm4gZS5sZW5ndGg9PT0wP3Q9PmllKHQsW1wicGVuZGluZ1wiXSk6SyhlKT90PT57bGV0IG49ZS5tYXAoYT0+YS5wZW5kaW5nKTtyZXR1cm4gaiguLi5uKSh0KX06d2UoKShlWzBdKX1mdW5jdGlvbiBCKC4uLmUpe3JldHVybiBlLmxlbmd0aD09PTA/dD0+aWUodCxbXCJyZWplY3RlZFwiXSk6SyhlKT90PT57bGV0IG49ZS5tYXAoYT0+YS5yZWplY3RlZCk7cmV0dXJuIGooLi4ubikodCl9OkIoKShlWzBdKX1mdW5jdGlvbiBQZSguLi5lKXtsZXQgdD1uPT5uJiZuLm1ldGEmJm4ubWV0YS5yZWplY3RlZFdpdGhWYWx1ZTtyZXR1cm4gZS5sZW5ndGg9PT0wP249PnooQiguLi5lKSx0KShuKTpLKGUpP249PnooQiguLi5lKSx0KShuKTpQZSgpKGVbMF0pfWZ1bmN0aW9uIGJlKC4uLmUpe3JldHVybiBlLmxlbmd0aD09PTA/dD0+aWUodCxbXCJmdWxmaWxsZWRcIl0pOksoZSk/dD0+e2xldCBuPWUubWFwKGE9PmEuZnVsZmlsbGVkKTtyZXR1cm4gaiguLi5uKSh0KX06YmUoKShlWzBdKX1mdW5jdGlvbiBJZSguLi5lKXtyZXR1cm4gZS5sZW5ndGg9PT0wP3Q9PmllKHQsW1wicGVuZGluZ1wiLFwiZnVsZmlsbGVkXCIsXCJyZWplY3RlZFwiXSk6SyhlKT90PT57bGV0IG49W107Zm9yKGxldCBhIG9mIGUpbi5wdXNoKGEucGVuZGluZyxhLnJlamVjdGVkLGEuZnVsZmlsbGVkKTtyZXR1cm4gaiguLi5uKSh0KX06SWUoKShlWzBdKX12YXIgRnQ9W1wibmFtZVwiLFwibWVzc2FnZVwiLFwic3RhY2tcIixcImNvZGVcIl0sSD1jbGFzc3tjb25zdHJ1Y3Rvcih0LG4pe3RoaXMucGF5bG9hZD10O3RoaXMubWV0YT1ufV90eXBlfSxzZT1jbGFzc3tjb25zdHJ1Y3Rvcih0LG4pe3RoaXMucGF5bG9hZD10O3RoaXMubWV0YT1ufV90eXBlfSx2ZT1lPT57aWYodHlwZW9mIGU9PVwib2JqZWN0XCImJmUhPT1udWxsKXtsZXQgdD17fTtmb3IobGV0IG4gb2YgRnQpdHlwZW9mIGVbbl09PVwic3RyaW5nXCImJih0W25dPWVbbl0pO3JldHVybiB0fXJldHVybnttZXNzYWdlOlN0cmluZyhlKX19LGNlPSgoKT0+e2Z1bmN0aW9uIGUodCxuLHIpe2xldCBhPU0odCtcIi9mdWxmaWxsZWRcIiwoZCxoLG8sbCk9Pih7cGF5bG9hZDpkLG1ldGE6ey4uLmx8fHt9LGFyZzpvLHJlcXVlc3RJZDpoLHJlcXVlc3RTdGF0dXM6XCJmdWxmaWxsZWRcIn19KSksaT1NKHQrXCIvcGVuZGluZ1wiLChkLGgsbyk9Pih7cGF5bG9hZDp2b2lkIDAsbWV0YTp7Li4ub3x8e30sYXJnOmgscmVxdWVzdElkOmQscmVxdWVzdFN0YXR1czpcInBlbmRpbmdcIn19KSksdT1NKHQrXCIvcmVqZWN0ZWRcIiwoZCxoLG8sbCx5KT0+KHtwYXlsb2FkOmwsZXJyb3I6KHImJnIuc2VyaWFsaXplRXJyb3J8fHZlKShkfHxcIlJlamVjdGVkXCIpLG1ldGE6ey4uLnl8fHt9LGFyZzpvLHJlcXVlc3RJZDpoLHJlamVjdGVkV2l0aFZhbHVlOiEhbCxyZXF1ZXN0U3RhdHVzOlwicmVqZWN0ZWRcIixhYm9ydGVkOmQ/Lm5hbWU9PT1cIkFib3J0RXJyb3JcIixjb25kaXRpb246ZD8ubmFtZT09PVwiQ29uZGl0aW9uRXJyb3JcIn19KSk7ZnVuY3Rpb24gZihkKXtyZXR1cm4oaCxvLGwpPT57bGV0IHk9cj8uaWRHZW5lcmF0b3I/ci5pZEdlbmVyYXRvcihkKTp3KCksZz1uZXcgQWJvcnRDb250cm9sbGVyLHA7ZnVuY3Rpb24gcyhjKXtwPWMsZy5hYm9ydCgpfWxldCBBPWFzeW5jIGZ1bmN0aW9uKCl7bGV0IGM7dHJ5e2xldCBtPXI/LmNvbmRpdGlvbj8uKGQse2dldFN0YXRlOm8sZXh0cmE6bH0pO2lmKFZ0KG0pJiYobT1hd2FpdCBtKSxtPT09ITF8fGcuc2lnbmFsLmFib3J0ZWQpdGhyb3d7bmFtZTpcIkNvbmRpdGlvbkVycm9yXCIsbWVzc2FnZTpcIkFib3J0ZWQgZHVlIHRvIGNvbmRpdGlvbiBjYWxsYmFjayByZXR1cm5pbmcgZmFsc2UuXCJ9O2xldCB4PW5ldyBQcm9taXNlKChSLEQpPT5nLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKFwiYWJvcnRcIiwoKT0+RCh7bmFtZTpcIkFib3J0RXJyb3JcIixtZXNzYWdlOnB8fFwiQWJvcnRlZFwifSkpKTtoKGkoeSxkLHI/LmdldFBlbmRpbmdNZXRhPy4oe3JlcXVlc3RJZDp5LGFyZzpkfSx7Z2V0U3RhdGU6byxleHRyYTpsfSkpKSxjPWF3YWl0IFByb21pc2UucmFjZShbeCxQcm9taXNlLnJlc29sdmUobihkLHtkaXNwYXRjaDpoLGdldFN0YXRlOm8sZXh0cmE6bCxyZXF1ZXN0SWQ6eSxzaWduYWw6Zy5zaWduYWwsYWJvcnQ6cyxyZWplY3RXaXRoVmFsdWU6KFIsRCk9Pm5ldyBIKFIsRCksZnVsZmlsbFdpdGhWYWx1ZTooUixEKT0+bmV3IHNlKFIsRCl9KSkudGhlbihSPT57aWYoUiBpbnN0YW5jZW9mIEgpdGhyb3cgUjtyZXR1cm4gUiBpbnN0YW5jZW9mIHNlP2EoUi5wYXlsb2FkLHksZCxSLm1ldGEpOmEoUix5LGQpfSldKX1jYXRjaChtKXtjPW0gaW5zdGFuY2VvZiBIP3UobnVsbCx5LGQsbS5wYXlsb2FkLG0ubWV0YSk6dShtLHksZCl9cmV0dXJuIHImJiFyLmRpc3BhdGNoQ29uZGl0aW9uUmVqZWN0aW9uJiZ1Lm1hdGNoKGMpJiZjLm1ldGEuY29uZGl0aW9ufHxoKGMpLGN9KCk7cmV0dXJuIE9iamVjdC5hc3NpZ24oQSx7YWJvcnQ6cyxyZXF1ZXN0SWQ6eSxhcmc6ZCx1bndyYXAoKXtyZXR1cm4gQS50aGVuKERlKX19KX19cmV0dXJuIE9iamVjdC5hc3NpZ24oZix7cGVuZGluZzppLHJlamVjdGVkOnUsZnVsZmlsbGVkOmEsc2V0dGxlZDpqKHUsYSksdHlwZVByZWZpeDp0fSl9cmV0dXJuIGUud2l0aFR5cGVzPSgpPT5lLGV9KSgpO2Z1bmN0aW9uIERlKGUpe2lmKGUubWV0YSYmZS5tZXRhLnJlamVjdGVkV2l0aFZhbHVlKXRocm93IGUucGF5bG9hZDtpZihlLmVycm9yKXRocm93IGUuZXJyb3I7cmV0dXJuIGUucGF5bG9hZH1mdW5jdGlvbiBWdChlKXtyZXR1cm4gZSE9PW51bGwmJnR5cGVvZiBlPT1cIm9iamVjdFwiJiZ0eXBlb2YgZS50aGVuPT1cImZ1bmN0aW9uXCJ9dmFyIG50PVN5bWJvbC5mb3IoXCJydGstc2xpY2UtY3JlYXRlYXN5bmN0aHVua1wiKSxydD17W250XTpjZX0sT2U9KHI9PihyLnJlZHVjZXI9XCJyZWR1Y2VyXCIsci5yZWR1Y2VyV2l0aFByZXBhcmU9XCJyZWR1Y2VyV2l0aFByZXBhcmVcIixyLmFzeW5jVGh1bms9XCJhc3luY1RodW5rXCIscikpKE9lfHx7fSk7ZnVuY3Rpb24gX3QoZSx0KXtyZXR1cm5gJHtlfS8ke3R9YH1mdW5jdGlvbiBOZSh7Y3JlYXRvcnM6ZX09e30pe2xldCB0PWU/LmFzeW5jVGh1bms/LltudF07cmV0dXJuIGZ1bmN0aW9uKHIpe2xldHtuYW1lOmEscmVkdWNlclBhdGg6aT1hfT1yO2lmKCFhKXRocm93IG5ldyBFcnJvcihTKDExKSk7dHlwZW9mIHByb2Nlc3M8XCJ1XCI7bGV0IHU9KHR5cGVvZiByLnJlZHVjZXJzPT1cImZ1bmN0aW9uXCI/ci5yZWR1Y2VycyhVdCgpKTpyLnJlZHVjZXJzKXx8e30sZj1PYmplY3Qua2V5cyh1KSxkPXtzbGljZUNhc2VSZWR1Y2Vyc0J5TmFtZTp7fSxzbGljZUNhc2VSZWR1Y2Vyc0J5VHlwZTp7fSxhY3Rpb25DcmVhdG9yczp7fSxzbGljZU1hdGNoZXJzOltdfSxoPXthZGRDYXNlKHMsQSl7bGV0IGM9dHlwZW9mIHM9PVwic3RyaW5nXCI/czpzLnR5cGU7aWYoIWMpdGhyb3cgbmV3IEVycm9yKFMoMTIpKTtpZihjIGluIGQuc2xpY2VDYXNlUmVkdWNlcnNCeVR5cGUpdGhyb3cgbmV3IEVycm9yKFMoMTMpKTtyZXR1cm4gZC5zbGljZUNhc2VSZWR1Y2Vyc0J5VHlwZVtjXT1BLGh9LGFkZE1hdGNoZXIocyxBKXtyZXR1cm4gZC5zbGljZU1hdGNoZXJzLnB1c2goe21hdGNoZXI6cyxyZWR1Y2VyOkF9KSxofSxleHBvc2VBY3Rpb24ocyxBKXtyZXR1cm4gZC5hY3Rpb25DcmVhdG9yc1tzXT1BLGh9LGV4cG9zZUNhc2VSZWR1Y2VyKHMsQSl7cmV0dXJuIGQuc2xpY2VDYXNlUmVkdWNlcnNCeU5hbWVbc109QSxofX07Zi5mb3JFYWNoKHM9PntsZXQgQT11W3NdLGM9e3JlZHVjZXJOYW1lOnMsdHlwZTpfdChhLHMpLGNyZWF0ZU5vdGF0aW9uOnR5cGVvZiByLnJlZHVjZXJzPT1cImZ1bmN0aW9uXCJ9O3p0KEEpP0J0KGMsQSxoLHQpOld0KGMsQSxoKX0pO2Z1bmN0aW9uIG8oKXtsZXRbcz17fSxBPVtdLGM9dm9pZCAwXT10eXBlb2Ygci5leHRyYVJlZHVjZXJzPT1cImZ1bmN0aW9uXCI/YWUoci5leHRyYVJlZHVjZXJzKTpbci5leHRyYVJlZHVjZXJzXSxUPXsuLi5zLC4uLmQuc2xpY2VDYXNlUmVkdWNlcnNCeVR5cGV9O3JldHVybiBvZShyLmluaXRpYWxTdGF0ZSxtPT57Zm9yKGxldCB4IGluIFQpbS5hZGRDYXNlKHgsVFt4XSk7Zm9yKGxldCB4IG9mIGQuc2xpY2VNYXRjaGVycyltLmFkZE1hdGNoZXIoeC5tYXRjaGVyLHgucmVkdWNlcik7Zm9yKGxldCB4IG9mIEEpbS5hZGRNYXRjaGVyKHgubWF0Y2hlcix4LnJlZHVjZXIpO2MmJm0uYWRkRGVmYXVsdENhc2UoYyl9KX1sZXQgbD1zPT5zLHk9bmV3IFdlYWtNYXAsZyxwPXtuYW1lOmEscmVkdWNlclBhdGg6aSxyZWR1Y2VyKHMsQSl7cmV0dXJuIGd8fChnPW8oKSksZyhzLEEpfSxhY3Rpb25zOmQuYWN0aW9uQ3JlYXRvcnMsY2FzZVJlZHVjZXJzOmQuc2xpY2VDYXNlUmVkdWNlcnNCeU5hbWUsZ2V0SW5pdGlhbFN0YXRlKCl7cmV0dXJuIGd8fChnPW8oKSksZy5nZXRJbml0aWFsU3RhdGUoKX0sZ2V0U2VsZWN0b3JzKHM9bCl7bGV0IEE9VSh5LHRoaXMse2luc2VydDooKT0+bmV3IFdlYWtNYXB9KTtyZXR1cm4gVShBLHMse2luc2VydDooKT0+e2xldCBjPXt9O2ZvcihsZXRbVCxtXW9mIE9iamVjdC5lbnRyaWVzKHIuc2VsZWN0b3JzPz97fSkpY1tUXT1MdCh0aGlzLG0scyx0aGlzIT09cCk7cmV0dXJuIGN9fSl9LHNlbGVjdFNsaWNlKHMpe2xldCBBPXNbdGhpcy5yZWR1Y2VyUGF0aF07cmV0dXJuIHR5cGVvZiBBPlwidVwiJiZ0aGlzIT09cCYmKEE9dGhpcy5nZXRJbml0aWFsU3RhdGUoKSksQX0sZ2V0IHNlbGVjdG9ycygpe3JldHVybiB0aGlzLmdldFNlbGVjdG9ycyh0aGlzLnNlbGVjdFNsaWNlKX0saW5qZWN0SW50byhzLHtyZWR1Y2VyUGF0aDpBLC4uLmN9PXt9KXtsZXQgVD1BPz90aGlzLnJlZHVjZXJQYXRoO3JldHVybiBzLmluamVjdCh7cmVkdWNlclBhdGg6VCxyZWR1Y2VyOnRoaXMucmVkdWNlcn0sYyksey4uLnRoaXMscmVkdWNlclBhdGg6VH19fTtyZXR1cm4gcH19ZnVuY3Rpb24gTHQoZSx0LG4scil7ZnVuY3Rpb24gYShpLC4uLnUpe2xldCBmPW4uY2FsbChlLGkpO3JldHVybiB0eXBlb2YgZj5cInVcIiYmciYmKGY9ZS5nZXRJbml0aWFsU3RhdGUoKSksdChmLC4uLnUpfXJldHVybiBhLnVud3JhcHBlZD10LGF9dmFyIGF0PU5lKCk7ZnVuY3Rpb24gVXQoKXtmdW5jdGlvbiBlKHQsbil7cmV0dXJue19yZWR1Y2VyRGVmaW5pdGlvblR5cGU6XCJhc3luY1RodW5rXCIscGF5bG9hZENyZWF0b3I6dCwuLi5ufX1yZXR1cm4gZS53aXRoVHlwZXM9KCk9PmUse3JlZHVjZXIodCl7cmV0dXJuIE9iamVjdC5hc3NpZ24oe1t0Lm5hbWVdKC4uLm4pe3JldHVybiB0KC4uLm4pfX1bdC5uYW1lXSx7X3JlZHVjZXJEZWZpbml0aW9uVHlwZTpcInJlZHVjZXJcIn0pfSxwcmVwYXJlZFJlZHVjZXIodCxuKXtyZXR1cm57X3JlZHVjZXJEZWZpbml0aW9uVHlwZTpcInJlZHVjZXJXaXRoUHJlcGFyZVwiLHByZXBhcmU6dCxyZWR1Y2VyOm59fSxhc3luY1RodW5rOmV9fWZ1bmN0aW9uIFd0KHt0eXBlOmUscmVkdWNlck5hbWU6dCxjcmVhdGVOb3RhdGlvbjpufSxyLGEpe2xldCBpLHU7aWYoXCJyZWR1Y2VyXCJpbiByKXtpZihuJiYhR3QocikpdGhyb3cgbmV3IEVycm9yKFMoMTcpKTtpPXIucmVkdWNlcix1PXIucHJlcGFyZX1lbHNlIGk9cjthLmFkZENhc2UoZSxpKS5leHBvc2VDYXNlUmVkdWNlcih0LGkpLmV4cG9zZUFjdGlvbih0LHU/TShlLHUpOk0oZSkpfWZ1bmN0aW9uIHp0KGUpe3JldHVybiBlLl9yZWR1Y2VyRGVmaW5pdGlvblR5cGU9PT1cImFzeW5jVGh1bmtcIn1mdW5jdGlvbiBHdChlKXtyZXR1cm4gZS5fcmVkdWNlckRlZmluaXRpb25UeXBlPT09XCJyZWR1Y2VyV2l0aFByZXBhcmVcIn1mdW5jdGlvbiBCdCh7dHlwZTplLHJlZHVjZXJOYW1lOnR9LG4scixhKXtpZighYSl0aHJvdyBuZXcgRXJyb3IoUygxOCkpO2xldHtwYXlsb2FkQ3JlYXRvcjppLGZ1bGZpbGxlZDp1LHBlbmRpbmc6ZixyZWplY3RlZDpkLHNldHRsZWQ6aCxvcHRpb25zOm99PW4sbD1hKGUsaSxvKTtyLmV4cG9zZUFjdGlvbih0LGwpLHUmJnIuYWRkQ2FzZShsLmZ1bGZpbGxlZCx1KSxmJiZyLmFkZENhc2UobC5wZW5kaW5nLGYpLGQmJnIuYWRkQ2FzZShsLnJlamVjdGVkLGQpLGgmJnIuYWRkTWF0Y2hlcihsLnNldHRsZWQsaCksci5leHBvc2VDYXNlUmVkdWNlcih0LHtmdWxmaWxsZWQ6dXx8ZGUscGVuZGluZzpmfHxkZSxyZWplY3RlZDpkfHxkZSxzZXR0bGVkOmh8fGRlfSl9ZnVuY3Rpb24gZGUoKXt9ZnVuY3Rpb24gS3QoKXtyZXR1cm57aWRzOltdLGVudGl0aWVzOnt9fX1mdW5jdGlvbiBvdCgpe2Z1bmN0aW9uIGUodD17fSl7cmV0dXJuIE9iamVjdC5hc3NpZ24oS3QoKSx0KX1yZXR1cm57Z2V0SW5pdGlhbFN0YXRlOmV9fWZ1bmN0aW9uIGl0KCl7ZnVuY3Rpb24gZSh0LG49e30pe2xldHtjcmVhdGVTZWxlY3RvcjpyPUp9PW4sYT1sPT5sLmlkcyxpPWw9PmwuZW50aXRpZXMsdT1yKGEsaSwobCx5KT0+bC5tYXAoZz0+eVtnXSkpLGY9KGwseSk9PnksZD0obCx5KT0+bFt5XSxoPXIoYSxsPT5sLmxlbmd0aCk7aWYoIXQpcmV0dXJue3NlbGVjdElkczphLHNlbGVjdEVudGl0aWVzOmksc2VsZWN0QWxsOnUsc2VsZWN0VG90YWw6aCxzZWxlY3RCeUlkOnIoaSxmLGQpfTtsZXQgbz1yKHQsaSk7cmV0dXJue3NlbGVjdElkczpyKHQsYSksc2VsZWN0RW50aXRpZXM6byxzZWxlY3RBbGw6cih0LHUpLHNlbGVjdFRvdGFsOnIodCxoKSxzZWxlY3RCeUlkOnIobyxmLGQpfX1yZXR1cm57Z2V0U2VsZWN0b3JzOmV9fXZhciB1ZT1yZXF1aXJlKFwiaW1tZXJcIik7dmFyIEh0PXVlLmlzRHJhZnQ7ZnVuY3Rpb24gc3QoZSl7bGV0IHQ9RSgobixyKT0+ZShyKSk7cmV0dXJuIGZ1bmN0aW9uKHIpe3JldHVybiB0KHIsdm9pZCAwKX19ZnVuY3Rpb24gRShlKXtyZXR1cm4gZnVuY3Rpb24obixyKXtmdW5jdGlvbiBhKHUpe3JldHVybiBaKHUpfWxldCBpPXU9PnthKHIpP2Uoci5wYXlsb2FkLHUpOmUocix1KX07cmV0dXJuIEh0KG4pPyhpKG4pLG4pOigwLHVlLnByb2R1Y2UpKG4saSl9fWZ1bmN0aW9uIEYoZSx0KXtyZXR1cm4gdChlKX1mdW5jdGlvbiB2KGUpe3JldHVybiBBcnJheS5pc0FycmF5KGUpfHwoZT1PYmplY3QudmFsdWVzKGUpKSxlfWZ1bmN0aW9uIGxlKGUsdCxuKXtlPXYoZSk7bGV0IHI9W10sYT1bXTtmb3IobGV0IGkgb2YgZSl7bGV0IHU9RihpLHQpO3UgaW4gbi5lbnRpdGllcz9hLnB1c2goe2lkOnUsY2hhbmdlczppfSk6ci5wdXNoKGkpfXJldHVybltyLGFdfWZ1bmN0aW9uIHBlKGUpe2Z1bmN0aW9uIHQocCxzKXtsZXQgQT1GKHAsZSk7QSBpbiBzLmVudGl0aWVzfHwocy5pZHMucHVzaChBKSxzLmVudGl0aWVzW0FdPXApfWZ1bmN0aW9uIG4ocCxzKXtwPXYocCk7Zm9yKGxldCBBIG9mIHApdChBLHMpfWZ1bmN0aW9uIHIocCxzKXtsZXQgQT1GKHAsZSk7QSBpbiBzLmVudGl0aWVzfHxzLmlkcy5wdXNoKEEpLHMuZW50aXRpZXNbQV09cH1mdW5jdGlvbiBhKHAscyl7cD12KHApO2ZvcihsZXQgQSBvZiBwKXIoQSxzKX1mdW5jdGlvbiBpKHAscyl7cD12KHApLHMuaWRzPVtdLHMuZW50aXRpZXM9e30sbihwLHMpfWZ1bmN0aW9uIHUocCxzKXtyZXR1cm4gZihbcF0scyl9ZnVuY3Rpb24gZihwLHMpe2xldCBBPSExO3AuZm9yRWFjaChjPT57YyBpbiBzLmVudGl0aWVzJiYoZGVsZXRlIHMuZW50aXRpZXNbY10sQT0hMCl9KSxBJiYocy5pZHM9cy5pZHMuZmlsdGVyKGM9PmMgaW4gcy5lbnRpdGllcykpfWZ1bmN0aW9uIGQocCl7T2JqZWN0LmFzc2lnbihwLHtpZHM6W10sZW50aXRpZXM6e319KX1mdW5jdGlvbiBoKHAscyxBKXtsZXQgYz1BLmVudGl0aWVzW3MuaWRdO2lmKGM9PT12b2lkIDApcmV0dXJuITE7bGV0IFQ9T2JqZWN0LmFzc2lnbih7fSxjLHMuY2hhbmdlcyksbT1GKFQsZSkseD1tIT09cy5pZDtyZXR1cm4geCYmKHBbcy5pZF09bSxkZWxldGUgQS5lbnRpdGllc1tzLmlkXSksQS5lbnRpdGllc1ttXT1ULHh9ZnVuY3Rpb24gbyhwLHMpe3JldHVybiBsKFtwXSxzKX1mdW5jdGlvbiBsKHAscyl7bGV0IEE9e30sYz17fTtwLmZvckVhY2gobT0+e20uaWQgaW4gcy5lbnRpdGllcyYmKGNbbS5pZF09e2lkOm0uaWQsY2hhbmdlczp7Li4uY1ttLmlkXT9jW20uaWRdLmNoYW5nZXM6bnVsbCwuLi5tLmNoYW5nZXN9fSl9KSxwPU9iamVjdC52YWx1ZXMoYykscC5sZW5ndGg+MCYmcC5maWx0ZXIoeD0+aChBLHgscykpLmxlbmd0aD4wJiYocy5pZHM9T2JqZWN0LnZhbHVlcyhzLmVudGl0aWVzKS5tYXAoeD0+Rih4LGUpKSl9ZnVuY3Rpb24geShwLHMpe3JldHVybiBnKFtwXSxzKX1mdW5jdGlvbiBnKHAscyl7bGV0W0EsY109bGUocCxlLHMpO2woYyxzKSxuKEEscyl9cmV0dXJue3JlbW92ZUFsbDpzdChkKSxhZGRPbmU6RSh0KSxhZGRNYW55OkUobiksc2V0T25lOkUociksc2V0TWFueTpFKGEpLHNldEFsbDpFKGkpLHVwZGF0ZU9uZTpFKG8pLHVwZGF0ZU1hbnk6RShsKSx1cHNlcnRPbmU6RSh5KSx1cHNlcnRNYW55OkUoZykscmVtb3ZlT25lOkUodSkscmVtb3ZlTWFueTpFKGYpfX1mdW5jdGlvbiBjdChlLHQpe2xldHtyZW1vdmVPbmU6bixyZW1vdmVNYW55OnIscmVtb3ZlQWxsOmF9PXBlKGUpO2Z1bmN0aW9uIGkoYyxUKXtyZXR1cm4gdShbY10sVCl9ZnVuY3Rpb24gdShjLFQpe2M9dihjKTtsZXQgbT1jLmZpbHRlcih4PT4hKEYoeCxlKWluIFQuZW50aXRpZXMpKTttLmxlbmd0aCE9PTAmJnMobSxUKX1mdW5jdGlvbiBmKGMsVCl7cmV0dXJuIGQoW2NdLFQpfWZ1bmN0aW9uIGQoYyxUKXtjPXYoYyksYy5sZW5ndGghPT0wJiZzKGMsVCl9ZnVuY3Rpb24gaChjLFQpe2M9dihjKSxULmVudGl0aWVzPXt9LFQuaWRzPVtdLHUoYyxUKX1mdW5jdGlvbiBvKGMsVCl7cmV0dXJuIGwoW2NdLFQpfWZ1bmN0aW9uIGwoYyxUKXtsZXQgbT0hMTtmb3IobGV0IHggb2YgYyl7bGV0IFI9VC5lbnRpdGllc1t4LmlkXTtpZighUiljb250aW51ZTttPSEwLE9iamVjdC5hc3NpZ24oUix4LmNoYW5nZXMpO2xldCBEPWUoUik7eC5pZCE9PUQmJihkZWxldGUgVC5lbnRpdGllc1t4LmlkXSxULmVudGl0aWVzW0RdPVIpfW0mJkEoVCl9ZnVuY3Rpb24geShjLFQpe3JldHVybiBnKFtjXSxUKX1mdW5jdGlvbiBnKGMsVCl7bGV0W20seF09bGUoYyxlLFQpO2woeCxUKSx1KG0sVCl9ZnVuY3Rpb24gcChjLFQpe2lmKGMubGVuZ3RoIT09VC5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCBtPTA7bTxjLmxlbmd0aCYmbTxULmxlbmd0aDttKyspaWYoY1ttXSE9PVRbbV0pcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gcyhjLFQpe2MuZm9yRWFjaChtPT57VC5lbnRpdGllc1tlKG0pXT1tfSksQShUKX1mdW5jdGlvbiBBKGMpe2xldCBUPU9iamVjdC52YWx1ZXMoYy5lbnRpdGllcyk7VC5zb3J0KHQpO2xldCBtPVQubWFwKGUpLHtpZHM6eH09YztwKHgsbSl8fChjLmlkcz1tKX1yZXR1cm57cmVtb3ZlT25lOm4scmVtb3ZlTWFueTpyLHJlbW92ZUFsbDphLGFkZE9uZTpFKGkpLHVwZGF0ZU9uZTpFKG8pLHVwc2VydE9uZTpFKHkpLHNldE9uZTpFKGYpLHNldE1hbnk6RShkKSxzZXRBbGw6RShoKSxhZGRNYW55OkUodSksdXBkYXRlTWFueTpFKGwpLHVwc2VydE1hbnk6RShnKX19ZnVuY3Rpb24gZHQoZT17fSl7bGV0e3NlbGVjdElkOnQsc29ydENvbXBhcmVyOm59PXtzb3J0Q29tcGFyZXI6ITEsc2VsZWN0SWQ6dT0+dS5pZCwuLi5lfSxyPW90KCksYT1pdCgpLGk9bj9jdCh0LG4pOnBlKHQpO3JldHVybntzZWxlY3RJZDp0LHNvcnRDb21wYXJlcjpuLC4uLnIsLi4uYSwuLi5pfX12YXIgbXQ9cmVxdWlyZShcInJlZHV4XCIpO3ZhciBmZT0oZSx0KT0+e2lmKHR5cGVvZiBlIT1cImZ1bmN0aW9uXCIpdGhyb3cgbmV3IEVycm9yKFMoMzIpKX0seWU9KCk9Pnt9LGhlPShlLHQ9eWUpPT4oZS5jYXRjaCh0KSxlKSxBZT0oZSx0KT0+KGUuYWRkRXZlbnRMaXN0ZW5lcihcImFib3J0XCIsdCx7b25jZTohMH0pLCgpPT5lLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJhYm9ydFwiLHQpKSxWPShlLHQpPT57bGV0IG49ZS5zaWduYWw7bi5hYm9ydGVkfHwoXCJyZWFzb25cImluIG58fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLFwicmVhc29uXCIse2VudW1lcmFibGU6ITAsdmFsdWU6dCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KSxlLmFib3J0KHQpKX07dmFyICR0PVwidGFza1wiLHV0PVwibGlzdGVuZXJcIixsdD1cImNvbXBsZXRlZFwiLGplPVwiY2FuY2VsbGVkXCIscHQ9YHRhc2stJHtqZX1gLGZ0PWB0YXNrLSR7bHR9YCxUZT1gJHt1dH0tJHtqZX1gLHl0PWAke3V0fS0ke2x0fWAsUD1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLmNvZGU9dDt0aGlzLm1lc3NhZ2U9YCR7JHR9ICR7amV9IChyZWFzb246ICR7dH0pYH1uYW1lPVwiVGFza0Fib3J0RXJyb3JcIjttZXNzYWdlfTt2YXIgXz1lPT57aWYoZS5hYm9ydGVkKXtsZXR7cmVhc29uOnR9PWU7dGhyb3cgbmV3IFAodCl9fTtmdW5jdGlvbiBGZShlLHQpe2xldCBuPXllO3JldHVybiBuZXcgUHJvbWlzZSgocixhKT0+e2xldCBpPSgpPT5hKG5ldyBQKGUucmVhc29uKSk7aWYoZS5hYm9ydGVkKXtpKCk7cmV0dXJufW49QWUoZSxpKSx0LmZpbmFsbHkoKCk9Pm4oKSkudGhlbihyLGEpfSkuZmluYWxseSgoKT0+e249eWV9KX12YXIgaHQ9YXN5bmMoZSx0KT0+e3RyeXtyZXR1cm4gYXdhaXQgUHJvbWlzZS5yZXNvbHZlKCkse3N0YXR1czpcIm9rXCIsdmFsdWU6YXdhaXQgZSgpfX1jYXRjaChuKXtyZXR1cm57c3RhdHVzOm4gaW5zdGFuY2VvZiBQP1wiY2FuY2VsbGVkXCI6XCJyZWplY3RlZFwiLGVycm9yOm59fWZpbmFsbHl7dD8uKCl9fSwkPWU9PnQ9PmhlKEZlKGUsdCkudGhlbihuPT4oXyhlKSxuKSkpLFZlPWU9PntsZXQgdD0kKGUpO3JldHVybiBuPT50KG5ldyBQcm9taXNlKHI9PnNldFRpbWVvdXQocixuKSkpfTt2YXJ7YXNzaWduOnF0fT1PYmplY3QsQXQ9e30sbWU9XCJsaXN0ZW5lck1pZGRsZXdhcmVcIixYdD0oZSx0KT0+e2xldCBuPXI9PkFlKGUsKCk9PlYocixlLnJlYXNvbikpO3JldHVybihyLGEpPT57ZmUocixcInRhc2tFeGVjdXRvclwiKTtsZXQgaT1uZXcgQWJvcnRDb250cm9sbGVyO24oaSk7bGV0IHU9aHQoYXN5bmMoKT0+e18oZSksXyhpLnNpZ25hbCk7bGV0IGY9YXdhaXQgcih7cGF1c2U6JChpLnNpZ25hbCksZGVsYXk6VmUoaS5zaWduYWwpLHNpZ25hbDppLnNpZ25hbH0pO3JldHVybiBfKGkuc2lnbmFsKSxmfSwoKT0+VihpLGZ0KSk7cmV0dXJuIGE/LmF1dG9Kb2luJiZ0LnB1c2godSkse3Jlc3VsdDokKGUpKHUpLGNhbmNlbCgpe1YoaSxwdCl9fX19LEp0PShlLHQpPT57bGV0IG49YXN5bmMocixhKT0+e18odCk7bGV0IGk9KCk9Pnt9LGY9W25ldyBQcm9taXNlKChkLGgpPT57bGV0IG89ZSh7cHJlZGljYXRlOnIsZWZmZWN0OihsLHkpPT57eS51bnN1YnNjcmliZSgpLGQoW2wseS5nZXRTdGF0ZSgpLHkuZ2V0T3JpZ2luYWxTdGF0ZSgpXSl9fSk7aT0oKT0+e28oKSxoKCl9fSldO2EhPW51bGwmJmYucHVzaChuZXcgUHJvbWlzZShkPT5zZXRUaW1lb3V0KGQsYSxudWxsKSkpO3RyeXtsZXQgZD1hd2FpdCBGZSh0LFByb21pc2UucmFjZShmKSk7cmV0dXJuIF8odCksZH1maW5hbGx5e2koKX19O3JldHVybihyLGEpPT5oZShuKHIsYSkpfSxTdD1lPT57bGV0e3R5cGU6dCxhY3Rpb25DcmVhdG9yOm4sbWF0Y2hlcjpyLHByZWRpY2F0ZTphLGVmZmVjdDppfT1lO2lmKHQpYT1NKHQpLm1hdGNoO2Vsc2UgaWYobil0PW4udHlwZSxhPW4ubWF0Y2g7ZWxzZSBpZihyKWE9cjtlbHNlIGlmKCFhKXRocm93IG5ldyBFcnJvcihTKDIxKSk7cmV0dXJuIGZlKGksXCJvcHRpb25zLmxpc3RlbmVyXCIpLHtwcmVkaWNhdGU6YSx0eXBlOnQsZWZmZWN0Oml9fSxRdD1lPT57bGV0e3R5cGU6dCxwcmVkaWNhdGU6bixlZmZlY3Q6cn09U3QoZSk7cmV0dXJue2lkOncoKSxlZmZlY3Q6cix0eXBlOnQscHJlZGljYXRlOm4scGVuZGluZzpuZXcgU2V0LHVuc3Vic2NyaWJlOigpPT57dGhyb3cgbmV3IEVycm9yKFMoMjIpKX19fSxfZT1lPT57ZS5wZW5kaW5nLmZvckVhY2godD0+e1YodCxUZSl9KX0sWXQ9ZT0+KCk9PntlLmZvckVhY2goX2UpLGUuY2xlYXIoKX0sVHQ9KGUsdCxuKT0+e3RyeXtlKHQsbil9Y2F0Y2gocil7c2V0VGltZW91dCgoKT0+e3Rocm93IHJ9LDApfX0sTGU9TShgJHttZX0vYWRkYCksVWU9TShgJHttZX0vcmVtb3ZlQWxsYCksV2U9TShgJHttZX0vcmVtb3ZlYCksWnQ9KC4uLmUpPT57Y29uc29sZS5lcnJvcihgJHttZX0vZXJyb3JgLC4uLmUpfTtmdW5jdGlvbiBrdChlPXt9KXtsZXQgdD1uZXcgTWFwLHtleHRyYTpuLG9uRXJyb3I6cj1adH09ZTtmZShyLFwib25FcnJvclwiKTtsZXQgYT1vPT4oby51bnN1YnNjcmliZT0oKT0+dC5kZWxldGUoby5pZCksdC5zZXQoby5pZCxvKSxsPT57by51bnN1YnNjcmliZSgpLGw/LmNhbmNlbEFjdGl2ZSYmX2Uobyl9KSxpPW89PntsZXQgbD1HKEFycmF5LmZyb20odC52YWx1ZXMoKSkseT0+eS5lZmZlY3Q9PT1vLmVmZmVjdCk7cmV0dXJuIGx8fChsPVF0KG8pKSxhKGwpfSx1PW89PntsZXR7dHlwZTpsLGVmZmVjdDp5LHByZWRpY2F0ZTpnfT1TdChvKSxwPUcoQXJyYXkuZnJvbSh0LnZhbHVlcygpKSxzPT4odHlwZW9mIGw9PVwic3RyaW5nXCI/cy50eXBlPT09bDpzLnByZWRpY2F0ZT09PWcpJiZzLmVmZmVjdD09PXkpO3JldHVybiBwJiYocC51bnN1YnNjcmliZSgpLG8uY2FuY2VsQWN0aXZlJiZfZShwKSksISFwfSxmPWFzeW5jKG8sbCx5LGcpPT57bGV0IHA9bmV3IEFib3J0Q29udHJvbGxlcixzPUp0KGkscC5zaWduYWwpLEE9W107dHJ5e28ucGVuZGluZy5hZGQocCksYXdhaXQgUHJvbWlzZS5yZXNvbHZlKG8uZWZmZWN0KGwscXQoe30seSx7Z2V0T3JpZ2luYWxTdGF0ZTpnLGNvbmRpdGlvbjooYyxUKT0+cyhjLFQpLnRoZW4oQm9vbGVhbiksdGFrZTpzLGRlbGF5OlZlKHAuc2lnbmFsKSxwYXVzZTokKHAuc2lnbmFsKSxleHRyYTpuLHNpZ25hbDpwLnNpZ25hbCxmb3JrOlh0KHAuc2lnbmFsLEEpLHVuc3Vic2NyaWJlOm8udW5zdWJzY3JpYmUsc3Vic2NyaWJlOigpPT57dC5zZXQoby5pZCxvKX0sY2FuY2VsQWN0aXZlTGlzdGVuZXJzOigpPT57by5wZW5kaW5nLmZvckVhY2goKGMsVCxtKT0+e2MhPT1wJiYoVihjLFRlKSxtLmRlbGV0ZShjKSl9KX0sY2FuY2VsOigpPT57VihwLFRlKSxvLnBlbmRpbmcuZGVsZXRlKHApfSx0aHJvd0lmQ2FuY2VsbGVkOigpPT57XyhwLnNpZ25hbCl9fSkpKX1jYXRjaChjKXtjIGluc3RhbmNlb2YgUHx8VHQocixjLHtyYWlzZWRCeTpcImVmZmVjdFwifSl9ZmluYWxseXthd2FpdCBQcm9taXNlLmFsbFNldHRsZWQoQSksVihwLHl0KSxvLnBlbmRpbmcuZGVsZXRlKHApfX0sZD1ZdCh0KTtyZXR1cm57bWlkZGxld2FyZTpvPT5sPT55PT57aWYoISgwLG10LmlzQWN0aW9uKSh5KSlyZXR1cm4gbCh5KTtpZihMZS5tYXRjaCh5KSlyZXR1cm4gaSh5LnBheWxvYWQpO2lmKFVlLm1hdGNoKHkpKXtkKCk7cmV0dXJufWlmKFdlLm1hdGNoKHkpKXJldHVybiB1KHkucGF5bG9hZCk7bGV0IGc9by5nZXRTdGF0ZSgpLHA9KCk9PntpZihnPT09QXQpdGhyb3cgbmV3IEVycm9yKFMoMjMpKTtyZXR1cm4gZ30sczt0cnl7aWYocz1sKHkpLHQuc2l6ZT4wKXtsZXQgQT1vLmdldFN0YXRlKCksYz1BcnJheS5mcm9tKHQudmFsdWVzKCkpO2ZvcihsZXQgVCBvZiBjKXtsZXQgbT0hMTt0cnl7bT1ULnByZWRpY2F0ZSh5LEEsZyl9Y2F0Y2goeCl7bT0hMSxUdChyLHgse3JhaXNlZEJ5OlwicHJlZGljYXRlXCJ9KX1tJiZmKFQseSxvLHApfX19ZmluYWxseXtnPUF0fXJldHVybiBzfSxzdGFydExpc3RlbmluZzppLHN0b3BMaXN0ZW5pbmc6dSxjbGVhckxpc3RlbmVyczpkfX12YXIgZ3Q9cmVxdWlyZShcInJlZHV4XCIpO3ZhciBlbj1lPT4oe2lkOncoKSxtaWRkbGV3YXJlOmUsYXBwbGllZDpuZXcgTWFwfSksdG49ZT0+dD0+dD8ubWV0YT8uaW5zdGFuY2VJZD09PWUseHQ9KCk9PntsZXQgZT13KCksdD1uZXcgTWFwLG49T2JqZWN0LmFzc2lnbihNKFwiZHluYW1pY01pZGRsZXdhcmUvYWRkXCIsKC4uLmYpPT4oe3BheWxvYWQ6ZixtZXRhOntpbnN0YW5jZUlkOmV9fSkpLHt3aXRoVHlwZXM6KCk9Pm59KSxyPU9iamVjdC5hc3NpZ24oZnVuY3Rpb24oLi4uZCl7ZC5mb3JFYWNoKGg9PntsZXQgbz1HKEFycmF5LmZyb20odC52YWx1ZXMoKSksbD0+bC5taWRkbGV3YXJlPT09aCk7b3x8KG89ZW4oaCkpLHQuc2V0KG8uaWQsbyl9KX0se3dpdGhUeXBlczooKT0+cn0pLGE9Zj0+e2xldCBkPUFycmF5LmZyb20odC52YWx1ZXMoKSkubWFwKGg9PlUoaC5hcHBsaWVkLGYse2luc2VydDooKT0+aC5taWRkbGV3YXJlKGYpfSkpO3JldHVybigwLGd0LmNvbXBvc2UpKC4uLmQpfSxpPXoobix0bihlKSk7cmV0dXJue21pZGRsZXdhcmU6Zj0+ZD0+aD0+aShoKT8ociguLi5oLnBheWxvYWQpLGYuZGlzcGF0Y2gpOmEoZikoZCkoaCksYWRkTWlkZGxld2FyZTpyLHdpdGhNaWRkbGV3YXJlOm4saW5zdGFuY2VJZDplfX07dmFyIEN0PXJlcXVpcmUoXCJyZWR1eFwiKTt2YXIgbm49ZT0+XCJyZWR1Y2VyUGF0aFwiaW4gZSYmdHlwZW9mIGUucmVkdWNlclBhdGg9PVwic3RyaW5nXCIscm49ZT0+ZS5mbGF0TWFwKHQ9Pm5uKHQpP1tbdC5yZWR1Y2VyUGF0aCx0LnJlZHVjZXJdXTpPYmplY3QuZW50cmllcyh0KSksemU9U3ltYm9sLmZvcihcInJ0ay1zdGF0ZS1wcm94eS1vcmlnaW5hbFwiKSxhbj1lPT4hIWUmJiEhZVt6ZV0sb249bmV3IFdlYWtNYXAsc249KGUsdCk9PlUob24sZSx7aW5zZXJ0OigpPT5uZXcgUHJveHkoZSx7Z2V0OihuLHIsYSk9PntpZihyPT09emUpcmV0dXJuIG47bGV0IGk9UmVmbGVjdC5nZXQobixyLGEpO2lmKHR5cGVvZiBpPlwidVwiKXtsZXQgdT10W3IudG9TdHJpbmcoKV07aWYodSl7bGV0IGY9dSh2b2lkIDAse3R5cGU6dygpfSk7aWYodHlwZW9mIGY+XCJ1XCIpdGhyb3cgbmV3IEVycm9yKFMoMjQpKTtyZXR1cm4gZn19cmV0dXJuIGl9fSl9KSxjbj1lPT57aWYoIWFuKGUpKXRocm93IG5ldyBFcnJvcihTKDI1KSk7cmV0dXJuIGVbemVdfTtmdW5jdGlvbiBFdCguLi5lKXtsZXQgdD1PYmplY3QuZnJvbUVudHJpZXMocm4oZSkpLG49KCk9PigwLEN0LmNvbWJpbmVSZWR1Y2VycykodCkscj1uKCk7ZnVuY3Rpb24gYShmLGQpe3JldHVybiByKGYsZCl9YS53aXRoTGF6eUxvYWRlZFNsaWNlcz0oKT0+YTtsZXQgaT0oZixkPXt9KT0+e2xldHtyZWR1Y2VyUGF0aDpoLHJlZHVjZXI6b309ZixsPXRbaF07cmV0dXJuIWQub3ZlcnJpZGVFeGlzdGluZyYmbCYmbCE9PW8/KHR5cGVvZiBwcm9jZXNzPFwidVwiLGEpOih0W2hdPW8scj1uKCksYSl9LHU9T2JqZWN0LmFzc2lnbihmdW5jdGlvbihkLGgpe3JldHVybiBmdW5jdGlvbihsLC4uLnkpe3JldHVybiBkKHNuKGg/aChsLC4uLnkpOmwsdCksLi4ueSl9fSx7b3JpZ2luYWw6Y259KTtyZXR1cm4gT2JqZWN0LmFzc2lnbihhLHtpbmplY3Q6aSxzZWxlY3Rvcjp1fSl9ZnVuY3Rpb24gUyhlKXtyZXR1cm5gTWluaWZpZWQgUmVkdXggVG9vbGtpdCBlcnJvciAjJHtlfTsgdmlzaXQgaHR0cHM6Ly9yZWR1eC10b29sa2l0LmpzLm9yZy9FcnJvcnM/Y29kZT0ke2V9IGZvciB0aGUgZnVsbCBtZXNzYWdlIG9yIHVzZSB0aGUgbm9uLW1pbmlmaWVkIGRldiBlbnZpcm9ubWVudCBmb3IgZnVsbCBlcnJvcnMuIGB9XG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZWR1eC10b29sa2l0LnByb2R1Y3Rpb24ubWluLmNqcy5tYXAiLCJcbi8qKlxuICogVGhpcyBpcyB0aGUgY29tbW9uIGxvZ2ljIGZvciBib3RoIHRoZSBOb2RlLmpzIGFuZCB3ZWIgYnJvd3NlclxuICogaW1wbGVtZW50YXRpb25zIG9mIGBkZWJ1ZygpYC5cbiAqL1xuXG5mdW5jdGlvbiBzZXR1cChlbnYpIHtcblx0Y3JlYXRlRGVidWcuZGVidWcgPSBjcmVhdGVEZWJ1Zztcblx0Y3JlYXRlRGVidWcuZGVmYXVsdCA9IGNyZWF0ZURlYnVnO1xuXHRjcmVhdGVEZWJ1Zy5jb2VyY2UgPSBjb2VyY2U7XG5cdGNyZWF0ZURlYnVnLmRpc2FibGUgPSBkaXNhYmxlO1xuXHRjcmVhdGVEZWJ1Zy5lbmFibGUgPSBlbmFibGU7XG5cdGNyZWF0ZURlYnVnLmVuYWJsZWQgPSBlbmFibGVkO1xuXHRjcmVhdGVEZWJ1Zy5odW1hbml6ZSA9IHJlcXVpcmUoJ21zJyk7XG5cdGNyZWF0ZURlYnVnLmRlc3Ryb3kgPSBkZXN0cm95O1xuXG5cdE9iamVjdC5rZXlzKGVudikuZm9yRWFjaChrZXkgPT4ge1xuXHRcdGNyZWF0ZURlYnVnW2tleV0gPSBlbnZba2V5XTtcblx0fSk7XG5cblx0LyoqXG5cdCogVGhlIGN1cnJlbnRseSBhY3RpdmUgZGVidWcgbW9kZSBuYW1lcywgYW5kIG5hbWVzIHRvIHNraXAuXG5cdCovXG5cblx0Y3JlYXRlRGVidWcubmFtZXMgPSBbXTtcblx0Y3JlYXRlRGVidWcuc2tpcHMgPSBbXTtcblxuXHQvKipcblx0KiBNYXAgb2Ygc3BlY2lhbCBcIiVuXCIgaGFuZGxpbmcgZnVuY3Rpb25zLCBmb3IgdGhlIGRlYnVnIFwiZm9ybWF0XCIgYXJndW1lbnQuXG5cdCpcblx0KiBWYWxpZCBrZXkgbmFtZXMgYXJlIGEgc2luZ2xlLCBsb3dlciBvciB1cHBlci1jYXNlIGxldHRlciwgaS5lLiBcIm5cIiBhbmQgXCJOXCIuXG5cdCovXG5cdGNyZWF0ZURlYnVnLmZvcm1hdHRlcnMgPSB7fTtcblxuXHQvKipcblx0KiBTZWxlY3RzIGEgY29sb3IgZm9yIGEgZGVidWcgbmFtZXNwYWNlXG5cdCogQHBhcmFtIHtTdHJpbmd9IG5hbWVzcGFjZSBUaGUgbmFtZXNwYWNlIHN0cmluZyBmb3IgdGhlIGRlYnVnIGluc3RhbmNlIHRvIGJlIGNvbG9yZWRcblx0KiBAcmV0dXJuIHtOdW1iZXJ8U3RyaW5nfSBBbiBBTlNJIGNvbG9yIGNvZGUgZm9yIHRoZSBnaXZlbiBuYW1lc3BhY2Vcblx0KiBAYXBpIHByaXZhdGVcblx0Ki9cblx0ZnVuY3Rpb24gc2VsZWN0Q29sb3IobmFtZXNwYWNlKSB7XG5cdFx0bGV0IGhhc2ggPSAwO1xuXG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBuYW1lc3BhY2UubGVuZ3RoOyBpKyspIHtcblx0XHRcdGhhc2ggPSAoKGhhc2ggPDwgNSkgLSBoYXNoKSArIG5hbWVzcGFjZS5jaGFyQ29kZUF0KGkpO1xuXHRcdFx0aGFzaCB8PSAwOyAvLyBDb252ZXJ0IHRvIDMyYml0IGludGVnZXJcblx0XHR9XG5cblx0XHRyZXR1cm4gY3JlYXRlRGVidWcuY29sb3JzW01hdGguYWJzKGhhc2gpICUgY3JlYXRlRGVidWcuY29sb3JzLmxlbmd0aF07XG5cdH1cblx0Y3JlYXRlRGVidWcuc2VsZWN0Q29sb3IgPSBzZWxlY3RDb2xvcjtcblxuXHQvKipcblx0KiBDcmVhdGUgYSBkZWJ1Z2dlciB3aXRoIHRoZSBnaXZlbiBgbmFtZXNwYWNlYC5cblx0KlxuXHQqIEBwYXJhbSB7U3RyaW5nfSBuYW1lc3BhY2Vcblx0KiBAcmV0dXJuIHtGdW5jdGlvbn1cblx0KiBAYXBpIHB1YmxpY1xuXHQqL1xuXHRmdW5jdGlvbiBjcmVhdGVEZWJ1ZyhuYW1lc3BhY2UpIHtcblx0XHRsZXQgcHJldlRpbWU7XG5cdFx0bGV0IGVuYWJsZU92ZXJyaWRlID0gbnVsbDtcblx0XHRsZXQgbmFtZXNwYWNlc0NhY2hlO1xuXHRcdGxldCBlbmFibGVkQ2FjaGU7XG5cblx0XHRmdW5jdGlvbiBkZWJ1ZyguLi5hcmdzKSB7XG5cdFx0XHQvLyBEaXNhYmxlZD9cblx0XHRcdGlmICghZGVidWcuZW5hYmxlZCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdGNvbnN0IHNlbGYgPSBkZWJ1ZztcblxuXHRcdFx0Ly8gU2V0IGBkaWZmYCB0aW1lc3RhbXBcblx0XHRcdGNvbnN0IGN1cnIgPSBOdW1iZXIobmV3IERhdGUoKSk7XG5cdFx0XHRjb25zdCBtcyA9IGN1cnIgLSAocHJldlRpbWUgfHwgY3Vycik7XG5cdFx0XHRzZWxmLmRpZmYgPSBtcztcblx0XHRcdHNlbGYucHJldiA9IHByZXZUaW1lO1xuXHRcdFx0c2VsZi5jdXJyID0gY3Vycjtcblx0XHRcdHByZXZUaW1lID0gY3VycjtcblxuXHRcdFx0YXJnc1swXSA9IGNyZWF0ZURlYnVnLmNvZXJjZShhcmdzWzBdKTtcblxuXHRcdFx0aWYgKHR5cGVvZiBhcmdzWzBdICE9PSAnc3RyaW5nJykge1xuXHRcdFx0XHQvLyBBbnl0aGluZyBlbHNlIGxldCdzIGluc3BlY3Qgd2l0aCAlT1xuXHRcdFx0XHRhcmdzLnVuc2hpZnQoJyVPJyk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIEFwcGx5IGFueSBgZm9ybWF0dGVyc2AgdHJhbnNmb3JtYXRpb25zXG5cdFx0XHRsZXQgaW5kZXggPSAwO1xuXHRcdFx0YXJnc1swXSA9IGFyZ3NbMF0ucmVwbGFjZSgvJShbYS16QS1aJV0pL2csIChtYXRjaCwgZm9ybWF0KSA9PiB7XG5cdFx0XHRcdC8vIElmIHdlIGVuY291bnRlciBhbiBlc2NhcGVkICUgdGhlbiBkb24ndCBpbmNyZWFzZSB0aGUgYXJyYXkgaW5kZXhcblx0XHRcdFx0aWYgKG1hdGNoID09PSAnJSUnKSB7XG5cdFx0XHRcdFx0cmV0dXJuICclJztcblx0XHRcdFx0fVxuXHRcdFx0XHRpbmRleCsrO1xuXHRcdFx0XHRjb25zdCBmb3JtYXR0ZXIgPSBjcmVhdGVEZWJ1Zy5mb3JtYXR0ZXJzW2Zvcm1hdF07XG5cdFx0XHRcdGlmICh0eXBlb2YgZm9ybWF0dGVyID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRcdFx0Y29uc3QgdmFsID0gYXJnc1tpbmRleF07XG5cdFx0XHRcdFx0bWF0Y2ggPSBmb3JtYXR0ZXIuY2FsbChzZWxmLCB2YWwpO1xuXG5cdFx0XHRcdFx0Ly8gTm93IHdlIG5lZWQgdG8gcmVtb3ZlIGBhcmdzW2luZGV4XWAgc2luY2UgaXQncyBpbmxpbmVkIGluIHRoZSBgZm9ybWF0YFxuXHRcdFx0XHRcdGFyZ3Muc3BsaWNlKGluZGV4LCAxKTtcblx0XHRcdFx0XHRpbmRleC0tO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBtYXRjaDtcblx0XHRcdH0pO1xuXG5cdFx0XHQvLyBBcHBseSBlbnYtc3BlY2lmaWMgZm9ybWF0dGluZyAoY29sb3JzLCBldGMuKVxuXHRcdFx0Y3JlYXRlRGVidWcuZm9ybWF0QXJncy5jYWxsKHNlbGYsIGFyZ3MpO1xuXG5cdFx0XHRjb25zdCBsb2dGbiA9IHNlbGYubG9nIHx8IGNyZWF0ZURlYnVnLmxvZztcblx0XHRcdGxvZ0ZuLmFwcGx5KHNlbGYsIGFyZ3MpO1xuXHRcdH1cblxuXHRcdGRlYnVnLm5hbWVzcGFjZSA9IG5hbWVzcGFjZTtcblx0XHRkZWJ1Zy51c2VDb2xvcnMgPSBjcmVhdGVEZWJ1Zy51c2VDb2xvcnMoKTtcblx0XHRkZWJ1Zy5jb2xvciA9IGNyZWF0ZURlYnVnLnNlbGVjdENvbG9yKG5hbWVzcGFjZSk7XG5cdFx0ZGVidWcuZXh0ZW5kID0gZXh0ZW5kO1xuXHRcdGRlYnVnLmRlc3Ryb3kgPSBjcmVhdGVEZWJ1Zy5kZXN0cm95OyAvLyBYWFggVGVtcG9yYXJ5LiBXaWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgcmVsZWFzZS5cblxuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkZWJ1ZywgJ2VuYWJsZWQnLCB7XG5cdFx0XHRlbnVtZXJhYmxlOiB0cnVlLFxuXHRcdFx0Y29uZmlndXJhYmxlOiBmYWxzZSxcblx0XHRcdGdldDogKCkgPT4ge1xuXHRcdFx0XHRpZiAoZW5hYmxlT3ZlcnJpZGUgIT09IG51bGwpIHtcblx0XHRcdFx0XHRyZXR1cm4gZW5hYmxlT3ZlcnJpZGU7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKG5hbWVzcGFjZXNDYWNoZSAhPT0gY3JlYXRlRGVidWcubmFtZXNwYWNlcykge1xuXHRcdFx0XHRcdG5hbWVzcGFjZXNDYWNoZSA9IGNyZWF0ZURlYnVnLm5hbWVzcGFjZXM7XG5cdFx0XHRcdFx0ZW5hYmxlZENhY2hlID0gY3JlYXRlRGVidWcuZW5hYmxlZChuYW1lc3BhY2UpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmV0dXJuIGVuYWJsZWRDYWNoZTtcblx0XHRcdH0sXG5cdFx0XHRzZXQ6IHYgPT4ge1xuXHRcdFx0XHRlbmFibGVPdmVycmlkZSA9IHY7XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHQvLyBFbnYtc3BlY2lmaWMgaW5pdGlhbGl6YXRpb24gbG9naWMgZm9yIGRlYnVnIGluc3RhbmNlc1xuXHRcdGlmICh0eXBlb2YgY3JlYXRlRGVidWcuaW5pdCA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0Y3JlYXRlRGVidWcuaW5pdChkZWJ1Zyk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGRlYnVnO1xuXHR9XG5cblx0ZnVuY3Rpb24gZXh0ZW5kKG5hbWVzcGFjZSwgZGVsaW1pdGVyKSB7XG5cdFx0Y29uc3QgbmV3RGVidWcgPSBjcmVhdGVEZWJ1Zyh0aGlzLm5hbWVzcGFjZSArICh0eXBlb2YgZGVsaW1pdGVyID09PSAndW5kZWZpbmVkJyA/ICc6JyA6IGRlbGltaXRlcikgKyBuYW1lc3BhY2UpO1xuXHRcdG5ld0RlYnVnLmxvZyA9IHRoaXMubG9nO1xuXHRcdHJldHVybiBuZXdEZWJ1Zztcblx0fVxuXG5cdC8qKlxuXHQqIEVuYWJsZXMgYSBkZWJ1ZyBtb2RlIGJ5IG5hbWVzcGFjZXMuIFRoaXMgY2FuIGluY2x1ZGUgbW9kZXNcblx0KiBzZXBhcmF0ZWQgYnkgYSBjb2xvbiBhbmQgd2lsZGNhcmRzLlxuXHQqXG5cdCogQHBhcmFtIHtTdHJpbmd9IG5hbWVzcGFjZXNcblx0KiBAYXBpIHB1YmxpY1xuXHQqL1xuXHRmdW5jdGlvbiBlbmFibGUobmFtZXNwYWNlcykge1xuXHRcdGNyZWF0ZURlYnVnLnNhdmUobmFtZXNwYWNlcyk7XG5cdFx0Y3JlYXRlRGVidWcubmFtZXNwYWNlcyA9IG5hbWVzcGFjZXM7XG5cblx0XHRjcmVhdGVEZWJ1Zy5uYW1lcyA9IFtdO1xuXHRcdGNyZWF0ZURlYnVnLnNraXBzID0gW107XG5cblx0XHRsZXQgaTtcblx0XHRjb25zdCBzcGxpdCA9ICh0eXBlb2YgbmFtZXNwYWNlcyA9PT0gJ3N0cmluZycgPyBuYW1lc3BhY2VzIDogJycpLnNwbGl0KC9bXFxzLF0rLyk7XG5cdFx0Y29uc3QgbGVuID0gc3BsaXQubGVuZ3RoO1xuXG5cdFx0Zm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG5cdFx0XHRpZiAoIXNwbGl0W2ldKSB7XG5cdFx0XHRcdC8vIGlnbm9yZSBlbXB0eSBzdHJpbmdzXG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXG5cdFx0XHRuYW1lc3BhY2VzID0gc3BsaXRbaV0ucmVwbGFjZSgvXFwqL2csICcuKj8nKTtcblxuXHRcdFx0aWYgKG5hbWVzcGFjZXNbMF0gPT09ICctJykge1xuXHRcdFx0XHRjcmVhdGVEZWJ1Zy5za2lwcy5wdXNoKG5ldyBSZWdFeHAoJ14nICsgbmFtZXNwYWNlcy5zbGljZSgxKSArICckJykpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y3JlYXRlRGVidWcubmFtZXMucHVzaChuZXcgUmVnRXhwKCdeJyArIG5hbWVzcGFjZXMgKyAnJCcpKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvKipcblx0KiBEaXNhYmxlIGRlYnVnIG91dHB1dC5cblx0KlxuXHQqIEByZXR1cm4ge1N0cmluZ30gbmFtZXNwYWNlc1xuXHQqIEBhcGkgcHVibGljXG5cdCovXG5cdGZ1bmN0aW9uIGRpc2FibGUoKSB7XG5cdFx0Y29uc3QgbmFtZXNwYWNlcyA9IFtcblx0XHRcdC4uLmNyZWF0ZURlYnVnLm5hbWVzLm1hcCh0b05hbWVzcGFjZSksXG5cdFx0XHQuLi5jcmVhdGVEZWJ1Zy5za2lwcy5tYXAodG9OYW1lc3BhY2UpLm1hcChuYW1lc3BhY2UgPT4gJy0nICsgbmFtZXNwYWNlKVxuXHRcdF0uam9pbignLCcpO1xuXHRcdGNyZWF0ZURlYnVnLmVuYWJsZSgnJyk7XG5cdFx0cmV0dXJuIG5hbWVzcGFjZXM7XG5cdH1cblxuXHQvKipcblx0KiBSZXR1cm5zIHRydWUgaWYgdGhlIGdpdmVuIG1vZGUgbmFtZSBpcyBlbmFibGVkLCBmYWxzZSBvdGhlcndpc2UuXG5cdCpcblx0KiBAcGFyYW0ge1N0cmluZ30gbmFtZVxuXHQqIEByZXR1cm4ge0Jvb2xlYW59XG5cdCogQGFwaSBwdWJsaWNcblx0Ki9cblx0ZnVuY3Rpb24gZW5hYmxlZChuYW1lKSB7XG5cdFx0aWYgKG5hbWVbbmFtZS5sZW5ndGggLSAxXSA9PT0gJyonKSB7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cblx0XHRsZXQgaTtcblx0XHRsZXQgbGVuO1xuXG5cdFx0Zm9yIChpID0gMCwgbGVuID0gY3JlYXRlRGVidWcuc2tpcHMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcblx0XHRcdGlmIChjcmVhdGVEZWJ1Zy5za2lwc1tpXS50ZXN0KG5hbWUpKSB7XG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRmb3IgKGkgPSAwLCBsZW4gPSBjcmVhdGVEZWJ1Zy5uYW1lcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuXHRcdFx0aWYgKGNyZWF0ZURlYnVnLm5hbWVzW2ldLnRlc3QobmFtZSkpIHtcblx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0LyoqXG5cdCogQ29udmVydCByZWdleHAgdG8gbmFtZXNwYWNlXG5cdCpcblx0KiBAcGFyYW0ge1JlZ0V4cH0gcmVneGVwXG5cdCogQHJldHVybiB7U3RyaW5nfSBuYW1lc3BhY2Vcblx0KiBAYXBpIHByaXZhdGVcblx0Ki9cblx0ZnVuY3Rpb24gdG9OYW1lc3BhY2UocmVnZXhwKSB7XG5cdFx0cmV0dXJuIHJlZ2V4cC50b1N0cmluZygpXG5cdFx0XHQuc3Vic3RyaW5nKDIsIHJlZ2V4cC50b1N0cmluZygpLmxlbmd0aCAtIDIpXG5cdFx0XHQucmVwbGFjZSgvXFwuXFwqXFw/JC8sICcqJyk7XG5cdH1cblxuXHQvKipcblx0KiBDb2VyY2UgYHZhbGAuXG5cdCpcblx0KiBAcGFyYW0ge01peGVkfSB2YWxcblx0KiBAcmV0dXJuIHtNaXhlZH1cblx0KiBAYXBpIHByaXZhdGVcblx0Ki9cblx0ZnVuY3Rpb24gY29lcmNlKHZhbCkge1xuXHRcdGlmICh2YWwgaW5zdGFuY2VvZiBFcnJvcikge1xuXHRcdFx0cmV0dXJuIHZhbC5zdGFjayB8fCB2YWwubWVzc2FnZTtcblx0XHR9XG5cdFx0cmV0dXJuIHZhbDtcblx0fVxuXG5cdC8qKlxuXHQqIFhYWCBETyBOT1QgVVNFLiBUaGlzIGlzIGEgdGVtcG9yYXJ5IHN0dWIgZnVuY3Rpb24uXG5cdCogWFhYIEl0IFdJTEwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciByZWxlYXNlLlxuXHQqL1xuXHRmdW5jdGlvbiBkZXN0cm95KCkge1xuXHRcdGNvbnNvbGUud2FybignSW5zdGFuY2UgbWV0aG9kIGBkZWJ1Zy5kZXN0cm95KClgIGlzIGRlcHJlY2F0ZWQgYW5kIG5vIGxvbmdlciBkb2VzIGFueXRoaW5nLiBJdCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiBvZiBgZGVidWdgLicpO1xuXHR9XG5cblx0Y3JlYXRlRGVidWcuZW5hYmxlKGNyZWF0ZURlYnVnLmxvYWQoKSk7XG5cblx0cmV0dXJuIGNyZWF0ZURlYnVnO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHNldHVwO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmRlZmF1bHRCaW5hcnlUeXBlID0gZXhwb3J0cy51c2luZ0Jyb3dzZXJXZWJTb2NrZXQgPSBleHBvcnRzLldlYlNvY2tldCA9IGV4cG9ydHMubmV4dFRpY2sgPSB2b2lkIDA7XG5jb25zdCBnbG9iYWxUaGlzX2pzXzEgPSByZXF1aXJlKFwiLi4vZ2xvYmFsVGhpcy5qc1wiKTtcbmV4cG9ydHMubmV4dFRpY2sgPSAoKCkgPT4ge1xuICAgIGNvbnN0IGlzUHJvbWlzZUF2YWlsYWJsZSA9IHR5cGVvZiBQcm9taXNlID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFByb21pc2UucmVzb2x2ZSA9PT0gXCJmdW5jdGlvblwiO1xuICAgIGlmIChpc1Byb21pc2VBdmFpbGFibGUpIHtcbiAgICAgICAgcmV0dXJuIChjYikgPT4gUHJvbWlzZS5yZXNvbHZlKCkudGhlbihjYik7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICByZXR1cm4gKGNiLCBzZXRUaW1lb3V0Rm4pID0+IHNldFRpbWVvdXRGbihjYiwgMCk7XG4gICAgfVxufSkoKTtcbmV4cG9ydHMuV2ViU29ja2V0ID0gZ2xvYmFsVGhpc19qc18xLmdsb2JhbFRoaXNTaGltLldlYlNvY2tldCB8fCBnbG9iYWxUaGlzX2pzXzEuZ2xvYmFsVGhpc1NoaW0uTW96V2ViU29ja2V0O1xuZXhwb3J0cy51c2luZ0Jyb3dzZXJXZWJTb2NrZXQgPSB0cnVlO1xuZXhwb3J0cy5kZWZhdWx0QmluYXJ5VHlwZSA9IFwiYXJyYXlidWZmZXJcIjtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5oYXNDT1JTID0gdm9pZCAwO1xuLy8gaW1wb3J0ZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vY29tcG9uZW50L2hhcy1jb3JzXG5sZXQgdmFsdWUgPSBmYWxzZTtcbnRyeSB7XG4gICAgdmFsdWUgPSB0eXBlb2YgWE1MSHR0cFJlcXVlc3QgIT09ICd1bmRlZmluZWQnICYmXG4gICAgICAgICd3aXRoQ3JlZGVudGlhbHMnIGluIG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xufVxuY2F0Y2ggKGVycikge1xuICAgIC8vIGlmIFhNTEh0dHAgc3VwcG9ydCBpcyBkaXNhYmxlZCBpbiBJRSB0aGVuIGl0IHdpbGwgdGhyb3dcbiAgICAvLyB3aGVuIHRyeWluZyB0byBjcmVhdGVcbn1cbmV4cG9ydHMuaGFzQ09SUyA9IHZhbHVlO1xuIiwiLyoqXG4gKiBJbml0aWFsaXplIGEgbmV3IGBFbWl0dGVyYC5cbiAqXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbmV4cG9ydCBmdW5jdGlvbiBFbWl0dGVyKG9iaikge1xuICBpZiAob2JqKSByZXR1cm4gbWl4aW4ob2JqKTtcbn1cblxuLyoqXG4gKiBNaXhpbiB0aGUgZW1pdHRlciBwcm9wZXJ0aWVzLlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmpcbiAqIEByZXR1cm4ge09iamVjdH1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIG1peGluKG9iaikge1xuICBmb3IgKHZhciBrZXkgaW4gRW1pdHRlci5wcm90b3R5cGUpIHtcbiAgICBvYmpba2V5XSA9IEVtaXR0ZXIucHJvdG90eXBlW2tleV07XG4gIH1cbiAgcmV0dXJuIG9iajtcbn1cblxuLyoqXG4gKiBMaXN0ZW4gb24gdGhlIGdpdmVuIGBldmVudGAgd2l0aCBgZm5gLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBldmVudFxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm5cbiAqIEByZXR1cm4ge0VtaXR0ZXJ9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbkVtaXR0ZXIucHJvdG90eXBlLm9uID1cbkVtaXR0ZXIucHJvdG90eXBlLmFkZEV2ZW50TGlzdGVuZXIgPSBmdW5jdGlvbihldmVudCwgZm4pe1xuICB0aGlzLl9jYWxsYmFja3MgPSB0aGlzLl9jYWxsYmFja3MgfHwge307XG4gICh0aGlzLl9jYWxsYmFja3NbJyQnICsgZXZlbnRdID0gdGhpcy5fY2FsbGJhY2tzWyckJyArIGV2ZW50XSB8fCBbXSlcbiAgICAucHVzaChmbik7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBBZGRzIGFuIGBldmVudGAgbGlzdGVuZXIgdGhhdCB3aWxsIGJlIGludm9rZWQgYSBzaW5nbGVcbiAqIHRpbWUgdGhlbiBhdXRvbWF0aWNhbGx5IHJlbW92ZWQuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGV2ZW50XG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmblxuICogQHJldHVybiB7RW1pdHRlcn1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxuRW1pdHRlci5wcm90b3R5cGUub25jZSA9IGZ1bmN0aW9uKGV2ZW50LCBmbil7XG4gIGZ1bmN0aW9uIG9uKCkge1xuICAgIHRoaXMub2ZmKGV2ZW50LCBvbik7XG4gICAgZm4uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfVxuXG4gIG9uLmZuID0gZm47XG4gIHRoaXMub24oZXZlbnQsIG9uKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgZ2l2ZW4gY2FsbGJhY2sgZm9yIGBldmVudGAgb3IgYWxsXG4gKiByZWdpc3RlcmVkIGNhbGxiYWNrcy5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gZXZlbnRcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuXG4gKiBAcmV0dXJuIHtFbWl0dGVyfVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5FbWl0dGVyLnByb3RvdHlwZS5vZmYgPVxuRW1pdHRlci5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXIgPVxuRW1pdHRlci5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzID1cbkVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUV2ZW50TGlzdGVuZXIgPSBmdW5jdGlvbihldmVudCwgZm4pe1xuICB0aGlzLl9jYWxsYmFja3MgPSB0aGlzLl9jYWxsYmFja3MgfHwge307XG5cbiAgLy8gYWxsXG4gIGlmICgwID09IGFyZ3VtZW50cy5sZW5ndGgpIHtcbiAgICB0aGlzLl9jYWxsYmFja3MgPSB7fTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8vIHNwZWNpZmljIGV2ZW50XG4gIHZhciBjYWxsYmFja3MgPSB0aGlzLl9jYWxsYmFja3NbJyQnICsgZXZlbnRdO1xuICBpZiAoIWNhbGxiYWNrcykgcmV0dXJuIHRoaXM7XG5cbiAgLy8gcmVtb3ZlIGFsbCBoYW5kbGVyc1xuICBpZiAoMSA9PSBhcmd1bWVudHMubGVuZ3RoKSB7XG4gICAgZGVsZXRlIHRoaXMuX2NhbGxiYWNrc1snJCcgKyBldmVudF07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvLyByZW1vdmUgc3BlY2lmaWMgaGFuZGxlclxuICB2YXIgY2I7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgY2FsbGJhY2tzLmxlbmd0aDsgaSsrKSB7XG4gICAgY2IgPSBjYWxsYmFja3NbaV07XG4gICAgaWYgKGNiID09PSBmbiB8fCBjYi5mbiA9PT0gZm4pIHtcbiAgICAgIGNhbGxiYWNrcy5zcGxpY2UoaSwgMSk7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICAvLyBSZW1vdmUgZXZlbnQgc3BlY2lmaWMgYXJyYXlzIGZvciBldmVudCB0eXBlcyB0aGF0IG5vXG4gIC8vIG9uZSBpcyBzdWJzY3JpYmVkIGZvciB0byBhdm9pZCBtZW1vcnkgbGVhay5cbiAgaWYgKGNhbGxiYWNrcy5sZW5ndGggPT09IDApIHtcbiAgICBkZWxldGUgdGhpcy5fY2FsbGJhY2tzWyckJyArIGV2ZW50XTtcbiAgfVxuXG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBFbWl0IGBldmVudGAgd2l0aCB0aGUgZ2l2ZW4gYXJncy5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gZXZlbnRcbiAqIEBwYXJhbSB7TWl4ZWR9IC4uLlxuICogQHJldHVybiB7RW1pdHRlcn1cbiAqL1xuXG5FbWl0dGVyLnByb3RvdHlwZS5lbWl0ID0gZnVuY3Rpb24oZXZlbnQpe1xuICB0aGlzLl9jYWxsYmFja3MgPSB0aGlzLl9jYWxsYmFja3MgfHwge307XG5cbiAgdmFyIGFyZ3MgPSBuZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aCAtIDEpXG4gICAgLCBjYWxsYmFja3MgPSB0aGlzLl9jYWxsYmFja3NbJyQnICsgZXZlbnRdO1xuXG4gIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgYXJnc1tpIC0gMV0gPSBhcmd1bWVudHNbaV07XG4gIH1cblxuICBpZiAoY2FsbGJhY2tzKSB7XG4gICAgY2FsbGJhY2tzID0gY2FsbGJhY2tzLnNsaWNlKDApO1xuICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBjYWxsYmFja3MubGVuZ3RoOyBpIDwgbGVuOyArK2kpIHtcbiAgICAgIGNhbGxiYWNrc1tpXS5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGhpcztcbn07XG5cbi8vIGFsaWFzIHVzZWQgZm9yIHJlc2VydmVkIGV2ZW50cyAocHJvdGVjdGVkIG1ldGhvZClcbkVtaXR0ZXIucHJvdG90eXBlLmVtaXRSZXNlcnZlZCA9IEVtaXR0ZXIucHJvdG90eXBlLmVtaXQ7XG5cbi8qKlxuICogUmV0dXJuIGFycmF5IG9mIGNhbGxiYWNrcyBmb3IgYGV2ZW50YC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gZXZlbnRcbiAqIEByZXR1cm4ge0FycmF5fVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5FbWl0dGVyLnByb3RvdHlwZS5saXN0ZW5lcnMgPSBmdW5jdGlvbihldmVudCl7XG4gIHRoaXMuX2NhbGxiYWNrcyA9IHRoaXMuX2NhbGxiYWNrcyB8fCB7fTtcbiAgcmV0dXJuIHRoaXMuX2NhbGxiYWNrc1snJCcgKyBldmVudF0gfHwgW107XG59O1xuXG4vKipcbiAqIENoZWNrIGlmIHRoaXMgZW1pdHRlciBoYXMgYGV2ZW50YCBoYW5kbGVycy5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gZXZlbnRcbiAqIEByZXR1cm4ge0Jvb2xlYW59XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbkVtaXR0ZXIucHJvdG90eXBlLmhhc0xpc3RlbmVycyA9IGZ1bmN0aW9uKGV2ZW50KXtcbiAgcmV0dXJuICEhIHRoaXMubGlzdGVuZXJzKGV2ZW50KS5sZW5ndGg7XG59O1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLldUID0gdm9pZCAwO1xuY29uc3QgdHJhbnNwb3J0X2pzXzEgPSByZXF1aXJlKFwiLi4vdHJhbnNwb3J0LmpzXCIpO1xuY29uc3Qgd2Vic29ja2V0X2NvbnN0cnVjdG9yX2pzXzEgPSByZXF1aXJlKFwiLi93ZWJzb2NrZXQtY29uc3RydWN0b3IuanNcIik7XG5jb25zdCBlbmdpbmVfaW9fcGFyc2VyXzEgPSByZXF1aXJlKFwiZW5naW5lLmlvLXBhcnNlclwiKTtcbmNvbnN0IGRlYnVnXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcImRlYnVnXCIpKTsgLy8gZGVidWcoKVxuY29uc3QgZGVidWcgPSAoMCwgZGVidWdfMS5kZWZhdWx0KShcImVuZ2luZS5pby1jbGllbnQ6d2VidHJhbnNwb3J0XCIpOyAvLyBkZWJ1ZygpXG5jbGFzcyBXVCBleHRlbmRzIHRyYW5zcG9ydF9qc18xLlRyYW5zcG9ydCB7XG4gICAgZ2V0IG5hbWUoKSB7XG4gICAgICAgIHJldHVybiBcIndlYnRyYW5zcG9ydFwiO1xuICAgIH1cbiAgICBkb09wZW4oKSB7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgaWYgKHR5cGVvZiBXZWJUcmFuc3BvcnQgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgdGhpcy50cmFuc3BvcnQgPSBuZXcgV2ViVHJhbnNwb3J0KHRoaXMuY3JlYXRlVXJpKFwiaHR0cHNcIiksIHRoaXMub3B0cy50cmFuc3BvcnRPcHRpb25zW3RoaXMubmFtZV0pO1xuICAgICAgICB0aGlzLnRyYW5zcG9ydC5jbG9zZWRcbiAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIGRlYnVnKFwidHJhbnNwb3J0IGNsb3NlZCBncmFjZWZ1bGx5XCIpO1xuICAgICAgICAgICAgdGhpcy5vbkNsb3NlKCk7XG4gICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgZGVidWcoXCJ0cmFuc3BvcnQgY2xvc2VkIGR1ZSB0byAlc1wiLCBlcnIpO1xuICAgICAgICAgICAgdGhpcy5vbkVycm9yKFwid2VidHJhbnNwb3J0IGVycm9yXCIsIGVycik7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBub3RlOiB3ZSBjb3VsZCBoYXZlIHVzZWQgYXN5bmMvYXdhaXQsIGJ1dCB0aGF0IHdvdWxkIHJlcXVpcmUgc29tZSBhZGRpdGlvbmFsIHBvbHlmaWxsc1xuICAgICAgICB0aGlzLnRyYW5zcG9ydC5yZWFkeS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudHJhbnNwb3J0LmNyZWF0ZUJpZGlyZWN0aW9uYWxTdHJlYW0oKS50aGVuKChzdHJlYW0pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBkZWNvZGVyU3RyZWFtID0gKDAsIGVuZ2luZV9pb19wYXJzZXJfMS5jcmVhdGVQYWNrZXREZWNvZGVyU3RyZWFtKShOdW1iZXIuTUFYX1NBRkVfSU5URUdFUiwgdGhpcy5zb2NrZXQuYmluYXJ5VHlwZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVhZGVyID0gc3RyZWFtLnJlYWRhYmxlLnBpcGVUaHJvdWdoKGRlY29kZXJTdHJlYW0pLmdldFJlYWRlcigpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuY29kZXJTdHJlYW0gPSAoMCwgZW5naW5lX2lvX3BhcnNlcl8xLmNyZWF0ZVBhY2tldEVuY29kZXJTdHJlYW0pKCk7XG4gICAgICAgICAgICAgICAgZW5jb2RlclN0cmVhbS5yZWFkYWJsZS5waXBlVG8oc3RyZWFtLndyaXRhYmxlKTtcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlciA9IGVuY29kZXJTdHJlYW0ud3JpdGFibGUuZ2V0V3JpdGVyKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVhZCA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmVhZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAucmVhZCgpXG4gICAgICAgICAgICAgICAgICAgICAgICAudGhlbigoeyBkb25lLCB2YWx1ZSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZG9uZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnKFwic2Vzc2lvbiBpcyBjbG9zZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZGVidWcoXCJyZWNlaXZlZCBjaHVuazogJW9cIiwgdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vblBhY2tldCh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWFkKCk7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVidWcoXCJhbiBlcnJvciBvY2N1cnJlZCB3aGlsZSByZWFkaW5nOiAlc1wiLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHJlYWQoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBwYWNrZXQgPSB7IHR5cGU6IFwib3BlblwiIH07XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucXVlcnkuc2lkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhY2tldC5kYXRhID0gYHtcInNpZFwiOlwiJHt0aGlzLnF1ZXJ5LnNpZH1cIn1gO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlci53cml0ZShwYWNrZXQpLnRoZW4oKCkgPT4gdGhpcy5vbk9wZW4oKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHdyaXRlKHBhY2tldHMpIHtcbiAgICAgICAgdGhpcy53cml0YWJsZSA9IGZhbHNlO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhY2tldHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHBhY2tldCA9IHBhY2tldHNbaV07XG4gICAgICAgICAgICBjb25zdCBsYXN0UGFja2V0ID0gaSA9PT0gcGFja2V0cy5sZW5ndGggLSAxO1xuICAgICAgICAgICAgdGhpcy53cml0ZXIud3JpdGUocGFja2V0KS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAobGFzdFBhY2tldCkge1xuICAgICAgICAgICAgICAgICAgICAoMCwgd2Vic29ja2V0X2NvbnN0cnVjdG9yX2pzXzEubmV4dFRpY2spKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud3JpdGFibGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbWl0UmVzZXJ2ZWQoXCJkcmFpblwiKTtcbiAgICAgICAgICAgICAgICAgICAgfSwgdGhpcy5zZXRUaW1lb3V0Rm4pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIGRvQ2xvc2UoKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgKF9hID0gdGhpcy50cmFuc3BvcnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jbG9zZSgpO1xuICAgIH1cbn1cbmV4cG9ydHMuV1QgPSBXVDtcbiIsIid1c2Ugc3RyaWN0J1xuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL3JlZHV4LXRvb2xraXQucHJvZHVjdGlvbi5taW4uY2pzJylcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9yZWR1eC10b29sa2l0LmRldmVsb3BtZW50LmNqcycpXG59IiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkRlY29kZXIgPSBleHBvcnRzLkVuY29kZXIgPSBleHBvcnRzLlBhY2tldFR5cGUgPSBleHBvcnRzLnByb3RvY29sID0gdm9pZCAwO1xuY29uc3QgY29tcG9uZW50X2VtaXR0ZXJfMSA9IHJlcXVpcmUoXCJAc29ja2V0LmlvL2NvbXBvbmVudC1lbWl0dGVyXCIpO1xuY29uc3QgYmluYXJ5X2pzXzEgPSByZXF1aXJlKFwiLi9iaW5hcnkuanNcIik7XG5jb25zdCBpc19iaW5hcnlfanNfMSA9IHJlcXVpcmUoXCIuL2lzLWJpbmFyeS5qc1wiKTtcbmNvbnN0IGRlYnVnXzEgPSByZXF1aXJlKFwiZGVidWdcIik7IC8vIGRlYnVnKClcbmNvbnN0IGRlYnVnID0gKDAsIGRlYnVnXzEuZGVmYXVsdCkoXCJzb2NrZXQuaW8tcGFyc2VyXCIpOyAvLyBkZWJ1ZygpXG4vKipcbiAqIFRoZXNlIHN0cmluZ3MgbXVzdCBub3QgYmUgdXNlZCBhcyBldmVudCBuYW1lcywgYXMgdGhleSBoYXZlIGEgc3BlY2lhbCBtZWFuaW5nLlxuICovXG5jb25zdCBSRVNFUlZFRF9FVkVOVFMgPSBbXG4gICAgXCJjb25uZWN0XCIsXG4gICAgXCJjb25uZWN0X2Vycm9yXCIsXG4gICAgXCJkaXNjb25uZWN0XCIsXG4gICAgXCJkaXNjb25uZWN0aW5nXCIsXG4gICAgXCJuZXdMaXN0ZW5lclwiLFxuICAgIFwicmVtb3ZlTGlzdGVuZXJcIiwgLy8gdXNlZCBieSB0aGUgTm9kZS5qcyBFdmVudEVtaXR0ZXJcbl07XG4vKipcbiAqIFByb3RvY29sIHZlcnNpb24uXG4gKlxuICogQHB1YmxpY1xuICovXG5leHBvcnRzLnByb3RvY29sID0gNTtcbnZhciBQYWNrZXRUeXBlO1xuKGZ1bmN0aW9uIChQYWNrZXRUeXBlKSB7XG4gICAgUGFja2V0VHlwZVtQYWNrZXRUeXBlW1wiQ09OTkVDVFwiXSA9IDBdID0gXCJDT05ORUNUXCI7XG4gICAgUGFja2V0VHlwZVtQYWNrZXRUeXBlW1wiRElTQ09OTkVDVFwiXSA9IDFdID0gXCJESVNDT05ORUNUXCI7XG4gICAgUGFja2V0VHlwZVtQYWNrZXRUeXBlW1wiRVZFTlRcIl0gPSAyXSA9IFwiRVZFTlRcIjtcbiAgICBQYWNrZXRUeXBlW1BhY2tldFR5cGVbXCJBQ0tcIl0gPSAzXSA9IFwiQUNLXCI7XG4gICAgUGFja2V0VHlwZVtQYWNrZXRUeXBlW1wiQ09OTkVDVF9FUlJPUlwiXSA9IDRdID0gXCJDT05ORUNUX0VSUk9SXCI7XG4gICAgUGFja2V0VHlwZVtQYWNrZXRUeXBlW1wiQklOQVJZX0VWRU5UXCJdID0gNV0gPSBcIkJJTkFSWV9FVkVOVFwiO1xuICAgIFBhY2tldFR5cGVbUGFja2V0VHlwZVtcIkJJTkFSWV9BQ0tcIl0gPSA2XSA9IFwiQklOQVJZX0FDS1wiO1xufSkoUGFja2V0VHlwZSA9IGV4cG9ydHMuUGFja2V0VHlwZSB8fCAoZXhwb3J0cy5QYWNrZXRUeXBlID0ge30pKTtcbi8qKlxuICogQSBzb2NrZXQuaW8gRW5jb2RlciBpbnN0YW5jZVxuICovXG5jbGFzcyBFbmNvZGVyIHtcbiAgICAvKipcbiAgICAgKiBFbmNvZGVyIGNvbnN0cnVjdG9yXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSByZXBsYWNlciAtIGN1c3RvbSByZXBsYWNlciB0byBwYXNzIGRvd24gdG8gSlNPTi5wYXJzZVxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHJlcGxhY2VyKSB7XG4gICAgICAgIHRoaXMucmVwbGFjZXIgPSByZXBsYWNlcjtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRW5jb2RlIGEgcGFja2V0IGFzIGEgc2luZ2xlIHN0cmluZyBpZiBub24tYmluYXJ5LCBvciBhcyBhXG4gICAgICogYnVmZmVyIHNlcXVlbmNlLCBkZXBlbmRpbmcgb24gcGFja2V0IHR5cGUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqIC0gcGFja2V0IG9iamVjdFxuICAgICAqL1xuICAgIGVuY29kZShvYmopIHtcbiAgICAgICAgZGVidWcoXCJlbmNvZGluZyBwYWNrZXQgJWpcIiwgb2JqKTtcbiAgICAgICAgaWYgKG9iai50eXBlID09PSBQYWNrZXRUeXBlLkVWRU5UIHx8IG9iai50eXBlID09PSBQYWNrZXRUeXBlLkFDSykge1xuICAgICAgICAgICAgaWYgKCgwLCBpc19iaW5hcnlfanNfMS5oYXNCaW5hcnkpKG9iaikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5lbmNvZGVBc0JpbmFyeSh7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IG9iai50eXBlID09PSBQYWNrZXRUeXBlLkVWRU5UXG4gICAgICAgICAgICAgICAgICAgICAgICA/IFBhY2tldFR5cGUuQklOQVJZX0VWRU5UXG4gICAgICAgICAgICAgICAgICAgICAgICA6IFBhY2tldFR5cGUuQklOQVJZX0FDSyxcbiAgICAgICAgICAgICAgICAgICAgbnNwOiBvYmoubnNwLFxuICAgICAgICAgICAgICAgICAgICBkYXRhOiBvYmouZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgaWQ6IG9iai5pZCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW3RoaXMuZW5jb2RlQXNTdHJpbmcob2JqKV07XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEVuY29kZSBwYWNrZXQgYXMgc3RyaW5nLlxuICAgICAqL1xuICAgIGVuY29kZUFzU3RyaW5nKG9iaikge1xuICAgICAgICAvLyBmaXJzdCBpcyB0eXBlXG4gICAgICAgIGxldCBzdHIgPSBcIlwiICsgb2JqLnR5cGU7XG4gICAgICAgIC8vIGF0dGFjaG1lbnRzIGlmIHdlIGhhdmUgdGhlbVxuICAgICAgICBpZiAob2JqLnR5cGUgPT09IFBhY2tldFR5cGUuQklOQVJZX0VWRU5UIHx8XG4gICAgICAgICAgICBvYmoudHlwZSA9PT0gUGFja2V0VHlwZS5CSU5BUllfQUNLKSB7XG4gICAgICAgICAgICBzdHIgKz0gb2JqLmF0dGFjaG1lbnRzICsgXCItXCI7XG4gICAgICAgIH1cbiAgICAgICAgLy8gaWYgd2UgaGF2ZSBhIG5hbWVzcGFjZSBvdGhlciB0aGFuIGAvYFxuICAgICAgICAvLyB3ZSBhcHBlbmQgaXQgZm9sbG93ZWQgYnkgYSBjb21tYSBgLGBcbiAgICAgICAgaWYgKG9iai5uc3AgJiYgXCIvXCIgIT09IG9iai5uc3ApIHtcbiAgICAgICAgICAgIHN0ciArPSBvYmoubnNwICsgXCIsXCI7XG4gICAgICAgIH1cbiAgICAgICAgLy8gaW1tZWRpYXRlbHkgZm9sbG93ZWQgYnkgdGhlIGlkXG4gICAgICAgIGlmIChudWxsICE9IG9iai5pZCkge1xuICAgICAgICAgICAgc3RyICs9IG9iai5pZDtcbiAgICAgICAgfVxuICAgICAgICAvLyBqc29uIGRhdGFcbiAgICAgICAgaWYgKG51bGwgIT0gb2JqLmRhdGEpIHtcbiAgICAgICAgICAgIHN0ciArPSBKU09OLnN0cmluZ2lmeShvYmouZGF0YSwgdGhpcy5yZXBsYWNlcik7XG4gICAgICAgIH1cbiAgICAgICAgZGVidWcoXCJlbmNvZGVkICVqIGFzICVzXCIsIG9iaiwgc3RyKTtcbiAgICAgICAgcmV0dXJuIHN0cjtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRW5jb2RlIHBhY2tldCBhcyAnYnVmZmVyIHNlcXVlbmNlJyBieSByZW1vdmluZyBibG9icywgYW5kXG4gICAgICogZGVjb25zdHJ1Y3RpbmcgcGFja2V0IGludG8gb2JqZWN0IHdpdGggcGxhY2Vob2xkZXJzIGFuZFxuICAgICAqIGEgbGlzdCBvZiBidWZmZXJzLlxuICAgICAqL1xuICAgIGVuY29kZUFzQmluYXJ5KG9iaikge1xuICAgICAgICBjb25zdCBkZWNvbnN0cnVjdGlvbiA9ICgwLCBiaW5hcnlfanNfMS5kZWNvbnN0cnVjdFBhY2tldCkob2JqKTtcbiAgICAgICAgY29uc3QgcGFjayA9IHRoaXMuZW5jb2RlQXNTdHJpbmcoZGVjb25zdHJ1Y3Rpb24ucGFja2V0KTtcbiAgICAgICAgY29uc3QgYnVmZmVycyA9IGRlY29uc3RydWN0aW9uLmJ1ZmZlcnM7XG4gICAgICAgIGJ1ZmZlcnMudW5zaGlmdChwYWNrKTsgLy8gYWRkIHBhY2tldCBpbmZvIHRvIGJlZ2lubmluZyBvZiBkYXRhIGxpc3RcbiAgICAgICAgcmV0dXJuIGJ1ZmZlcnM7IC8vIHdyaXRlIGFsbCB0aGUgYnVmZmVyc1xuICAgIH1cbn1cbmV4cG9ydHMuRW5jb2RlciA9IEVuY29kZXI7XG4vLyBzZWUgaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvODUxMTI4MS9jaGVjay1pZi1hLXZhbHVlLWlzLWFuLW9iamVjdC1pbi1qYXZhc2NyaXB0XG5mdW5jdGlvbiBpc09iamVjdCh2YWx1ZSkge1xuICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpID09PSBcIltvYmplY3QgT2JqZWN0XVwiO1xufVxuLyoqXG4gKiBBIHNvY2tldC5pbyBEZWNvZGVyIGluc3RhbmNlXG4gKlxuICogQHJldHVybiB7T2JqZWN0fSBkZWNvZGVyXG4gKi9cbmNsYXNzIERlY29kZXIgZXh0ZW5kcyBjb21wb25lbnRfZW1pdHRlcl8xLkVtaXR0ZXIge1xuICAgIC8qKlxuICAgICAqIERlY29kZXIgY29uc3RydWN0b3JcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7ZnVuY3Rpb259IHJldml2ZXIgLSBjdXN0b20gcmV2aXZlciB0byBwYXNzIGRvd24gdG8gSlNPTi5zdHJpbmdpZnlcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihyZXZpdmVyKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMucmV2aXZlciA9IHJldml2ZXI7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIERlY29kZXMgYW4gZW5jb2RlZCBwYWNrZXQgc3RyaW5nIGludG8gcGFja2V0IEpTT04uXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gb2JqIC0gZW5jb2RlZCBwYWNrZXRcbiAgICAgKi9cbiAgICBhZGQob2JqKSB7XG4gICAgICAgIGxldCBwYWNrZXQ7XG4gICAgICAgIGlmICh0eXBlb2Ygb2JqID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5yZWNvbnN0cnVjdG9yKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZ290IHBsYWludGV4dCBkYXRhIHdoZW4gcmVjb25zdHJ1Y3RpbmcgYSBwYWNrZXRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwYWNrZXQgPSB0aGlzLmRlY29kZVN0cmluZyhvYmopO1xuICAgICAgICAgICAgY29uc3QgaXNCaW5hcnlFdmVudCA9IHBhY2tldC50eXBlID09PSBQYWNrZXRUeXBlLkJJTkFSWV9FVkVOVDtcbiAgICAgICAgICAgIGlmIChpc0JpbmFyeUV2ZW50IHx8IHBhY2tldC50eXBlID09PSBQYWNrZXRUeXBlLkJJTkFSWV9BQ0spIHtcbiAgICAgICAgICAgICAgICBwYWNrZXQudHlwZSA9IGlzQmluYXJ5RXZlbnQgPyBQYWNrZXRUeXBlLkVWRU5UIDogUGFja2V0VHlwZS5BQ0s7XG4gICAgICAgICAgICAgICAgLy8gYmluYXJ5IHBhY2tldCdzIGpzb25cbiAgICAgICAgICAgICAgICB0aGlzLnJlY29uc3RydWN0b3IgPSBuZXcgQmluYXJ5UmVjb25zdHJ1Y3RvcihwYWNrZXQpO1xuICAgICAgICAgICAgICAgIC8vIG5vIGF0dGFjaG1lbnRzLCBsYWJlbGVkIGJpbmFyeSBidXQgbm8gYmluYXJ5IGRhdGEgdG8gZm9sbG93XG4gICAgICAgICAgICAgICAgaWYgKHBhY2tldC5hdHRhY2htZW50cyA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBzdXBlci5lbWl0UmVzZXJ2ZWQoXCJkZWNvZGVkXCIsIHBhY2tldCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gbm9uLWJpbmFyeSBmdWxsIHBhY2tldFxuICAgICAgICAgICAgICAgIHN1cGVyLmVtaXRSZXNlcnZlZChcImRlY29kZWRcIiwgcGFja2V0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICgoMCwgaXNfYmluYXJ5X2pzXzEuaXNCaW5hcnkpKG9iaikgfHwgb2JqLmJhc2U2NCkge1xuICAgICAgICAgICAgLy8gcmF3IGJpbmFyeSBkYXRhXG4gICAgICAgICAgICBpZiAoIXRoaXMucmVjb25zdHJ1Y3Rvcikge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImdvdCBiaW5hcnkgZGF0YSB3aGVuIG5vdCByZWNvbnN0cnVjdGluZyBhIHBhY2tldFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHBhY2tldCA9IHRoaXMucmVjb25zdHJ1Y3Rvci50YWtlQmluYXJ5RGF0YShvYmopO1xuICAgICAgICAgICAgICAgIGlmIChwYWNrZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gcmVjZWl2ZWQgZmluYWwgYnVmZmVyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVjb25zdHJ1Y3RvciA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIHN1cGVyLmVtaXRSZXNlcnZlZChcImRlY29kZWRcIiwgcGFja2V0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJVbmtub3duIHR5cGU6IFwiICsgb2JqKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBEZWNvZGUgYSBwYWNrZXQgU3RyaW5nIChKU09OIGRhdGEpXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gICAgICogQHJldHVybiB7T2JqZWN0fSBwYWNrZXRcbiAgICAgKi9cbiAgICBkZWNvZGVTdHJpbmcoc3RyKSB7XG4gICAgICAgIGxldCBpID0gMDtcbiAgICAgICAgLy8gbG9vayB1cCB0eXBlXG4gICAgICAgIGNvbnN0IHAgPSB7XG4gICAgICAgICAgICB0eXBlOiBOdW1iZXIoc3RyLmNoYXJBdCgwKSksXG4gICAgICAgIH07XG4gICAgICAgIGlmIChQYWNrZXRUeXBlW3AudHlwZV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwidW5rbm93biBwYWNrZXQgdHlwZSBcIiArIHAudHlwZSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gbG9vayB1cCBhdHRhY2htZW50cyBpZiB0eXBlIGJpbmFyeVxuICAgICAgICBpZiAocC50eXBlID09PSBQYWNrZXRUeXBlLkJJTkFSWV9FVkVOVCB8fFxuICAgICAgICAgICAgcC50eXBlID09PSBQYWNrZXRUeXBlLkJJTkFSWV9BQ0spIHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0ID0gaSArIDE7XG4gICAgICAgICAgICB3aGlsZSAoc3RyLmNoYXJBdCgrK2kpICE9PSBcIi1cIiAmJiBpICE9IHN0ci5sZW5ndGgpIHsgfVxuICAgICAgICAgICAgY29uc3QgYnVmID0gc3RyLnN1YnN0cmluZyhzdGFydCwgaSk7XG4gICAgICAgICAgICBpZiAoYnVmICE9IE51bWJlcihidWYpIHx8IHN0ci5jaGFyQXQoaSkgIT09IFwiLVwiKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSWxsZWdhbCBhdHRhY2htZW50c1wiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHAuYXR0YWNobWVudHMgPSBOdW1iZXIoYnVmKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBsb29rIHVwIG5hbWVzcGFjZSAoaWYgYW55KVxuICAgICAgICBpZiAoXCIvXCIgPT09IHN0ci5jaGFyQXQoaSArIDEpKSB7XG4gICAgICAgICAgICBjb25zdCBzdGFydCA9IGkgKyAxO1xuICAgICAgICAgICAgd2hpbGUgKCsraSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGMgPSBzdHIuY2hhckF0KGkpO1xuICAgICAgICAgICAgICAgIGlmIChcIixcIiA9PT0gYylcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgaWYgKGkgPT09IHN0ci5sZW5ndGgpXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcC5uc3AgPSBzdHIuc3Vic3RyaW5nKHN0YXJ0LCBpKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHAubnNwID0gXCIvXCI7XG4gICAgICAgIH1cbiAgICAgICAgLy8gbG9vayB1cCBpZFxuICAgICAgICBjb25zdCBuZXh0ID0gc3RyLmNoYXJBdChpICsgMSk7XG4gICAgICAgIGlmIChcIlwiICE9PSBuZXh0ICYmIE51bWJlcihuZXh0KSA9PSBuZXh0KSB7XG4gICAgICAgICAgICBjb25zdCBzdGFydCA9IGkgKyAxO1xuICAgICAgICAgICAgd2hpbGUgKCsraSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGMgPSBzdHIuY2hhckF0KGkpO1xuICAgICAgICAgICAgICAgIGlmIChudWxsID09IGMgfHwgTnVtYmVyKGMpICE9IGMpIHtcbiAgICAgICAgICAgICAgICAgICAgLS1pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGkgPT09IHN0ci5sZW5ndGgpXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcC5pZCA9IE51bWJlcihzdHIuc3Vic3RyaW5nKHN0YXJ0LCBpICsgMSkpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGxvb2sgdXAganNvbiBkYXRhXG4gICAgICAgIGlmIChzdHIuY2hhckF0KCsraSkpIHtcbiAgICAgICAgICAgIGNvbnN0IHBheWxvYWQgPSB0aGlzLnRyeVBhcnNlKHN0ci5zdWJzdHIoaSkpO1xuICAgICAgICAgICAgaWYgKERlY29kZXIuaXNQYXlsb2FkVmFsaWQocC50eXBlLCBwYXlsb2FkKSkge1xuICAgICAgICAgICAgICAgIHAuZGF0YSA9IHBheWxvYWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJpbnZhbGlkIHBheWxvYWRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZGVidWcoXCJkZWNvZGVkICVzIGFzICVqXCIsIHN0ciwgcCk7XG4gICAgICAgIHJldHVybiBwO1xuICAgIH1cbiAgICB0cnlQYXJzZShzdHIpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKHN0ciwgdGhpcy5yZXZpdmVyKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHN0YXRpYyBpc1BheWxvYWRWYWxpZCh0eXBlLCBwYXlsb2FkKSB7XG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgICAgY2FzZSBQYWNrZXRUeXBlLkNPTk5FQ1Q6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzT2JqZWN0KHBheWxvYWQpO1xuICAgICAgICAgICAgY2FzZSBQYWNrZXRUeXBlLkRJU0NPTk5FQ1Q6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBheWxvYWQgPT09IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGNhc2UgUGFja2V0VHlwZS5DT05ORUNUX0VSUk9SOlxuICAgICAgICAgICAgICAgIHJldHVybiB0eXBlb2YgcGF5bG9hZCA9PT0gXCJzdHJpbmdcIiB8fCBpc09iamVjdChwYXlsb2FkKTtcbiAgICAgICAgICAgIGNhc2UgUGFja2V0VHlwZS5FVkVOVDpcbiAgICAgICAgICAgIGNhc2UgUGFja2V0VHlwZS5CSU5BUllfRVZFTlQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIChBcnJheS5pc0FycmF5KHBheWxvYWQpICYmXG4gICAgICAgICAgICAgICAgICAgICh0eXBlb2YgcGF5bG9hZFswXSA9PT0gXCJudW1iZXJcIiB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgKHR5cGVvZiBwYXlsb2FkWzBdID09PSBcInN0cmluZ1wiICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVTRVJWRURfRVZFTlRTLmluZGV4T2YocGF5bG9hZFswXSkgPT09IC0xKSkpO1xuICAgICAgICAgICAgY2FzZSBQYWNrZXRUeXBlLkFDSzpcbiAgICAgICAgICAgIGNhc2UgUGFja2V0VHlwZS5CSU5BUllfQUNLOlxuICAgICAgICAgICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHBheWxvYWQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIERlYWxsb2NhdGVzIGEgcGFyc2VyJ3MgcmVzb3VyY2VzXG4gICAgICovXG4gICAgZGVzdHJveSgpIHtcbiAgICAgICAgaWYgKHRoaXMucmVjb25zdHJ1Y3Rvcikge1xuICAgICAgICAgICAgdGhpcy5yZWNvbnN0cnVjdG9yLmZpbmlzaGVkUmVjb25zdHJ1Y3Rpb24oKTtcbiAgICAgICAgICAgIHRoaXMucmVjb25zdHJ1Y3RvciA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLkRlY29kZXIgPSBEZWNvZGVyO1xuLyoqXG4gKiBBIG1hbmFnZXIgb2YgYSBiaW5hcnkgZXZlbnQncyAnYnVmZmVyIHNlcXVlbmNlJy4gU2hvdWxkXG4gKiBiZSBjb25zdHJ1Y3RlZCB3aGVuZXZlciBhIHBhY2tldCBvZiB0eXBlIEJJTkFSWV9FVkVOVCBpc1xuICogZGVjb2RlZC5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcGFja2V0XG4gKiBAcmV0dXJuIHtCaW5hcnlSZWNvbnN0cnVjdG9yfSBpbml0aWFsaXplZCByZWNvbnN0cnVjdG9yXG4gKi9cbmNsYXNzIEJpbmFyeVJlY29uc3RydWN0b3Ige1xuICAgIGNvbnN0cnVjdG9yKHBhY2tldCkge1xuICAgICAgICB0aGlzLnBhY2tldCA9IHBhY2tldDtcbiAgICAgICAgdGhpcy5idWZmZXJzID0gW107XG4gICAgICAgIHRoaXMucmVjb25QYWNrID0gcGFja2V0O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBNZXRob2QgdG8gYmUgY2FsbGVkIHdoZW4gYmluYXJ5IGRhdGEgcmVjZWl2ZWQgZnJvbSBjb25uZWN0aW9uXG4gICAgICogYWZ0ZXIgYSBCSU5BUllfRVZFTlQgcGFja2V0LlxuICAgICAqXG4gICAgICogQHBhcmFtIHtCdWZmZXIgfCBBcnJheUJ1ZmZlcn0gYmluRGF0YSAtIHRoZSByYXcgYmluYXJ5IGRhdGEgcmVjZWl2ZWRcbiAgICAgKiBAcmV0dXJuIHtudWxsIHwgT2JqZWN0fSByZXR1cm5zIG51bGwgaWYgbW9yZSBiaW5hcnkgZGF0YSBpcyBleHBlY3RlZCBvclxuICAgICAqICAgYSByZWNvbnN0cnVjdGVkIHBhY2tldCBvYmplY3QgaWYgYWxsIGJ1ZmZlcnMgaGF2ZSBiZWVuIHJlY2VpdmVkLlxuICAgICAqL1xuICAgIHRha2VCaW5hcnlEYXRhKGJpbkRhdGEpIHtcbiAgICAgICAgdGhpcy5idWZmZXJzLnB1c2goYmluRGF0YSk7XG4gICAgICAgIGlmICh0aGlzLmJ1ZmZlcnMubGVuZ3RoID09PSB0aGlzLnJlY29uUGFjay5hdHRhY2htZW50cykge1xuICAgICAgICAgICAgLy8gZG9uZSB3aXRoIGJ1ZmZlciBsaXN0XG4gICAgICAgICAgICBjb25zdCBwYWNrZXQgPSAoMCwgYmluYXJ5X2pzXzEucmVjb25zdHJ1Y3RQYWNrZXQpKHRoaXMucmVjb25QYWNrLCB0aGlzLmJ1ZmZlcnMpO1xuICAgICAgICAgICAgdGhpcy5maW5pc2hlZFJlY29uc3RydWN0aW9uKCk7XG4gICAgICAgICAgICByZXR1cm4gcGFja2V0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDbGVhbnMgdXAgYmluYXJ5IHBhY2tldCByZWNvbnN0cnVjdGlvbiB2YXJpYWJsZXMuXG4gICAgICovXG4gICAgZmluaXNoZWRSZWNvbnN0cnVjdGlvbigpIHtcbiAgICAgICAgdGhpcy5yZWNvblBhY2sgPSBudWxsO1xuICAgICAgICB0aGlzLmJ1ZmZlcnMgPSBbXTtcbiAgICB9XG59XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuVHJhbnNwb3J0ID0gZXhwb3J0cy5UcmFuc3BvcnRFcnJvciA9IHZvaWQgMDtcbmNvbnN0IGVuZ2luZV9pb19wYXJzZXJfMSA9IHJlcXVpcmUoXCJlbmdpbmUuaW8tcGFyc2VyXCIpO1xuY29uc3QgY29tcG9uZW50X2VtaXR0ZXJfMSA9IHJlcXVpcmUoXCJAc29ja2V0LmlvL2NvbXBvbmVudC1lbWl0dGVyXCIpO1xuY29uc3QgdXRpbF9qc18xID0gcmVxdWlyZShcIi4vdXRpbC5qc1wiKTtcbmNvbnN0IGRlYnVnXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcImRlYnVnXCIpKTsgLy8gZGVidWcoKVxuY29uc3QgcGFyc2Vxc19qc18xID0gcmVxdWlyZShcIi4vY29udHJpYi9wYXJzZXFzLmpzXCIpO1xuY29uc3QgZGVidWcgPSAoMCwgZGVidWdfMS5kZWZhdWx0KShcImVuZ2luZS5pby1jbGllbnQ6dHJhbnNwb3J0XCIpOyAvLyBkZWJ1ZygpXG5jbGFzcyBUcmFuc3BvcnRFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBjb25zdHJ1Y3RvcihyZWFzb24sIGRlc2NyaXB0aW9uLCBjb250ZXh0KSB7XG4gICAgICAgIHN1cGVyKHJlYXNvbik7XG4gICAgICAgIHRoaXMuZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjtcbiAgICAgICAgdGhpcy5jb250ZXh0ID0gY29udGV4dDtcbiAgICAgICAgdGhpcy50eXBlID0gXCJUcmFuc3BvcnRFcnJvclwiO1xuICAgIH1cbn1cbmV4cG9ydHMuVHJhbnNwb3J0RXJyb3IgPSBUcmFuc3BvcnRFcnJvcjtcbmNsYXNzIFRyYW5zcG9ydCBleHRlbmRzIGNvbXBvbmVudF9lbWl0dGVyXzEuRW1pdHRlciB7XG4gICAgLyoqXG4gICAgICogVHJhbnNwb3J0IGFic3RyYWN0IGNvbnN0cnVjdG9yLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zXG4gICAgICogQHByb3RlY3RlZFxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy53cml0YWJsZSA9IGZhbHNlO1xuICAgICAgICAoMCwgdXRpbF9qc18xLmluc3RhbGxUaW1lckZ1bmN0aW9ucykodGhpcywgb3B0cyk7XG4gICAgICAgIHRoaXMub3B0cyA9IG9wdHM7XG4gICAgICAgIHRoaXMucXVlcnkgPSBvcHRzLnF1ZXJ5O1xuICAgICAgICB0aGlzLnNvY2tldCA9IG9wdHMuc29ja2V0O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBFbWl0cyBhbiBlcnJvci5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSByZWFzb25cbiAgICAgKiBAcGFyYW0gZGVzY3JpcHRpb25cbiAgICAgKiBAcGFyYW0gY29udGV4dCAtIHRoZSBlcnJvciBjb250ZXh0XG4gICAgICogQHJldHVybiB7VHJhbnNwb3J0fSBmb3IgY2hhaW5pbmdcbiAgICAgKiBAcHJvdGVjdGVkXG4gICAgICovXG4gICAgb25FcnJvcihyZWFzb24sIGRlc2NyaXB0aW9uLCBjb250ZXh0KSB7XG4gICAgICAgIHN1cGVyLmVtaXRSZXNlcnZlZChcImVycm9yXCIsIG5ldyBUcmFuc3BvcnRFcnJvcihyZWFzb24sIGRlc2NyaXB0aW9uLCBjb250ZXh0KSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBPcGVucyB0aGUgdHJhbnNwb3J0LlxuICAgICAqL1xuICAgIG9wZW4oKSB7XG4gICAgICAgIHRoaXMucmVhZHlTdGF0ZSA9IFwib3BlbmluZ1wiO1xuICAgICAgICB0aGlzLmRvT3BlbigpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2xvc2VzIHRoZSB0cmFuc3BvcnQuXG4gICAgICovXG4gICAgY2xvc2UoKSB7XG4gICAgICAgIGlmICh0aGlzLnJlYWR5U3RhdGUgPT09IFwib3BlbmluZ1wiIHx8IHRoaXMucmVhZHlTdGF0ZSA9PT0gXCJvcGVuXCIpIHtcbiAgICAgICAgICAgIHRoaXMuZG9DbG9zZSgpO1xuICAgICAgICAgICAgdGhpcy5vbkNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFNlbmRzIG11bHRpcGxlIHBhY2tldHMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBwYWNrZXRzXG4gICAgICovXG4gICAgc2VuZChwYWNrZXRzKSB7XG4gICAgICAgIGlmICh0aGlzLnJlYWR5U3RhdGUgPT09IFwib3BlblwiKSB7XG4gICAgICAgICAgICB0aGlzLndyaXRlKHBhY2tldHMpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgLy8gdGhpcyBtaWdodCBoYXBwZW4gaWYgdGhlIHRyYW5zcG9ydCB3YXMgc2lsZW50bHkgY2xvc2VkIGluIHRoZSBiZWZvcmV1bmxvYWQgZXZlbnQgaGFuZGxlclxuICAgICAgICAgICAgZGVidWcoXCJ0cmFuc3BvcnQgaXMgbm90IG9wZW4sIGRpc2NhcmRpbmcgcGFja2V0c1wiKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgdXBvbiBvcGVuXG4gICAgICpcbiAgICAgKiBAcHJvdGVjdGVkXG4gICAgICovXG4gICAgb25PcGVuKCkge1xuICAgICAgICB0aGlzLnJlYWR5U3RhdGUgPSBcIm9wZW5cIjtcbiAgICAgICAgdGhpcy53cml0YWJsZSA9IHRydWU7XG4gICAgICAgIHN1cGVyLmVtaXRSZXNlcnZlZChcIm9wZW5cIik7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENhbGxlZCB3aXRoIGRhdGEuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gZGF0YVxuICAgICAqIEBwcm90ZWN0ZWRcbiAgICAgKi9cbiAgICBvbkRhdGEoZGF0YSkge1xuICAgICAgICBjb25zdCBwYWNrZXQgPSAoMCwgZW5naW5lX2lvX3BhcnNlcl8xLmRlY29kZVBhY2tldCkoZGF0YSwgdGhpcy5zb2NrZXQuYmluYXJ5VHlwZSk7XG4gICAgICAgIHRoaXMub25QYWNrZXQocGFja2V0KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2FsbGVkIHdpdGggYSBkZWNvZGVkIHBhY2tldC5cbiAgICAgKlxuICAgICAqIEBwcm90ZWN0ZWRcbiAgICAgKi9cbiAgICBvblBhY2tldChwYWNrZXQpIHtcbiAgICAgICAgc3VwZXIuZW1pdFJlc2VydmVkKFwicGFja2V0XCIsIHBhY2tldCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENhbGxlZCB1cG9uIGNsb3NlLlxuICAgICAqXG4gICAgICogQHByb3RlY3RlZFxuICAgICAqL1xuICAgIG9uQ2xvc2UoZGV0YWlscykge1xuICAgICAgICB0aGlzLnJlYWR5U3RhdGUgPSBcImNsb3NlZFwiO1xuICAgICAgICBzdXBlci5lbWl0UmVzZXJ2ZWQoXCJjbG9zZVwiLCBkZXRhaWxzKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUGF1c2VzIHRoZSB0cmFuc3BvcnQsIGluIG9yZGVyIG5vdCB0byBsb3NlIHBhY2tldHMgZHVyaW5nIGFuIHVwZ3JhZGUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb25QYXVzZVxuICAgICAqL1xuICAgIHBhdXNlKG9uUGF1c2UpIHsgfVxuICAgIGNyZWF0ZVVyaShzY2hlbWEsIHF1ZXJ5ID0ge30pIHtcbiAgICAgICAgcmV0dXJuIChzY2hlbWEgK1xuICAgICAgICAgICAgXCI6Ly9cIiArXG4gICAgICAgICAgICB0aGlzLl9ob3N0bmFtZSgpICtcbiAgICAgICAgICAgIHRoaXMuX3BvcnQoKSArXG4gICAgICAgICAgICB0aGlzLm9wdHMucGF0aCArXG4gICAgICAgICAgICB0aGlzLl9xdWVyeShxdWVyeSkpO1xuICAgIH1cbiAgICBfaG9zdG5hbWUoKSB7XG4gICAgICAgIGNvbnN0IGhvc3RuYW1lID0gdGhpcy5vcHRzLmhvc3RuYW1lO1xuICAgICAgICByZXR1cm4gaG9zdG5hbWUuaW5kZXhPZihcIjpcIikgPT09IC0xID8gaG9zdG5hbWUgOiBcIltcIiArIGhvc3RuYW1lICsgXCJdXCI7XG4gICAgfVxuICAgIF9wb3J0KCkge1xuICAgICAgICBpZiAodGhpcy5vcHRzLnBvcnQgJiZcbiAgICAgICAgICAgICgodGhpcy5vcHRzLnNlY3VyZSAmJiBOdW1iZXIodGhpcy5vcHRzLnBvcnQgIT09IDQ0MykpIHx8XG4gICAgICAgICAgICAgICAgKCF0aGlzLm9wdHMuc2VjdXJlICYmIE51bWJlcih0aGlzLm9wdHMucG9ydCkgIT09IDgwKSkpIHtcbiAgICAgICAgICAgIHJldHVybiBcIjpcIiArIHRoaXMub3B0cy5wb3J0O1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX3F1ZXJ5KHF1ZXJ5KSB7XG4gICAgICAgIGNvbnN0IGVuY29kZWRRdWVyeSA9ICgwLCBwYXJzZXFzX2pzXzEuZW5jb2RlKShxdWVyeSk7XG4gICAgICAgIHJldHVybiBlbmNvZGVkUXVlcnkubGVuZ3RoID8gXCI/XCIgKyBlbmNvZGVkUXVlcnkgOiBcIlwiO1xuICAgIH1cbn1cbmV4cG9ydHMuVHJhbnNwb3J0ID0gVHJhbnNwb3J0O1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmluaXQgPSB2b2lkIDA7XG5jb25zdCBDaF8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL0NoXCIpKTtcbmNsYXNzIENoRGV0YWlsTW9kZWwge1xuICAgIGNvbnN0cnVjdG9yKHBhcmFtcyA9IGV4cG9ydHMuaW5pdCkge1xuICAgICAgICB0aGlzLmlkID0gcGFyYW1zPy5pZCB8fCBcIlwiO1xuICAgICAgICB0aGlzLmNvbm5lY3Rpb24gPSBwYXJhbXM/LmNvbm5lY3Rpb24gfHwgQ2hfMS5kZWZhdWx0LnJvb3RDb25uZWN0aW9uO1xuICAgICAgICB0aGlzLnRpdGxlID0gcGFyYW1zPy50aXRsZSB8fCAnJztcbiAgICB9XG59XG5leHBvcnRzLmRlZmF1bHQgPSBDaERldGFpbE1vZGVsO1xuZXhwb3J0cy5pbml0ID0ge1xuICAgIGlkOiBcIlwiLFxuICAgIGNvbm5lY3Rpb246IFwiXCIsXG4gICAgdGl0bGU6IFwiXCJcbn07XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMucmVjb25zdHJ1Y3RQYWNrZXQgPSBleHBvcnRzLmRlY29uc3RydWN0UGFja2V0ID0gdm9pZCAwO1xuY29uc3QgaXNfYmluYXJ5X2pzXzEgPSByZXF1aXJlKFwiLi9pcy1iaW5hcnkuanNcIik7XG4vKipcbiAqIFJlcGxhY2VzIGV2ZXJ5IEJ1ZmZlciB8IEFycmF5QnVmZmVyIHwgQmxvYiB8IEZpbGUgaW4gcGFja2V0IHdpdGggYSBudW1iZXJlZCBwbGFjZWhvbGRlci5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcGFja2V0IC0gc29ja2V0LmlvIGV2ZW50IHBhY2tldFxuICogQHJldHVybiB7T2JqZWN0fSB3aXRoIGRlY29uc3RydWN0ZWQgcGFja2V0IGFuZCBsaXN0IG9mIGJ1ZmZlcnNcbiAqIEBwdWJsaWNcbiAqL1xuZnVuY3Rpb24gZGVjb25zdHJ1Y3RQYWNrZXQocGFja2V0KSB7XG4gICAgY29uc3QgYnVmZmVycyA9IFtdO1xuICAgIGNvbnN0IHBhY2tldERhdGEgPSBwYWNrZXQuZGF0YTtcbiAgICBjb25zdCBwYWNrID0gcGFja2V0O1xuICAgIHBhY2suZGF0YSA9IF9kZWNvbnN0cnVjdFBhY2tldChwYWNrZXREYXRhLCBidWZmZXJzKTtcbiAgICBwYWNrLmF0dGFjaG1lbnRzID0gYnVmZmVycy5sZW5ndGg7IC8vIG51bWJlciBvZiBiaW5hcnkgJ2F0dGFjaG1lbnRzJ1xuICAgIHJldHVybiB7IHBhY2tldDogcGFjaywgYnVmZmVyczogYnVmZmVycyB9O1xufVxuZXhwb3J0cy5kZWNvbnN0cnVjdFBhY2tldCA9IGRlY29uc3RydWN0UGFja2V0O1xuZnVuY3Rpb24gX2RlY29uc3RydWN0UGFja2V0KGRhdGEsIGJ1ZmZlcnMpIHtcbiAgICBpZiAoIWRhdGEpXG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIGlmICgoMCwgaXNfYmluYXJ5X2pzXzEuaXNCaW5hcnkpKGRhdGEpKSB7XG4gICAgICAgIGNvbnN0IHBsYWNlaG9sZGVyID0geyBfcGxhY2Vob2xkZXI6IHRydWUsIG51bTogYnVmZmVycy5sZW5ndGggfTtcbiAgICAgICAgYnVmZmVycy5wdXNoKGRhdGEpO1xuICAgICAgICByZXR1cm4gcGxhY2Vob2xkZXI7XG4gICAgfVxuICAgIGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkpIHtcbiAgICAgICAgY29uc3QgbmV3RGF0YSA9IG5ldyBBcnJheShkYXRhLmxlbmd0aCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgbmV3RGF0YVtpXSA9IF9kZWNvbnN0cnVjdFBhY2tldChkYXRhW2ldLCBidWZmZXJzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3RGF0YTtcbiAgICB9XG4gICAgZWxzZSBpZiAodHlwZW9mIGRhdGEgPT09IFwib2JqZWN0XCIgJiYgIShkYXRhIGluc3RhbmNlb2YgRGF0ZSkpIHtcbiAgICAgICAgY29uc3QgbmV3RGF0YSA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBkYXRhKSB7XG4gICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGRhdGEsIGtleSkpIHtcbiAgICAgICAgICAgICAgICBuZXdEYXRhW2tleV0gPSBfZGVjb25zdHJ1Y3RQYWNrZXQoZGF0YVtrZXldLCBidWZmZXJzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3RGF0YTtcbiAgICB9XG4gICAgcmV0dXJuIGRhdGE7XG59XG4vKipcbiAqIFJlY29uc3RydWN0cyBhIGJpbmFyeSBwYWNrZXQgZnJvbSBpdHMgcGxhY2Vob2xkZXIgcGFja2V0IGFuZCBidWZmZXJzXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHBhY2tldCAtIGV2ZW50IHBhY2tldCB3aXRoIHBsYWNlaG9sZGVyc1xuICogQHBhcmFtIHtBcnJheX0gYnVmZmVycyAtIGJpbmFyeSBidWZmZXJzIHRvIHB1dCBpbiBwbGFjZWhvbGRlciBwb3NpdGlvbnNcbiAqIEByZXR1cm4ge09iamVjdH0gcmVjb25zdHJ1Y3RlZCBwYWNrZXRcbiAqIEBwdWJsaWNcbiAqL1xuZnVuY3Rpb24gcmVjb25zdHJ1Y3RQYWNrZXQocGFja2V0LCBidWZmZXJzKSB7XG4gICAgcGFja2V0LmRhdGEgPSBfcmVjb25zdHJ1Y3RQYWNrZXQocGFja2V0LmRhdGEsIGJ1ZmZlcnMpO1xuICAgIGRlbGV0ZSBwYWNrZXQuYXR0YWNobWVudHM7IC8vIG5vIGxvbmdlciB1c2VmdWxcbiAgICByZXR1cm4gcGFja2V0O1xufVxuZXhwb3J0cy5yZWNvbnN0cnVjdFBhY2tldCA9IHJlY29uc3RydWN0UGFja2V0O1xuZnVuY3Rpb24gX3JlY29uc3RydWN0UGFja2V0KGRhdGEsIGJ1ZmZlcnMpIHtcbiAgICBpZiAoIWRhdGEpXG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIGlmIChkYXRhICYmIGRhdGEuX3BsYWNlaG9sZGVyID09PSB0cnVlKSB7XG4gICAgICAgIGNvbnN0IGlzSW5kZXhWYWxpZCA9IHR5cGVvZiBkYXRhLm51bSA9PT0gXCJudW1iZXJcIiAmJlxuICAgICAgICAgICAgZGF0YS5udW0gPj0gMCAmJlxuICAgICAgICAgICAgZGF0YS5udW0gPCBidWZmZXJzLmxlbmd0aDtcbiAgICAgICAgaWYgKGlzSW5kZXhWYWxpZCkge1xuICAgICAgICAgICAgcmV0dXJuIGJ1ZmZlcnNbZGF0YS5udW1dOyAvLyBhcHByb3ByaWF0ZSBidWZmZXIgKHNob3VsZCBiZSBuYXR1cmFsIG9yZGVyIGFueXdheSlcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImlsbGVnYWwgYXR0YWNobWVudHNcIik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSBpZiAoQXJyYXkuaXNBcnJheShkYXRhKSkge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGRhdGFbaV0gPSBfcmVjb25zdHJ1Y3RQYWNrZXQoZGF0YVtpXSwgYnVmZmVycyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSBpZiAodHlwZW9mIGRhdGEgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gZGF0YSkge1xuICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkYXRhLCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgZGF0YVtrZXldID0gX3JlY29uc3RydWN0UGFja2V0KGRhdGFba2V5XSwgYnVmZmVycyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGRhdGE7XG59XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMubmV4dFRpY2sgPSBleHBvcnRzLnBhcnNlID0gZXhwb3J0cy5pbnN0YWxsVGltZXJGdW5jdGlvbnMgPSBleHBvcnRzLnRyYW5zcG9ydHMgPSBleHBvcnRzLlRyYW5zcG9ydEVycm9yID0gZXhwb3J0cy5UcmFuc3BvcnQgPSBleHBvcnRzLnByb3RvY29sID0gZXhwb3J0cy5Tb2NrZXQgPSB2b2lkIDA7XG5jb25zdCBzb2NrZXRfanNfMSA9IHJlcXVpcmUoXCIuL3NvY2tldC5qc1wiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlNvY2tldFwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gc29ja2V0X2pzXzEuU29ja2V0OyB9IH0pO1xuZXhwb3J0cy5wcm90b2NvbCA9IHNvY2tldF9qc18xLlNvY2tldC5wcm90b2NvbDtcbnZhciB0cmFuc3BvcnRfanNfMSA9IHJlcXVpcmUoXCIuL3RyYW5zcG9ydC5qc1wiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlRyYW5zcG9ydFwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gdHJhbnNwb3J0X2pzXzEuVHJhbnNwb3J0OyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiVHJhbnNwb3J0RXJyb3JcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRyYW5zcG9ydF9qc18xLlRyYW5zcG9ydEVycm9yOyB9IH0pO1xudmFyIGluZGV4X2pzXzEgPSByZXF1aXJlKFwiLi90cmFuc3BvcnRzL2luZGV4LmpzXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwidHJhbnNwb3J0c1wiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gaW5kZXhfanNfMS50cmFuc3BvcnRzOyB9IH0pO1xudmFyIHV0aWxfanNfMSA9IHJlcXVpcmUoXCIuL3V0aWwuanNcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJpbnN0YWxsVGltZXJGdW5jdGlvbnNcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHV0aWxfanNfMS5pbnN0YWxsVGltZXJGdW5jdGlvbnM7IH0gfSk7XG52YXIgcGFyc2V1cmlfanNfMSA9IHJlcXVpcmUoXCIuL2NvbnRyaWIvcGFyc2V1cmkuanNcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJwYXJzZVwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gcGFyc2V1cmlfanNfMS5wYXJzZTsgfSB9KTtcbnZhciB3ZWJzb2NrZXRfY29uc3RydWN0b3JfanNfMSA9IHJlcXVpcmUoXCIuL3RyYW5zcG9ydHMvd2Vic29ja2V0LWNvbnN0cnVjdG9yLmpzXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwibmV4dFRpY2tcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHdlYnNvY2tldF9jb25zdHJ1Y3Rvcl9qc18xLm5leHRUaWNrOyB9IH0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmluaXQgPSB2b2lkIDA7XG5jb25zdCBDaF8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL0NoXCIpKTtcbmNvbnN0IFR1bmVPcHRpb25fMSA9IHJlcXVpcmUoXCIuL1R1bmVPcHRpb25cIik7XG5jbGFzcyBCb290T3B0aW9uTW9kZWwge1xuICAgIHN0YXRpYyBnZXRDb25uZWN0aW9uKGNvbm5lY3Rpb24pIHtcbiAgICAgICAgaWYgKGNvbm5lY3Rpb24gPT09ICcnKVxuICAgICAgICAgICAgcmV0dXJuIENoXzEuZGVmYXVsdC5yb290Q29ubmVjdGlvbjtcbiAgICAgICAgY29ubmVjdGlvbiA9IGNvbm5lY3Rpb24uZW5kc1dpdGgoQ2hfMS5kZWZhdWx0LnJvb3RDb25uZWN0aW9uKSA/IGNvbm5lY3Rpb24gOiBgJHtjb25uZWN0aW9ufSR7Q2hfMS5kZWZhdWx0LnJvb3RDb25uZWN0aW9ufWA7XG4gICAgICAgIHJldHVybiBjb25uZWN0aW9uLnN0YXJ0c1dpdGgoQ2hfMS5kZWZhdWx0LnJvb3RDb25uZWN0aW9uKSA/IGNvbm5lY3Rpb24gOiBgJHtDaF8xLmRlZmF1bHQucm9vdENvbm5lY3Rpb259JHtjb25uZWN0aW9ufWA7XG4gICAgfVxuICAgIHN0YXRpYyBnZXRUdW5lT3B0aW9uU3RyaW5nKHR1bmVPcHRpb24pIHtcbiAgICAgICAgbGV0IHR1bmVPcHRpb25OdW1iZXJzID0ge307XG4gICAgICAgIE9iamVjdC5rZXlzKHR1bmVPcHRpb24pLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdHVuZU9wdGlvbktleSA9IGtleTtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gTnVtYmVyKHR1bmVPcHRpb25bdHVuZU9wdGlvbktleV0pO1xuICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdHVuZU9wdGlvbk51bWJlcnNbdHVuZU9wdGlvbktleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHBhcnNlZFR1bmVPcHRpb24gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHR1bmVPcHRpb25OdW1iZXJzKSk7XG4gICAgICAgIHJldHVybiBuZXcgVVJMU2VhcmNoUGFyYW1zKHBhcnNlZFR1bmVPcHRpb24pLnRvU3RyaW5nKCk7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKHBhcmFtcyA9IGV4cG9ydHMuaW5pdCkge1xuICAgICAgICB0aGlzLmhhc1NsYXNoID0gZmFsc2U7XG4gICAgICAgIHRoaXMucHJvdG9jb2wgPSAnJztcbiAgICAgICAgdGhpcy5ob3N0ID0gJyc7XG4gICAgICAgIHRoaXMuY29ubmVjdGlvbiA9IENoXzEuZGVmYXVsdC5yb290Q29ubmVjdGlvbjtcbiAgICAgICAgdGhpcy50dW5lT3B0aW9uID0gVHVuZU9wdGlvbl8xLmluaXQ7XG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHRoaXMsIHBhcmFtcyk7XG4gICAgfVxufVxuZXhwb3J0cy5kZWZhdWx0ID0gQm9vdE9wdGlvbk1vZGVsO1xuZXhwb3J0cy5pbml0ID0ge1xuICAgIGhhc1NsYXNoOiBmYWxzZSxcbiAgICBwcm90b2NvbDogJycsXG4gICAgaG9zdDogJycsXG4gICAgY29ubmVjdGlvbjogJycsXG4gICAgdHVuZU9wdGlvbjoge30sXG59O1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmJ5dGVMZW5ndGggPSBleHBvcnRzLmluc3RhbGxUaW1lckZ1bmN0aW9ucyA9IGV4cG9ydHMucGljayA9IHZvaWQgMDtcbmNvbnN0IGdsb2JhbFRoaXNfanNfMSA9IHJlcXVpcmUoXCIuL2dsb2JhbFRoaXMuanNcIik7XG5mdW5jdGlvbiBwaWNrKG9iaiwgLi4uYXR0cikge1xuICAgIHJldHVybiBhdHRyLnJlZHVjZSgoYWNjLCBrKSA9PiB7XG4gICAgICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkoaykpIHtcbiAgICAgICAgICAgIGFjY1trXSA9IG9ialtrXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHt9KTtcbn1cbmV4cG9ydHMucGljayA9IHBpY2s7XG4vLyBLZWVwIGEgcmVmZXJlbmNlIHRvIHRoZSByZWFsIHRpbWVvdXQgZnVuY3Rpb25zIHNvIHRoZXkgY2FuIGJlIHVzZWQgd2hlbiBvdmVycmlkZGVuXG5jb25zdCBOQVRJVkVfU0VUX1RJTUVPVVQgPSBnbG9iYWxUaGlzX2pzXzEuZ2xvYmFsVGhpc1NoaW0uc2V0VGltZW91dDtcbmNvbnN0IE5BVElWRV9DTEVBUl9USU1FT1VUID0gZ2xvYmFsVGhpc19qc18xLmdsb2JhbFRoaXNTaGltLmNsZWFyVGltZW91dDtcbmZ1bmN0aW9uIGluc3RhbGxUaW1lckZ1bmN0aW9ucyhvYmosIG9wdHMpIHtcbiAgICBpZiAob3B0cy51c2VOYXRpdmVUaW1lcnMpIHtcbiAgICAgICAgb2JqLnNldFRpbWVvdXRGbiA9IE5BVElWRV9TRVRfVElNRU9VVC5iaW5kKGdsb2JhbFRoaXNfanNfMS5nbG9iYWxUaGlzU2hpbSk7XG4gICAgICAgIG9iai5jbGVhclRpbWVvdXRGbiA9IE5BVElWRV9DTEVBUl9USU1FT1VULmJpbmQoZ2xvYmFsVGhpc19qc18xLmdsb2JhbFRoaXNTaGltKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIG9iai5zZXRUaW1lb3V0Rm4gPSBnbG9iYWxUaGlzX2pzXzEuZ2xvYmFsVGhpc1NoaW0uc2V0VGltZW91dC5iaW5kKGdsb2JhbFRoaXNfanNfMS5nbG9iYWxUaGlzU2hpbSk7XG4gICAgICAgIG9iai5jbGVhclRpbWVvdXRGbiA9IGdsb2JhbFRoaXNfanNfMS5nbG9iYWxUaGlzU2hpbS5jbGVhclRpbWVvdXQuYmluZChnbG9iYWxUaGlzX2pzXzEuZ2xvYmFsVGhpc1NoaW0pO1xuICAgIH1cbn1cbmV4cG9ydHMuaW5zdGFsbFRpbWVyRnVuY3Rpb25zID0gaW5zdGFsbFRpbWVyRnVuY3Rpb25zO1xuLy8gYmFzZTY0IGVuY29kZWQgYnVmZmVycyBhcmUgYWJvdXQgMzMlIGJpZ2dlciAoaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQmFzZTY0KVxuY29uc3QgQkFTRTY0X09WRVJIRUFEID0gMS4zMztcbi8vIHdlIGNvdWxkIGFsc28gaGF2ZSB1c2VkIGBuZXcgQmxvYihbb2JqXSkuc2l6ZWAsIGJ1dCBpdCBpc24ndCBzdXBwb3J0ZWQgaW4gSUU5XG5mdW5jdGlvbiBieXRlTGVuZ3RoKG9iaikge1xuICAgIGlmICh0eXBlb2Ygb2JqID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHJldHVybiB1dGY4TGVuZ3RoKG9iaik7XG4gICAgfVxuICAgIC8vIGFycmF5YnVmZmVyIG9yIGJsb2JcbiAgICByZXR1cm4gTWF0aC5jZWlsKChvYmouYnl0ZUxlbmd0aCB8fCBvYmouc2l6ZSkgKiBCQVNFNjRfT1ZFUkhFQUQpO1xufVxuZXhwb3J0cy5ieXRlTGVuZ3RoID0gYnl0ZUxlbmd0aDtcbmZ1bmN0aW9uIHV0ZjhMZW5ndGgoc3RyKSB7XG4gICAgbGV0IGMgPSAwLCBsZW5ndGggPSAwO1xuICAgIGZvciAobGV0IGkgPSAwLCBsID0gc3RyLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgICBjID0gc3RyLmNoYXJDb2RlQXQoaSk7XG4gICAgICAgIGlmIChjIDwgMHg4MCkge1xuICAgICAgICAgICAgbGVuZ3RoICs9IDE7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoYyA8IDB4ODAwKSB7XG4gICAgICAgICAgICBsZW5ndGggKz0gMjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChjIDwgMHhkODAwIHx8IGMgPj0gMHhlMDAwKSB7XG4gICAgICAgICAgICBsZW5ndGggKz0gMztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgICAgIGxlbmd0aCArPSA0O1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBsZW5ndGg7XG59XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmNvbnN0IGRlZmluZSA9IHtcbiAgICBBUFBfTkFNRTogXCJ0YWxrblwiLFxuICAgIFBST0RVQ1RJT046IFwiUFJPRFVDVElPTlwiLFxuICAgIExPQ0FMSE9TVDogXCJMT0NBTEhPU1RcIixcbiAgICBERVZFTE9QTUVOVDogXCJERVZFTE9QTUVOVFwiLFxuICAgIFBST0RVQ1RJT05fRE9NQUlOOiBcInRhbGtuLmlvXCIsXG4gICAgUFJPRFVDVElPTl9BUElfRE9NQUlOOiBcImFwaS50YWxrbi5pb1wiLFxuICAgIERFVkVMT1BNRU5UX0RPTUFJTjogXCJsb2NhbGhvc3RcIixcbiAgICBBV1NfSE9TVF9LRVk6IFwiY29tcHV0ZS5pbnRlcm5hbFwiLCAvLydlYzIuaW50ZXJuYWwnLFxuICAgIFBPUlRTOiB7XG4gICAgICAgIEhUVFA6IDgwLFxuICAgICAgICBIVFRQUzogNDQzLFxuICAgICAgICBERVZFTE9QTUVOVF9DT1ZFUjogODAwMCxcbiAgICAgICAgREVWRUxPUE1FTlRfQVBJOiA4MDAxLFxuICAgICAgICBERVZFTE9QTUVOVF9DT01QT05FTlRTOiA4MDAyLFxuICAgICAgICBERVZFTE9QTUVOVF9UVU5FOiA4MDAzLFxuICAgICAgICBERVZFTE9QTUVOVF9DTElFTlQ6IDgwODAsXG4gICAgICAgIFJFRElTOiA2Mzc5LFxuICAgICAgICBNT05HTzogMjcwMTcsXG4gICAgICAgIElPX0xCOiAxMDQ0MCxcbiAgICAgICAgSU9fUk9PVDogMTA0NDQsXG4gICAgfSxcbiAgICBTVUJfRE9NQUlOUzoge1xuICAgICAgICBXV1c6IFwid3d3XCIsXG4gICAgICAgIEFQSTogXCJhcGlcIixcbiAgICAgICAgREVTQzogXCJkZXNjXCIsXG4gICAgICAgIFBPUlRBTDogXCJwb3J0YWxcIixcbiAgICAgICAgQ0xJRU5UOiBcImNsaWVudFwiLFxuICAgICAgICBBU1NFVFM6IFwiYXNzZXRzXCIsXG4gICAgICAgIFNFU1NJT046IFwic2Vzc2lvblwiLFxuICAgICAgICBBVVRPOiBcImF1dG9cIixcbiAgICAgICAgT1dOOiBcIm93blwiLFxuICAgICAgICBORVdTOiBcIm5ld3NcIixcbiAgICAgICAgQkFOTkVSOiBcImJhbm5lclwiLFxuICAgICAgICBDT1ZFUjogXCJjb3ZlclwiLFxuICAgICAgICBSQU5LOiBcInJhbmtcIixcbiAgICAgICAgRVhUOiBcImV4dFwiLFxuICAgICAgICBDT01QT05FTlRTOiBcImNvbXBvbmVudHNcIixcbiAgICAgICAgVFVORTogXCJ0dW5lXCIsXG4gICAgICAgIFRSQU5TQUNUSU9OOiBcInRyYW5zYWN0aW9uXCIsXG4gICAgICAgIEFVVEg6IFwiYXV0aFwiLFxuICAgIH0sXG4gICAgQVBQX1RZUEVTOiB7XG4gICAgICAgIENMSUVOVDogXCJDTElFTlRcIixcbiAgICAgICAgUE9SVEFMOiBcIlBPUlRBTFwiLFxuICAgICAgICBFWFRFTlNJT046IFwiRVhURU5TSU9OXCIsXG4gICAgICAgIEFQSTogXCJBUElcIixcbiAgICAgICAgQ09WRVI6IFwiQ09WRVJcIixcbiAgICAgICAgQ09NUE9ORU5UUzogXCJDT01QT05FTlRTXCIsXG4gICAgICAgIFRVTkU6IFwiVFVORVwiLFxuICAgIH0sXG4gICAgVVJMOiB7XG4gICAgICAgIHR3aXR0ZXI6IFwiaHR0cHM6Ly90d2l0dGVyLmNvbS9cIixcbiAgICAgICAgZmFjZWJvb2s6IFwiaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL1wiLFxuICAgICAgICBhcHBzdG9yZTogXCJodHRwczovL2l0dW5lcy5hcHBsZS5jb20vYXBwL2lkXCIsXG4gICAgICAgIHBsYXlzdG9yZTogXCJodHRwczovL3BsYXkuZ29vZ2xlLmNvbS9zdG9yZS9hcHBzL2RldGFpbHM/aWQ9XCIsXG4gICAgICAgIGNocm9tZUV4dGVuc2lvbjogXCJodHRwczovL2Nocm9tZS5nb29nbGUuY29tL3dlYnN0b3JlL2RldGFpbC90YWxrbi1mb3ItY2hyb21lL2RrbmdubWRsY29mYW1icGZhY2NlcGJuamdmaG9sZ2JvP2hsPWVuXCIsXG4gICAgfSxcbiAgICB0YWxrbkNsaWVudEpzOiBcInRhbGtuLmNsaWVudC5qc1wiLFxuICAgIHRhbGtuQXBpSnM6IFwidGFsa24uYXBpLmpzXCIsXG4gICAgdGFsa25SYW5rSnM6IFwidGFsa24ucmFuay5qc1wiLFxuICAgIG5vSW5uZXJOb3RpZjogXCJTb3JyeSwgTm8gRnVuY3Rpb24uXCIsXG4gICAgYmFubmVyQ2xhc3M6IFwidGFsa25fYmFubmVyXCIsXG4gICAgc3RvcmFnZUtleToge1xuICAgICAgICBiYXNlS2V5OiBcIkB0YWxrbkBcIixcbiAgICAgICAgcG9zdHNUaW1lbGluZVplcm86IFwicG9zdHNUaW1lbGluZVplcm9cIixcbiAgICAgICAgcG9zdHNUaW1lbGluZTogXCJwb3N0c1RpbWVsaW5lXCIsXG4gICAgICAgIHBvc3RzU2luZ2xlOiBcInBvc3RzU2luZ2xlXCIsXG4gICAgICAgIHBvc3RzTXVsdGk6IFwicG9zdHNNdWx0aVwiLFxuICAgICAgICBwb3N0c0NoaWxkOiBcInBvc3RzQ2hpbGRcIixcbiAgICAgICAgcG9zdHNMb2dzOiBcInBvc3RzTG9nc1wiLFxuICAgICAgICB0aHJlYWRzOiBcInRocmVhZHNcIixcbiAgICB9LFxufTtcbmV4cG9ydHMuZGVmYXVsdCA9IGRlZmluZTtcbiIsIlwidXNlIHN0cmljdFwiO1xuXG4vKiBlc2xpbnQtZW52IGJyb3dzZXIgKi9cblxuLyogZXNsaW50LWRpc2FibGUgbm8tdW5kZWYsIG5vLXVzZS1iZWZvcmUtZGVmaW5lLCBuZXctY2FwICovXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChjb250ZW50LCB3b3JrZXJDb25zdHJ1Y3Rvciwgd29ya2VyT3B0aW9ucywgdXJsKSB7XG4gIHZhciBnbG9iYWxTY29wZSA9IHNlbGYgfHwgd2luZG93O1xuXG4gIHRyeSB7XG4gICAgdHJ5IHtcbiAgICAgIHZhciBibG9iO1xuXG4gICAgICB0cnkge1xuICAgICAgICAvLyBOZXcgQVBJXG4gICAgICAgIGJsb2IgPSBuZXcgZ2xvYmFsU2NvcGUuQmxvYihbY29udGVudF0pO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvLyBCbG9iQnVpbGRlciA9IERlcHJlY2F0ZWQsIGJ1dCB3aWRlbHkgaW1wbGVtZW50ZWRcbiAgICAgICAgdmFyIEJsb2JCdWlsZGVyID0gZ2xvYmFsU2NvcGUuQmxvYkJ1aWxkZXIgfHwgZ2xvYmFsU2NvcGUuV2ViS2l0QmxvYkJ1aWxkZXIgfHwgZ2xvYmFsU2NvcGUuTW96QmxvYkJ1aWxkZXIgfHwgZ2xvYmFsU2NvcGUuTVNCbG9iQnVpbGRlcjtcbiAgICAgICAgYmxvYiA9IG5ldyBCbG9iQnVpbGRlcigpO1xuICAgICAgICBibG9iLmFwcGVuZChjb250ZW50KTtcbiAgICAgICAgYmxvYiA9IGJsb2IuZ2V0QmxvYigpO1xuICAgICAgfVxuXG4gICAgICB2YXIgVVJMID0gZ2xvYmFsU2NvcGUuVVJMIHx8IGdsb2JhbFNjb3BlLndlYmtpdFVSTDtcbiAgICAgIHZhciBvYmplY3RVUkwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICAgICAgdmFyIHdvcmtlciA9IG5ldyBnbG9iYWxTY29wZVt3b3JrZXJDb25zdHJ1Y3Rvcl0ob2JqZWN0VVJMLCB3b3JrZXJPcHRpb25zKTtcbiAgICAgIFVSTC5yZXZva2VPYmplY3RVUkwob2JqZWN0VVJMKTtcbiAgICAgIHJldHVybiB3b3JrZXI7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIG5ldyBnbG9iYWxTY29wZVt3b3JrZXJDb25zdHJ1Y3Rvcl0oXCJkYXRhOmFwcGxpY2F0aW9uL2phdmFzY3JpcHQsXCIuY29uY2F0KGVuY29kZVVSSUNvbXBvbmVudChjb250ZW50KSksIHdvcmtlck9wdGlvbnMpO1xuICAgIH1cbiAgfSBjYXRjaCAoZSkge1xuICAgIGlmICghdXJsKSB7XG4gICAgICB0aHJvdyBFcnJvcihcIklubGluZSB3b3JrZXIgaXMgbm90IHN1cHBvcnRlZFwiKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IGdsb2JhbFNjb3BlW3dvcmtlckNvbnN0cnVjdG9yXSh1cmwsIHdvcmtlck9wdGlvbnMpO1xuICB9XG59OyIsIi8vIHNoaW0gZm9yIHVzaW5nIHByb2Nlc3MgaW4gYnJvd3NlclxudmFyIHByb2Nlc3MgPSBtb2R1bGUuZXhwb3J0cyA9IHt9O1xuXG4vLyBjYWNoZWQgZnJvbSB3aGF0ZXZlciBnbG9iYWwgaXMgcHJlc2VudCBzbyB0aGF0IHRlc3QgcnVubmVycyB0aGF0IHN0dWIgaXRcbi8vIGRvbid0IGJyZWFrIHRoaW5ncy4gIEJ1dCB3ZSBuZWVkIHRvIHdyYXAgaXQgaW4gYSB0cnkgY2F0Y2ggaW4gY2FzZSBpdCBpc1xuLy8gd3JhcHBlZCBpbiBzdHJpY3QgbW9kZSBjb2RlIHdoaWNoIGRvZXNuJ3QgZGVmaW5lIGFueSBnbG9iYWxzLiAgSXQncyBpbnNpZGUgYVxuLy8gZnVuY3Rpb24gYmVjYXVzZSB0cnkvY2F0Y2hlcyBkZW9wdGltaXplIGluIGNlcnRhaW4gZW5naW5lcy5cblxudmFyIGNhY2hlZFNldFRpbWVvdXQ7XG52YXIgY2FjaGVkQ2xlYXJUaW1lb3V0O1xuXG5mdW5jdGlvbiBkZWZhdWx0U2V0VGltb3V0KCkge1xuICAgIHRocm93IG5ldyBFcnJvcignc2V0VGltZW91dCBoYXMgbm90IGJlZW4gZGVmaW5lZCcpO1xufVxuZnVuY3Rpb24gZGVmYXVsdENsZWFyVGltZW91dCAoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdjbGVhclRpbWVvdXQgaGFzIG5vdCBiZWVuIGRlZmluZWQnKTtcbn1cbihmdW5jdGlvbiAoKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgaWYgKHR5cGVvZiBzZXRUaW1lb3V0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBjYWNoZWRTZXRUaW1lb3V0ID0gc2V0VGltZW91dDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNhY2hlZFNldFRpbWVvdXQgPSBkZWZhdWx0U2V0VGltb3V0O1xuICAgICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjYWNoZWRTZXRUaW1lb3V0ID0gZGVmYXVsdFNldFRpbW91dDtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgaWYgKHR5cGVvZiBjbGVhclRpbWVvdXQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGNhY2hlZENsZWFyVGltZW91dCA9IGNsZWFyVGltZW91dDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNhY2hlZENsZWFyVGltZW91dCA9IGRlZmF1bHRDbGVhclRpbWVvdXQ7XG4gICAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNhY2hlZENsZWFyVGltZW91dCA9IGRlZmF1bHRDbGVhclRpbWVvdXQ7XG4gICAgfVxufSAoKSlcbmZ1bmN0aW9uIHJ1blRpbWVvdXQoZnVuKSB7XG4gICAgaWYgKGNhY2hlZFNldFRpbWVvdXQgPT09IHNldFRpbWVvdXQpIHtcbiAgICAgICAgLy9ub3JtYWwgZW52aXJvbWVudHMgaW4gc2FuZSBzaXR1YXRpb25zXG4gICAgICAgIHJldHVybiBzZXRUaW1lb3V0KGZ1biwgMCk7XG4gICAgfVxuICAgIC8vIGlmIHNldFRpbWVvdXQgd2Fzbid0IGF2YWlsYWJsZSBidXQgd2FzIGxhdHRlciBkZWZpbmVkXG4gICAgaWYgKChjYWNoZWRTZXRUaW1lb3V0ID09PSBkZWZhdWx0U2V0VGltb3V0IHx8ICFjYWNoZWRTZXRUaW1lb3V0KSAmJiBzZXRUaW1lb3V0KSB7XG4gICAgICAgIGNhY2hlZFNldFRpbWVvdXQgPSBzZXRUaW1lb3V0O1xuICAgICAgICByZXR1cm4gc2V0VGltZW91dChmdW4sIDApO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICAvLyB3aGVuIHdoZW4gc29tZWJvZHkgaGFzIHNjcmV3ZWQgd2l0aCBzZXRUaW1lb3V0IGJ1dCBubyBJLkUuIG1hZGRuZXNzXG4gICAgICAgIHJldHVybiBjYWNoZWRTZXRUaW1lb3V0KGZ1biwgMCk7XG4gICAgfSBjYXRjaChlKXtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIC8vIFdoZW4gd2UgYXJlIGluIEkuRS4gYnV0IHRoZSBzY3JpcHQgaGFzIGJlZW4gZXZhbGVkIHNvIEkuRS4gZG9lc24ndCB0cnVzdCB0aGUgZ2xvYmFsIG9iamVjdCB3aGVuIGNhbGxlZCBub3JtYWxseVxuICAgICAgICAgICAgcmV0dXJuIGNhY2hlZFNldFRpbWVvdXQuY2FsbChudWxsLCBmdW4sIDApO1xuICAgICAgICB9IGNhdGNoKGUpe1xuICAgICAgICAgICAgLy8gc2FtZSBhcyBhYm92ZSBidXQgd2hlbiBpdCdzIGEgdmVyc2lvbiBvZiBJLkUuIHRoYXQgbXVzdCBoYXZlIHRoZSBnbG9iYWwgb2JqZWN0IGZvciAndGhpcycsIGhvcGZ1bGx5IG91ciBjb250ZXh0IGNvcnJlY3Qgb3RoZXJ3aXNlIGl0IHdpbGwgdGhyb3cgYSBnbG9iYWwgZXJyb3JcbiAgICAgICAgICAgIHJldHVybiBjYWNoZWRTZXRUaW1lb3V0LmNhbGwodGhpcywgZnVuLCAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuXG59XG5mdW5jdGlvbiBydW5DbGVhclRpbWVvdXQobWFya2VyKSB7XG4gICAgaWYgKGNhY2hlZENsZWFyVGltZW91dCA9PT0gY2xlYXJUaW1lb3V0KSB7XG4gICAgICAgIC8vbm9ybWFsIGVudmlyb21lbnRzIGluIHNhbmUgc2l0dWF0aW9uc1xuICAgICAgICByZXR1cm4gY2xlYXJUaW1lb3V0KG1hcmtlcik7XG4gICAgfVxuICAgIC8vIGlmIGNsZWFyVGltZW91dCB3YXNuJ3QgYXZhaWxhYmxlIGJ1dCB3YXMgbGF0dGVyIGRlZmluZWRcbiAgICBpZiAoKGNhY2hlZENsZWFyVGltZW91dCA9PT0gZGVmYXVsdENsZWFyVGltZW91dCB8fCAhY2FjaGVkQ2xlYXJUaW1lb3V0KSAmJiBjbGVhclRpbWVvdXQpIHtcbiAgICAgICAgY2FjaGVkQ2xlYXJUaW1lb3V0ID0gY2xlYXJUaW1lb3V0O1xuICAgICAgICByZXR1cm4gY2xlYXJUaW1lb3V0KG1hcmtlcik7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIC8vIHdoZW4gd2hlbiBzb21lYm9keSBoYXMgc2NyZXdlZCB3aXRoIHNldFRpbWVvdXQgYnV0IG5vIEkuRS4gbWFkZG5lc3NcbiAgICAgICAgcmV0dXJuIGNhY2hlZENsZWFyVGltZW91dChtYXJrZXIpO1xuICAgIH0gY2F0Y2ggKGUpe1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gV2hlbiB3ZSBhcmUgaW4gSS5FLiBidXQgdGhlIHNjcmlwdCBoYXMgYmVlbiBldmFsZWQgc28gSS5FLiBkb2Vzbid0ICB0cnVzdCB0aGUgZ2xvYmFsIG9iamVjdCB3aGVuIGNhbGxlZCBub3JtYWxseVxuICAgICAgICAgICAgcmV0dXJuIGNhY2hlZENsZWFyVGltZW91dC5jYWxsKG51bGwsIG1hcmtlcik7XG4gICAgICAgIH0gY2F0Y2ggKGUpe1xuICAgICAgICAgICAgLy8gc2FtZSBhcyBhYm92ZSBidXQgd2hlbiBpdCdzIGEgdmVyc2lvbiBvZiBJLkUuIHRoYXQgbXVzdCBoYXZlIHRoZSBnbG9iYWwgb2JqZWN0IGZvciAndGhpcycsIGhvcGZ1bGx5IG91ciBjb250ZXh0IGNvcnJlY3Qgb3RoZXJ3aXNlIGl0IHdpbGwgdGhyb3cgYSBnbG9iYWwgZXJyb3IuXG4gICAgICAgICAgICAvLyBTb21lIHZlcnNpb25zIG9mIEkuRS4gaGF2ZSBkaWZmZXJlbnQgcnVsZXMgZm9yIGNsZWFyVGltZW91dCB2cyBzZXRUaW1lb3V0XG4gICAgICAgICAgICByZXR1cm4gY2FjaGVkQ2xlYXJUaW1lb3V0LmNhbGwodGhpcywgbWFya2VyKTtcbiAgICAgICAgfVxuICAgIH1cblxuXG5cbn1cbnZhciBxdWV1ZSA9IFtdO1xudmFyIGRyYWluaW5nID0gZmFsc2U7XG52YXIgY3VycmVudFF1ZXVlO1xudmFyIHF1ZXVlSW5kZXggPSAtMTtcblxuZnVuY3Rpb24gY2xlYW5VcE5leHRUaWNrKCkge1xuICAgIGlmICghZHJhaW5pbmcgfHwgIWN1cnJlbnRRdWV1ZSkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGRyYWluaW5nID0gZmFsc2U7XG4gICAgaWYgKGN1cnJlbnRRdWV1ZS5sZW5ndGgpIHtcbiAgICAgICAgcXVldWUgPSBjdXJyZW50UXVldWUuY29uY2F0KHF1ZXVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBxdWV1ZUluZGV4ID0gLTE7XG4gICAgfVxuICAgIGlmIChxdWV1ZS5sZW5ndGgpIHtcbiAgICAgICAgZHJhaW5RdWV1ZSgpO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gZHJhaW5RdWV1ZSgpIHtcbiAgICBpZiAoZHJhaW5pbmcpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2YXIgdGltZW91dCA9IHJ1blRpbWVvdXQoY2xlYW5VcE5leHRUaWNrKTtcbiAgICBkcmFpbmluZyA9IHRydWU7XG5cbiAgICB2YXIgbGVuID0gcXVldWUubGVuZ3RoO1xuICAgIHdoaWxlKGxlbikge1xuICAgICAgICBjdXJyZW50UXVldWUgPSBxdWV1ZTtcbiAgICAgICAgcXVldWUgPSBbXTtcbiAgICAgICAgd2hpbGUgKCsrcXVldWVJbmRleCA8IGxlbikge1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRRdWV1ZSkge1xuICAgICAgICAgICAgICAgIGN1cnJlbnRRdWV1ZVtxdWV1ZUluZGV4XS5ydW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBxdWV1ZUluZGV4ID0gLTE7XG4gICAgICAgIGxlbiA9IHF1ZXVlLmxlbmd0aDtcbiAgICB9XG4gICAgY3VycmVudFF1ZXVlID0gbnVsbDtcbiAgICBkcmFpbmluZyA9IGZhbHNlO1xuICAgIHJ1bkNsZWFyVGltZW91dCh0aW1lb3V0KTtcbn1cblxucHJvY2Vzcy5uZXh0VGljayA9IGZ1bmN0aW9uIChmdW4pIHtcbiAgICB2YXIgYXJncyA9IG5ldyBBcnJheShhcmd1bWVudHMubGVuZ3RoIC0gMSk7XG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAxKSB7XG4gICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBhcmdzW2kgLSAxXSA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBxdWV1ZS5wdXNoKG5ldyBJdGVtKGZ1biwgYXJncykpO1xuICAgIGlmIChxdWV1ZS5sZW5ndGggPT09IDEgJiYgIWRyYWluaW5nKSB7XG4gICAgICAgIHJ1blRpbWVvdXQoZHJhaW5RdWV1ZSk7XG4gICAgfVxufTtcblxuLy8gdjggbGlrZXMgcHJlZGljdGlibGUgb2JqZWN0c1xuZnVuY3Rpb24gSXRlbShmdW4sIGFycmF5KSB7XG4gICAgdGhpcy5mdW4gPSBmdW47XG4gICAgdGhpcy5hcnJheSA9IGFycmF5O1xufVxuSXRlbS5wcm90b3R5cGUucnVuID0gZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuZnVuLmFwcGx5KG51bGwsIHRoaXMuYXJyYXkpO1xufTtcbnByb2Nlc3MudGl0bGUgPSAnYnJvd3Nlcic7XG5wcm9jZXNzLmJyb3dzZXIgPSB0cnVlO1xucHJvY2Vzcy5lbnYgPSB7fTtcbnByb2Nlc3MuYXJndiA9IFtdO1xucHJvY2Vzcy52ZXJzaW9uID0gJyc7IC8vIGVtcHR5IHN0cmluZyB0byBhdm9pZCByZWdleHAgaXNzdWVzXG5wcm9jZXNzLnZlcnNpb25zID0ge307XG5cbmZ1bmN0aW9uIG5vb3AoKSB7fVxuXG5wcm9jZXNzLm9uID0gbm9vcDtcbnByb2Nlc3MuYWRkTGlzdGVuZXIgPSBub29wO1xucHJvY2Vzcy5vbmNlID0gbm9vcDtcbnByb2Nlc3Mub2ZmID0gbm9vcDtcbnByb2Nlc3MucmVtb3ZlTGlzdGVuZXIgPSBub29wO1xucHJvY2Vzcy5yZW1vdmVBbGxMaXN0ZW5lcnMgPSBub29wO1xucHJvY2Vzcy5lbWl0ID0gbm9vcDtcbnByb2Nlc3MucHJlcGVuZExpc3RlbmVyID0gbm9vcDtcbnByb2Nlc3MucHJlcGVuZE9uY2VMaXN0ZW5lciA9IG5vb3A7XG5cbnByb2Nlc3MubGlzdGVuZXJzID0gZnVuY3Rpb24gKG5hbWUpIHsgcmV0dXJuIFtdIH1cblxucHJvY2Vzcy5iaW5kaW5nID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3Byb2Nlc3MuYmluZGluZyBpcyBub3Qgc3VwcG9ydGVkJyk7XG59O1xuXG5wcm9jZXNzLmN3ZCA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuICcvJyB9O1xucHJvY2Vzcy5jaGRpciA9IGZ1bmN0aW9uIChkaXIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3Byb2Nlc3MuY2hkaXIgaXMgbm90IHN1cHBvcnRlZCcpO1xufTtcbnByb2Nlc3MudW1hc2sgPSBmdW5jdGlvbigpIHsgcmV0dXJuIDA7IH07XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuY3JlYXRlQXBpU3RvcmUgPSB2b2lkIDA7XG5jb25zdCB0b29sa2l0XzEgPSByZXF1aXJlKFwiQHJlZHV4anMvdG9vbGtpdFwiKTtcbmNvbnN0IG1pZGRsZXdhcmVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQGFwaS1jbGllbnQvcmVkdXgvbWlkZGxld2FyZVwiKSk7XG5jb25zdCByZWR1Y2Vyc18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJAYXBpLWNsaWVudC9yZWR1eC9yZWR1Y2Vyc1wiKSk7XG5jb25zdCBhcGlTdG9yZSA9ICgwLCB0b29sa2l0XzEuY29uZmlndXJlU3RvcmUpKHtcbiAgICByZWR1Y2VyOiByZWR1Y2Vyc18xLmRlZmF1bHQsXG4gICAgbWlkZGxld2FyZTogKGdldERlZmF1bHRNaWRkbGV3YXJlKSA9PiBnZXREZWZhdWx0TWlkZGxld2FyZSgpLmNvbmNhdChtaWRkbGV3YXJlXzEuZGVmYXVsdCksXG59KTtcbmNvbnN0IGNyZWF0ZUFwaVN0b3JlID0gKCkgPT4ge1xuICAgIHJldHVybiAoMCwgdG9vbGtpdF8xLmNvbmZpZ3VyZVN0b3JlKSh7XG4gICAgICAgIHJlZHVjZXI6IHJlZHVjZXJzXzEuZGVmYXVsdCxcbiAgICAgICAgbWlkZGxld2FyZTogKGdldERlZmF1bHRNaWRkbGV3YXJlKSA9PiBnZXREZWZhdWx0TWlkZGxld2FyZSgpLmNvbmNhdChtaWRkbGV3YXJlXzEuZGVmYXVsdCksXG4gICAgfSk7XG59O1xuZXhwb3J0cy5jcmVhdGVBcGlTdG9yZSA9IGNyZWF0ZUFwaVN0b3JlO1xuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgbW9kdWxlLmhvdCkge1xuICAgIG1vZHVsZS5ob3QuYWNjZXB0KCdAYXBpLWNsaWVudC9yZWR1eC9yZWR1Y2VycycsICgpID0+IHtcbiAgICAgICAgY29uc3QgbmV3Um9vdFJlZHVjZXIgPSByZXF1aXJlKCdAYXBpLWNsaWVudC9yZWR1eC9yZWR1Y2VycycpLmRlZmF1bHQ7XG4gICAgICAgIGFwaVN0b3JlLnJlcGxhY2VSZWR1Y2VyKG5ld1Jvb3RSZWR1Y2VyKTtcbiAgICB9KTtcbn1cbmV4cG9ydHMuZGVmYXVsdCA9IGFwaVN0b3JlO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmdlbmVyYXRlVW5pcXVlS2V5ID0gZXhwb3J0cy5nZW5lcmF0ZVVuaXF1ZUtleVNlcGFyYXRvciA9IGV4cG9ydHMuaXNWYWxpZEtleSA9IGV4cG9ydHMuSVNfTk9ERSA9IGV4cG9ydHMuSVNfQlJPV1NFUiA9IGV4cG9ydHMuaXNOb2RlU2VydmVyID0gdm9pZCAwO1xuZXhwb3J0cy5nZXRFbnZWYXIgPSBnZXRFbnZWYXI7XG5jb25zdCBpc05vZGVTZXJ2ZXIgPSAoKSA9PiB0eXBlb2Ygd2luZG93ID09PSBcInVuZGVmaW5lZFwiO1xuZXhwb3J0cy5pc05vZGVTZXJ2ZXIgPSBpc05vZGVTZXJ2ZXI7XG4vLyBydW50aW1lLnRzXG5leHBvcnRzLklTX0JST1dTRVIgPSB0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiO1xuZXhwb3J0cy5JU19OT0RFID0gdHlwZW9mIHByb2Nlc3MgIT09IFwidW5kZWZpbmVkXCIgJiYgISFwcm9jZXNzLnJlbGVhc2U/Lm5hbWU7XG5mdW5jdGlvbiBnZXRFbnZWYXIoa2V5KSB7XG4gICAgaWYgKGV4cG9ydHMuSVNfTk9ERSkge1xuICAgICAgICAvLyBOb2Rl77yI44K144O844OQ77yJ44Gg44GR5Y+C54WnXG4gICAgICAgIHJldHVybiBwcm9jZXNzLmVudj8uW2tleV07XG4gICAgfVxuICAgIC8vIOODluODqeOCpuOCtuOBp+OBr+WPgueFp+OBl+OBquOBhO+8iOW/heimgeOBquOCiSBwdWJsaWMg55Kw5aKD5aSJ5pWw44G477yJXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cbmNvbnN0IGlzVmFsaWRLZXkgPSAoa2V5LCBvYmopID0+IHtcbiAgICByZXR1cm4ga2V5IGluIG9iajtcbn07XG5leHBvcnRzLmlzVmFsaWRLZXkgPSBpc1ZhbGlkS2V5O1xuZXhwb3J0cy5nZW5lcmF0ZVVuaXF1ZUtleVNlcGFyYXRvciA9IFwiOjpcIjtcbmNvbnN0IGdlbmVyYXRlVW5pcXVlS2V5ID0gKGxhYmVsID0gXCJpZFwiLCBzZXBlcmF0b3IgPSBleHBvcnRzLmdlbmVyYXRlVW5pcXVlS2V5U2VwYXJhdG9yKSA9PiB7XG4gICAgcmV0dXJuIChsYWJlbCArXG4gICAgICAgIHNlcGVyYXRvciArXG4gICAgICAgIERhdGUubm93KCkudG9TdHJpbmcoMzYpICtcbiAgICAgICAgTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsIDUpKTtcbn07XG5leHBvcnRzLmdlbmVyYXRlVW5pcXVlS2V5ID0gZ2VuZXJhdGVVbmlxdWVLZXk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMub24gPSB2b2lkIDA7XG5mdW5jdGlvbiBvbihvYmosIGV2LCBmbikge1xuICAgIG9iai5vbihldiwgZm4pO1xuICAgIHJldHVybiBmdW5jdGlvbiBzdWJEZXN0cm95KCkge1xuICAgICAgICBvYmoub2ZmKGV2LCBmbik7XG4gICAgfTtcbn1cbmV4cG9ydHMub24gPSBvbjtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5Tb2NrZXQgPSB2b2lkIDA7XG5jb25zdCBzb2NrZXRfaW9fcGFyc2VyXzEgPSByZXF1aXJlKFwic29ja2V0LmlvLXBhcnNlclwiKTtcbmNvbnN0IG9uX2pzXzEgPSByZXF1aXJlKFwiLi9vbi5qc1wiKTtcbmNvbnN0IGNvbXBvbmVudF9lbWl0dGVyXzEgPSByZXF1aXJlKFwiQHNvY2tldC5pby9jb21wb25lbnQtZW1pdHRlclwiKTtcbmNvbnN0IGRlYnVnXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcImRlYnVnXCIpKTsgLy8gZGVidWcoKVxuY29uc3QgZGVidWcgPSBkZWJ1Z18xLmRlZmF1bHQoXCJzb2NrZXQuaW8tY2xpZW50OnNvY2tldFwiKTsgLy8gZGVidWcoKVxuLyoqXG4gKiBJbnRlcm5hbCBldmVudHMuXG4gKiBUaGVzZSBldmVudHMgY2FuJ3QgYmUgZW1pdHRlZCBieSB0aGUgdXNlci5cbiAqL1xuY29uc3QgUkVTRVJWRURfRVZFTlRTID0gT2JqZWN0LmZyZWV6ZSh7XG4gICAgY29ubmVjdDogMSxcbiAgICBjb25uZWN0X2Vycm9yOiAxLFxuICAgIGRpc2Nvbm5lY3Q6IDEsXG4gICAgZGlzY29ubmVjdGluZzogMSxcbiAgICAvLyBFdmVudEVtaXR0ZXIgcmVzZXJ2ZWQgZXZlbnRzOiBodHRwczovL25vZGVqcy5vcmcvYXBpL2V2ZW50cy5odG1sI2V2ZW50c19ldmVudF9uZXdsaXN0ZW5lclxuICAgIG5ld0xpc3RlbmVyOiAxLFxuICAgIHJlbW92ZUxpc3RlbmVyOiAxLFxufSk7XG4vKipcbiAqIEEgU29ja2V0IGlzIHRoZSBmdW5kYW1lbnRhbCBjbGFzcyBmb3IgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgc2VydmVyLlxuICpcbiAqIEEgU29ja2V0IGJlbG9uZ3MgdG8gYSBjZXJ0YWluIE5hbWVzcGFjZSAoYnkgZGVmYXVsdCAvKSBhbmQgdXNlcyBhbiB1bmRlcmx5aW5nIHtAbGluayBNYW5hZ2VyfSB0byBjb21tdW5pY2F0ZS5cbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3Qgc29ja2V0ID0gaW8oKTtcbiAqXG4gKiBzb2NrZXQub24oXCJjb25uZWN0XCIsICgpID0+IHtcbiAqICAgY29uc29sZS5sb2coXCJjb25uZWN0ZWRcIik7XG4gKiB9KTtcbiAqXG4gKiAvLyBzZW5kIGFuIGV2ZW50IHRvIHRoZSBzZXJ2ZXJcbiAqIHNvY2tldC5lbWl0KFwiZm9vXCIsIFwiYmFyXCIpO1xuICpcbiAqIHNvY2tldC5vbihcImZvb2JhclwiLCAoKSA9PiB7XG4gKiAgIC8vIGFuIGV2ZW50IHdhcyByZWNlaXZlZCBmcm9tIHRoZSBzZXJ2ZXJcbiAqIH0pO1xuICpcbiAqIC8vIHVwb24gZGlzY29ubmVjdGlvblxuICogc29ja2V0Lm9uKFwiZGlzY29ubmVjdFwiLCAocmVhc29uKSA9PiB7XG4gKiAgIGNvbnNvbGUubG9nKGBkaXNjb25uZWN0ZWQgZHVlIHRvICR7cmVhc29ufWApO1xuICogfSk7XG4gKi9cbmNsYXNzIFNvY2tldCBleHRlbmRzIGNvbXBvbmVudF9lbWl0dGVyXzEuRW1pdHRlciB7XG4gICAgLyoqXG4gICAgICogYFNvY2tldGAgY29uc3RydWN0b3IuXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoaW8sIG5zcCwgb3B0cykge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICAvKipcbiAgICAgICAgICogV2hldGhlciB0aGUgc29ja2V0IGlzIGN1cnJlbnRseSBjb25uZWN0ZWQgdG8gdGhlIHNlcnZlci5cbiAgICAgICAgICpcbiAgICAgICAgICogQGV4YW1wbGVcbiAgICAgICAgICogY29uc3Qgc29ja2V0ID0gaW8oKTtcbiAgICAgICAgICpcbiAgICAgICAgICogc29ja2V0Lm9uKFwiY29ubmVjdFwiLCAoKSA9PiB7XG4gICAgICAgICAqICAgY29uc29sZS5sb2coc29ja2V0LmNvbm5lY3RlZCk7IC8vIHRydWVcbiAgICAgICAgICogfSk7XG4gICAgICAgICAqXG4gICAgICAgICAqIHNvY2tldC5vbihcImRpc2Nvbm5lY3RcIiwgKCkgPT4ge1xuICAgICAgICAgKiAgIGNvbnNvbGUubG9nKHNvY2tldC5jb25uZWN0ZWQpOyAvLyBmYWxzZVxuICAgICAgICAgKiB9KTtcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuY29ubmVjdGVkID0gZmFsc2U7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBXaGV0aGVyIHRoZSBjb25uZWN0aW9uIHN0YXRlIHdhcyByZWNvdmVyZWQgYWZ0ZXIgYSB0ZW1wb3JhcnkgZGlzY29ubmVjdGlvbi4gSW4gdGhhdCBjYXNlLCBhbnkgbWlzc2VkIHBhY2tldHMgd2lsbFxuICAgICAgICAgKiBiZSB0cmFuc21pdHRlZCBieSB0aGUgc2VydmVyLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5yZWNvdmVyZWQgPSBmYWxzZTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEJ1ZmZlciBmb3IgcGFja2V0cyByZWNlaXZlZCBiZWZvcmUgdGhlIENPTk5FQ1QgcGFja2V0XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnJlY2VpdmVCdWZmZXIgPSBbXTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEJ1ZmZlciBmb3IgcGFja2V0cyB0aGF0IHdpbGwgYmUgc2VudCBvbmNlIHRoZSBzb2NrZXQgaXMgY29ubmVjdGVkXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnNlbmRCdWZmZXIgPSBbXTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBxdWV1ZSBvZiBwYWNrZXRzIHRvIGJlIHNlbnQgd2l0aCByZXRyeSBpbiBjYXNlIG9mIGZhaWx1cmUuXG4gICAgICAgICAqXG4gICAgICAgICAqIFBhY2tldHMgYXJlIHNlbnQgb25lIGJ5IG9uZSwgZWFjaCB3YWl0aW5nIGZvciB0aGUgc2VydmVyIGFja25vd2xlZGdlbWVudCwgaW4gb3JkZXIgdG8gZ3VhcmFudGVlIHRoZSBkZWxpdmVyeSBvcmRlci5cbiAgICAgICAgICogQHByaXZhdGVcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuX3F1ZXVlID0gW107XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBIHNlcXVlbmNlIHRvIGdlbmVyYXRlIHRoZSBJRCBvZiB0aGUge0BsaW5rIFF1ZXVlZFBhY2tldH0uXG4gICAgICAgICAqIEBwcml2YXRlXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLl9xdWV1ZVNlcSA9IDA7XG4gICAgICAgIHRoaXMuaWRzID0gMDtcbiAgICAgICAgdGhpcy5hY2tzID0ge307XG4gICAgICAgIHRoaXMuZmxhZ3MgPSB7fTtcbiAgICAgICAgdGhpcy5pbyA9IGlvO1xuICAgICAgICB0aGlzLm5zcCA9IG5zcDtcbiAgICAgICAgaWYgKG9wdHMgJiYgb3B0cy5hdXRoKSB7XG4gICAgICAgICAgICB0aGlzLmF1dGggPSBvcHRzLmF1dGg7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fb3B0cyA9IE9iamVjdC5hc3NpZ24oe30sIG9wdHMpO1xuICAgICAgICBpZiAodGhpcy5pby5fYXV0b0Nvbm5lY3QpXG4gICAgICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgc29ja2V0IGlzIGN1cnJlbnRseSBkaXNjb25uZWN0ZWRcbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogY29uc3Qgc29ja2V0ID0gaW8oKTtcbiAgICAgKlxuICAgICAqIHNvY2tldC5vbihcImNvbm5lY3RcIiwgKCkgPT4ge1xuICAgICAqICAgY29uc29sZS5sb2coc29ja2V0LmRpc2Nvbm5lY3RlZCk7IC8vIGZhbHNlXG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiBzb2NrZXQub24oXCJkaXNjb25uZWN0XCIsICgpID0+IHtcbiAgICAgKiAgIGNvbnNvbGUubG9nKHNvY2tldC5kaXNjb25uZWN0ZWQpOyAvLyB0cnVlXG4gICAgICogfSk7XG4gICAgICovXG4gICAgZ2V0IGRpc2Nvbm5lY3RlZCgpIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmNvbm5lY3RlZDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogU3Vic2NyaWJlIHRvIG9wZW4sIGNsb3NlIGFuZCBwYWNrZXQgZXZlbnRzXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHN1YkV2ZW50cygpIHtcbiAgICAgICAgaWYgKHRoaXMuc3VicylcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgaW8gPSB0aGlzLmlvO1xuICAgICAgICB0aGlzLnN1YnMgPSBbXG4gICAgICAgICAgICBvbl9qc18xLm9uKGlvLCBcIm9wZW5cIiwgdGhpcy5vbm9wZW4uYmluZCh0aGlzKSksXG4gICAgICAgICAgICBvbl9qc18xLm9uKGlvLCBcInBhY2tldFwiLCB0aGlzLm9ucGFja2V0LmJpbmQodGhpcykpLFxuICAgICAgICAgICAgb25fanNfMS5vbihpbywgXCJlcnJvclwiLCB0aGlzLm9uZXJyb3IuYmluZCh0aGlzKSksXG4gICAgICAgICAgICBvbl9qc18xLm9uKGlvLCBcImNsb3NlXCIsIHRoaXMub25jbG9zZS5iaW5kKHRoaXMpKSxcbiAgICAgICAgXTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgU29ja2V0IHdpbGwgdHJ5IHRvIHJlY29ubmVjdCB3aGVuIGl0cyBNYW5hZ2VyIGNvbm5lY3RzIG9yIHJlY29ubmVjdHMuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGNvbnN0IHNvY2tldCA9IGlvKCk7XG4gICAgICpcbiAgICAgKiBjb25zb2xlLmxvZyhzb2NrZXQuYWN0aXZlKTsgLy8gdHJ1ZVxuICAgICAqXG4gICAgICogc29ja2V0Lm9uKFwiZGlzY29ubmVjdFwiLCAocmVhc29uKSA9PiB7XG4gICAgICogICBpZiAocmVhc29uID09PSBcImlvIHNlcnZlciBkaXNjb25uZWN0XCIpIHtcbiAgICAgKiAgICAgLy8gdGhlIGRpc2Nvbm5lY3Rpb24gd2FzIGluaXRpYXRlZCBieSB0aGUgc2VydmVyLCB5b3UgbmVlZCB0byBtYW51YWxseSByZWNvbm5lY3RcbiAgICAgKiAgICAgY29uc29sZS5sb2coc29ja2V0LmFjdGl2ZSk7IC8vIGZhbHNlXG4gICAgICogICB9XG4gICAgICogICAvLyBlbHNlIHRoZSBzb2NrZXQgd2lsbCBhdXRvbWF0aWNhbGx5IHRyeSB0byByZWNvbm5lY3RcbiAgICAgKiAgIGNvbnNvbGUubG9nKHNvY2tldC5hY3RpdmUpOyAvLyB0cnVlXG4gICAgICogfSk7XG4gICAgICovXG4gICAgZ2V0IGFjdGl2ZSgpIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5zdWJzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBcIk9wZW5zXCIgdGhlIHNvY2tldC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogY29uc3Qgc29ja2V0ID0gaW8oe1xuICAgICAqICAgYXV0b0Nvbm5lY3Q6IGZhbHNlXG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiBzb2NrZXQuY29ubmVjdCgpO1xuICAgICAqL1xuICAgIGNvbm5lY3QoKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbm5lY3RlZClcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB0aGlzLnN1YkV2ZW50cygpO1xuICAgICAgICBpZiAoIXRoaXMuaW9bXCJfcmVjb25uZWN0aW5nXCJdKVxuICAgICAgICAgICAgdGhpcy5pby5vcGVuKCk7IC8vIGVuc3VyZSBvcGVuXG4gICAgICAgIGlmIChcIm9wZW5cIiA9PT0gdGhpcy5pby5fcmVhZHlTdGF0ZSlcbiAgICAgICAgICAgIHRoaXMub25vcGVuKCk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBBbGlhcyBmb3Ige0BsaW5rIGNvbm5lY3QoKX0uXG4gICAgICovXG4gICAgb3BlbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdCgpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZW5kcyBhIGBtZXNzYWdlYCBldmVudC5cbiAgICAgKlxuICAgICAqIFRoaXMgbWV0aG9kIG1pbWljcyB0aGUgV2ViU29ja2V0LnNlbmQoKSBtZXRob2QuXG4gICAgICpcbiAgICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9XZWJTb2NrZXQvc2VuZFxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBzb2NrZXQuc2VuZChcImhlbGxvXCIpO1xuICAgICAqXG4gICAgICogLy8gdGhpcyBpcyBlcXVpdmFsZW50IHRvXG4gICAgICogc29ja2V0LmVtaXQoXCJtZXNzYWdlXCIsIFwiaGVsbG9cIik7XG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHNlbGZcbiAgICAgKi9cbiAgICBzZW5kKC4uLmFyZ3MpIHtcbiAgICAgICAgYXJncy51bnNoaWZ0KFwibWVzc2FnZVwiKTtcbiAgICAgICAgdGhpcy5lbWl0LmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogT3ZlcnJpZGUgYGVtaXRgLlxuICAgICAqIElmIHRoZSBldmVudCBpcyBpbiBgZXZlbnRzYCwgaXQncyBlbWl0dGVkIG5vcm1hbGx5LlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBzb2NrZXQuZW1pdChcImhlbGxvXCIsIFwid29ybGRcIik7XG4gICAgICpcbiAgICAgKiAvLyBhbGwgc2VyaWFsaXphYmxlIGRhdGFzdHJ1Y3R1cmVzIGFyZSBzdXBwb3J0ZWQgKG5vIG5lZWQgdG8gY2FsbCBKU09OLnN0cmluZ2lmeSlcbiAgICAgKiBzb2NrZXQuZW1pdChcImhlbGxvXCIsIDEsIFwiMlwiLCB7IDM6IFtcIjRcIl0sIDU6IFVpbnQ4QXJyYXkuZnJvbShbNl0pIH0pO1xuICAgICAqXG4gICAgICogLy8gd2l0aCBhbiBhY2tub3dsZWRnZW1lbnQgZnJvbSB0aGUgc2VydmVyXG4gICAgICogc29ja2V0LmVtaXQoXCJoZWxsb1wiLCBcIndvcmxkXCIsICh2YWwpID0+IHtcbiAgICAgKiAgIC8vIC4uLlxuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogQHJldHVybiBzZWxmXG4gICAgICovXG4gICAgZW1pdChldiwgLi4uYXJncykge1xuICAgICAgICBpZiAoUkVTRVJWRURfRVZFTlRTLmhhc093blByb3BlcnR5KGV2KSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdcIicgKyBldi50b1N0cmluZygpICsgJ1wiIGlzIGEgcmVzZXJ2ZWQgZXZlbnQgbmFtZScpO1xuICAgICAgICB9XG4gICAgICAgIGFyZ3MudW5zaGlmdChldik7XG4gICAgICAgIGlmICh0aGlzLl9vcHRzLnJldHJpZXMgJiYgIXRoaXMuZmxhZ3MuZnJvbVF1ZXVlICYmICF0aGlzLmZsYWdzLnZvbGF0aWxlKSB7XG4gICAgICAgICAgICB0aGlzLl9hZGRUb1F1ZXVlKGFyZ3MpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGFja2V0ID0ge1xuICAgICAgICAgICAgdHlwZTogc29ja2V0X2lvX3BhcnNlcl8xLlBhY2tldFR5cGUuRVZFTlQsXG4gICAgICAgICAgICBkYXRhOiBhcmdzLFxuICAgICAgICB9O1xuICAgICAgICBwYWNrZXQub3B0aW9ucyA9IHt9O1xuICAgICAgICBwYWNrZXQub3B0aW9ucy5jb21wcmVzcyA9IHRoaXMuZmxhZ3MuY29tcHJlc3MgIT09IGZhbHNlO1xuICAgICAgICAvLyBldmVudCBhY2sgY2FsbGJhY2tcbiAgICAgICAgaWYgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGFyZ3NbYXJncy5sZW5ndGggLSAxXSkge1xuICAgICAgICAgICAgY29uc3QgaWQgPSB0aGlzLmlkcysrO1xuICAgICAgICAgICAgZGVidWcoXCJlbWl0dGluZyBwYWNrZXQgd2l0aCBhY2sgaWQgJWRcIiwgaWQpO1xuICAgICAgICAgICAgY29uc3QgYWNrID0gYXJncy5wb3AoKTtcbiAgICAgICAgICAgIHRoaXMuX3JlZ2lzdGVyQWNrQ2FsbGJhY2soaWQsIGFjayk7XG4gICAgICAgICAgICBwYWNrZXQuaWQgPSBpZDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpc1RyYW5zcG9ydFdyaXRhYmxlID0gdGhpcy5pby5lbmdpbmUgJiZcbiAgICAgICAgICAgIHRoaXMuaW8uZW5naW5lLnRyYW5zcG9ydCAmJlxuICAgICAgICAgICAgdGhpcy5pby5lbmdpbmUudHJhbnNwb3J0LndyaXRhYmxlO1xuICAgICAgICBjb25zdCBkaXNjYXJkUGFja2V0ID0gdGhpcy5mbGFncy52b2xhdGlsZSAmJiAoIWlzVHJhbnNwb3J0V3JpdGFibGUgfHwgIXRoaXMuY29ubmVjdGVkKTtcbiAgICAgICAgaWYgKGRpc2NhcmRQYWNrZXQpIHtcbiAgICAgICAgICAgIGRlYnVnKFwiZGlzY2FyZCBwYWNrZXQgYXMgdGhlIHRyYW5zcG9ydCBpcyBub3QgY3VycmVudGx5IHdyaXRhYmxlXCIpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHRoaXMuY29ubmVjdGVkKSB7XG4gICAgICAgICAgICB0aGlzLm5vdGlmeU91dGdvaW5nTGlzdGVuZXJzKHBhY2tldCk7XG4gICAgICAgICAgICB0aGlzLnBhY2tldChwYWNrZXQpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZW5kQnVmZmVyLnB1c2gocGFja2V0KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZsYWdzID0ge307XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIF9yZWdpc3RlckFja0NhbGxiYWNrKGlkLCBhY2spIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBjb25zdCB0aW1lb3V0ID0gKF9hID0gdGhpcy5mbGFncy50aW1lb3V0KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiB0aGlzLl9vcHRzLmFja1RpbWVvdXQ7XG4gICAgICAgIGlmICh0aW1lb3V0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuYWNrc1tpZF0gPSBhY2s7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBjb25zdCB0aW1lciA9IHRoaXMuaW8uc2V0VGltZW91dEZuKCgpID0+IHtcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLmFja3NbaWRdO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnNlbmRCdWZmZXIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zZW5kQnVmZmVyW2ldLmlkID09PSBpZCkge1xuICAgICAgICAgICAgICAgICAgICBkZWJ1ZyhcInJlbW92aW5nIHBhY2tldCB3aXRoIGFjayBpZCAlZCBmcm9tIHRoZSBidWZmZXJcIiwgaWQpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbmRCdWZmZXIuc3BsaWNlKGksIDEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlYnVnKFwiZXZlbnQgd2l0aCBhY2sgaWQgJWQgaGFzIHRpbWVkIG91dCBhZnRlciAlZCBtc1wiLCBpZCwgdGltZW91dCk7XG4gICAgICAgICAgICBhY2suY2FsbCh0aGlzLCBuZXcgRXJyb3IoXCJvcGVyYXRpb24gaGFzIHRpbWVkIG91dFwiKSk7XG4gICAgICAgIH0sIHRpbWVvdXQpO1xuICAgICAgICB0aGlzLmFja3NbaWRdID0gKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHRoaXMuaW8uY2xlYXJUaW1lb3V0Rm4odGltZXIpO1xuICAgICAgICAgICAgYWNrLmFwcGx5KHRoaXMsIFtudWxsLCAuLi5hcmdzXSk7XG4gICAgICAgIH07XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEVtaXRzIGFuIGV2ZW50IGFuZCB3YWl0cyBmb3IgYW4gYWNrbm93bGVkZ2VtZW50XG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIC8vIHdpdGhvdXQgdGltZW91dFxuICAgICAqIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgc29ja2V0LmVtaXRXaXRoQWNrKFwiaGVsbG9cIiwgXCJ3b3JsZFwiKTtcbiAgICAgKlxuICAgICAqIC8vIHdpdGggYSBzcGVjaWZpYyB0aW1lb3V0XG4gICAgICogdHJ5IHtcbiAgICAgKiAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgc29ja2V0LnRpbWVvdXQoMTAwMCkuZW1pdFdpdGhBY2soXCJoZWxsb1wiLCBcIndvcmxkXCIpO1xuICAgICAqIH0gY2F0Y2ggKGVycikge1xuICAgICAqICAgLy8gdGhlIHNlcnZlciBkaWQgbm90IGFja25vd2xlZGdlIHRoZSBldmVudCBpbiB0aGUgZ2l2ZW4gZGVsYXlcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBAcmV0dXJuIGEgUHJvbWlzZSB0aGF0IHdpbGwgYmUgZnVsZmlsbGVkIHdoZW4gdGhlIHNlcnZlciBhY2tub3dsZWRnZXMgdGhlIGV2ZW50XG4gICAgICovXG4gICAgZW1pdFdpdGhBY2soZXYsIC4uLmFyZ3MpIHtcbiAgICAgICAgLy8gdGhlIHRpbWVvdXQgZmxhZyBpcyBvcHRpb25hbFxuICAgICAgICBjb25zdCB3aXRoRXJyID0gdGhpcy5mbGFncy50aW1lb3V0ICE9PSB1bmRlZmluZWQgfHwgdGhpcy5fb3B0cy5hY2tUaW1lb3V0ICE9PSB1bmRlZmluZWQ7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBhcmdzLnB1c2goKGFyZzEsIGFyZzIpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAod2l0aEVycikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXJnMSA/IHJlamVjdChhcmcxKSA6IHJlc29sdmUoYXJnMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzb2x2ZShhcmcxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuZW1pdChldiwgLi4uYXJncyk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIHBhY2tldCB0byB0aGUgcXVldWUuXG4gICAgICogQHBhcmFtIGFyZ3NcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIF9hZGRUb1F1ZXVlKGFyZ3MpIHtcbiAgICAgICAgbGV0IGFjaztcbiAgICAgICAgaWYgKHR5cGVvZiBhcmdzW2FyZ3MubGVuZ3RoIC0gMV0gPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgYWNrID0gYXJncy5wb3AoKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYWNrZXQgPSB7XG4gICAgICAgICAgICBpZDogdGhpcy5fcXVldWVTZXErKyxcbiAgICAgICAgICAgIHRyeUNvdW50OiAwLFxuICAgICAgICAgICAgcGVuZGluZzogZmFsc2UsXG4gICAgICAgICAgICBhcmdzLFxuICAgICAgICAgICAgZmxhZ3M6IE9iamVjdC5hc3NpZ24oeyBmcm9tUXVldWU6IHRydWUgfSwgdGhpcy5mbGFncyksXG4gICAgICAgIH07XG4gICAgICAgIGFyZ3MucHVzaCgoZXJyLCAuLi5yZXNwb25zZUFyZ3MpID0+IHtcbiAgICAgICAgICAgIGlmIChwYWNrZXQgIT09IHRoaXMuX3F1ZXVlWzBdKSB7XG4gICAgICAgICAgICAgICAgLy8gdGhlIHBhY2tldCBoYXMgYWxyZWFkeSBiZWVuIGFja25vd2xlZGdlZFxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGhhc0Vycm9yID0gZXJyICE9PSBudWxsO1xuICAgICAgICAgICAgaWYgKGhhc0Vycm9yKSB7XG4gICAgICAgICAgICAgICAgaWYgKHBhY2tldC50cnlDb3VudCA+IHRoaXMuX29wdHMucmV0cmllcykge1xuICAgICAgICAgICAgICAgICAgICBkZWJ1ZyhcInBhY2tldCBbJWRdIGlzIGRpc2NhcmRlZCBhZnRlciAlZCB0cmllc1wiLCBwYWNrZXQuaWQsIHBhY2tldC50cnlDb3VudCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3F1ZXVlLnNoaWZ0KCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhY2spIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjayhlcnIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgZGVidWcoXCJwYWNrZXQgWyVkXSB3YXMgc3VjY2Vzc2Z1bGx5IHNlbnRcIiwgcGFja2V0LmlkKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9xdWV1ZS5zaGlmdCgpO1xuICAgICAgICAgICAgICAgIGlmIChhY2spIHtcbiAgICAgICAgICAgICAgICAgICAgYWNrKG51bGwsIC4uLnJlc3BvbnNlQXJncyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGFja2V0LnBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9kcmFpblF1ZXVlKCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9xdWV1ZS5wdXNoKHBhY2tldCk7XG4gICAgICAgIHRoaXMuX2RyYWluUXVldWUoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogU2VuZCB0aGUgZmlyc3QgcGFja2V0IG9mIHRoZSBxdWV1ZSwgYW5kIHdhaXQgZm9yIGFuIGFja25vd2xlZGdlbWVudCBmcm9tIHRoZSBzZXJ2ZXIuXG4gICAgICogQHBhcmFtIGZvcmNlIC0gd2hldGhlciB0byByZXNlbmQgYSBwYWNrZXQgdGhhdCBoYXMgbm90IGJlZW4gYWNrbm93bGVkZ2VkIHlldFxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBfZHJhaW5RdWV1ZShmb3JjZSA9IGZhbHNlKSB7XG4gICAgICAgIGRlYnVnKFwiZHJhaW5pbmcgcXVldWVcIik7XG4gICAgICAgIGlmICghdGhpcy5jb25uZWN0ZWQgfHwgdGhpcy5fcXVldWUubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGFja2V0ID0gdGhpcy5fcXVldWVbMF07XG4gICAgICAgIGlmIChwYWNrZXQucGVuZGluZyAmJiAhZm9yY2UpIHtcbiAgICAgICAgICAgIGRlYnVnKFwicGFja2V0IFslZF0gaGFzIGFscmVhZHkgYmVlbiBzZW50IGFuZCBpcyB3YWl0aW5nIGZvciBhbiBhY2tcIiwgcGFja2V0LmlkKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBwYWNrZXQucGVuZGluZyA9IHRydWU7XG4gICAgICAgIHBhY2tldC50cnlDb3VudCsrO1xuICAgICAgICBkZWJ1ZyhcInNlbmRpbmcgcGFja2V0IFslZF0gKHRyeSBuwrAlZClcIiwgcGFja2V0LmlkLCBwYWNrZXQudHJ5Q291bnQpO1xuICAgICAgICB0aGlzLmZsYWdzID0gcGFja2V0LmZsYWdzO1xuICAgICAgICB0aGlzLmVtaXQuYXBwbHkodGhpcywgcGFja2V0LmFyZ3MpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZW5kcyBhIHBhY2tldC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYWNrZXRcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHBhY2tldChwYWNrZXQpIHtcbiAgICAgICAgcGFja2V0Lm5zcCA9IHRoaXMubnNwO1xuICAgICAgICB0aGlzLmlvLl9wYWNrZXQocGFja2V0KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2FsbGVkIHVwb24gZW5naW5lIGBvcGVuYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgb25vcGVuKCkge1xuICAgICAgICBkZWJ1ZyhcInRyYW5zcG9ydCBpcyBvcGVuIC0gY29ubmVjdGluZ1wiKTtcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmF1dGggPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICB0aGlzLmF1dGgoKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zZW5kQ29ubmVjdFBhY2tldChkYXRhKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fc2VuZENvbm5lY3RQYWNrZXQodGhpcy5hdXRoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZW5kcyBhIENPTk5FQ1QgcGFja2V0IHRvIGluaXRpYXRlIHRoZSBTb2NrZXQuSU8gc2Vzc2lvbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBkYXRhXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBfc2VuZENvbm5lY3RQYWNrZXQoZGF0YSkge1xuICAgICAgICB0aGlzLnBhY2tldCh7XG4gICAgICAgICAgICB0eXBlOiBzb2NrZXRfaW9fcGFyc2VyXzEuUGFja2V0VHlwZS5DT05ORUNULFxuICAgICAgICAgICAgZGF0YTogdGhpcy5fcGlkXG4gICAgICAgICAgICAgICAgPyBPYmplY3QuYXNzaWduKHsgcGlkOiB0aGlzLl9waWQsIG9mZnNldDogdGhpcy5fbGFzdE9mZnNldCB9LCBkYXRhKVxuICAgICAgICAgICAgICAgIDogZGF0YSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENhbGxlZCB1cG9uIGVuZ2luZSBvciBtYW5hZ2VyIGBlcnJvcmAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZXJyXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBvbmVycm9yKGVycikge1xuICAgICAgICBpZiAoIXRoaXMuY29ubmVjdGVkKSB7XG4gICAgICAgICAgICB0aGlzLmVtaXRSZXNlcnZlZChcImNvbm5lY3RfZXJyb3JcIiwgZXJyKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgdXBvbiBlbmdpbmUgYGNsb3NlYC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSByZWFzb25cbiAgICAgKiBAcGFyYW0gZGVzY3JpcHRpb25cbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIG9uY2xvc2UocmVhc29uLCBkZXNjcmlwdGlvbikge1xuICAgICAgICBkZWJ1ZyhcImNsb3NlICglcylcIiwgcmVhc29uKTtcbiAgICAgICAgdGhpcy5jb25uZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgZGVsZXRlIHRoaXMuaWQ7XG4gICAgICAgIHRoaXMuZW1pdFJlc2VydmVkKFwiZGlzY29ubmVjdFwiLCByZWFzb24sIGRlc2NyaXB0aW9uKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2FsbGVkIHdpdGggc29ja2V0IHBhY2tldC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYWNrZXRcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIG9ucGFja2V0KHBhY2tldCkge1xuICAgICAgICBjb25zdCBzYW1lTmFtZXNwYWNlID0gcGFja2V0Lm5zcCA9PT0gdGhpcy5uc3A7XG4gICAgICAgIGlmICghc2FtZU5hbWVzcGFjZSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgc3dpdGNoIChwYWNrZXQudHlwZSkge1xuICAgICAgICAgICAgY2FzZSBzb2NrZXRfaW9fcGFyc2VyXzEuUGFja2V0VHlwZS5DT05ORUNUOlxuICAgICAgICAgICAgICAgIGlmIChwYWNrZXQuZGF0YSAmJiBwYWNrZXQuZGF0YS5zaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbmNvbm5lY3QocGFja2V0LmRhdGEuc2lkLCBwYWNrZXQuZGF0YS5waWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbWl0UmVzZXJ2ZWQoXCJjb25uZWN0X2Vycm9yXCIsIG5ldyBFcnJvcihcIkl0IHNlZW1zIHlvdSBhcmUgdHJ5aW5nIHRvIHJlYWNoIGEgU29ja2V0LklPIHNlcnZlciBpbiB2Mi54IHdpdGggYSB2My54IGNsaWVudCwgYnV0IHRoZXkgYXJlIG5vdCBjb21wYXRpYmxlIChtb3JlIGluZm9ybWF0aW9uIGhlcmU6IGh0dHBzOi8vc29ja2V0LmlvL2RvY3MvdjMvbWlncmF0aW5nLWZyb20tMi14LXRvLTMtMC8pXCIpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIHNvY2tldF9pb19wYXJzZXJfMS5QYWNrZXRUeXBlLkVWRU5UOlxuICAgICAgICAgICAgY2FzZSBzb2NrZXRfaW9fcGFyc2VyXzEuUGFja2V0VHlwZS5CSU5BUllfRVZFTlQ6XG4gICAgICAgICAgICAgICAgdGhpcy5vbmV2ZW50KHBhY2tldCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIHNvY2tldF9pb19wYXJzZXJfMS5QYWNrZXRUeXBlLkFDSzpcbiAgICAgICAgICAgIGNhc2Ugc29ja2V0X2lvX3BhcnNlcl8xLlBhY2tldFR5cGUuQklOQVJZX0FDSzpcbiAgICAgICAgICAgICAgICB0aGlzLm9uYWNrKHBhY2tldCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIHNvY2tldF9pb19wYXJzZXJfMS5QYWNrZXRUeXBlLkRJU0NPTk5FQ1Q6XG4gICAgICAgICAgICAgICAgdGhpcy5vbmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2Ugc29ja2V0X2lvX3BhcnNlcl8xLlBhY2tldFR5cGUuQ09OTkVDVF9FUlJPUjpcbiAgICAgICAgICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgICAgICAgICAgICBjb25zdCBlcnIgPSBuZXcgRXJyb3IocGFja2V0LmRhdGEubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIGVyci5kYXRhID0gcGFja2V0LmRhdGEuZGF0YTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRSZXNlcnZlZChcImNvbm5lY3RfZXJyb3JcIiwgZXJyKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgdXBvbiBhIHNlcnZlciBldmVudC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYWNrZXRcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIG9uZXZlbnQocGFja2V0KSB7XG4gICAgICAgIGNvbnN0IGFyZ3MgPSBwYWNrZXQuZGF0YSB8fCBbXTtcbiAgICAgICAgZGVidWcoXCJlbWl0dGluZyBldmVudCAlalwiLCBhcmdzKTtcbiAgICAgICAgaWYgKG51bGwgIT0gcGFja2V0LmlkKSB7XG4gICAgICAgICAgICBkZWJ1ZyhcImF0dGFjaGluZyBhY2sgY2FsbGJhY2sgdG8gZXZlbnRcIik7XG4gICAgICAgICAgICBhcmdzLnB1c2godGhpcy5hY2socGFja2V0LmlkKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuY29ubmVjdGVkKSB7XG4gICAgICAgICAgICB0aGlzLmVtaXRFdmVudChhcmdzKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucmVjZWl2ZUJ1ZmZlci5wdXNoKE9iamVjdC5mcmVlemUoYXJncykpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGVtaXRFdmVudChhcmdzKSB7XG4gICAgICAgIGlmICh0aGlzLl9hbnlMaXN0ZW5lcnMgJiYgdGhpcy5fYW55TGlzdGVuZXJzLmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgbGlzdGVuZXJzID0gdGhpcy5fYW55TGlzdGVuZXJzLnNsaWNlKCk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGxpc3RlbmVyIG9mIGxpc3RlbmVycykge1xuICAgICAgICAgICAgICAgIGxpc3RlbmVyLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHN1cGVyLmVtaXQuYXBwbHkodGhpcywgYXJncyk7XG4gICAgICAgIGlmICh0aGlzLl9waWQgJiYgYXJncy5sZW5ndGggJiYgdHlwZW9mIGFyZ3NbYXJncy5sZW5ndGggLSAxXSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgdGhpcy5fbGFzdE9mZnNldCA9IGFyZ3NbYXJncy5sZW5ndGggLSAxXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBQcm9kdWNlcyBhbiBhY2sgY2FsbGJhY2sgdG8gZW1pdCB3aXRoIGFuIGV2ZW50LlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBhY2soaWQpIHtcbiAgICAgICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgICAgIGxldCBzZW50ID0gZmFsc2U7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoLi4uYXJncykge1xuICAgICAgICAgICAgLy8gcHJldmVudCBkb3VibGUgY2FsbGJhY2tzXG4gICAgICAgICAgICBpZiAoc2VudClcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBzZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgIGRlYnVnKFwic2VuZGluZyBhY2sgJWpcIiwgYXJncyk7XG4gICAgICAgICAgICBzZWxmLnBhY2tldCh7XG4gICAgICAgICAgICAgICAgdHlwZTogc29ja2V0X2lvX3BhcnNlcl8xLlBhY2tldFR5cGUuQUNLLFxuICAgICAgICAgICAgICAgIGlkOiBpZCxcbiAgICAgICAgICAgICAgICBkYXRhOiBhcmdzLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENhbGxlZCB1cG9uIGEgc2VydmVyIGFja25vd2xlZ2VtZW50LlxuICAgICAqXG4gICAgICogQHBhcmFtIHBhY2tldFxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgb25hY2socGFja2V0KSB7XG4gICAgICAgIGNvbnN0IGFjayA9IHRoaXMuYWNrc1twYWNrZXQuaWRdO1xuICAgICAgICBpZiAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgYWNrKSB7XG4gICAgICAgICAgICBkZWJ1ZyhcImNhbGxpbmcgYWNrICVzIHdpdGggJWpcIiwgcGFja2V0LmlkLCBwYWNrZXQuZGF0YSk7XG4gICAgICAgICAgICBhY2suYXBwbHkodGhpcywgcGFja2V0LmRhdGEpO1xuICAgICAgICAgICAgZGVsZXRlIHRoaXMuYWNrc1twYWNrZXQuaWRdO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgZGVidWcoXCJiYWQgYWNrICVzXCIsIHBhY2tldC5pZCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2FsbGVkIHVwb24gc2VydmVyIGNvbm5lY3QuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIG9uY29ubmVjdChpZCwgcGlkKSB7XG4gICAgICAgIGRlYnVnKFwic29ja2V0IGNvbm5lY3RlZCB3aXRoIGlkICVzXCIsIGlkKTtcbiAgICAgICAgdGhpcy5pZCA9IGlkO1xuICAgICAgICB0aGlzLnJlY292ZXJlZCA9IHBpZCAmJiB0aGlzLl9waWQgPT09IHBpZDtcbiAgICAgICAgdGhpcy5fcGlkID0gcGlkOyAvLyBkZWZpbmVkIG9ubHkgaWYgY29ubmVjdGlvbiBzdGF0ZSByZWNvdmVyeSBpcyBlbmFibGVkXG4gICAgICAgIHRoaXMuY29ubmVjdGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5lbWl0QnVmZmVyZWQoKTtcbiAgICAgICAgdGhpcy5lbWl0UmVzZXJ2ZWQoXCJjb25uZWN0XCIpO1xuICAgICAgICB0aGlzLl9kcmFpblF1ZXVlKHRydWUpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBFbWl0IGJ1ZmZlcmVkIGV2ZW50cyAocmVjZWl2ZWQgYW5kIGVtaXR0ZWQpLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBlbWl0QnVmZmVyZWQoKSB7XG4gICAgICAgIHRoaXMucmVjZWl2ZUJ1ZmZlci5mb3JFYWNoKChhcmdzKSA9PiB0aGlzLmVtaXRFdmVudChhcmdzKSk7XG4gICAgICAgIHRoaXMucmVjZWl2ZUJ1ZmZlciA9IFtdO1xuICAgICAgICB0aGlzLnNlbmRCdWZmZXIuZm9yRWFjaCgocGFja2V0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLm5vdGlmeU91dGdvaW5nTGlzdGVuZXJzKHBhY2tldCk7XG4gICAgICAgICAgICB0aGlzLnBhY2tldChwYWNrZXQpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zZW5kQnVmZmVyID0gW107XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENhbGxlZCB1cG9uIHNlcnZlciBkaXNjb25uZWN0LlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBvbmRpc2Nvbm5lY3QoKSB7XG4gICAgICAgIGRlYnVnKFwic2VydmVyIGRpc2Nvbm5lY3QgKCVzKVwiLCB0aGlzLm5zcCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgICAgICB0aGlzLm9uY2xvc2UoXCJpbyBzZXJ2ZXIgZGlzY29ubmVjdFwiKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2FsbGVkIHVwb24gZm9yY2VkIGNsaWVudC9zZXJ2ZXIgc2lkZSBkaXNjb25uZWN0aW9ucyxcbiAgICAgKiB0aGlzIG1ldGhvZCBlbnN1cmVzIHRoZSBtYW5hZ2VyIHN0b3BzIHRyYWNraW5nIHVzIGFuZFxuICAgICAqIHRoYXQgcmVjb25uZWN0aW9ucyBkb24ndCBnZXQgdHJpZ2dlcmVkIGZvciB0aGlzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBkZXN0cm95KCkge1xuICAgICAgICBpZiAodGhpcy5zdWJzKSB7XG4gICAgICAgICAgICAvLyBjbGVhbiBzdWJzY3JpcHRpb25zIHRvIGF2b2lkIHJlY29ubmVjdGlvbnNcbiAgICAgICAgICAgIHRoaXMuc3Vicy5mb3JFYWNoKChzdWJEZXN0cm95KSA9PiBzdWJEZXN0cm95KCkpO1xuICAgICAgICAgICAgdGhpcy5zdWJzID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW9bXCJfZGVzdHJveVwiXSh0aGlzKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRGlzY29ubmVjdHMgdGhlIHNvY2tldCBtYW51YWxseS4gSW4gdGhhdCBjYXNlLCB0aGUgc29ja2V0IHdpbGwgbm90IHRyeSB0byByZWNvbm5lY3QuXG4gICAgICpcbiAgICAgKiBJZiB0aGlzIGlzIHRoZSBsYXN0IGFjdGl2ZSBTb2NrZXQgaW5zdGFuY2Ugb2YgdGhlIHtAbGluayBNYW5hZ2VyfSwgdGhlIGxvdy1sZXZlbCBjb25uZWN0aW9uIHdpbGwgYmUgY2xvc2VkLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBjb25zdCBzb2NrZXQgPSBpbygpO1xuICAgICAqXG4gICAgICogc29ja2V0Lm9uKFwiZGlzY29ubmVjdFwiLCAocmVhc29uKSA9PiB7XG4gICAgICogICAvLyBjb25zb2xlLmxvZyhyZWFzb24pOyBwcmludHMgXCJpbyBjbGllbnQgZGlzY29ubmVjdFwiXG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiBzb2NrZXQuZGlzY29ubmVjdCgpO1xuICAgICAqXG4gICAgICogQHJldHVybiBzZWxmXG4gICAgICovXG4gICAgZGlzY29ubmVjdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuY29ubmVjdGVkKSB7XG4gICAgICAgICAgICBkZWJ1ZyhcInBlcmZvcm1pbmcgZGlzY29ubmVjdCAoJXMpXCIsIHRoaXMubnNwKTtcbiAgICAgICAgICAgIHRoaXMucGFja2V0KHsgdHlwZTogc29ja2V0X2lvX3BhcnNlcl8xLlBhY2tldFR5cGUuRElTQ09OTkVDVCB9KTtcbiAgICAgICAgfVxuICAgICAgICAvLyByZW1vdmUgc29ja2V0IGZyb20gcG9vbFxuICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgICAgaWYgKHRoaXMuY29ubmVjdGVkKSB7XG4gICAgICAgICAgICAvLyBmaXJlIGV2ZW50c1xuICAgICAgICAgICAgdGhpcy5vbmNsb3NlKFwiaW8gY2xpZW50IGRpc2Nvbm5lY3RcIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEFsaWFzIGZvciB7QGxpbmsgZGlzY29ubmVjdCgpfS5cbiAgICAgKlxuICAgICAqIEByZXR1cm4gc2VsZlxuICAgICAqL1xuICAgIGNsb3NlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5kaXNjb25uZWN0KCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGNvbXByZXNzIGZsYWcuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIHNvY2tldC5jb21wcmVzcyhmYWxzZSkuZW1pdChcImhlbGxvXCIpO1xuICAgICAqXG4gICAgICogQHBhcmFtIGNvbXByZXNzIC0gaWYgYHRydWVgLCBjb21wcmVzc2VzIHRoZSBzZW5kaW5nIGRhdGFcbiAgICAgKiBAcmV0dXJuIHNlbGZcbiAgICAgKi9cbiAgICBjb21wcmVzcyhjb21wcmVzcykge1xuICAgICAgICB0aGlzLmZsYWdzLmNvbXByZXNzID0gY29tcHJlc3M7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZXRzIGEgbW9kaWZpZXIgZm9yIGEgc3Vic2VxdWVudCBldmVudCBlbWlzc2lvbiB0aGF0IHRoZSBldmVudCBtZXNzYWdlIHdpbGwgYmUgZHJvcHBlZCB3aGVuIHRoaXMgc29ja2V0IGlzIG5vdFxuICAgICAqIHJlYWR5IHRvIHNlbmQgbWVzc2FnZXMuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIHNvY2tldC52b2xhdGlsZS5lbWl0KFwiaGVsbG9cIik7IC8vIHRoZSBzZXJ2ZXIgbWF5IG9yIG1heSBub3QgcmVjZWl2ZSBpdFxuICAgICAqXG4gICAgICogQHJldHVybnMgc2VsZlxuICAgICAqL1xuICAgIGdldCB2b2xhdGlsZSgpIHtcbiAgICAgICAgdGhpcy5mbGFncy52b2xhdGlsZSA9IHRydWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZXRzIGEgbW9kaWZpZXIgZm9yIGEgc3Vic2VxdWVudCBldmVudCBlbWlzc2lvbiB0aGF0IHRoZSBjYWxsYmFjayB3aWxsIGJlIGNhbGxlZCB3aXRoIGFuIGVycm9yIHdoZW4gdGhlXG4gICAgICogZ2l2ZW4gbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBoYXZlIGVsYXBzZWQgd2l0aG91dCBhbiBhY2tub3dsZWRnZW1lbnQgZnJvbSB0aGUgc2VydmVyOlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBzb2NrZXQudGltZW91dCg1MDAwKS5lbWl0KFwibXktZXZlbnRcIiwgKGVycikgPT4ge1xuICAgICAqICAgaWYgKGVycikge1xuICAgICAqICAgICAvLyB0aGUgc2VydmVyIGRpZCBub3QgYWNrbm93bGVkZ2UgdGhlIGV2ZW50IGluIHRoZSBnaXZlbiBkZWxheVxuICAgICAqICAgfVxuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogQHJldHVybnMgc2VsZlxuICAgICAqL1xuICAgIHRpbWVvdXQodGltZW91dCkge1xuICAgICAgICB0aGlzLmZsYWdzLnRpbWVvdXQgPSB0aW1lb3V0O1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogQWRkcyBhIGxpc3RlbmVyIHRoYXQgd2lsbCBiZSBmaXJlZCB3aGVuIGFueSBldmVudCBpcyBlbWl0dGVkLiBUaGUgZXZlbnQgbmFtZSBpcyBwYXNzZWQgYXMgdGhlIGZpcnN0IGFyZ3VtZW50IHRvIHRoZVxuICAgICAqIGNhbGxiYWNrLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBzb2NrZXQub25BbnkoKGV2ZW50LCAuLi5hcmdzKSA9PiB7XG4gICAgICogICBjb25zb2xlLmxvZyhgZ290ICR7ZXZlbnR9YCk7XG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiBAcGFyYW0gbGlzdGVuZXJcbiAgICAgKi9cbiAgICBvbkFueShsaXN0ZW5lcikge1xuICAgICAgICB0aGlzLl9hbnlMaXN0ZW5lcnMgPSB0aGlzLl9hbnlMaXN0ZW5lcnMgfHwgW107XG4gICAgICAgIHRoaXMuX2FueUxpc3RlbmVycy5wdXNoKGxpc3RlbmVyKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEFkZHMgYSBsaXN0ZW5lciB0aGF0IHdpbGwgYmUgZmlyZWQgd2hlbiBhbnkgZXZlbnQgaXMgZW1pdHRlZC4gVGhlIGV2ZW50IG5hbWUgaXMgcGFzc2VkIGFzIHRoZSBmaXJzdCBhcmd1bWVudCB0byB0aGVcbiAgICAgKiBjYWxsYmFjay4gVGhlIGxpc3RlbmVyIGlzIGFkZGVkIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpc3RlbmVycyBhcnJheS5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogc29ja2V0LnByZXBlbmRBbnkoKGV2ZW50LCAuLi5hcmdzKSA9PiB7XG4gICAgICogICBjb25zb2xlLmxvZyhgZ290IGV2ZW50ICR7ZXZlbnR9YCk7XG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiBAcGFyYW0gbGlzdGVuZXJcbiAgICAgKi9cbiAgICBwcmVwZW5kQW55KGxpc3RlbmVyKSB7XG4gICAgICAgIHRoaXMuX2FueUxpc3RlbmVycyA9IHRoaXMuX2FueUxpc3RlbmVycyB8fCBbXTtcbiAgICAgICAgdGhpcy5fYW55TGlzdGVuZXJzLnVuc2hpZnQobGlzdGVuZXIpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyB0aGUgbGlzdGVuZXIgdGhhdCB3aWxsIGJlIGZpcmVkIHdoZW4gYW55IGV2ZW50IGlzIGVtaXR0ZWQuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGNvbnN0IGNhdGNoQWxsTGlzdGVuZXIgPSAoZXZlbnQsIC4uLmFyZ3MpID0+IHtcbiAgICAgKiAgIGNvbnNvbGUubG9nKGBnb3QgZXZlbnQgJHtldmVudH1gKTtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBzb2NrZXQub25BbnkoY2F0Y2hBbGxMaXN0ZW5lcik7XG4gICAgICpcbiAgICAgKiAvLyByZW1vdmUgYSBzcGVjaWZpYyBsaXN0ZW5lclxuICAgICAqIHNvY2tldC5vZmZBbnkoY2F0Y2hBbGxMaXN0ZW5lcik7XG4gICAgICpcbiAgICAgKiAvLyBvciByZW1vdmUgYWxsIGxpc3RlbmVyc1xuICAgICAqIHNvY2tldC5vZmZBbnkoKTtcbiAgICAgKlxuICAgICAqIEBwYXJhbSBsaXN0ZW5lclxuICAgICAqL1xuICAgIG9mZkFueShsaXN0ZW5lcikge1xuICAgICAgICBpZiAoIXRoaXMuX2FueUxpc3RlbmVycykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxpc3RlbmVyKSB7XG4gICAgICAgICAgICBjb25zdCBsaXN0ZW5lcnMgPSB0aGlzLl9hbnlMaXN0ZW5lcnM7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpc3RlbmVycy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGlmIChsaXN0ZW5lciA9PT0gbGlzdGVuZXJzW2ldKSB7XG4gICAgICAgICAgICAgICAgICAgIGxpc3RlbmVycy5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2FueUxpc3RlbmVycyA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGFuIGFycmF5IG9mIGxpc3RlbmVycyB0aGF0IGFyZSBsaXN0ZW5pbmcgZm9yIGFueSBldmVudCB0aGF0IGlzIHNwZWNpZmllZC4gVGhpcyBhcnJheSBjYW4gYmUgbWFuaXB1bGF0ZWQsXG4gICAgICogZS5nLiB0byByZW1vdmUgbGlzdGVuZXJzLlxuICAgICAqL1xuICAgIGxpc3RlbmVyc0FueSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FueUxpc3RlbmVycyB8fCBbXTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQWRkcyBhIGxpc3RlbmVyIHRoYXQgd2lsbCBiZSBmaXJlZCB3aGVuIGFueSBldmVudCBpcyBlbWl0dGVkLiBUaGUgZXZlbnQgbmFtZSBpcyBwYXNzZWQgYXMgdGhlIGZpcnN0IGFyZ3VtZW50IHRvIHRoZVxuICAgICAqIGNhbGxiYWNrLlxuICAgICAqXG4gICAgICogTm90ZTogYWNrbm93bGVkZ2VtZW50cyBzZW50IHRvIHRoZSBzZXJ2ZXIgYXJlIG5vdCBpbmNsdWRlZC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogc29ja2V0Lm9uQW55T3V0Z29pbmcoKGV2ZW50LCAuLi5hcmdzKSA9PiB7XG4gICAgICogICBjb25zb2xlLmxvZyhgc2VudCBldmVudCAke2V2ZW50fWApO1xuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogQHBhcmFtIGxpc3RlbmVyXG4gICAgICovXG4gICAgb25BbnlPdXRnb2luZyhsaXN0ZW5lcikge1xuICAgICAgICB0aGlzLl9hbnlPdXRnb2luZ0xpc3RlbmVycyA9IHRoaXMuX2FueU91dGdvaW5nTGlzdGVuZXJzIHx8IFtdO1xuICAgICAgICB0aGlzLl9hbnlPdXRnb2luZ0xpc3RlbmVycy5wdXNoKGxpc3RlbmVyKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEFkZHMgYSBsaXN0ZW5lciB0aGF0IHdpbGwgYmUgZmlyZWQgd2hlbiBhbnkgZXZlbnQgaXMgZW1pdHRlZC4gVGhlIGV2ZW50IG5hbWUgaXMgcGFzc2VkIGFzIHRoZSBmaXJzdCBhcmd1bWVudCB0byB0aGVcbiAgICAgKiBjYWxsYmFjay4gVGhlIGxpc3RlbmVyIGlzIGFkZGVkIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpc3RlbmVycyBhcnJheS5cbiAgICAgKlxuICAgICAqIE5vdGU6IGFja25vd2xlZGdlbWVudHMgc2VudCB0byB0aGUgc2VydmVyIGFyZSBub3QgaW5jbHVkZWQuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIHNvY2tldC5wcmVwZW5kQW55T3V0Z29pbmcoKGV2ZW50LCAuLi5hcmdzKSA9PiB7XG4gICAgICogICBjb25zb2xlLmxvZyhgc2VudCBldmVudCAke2V2ZW50fWApO1xuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogQHBhcmFtIGxpc3RlbmVyXG4gICAgICovXG4gICAgcHJlcGVuZEFueU91dGdvaW5nKGxpc3RlbmVyKSB7XG4gICAgICAgIHRoaXMuX2FueU91dGdvaW5nTGlzdGVuZXJzID0gdGhpcy5fYW55T3V0Z29pbmdMaXN0ZW5lcnMgfHwgW107XG4gICAgICAgIHRoaXMuX2FueU91dGdvaW5nTGlzdGVuZXJzLnVuc2hpZnQobGlzdGVuZXIpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyB0aGUgbGlzdGVuZXIgdGhhdCB3aWxsIGJlIGZpcmVkIHdoZW4gYW55IGV2ZW50IGlzIGVtaXR0ZWQuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGNvbnN0IGNhdGNoQWxsTGlzdGVuZXIgPSAoZXZlbnQsIC4uLmFyZ3MpID0+IHtcbiAgICAgKiAgIGNvbnNvbGUubG9nKGBzZW50IGV2ZW50ICR7ZXZlbnR9YCk7XG4gICAgICogfVxuICAgICAqXG4gICAgICogc29ja2V0Lm9uQW55T3V0Z29pbmcoY2F0Y2hBbGxMaXN0ZW5lcik7XG4gICAgICpcbiAgICAgKiAvLyByZW1vdmUgYSBzcGVjaWZpYyBsaXN0ZW5lclxuICAgICAqIHNvY2tldC5vZmZBbnlPdXRnb2luZyhjYXRjaEFsbExpc3RlbmVyKTtcbiAgICAgKlxuICAgICAqIC8vIG9yIHJlbW92ZSBhbGwgbGlzdGVuZXJzXG4gICAgICogc29ja2V0Lm9mZkFueU91dGdvaW5nKCk7XG4gICAgICpcbiAgICAgKiBAcGFyYW0gW2xpc3RlbmVyXSAtIHRoZSBjYXRjaC1hbGwgbGlzdGVuZXIgKG9wdGlvbmFsKVxuICAgICAqL1xuICAgIG9mZkFueU91dGdvaW5nKGxpc3RlbmVyKSB7XG4gICAgICAgIGlmICghdGhpcy5fYW55T3V0Z29pbmdMaXN0ZW5lcnMpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsaXN0ZW5lcikge1xuICAgICAgICAgICAgY29uc3QgbGlzdGVuZXJzID0gdGhpcy5fYW55T3V0Z29pbmdMaXN0ZW5lcnM7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpc3RlbmVycy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGlmIChsaXN0ZW5lciA9PT0gbGlzdGVuZXJzW2ldKSB7XG4gICAgICAgICAgICAgICAgICAgIGxpc3RlbmVycy5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2FueU91dGdvaW5nTGlzdGVuZXJzID0gW107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYW4gYXJyYXkgb2YgbGlzdGVuZXJzIHRoYXQgYXJlIGxpc3RlbmluZyBmb3IgYW55IGV2ZW50IHRoYXQgaXMgc3BlY2lmaWVkLiBUaGlzIGFycmF5IGNhbiBiZSBtYW5pcHVsYXRlZCxcbiAgICAgKiBlLmcuIHRvIHJlbW92ZSBsaXN0ZW5lcnMuXG4gICAgICovXG4gICAgbGlzdGVuZXJzQW55T3V0Z29pbmcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hbnlPdXRnb2luZ0xpc3RlbmVycyB8fCBbXTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogTm90aWZ5IHRoZSBsaXN0ZW5lcnMgZm9yIGVhY2ggcGFja2V0IHNlbnRcbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYWNrZXRcbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgbm90aWZ5T3V0Z29pbmdMaXN0ZW5lcnMocGFja2V0KSB7XG4gICAgICAgIGlmICh0aGlzLl9hbnlPdXRnb2luZ0xpc3RlbmVycyAmJiB0aGlzLl9hbnlPdXRnb2luZ0xpc3RlbmVycy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGxpc3RlbmVycyA9IHRoaXMuX2FueU91dGdvaW5nTGlzdGVuZXJzLnNsaWNlKCk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGxpc3RlbmVyIG9mIGxpc3RlbmVycykge1xuICAgICAgICAgICAgICAgIGxpc3RlbmVyLmFwcGx5KHRoaXMsIHBhY2tldC5kYXRhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuU29ja2V0ID0gU29ja2V0O1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmdsb2JhbFRoaXNTaGltID0gdm9pZCAwO1xuZXhwb3J0cy5nbG9iYWxUaGlzU2hpbSA9ICgoKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBzZWxmICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIHJldHVybiBzZWxmO1xuICAgIH1cbiAgICBlbHNlIGlmICh0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIHJldHVybiB3aW5kb3c7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICByZXR1cm4gRnVuY3Rpb24oXCJyZXR1cm4gdGhpc1wiKSgpO1xuICAgIH1cbn0pKCk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmNvbnN0IHByb2Nlc3NfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwicHJvY2Vzc1wiKSk7XG5jb25zdCBzb2NrZXRfaW9fY2xpZW50XzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcInNvY2tldC5pby1jbGllbnRcIikpO1xuY29uc3QgQ2hDb25maWdfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQGNvbW1vbi9tb2RlbHMvQ2hDb25maWdcIikpO1xuY29uc3QgY2hfY29uZmlnX2RldmVsb3BtZW50X2pzb25fMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQGNvbW1vbi8uLi9jaC1jb25maWcuZGV2ZWxvcG1lbnQuanNvblwiKSk7XG5jb25zdCBjaF9jb25maWdfcHJvZHVjdGlvbl9qc29uXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkBjb21tb24vLi4vY2gtY29uZmlnLnByb2R1Y3Rpb24uanNvblwiKSk7XG5jb25zdCBCb290T3B0aW9uXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkBjb21tb24vbW9kZWxzL0Jvb3RPcHRpb25cIikpO1xuY29uc3QgU2VxdWVuY2VfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQGNvbW1vbi9TZXF1ZW5jZVwiKSk7XG5jb25zdCBjb25mXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIkBjb21tb24vY29uZlwiKSk7XG5jb25zdCBkZWZpbmVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQGNvbW1vbi9kZWZpbmVcIikpO1xuY29uc3QgdXRpbHNfMSA9IHJlcXVpcmUoXCJAY29tbW9uL3V0aWxzXCIpO1xuY29uc3QgQ2hfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQGNvbW1vbi9tb2RlbHMvQ2hcIikpO1xuY29uc3QgVHVuZU9wdGlvbl8xID0gcmVxdWlyZShcIkBjb21tb24vbW9kZWxzL1R1bmVPcHRpb25cIik7XG5jb25zdCBfMSA9IHJlcXVpcmUoXCIuXCIpO1xuY29uc3QgaXNEb2NrZXIgPSBCb29sZWFuKHByb2Nlc3NfMS5kZWZhdWx0LmVudi5JU19ET0NLRVIpO1xuY29uc3QgY2hDb25maWdKc29uID0gbG9jYXRpb24uaHJlZi5pbmRleE9mKFwibG9jYWxob3N0XCIpID49IDAgPyBjaF9jb25maWdfZGV2ZWxvcG1lbnRfanNvbl8xLmRlZmF1bHQgOiBjaF9jb25maWdfcHJvZHVjdGlvbl9qc29uXzEuZGVmYXVsdDtcbi8vIOikh+aVsOOBrmlv44Gu44Oq44Kv44Ko44K544OI44Go44Os44K544Od44Oz44K544KS5Y+X44GR5Y+W44KL44Gu44Gr5bCC5b+144GZ44KLXG5jbGFzcyBUb1NlcnZlciB7XG4gICAgc3RhdGljIGdldCBkb21haW4oKSB7XG4gICAgICAgIHJldHVybiBjb25mXzEuZGVmYXVsdC5lbnYgPT09IGRlZmluZV8xLmRlZmF1bHQuREVWRUxPUE1FTlQgfHwgY29uZl8xLmRlZmF1bHQuZW52ID09PSBkZWZpbmVfMS5kZWZhdWx0LkxPQ0FMSE9TVCA/IGRlZmluZV8xLmRlZmF1bHQuREVWRUxPUE1FTlRfRE9NQUlOIDogZGVmaW5lXzEuZGVmYXVsdC5QUk9EVUNUSU9OX0FQSV9ET01BSU47XG4gICAgfVxuICAgIHN0YXRpYyBnZXQgb3B0aW9uKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgYXV0b0Nvbm5lY3Q6IHRydWUsXG4gICAgICAgICAgICByZWNvbm5lY3Rpb246IHRydWUsXG4gICAgICAgICAgICByZWNvbm5lY3Rpb25BdHRlbXB0czogSW5maW5pdHksXG4gICAgICAgICAgICByZWNvbm5lY3Rpb25EZWxheTogMTAwMCxcbiAgICAgICAgICAgIHJlY29ubmVjdGlvbkRlbGF5TWF4OiA1MDAwLFxuICAgICAgICAgICAgdGltZW91dDogMjAwMDAsXG4gICAgICAgICAgICAvL3RyYW5zcG9ydHM6IFsncG9sbGluZycsICd3ZWJzb2NrZXQnXSxcbiAgICAgICAgICAgIC8vdXBncmFkZTogdHJ1ZSxcbiAgICAgICAgICAgIHRyYW5zcG9ydHM6IFsnd2Vic29ja2V0J10sXG4gICAgICAgICAgICB1cGdyYWRlOiBmYWxzZSxcbiAgICAgICAgICAgIGZvcmNlTmV3OiBmYWxzZSxcbiAgICAgICAgICAgIHF1ZXJ5OiB7fSxcbiAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogZmFsc2UsXG4gICAgICAgICAgICBleHRyYUhlYWRlcnM6IHt9LFxuICAgICAgICB9O1xuICAgIH1cbiAgICBjb25zdHJ1Y3Rvcih3c3NXb3JrZXIpIHtcbiAgICAgICAgdGhpcy50dW5lID0gdGhpcy50dW5lLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMudW50dW5lID0gdGhpcy51bnR1bmUuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5leGUgPSB0aGlzLmV4ZS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLm9uQ29ubmVjdCA9IHRoaXMub25Db25uZWN0LmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMub25Db25uZWN0RXJyb3IgPSB0aGlzLm9uQ29ubmVjdEVycm9yLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMub25SZXNwb25zZUVtaXQgPSB0aGlzLm9uUmVzcG9uc2VFbWl0LmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMub25SZXNwb25zZUJvYXJkY2FzdCA9IHRoaXMub25SZXNwb25zZUJvYXJkY2FzdC5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLm9mZlJlc3BvbnNlID0gdGhpcy5vZmZSZXNwb25zZS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLnBpZCA9IFwiXCI7XG4gICAgICAgIHRoaXMuaW9zID0ge307XG4gICAgICAgIHRoaXMubWV0aG9kcyA9IHt9O1xuICAgICAgICB0aGlzLndzc1dvcmtlciA9IHdzc1dvcmtlcjtcbiAgICB9XG4gICAgZXhlKHBpZCwgdHVuZUlkLCBtZXRob2QsIHBhcmFtcykge1xuICAgICAgICBpZiAoKDAsIHV0aWxzXzEuaXNWYWxpZEtleSkobWV0aG9kLCB0aGlzKSAmJiB0eXBlb2YgdGhpc1ttZXRob2RdID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0aGlzLnBpZCA9IHBpZDtcbiAgICAgICAgICAgIHRoaXNbbWV0aG9kXSh0dW5lSWQsIHBhcmFtcyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaW9zW3R1bmVJZF0pIHtcbiAgICAgICAgICAgIHRoaXMucGlkID0gcGlkO1xuICAgICAgICAgICAgdGhpcy5pb3NbdHVuZUlkXS5lbWl0KG1ldGhvZCwgcGFyYW1zKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB0dW5lKHR1bmVJZCwgeyBib290T3B0aW9uIH0pIHtcbiAgICAgICAgY29uc3QgcGlkID0gdGhpcy5waWQ7XG4gICAgICAgIGxldCBjb25uZWN0aW9uID0gQ2hfMS5kZWZhdWx0LnJvb3RDb25uZWN0aW9uO1xuICAgICAgICBsZXQgdHVuZU9wdGlvbiA9IHsgLi4uVHVuZU9wdGlvbl8xLmluaXQgfTtcbiAgICAgICAgbGV0IHVybFNlYXJjaFBhcmFtcyA9IGA/dHVuZUlkPSR7dHVuZUlkfWA7XG4gICAgICAgIGxldCBob3N0UG9ydCA9IGAke1RvU2VydmVyLmRvbWFpbn06JHtkZWZpbmVfMS5kZWZhdWx0LlBPUlRTLkhUVFBTfWA7XG4gICAgICAgIGlmIChib290T3B0aW9uKSB7XG4gICAgICAgICAgICBjb25uZWN0aW9uID0gQm9vdE9wdGlvbl8xLmRlZmF1bHQuZ2V0Q29ubmVjdGlvbihib290T3B0aW9uLmNvbm5lY3Rpb24pO1xuICAgICAgICAgICAgdHVuZU9wdGlvbiA9IGJvb3RPcHRpb24udHVuZU9wdGlvbjtcbiAgICAgICAgICAgIHVybFNlYXJjaFBhcmFtcyArPSBgJiR7Qm9vdE9wdGlvbl8xLmRlZmF1bHQuZ2V0VHVuZU9wdGlvblN0cmluZyhib290T3B0aW9uLnR1bmVPcHRpb24pfWA7XG4gICAgICAgICAgICBjb25zdCBnYXRld2F5ID0gQ2hDb25maWdfMS5kZWZhdWx0LmdldEdhdGV3YXkoeyBjaENvbmZpZ0pzb24sIHR1bmVDb25uZWN0aW9uOiBjb25uZWN0aW9uIH0pO1xuICAgICAgICAgICAgaG9zdFBvcnQgPSBgJHtnYXRld2F5Lmhvc3R9OiR7Z2F0ZXdheS5wb3J0fWA7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZW5kcG9pbnQgPSBgJHtTZXF1ZW5jZV8xLmRlZmF1bHQuSFRUUFNfUFJPVE9DT0x9Ly8ke2hvc3RQb3J0fSR7dXJsU2VhcmNoUGFyYW1zfWA7XG4gICAgICAgIHRoaXMuaW9zW3R1bmVJZF0gPSAoMCwgc29ja2V0X2lvX2NsaWVudF8xLmRlZmF1bHQpKGVuZHBvaW50LCB7IC4uLlRvU2VydmVyLm9wdGlvbiB9KTtcbiAgICAgICAgdGhpcy5pb3NbdHVuZUlkXS5vbignY29ubmVjdCcsICgpID0+IHRoaXMud3NzV29ya2VyLnBvc3RNZXNzYWdlKHsgcGlkLCB0dW5lSWQsIG1ldGhvZDogXzEuc3RhdHVzVHVubmluZyB9KSk7XG4gICAgICAgIHRoaXMuaW9zW3R1bmVJZF0ub24oJ2Rpc2Nvbm5lY3QnLCAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IHsgdHlwZTogJ3VudHVuZScgfTtcbiAgICAgICAgICAgIHRoaXMud3NzV29ya2VyLnBvc3RNZXNzYWdlKHsgcGlkLCB0dW5lSWQsIG1ldGhvZDogcmVzcG9uc2UudHlwZSwgYXBpU3RhdGU6IHJlc3BvbnNlIH0pO1xuICAgICAgICAgICAgZGVsZXRlIHRoaXMuaW9zW3R1bmVJZF07XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmlvc1t0dW5lSWRdLm9uKCdjb25uZWN0X2Vycm9yJywgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdDb25uZWN0aW9uIGVycm9yOicsIHR1bmVJZCwgZXJyb3IpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5vblJlc3BvbnNlRW1pdCh0dW5lSWQsIGNvbm5lY3Rpb24pO1xuICAgICAgICB0aGlzLm9uUmVzcG9uc2VCb2FyZGNhc3QodHVuZUlkLCBjb25uZWN0aW9uLCB0dW5lT3B0aW9uKTtcbiAgICB9XG4gICAgdW50dW5lKF8sIHR1bmVJZCkge1xuICAgICAgICBpZiAoKDAsIHV0aWxzXzEuaXNWYWxpZEtleSkodHVuZUlkLCB0aGlzLmlvcykpIHtcbiAgICAgICAgICAgIHRoaXMuaW9zW3R1bmVJZF1bJ2Rpc2Nvbm5lY3QnXSgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIG9uQ29ubmVjdCgpIHsgfVxuICAgIG9uQ29ubmVjdEVycm9yKCkgeyB9XG4gICAgb25SZXNwb25zZUVtaXQodHVuZUlkLCBjb25uZWN0aW9uKSB7XG4gICAgICAgIGlmICghdGhpcy5pb3NbdHVuZUlkXS5fY2FsbGJhY2tzW2Nvbm5lY3Rpb25dKSB7XG4gICAgICAgICAgICB0aGlzLmlvc1t0dW5lSWRdLm9uKHR1bmVJZCwgKGFwaVN0YXRlKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGlkID0gdGhpcy5waWQ7XG4gICAgICAgICAgICAgICAgY29uc3QgbWV0aG9kID0gYXBpU3RhdGUudHlwZTtcbiAgICAgICAgICAgICAgICBjb25zdCBzZXJ2ZXJUb0FwaVR5cGUgPSBTZXF1ZW5jZV8xLmRlZmF1bHQuU0VSVkVSX1RPX0FQSV9FTUlUO1xuICAgICAgICAgICAgICAgIHRoaXMud3NzV29ya2VyLnBvc3RNZXNzYWdlKHsgcGlkLCB0dW5lSWQsIG1ldGhvZCwgc2VydmVyVG9BcGlUeXBlLCBhcGlTdGF0ZSB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIG9uUmVzcG9uc2VCb2FyZGNhc3QodHVuZUlkLCBjb25uZWN0aW9uLCB0dW5lT3B0aW9uKSB7XG4gICAgICAgIGlmICghdGhpcy5pb3NbdHVuZUlkXS5fY2FsbGJhY2tzW2Nvbm5lY3Rpb25dKSB7XG4gICAgICAgICAgICBjb25zdCBjYWxsYmFjayA9IChhcGlTdGF0ZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBpZCA9IHRoaXMucGlkO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1ldGhvZCA9IGFwaVN0YXRlLnR5cGU7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VydmVyVG9BcGlUeXBlID0gU2VxdWVuY2VfMS5kZWZhdWx0LlNFUlZFUl9UT19BUElfQlJPQURDQVNUO1xuICAgICAgICAgICAgICAgIHRoaXMud3NzV29ya2VyLnBvc3RNZXNzYWdlKHsgcGlkLCB0dW5lSWQsIG1ldGhvZCwgc2VydmVyVG9BcGlUeXBlLCBhcGlTdGF0ZSB9KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLmlvc1t0dW5lSWRdLm9uKGB0dW5lOiR7Y29ubmVjdGlvbn1gLCBjYWxsYmFjayk7XG4gICAgICAgICAgICBPYmplY3Qua2V5cyh0dW5lT3B0aW9uKS5mb3JFYWNoKChtZXRob2QpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBtZXRob2Q7XG4gICAgICAgICAgICAgICAgaWYgKHR1bmVPcHRpb25ba2V5XSkge1xuICAgICAgICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKFwiQEBAIENMSUVOIEJvYXJkY2FzdCBPTiBcIiwgYCR7bWV0aG9kfToke2Nvbm5lY3Rpb259YClcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pb3NbdHVuZUlkXS5vbihgJHttZXRob2R9OiR7Y29ubmVjdGlvbn1gLCBjYWxsYmFjayk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgb2ZmUmVzcG9uc2UodHVuZUlkLCBjb25uZWN0aW9uKSB7XG4gICAgICAgIGlmICh0aGlzLmlvc1t0dW5lSWRdICYmIHRoaXMuaW9zW3R1bmVJZF0uX2NhbGxiYWNrc1t0dW5lSWRdKSB7XG4gICAgICAgICAgICB0aGlzLmlvc1t0dW5lSWRdLm9mZih0dW5lSWQpO1xuICAgICAgICAgICAgdGhpcy5pb3NbdHVuZUlkXS5vZmYoY29ubmVjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLmRlZmF1bHQgPSBUb1NlcnZlcjtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gKHN0YXRlID0gW10sIGFjdGlvbikgPT4ge1xuICAgIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICAgICAgY2FzZSAnQVBJX1RPX1NFUlZFUltSRVFVRVNUXTpjaGFuZ2VUaHJlYWQnOlxuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICBjYXNlICdTRVJWRVJfVE9fQVBJW0VNSVRdOnR1bmUnOlxuICAgICAgICBjYXNlICdTRVJWRVJfVE9fQVBJW0VNSVRdOmZldGNoUG9zdHMnOlxuICAgICAgICBjYXNlICdTRVJWRVJfVE9fQVBJW0JST0FEQ0FTVF06cG9zdHMnOlxuICAgICAgICAgICAgaWYgKGFjdGlvbi5wb3N0cyAmJiBhY3Rpb24ucG9zdHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBbLi4uc3RhdGUsIC4uLmFjdGlvbi5wb3N0c107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnU0VSVkVSX1RPX0FQSVtFTUlUXTpnZXRNb3JlJzpcbiAgICAgICAgICAgIGlmIChhY3Rpb24ucG9zdHMgJiYgYWN0aW9uLnBvc3RzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gWy4uLmFjdGlvbi5wb3N0cywgLi4uc3RhdGVdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiBzdGF0ZTtcbn07XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuZGVjb2RlUGF5bG9hZCA9IGV4cG9ydHMuZGVjb2RlUGFja2V0ID0gZXhwb3J0cy5lbmNvZGVQYXlsb2FkID0gZXhwb3J0cy5lbmNvZGVQYWNrZXQgPSBleHBvcnRzLnByb3RvY29sID0gdm9pZCAwO1xuZXhwb3J0cy5jcmVhdGVQYWNrZXRFbmNvZGVyU3RyZWFtID0gY3JlYXRlUGFja2V0RW5jb2RlclN0cmVhbTtcbmV4cG9ydHMuY3JlYXRlUGFja2V0RGVjb2RlclN0cmVhbSA9IGNyZWF0ZVBhY2tldERlY29kZXJTdHJlYW07XG5jb25zdCBlbmNvZGVQYWNrZXRfanNfMSA9IHJlcXVpcmUoXCIuL2VuY29kZVBhY2tldC5qc1wiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImVuY29kZVBhY2tldFwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gZW5jb2RlUGFja2V0X2pzXzEuZW5jb2RlUGFja2V0OyB9IH0pO1xuY29uc3QgZGVjb2RlUGFja2V0X2pzXzEgPSByZXF1aXJlKFwiLi9kZWNvZGVQYWNrZXQuanNcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJkZWNvZGVQYWNrZXRcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGRlY29kZVBhY2tldF9qc18xLmRlY29kZVBhY2tldDsgfSB9KTtcbmNvbnN0IGNvbW1vbnNfanNfMSA9IHJlcXVpcmUoXCIuL2NvbW1vbnMuanNcIik7XG5jb25zdCBTRVBBUkFUT1IgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDMwKTsgLy8gc2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0RlbGltaXRlciNBU0NJSV9kZWxpbWl0ZWRfdGV4dFxuY29uc3QgZW5jb2RlUGF5bG9hZCA9IChwYWNrZXRzLCBjYWxsYmFjaykgPT4ge1xuICAgIC8vIHNvbWUgcGFja2V0cyBtYXkgYmUgYWRkZWQgdG8gdGhlIGFycmF5IHdoaWxlIGVuY29kaW5nLCBzbyB0aGUgaW5pdGlhbCBsZW5ndGggbXVzdCBiZSBzYXZlZFxuICAgIGNvbnN0IGxlbmd0aCA9IHBhY2tldHMubGVuZ3RoO1xuICAgIGNvbnN0IGVuY29kZWRQYWNrZXRzID0gbmV3IEFycmF5KGxlbmd0aCk7XG4gICAgbGV0IGNvdW50ID0gMDtcbiAgICBwYWNrZXRzLmZvckVhY2goKHBhY2tldCwgaSkgPT4ge1xuICAgICAgICAvLyBmb3JjZSBiYXNlNjQgZW5jb2RpbmcgZm9yIGJpbmFyeSBwYWNrZXRzXG4gICAgICAgICgwLCBlbmNvZGVQYWNrZXRfanNfMS5lbmNvZGVQYWNrZXQpKHBhY2tldCwgZmFsc2UsIChlbmNvZGVkUGFja2V0KSA9PiB7XG4gICAgICAgICAgICBlbmNvZGVkUGFja2V0c1tpXSA9IGVuY29kZWRQYWNrZXQ7XG4gICAgICAgICAgICBpZiAoKytjb3VudCA9PT0gbGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgY2FsbGJhY2soZW5jb2RlZFBhY2tldHMuam9pbihTRVBBUkFUT1IpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSk7XG59O1xuZXhwb3J0cy5lbmNvZGVQYXlsb2FkID0gZW5jb2RlUGF5bG9hZDtcbmNvbnN0IGRlY29kZVBheWxvYWQgPSAoZW5jb2RlZFBheWxvYWQsIGJpbmFyeVR5cGUpID0+IHtcbiAgICBjb25zdCBlbmNvZGVkUGFja2V0cyA9IGVuY29kZWRQYXlsb2FkLnNwbGl0KFNFUEFSQVRPUik7XG4gICAgY29uc3QgcGFja2V0cyA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZW5jb2RlZFBhY2tldHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgZGVjb2RlZFBhY2tldCA9ICgwLCBkZWNvZGVQYWNrZXRfanNfMS5kZWNvZGVQYWNrZXQpKGVuY29kZWRQYWNrZXRzW2ldLCBiaW5hcnlUeXBlKTtcbiAgICAgICAgcGFja2V0cy5wdXNoKGRlY29kZWRQYWNrZXQpO1xuICAgICAgICBpZiAoZGVjb2RlZFBhY2tldC50eXBlID09PSBcImVycm9yXCIpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBwYWNrZXRzO1xufTtcbmV4cG9ydHMuZGVjb2RlUGF5bG9hZCA9IGRlY29kZVBheWxvYWQ7XG5mdW5jdGlvbiBjcmVhdGVQYWNrZXRFbmNvZGVyU3RyZWFtKCkge1xuICAgIHJldHVybiBuZXcgVHJhbnNmb3JtU3RyZWFtKHtcbiAgICAgICAgdHJhbnNmb3JtKHBhY2tldCwgY29udHJvbGxlcikge1xuICAgICAgICAgICAgKDAsIGVuY29kZVBhY2tldF9qc18xLmVuY29kZVBhY2tldFRvQmluYXJ5KShwYWNrZXQsIChlbmNvZGVkUGFja2V0KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGF5bG9hZExlbmd0aCA9IGVuY29kZWRQYWNrZXQubGVuZ3RoO1xuICAgICAgICAgICAgICAgIGxldCBoZWFkZXI7XG4gICAgICAgICAgICAgICAgLy8gaW5zcGlyZWQgYnkgdGhlIFdlYlNvY2tldCBmb3JtYXQ6IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9XZWJTb2NrZXRzX0FQSS9Xcml0aW5nX1dlYlNvY2tldF9zZXJ2ZXJzI2RlY29kaW5nX3BheWxvYWRfbGVuZ3RoXG4gICAgICAgICAgICAgICAgaWYgKHBheWxvYWRMZW5ndGggPCAxMjYpIHtcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyID0gbmV3IFVpbnQ4QXJyYXkoMSk7XG4gICAgICAgICAgICAgICAgICAgIG5ldyBEYXRhVmlldyhoZWFkZXIuYnVmZmVyKS5zZXRVaW50OCgwLCBwYXlsb2FkTGVuZ3RoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocGF5bG9hZExlbmd0aCA8IDY1NTM2KSB7XG4gICAgICAgICAgICAgICAgICAgIGhlYWRlciA9IG5ldyBVaW50OEFycmF5KDMpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2aWV3ID0gbmV3IERhdGFWaWV3KGhlYWRlci5idWZmZXIpO1xuICAgICAgICAgICAgICAgICAgICB2aWV3LnNldFVpbnQ4KDAsIDEyNik7XG4gICAgICAgICAgICAgICAgICAgIHZpZXcuc2V0VWludDE2KDEsIHBheWxvYWRMZW5ndGgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyID0gbmV3IFVpbnQ4QXJyYXkoOSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZpZXcgPSBuZXcgRGF0YVZpZXcoaGVhZGVyLmJ1ZmZlcik7XG4gICAgICAgICAgICAgICAgICAgIHZpZXcuc2V0VWludDgoMCwgMTI3KTtcbiAgICAgICAgICAgICAgICAgICAgdmlldy5zZXRCaWdVaW50NjQoMSwgQmlnSW50KHBheWxvYWRMZW5ndGgpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gZmlyc3QgYml0IGluZGljYXRlcyB3aGV0aGVyIHRoZSBwYXlsb2FkIGlzIHBsYWluIHRleHQgKDApIG9yIGJpbmFyeSAoMSlcbiAgICAgICAgICAgICAgICBpZiAocGFja2V0LmRhdGEgJiYgdHlwZW9mIHBhY2tldC5kYXRhICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIGhlYWRlclswXSB8PSAweDgwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoaGVhZGVyKTtcbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoZW5jb2RlZFBhY2tldCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICB9KTtcbn1cbmxldCBURVhUX0RFQ09ERVI7XG5mdW5jdGlvbiB0b3RhbExlbmd0aChjaHVua3MpIHtcbiAgICByZXR1cm4gY2h1bmtzLnJlZHVjZSgoYWNjLCBjaHVuaykgPT4gYWNjICsgY2h1bmsubGVuZ3RoLCAwKTtcbn1cbmZ1bmN0aW9uIGNvbmNhdENodW5rcyhjaHVua3MsIHNpemUpIHtcbiAgICBpZiAoY2h1bmtzWzBdLmxlbmd0aCA9PT0gc2l6ZSkge1xuICAgICAgICByZXR1cm4gY2h1bmtzLnNoaWZ0KCk7XG4gICAgfVxuICAgIGNvbnN0IGJ1ZmZlciA9IG5ldyBVaW50OEFycmF5KHNpemUpO1xuICAgIGxldCBqID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNpemU7IGkrKykge1xuICAgICAgICBidWZmZXJbaV0gPSBjaHVua3NbMF1baisrXTtcbiAgICAgICAgaWYgKGogPT09IGNodW5rc1swXS5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNodW5rcy5zaGlmdCgpO1xuICAgICAgICAgICAgaiA9IDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNodW5rcy5sZW5ndGggJiYgaiA8IGNodW5rc1swXS5sZW5ndGgpIHtcbiAgICAgICAgY2h1bmtzWzBdID0gY2h1bmtzWzBdLnNsaWNlKGopO1xuICAgIH1cbiAgICByZXR1cm4gYnVmZmVyO1xufVxuZnVuY3Rpb24gY3JlYXRlUGFja2V0RGVjb2RlclN0cmVhbShtYXhQYXlsb2FkLCBiaW5hcnlUeXBlKSB7XG4gICAgaWYgKCFURVhUX0RFQ09ERVIpIHtcbiAgICAgICAgVEVYVF9ERUNPREVSID0gbmV3IFRleHREZWNvZGVyKCk7XG4gICAgfVxuICAgIGNvbnN0IGNodW5rcyA9IFtdO1xuICAgIGxldCBzdGF0ZSA9IDAgLyogU3RhdGUuUkVBRF9IRUFERVIgKi87XG4gICAgbGV0IGV4cGVjdGVkTGVuZ3RoID0gLTE7XG4gICAgbGV0IGlzQmluYXJ5ID0gZmFsc2U7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2Zvcm1TdHJlYW0oe1xuICAgICAgICB0cmFuc2Zvcm0oY2h1bmssIGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIGNodW5rcy5wdXNoKGNodW5rKTtcbiAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgICAgICAgICAgaWYgKHN0YXRlID09PSAwIC8qIFN0YXRlLlJFQURfSEVBREVSICovKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0b3RhbExlbmd0aChjaHVua3MpIDwgMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaGVhZGVyID0gY29uY2F0Q2h1bmtzKGNodW5rcywgMSk7XG4gICAgICAgICAgICAgICAgICAgIGlzQmluYXJ5ID0gKGhlYWRlclswXSAmIDB4ODApID09PSAweDgwO1xuICAgICAgICAgICAgICAgICAgICBleHBlY3RlZExlbmd0aCA9IGhlYWRlclswXSAmIDB4N2Y7XG4gICAgICAgICAgICAgICAgICAgIGlmIChleHBlY3RlZExlbmd0aCA8IDEyNikge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSAzIC8qIFN0YXRlLlJFQURfUEFZTE9BRCAqLztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChleHBlY3RlZExlbmd0aCA9PT0gMTI2KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IDEgLyogU3RhdGUuUkVBRF9FWFRFTkRFRF9MRU5HVEhfMTYgKi87XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IDIgLyogU3RhdGUuUkVBRF9FWFRFTkRFRF9MRU5HVEhfNjQgKi87XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoc3RhdGUgPT09IDEgLyogU3RhdGUuUkVBRF9FWFRFTkRFRF9MRU5HVEhfMTYgKi8pIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRvdGFsTGVuZ3RoKGNodW5rcykgPCAyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBoZWFkZXJBcnJheSA9IGNvbmNhdENodW5rcyhjaHVua3MsIDIpO1xuICAgICAgICAgICAgICAgICAgICBleHBlY3RlZExlbmd0aCA9IG5ldyBEYXRhVmlldyhoZWFkZXJBcnJheS5idWZmZXIsIGhlYWRlckFycmF5LmJ5dGVPZmZzZXQsIGhlYWRlckFycmF5Lmxlbmd0aCkuZ2V0VWludDE2KDApO1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IDMgLyogU3RhdGUuUkVBRF9QQVlMT0FEICovO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChzdGF0ZSA9PT0gMiAvKiBTdGF0ZS5SRUFEX0VYVEVOREVEX0xFTkdUSF82NCAqLykge1xuICAgICAgICAgICAgICAgICAgICBpZiAodG90YWxMZW5ndGgoY2h1bmtzKSA8IDgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGhlYWRlckFycmF5ID0gY29uY2F0Q2h1bmtzKGNodW5rcywgOCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZpZXcgPSBuZXcgRGF0YVZpZXcoaGVhZGVyQXJyYXkuYnVmZmVyLCBoZWFkZXJBcnJheS5ieXRlT2Zmc2V0LCBoZWFkZXJBcnJheS5sZW5ndGgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBuID0gdmlldy5nZXRVaW50MzIoMCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChuID4gTWF0aC5wb3coMiwgNTMgLSAzMikgLSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgbWF4aW11bSBzYWZlIGludGVnZXIgaW4gSmF2YVNjcmlwdCBpcyAyXjUzIC0gMVxuICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNvbW1vbnNfanNfMS5FUlJPUl9QQUNLRVQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRMZW5ndGggPSBuICogTWF0aC5wb3coMiwgMzIpICsgdmlldy5nZXRVaW50MzIoNCk7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlID0gMyAvKiBTdGF0ZS5SRUFEX1BBWUxPQUQgKi87XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAodG90YWxMZW5ndGgoY2h1bmtzKSA8IGV4cGVjdGVkTGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gY29uY2F0Q2h1bmtzKGNodW5rcywgZXhwZWN0ZWRMZW5ndGgpO1xuICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoKDAsIGRlY29kZVBhY2tldF9qc18xLmRlY29kZVBhY2tldCkoaXNCaW5hcnkgPyBkYXRhIDogVEVYVF9ERUNPREVSLmRlY29kZShkYXRhKSwgYmluYXJ5VHlwZSkpO1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IDAgLyogU3RhdGUuUkVBRF9IRUFERVIgKi87XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChleHBlY3RlZExlbmd0aCA9PT0gMCB8fCBleHBlY3RlZExlbmd0aCA+IG1heFBheWxvYWQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNvbW1vbnNfanNfMS5FUlJPUl9QQUNLRVQpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfSk7XG59XG5leHBvcnRzLnByb3RvY29sID0gNDtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuY2xhc3MgU2VxdWVuY2Uge1xuICAgIHN0YXRpYyBnZXQgVEFMS05fUFJPVE9DT0woKSB7XG4gICAgICAgIHJldHVybiAndGFsa246JztcbiAgICB9XG4gICAgc3RhdGljIGdldCBIVFRQX1BST1RPQ09MKCkge1xuICAgICAgICByZXR1cm4gJ2h0dHA6JztcbiAgICB9XG4gICAgc3RhdGljIGdldCBIVFRQU19QUk9UT0NPTCgpIHtcbiAgICAgICAgcmV0dXJuICdodHRwczonO1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0IFdTU19QUk9UT0NPTCgpIHtcbiAgICAgICAgcmV0dXJuICd3c3M6JztcbiAgICB9XG4gICAgc3RhdGljIGdldCBVTktOT1dOX1BST1RPQ09MKCkge1xuICAgICAgICByZXR1cm4gJz8/Pz86JztcbiAgICB9XG4gICAgc3RhdGljIGdldCBFTUlUX01FX0tFWSgpIHtcbiAgICAgICAgcmV0dXJuICdARU1JVF9NRSc7XG4gICAgfVxuICAgIHN0YXRpYyBnZXQgQVBJX1NFUEFSQVRFX0lPX1RZUEVfU1RBUlQoKSB7XG4gICAgICAgIHJldHVybiAnWyc7XG4gICAgfVxuICAgIHN0YXRpYyBnZXQgQVBJX1NFUEFSQVRFX0lPX1RZUEVfRU5EKCkge1xuICAgICAgICByZXR1cm4gJ10nO1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0IEFQSV9SRVFVRVNUX1RZUEUoKSB7XG4gICAgICAgIHJldHVybiAnUkVRVUVTVCc7XG4gICAgfVxuICAgIHN0YXRpYyBnZXQgQVBJX1JFU1BPTlNFX1RZUEVfRU1JVCgpIHtcbiAgICAgICAgcmV0dXJuICdFTUlUJztcbiAgICB9XG4gICAgc3RhdGljIGdldCBBUElfUkVTUE9OU0VfVFlQRV9CUk9BRENBU1QoKSB7XG4gICAgICAgIHJldHVybiAnQlJPQURDQVNUJztcbiAgICB9XG4gICAgc3RhdGljIGdldCBBUElfU0VUVVAoKSB7XG4gICAgICAgIHJldHVybiAnQVBJX1NFVFVQJztcbiAgICB9XG4gICAgc3RhdGljIGdldCBVTktOT1dOKCkge1xuICAgICAgICByZXR1cm4gJ1VOS05PV04nO1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0IENPTk5FQ1RJT05fU0VSVkVSX0tFWSgpIHtcbiAgICAgICAgcmV0dXJuICdDT05ORUNUSU9OX1NFUlZFUic7XG4gICAgfVxuICAgIHN0YXRpYyBnZXQgQVBJX1RPX1NFUlZFUl9SRVFVRVNUKCkge1xuICAgICAgICByZXR1cm4gYEFQSV9UT19TRVJWRVJbJHtTZXF1ZW5jZS5BUElfUkVRVUVTVF9UWVBFfV0ke1NlcXVlbmNlLk1FVEhPRF9DT0xPTn1gO1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0IFNFUlZFUl9UT19BUElfRU1JVCgpIHtcbiAgICAgICAgcmV0dXJuIGBTRVJWRVJfVE9fQVBJWyR7U2VxdWVuY2UuQVBJX1JFU1BPTlNFX1RZUEVfRU1JVH1dJHtTZXF1ZW5jZS5NRVRIT0RfQ09MT059YDtcbiAgICB9XG4gICAgc3RhdGljIGdldCBTRVJWRVJfVE9fQVBJX0JST0FEQ0FTVCgpIHtcbiAgICAgICAgcmV0dXJuIGBTRVJWRVJfVE9fQVBJWyR7U2VxdWVuY2UuQVBJX1JFU1BPTlNFX1RZUEVfQlJPQURDQVNUfV0ke1NlcXVlbmNlLk1FVEhPRF9DT0xPTn1gO1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0IEFQSV9UT19DTElFTlRfUkVRVUVTVCgpIHtcbiAgICAgICAgcmV0dXJuIGBBUElfVE9fQ0xJRU5UWyR7U2VxdWVuY2UuQVBJX1JFUVVFU1RfVFlQRX1dJHtTZXF1ZW5jZS5NRVRIT0RfQ09MT059YDtcbiAgICB9XG4gICAgc3RhdGljIGdldCBBUElfVE9fQ0xJRU5UX0VNSVQoKSB7XG4gICAgICAgIHJldHVybiBgQVBJX1RPX0NMSUVOVFske1NlcXVlbmNlLkFQSV9SRVNQT05TRV9UWVBFX0VNSVR9XSR7U2VxdWVuY2UuTUVUSE9EX0NPTE9OfWA7XG4gICAgfVxuICAgIHN0YXRpYyBnZXQgQVBJX1RPX0NMSUVOVF9CUk9BRENBU1QoKSB7XG4gICAgICAgIHJldHVybiBgQVBJX1RPX0NMSUVOVFske1NlcXVlbmNlLkFQSV9SRVNQT05TRV9UWVBFX0JST0FEQ0FTVH1dJHtTZXF1ZW5jZS5NRVRIT0RfQ09MT059YDtcbiAgICB9XG4gICAgc3RhdGljIGdldCBBUElfQlJPQURDQVNUX0NBTExCQUNLKCkge1xuICAgICAgICByZXR1cm4gJ3R1bmUnO1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0IFJFRFVYX0FDVElPTl9LRVkoKSB7XG4gICAgICAgIHJldHVybiAndHlwZSc7XG4gICAgfVxuICAgIHN0YXRpYyBnZXQgTUVUSE9EX0NPTE9OKCkge1xuICAgICAgICByZXR1cm4gJzonO1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0IEFERF9DTElFTlRfQUNUSU9OX1BSRUZJWCgpIHtcbiAgICAgICAgcmV0dXJuICdBUElfVE9fQ0xJRU5UJztcbiAgICB9XG4gICAgc3RhdGljIGdldCBtYXAoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0dW5lOiB7XG4gICAgICAgICAgICAgICAgcmVxdWVzdFB1YmxpY1N0YXRlOiB7IHR1bmVDaDogWydjb25uZWN0aW9uJ10gfSxcbiAgICAgICAgICAgICAgICByZXF1ZXN0UHJpdmF0ZVN0YXRlOiB7fSxcbiAgICAgICAgICAgICAgICByZXNwb25zZUVtaXRTdGF0ZTogeyB1c2VyOiBbJ3VpZCddLCBzZXR0aW5nOiAnKicsIHRocmVhZDogJyonIH0sXG4gICAgICAgICAgICAgICAgcmVzcG9uc2VCcm9hZGNhc3RTdGF0ZTogeyB0aHJlYWQ6IFsnbGl2ZUNudCcsICdjaCddIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZmV0Y2hQb3N0czoge1xuICAgICAgICAgICAgICAgIHJlcXVlc3RQdWJsaWNTdGF0ZToge30sXG4gICAgICAgICAgICAgICAgcmVxdWVzdFByaXZhdGVTdGF0ZToge1xuICAgICAgICAgICAgICAgICAgICB0aHJlYWQ6IFsnY2gnLCAncHJvdG9jb2wnLCAnaG9zdCcsICdoYXNTbGFzaCddLFxuICAgICAgICAgICAgICAgICAgICBhcHA6IFsnbXVsdGlzdHJlYW0nLCAncm9vdENoJywgJ2Rpc3BUaHJlYWRUeXBlJywgJ2FjdGlvbmVkJywgJ29mZnNldEZpbmRJZCcsICdpc1RvZ2dsZU11bHRpc3RyZWFtJ10sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICByZXNwb25zZUVtaXRTdGF0ZTogeyBwb3N0czogJyonLCB0aHJlYWQ6ICcqJyB9LFxuICAgICAgICAgICAgICAgIHJlc3BvbnNlQnJvYWRjYXN0U3RhdGU6IHt9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldE1vcmU6IHtcbiAgICAgICAgICAgICAgICByZXF1ZXN0UHVibGljU3RhdGU6IHt9LFxuICAgICAgICAgICAgICAgIHJlcXVlc3RQcml2YXRlU3RhdGU6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhyZWFkOiBbJ2NoJ10sXG4gICAgICAgICAgICAgICAgICAgIGFwcDogWydtdWx0aXN0cmVhbScsICdkaXNwVGhyZWFkVHlwZScsICdvZmZzZXRGaW5kSWQnXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHJlc3BvbnNlRW1pdFN0YXRlOiB7XG4gICAgICAgICAgICAgICAgICAgIGFwcDogWydkaXNwVGhyZWFkVHlwZScsICdvZmZzZXRGaW5kSWQnXSxcbiAgICAgICAgICAgICAgICAgICAgcG9zdHM6ICcqJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHJlc3BvbnNlQnJvYWRjYXN0U3RhdGU6IHt9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHVwZGF0ZVRocmVhZDoge1xuICAgICAgICAgICAgICAgIHJlcXVlc3RQdWJsaWNTdGF0ZToge30sXG4gICAgICAgICAgICAgICAgcmVxdWVzdFByaXZhdGVTdGF0ZToge1xuICAgICAgICAgICAgICAgICAgICB0aHJlYWQ6IFsnY2gnLCAncHJvdG9jb2wnLCAnaG9zdCcsICdoYXNTbGFzaCddLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcmVzcG9uc2VFbWl0U3RhdGU6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhyZWFkOiAnKicsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICByZXNwb25zZUJyb2FkY2FzdFN0YXRlOiB7fSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjaGFuZ2VUaHJlYWQ6IHtcbiAgICAgICAgICAgICAgICByZXF1ZXN0UHVibGljU3RhdGU6IHt9LFxuICAgICAgICAgICAgICAgIHJlcXVlc3RQcml2YXRlU3RhdGU6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhyZWFkOiBbJ2NoJywgJ2hhc1NsYXNoJywgJ3Byb3RvY29sJ10sXG4gICAgICAgICAgICAgICAgICAgIGFwcDogWyd0dW5lZENoJywgJ211bHRpc3RyZWFtJywgJ3Jvb3RDaCcsICdkaXNwVGhyZWFkVHlwZScsICdhY3Rpb25lZCcsICdvZmZzZXRGaW5kSWQnLCAnaXNUb2dnbGVNdWx0aXN0cmVhbSddLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcmVzcG9uc2VFbWl0U3RhdGU6IHsgdGhyZWFkOiAnKicgfSxcbiAgICAgICAgICAgICAgICByZXNwb25zZUJyb2FkY2FzdFN0YXRlOiB7IHRocmVhZDogWydsaXZlQ250JywgJ2NoJ10gfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjaGFuZ2VUaHJlYWREZXRhaWw6IHtcbiAgICAgICAgICAgICAgICByZXF1ZXN0UHVibGljU3RhdGU6IHt9LFxuICAgICAgICAgICAgICAgIHJlcXVlc3RQcml2YXRlU3RhdGU6IHsgdGhyZWFkOiBbJ2NoJ10gfSxcbiAgICAgICAgICAgICAgICByZXNwb25zZUVtaXRTdGF0ZTogeyB0aHJlYWQ6ICcqJyB9LFxuICAgICAgICAgICAgICAgIHJlc3BvbnNlQnJvYWRjYXN0U3RhdGU6IHt9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFkZEZpbmRDaGlsZDoge1xuICAgICAgICAgICAgICAgIHJlcXVlc3RQdWJsaWNTdGF0ZToge30sXG4gICAgICAgICAgICAgICAgcmVxdWVzdFByaXZhdGVTdGF0ZTogeyB0aHJlYWQ6IFsnY2gnXSB9LFxuICAgICAgICAgICAgICAgIHJlc3BvbnNlRW1pdFN0YXRlOiB7IHRocmVhZDogJyonIH0sXG4gICAgICAgICAgICAgICAgcmVzcG9uc2VCcm9hZGNhc3RTdGF0ZToge30sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZmV0Y2hSYW5rOiB7XG4gICAgICAgICAgICAgICAgcmVxdWVzdFB1YmxpY1N0YXRlOiB7fSxcbiAgICAgICAgICAgICAgICByZXF1ZXN0UHJpdmF0ZVN0YXRlOiB7XG4gICAgICAgICAgICAgICAgICAgIGFwcDogWydmaW5kVHlwZScsICdyb290Q2gnLCAnaXNSYW5rRGV0YWlsTW9kZSddLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcmVzcG9uc2VFbWl0U3RhdGU6IHsgcmFuazogJyonIH0sXG4gICAgICAgICAgICAgICAgcmVzcG9uc2VCcm9hZGNhc3RTdGF0ZToge30sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcG9zdDoge1xuICAgICAgICAgICAgICAgIHJlcXVlc3RQdWJsaWNTdGF0ZToge30sXG4gICAgICAgICAgICAgICAgcmVxdWVzdFByaXZhdGVTdGF0ZToge1xuICAgICAgICAgICAgICAgICAgICB1c2VyOiBbJ3VpZCcsICd1dHlwZSddLFxuICAgICAgICAgICAgICAgICAgICBhcHA6IFsnaW5wdXRQb3N0JywgJ2lucHV0U3RhbXBJZCcsICdpbnB1dEN1cnJlbnRUaW1lJywgJ2Rpc3BUaHJlYWRUeXBlJ10sXG4gICAgICAgICAgICAgICAgICAgIHRocmVhZDogWydmaW5kVHlwZScsICd0aXRsZScsICdwcm90b2NvbCcsICdjaCcsICdjaHMnLCAnZW1vdGlvbnMnLCAnZmF2aWNvbicsICdjb250ZW50VHlwZSddLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcmVzcG9uc2VFbWl0U3RhdGU6IHt9LFxuICAgICAgICAgICAgICAgIHJlc3BvbnNlQnJvYWRjYXN0U3RhdGU6IHtcbiAgICAgICAgICAgICAgICAgICAgcG9zdHM6ICcqJyxcbiAgICAgICAgICAgICAgICAgICAgdGhyZWFkOiBbJ2NoJywgJ2Vtb3Rpb25zJywgJ3Bvc3RDbnQnXSxcbiAgICAgICAgICAgICAgICAgICAgdXNlcjogWyd1aWQnXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHVwZGF0ZVRocmVhZFNlcnZlck1ldGFzOiB7XG4gICAgICAgICAgICAgICAgcmVxdWVzdFB1YmxpY1N0YXRlOiB7IHRocmVhZDogWydzZXJ2ZXJNZXRhcyddIH0sXG4gICAgICAgICAgICAgICAgcmVxdWVzdFByaXZhdGVTdGF0ZToge1xuICAgICAgICAgICAgICAgICAgICB0aHJlYWQ6IFsnaG9zdCcsICdwcm90b2NvbCcsICdjaCddLFxuICAgICAgICAgICAgICAgICAgICB1c2VyOiBbJ3VpZCddLCAvLyDmh7jlv7UgLmZvckVhY2jjgZXjgozjgarjgYTjga7jgafkuIDml6bjgZPjga7lvaLjgavkv67mraNcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHJlc3BvbnNlRW1pdFN0YXRlOiB7IHRocmVhZDogJyonIH0sXG4gICAgICAgICAgICAgICAgcmVzcG9uc2VCcm9hZGNhc3RTdGF0ZToge30sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZGlzY29ubmVjdDoge1xuICAgICAgICAgICAgICAgIHJlcXVlc3RQdWJsaWNTdGF0ZToge30sXG4gICAgICAgICAgICAgICAgcmVxdWVzdFByaXZhdGVTdGF0ZToge30sXG4gICAgICAgICAgICAgICAgcmVzcG9uc2VFbWl0U3RhdGU6IHt9LFxuICAgICAgICAgICAgICAgIHJlc3BvbnNlQnJvYWRjYXN0U3RhdGU6IHsgdGhyZWFkOiBbJ2xpdmVDbnQnLCAnY2gnXSB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgc3RhdGljIGdldFNlcXVlbmNlQWN0aW9uTWFwKG1ldGhvZCkge1xuICAgICAgICBjb25zdCBzcGxpdGVkID0gbWV0aG9kLnNwbGl0KFNlcXVlbmNlLk1FVEhPRF9DT0xPTik7XG4gICAgICAgIGlmIChzcGxpdGVkICYmIHNwbGl0ZWRbMF0pIHtcbiAgICAgICAgICAgIGNvbnN0IHNlcXVlbmNlID0gU3RyaW5nKHNwbGl0ZWRbMF0uc3BsaXQoJ1snKVswXSk7XG4gICAgICAgICAgICBsZXQgYWN0aW9uVHlwZTtcbiAgICAgICAgICAgIGlmIChzcGxpdGVkWzBdLmluZGV4T2YoYFske1NlcXVlbmNlLkFQSV9SRVFVRVNUX1RZUEV9XWApID4gMCkge1xuICAgICAgICAgICAgICAgIGFjdGlvblR5cGUgPSBTZXF1ZW5jZS5BUElfUkVRVUVTVF9UWVBFO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgYWN0aW9uVHlwZSA9XG4gICAgICAgICAgICAgICAgICAgIHNwbGl0ZWRbMF0uaW5kZXhPZihgWyR7U2VxdWVuY2UuQVBJX1JFU1BPTlNFX1RZUEVfRU1JVH1dYCkgPiAwXG4gICAgICAgICAgICAgICAgICAgICAgICA/IFNlcXVlbmNlLkFQSV9SRVNQT05TRV9UWVBFX0VNSVRcbiAgICAgICAgICAgICAgICAgICAgICAgIDogU2VxdWVuY2UuQVBJX1JFU1BPTlNFX1RZUEVfQlJPQURDQVNUO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgYWN0aW9uTmFtZSA9IFN0cmluZyhzcGxpdGVkWzFdKTtcbiAgICAgICAgICAgIHJldHVybiB7IHNlcXVlbmNlLCBhY3Rpb25UeXBlLCBhY3Rpb25OYW1lIH07XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyAnRXJyb3I6IFNlcXVlbmNlIGdldFNlcXVlbmNlQWN0aW9uTWFwJztcbiAgICAgICAgfVxuICAgIH1cbiAgICBzdGF0aWMgdXBkYXRlQ2FsbGJhY2tFeGVDb25kaXRpb25NYXAoYWN0aW9uTmFtZSkge1xuICAgICAgICBsZXQgYWN0aXZlUmVzcG9uc2VNYXAgPSB7IGVtaXQ6IHRydWUsIGJyb2FkY2FzdDogdHJ1ZSB9O1xuICAgICAgICBjb25zdCBzZXF1ZW5jZU1hcCA9IFNlcXVlbmNlLm1hcDtcbiAgICAgICAgaWYgKHNlcXVlbmNlTWFwW2FjdGlvbk5hbWVdKSB7XG4gICAgICAgICAgICBhY3RpdmVSZXNwb25zZU1hcC5lbWl0ID0gIShPYmplY3Qua2V5cyhzZXF1ZW5jZU1hcFthY3Rpb25OYW1lXS5yZXNwb25zZUVtaXRTdGF0ZSkubGVuZ3RoID4gMCk7XG4gICAgICAgICAgICBhY3RpdmVSZXNwb25zZU1hcC5icm9hZGNhc3QgPSAhKE9iamVjdC5rZXlzKHNlcXVlbmNlTWFwW2FjdGlvbk5hbWVdLnJlc3BvbnNlQnJvYWRjYXN0U3RhdGUpLmxlbmd0aCA+IDApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY3RpdmVSZXNwb25zZU1hcDtcbiAgICB9XG4gICAgc3RhdGljIGNvbnZlcnRTZXJ2ZXJUb0FwaUlvVHlwZShpRnJhbWVJZCwgYWN0aW9uVHlwZSkge1xuICAgICAgICBpZiAoYWN0aW9uVHlwZS5pbmRleE9mKGAke1NlcXVlbmNlLkFQSV9TRVBBUkFURV9JT19UWVBFX1NUQVJUfSR7U2VxdWVuY2UuQVBJX1JFUVVFU1RfVFlQRX0ke1NlcXVlbmNlLkFQSV9TRVBBUkFURV9JT19UWVBFX0VORH1gKSA+PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gU2VxdWVuY2UuQVBJX1JFUVVFU1RfVFlQRTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWN0aW9uVHlwZS5pbmRleE9mKGAke1NlcXVlbmNlLkFQSV9TRVBBUkFURV9JT19UWVBFX1NUQVJUfSR7U2VxdWVuY2UuQVBJX1JFU1BPTlNFX1RZUEVfQlJPQURDQVNUfSR7U2VxdWVuY2UuQVBJX1NFUEFSQVRFX0lPX1RZUEVfRU5EfWApID49IDApIHtcbiAgICAgICAgICAgIHJldHVybiBTZXF1ZW5jZS5BUElfUkVTUE9OU0VfVFlQRV9CUk9BRENBU1Q7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFjdGlvblR5cGUuaW5kZXhPZihgJHtTZXF1ZW5jZS5BUElfU0VQQVJBVEVfSU9fVFlQRV9TVEFSVH0ke1NlcXVlbmNlLkFQSV9SRVNQT05TRV9UWVBFX0VNSVR9JHtTZXF1ZW5jZS5BUElfU0VQQVJBVEVfSU9fVFlQRV9FTkR9YCkgPj1cbiAgICAgICAgICAgIDApIHtcbiAgICAgICAgICAgIHJldHVybiBTZXF1ZW5jZS5BUElfUkVTUE9OU0VfVFlQRV9FTUlUO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBTZXF1ZW5jZS5BUElfU0VUVVA7XG4gICAgfVxuICAgIHN0YXRpYyBjb252ZXJ0RXh0VG9DbGllbnRBY3Rpb25UeXBlKGlGcmFtZUlkLCBhY3Rpb25UeXBlKSB7XG4gICAgICAgIGFjdGlvblR5cGUgPSBTZXF1ZW5jZS5jb252ZXJ0QXBpVG9DbGllbnRBY3Rpb25UeXBlKGFjdGlvblR5cGUpO1xuICAgICAgICByZXR1cm4gYWN0aW9uVHlwZTtcbiAgICB9XG4gICAgc3RhdGljIGNvbnZlcnRBcGlUb0NsaWVudEFjdGlvblR5cGUoYWN0aW9uVHlwZSkge1xuICAgICAgICBpZiAoYWN0aW9uVHlwZS5pbmRleE9mKFNlcXVlbmNlLkFQSV9UT19TRVJWRVJfUkVRVUVTVCkgPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBhY3Rpb25UeXBlLnJlcGxhY2UoU2VxdWVuY2UuQVBJX1RPX1NFUlZFUl9SRVFVRVNULCBTZXF1ZW5jZS5BUElfVE9fQ0xJRU5UX1JFUVVFU1QpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhY3Rpb25UeXBlLmluZGV4T2YoU2VxdWVuY2UuU0VSVkVSX1RPX0FQSV9FTUlUKSA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGFjdGlvblR5cGUucmVwbGFjZShTZXF1ZW5jZS5TRVJWRVJfVE9fQVBJX0VNSVQsIFNlcXVlbmNlLkFQSV9UT19DTElFTlRfRU1JVCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFjdGlvblR5cGUuaW5kZXhPZihTZXF1ZW5jZS5TRVJWRVJfVE9fQVBJX0JST0FEQ0FTVCkgPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBhY3Rpb25UeXBlLnJlcGxhY2UoU2VxdWVuY2UuU0VSVkVSX1RPX0FQSV9CUk9BRENBU1QsIFNlcXVlbmNlLkFQSV9UT19DTElFTlRfQlJPQURDQVNUKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWN0aW9uVHlwZTtcbiAgICB9XG4gICAgc3RhdGljIGdldFJlcXVlc3RTdGF0ZShhY3Rpb25OYW1lLCByZWR1eFN0YXRlLCByZXF1ZXN0UGFyYW1zKSB7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50S2V5ID0gYWN0aW9uTmFtZS5yZXBsYWNlKFNlcXVlbmNlLkFQSV9UT19TRVJWRVJfUkVRVUVTVCwgJycpO1xuICAgICAgICBjb25zdCBzZXF1ZW5jZU1hcCA9IFNlcXVlbmNlLm1hcDtcbiAgICAgICAgY29uc3QgeyByZXF1ZXN0UHVibGljU3RhdGUsIHJlcXVlc3RQcml2YXRlU3RhdGUgfSA9IHNlcXVlbmNlTWFwW2VuZHBvaW50S2V5XTtcbiAgICAgICAgbGV0IHJlcXVlc3RTdGF0ZSA9IHtcbiAgICAgICAgICAgIFtTZXF1ZW5jZS5SRURVWF9BQ1RJT05fS0VZXTogZW5kcG9pbnRLZXksXG4gICAgICAgIH07XG4gICAgICAgIE9iamVjdC5rZXlzKHJlcXVlc3RQcml2YXRlU3RhdGUpLmZvckVhY2goKHN0YXRlS2V5KSA9PiB7XG4gICAgICAgICAgICBpZiAoIXJlcXVlc3RTdGF0ZVtzdGF0ZUtleV0pXG4gICAgICAgICAgICAgICAgcmVxdWVzdFN0YXRlW3N0YXRlS2V5XSA9IHt9O1xuICAgICAgICAgICAgcmVxdWVzdFByaXZhdGVTdGF0ZVtzdGF0ZUtleV0uZm9yRWFjaCgoY29sdW1uTmFtZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghcmVxdWVzdFN0YXRlW3N0YXRlS2V5XVtjb2x1bW5OYW1lXSkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSByZWR1eFN0YXRlW3N0YXRlS2V5XVtjb2x1bW5OYW1lXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcXVlc3RQYXJhbXMgJiYgcmVxdWVzdFBhcmFtc1tzdGF0ZUtleV0gJiYgcmVxdWVzdFBhcmFtc1tzdGF0ZUtleV1bY29sdW1uTmFtZV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gcmVxdWVzdFBhcmFtc1tzdGF0ZUtleV1bY29sdW1uTmFtZV07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFN0YXRlW3N0YXRlS2V5XVtjb2x1bW5OYW1lXSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LmtleXMocmVxdWVzdFB1YmxpY1N0YXRlKS5mb3JFYWNoKChzdGF0ZUtleSkgPT4ge1xuICAgICAgICAgICAgaWYgKCFyZXF1ZXN0U3RhdGVbc3RhdGVLZXldKVxuICAgICAgICAgICAgICAgIHJlcXVlc3RTdGF0ZVtzdGF0ZUtleV0gPSB7fTtcbiAgICAgICAgICAgIHJlcXVlc3RQdWJsaWNTdGF0ZVtzdGF0ZUtleV0uZm9yRWFjaCgoY29sdW1uTmFtZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghcmVxdWVzdFN0YXRlW3N0YXRlS2V5XVtjb2x1bW5OYW1lXSkge1xuICAgICAgICAgICAgICAgICAgICByZXF1ZXN0U3RhdGVbc3RhdGVLZXldW2NvbHVtbk5hbWVdID0gcmVxdWVzdFBhcmFtcztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiByZXF1ZXN0U3RhdGU7XG4gICAgfVxuICAgIHN0YXRpYyBnZXRSZXNwb25zZVN0YXRlKHJlc3BvbnNlVHlwZSwgcmVxdWVzdFN0YXRlLCB1cGRhdGVTdGF0ZSkge1xuICAgICAgICBjb25zdCBlbmRwb2ludEtleSA9IHJlcXVlc3RTdGF0ZS50eXBlO1xuICAgICAgICBjb25zdCBzZXF1ZW5jZU1hcCA9IFNlcXVlbmNlLm1hcDtcbiAgICAgICAgY29uc3QgcmVzcG9uc2VTY2hlbWEgPSBzZXF1ZW5jZU1hcFtlbmRwb2ludEtleV1bYHJlc3BvbnNlJHtyZXNwb25zZVR5cGV9U3RhdGVgXTtcbiAgICAgICAgbGV0IHJlc3BvbnNlU3RhdGUgPSB7IFtTZXF1ZW5jZS5SRURVWF9BQ1RJT05fS0VZXTogZW5kcG9pbnRLZXkgfTtcbiAgICAgICAgT2JqZWN0LmtleXMocmVzcG9uc2VTY2hlbWEpLmZvckVhY2goKHVwZGF0ZVN0YXRlS2V5KSA9PiB7XG4gICAgICAgICAgICBpZiAodXBkYXRlU3RhdGVbdXBkYXRlU3RhdGVLZXldKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29sdW1uTmFtZXMgPSByZXNwb25zZVNjaGVtYVt1cGRhdGVTdGF0ZUtleV07XG4gICAgICAgICAgICAgICAgbGV0IHVwZGF0ZVN0YXRlVmFsdWUgPSB1cGRhdGVTdGF0ZVt1cGRhdGVTdGF0ZUtleV07XG4gICAgICAgICAgICAgICAgc3dpdGNoICh1cGRhdGVTdGF0ZVZhbHVlLmNvbnN0cnVjdG9yLm5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnbW9kZWwnOlxuICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RhdGVWYWx1ZSA9IHVwZGF0ZVN0YXRlVmFsdWUudG9KU09OKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgdXBkYXRlU3RhdGVWYWx1ZS5faWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgdXBkYXRlU3RhdGVWYWx1ZS5fX3Y7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGNvbHVtbk5hbWVzID09PSAnKicpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VTdGF0ZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnJlc3BvbnNlU3RhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBbdXBkYXRlU3RhdGVLZXldOiB1cGRhdGVTdGF0ZVZhbHVlLFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uTmFtZXMuZm9yRWFjaCgoY29sdW1uTmFtZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVwZGF0ZVN0YXRlW3VwZGF0ZVN0YXRlS2V5XVtjb2x1bW5OYW1lXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VTdGF0ZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucmVzcG9uc2VTdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3VwZGF0ZVN0YXRlS2V5XToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucmVzcG9uc2VTdGF0ZVt1cGRhdGVTdGF0ZUtleV0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sdW1uTmFtZV06IHVwZGF0ZVN0YXRlW3VwZGF0ZVN0YXRlS2V5XVtjb2x1bW5OYW1lXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgYFNFUVVFTkNFIEVSUk9SOiBOT19VUERBVEVfU1RBVEVfQ09MVU1OX05BTUU6ICR7cmVxdWVzdFN0YXRlLnR5cGV9OiAke3VwZGF0ZVN0YXRlS2V5fS4ke2NvbHVtbk5hbWV9YDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgYFNFUVVFTkNFIEVSUk9SOiBOT19VUERBVEVfU1RBVEVfS0VZOiAke3JlcXVlc3RTdGF0ZS50eXBlfTogJHt1cGRhdGVTdGF0ZUtleX1gO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlU3RhdGU7XG4gICAgfVxuICAgIHN0YXRpYyBnZXRSZXF1ZXN0QWN0aW9uU3RhdGUoYWN0aW9uTmFtZSwgcmVxdWVzdFBhcmFtczEgPSBudWxsLCByZXF1ZXN0UGFyYW1zMiA9IG51bGwpIHtcbiAgICAgICAgaWYgKHR5cGVvZiByZXF1ZXN0UGFyYW1zMSA9PT0gJ3N0cmluZycgJiYgcmVxdWVzdFBhcmFtczIgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB7IHR5cGU6IGFjdGlvbk5hbWUgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHJlcXVlc3RQYXJhbXMxID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgcmVxdWVzdFBhcmFtczIgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICByZXR1cm4geyAuLi5yZXF1ZXN0UGFyYW1zMSwgLi4ucmVxdWVzdFBhcmFtczIsIHR5cGU6IGFjdGlvbk5hbWUgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHJlcXVlc3RQYXJhbXMxID09PSAnc3RyaW5nJyAmJiB0eXBlb2YgcmVxdWVzdFBhcmFtczIgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICByZXR1cm4geyAuLi5yZXF1ZXN0UGFyYW1zMiwgdHlwZTogYWN0aW9uTmFtZSB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IC4uLnJlcXVlc3RQYXJhbXMxLCB0eXBlOiBhY3Rpb25OYW1lIH07XG4gICAgfVxufVxuZXhwb3J0cy5kZWZhdWx0ID0gU2VxdWVuY2U7XG4iLCIvKipcbiAqIEhlbHBlcnMuXG4gKi9cblxudmFyIHMgPSAxMDAwO1xudmFyIG0gPSBzICogNjA7XG52YXIgaCA9IG0gKiA2MDtcbnZhciBkID0gaCAqIDI0O1xudmFyIHcgPSBkICogNztcbnZhciB5ID0gZCAqIDM2NS4yNTtcblxuLyoqXG4gKiBQYXJzZSBvciBmb3JtYXQgdGhlIGdpdmVuIGB2YWxgLlxuICpcbiAqIE9wdGlvbnM6XG4gKlxuICogIC0gYGxvbmdgIHZlcmJvc2UgZm9ybWF0dGluZyBbZmFsc2VdXG4gKlxuICogQHBhcmFtIHtTdHJpbmd8TnVtYmVyfSB2YWxcbiAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9uc11cbiAqIEB0aHJvd3Mge0Vycm9yfSB0aHJvdyBhbiBlcnJvciBpZiB2YWwgaXMgbm90IGEgbm9uLWVtcHR5IHN0cmluZyBvciBhIG51bWJlclxuICogQHJldHVybiB7U3RyaW5nfE51bWJlcn1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAodmFsLCBvcHRpb25zKSB7XG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICB2YXIgdHlwZSA9IHR5cGVvZiB2YWw7XG4gIGlmICh0eXBlID09PSAnc3RyaW5nJyAmJiB2YWwubGVuZ3RoID4gMCkge1xuICAgIHJldHVybiBwYXJzZSh2YWwpO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdudW1iZXInICYmIGlzRmluaXRlKHZhbCkpIHtcbiAgICByZXR1cm4gb3B0aW9ucy5sb25nID8gZm10TG9uZyh2YWwpIDogZm10U2hvcnQodmFsKTtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgJ3ZhbCBpcyBub3QgYSBub24tZW1wdHkgc3RyaW5nIG9yIGEgdmFsaWQgbnVtYmVyLiB2YWw9JyArXG4gICAgICBKU09OLnN0cmluZ2lmeSh2YWwpXG4gICk7XG59O1xuXG4vKipcbiAqIFBhcnNlIHRoZSBnaXZlbiBgc3RyYCBhbmQgcmV0dXJuIG1pbGxpc2Vjb25kcy5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gKiBAcmV0dXJuIHtOdW1iZXJ9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBwYXJzZShzdHIpIHtcbiAgc3RyID0gU3RyaW5nKHN0cik7XG4gIGlmIChzdHIubGVuZ3RoID4gMTAwKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIHZhciBtYXRjaCA9IC9eKC0/KD86XFxkKyk/XFwuP1xcZCspICoobWlsbGlzZWNvbmRzP3xtc2Vjcz98bXN8c2Vjb25kcz98c2Vjcz98c3xtaW51dGVzP3xtaW5zP3xtfGhvdXJzP3xocnM/fGh8ZGF5cz98ZHx3ZWVrcz98d3x5ZWFycz98eXJzP3x5KT8kL2kuZXhlYyhcbiAgICBzdHJcbiAgKTtcbiAgaWYgKCFtYXRjaCkge1xuICAgIHJldHVybjtcbiAgfVxuICB2YXIgbiA9IHBhcnNlRmxvYXQobWF0Y2hbMV0pO1xuICB2YXIgdHlwZSA9IChtYXRjaFsyXSB8fCAnbXMnKS50b0xvd2VyQ2FzZSgpO1xuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlICd5ZWFycyc6XG4gICAgY2FzZSAneWVhcic6XG4gICAgY2FzZSAneXJzJzpcbiAgICBjYXNlICd5cic6XG4gICAgY2FzZSAneSc6XG4gICAgICByZXR1cm4gbiAqIHk7XG4gICAgY2FzZSAnd2Vla3MnOlxuICAgIGNhc2UgJ3dlZWsnOlxuICAgIGNhc2UgJ3cnOlxuICAgICAgcmV0dXJuIG4gKiB3O1xuICAgIGNhc2UgJ2RheXMnOlxuICAgIGNhc2UgJ2RheSc6XG4gICAgY2FzZSAnZCc6XG4gICAgICByZXR1cm4gbiAqIGQ7XG4gICAgY2FzZSAnaG91cnMnOlxuICAgIGNhc2UgJ2hvdXInOlxuICAgIGNhc2UgJ2hycyc6XG4gICAgY2FzZSAnaHInOlxuICAgIGNhc2UgJ2gnOlxuICAgICAgcmV0dXJuIG4gKiBoO1xuICAgIGNhc2UgJ21pbnV0ZXMnOlxuICAgIGNhc2UgJ21pbnV0ZSc6XG4gICAgY2FzZSAnbWlucyc6XG4gICAgY2FzZSAnbWluJzpcbiAgICBjYXNlICdtJzpcbiAgICAgIHJldHVybiBuICogbTtcbiAgICBjYXNlICdzZWNvbmRzJzpcbiAgICBjYXNlICdzZWNvbmQnOlxuICAgIGNhc2UgJ3NlY3MnOlxuICAgIGNhc2UgJ3NlYyc6XG4gICAgY2FzZSAncyc6XG4gICAgICByZXR1cm4gbiAqIHM7XG4gICAgY2FzZSAnbWlsbGlzZWNvbmRzJzpcbiAgICBjYXNlICdtaWxsaXNlY29uZCc6XG4gICAgY2FzZSAnbXNlY3MnOlxuICAgIGNhc2UgJ21zZWMnOlxuICAgIGNhc2UgJ21zJzpcbiAgICAgIHJldHVybiBuO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbi8qKlxuICogU2hvcnQgZm9ybWF0IGZvciBgbXNgLlxuICpcbiAqIEBwYXJhbSB7TnVtYmVyfSBtc1xuICogQHJldHVybiB7U3RyaW5nfVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gZm10U2hvcnQobXMpIHtcbiAgdmFyIG1zQWJzID0gTWF0aC5hYnMobXMpO1xuICBpZiAobXNBYnMgPj0gZCkge1xuICAgIHJldHVybiBNYXRoLnJvdW5kKG1zIC8gZCkgKyAnZCc7XG4gIH1cbiAgaWYgKG1zQWJzID49IGgpIHtcbiAgICByZXR1cm4gTWF0aC5yb3VuZChtcyAvIGgpICsgJ2gnO1xuICB9XG4gIGlmIChtc0FicyA+PSBtKSB7XG4gICAgcmV0dXJuIE1hdGgucm91bmQobXMgLyBtKSArICdtJztcbiAgfVxuICBpZiAobXNBYnMgPj0gcykge1xuICAgIHJldHVybiBNYXRoLnJvdW5kKG1zIC8gcykgKyAncyc7XG4gIH1cbiAgcmV0dXJuIG1zICsgJ21zJztcbn1cblxuLyoqXG4gKiBMb25nIGZvcm1hdCBmb3IgYG1zYC5cbiAqXG4gKiBAcGFyYW0ge051bWJlcn0gbXNcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIGZtdExvbmcobXMpIHtcbiAgdmFyIG1zQWJzID0gTWF0aC5hYnMobXMpO1xuICBpZiAobXNBYnMgPj0gZCkge1xuICAgIHJldHVybiBwbHVyYWwobXMsIG1zQWJzLCBkLCAnZGF5Jyk7XG4gIH1cbiAgaWYgKG1zQWJzID49IGgpIHtcbiAgICByZXR1cm4gcGx1cmFsKG1zLCBtc0FicywgaCwgJ2hvdXInKTtcbiAgfVxuICBpZiAobXNBYnMgPj0gbSkge1xuICAgIHJldHVybiBwbHVyYWwobXMsIG1zQWJzLCBtLCAnbWludXRlJyk7XG4gIH1cbiAgaWYgKG1zQWJzID49IHMpIHtcbiAgICByZXR1cm4gcGx1cmFsKG1zLCBtc0FicywgcywgJ3NlY29uZCcpO1xuICB9XG4gIHJldHVybiBtcyArICcgbXMnO1xufVxuXG4vKipcbiAqIFBsdXJhbGl6YXRpb24gaGVscGVyLlxuICovXG5cbmZ1bmN0aW9uIHBsdXJhbChtcywgbXNBYnMsIG4sIG5hbWUpIHtcbiAgdmFyIGlzUGx1cmFsID0gbXNBYnMgPj0gbiAqIDEuNTtcbiAgcmV0dXJuIE1hdGgucm91bmQobXMgLyBuKSArICcgJyArIG5hbWUgKyAoaXNQbHVyYWwgPyAncycgOiAnJyk7XG59XG4iLCIvKiBlc2xpbnQtZW52IGJyb3dzZXIgKi9cblxuLyoqXG4gKiBUaGlzIGlzIHRoZSB3ZWIgYnJvd3NlciBpbXBsZW1lbnRhdGlvbiBvZiBgZGVidWcoKWAuXG4gKi9cblxuZXhwb3J0cy5mb3JtYXRBcmdzID0gZm9ybWF0QXJncztcbmV4cG9ydHMuc2F2ZSA9IHNhdmU7XG5leHBvcnRzLmxvYWQgPSBsb2FkO1xuZXhwb3J0cy51c2VDb2xvcnMgPSB1c2VDb2xvcnM7XG5leHBvcnRzLnN0b3JhZ2UgPSBsb2NhbHN0b3JhZ2UoKTtcbmV4cG9ydHMuZGVzdHJveSA9ICgoKSA9PiB7XG5cdGxldCB3YXJuZWQgPSBmYWxzZTtcblxuXHRyZXR1cm4gKCkgPT4ge1xuXHRcdGlmICghd2FybmVkKSB7XG5cdFx0XHR3YXJuZWQgPSB0cnVlO1xuXHRcdFx0Y29uc29sZS53YXJuKCdJbnN0YW5jZSBtZXRob2QgYGRlYnVnLmRlc3Ryb3koKWAgaXMgZGVwcmVjYXRlZCBhbmQgbm8gbG9uZ2VyIGRvZXMgYW55dGhpbmcuIEl0IHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIG9mIGBkZWJ1Z2AuJyk7XG5cdFx0fVxuXHR9O1xufSkoKTtcblxuLyoqXG4gKiBDb2xvcnMuXG4gKi9cblxuZXhwb3J0cy5jb2xvcnMgPSBbXG5cdCcjMDAwMENDJyxcblx0JyMwMDAwRkYnLFxuXHQnIzAwMzNDQycsXG5cdCcjMDAzM0ZGJyxcblx0JyMwMDY2Q0MnLFxuXHQnIzAwNjZGRicsXG5cdCcjMDA5OUNDJyxcblx0JyMwMDk5RkYnLFxuXHQnIzAwQ0MwMCcsXG5cdCcjMDBDQzMzJyxcblx0JyMwMENDNjYnLFxuXHQnIzAwQ0M5OScsXG5cdCcjMDBDQ0NDJyxcblx0JyMwMENDRkYnLFxuXHQnIzMzMDBDQycsXG5cdCcjMzMwMEZGJyxcblx0JyMzMzMzQ0MnLFxuXHQnIzMzMzNGRicsXG5cdCcjMzM2NkNDJyxcblx0JyMzMzY2RkYnLFxuXHQnIzMzOTlDQycsXG5cdCcjMzM5OUZGJyxcblx0JyMzM0NDMDAnLFxuXHQnIzMzQ0MzMycsXG5cdCcjMzNDQzY2Jyxcblx0JyMzM0NDOTknLFxuXHQnIzMzQ0NDQycsXG5cdCcjMzNDQ0ZGJyxcblx0JyM2NjAwQ0MnLFxuXHQnIzY2MDBGRicsXG5cdCcjNjYzM0NDJyxcblx0JyM2NjMzRkYnLFxuXHQnIzY2Q0MwMCcsXG5cdCcjNjZDQzMzJyxcblx0JyM5OTAwQ0MnLFxuXHQnIzk5MDBGRicsXG5cdCcjOTkzM0NDJyxcblx0JyM5OTMzRkYnLFxuXHQnIzk5Q0MwMCcsXG5cdCcjOTlDQzMzJyxcblx0JyNDQzAwMDAnLFxuXHQnI0NDMDAzMycsXG5cdCcjQ0MwMDY2Jyxcblx0JyNDQzAwOTknLFxuXHQnI0NDMDBDQycsXG5cdCcjQ0MwMEZGJyxcblx0JyNDQzMzMDAnLFxuXHQnI0NDMzMzMycsXG5cdCcjQ0MzMzY2Jyxcblx0JyNDQzMzOTknLFxuXHQnI0NDMzNDQycsXG5cdCcjQ0MzM0ZGJyxcblx0JyNDQzY2MDAnLFxuXHQnI0NDNjYzMycsXG5cdCcjQ0M5OTAwJyxcblx0JyNDQzk5MzMnLFxuXHQnI0NDQ0MwMCcsXG5cdCcjQ0NDQzMzJyxcblx0JyNGRjAwMDAnLFxuXHQnI0ZGMDAzMycsXG5cdCcjRkYwMDY2Jyxcblx0JyNGRjAwOTknLFxuXHQnI0ZGMDBDQycsXG5cdCcjRkYwMEZGJyxcblx0JyNGRjMzMDAnLFxuXHQnI0ZGMzMzMycsXG5cdCcjRkYzMzY2Jyxcblx0JyNGRjMzOTknLFxuXHQnI0ZGMzNDQycsXG5cdCcjRkYzM0ZGJyxcblx0JyNGRjY2MDAnLFxuXHQnI0ZGNjYzMycsXG5cdCcjRkY5OTAwJyxcblx0JyNGRjk5MzMnLFxuXHQnI0ZGQ0MwMCcsXG5cdCcjRkZDQzMzJ1xuXTtcblxuLyoqXG4gKiBDdXJyZW50bHkgb25seSBXZWJLaXQtYmFzZWQgV2ViIEluc3BlY3RvcnMsIEZpcmVmb3ggPj0gdjMxLFxuICogYW5kIHRoZSBGaXJlYnVnIGV4dGVuc2lvbiAoYW55IEZpcmVmb3ggdmVyc2lvbikgYXJlIGtub3duXG4gKiB0byBzdXBwb3J0IFwiJWNcIiBDU1MgY3VzdG9taXphdGlvbnMuXG4gKlxuICogVE9ETzogYWRkIGEgYGxvY2FsU3RvcmFnZWAgdmFyaWFibGUgdG8gZXhwbGljaXRseSBlbmFibGUvZGlzYWJsZSBjb2xvcnNcbiAqL1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY29tcGxleGl0eVxuZnVuY3Rpb24gdXNlQ29sb3JzKCkge1xuXHQvLyBOQjogSW4gYW4gRWxlY3Ryb24gcHJlbG9hZCBzY3JpcHQsIGRvY3VtZW50IHdpbGwgYmUgZGVmaW5lZCBidXQgbm90IGZ1bGx5XG5cdC8vIGluaXRpYWxpemVkLiBTaW5jZSB3ZSBrbm93IHdlJ3JlIGluIENocm9tZSwgd2UnbGwganVzdCBkZXRlY3QgdGhpcyBjYXNlXG5cdC8vIGV4cGxpY2l0bHlcblx0aWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5wcm9jZXNzICYmICh3aW5kb3cucHJvY2Vzcy50eXBlID09PSAncmVuZGVyZXInIHx8IHdpbmRvdy5wcm9jZXNzLl9fbndqcykpIHtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxuXG5cdC8vIEludGVybmV0IEV4cGxvcmVyIGFuZCBFZGdlIGRvIG5vdCBzdXBwb3J0IGNvbG9ycy5cblx0aWYgKHR5cGVvZiBuYXZpZ2F0b3IgIT09ICd1bmRlZmluZWQnICYmIG5hdmlnYXRvci51c2VyQWdlbnQgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLm1hdGNoKC8oZWRnZXx0cmlkZW50KVxcLyhcXGQrKS8pKSB7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0bGV0IG07XG5cblx0Ly8gSXMgd2Via2l0PyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8xNjQ1OTYwNi8zNzY3NzNcblx0Ly8gZG9jdW1lbnQgaXMgdW5kZWZpbmVkIGluIHJlYWN0LW5hdGl2ZTogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0LW5hdGl2ZS9wdWxsLzE2MzJcblx0cmV0dXJuICh0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnICYmIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUgJiYgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLldlYmtpdEFwcGVhcmFuY2UpIHx8XG5cdFx0Ly8gSXMgZmlyZWJ1Zz8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMzk4MTIwLzM3Njc3M1xuXHRcdCh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB3aW5kb3cuY29uc29sZSAmJiAod2luZG93LmNvbnNvbGUuZmlyZWJ1ZyB8fCAod2luZG93LmNvbnNvbGUuZXhjZXB0aW9uICYmIHdpbmRvdy5jb25zb2xlLnRhYmxlKSkpIHx8XG5cdFx0Ly8gSXMgZmlyZWZveCA+PSB2MzE/XG5cdFx0Ly8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9Ub29scy9XZWJfQ29uc29sZSNTdHlsaW5nX21lc3NhZ2VzXG5cdFx0KHR5cGVvZiBuYXZpZ2F0b3IgIT09ICd1bmRlZmluZWQnICYmIG5hdmlnYXRvci51c2VyQWdlbnQgJiYgKG0gPSBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goL2ZpcmVmb3hcXC8oXFxkKykvKSkgJiYgcGFyc2VJbnQobVsxXSwgMTApID49IDMxKSB8fFxuXHRcdC8vIERvdWJsZSBjaGVjayB3ZWJraXQgaW4gdXNlckFnZW50IGp1c3QgaW4gY2FzZSB3ZSBhcmUgaW4gYSB3b3JrZXJcblx0XHQodHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudCAmJiBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goL2FwcGxld2Via2l0XFwvKFxcZCspLykpO1xufVxuXG4vKipcbiAqIENvbG9yaXplIGxvZyBhcmd1bWVudHMgaWYgZW5hYmxlZC5cbiAqXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbmZ1bmN0aW9uIGZvcm1hdEFyZ3MoYXJncykge1xuXHRhcmdzWzBdID0gKHRoaXMudXNlQ29sb3JzID8gJyVjJyA6ICcnKSArXG5cdFx0dGhpcy5uYW1lc3BhY2UgK1xuXHRcdCh0aGlzLnVzZUNvbG9ycyA/ICcgJWMnIDogJyAnKSArXG5cdFx0YXJnc1swXSArXG5cdFx0KHRoaXMudXNlQ29sb3JzID8gJyVjICcgOiAnICcpICtcblx0XHQnKycgKyBtb2R1bGUuZXhwb3J0cy5odW1hbml6ZSh0aGlzLmRpZmYpO1xuXG5cdGlmICghdGhpcy51c2VDb2xvcnMpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRjb25zdCBjID0gJ2NvbG9yOiAnICsgdGhpcy5jb2xvcjtcblx0YXJncy5zcGxpY2UoMSwgMCwgYywgJ2NvbG9yOiBpbmhlcml0Jyk7XG5cblx0Ly8gVGhlIGZpbmFsIFwiJWNcIiBpcyBzb21ld2hhdCB0cmlja3ksIGJlY2F1c2UgdGhlcmUgY291bGQgYmUgb3RoZXJcblx0Ly8gYXJndW1lbnRzIHBhc3NlZCBlaXRoZXIgYmVmb3JlIG9yIGFmdGVyIHRoZSAlYywgc28gd2UgbmVlZCB0b1xuXHQvLyBmaWd1cmUgb3V0IHRoZSBjb3JyZWN0IGluZGV4IHRvIGluc2VydCB0aGUgQ1NTIGludG9cblx0bGV0IGluZGV4ID0gMDtcblx0bGV0IGxhc3RDID0gMDtcblx0YXJnc1swXS5yZXBsYWNlKC8lW2EtekEtWiVdL2csIG1hdGNoID0+IHtcblx0XHRpZiAobWF0Y2ggPT09ICclJScpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0aW5kZXgrKztcblx0XHRpZiAobWF0Y2ggPT09ICclYycpIHtcblx0XHRcdC8vIFdlIG9ubHkgYXJlIGludGVyZXN0ZWQgaW4gdGhlICpsYXN0KiAlY1xuXHRcdFx0Ly8gKHRoZSB1c2VyIG1heSBoYXZlIHByb3ZpZGVkIHRoZWlyIG93bilcblx0XHRcdGxhc3RDID0gaW5kZXg7XG5cdFx0fVxuXHR9KTtcblxuXHRhcmdzLnNwbGljZShsYXN0QywgMCwgYyk7XG59XG5cbi8qKlxuICogSW52b2tlcyBgY29uc29sZS5kZWJ1ZygpYCB3aGVuIGF2YWlsYWJsZS5cbiAqIE5vLW9wIHdoZW4gYGNvbnNvbGUuZGVidWdgIGlzIG5vdCBhIFwiZnVuY3Rpb25cIi5cbiAqIElmIGBjb25zb2xlLmRlYnVnYCBpcyBub3QgYXZhaWxhYmxlLCBmYWxscyBiYWNrXG4gKiB0byBgY29uc29sZS5sb2dgLlxuICpcbiAqIEBhcGkgcHVibGljXG4gKi9cbmV4cG9ydHMubG9nID0gY29uc29sZS5kZWJ1ZyB8fCBjb25zb2xlLmxvZyB8fCAoKCkgPT4ge30pO1xuXG4vKipcbiAqIFNhdmUgYG5hbWVzcGFjZXNgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lc3BhY2VzXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gc2F2ZShuYW1lc3BhY2VzKSB7XG5cdHRyeSB7XG5cdFx0aWYgKG5hbWVzcGFjZXMpIHtcblx0XHRcdGV4cG9ydHMuc3RvcmFnZS5zZXRJdGVtKCdkZWJ1ZycsIG5hbWVzcGFjZXMpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRleHBvcnRzLnN0b3JhZ2UucmVtb3ZlSXRlbSgnZGVidWcnKTtcblx0XHR9XG5cdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0Ly8gU3dhbGxvd1xuXHRcdC8vIFhYWCAoQFFpeC0pIHNob3VsZCB3ZSBiZSBsb2dnaW5nIHRoZXNlP1xuXHR9XG59XG5cbi8qKlxuICogTG9hZCBgbmFtZXNwYWNlc2AuXG4gKlxuICogQHJldHVybiB7U3RyaW5nfSByZXR1cm5zIHRoZSBwcmV2aW91c2x5IHBlcnNpc3RlZCBkZWJ1ZyBtb2Rlc1xuICogQGFwaSBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIGxvYWQoKSB7XG5cdGxldCByO1xuXHR0cnkge1xuXHRcdHIgPSBleHBvcnRzLnN0b3JhZ2UuZ2V0SXRlbSgnZGVidWcnKTtcblx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHQvLyBTd2FsbG93XG5cdFx0Ly8gWFhYIChAUWl4LSkgc2hvdWxkIHdlIGJlIGxvZ2dpbmcgdGhlc2U/XG5cdH1cblxuXHQvLyBJZiBkZWJ1ZyBpc24ndCBzZXQgaW4gTFMsIGFuZCB3ZSdyZSBpbiBFbGVjdHJvbiwgdHJ5IHRvIGxvYWQgJERFQlVHXG5cdGlmICghciAmJiB0eXBlb2YgcHJvY2VzcyAhPT0gJ3VuZGVmaW5lZCcgJiYgJ2VudicgaW4gcHJvY2Vzcykge1xuXHRcdHIgPSBwcm9jZXNzLmVudi5ERUJVRztcblx0fVxuXG5cdHJldHVybiByO1xufVxuXG4vKipcbiAqIExvY2Fsc3RvcmFnZSBhdHRlbXB0cyB0byByZXR1cm4gdGhlIGxvY2Fsc3RvcmFnZS5cbiAqXG4gKiBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHNhZmFyaSB0aHJvd3NcbiAqIHdoZW4gYSB1c2VyIGRpc2FibGVzIGNvb2tpZXMvbG9jYWxzdG9yYWdlXG4gKiBhbmQgeW91IGF0dGVtcHQgdG8gYWNjZXNzIGl0LlxuICpcbiAqIEByZXR1cm4ge0xvY2FsU3RvcmFnZX1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIGxvY2Fsc3RvcmFnZSgpIHtcblx0dHJ5IHtcblx0XHQvLyBUVk1MS2l0IChBcHBsZSBUViBKUyBSdW50aW1lKSBkb2VzIG5vdCBoYXZlIGEgd2luZG93IG9iamVjdCwganVzdCBsb2NhbFN0b3JhZ2UgaW4gdGhlIGdsb2JhbCBjb250ZXh0XG5cdFx0Ly8gVGhlIEJyb3dzZXIgYWxzbyBoYXMgbG9jYWxTdG9yYWdlIGluIHRoZSBnbG9iYWwgY29udGV4dC5cblx0XHRyZXR1cm4gbG9jYWxTdG9yYWdlO1xuXHR9IGNhdGNoIChlcnJvcikge1xuXHRcdC8vIFN3YWxsb3dcblx0XHQvLyBYWFggKEBRaXgtKSBzaG91bGQgd2UgYmUgbG9nZ2luZyB0aGVzZT9cblx0fVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY29tbW9uJykoZXhwb3J0cyk7XG5cbmNvbnN0IHtmb3JtYXR0ZXJzfSA9IG1vZHVsZS5leHBvcnRzO1xuXG4vKipcbiAqIE1hcCAlaiB0byBgSlNPTi5zdHJpbmdpZnkoKWAsIHNpbmNlIG5vIFdlYiBJbnNwZWN0b3JzIGRvIHRoYXQgYnkgZGVmYXVsdC5cbiAqL1xuXG5mb3JtYXR0ZXJzLmogPSBmdW5jdGlvbiAodikge1xuXHR0cnkge1xuXHRcdHJldHVybiBKU09OLnN0cmluZ2lmeSh2KTtcblx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHRyZXR1cm4gJ1tVbmV4cGVjdGVkSlNPTlBhcnNlRXJyb3JdOiAnICsgZXJyb3IubWVzc2FnZTtcblx0fVxufTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy51cmwgPSB2b2lkIDA7XG5jb25zdCBlbmdpbmVfaW9fY2xpZW50XzEgPSByZXF1aXJlKFwiZW5naW5lLmlvLWNsaWVudFwiKTtcbmNvbnN0IGRlYnVnXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcImRlYnVnXCIpKTsgLy8gZGVidWcoKVxuY29uc3QgZGVidWcgPSBkZWJ1Z18xLmRlZmF1bHQoXCJzb2NrZXQuaW8tY2xpZW50OnVybFwiKTsgLy8gZGVidWcoKVxuLyoqXG4gKiBVUkwgcGFyc2VyLlxuICpcbiAqIEBwYXJhbSB1cmkgLSB1cmxcbiAqIEBwYXJhbSBwYXRoIC0gdGhlIHJlcXVlc3QgcGF0aCBvZiB0aGUgY29ubmVjdGlvblxuICogQHBhcmFtIGxvYyAtIEFuIG9iamVjdCBtZWFudCB0byBtaW1pYyB3aW5kb3cubG9jYXRpb24uXG4gKiAgICAgICAgRGVmYXVsdHMgdG8gd2luZG93LmxvY2F0aW9uLlxuICogQHB1YmxpY1xuICovXG5mdW5jdGlvbiB1cmwodXJpLCBwYXRoID0gXCJcIiwgbG9jKSB7XG4gICAgbGV0IG9iaiA9IHVyaTtcbiAgICAvLyBkZWZhdWx0IHRvIHdpbmRvdy5sb2NhdGlvblxuICAgIGxvYyA9IGxvYyB8fCAodHlwZW9mIGxvY2F0aW9uICE9PSBcInVuZGVmaW5lZFwiICYmIGxvY2F0aW9uKTtcbiAgICBpZiAobnVsbCA9PSB1cmkpXG4gICAgICAgIHVyaSA9IGxvYy5wcm90b2NvbCArIFwiLy9cIiArIGxvYy5ob3N0O1xuICAgIC8vIHJlbGF0aXZlIHBhdGggc3VwcG9ydFxuICAgIGlmICh0eXBlb2YgdXJpID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGlmIChcIi9cIiA9PT0gdXJpLmNoYXJBdCgwKSkge1xuICAgICAgICAgICAgaWYgKFwiL1wiID09PSB1cmkuY2hhckF0KDEpKSB7XG4gICAgICAgICAgICAgICAgdXJpID0gbG9jLnByb3RvY29sICsgdXJpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdXJpID0gbG9jLmhvc3QgKyB1cmk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCEvXihodHRwcz98d3NzPyk6XFwvXFwvLy50ZXN0KHVyaSkpIHtcbiAgICAgICAgICAgIGRlYnVnKFwicHJvdG9jb2wtbGVzcyB1cmwgJXNcIiwgdXJpKTtcbiAgICAgICAgICAgIGlmIChcInVuZGVmaW5lZFwiICE9PSB0eXBlb2YgbG9jKSB7XG4gICAgICAgICAgICAgICAgdXJpID0gbG9jLnByb3RvY29sICsgXCIvL1wiICsgdXJpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdXJpID0gXCJodHRwczovL1wiICsgdXJpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIHBhcnNlXG4gICAgICAgIGRlYnVnKFwicGFyc2UgJXNcIiwgdXJpKTtcbiAgICAgICAgb2JqID0gZW5naW5lX2lvX2NsaWVudF8xLnBhcnNlKHVyaSk7XG4gICAgfVxuICAgIC8vIG1ha2Ugc3VyZSB3ZSB0cmVhdCBgbG9jYWxob3N0OjgwYCBhbmQgYGxvY2FsaG9zdGAgZXF1YWxseVxuICAgIGlmICghb2JqLnBvcnQpIHtcbiAgICAgICAgaWYgKC9eKGh0dHB8d3MpJC8udGVzdChvYmoucHJvdG9jb2wpKSB7XG4gICAgICAgICAgICBvYmoucG9ydCA9IFwiODBcIjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICgvXihodHRwfHdzKXMkLy50ZXN0KG9iai5wcm90b2NvbCkpIHtcbiAgICAgICAgICAgIG9iai5wb3J0ID0gXCI0NDNcIjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBvYmoucGF0aCA9IG9iai5wYXRoIHx8IFwiL1wiO1xuICAgIGNvbnN0IGlwdjYgPSBvYmouaG9zdC5pbmRleE9mKFwiOlwiKSAhPT0gLTE7XG4gICAgY29uc3QgaG9zdCA9IGlwdjYgPyBcIltcIiArIG9iai5ob3N0ICsgXCJdXCIgOiBvYmouaG9zdDtcbiAgICAvLyBkZWZpbmUgdW5pcXVlIGlkXG4gICAgb2JqLmlkID0gb2JqLnByb3RvY29sICsgXCI6Ly9cIiArIGhvc3QgKyBcIjpcIiArIG9iai5wb3J0ICsgcGF0aDtcbiAgICAvLyBkZWZpbmUgaHJlZlxuICAgIG9iai5ocmVmID1cbiAgICAgICAgb2JqLnByb3RvY29sICtcbiAgICAgICAgICAgIFwiOi8vXCIgK1xuICAgICAgICAgICAgaG9zdCArXG4gICAgICAgICAgICAobG9jICYmIGxvYy5wb3J0ID09PSBvYmoucG9ydCA/IFwiXCIgOiBcIjpcIiArIG9iai5wb3J0KTtcbiAgICByZXR1cm4gb2JqO1xufVxuZXhwb3J0cy51cmwgPSB1cmw7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuZ2V0SG9zdE5hbWUgPSBnZXRIb3N0TmFtZTtcbmNvbnN0IGRlZmluZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL2RlZmluZVwiKSk7XG5jb25zdCB1dGlsc18xID0gcmVxdWlyZShcIi4vdXRpbHNcIik7XG5jb25zdCB7IFBST0RVQ1RJT04sIERFVkVMT1BNRU5ULCBQUk9EVUNUSU9OX0RPTUFJTiwgREVWRUxPUE1FTlRfRE9NQUlOLCBTVUJfRE9NQUlOUywgUE9SVFMsIH0gPSBkZWZpbmVfMS5kZWZhdWx0O1xuY29uc3QgYXBpVmVyID0gMTtcbmNvbnN0IGhvc3ROYW1lID0gZ2V0SG9zdE5hbWUoKTtcbmNvbnN0IGVudiA9IGdldEVudihob3N0TmFtZSk7XG5jb25zdCBmaWxlcyA9IHtcbiAgICBjbGllbnQ6IFwidGFsa24uY2xpZW50LmpzXCIsXG4gICAgYXBpOiBcInRhbGtuLmFwaS5qc1wiLFxuICAgIHdzV29ya2VyOiBcIndzLmFwaS53b3JrZXIuanNcIixcbiAgICBleHQ6IFwidGFsa24uZXh0LmpzXCIsXG4gICAgY292ZXI6IFwidGFsa24uY292ZXIuanNcIixcbiAgICB0dW5lOiBcInRhbGtuLnR1bmUuanNcIixcbiAgICBjb21wb25lbnRzOiBcInRhbGtuLmNvbXBvbmVudHMuanNcIixcbn07XG5jb25zdCBpc0RldiA9IGVudiA9PT0gREVWRUxPUE1FTlQ7XG5jb25zdCBkb21haW4gPSBlbnYgPT09IFBST0RVQ1RJT04gPyBQUk9EVUNUSU9OX0RPTUFJTiA6IERFVkVMT1BNRU5UX0RPTUFJTjtcbmNvbnN0IHd3d1VSTCA9IGAke1NVQl9ET01BSU5TLldXV30uJHtkb21haW59YDtcbmNvbnN0IGNvdmVyVVJMID0gYCR7U1VCX0RPTUFJTlMuQ09WRVJ9LiR7ZG9tYWlufWA7XG5jb25zdCBhcGlVUkwgPSBgJHtTVUJfRE9NQUlOUy5BUEl9LiR7ZG9tYWlufWA7XG5jb25zdCBhcGlBY2Nlc3NVUkwgPSBpc0RldlxuICAgID8gYCR7ZG9tYWlufToke1BPUlRTLkRFVkVMT1BNRU5UX0FQSX0vJHtmaWxlcy5hcGl9YFxuICAgIDogYCR7YXBpVVJMfS92JHthcGlWZXJ9YDtcbmNvbnN0IGNsaWVudFVSTCA9IGlzRGV2XG4gICAgPyBgJHtkb21haW59OiR7UE9SVFMuREVWRUxPUE1FTlRfQ0xJRU5UfS8ke2ZpbGVzLmNsaWVudH1gXG4gICAgOiBgJHtTVUJfRE9NQUlOUy5DTElFTlR9LiR7ZG9tYWlufWA7XG5jb25zdCBjb21wb25lbnRzVVJMID0gaXNEZXZcbiAgICA/IGAke2RvbWFpbn06JHtQT1JUUy5ERVZFTE9QTUVOVF9DT01QT05FTlRTfS8ke2ZpbGVzLmNvbXBvbmVudHN9YFxuICAgIDogYCR7U1VCX0RPTUFJTlMuQ09NUE9ORU5UU30uJHtkb21haW59YDtcbmNvbnN0IGRlc2NVUkwgPSBgJHtTVUJfRE9NQUlOUy5ERVNDfS4ke2RvbWFpbn1gO1xuY29uc3QgcG9ydGFsVVJMID0gYCR7U1VCX0RPTUFJTlMuUE9SVEFMfS4ke2RvbWFpbn1gO1xuY29uc3QgYXNzZXRzVVJMID0gYCR7U1VCX0RPTUFJTlMuQVNTRVRTfS4ke2RvbWFpbn1gO1xuY29uc3QgYXV0b1VSTCA9IGAke1NVQl9ET01BSU5TLkFVVE99LiR7ZG9tYWlufWA7XG5jb25zdCBleHRVUkwgPSBgJHtTVUJfRE9NQUlOUy5FWFR9LiR7ZG9tYWlufWA7XG5jb25zdCBjb21wVVJMID0gYCR7U1VCX0RPTUFJTlMuQ09NUH0uJHtkb21haW59YDtcbmNvbnN0IG93blVSTCA9IGAke1NVQl9ET01BSU5TLk9XTn0uJHtkb21haW59YDtcbmNvbnN0IG5ld3NVUkwgPSBgJHtTVUJfRE9NQUlOUy5ORVdTfS4ke2RvbWFpbn1gO1xuY29uc3QgdHVuZVVSTCA9IGAke1NVQl9ET01BSU5TLlRVTkV9LiR7ZG9tYWlufWA7XG5jb25zdCBiYW5uZXJVUkwgPSBgJHtTVUJfRE9NQUlOUy5CQU5ORVJ9LiR7ZG9tYWlufWA7XG5jb25zdCB0cmFuc2FjdGlvblVSTCA9IGAke1NVQl9ET01BSU5TLlRSQU5TQUNUSU9OfS4ke2RvbWFpbn1gO1xuY29uc3QgYXV0aFVSTCA9IGAke1NVQl9ET01BSU5TLkFVVEh9LiR7ZG9tYWlufWA7XG5jb25zdCBhc3NldHNJbWdQYXRoID0gYCR7YXNzZXRzVVJMfS9pbWcvYDtcbmNvbnN0IGFzc2V0c0NvdmVyUGF0aCA9IGAke2Fzc2V0c1VSTH0vY292ZXIvYDtcbmNvbnN0IGFzc2V0c0ljb25QYXRoID0gYCR7YXNzZXRzVVJMfS9pY29uL2A7XG5jb25zdCBhc3NldHNKc1BhdGggPSBgJHthc3NldHNVUkx9L2pzL2A7XG5jb25zdCBzZXNzaW9uVVJMID0gYCR7U1VCX0RPTUFJTlMuU0VTU0lPTn0uJHtkb21haW59YDtcbmNvbnN0IGRlc2NyaXB0aW9uID0gXCJ0YWxrbiBjYW4gc2hhcmUgY29tbWVudHMgd2l0aCB1c2VycyB3YXRjaGluZyB0aGUgc2FtZSBXRUIgcGFnZS4gUGxlYXNlIGVuam95IHRoZSB3b3JsZCBvZiB0YWxrbi5cIjtcbmNvbnN0IGZhdmljb24gPSBgaHR0cHM6Ly8ke2Fzc2V0c1VSTH0vZmF2aWNvbi5pY29gO1xuY29uc3QgbHBMYW5ndWFnZXMgPSBbXG4gICAgXCJlblwiLFxuICAgIFwiemhcIixcbiAgICBcImphXCIsXG4gICAgXCJkZVwiLFxuICAgIFwiZnJcIixcbiAgICBcImhpXCIsXG4gICAgXCJwdFwiLFxuICAgIFwiaXRcIixcbiAgICBcInJ1XCIsXG4gICAgXCJrb1wiLFxuICAgIFwiZXNcIixcbiAgICBcImlkXCIsXG4gICAgXCJ0clwiLFxuICAgIFwibmxcIixcbiAgICBcImFyXCIsXG4gICAgXCJ6aC1UV1wiLFxuICAgIFwicGxcIixcbiAgICBcInN2XCIsXG4gICAgXCJ0aFwiLFxuICAgIFwiZmFcIixcbiAgICBcIm5uXCIsXG4gICAgXCJnYVwiLFxuICAgIFwiaGVcIixcbiAgICBcIm1yXCIsXG5dO1xuY29uc3QgZGVmYXVsdEJpcnRoZGF5VW5peHRpbWUgPSAxMDAwMDAwMDAwMDAwO1xuY29uc3QgZmluZE9uZVRocmVhZEFjdGl2ZUhvdXIgPSAxO1xuY29uc3QgZmluZE9uZVBvc3RDbnQgPSAzMDtcbmNvbnN0IGZpbmRPbmVMaW1pdENudCA9IDMwMDtcbmNvbnN0IG9ncEltYWdlcyA9IHtcbiAgICBIdG1sOiBgLy8ke2Fzc2V0c0ltZ1BhdGh9dGFsa25fbG9nb19odG1sLnBuZ2AsXG4gICAgTXVzaWM6IGAvLyR7YXNzZXRzSW1nUGF0aH10YWxrbl9sb2dvX211c2ljLnBuZ2AsXG4gICAgVmlkZW86IGAvLyR7YXNzZXRzSW1nUGF0aH10YWxrbl9sb2dvX3ZpZGVvLnBuZ2AsXG59O1xuY29uc3QgZGVmYXVsdEZhdmljb24gPSBgLy8ke1NVQl9ET01BSU5TLkFTU0VUU30uJHtkb21haW59L2Zhdmljb24uaWNvYDtcbmNvbnN0IGNvbmYgPSB7XG4gICAgZG9tYWluLFxuICAgIGlzRGV2LFxuICAgIGVudixcbiAgICBmaWxlcyxcbiAgICBob3N0TmFtZSxcbiAgICBhcGlVUkwsXG4gICAgYXBpQWNjZXNzVVJMLFxuICAgIGNvdmVyVVJMLFxuICAgIHd3d1VSTCxcbiAgICBkZXNjVVJMLFxuICAgIHBvcnRhbFVSTCxcbiAgICBjbGllbnRVUkwsXG4gICAgYXNzZXRzVVJMLFxuICAgIGF1dG9VUkwsXG4gICAgZXh0VVJMLFxuICAgIGNvbXBVUkwsXG4gICAgb3duVVJMLFxuICAgIG5ld3NVUkwsXG4gICAgdHVuZVVSTCxcbiAgICBiYW5uZXJVUkwsXG4gICAgY29tcG9uZW50c1VSTCxcbiAgICB0cmFuc2FjdGlvblVSTCxcbiAgICBhdXRoVVJMLFxuICAgIGFzc2V0c0ltZ1BhdGgsXG4gICAgYXNzZXRzQ292ZXJQYXRoLFxuICAgIGFzc2V0c0ljb25QYXRoLFxuICAgIGFzc2V0c0pzUGF0aCxcbiAgICBzZXNzaW9uVVJMLFxuICAgIGRlc2NyaXB0aW9uLFxuICAgIGFwaVZlcixcbiAgICBmYXZpY29uLFxuICAgIGxwTGFuZ3VhZ2VzLFxuICAgIGRlZmF1bHRCaXJ0aGRheVVuaXh0aW1lLFxuICAgIGZpbmRPbmVUaHJlYWRBY3RpdmVIb3VyLFxuICAgIGZpbmRPbmVQb3N0Q250LFxuICAgIGZpbmRPbmVMaW1pdENudCxcbiAgICBvZ3BJbWFnZXMsXG4gICAgZGVmYXVsdEZhdmljb24sXG59O1xuZXhwb3J0cy5kZWZhdWx0ID0geyAuLi5jb25mIH07XG5mdW5jdGlvbiBnZXRIb3N0TmFtZSgpIHtcbiAgICBpZiAodXRpbHNfMS5JU19OT0RFKSB7XG4gICAgICAgIC8vIOmBi+eUqO+8muOBvuOBmueSsOWig+WkieaVsOOAgeeEoeOBkeOCjOOBsCBvcy5ob3N0bmFtZSgpXG4gICAgICAgIGNvbnN0IGVudk5hbWUgPSBwcm9jZXNzLmVudj8uSE9TVE5BTUUgfHxcbiAgICAgICAgICAgIHByb2Nlc3MuZW52Py5IT1NUIHx8XG4gICAgICAgICAgICBwcm9jZXNzLmVudj8uTk9ERV9IT1NUTkFNRTtcbiAgICAgICAgaWYgKGVudk5hbWU/LnRyaW0oKSlcbiAgICAgICAgICAgIHJldHVybiBlbnZOYW1lLnRyaW0oKTtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXNcbiAgICAgICAgY29uc3Qgb3MgPSByZXF1aXJlKFwib3NcIik7XG4gICAgICAgIHJldHVybiBvcy5ob3N0bmFtZSgpO1xuICAgIH1cbiAgICBpZiAodXRpbHNfMS5JU19CUk9XU0VSKSB7XG4gICAgICAgIC8vIOODluODqeOCpuOCtu+8muWun+ihjOS4reOBruODm+OCueODiOOBi+OCiVxuICAgICAgICByZXR1cm4gbG9jYXRpb24uaG9zdG5hbWU7XG4gICAgfVxuICAgIC8vIOODleOCqeODvOODq+ODkOODg+OCr1xuICAgIHJldHVybiBcImxvY2FsaG9zdFwiO1xufVxuLy8gVE9ETzogTW92ZSB0byBzZXJ2ZXIgY29uZiggbm90IHVzZSBmcm9tIGNsaWVudCApLlxuZnVuY3Rpb24gZ2V0RW52KGhvc3ROYW1lKSB7XG4gICAgLy8gbm9kZSBzZXJ2ZXIgfCBkb2NrZXJcbiAgICBpZiAodXRpbHNfMS5JU19OT0RFKSB7XG4gICAgICAgIHJldHVybiBob3N0TmFtZSA9PT0gXCJsb2NhbGhvc3RcIlxuICAgICAgICAgICAgPyBkZWZpbmVfMS5kZWZhdWx0LkRFVkVMT1BNRU5UXG4gICAgICAgICAgICA6IGRlZmluZV8xLmRlZmF1bHQuUFJPRFVDVElPTjtcbiAgICB9XG4gICAgcmV0dXJuIGRlZmluZV8xLmRlZmF1bHQuUFJPRFVDVElPTjtcbn1cbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5nZXRDb25uZWN0aW9uc09wdGlvbnMgPSBleHBvcnRzLmluaXQgPSB2b2lkIDA7XG5jb25zdCB1dGlsc18xID0gcmVxdWlyZShcIkBjb21tb24vdXRpbHNcIik7XG5jb25zdCBTZXF1ZW5jZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuLi9TZXF1ZW5jZVwiKSk7XG5jb25zdCBkZWZpbmVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi4vZGVmaW5lXCIpKTtcbmNvbnN0IEJvb3RPcHRpb25fMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi9Cb290T3B0aW9uXCIpKTtcbmV4cG9ydHMuaW5pdCA9IHtcbiAgICB0dW5lSWQ6ICcnLFxuICAgIGNvbm5lY3Rpb246ICcnLFxuICAgIGNvbm5lY3Rpb25zOiBbXSxcbiAgICB0eXBlOiAnJyxcbiAgICBsaXZlQ250OiAwLFxuICAgIGZhdmljb246ICcnLFxuICAgIGdhdGV3YXk6ICcnLFxuICAgIHNlcnZlcjogJycsXG4gICAgYWN0aXZlOiBmYWxzZSxcbiAgICBhdWRpb3M6IFtdLFxuICAgIHZpZGVvczogW11cbn07XG5leHBvcnRzLmdldENvbm5lY3Rpb25zT3B0aW9ucyA9IHtcbiAgICBpc1NlbGZFeGNsdWRlOiBmYWxzZSxcbiAgICBpc1NvcnRVcHBlckxheWVyOiB0cnVlLFxufTtcbmNsYXNzIENoTW9kZWwge1xuICAgIGNvbnN0cnVjdG9yKHBhcmFtcyA9IGV4cG9ydHMuaW5pdCkge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih0aGlzLCBwYXJhbXMpO1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0UGFyZW50Q29ubmVjdGlvbihmaXhDb25uZWN0aW9uKSB7XG4gICAgICAgIGlmIChmaXhDb25uZWN0aW9uID09PSBDaE1vZGVsLnJvb3RDb25uZWN0aW9uKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgbGV0IHJlcGxhY2VkQ29ubmVjdGlvbiA9IGZpeENvbm5lY3Rpb24ucmVwbGFjZSgvLiQvLCAnJyk7XG4gICAgICAgIGNvbnN0IGxhc3RTbGFzaEluZGV4ID0gcmVwbGFjZWRDb25uZWN0aW9uLmxhc3RJbmRleE9mKCcvJyk7XG4gICAgICAgIHJldHVybiByZXBsYWNlZENvbm5lY3Rpb24uc3Vic3RyaW5nKDAsIGxhc3RTbGFzaEluZGV4ICsgMSk7XG4gICAgfVxuICAgIHN0YXRpYyBnZXRUb3BDb25uZWN0aW9uKGNvbm5lY3Rpb24pIHtcbiAgICAgICAgaWYgKGNvbm5lY3Rpb24gPT09IENoTW9kZWwucm9vdENvbm5lY3Rpb24pXG4gICAgICAgICAgICByZXR1cm4gQ2hNb2RlbC5yb290Q29ubmVjdGlvbjtcbiAgICAgICAgY29uc3Qgc2VwID0gdGhpcy5zZXBhcmV0b3I7XG4gICAgICAgIHJldHVybiBgJHtzZXB9JHtjb25uZWN0aW9uLnNwbGl0KHNlcClbMV19JHtzZXB9YDtcbiAgICB9XG4gICAgc3RhdGljIGdldENvbm5lY3Rpb24oY29ubmVjdGlvbikge1xuICAgICAgICByZXR1cm4gQm9vdE9wdGlvbl8xLmRlZmF1bHQuZ2V0Q29ubmVjdGlvbihjb25uZWN0aW9uKTtcbiAgICB9XG4gICAgc3RhdGljIGdldENvbm5lY3Rpb25Gcm9tVXJsKHVybCkge1xuICAgICAgICBjb25zdCBxdWVyeVN0cmluZyA9IHVybC5zcGxpdChcIj9cIilbMV07XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMocXVlcnlTdHJpbmcpO1xuICAgICAgICBjb25zdCByYXdUdW5lSWQgPSBwYXJhbXMuZ2V0KFwidHVuZUlkXCIpO1xuICAgICAgICBpZiAocmF3VHVuZUlkID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gQ2hNb2RlbC5yb290Q29ubmVjdGlvbjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBDaE1vZGVsLmdldENvbm5lY3Rpb25Gcm9tVHVuZUlkKHJhd1R1bmVJZCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc3RhdGljIGdldENvbm5lY3Rpb25Gcm9tVHVuZUlkKHR1bmVJZCkge1xuICAgICAgICBjb25zdCBkZWNvZGVkID0gZGVjb2RlVVJJQ29tcG9uZW50KHR1bmVJZCA/PyBcIlwiKTtcbiAgICAgICAgY29uc3QgZXNjYXBlZFNlcGFyYXRvciA9IHV0aWxzXzEuZ2VuZXJhdGVVbmlxdWVLZXlTZXBhcmF0b3IucmVwbGFjZSgvWy1cXC9cXFxcXiQqKz8uKCl8W1xcXXt9XS9nLCAnXFxcXCQmJyk7XG4gICAgICAgIGNvbnN0IHBhdHRlcm4gPSBuZXcgUmVnRXhwKGBeY29uJHtlc2NhcGVkU2VwYXJhdG9yfSguKj8pJHtlc2NhcGVkU2VwYXJhdG9yfWApO1xuICAgICAgICBjb25zdCBtYXRjaCA9IGRlY29kZWQubWF0Y2gocGF0dGVybik7XG4gICAgICAgIGxldCBjb25uZWN0aW9uID0gbWF0Y2g/LlsxXSA/IG1hdGNoPy5bMV0gOiBDaE1vZGVsLnJvb3RDb25uZWN0aW9uO1xuICAgICAgICBjb25uZWN0aW9uID0gY29ubmVjdGlvbi5zdGFydHNXaXRoKENoTW9kZWwucm9vdENvbm5lY3Rpb24pID8gY29ubmVjdGlvbiA6IGAke0NoTW9kZWwucm9vdENvbm5lY3Rpb259JHtjb25uZWN0aW9ufWA7XG4gICAgICAgIGNvbm5lY3Rpb24gPSBjb25uZWN0aW9uLmVuZHNXaXRoKENoTW9kZWwucm9vdENvbm5lY3Rpb24pID8gY29ubmVjdGlvbiA6IGAke2Nvbm5lY3Rpb259JHtDaE1vZGVsLnJvb3RDb25uZWN0aW9ufWA7XG4gICAgICAgIHJldHVybiBjb25uZWN0aW9uO1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0RmF2aWNvbihob3N0KSB7XG4gICAgICAgIGlmIChob3N0ID09PSBkZWZpbmVfMS5kZWZhdWx0LkRFVkVMT1BNRU5UX0RPTUFJTilcbiAgICAgICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgICBpZiAoaG9zdCA9PT0gQ2hNb2RlbC5yb290Q29ubmVjdGlvbilcbiAgICAgICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgICByZXR1cm4gYCR7aG9zdH0vZmF2aWNvbi5pY29gO1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0Q29ubmVjdGlvbnMoY29ubmVjdGlvbiwgb3B0aW9ucyA9IGV4cG9ydHMuZ2V0Q29ubmVjdGlvbnNPcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IHsgaXNTZWxmRXhjbHVkZSwgaXNTb3J0VXBwZXJMYXllciB9ID0gb3B0aW9ucztcbiAgICAgICAgbGV0IGNvbm5lY3Rpb25zID0gW0NoTW9kZWwucm9vdENvbm5lY3Rpb25dO1xuICAgICAgICBpZiAoY29ubmVjdGlvbiAmJiBjb25uZWN0aW9uICE9PSBDaE1vZGVsLnJvb3RDb25uZWN0aW9uKSB7XG4gICAgICAgICAgICBjb25zdCBjb25uZWN0aW9uQXJyID0gY29ubmVjdGlvbi5zcGxpdChDaE1vZGVsLmNvbm5lY3Rpb25TZXBhcmF0b3IpLmZpbHRlcigocGFydCkgPT4gcGFydCAhPT0gJycpO1xuICAgICAgICAgICAgbGV0IGNvbm5lY3Rpb25QYXJ0ID0gJyc7XG4gICAgICAgICAgICBjb25uZWN0aW9uQXJyLmZvckVhY2goKHNlZ21lbnQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25uZWN0aW9uUGFydCArPSBgJHt0aGlzLnNlcGFyZXRvcn0ke3NlZ21lbnR9YDtcbiAgICAgICAgICAgICAgICBjb25zdCBhZGRDb25uZWN0aW9uID0gYCR7Y29ubmVjdGlvblBhcnR9JHt0aGlzLnNlcGFyZXRvcn1gO1xuICAgICAgICAgICAgICAgIGlmICghKGlzU2VsZkV4Y2x1ZGUgJiYgYWRkQ29ubmVjdGlvbiA9PT0gY29ubmVjdGlvbikpIHtcbiAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbnMucHVzaChhZGRDb25uZWN0aW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNTb3J0VXBwZXJMYXllcikge1xuICAgICAgICAgICAgY29ubmVjdGlvbnMuc29ydCgoYSwgYikgPT4gYS5sZW5ndGggLSBiLmxlbmd0aCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25uZWN0aW9ucy5zb3J0KChhLCBiKSA9PiBiLmxlbmd0aCAtIGEubGVuZ3RoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY29ubmVjdGlvbnM7XG4gICAgfVxuICAgIHN0YXRpYyBnZXRNeUNvbm5lY3Rpb25DbGFzcyhjb25uZWN0aW9ucywgc3RhcnRDb25uZWN0aW9uLCBlbmRDb25uZWN0aW9uKSB7XG4gICAgICAgIGNvbnN0IG15Q29ubmVjdGlvbkNsYXNzID0gW107XG4gICAgICAgIGNvbnN0IGxvb3BDb25uZWN0aW9ucyA9IGNvbm5lY3Rpb25zLnNsaWNlKCkuc29ydCgoYSwgYikgPT4gYS5sZW5ndGggLSBiLmxlbmd0aCk7XG4gICAgICAgIGVuZENvbm5lY3Rpb24gPSBlbmRDb25uZWN0aW9uID8gZW5kQ29ubmVjdGlvbiA6IGxvb3BDb25uZWN0aW9uc1tsb29wQ29ubmVjdGlvbnMubGVuZ3RoIC0gMV07XG4gICAgICAgIGxldCBpc1B1c2ggPSBmYWxzZTtcbiAgICAgICAgZm9yIChjb25zdCBpIGluIGxvb3BDb25uZWN0aW9ucykge1xuICAgICAgICAgICAgaWYgKGNvbm5lY3Rpb25zW2ldID09PSBzdGFydENvbm5lY3Rpb24pIHtcbiAgICAgICAgICAgICAgICBpc1B1c2ggPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGNvbm5lY3Rpb25zW2ldID09PSBlbmRDb25uZWN0aW9uKVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgaWYgKGlzUHVzaCkge1xuICAgICAgICAgICAgICAgIG15Q29ubmVjdGlvbkNsYXNzLnB1c2goY29ubmVjdGlvbnNbaV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBteUNvbm5lY3Rpb25DbGFzcztcbiAgICB9XG4gICAgc3RhdGljIGdldFR5cGUoaG9zdCkge1xuICAgICAgICByZXR1cm4gaG9zdC5zdGFydHNXaXRoKFNlcXVlbmNlXzEuZGVmYXVsdC5IVFRQU19QUk9UT0NPTCkgfHwgaG9zdC5zdGFydHNXaXRoKFNlcXVlbmNlXzEuZGVmYXVsdC5IVFRQX1BST1RPQ09MKSA/IENoTW9kZWwuZGVmdWx0VHlwZSA6IENoTW9kZWwucGxhaW5UeXBlO1xuICAgIH1cbiAgICBzdGF0aWMgaXNNZWRpYUNoKHR5cGUpIHtcbiAgICAgICAgcmV0dXJuIHR5cGUuc3RhcnRzV2l0aCgnYXVkaW8nKSB8fCB0eXBlLnN0YXJ0c1dpdGgoJ3ZpZGVvJyk7XG4gICAgfVxuICAgIHN0YXRpYyBnZXRHYXRld2F5KGNoQ29uZmlnKSB7XG4gICAgICAgIHJldHVybiBjaENvbmZpZyAmJiBjaENvbmZpZy5nYXRld2F5Py5ob3N0ICYmIGNoQ29uZmlnLmdhdGV3YXkucG9ydFxuICAgICAgICAgICAgPyBgJHtjaENvbmZpZy5nYXRld2F5Lmhvc3R9OiR7Y2hDb25maWcuZ2F0ZXdheS5wb3J0fWBcbiAgICAgICAgICAgIDogYDEyNy4wLjAuMToke2RlZmluZV8xLmRlZmF1bHQuUE9SVFMuSU9fUk9PVH1gO1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0U2VydmVyKGNoQ29uZmlnKSB7XG4gICAgICAgIHJldHVybiBjaENvbmZpZyAmJiBjaENvbmZpZy5pb1NlcnZlci5ob3N0ICYmIGNoQ29uZmlnLmlvU2VydmVyLnBvcnRcbiAgICAgICAgICAgID8gYCR7Y2hDb25maWcuaW9TZXJ2ZXIuaG9zdH06JHtjaENvbmZpZy5pb1NlcnZlci5wb3J0fWBcbiAgICAgICAgICAgIDogYDEyNy4wLjAuMToke2RlZmluZV8xLmRlZmF1bHQuUE9SVFMuSU9fUk9PVH1gO1xuICAgIH1cbn1cbkNoTW9kZWwuc2VwYXJldG9yID0gJy8nO1xuQ2hNb2RlbC5yb290Q29ubmVjdGlvbiA9IENoTW9kZWwuc2VwYXJldG9yO1xuQ2hNb2RlbC5jb25uZWN0aW9uU2VwYXJhdG9yID0gJy8nO1xuQ2hNb2RlbC5kZWZhdWx0UHJvdG9jb2wgPSAndGFsa246Oic7XG5DaE1vZGVsLmRlZnVsdFR5cGUgPSAndGV4dC9odG1sJztcbkNoTW9kZWwucGxhaW5UeXBlID0gJ3BsYWluJztcbkNoTW9kZWwuZ2V0Q2hQYXJhbXMgPSAocGFyYW1zKSA9PiB7XG4gICAgY29uc3QgeyB0dW5lSWQsIGNvbm5lY3Rpb246IF9jb25uZWN0aW9uLCBob3N0LCBsaXZlQ250LCBjaENvbmZpZyB9ID0gcGFyYW1zO1xuICAgIGNvbnN0IGNvbm5lY3Rpb24gPSBDaE1vZGVsLmdldENvbm5lY3Rpb24oX2Nvbm5lY3Rpb24pO1xuICAgIGNvbnN0IGNvbm5lY3Rpb25zID0gQ2hNb2RlbC5nZXRDb25uZWN0aW9ucyhjb25uZWN0aW9uKTtcbiAgICBjb25zdCBmYXZpY29uID0gQ2hNb2RlbC5nZXRGYXZpY29uKGhvc3QpO1xuICAgIGNvbnN0IHR5cGUgPSBDaE1vZGVsLmdldFR5cGUoaG9zdCk7XG4gICAgY29uc3QgZ2F0ZXdheSA9IENoTW9kZWwuZ2V0R2F0ZXdheShjaENvbmZpZyk7XG4gICAgY29uc3Qgc2VydmVyID0gQ2hNb2RlbC5nZXRTZXJ2ZXIoY2hDb25maWcpO1xuICAgIHJldHVybiB7XG4gICAgICAgIHR1bmVJZCxcbiAgICAgICAgY29ubmVjdGlvbixcbiAgICAgICAgY29ubmVjdGlvbnMsXG4gICAgICAgIGZhdmljb24sXG4gICAgICAgIHR5cGUsXG4gICAgICAgIGxpdmVDbnQsXG4gICAgICAgIGdhdGV3YXksXG4gICAgICAgIHNlcnZlcixcbiAgICB9O1xufTtcbmV4cG9ydHMuZGVmYXVsdCA9IENoTW9kZWw7XG4iLCJcInVzZSBzdHJpY3RcIjtcbi8qKlxuICogSW5pdGlhbGl6ZSBiYWNrb2ZmIHRpbWVyIHdpdGggYG9wdHNgLlxuICpcbiAqIC0gYG1pbmAgaW5pdGlhbCB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcyBbMTAwXVxuICogLSBgbWF4YCBtYXggdGltZW91dCBbMTAwMDBdXG4gKiAtIGBqaXR0ZXJgIFswXVxuICogLSBgZmFjdG9yYCBbMl1cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0c1xuICogQGFwaSBwdWJsaWNcbiAqL1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5CYWNrb2ZmID0gdm9pZCAwO1xuZnVuY3Rpb24gQmFja29mZihvcHRzKSB7XG4gICAgb3B0cyA9IG9wdHMgfHwge307XG4gICAgdGhpcy5tcyA9IG9wdHMubWluIHx8IDEwMDtcbiAgICB0aGlzLm1heCA9IG9wdHMubWF4IHx8IDEwMDAwO1xuICAgIHRoaXMuZmFjdG9yID0gb3B0cy5mYWN0b3IgfHwgMjtcbiAgICB0aGlzLmppdHRlciA9IG9wdHMuaml0dGVyID4gMCAmJiBvcHRzLmppdHRlciA8PSAxID8gb3B0cy5qaXR0ZXIgOiAwO1xuICAgIHRoaXMuYXR0ZW1wdHMgPSAwO1xufVxuZXhwb3J0cy5CYWNrb2ZmID0gQmFja29mZjtcbi8qKlxuICogUmV0dXJuIHRoZSBiYWNrb2ZmIGR1cmF0aW9uLlxuICpcbiAqIEByZXR1cm4ge051bWJlcn1cbiAqIEBhcGkgcHVibGljXG4gKi9cbkJhY2tvZmYucHJvdG90eXBlLmR1cmF0aW9uID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciBtcyA9IHRoaXMubXMgKiBNYXRoLnBvdyh0aGlzLmZhY3RvciwgdGhpcy5hdHRlbXB0cysrKTtcbiAgICBpZiAodGhpcy5qaXR0ZXIpIHtcbiAgICAgICAgdmFyIHJhbmQgPSBNYXRoLnJhbmRvbSgpO1xuICAgICAgICB2YXIgZGV2aWF0aW9uID0gTWF0aC5mbG9vcihyYW5kICogdGhpcy5qaXR0ZXIgKiBtcyk7XG4gICAgICAgIG1zID0gKE1hdGguZmxvb3IocmFuZCAqIDEwKSAmIDEpID09IDAgPyBtcyAtIGRldmlhdGlvbiA6IG1zICsgZGV2aWF0aW9uO1xuICAgIH1cbiAgICByZXR1cm4gTWF0aC5taW4obXMsIHRoaXMubWF4KSB8IDA7XG59O1xuLyoqXG4gKiBSZXNldCB0aGUgbnVtYmVyIG9mIGF0dGVtcHRzLlxuICpcbiAqIEBhcGkgcHVibGljXG4gKi9cbkJhY2tvZmYucHJvdG90eXBlLnJlc2V0ID0gZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuYXR0ZW1wdHMgPSAwO1xufTtcbi8qKlxuICogU2V0IHRoZSBtaW5pbXVtIGR1cmF0aW9uXG4gKlxuICogQGFwaSBwdWJsaWNcbiAqL1xuQmFja29mZi5wcm90b3R5cGUuc2V0TWluID0gZnVuY3Rpb24gKG1pbikge1xuICAgIHRoaXMubXMgPSBtaW47XG59O1xuLyoqXG4gKiBTZXQgdGhlIG1heGltdW0gZHVyYXRpb25cbiAqXG4gKiBAYXBpIHB1YmxpY1xuICovXG5CYWNrb2ZmLnByb3RvdHlwZS5zZXRNYXggPSBmdW5jdGlvbiAobWF4KSB7XG4gICAgdGhpcy5tYXggPSBtYXg7XG59O1xuLyoqXG4gKiBTZXQgdGhlIGppdHRlclxuICpcbiAqIEBhcGkgcHVibGljXG4gKi9cbkJhY2tvZmYucHJvdG90eXBlLnNldEppdHRlciA9IGZ1bmN0aW9uIChqaXR0ZXIpIHtcbiAgICB0aGlzLmppdHRlciA9IGppdHRlcjtcbn07XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuZGVmYXVsdCA9IGV4cG9ydHMuY29ubmVjdCA9IGV4cG9ydHMuaW8gPSBleHBvcnRzLlNvY2tldCA9IGV4cG9ydHMuTWFuYWdlciA9IGV4cG9ydHMucHJvdG9jb2wgPSB2b2lkIDA7XG5jb25zdCB1cmxfanNfMSA9IHJlcXVpcmUoXCIuL3VybC5qc1wiKTtcbmNvbnN0IG1hbmFnZXJfanNfMSA9IHJlcXVpcmUoXCIuL21hbmFnZXIuanNcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJNYW5hZ2VyXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBtYW5hZ2VyX2pzXzEuTWFuYWdlcjsgfSB9KTtcbmNvbnN0IHNvY2tldF9qc18xID0gcmVxdWlyZShcIi4vc29ja2V0LmpzXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiU29ja2V0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBzb2NrZXRfanNfMS5Tb2NrZXQ7IH0gfSk7XG5jb25zdCBkZWJ1Z18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJkZWJ1Z1wiKSk7IC8vIGRlYnVnKClcbmNvbnN0IGRlYnVnID0gZGVidWdfMS5kZWZhdWx0KFwic29ja2V0LmlvLWNsaWVudFwiKTsgLy8gZGVidWcoKVxuLyoqXG4gKiBNYW5hZ2VycyBjYWNoZS5cbiAqL1xuY29uc3QgY2FjaGUgPSB7fTtcbmZ1bmN0aW9uIGxvb2t1cCh1cmksIG9wdHMpIHtcbiAgICBpZiAodHlwZW9mIHVyaSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICBvcHRzID0gdXJpO1xuICAgICAgICB1cmkgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIG9wdHMgPSBvcHRzIHx8IHt9O1xuICAgIGNvbnN0IHBhcnNlZCA9IHVybF9qc18xLnVybCh1cmksIG9wdHMucGF0aCB8fCBcIi9zb2NrZXQuaW9cIik7XG4gICAgY29uc3Qgc291cmNlID0gcGFyc2VkLnNvdXJjZTtcbiAgICBjb25zdCBpZCA9IHBhcnNlZC5pZDtcbiAgICBjb25zdCBwYXRoID0gcGFyc2VkLnBhdGg7XG4gICAgY29uc3Qgc2FtZU5hbWVzcGFjZSA9IGNhY2hlW2lkXSAmJiBwYXRoIGluIGNhY2hlW2lkXVtcIm5zcHNcIl07XG4gICAgY29uc3QgbmV3Q29ubmVjdGlvbiA9IG9wdHMuZm9yY2VOZXcgfHxcbiAgICAgICAgb3B0c1tcImZvcmNlIG5ldyBjb25uZWN0aW9uXCJdIHx8XG4gICAgICAgIGZhbHNlID09PSBvcHRzLm11bHRpcGxleCB8fFxuICAgICAgICBzYW1lTmFtZXNwYWNlO1xuICAgIGxldCBpbztcbiAgICBpZiAobmV3Q29ubmVjdGlvbikge1xuICAgICAgICBkZWJ1ZyhcImlnbm9yaW5nIHNvY2tldCBjYWNoZSBmb3IgJXNcIiwgc291cmNlKTtcbiAgICAgICAgaW8gPSBuZXcgbWFuYWdlcl9qc18xLk1hbmFnZXIoc291cmNlLCBvcHRzKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGlmICghY2FjaGVbaWRdKSB7XG4gICAgICAgICAgICBkZWJ1ZyhcIm5ldyBpbyBpbnN0YW5jZSBmb3IgJXNcIiwgc291cmNlKTtcbiAgICAgICAgICAgIGNhY2hlW2lkXSA9IG5ldyBtYW5hZ2VyX2pzXzEuTWFuYWdlcihzb3VyY2UsIG9wdHMpO1xuICAgICAgICB9XG4gICAgICAgIGlvID0gY2FjaGVbaWRdO1xuICAgIH1cbiAgICBpZiAocGFyc2VkLnF1ZXJ5ICYmICFvcHRzLnF1ZXJ5KSB7XG4gICAgICAgIG9wdHMucXVlcnkgPSBwYXJzZWQucXVlcnlLZXk7XG4gICAgfVxuICAgIHJldHVybiBpby5zb2NrZXQocGFyc2VkLnBhdGgsIG9wdHMpO1xufVxuZXhwb3J0cy5pbyA9IGxvb2t1cDtcbmV4cG9ydHMuY29ubmVjdCA9IGxvb2t1cDtcbmV4cG9ydHMuZGVmYXVsdCA9IGxvb2t1cDtcbi8vIHNvIHRoYXQgXCJsb29rdXBcIiBjYW4gYmUgdXNlZCBib3RoIGFzIGEgZnVuY3Rpb24gKGUuZy4gYGlvKC4uLilgKSBhbmQgYXMgYVxuLy8gbmFtZXNwYWNlIChlLmcuIGBpby5jb25uZWN0KC4uLilgKSwgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlcbk9iamVjdC5hc3NpZ24obG9va3VwLCB7XG4gICAgTWFuYWdlcjogbWFuYWdlcl9qc18xLk1hbmFnZXIsXG4gICAgU29ja2V0OiBzb2NrZXRfanNfMS5Tb2NrZXQsXG4gICAgaW86IGxvb2t1cCxcbiAgICBjb25uZWN0OiBsb29rdXAsXG59KTtcbi8qKlxuICogUHJvdG9jb2wgdmVyc2lvbi5cbiAqXG4gKiBAcHVibGljXG4gKi9cbnZhciBzb2NrZXRfaW9fcGFyc2VyXzEgPSByZXF1aXJlKFwic29ja2V0LmlvLXBhcnNlclwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcInByb3RvY29sXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBzb2NrZXRfaW9fcGFyc2VyXzEucHJvdG9jb2w7IH0gfSk7XG5cbm1vZHVsZS5leHBvcnRzID0gbG9va3VwO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlRhbGtuQVBJID0gVGFsa25BUEk7XG5jb25zdCBTdG9yZXNEaXNwYXRjaGVyXzEgPSByZXF1aXJlKFwiQGFwaS1jbGllbnQvd3NzV29ya2VyL1N0b3Jlc0Rpc3BhdGNoZXJcIik7XG4vLyB0dW5lSWTjgrnjgrPjg7zjg5fjgZXjgozjgZ9BUEnjgq/jg6njgqTjgqLjg7Pjg4jjga7lrp/oo4VcbmNsYXNzIFNjb3BlZFRhbGtuQ2xpZW50SW1wbCB7XG4gICAgY29uc3RydWN0b3IodHVuZUlkLCBjb25uZWN0aW9uLCBzdG9yZXNEaXNwYXRjaGVyKSB7XG4gICAgICAgIHRoaXMudHVuZUlkID0gdHVuZUlkO1xuICAgICAgICB0aGlzLmNvbm5lY3Rpb24gPSBjb25uZWN0aW9uO1xuICAgICAgICB0aGlzLnN0b3Jlc0Rpc3BhdGNoZXIgPSBzdG9yZXNEaXNwYXRjaGVyO1xuICAgIH1cbiAgICBnZXRTdGF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RvcmVzRGlzcGF0Y2hlci5nZXRTdGF0ZSh0aGlzLnR1bmVJZCk7XG4gICAgfVxuICAgIGFzeW5jIGZldGNoUG9zdHMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0b3Jlc0Rpc3BhdGNoZXIuZmV0Y2hQb3N0cyh0aGlzLnR1bmVJZCk7XG4gICAgfVxuICAgIGFzeW5jIGZldGNoUmFuaygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RvcmVzRGlzcGF0Y2hlci5mZXRjaFJhbmsodGhpcy50dW5lSWQpO1xuICAgIH1cbiAgICBhc3luYyBmZXRjaERldGFpbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RvcmVzRGlzcGF0Y2hlci5mZXRjaERldGFpbCh0aGlzLnR1bmVJZCk7XG4gICAgfVxuICAgIGFzeW5jIHBvc3QoY29udGVudCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdG9yZXNEaXNwYXRjaGVyLnBvc3QoY29udGVudCwgdGhpcy50dW5lSWQpO1xuICAgIH1cbiAgICBzdWJzY3JpYmUoY2FsbGJhY2spIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RvcmVzRGlzcGF0Y2hlci5zdWJzY3JpYmVUb1R1bmVJZCh0aGlzLnR1bmVJZCwgY2FsbGJhY2spO1xuICAgIH1cbiAgICBhc3luYyB1bnR1bmUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0b3Jlc0Rpc3BhdGNoZXIudW50dW5lKHRoaXMuY29ubmVjdGlvbik7XG4gICAgfVxufVxuLy8g6Z2e5ZCM5pyf44OV44Kh44Kv44OI44Oq6Zai5pWwXG5hc3luYyBmdW5jdGlvbiBUYWxrbkFQSShjb25uZWN0aW9uLCBwYXJhbXMpIHtcbiAgICAvLyBTdG9yZXNEaXNwYXRjaGVy44Gu44Kk44Oz44K544K/44Oz44K544KS5L2c5oiQXG4gICAgY29uc3Qgc3RvcmVzRGlzcGF0Y2hlciA9IGF3YWl0ICgwLCBTdG9yZXNEaXNwYXRjaGVyXzEuY3JlYXRlU3RvcmVzRGlzcGF0Y2hlcikoe1xuICAgICAgICBpc1R1bmVTYW1lQ2g6IHRydWUsXG4gICAgICAgIGlzVHVuZU11bHRpQ2g6IHRydWUsXG4gICAgICAgIC4uLnBhcmFtc1xuICAgIH0pO1xuICAgIC8vIOaMh+WumuOBleOCjOOBn2Nvbm5lY3Rpb27jgad0dW5l44KS5a6f6KGMXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBzdG9yZXNEaXNwYXRjaGVyLnR1bmUoY29ubmVjdGlvbiwgcGFyYW1zKTtcbiAgICBpZiAoIXJlc3BvbnNlLnR1bmVJZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byB0dW5lIHRvIGNvbm5lY3Rpb246ICR7Y29ubmVjdGlvbn1gKTtcbiAgICB9XG4gICAgLy8g44Os44K544Od44Oz44K544GL44KJdHVuZUlk44KS5Y+W5b6XXG4gICAgY29uc3QgdHVuZUlkID0gcmVzcG9uc2UudHVuZUlkO1xuICAgIC8vIHR1bmVJZOOCueOCs+ODvOODl+OBleOCjOOBn0FQSeOCr+ODqeOCpOOCouODs+ODiOOCkui/lOOBmVxuICAgIHJldHVybiBuZXcgU2NvcGVkVGFsa25DbGllbnRJbXBsKHR1bmVJZCwgY29ubmVjdGlvbiwgc3RvcmVzRGlzcGF0Y2hlcik7XG59XG5leHBvcnRzLmRlZmF1bHQgPSBUYWxrbkFQSTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuY29uc3QgVGFsa25BUElfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQGFwaS1jbGllbnQvVGFsa25BUElcIikpO1xuLy8g5paw44GX44GE44OV44Kh44Kv44OI44Oq6Zai5pWw44KS5YWs6ZaLXG53aW5kb3cuVGFsa25BUEkgPSBUYWxrbkFQSV8xLmRlZmF1bHQ7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuU29ja2V0ID0gdm9pZCAwO1xuY29uc3QgaW5kZXhfanNfMSA9IHJlcXVpcmUoXCIuL3RyYW5zcG9ydHMvaW5kZXguanNcIik7XG5jb25zdCB1dGlsX2pzXzEgPSByZXF1aXJlKFwiLi91dGlsLmpzXCIpO1xuY29uc3QgcGFyc2Vxc19qc18xID0gcmVxdWlyZShcIi4vY29udHJpYi9wYXJzZXFzLmpzXCIpO1xuY29uc3QgcGFyc2V1cmlfanNfMSA9IHJlcXVpcmUoXCIuL2NvbnRyaWIvcGFyc2V1cmkuanNcIik7XG5jb25zdCBkZWJ1Z18xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJkZWJ1Z1wiKSk7IC8vIGRlYnVnKClcbmNvbnN0IGNvbXBvbmVudF9lbWl0dGVyXzEgPSByZXF1aXJlKFwiQHNvY2tldC5pby9jb21wb25lbnQtZW1pdHRlclwiKTtcbmNvbnN0IGVuZ2luZV9pb19wYXJzZXJfMSA9IHJlcXVpcmUoXCJlbmdpbmUuaW8tcGFyc2VyXCIpO1xuY29uc3Qgd2Vic29ja2V0X2NvbnN0cnVjdG9yX2pzXzEgPSByZXF1aXJlKFwiLi90cmFuc3BvcnRzL3dlYnNvY2tldC1jb25zdHJ1Y3Rvci5qc1wiKTtcbmNvbnN0IGRlYnVnID0gKDAsIGRlYnVnXzEuZGVmYXVsdCkoXCJlbmdpbmUuaW8tY2xpZW50OnNvY2tldFwiKTsgLy8gZGVidWcoKVxuY2xhc3MgU29ja2V0IGV4dGVuZHMgY29tcG9uZW50X2VtaXR0ZXJfMS5FbWl0dGVyIHtcbiAgICAvKipcbiAgICAgKiBTb2NrZXQgY29uc3RydWN0b3IuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge1N0cmluZ3xPYmplY3R9IHVyaSAtIHVyaSBvciBvcHRpb25zXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zXG4gICAgICovXG4gICAgY29uc3RydWN0b3IodXJpLCBvcHRzID0ge30pIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5iaW5hcnlUeXBlID0gd2Vic29ja2V0X2NvbnN0cnVjdG9yX2pzXzEuZGVmYXVsdEJpbmFyeVR5cGU7XG4gICAgICAgIHRoaXMud3JpdGVCdWZmZXIgPSBbXTtcbiAgICAgICAgaWYgKHVyaSAmJiBcIm9iamVjdFwiID09PSB0eXBlb2YgdXJpKSB7XG4gICAgICAgICAgICBvcHRzID0gdXJpO1xuICAgICAgICAgICAgdXJpID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodXJpKSB7XG4gICAgICAgICAgICB1cmkgPSAoMCwgcGFyc2V1cmlfanNfMS5wYXJzZSkodXJpKTtcbiAgICAgICAgICAgIG9wdHMuaG9zdG5hbWUgPSB1cmkuaG9zdDtcbiAgICAgICAgICAgIG9wdHMuc2VjdXJlID0gdXJpLnByb3RvY29sID09PSBcImh0dHBzXCIgfHwgdXJpLnByb3RvY29sID09PSBcIndzc1wiO1xuICAgICAgICAgICAgb3B0cy5wb3J0ID0gdXJpLnBvcnQ7XG4gICAgICAgICAgICBpZiAodXJpLnF1ZXJ5KVxuICAgICAgICAgICAgICAgIG9wdHMucXVlcnkgPSB1cmkucXVlcnk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAob3B0cy5ob3N0KSB7XG4gICAgICAgICAgICBvcHRzLmhvc3RuYW1lID0gKDAsIHBhcnNldXJpX2pzXzEucGFyc2UpKG9wdHMuaG9zdCkuaG9zdDtcbiAgICAgICAgfVxuICAgICAgICAoMCwgdXRpbF9qc18xLmluc3RhbGxUaW1lckZ1bmN0aW9ucykodGhpcywgb3B0cyk7XG4gICAgICAgIHRoaXMuc2VjdXJlID1cbiAgICAgICAgICAgIG51bGwgIT0gb3B0cy5zZWN1cmVcbiAgICAgICAgICAgICAgICA/IG9wdHMuc2VjdXJlXG4gICAgICAgICAgICAgICAgOiB0eXBlb2YgbG9jYXRpb24gIT09IFwidW5kZWZpbmVkXCIgJiYgXCJodHRwczpcIiA9PT0gbG9jYXRpb24ucHJvdG9jb2w7XG4gICAgICAgIGlmIChvcHRzLmhvc3RuYW1lICYmICFvcHRzLnBvcnQpIHtcbiAgICAgICAgICAgIC8vIGlmIG5vIHBvcnQgaXMgc3BlY2lmaWVkIG1hbnVhbGx5LCB1c2UgdGhlIHByb3RvY29sIGRlZmF1bHRcbiAgICAgICAgICAgIG9wdHMucG9ydCA9IHRoaXMuc2VjdXJlID8gXCI0NDNcIiA6IFwiODBcIjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhvc3RuYW1lID1cbiAgICAgICAgICAgIG9wdHMuaG9zdG5hbWUgfHxcbiAgICAgICAgICAgICAgICAodHlwZW9mIGxvY2F0aW9uICE9PSBcInVuZGVmaW5lZFwiID8gbG9jYXRpb24uaG9zdG5hbWUgOiBcImxvY2FsaG9zdFwiKTtcbiAgICAgICAgdGhpcy5wb3J0ID1cbiAgICAgICAgICAgIG9wdHMucG9ydCB8fFxuICAgICAgICAgICAgICAgICh0eXBlb2YgbG9jYXRpb24gIT09IFwidW5kZWZpbmVkXCIgJiYgbG9jYXRpb24ucG9ydFxuICAgICAgICAgICAgICAgICAgICA/IGxvY2F0aW9uLnBvcnRcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnNlY3VyZVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBcIjQ0M1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA6IFwiODBcIik7XG4gICAgICAgIHRoaXMudHJhbnNwb3J0cyA9IG9wdHMudHJhbnNwb3J0cyB8fCBbXG4gICAgICAgICAgICBcInBvbGxpbmdcIixcbiAgICAgICAgICAgIFwid2Vic29ja2V0XCIsXG4gICAgICAgICAgICBcIndlYnRyYW5zcG9ydFwiLFxuICAgICAgICBdO1xuICAgICAgICB0aGlzLndyaXRlQnVmZmVyID0gW107XG4gICAgICAgIHRoaXMucHJldkJ1ZmZlckxlbiA9IDA7XG4gICAgICAgIHRoaXMub3B0cyA9IE9iamVjdC5hc3NpZ24oe1xuICAgICAgICAgICAgcGF0aDogXCIvZW5naW5lLmlvXCIsXG4gICAgICAgICAgICBhZ2VudDogZmFsc2UsXG4gICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IGZhbHNlLFxuICAgICAgICAgICAgdXBncmFkZTogdHJ1ZSxcbiAgICAgICAgICAgIHRpbWVzdGFtcFBhcmFtOiBcInRcIixcbiAgICAgICAgICAgIHJlbWVtYmVyVXBncmFkZTogZmFsc2UsXG4gICAgICAgICAgICBhZGRUcmFpbGluZ1NsYXNoOiB0cnVlLFxuICAgICAgICAgICAgcmVqZWN0VW5hdXRob3JpemVkOiB0cnVlLFxuICAgICAgICAgICAgcGVyTWVzc2FnZURlZmxhdGU6IHtcbiAgICAgICAgICAgICAgICB0aHJlc2hvbGQ6IDEwMjQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdHJhbnNwb3J0T3B0aW9uczoge30sXG4gICAgICAgICAgICBjbG9zZU9uQmVmb3JldW5sb2FkOiBmYWxzZSxcbiAgICAgICAgfSwgb3B0cyk7XG4gICAgICAgIHRoaXMub3B0cy5wYXRoID1cbiAgICAgICAgICAgIHRoaXMub3B0cy5wYXRoLnJlcGxhY2UoL1xcLyQvLCBcIlwiKSArXG4gICAgICAgICAgICAgICAgKHRoaXMub3B0cy5hZGRUcmFpbGluZ1NsYXNoID8gXCIvXCIgOiBcIlwiKTtcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm9wdHMucXVlcnkgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHRoaXMub3B0cy5xdWVyeSA9ICgwLCBwYXJzZXFzX2pzXzEuZGVjb2RlKSh0aGlzLm9wdHMucXVlcnkpO1xuICAgICAgICB9XG4gICAgICAgIC8vIHNldCBvbiBoYW5kc2hha2VcbiAgICAgICAgdGhpcy5pZCA9IG51bGw7XG4gICAgICAgIHRoaXMudXBncmFkZXMgPSBudWxsO1xuICAgICAgICB0aGlzLnBpbmdJbnRlcnZhbCA9IG51bGw7XG4gICAgICAgIHRoaXMucGluZ1RpbWVvdXQgPSBudWxsO1xuICAgICAgICAvLyBzZXQgb24gaGVhcnRiZWF0XG4gICAgICAgIHRoaXMucGluZ1RpbWVvdXRUaW1lciA9IG51bGw7XG4gICAgICAgIGlmICh0eXBlb2YgYWRkRXZlbnRMaXN0ZW5lciA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5vcHRzLmNsb3NlT25CZWZvcmV1bmxvYWQpIHtcbiAgICAgICAgICAgICAgICAvLyBGaXJlZm94IGNsb3NlcyB0aGUgY29ubmVjdGlvbiB3aGVuIHRoZSBcImJlZm9yZXVubG9hZFwiIGV2ZW50IGlzIGVtaXR0ZWQgYnV0IG5vdCBDaHJvbWUuIFRoaXMgZXZlbnQgbGlzdGVuZXJcbiAgICAgICAgICAgICAgICAvLyBlbnN1cmVzIGV2ZXJ5IGJyb3dzZXIgYmVoYXZlcyB0aGUgc2FtZSAobm8gXCJkaXNjb25uZWN0XCIgZXZlbnQgYXQgdGhlIFNvY2tldC5JTyBsZXZlbCB3aGVuIHRoZSBwYWdlIGlzXG4gICAgICAgICAgICAgICAgLy8gY2xvc2VkL3JlbG9hZGVkKVxuICAgICAgICAgICAgICAgIHRoaXMuYmVmb3JldW5sb2FkRXZlbnRMaXN0ZW5lciA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudHJhbnNwb3J0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBzaWxlbnRseSBjbG9zZSB0aGUgdHJhbnNwb3J0XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRyYW5zcG9ydC5yZW1vdmVBbGxMaXN0ZW5lcnMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudHJhbnNwb3J0LmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGFkZEV2ZW50TGlzdGVuZXIoXCJiZWZvcmV1bmxvYWRcIiwgdGhpcy5iZWZvcmV1bmxvYWRFdmVudExpc3RlbmVyLCBmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5ob3N0bmFtZSAhPT0gXCJsb2NhbGhvc3RcIikge1xuICAgICAgICAgICAgICAgIHRoaXMub2ZmbGluZUV2ZW50TGlzdGVuZXIgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25DbG9zZShcInRyYW5zcG9ydCBjbG9zZVwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJuZXR3b3JrIGNvbm5lY3Rpb24gbG9zdFwiLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGFkZEV2ZW50TGlzdGVuZXIoXCJvZmZsaW5lXCIsIHRoaXMub2ZmbGluZUV2ZW50TGlzdGVuZXIsIGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyB0cmFuc3BvcnQgb2YgdGhlIGdpdmVuIHR5cGUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gbmFtZSAtIHRyYW5zcG9ydCBuYW1lXG4gICAgICogQHJldHVybiB7VHJhbnNwb3J0fVxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgY3JlYXRlVHJhbnNwb3J0KG5hbWUpIHtcbiAgICAgICAgZGVidWcoJ2NyZWF0aW5nIHRyYW5zcG9ydCBcIiVzXCInLCBuYW1lKTtcbiAgICAgICAgY29uc3QgcXVlcnkgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLm9wdHMucXVlcnkpO1xuICAgICAgICAvLyBhcHBlbmQgZW5naW5lLmlvIHByb3RvY29sIGlkZW50aWZpZXJcbiAgICAgICAgcXVlcnkuRUlPID0gZW5naW5lX2lvX3BhcnNlcl8xLnByb3RvY29sO1xuICAgICAgICAvLyB0cmFuc3BvcnQgbmFtZVxuICAgICAgICBxdWVyeS50cmFuc3BvcnQgPSBuYW1lO1xuICAgICAgICAvLyBzZXNzaW9uIGlkIGlmIHdlIGFscmVhZHkgaGF2ZSBvbmVcbiAgICAgICAgaWYgKHRoaXMuaWQpXG4gICAgICAgICAgICBxdWVyeS5zaWQgPSB0aGlzLmlkO1xuICAgICAgICBjb25zdCBvcHRzID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5vcHRzLCB7XG4gICAgICAgICAgICBxdWVyeSxcbiAgICAgICAgICAgIHNvY2tldDogdGhpcyxcbiAgICAgICAgICAgIGhvc3RuYW1lOiB0aGlzLmhvc3RuYW1lLFxuICAgICAgICAgICAgc2VjdXJlOiB0aGlzLnNlY3VyZSxcbiAgICAgICAgICAgIHBvcnQ6IHRoaXMucG9ydCxcbiAgICAgICAgfSwgdGhpcy5vcHRzLnRyYW5zcG9ydE9wdGlvbnNbbmFtZV0pO1xuICAgICAgICBkZWJ1ZyhcIm9wdGlvbnM6ICVqXCIsIG9wdHMpO1xuICAgICAgICByZXR1cm4gbmV3IGluZGV4X2pzXzEudHJhbnNwb3J0c1tuYW1lXShvcHRzKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogSW5pdGlhbGl6ZXMgdHJhbnNwb3J0IHRvIHVzZSBhbmQgc3RhcnRzIHByb2JlLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBvcGVuKCkge1xuICAgICAgICBsZXQgdHJhbnNwb3J0O1xuICAgICAgICBpZiAodGhpcy5vcHRzLnJlbWVtYmVyVXBncmFkZSAmJlxuICAgICAgICAgICAgU29ja2V0LnByaW9yV2Vic29ja2V0U3VjY2VzcyAmJlxuICAgICAgICAgICAgdGhpcy50cmFuc3BvcnRzLmluZGV4T2YoXCJ3ZWJzb2NrZXRcIikgIT09IC0xKSB7XG4gICAgICAgICAgICB0cmFuc3BvcnQgPSBcIndlYnNvY2tldFwiO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKDAgPT09IHRoaXMudHJhbnNwb3J0cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIC8vIEVtaXQgZXJyb3Igb24gbmV4dCB0aWNrIHNvIGl0IGNhbiBiZSBsaXN0ZW5lZCB0b1xuICAgICAgICAgICAgdGhpcy5zZXRUaW1lb3V0Rm4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdFJlc2VydmVkKFwiZXJyb3JcIiwgXCJObyB0cmFuc3BvcnRzIGF2YWlsYWJsZVwiKTtcbiAgICAgICAgICAgIH0sIDApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdHJhbnNwb3J0ID0gdGhpcy50cmFuc3BvcnRzWzBdO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVhZHlTdGF0ZSA9IFwib3BlbmluZ1wiO1xuICAgICAgICAvLyBSZXRyeSB3aXRoIHRoZSBuZXh0IHRyYW5zcG9ydCBpZiB0aGUgdHJhbnNwb3J0IGlzIGRpc2FibGVkIChqc29ucDogZmFsc2UpXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0cmFuc3BvcnQgPSB0aGlzLmNyZWF0ZVRyYW5zcG9ydCh0cmFuc3BvcnQpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICBkZWJ1ZyhcImVycm9yIHdoaWxlIGNyZWF0aW5nIHRyYW5zcG9ydDogJXNcIiwgZSk7XG4gICAgICAgICAgICB0aGlzLnRyYW5zcG9ydHMuc2hpZnQoKTtcbiAgICAgICAgICAgIHRoaXMub3BlbigpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRyYW5zcG9ydC5vcGVuKCk7XG4gICAgICAgIHRoaXMuc2V0VHJhbnNwb3J0KHRyYW5zcG9ydCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGN1cnJlbnQgdHJhbnNwb3J0LiBEaXNhYmxlcyB0aGUgZXhpc3Rpbmcgb25lIChpZiBhbnkpLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBzZXRUcmFuc3BvcnQodHJhbnNwb3J0KSB7XG4gICAgICAgIGRlYnVnKFwic2V0dGluZyB0cmFuc3BvcnQgJXNcIiwgdHJhbnNwb3J0Lm5hbWUpO1xuICAgICAgICBpZiAodGhpcy50cmFuc3BvcnQpIHtcbiAgICAgICAgICAgIGRlYnVnKFwiY2xlYXJpbmcgZXhpc3RpbmcgdHJhbnNwb3J0ICVzXCIsIHRoaXMudHJhbnNwb3J0Lm5hbWUpO1xuICAgICAgICAgICAgdGhpcy50cmFuc3BvcnQucmVtb3ZlQWxsTGlzdGVuZXJzKCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gc2V0IHVwIHRyYW5zcG9ydFxuICAgICAgICB0aGlzLnRyYW5zcG9ydCA9IHRyYW5zcG9ydDtcbiAgICAgICAgLy8gc2V0IHVwIHRyYW5zcG9ydCBsaXN0ZW5lcnNcbiAgICAgICAgdHJhbnNwb3J0XG4gICAgICAgICAgICAub24oXCJkcmFpblwiLCB0aGlzLm9uRHJhaW4uYmluZCh0aGlzKSlcbiAgICAgICAgICAgIC5vbihcInBhY2tldFwiLCB0aGlzLm9uUGFja2V0LmJpbmQodGhpcykpXG4gICAgICAgICAgICAub24oXCJlcnJvclwiLCB0aGlzLm9uRXJyb3IuYmluZCh0aGlzKSlcbiAgICAgICAgICAgIC5vbihcImNsb3NlXCIsIChyZWFzb24pID0+IHRoaXMub25DbG9zZShcInRyYW5zcG9ydCBjbG9zZVwiLCByZWFzb24pKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUHJvYmVzIGEgdHJhbnNwb3J0LlxuICAgICAqXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IG5hbWUgLSB0cmFuc3BvcnQgbmFtZVxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJvYmUobmFtZSkge1xuICAgICAgICBkZWJ1ZygncHJvYmluZyB0cmFuc3BvcnQgXCIlc1wiJywgbmFtZSk7XG4gICAgICAgIGxldCB0cmFuc3BvcnQgPSB0aGlzLmNyZWF0ZVRyYW5zcG9ydChuYW1lKTtcbiAgICAgICAgbGV0IGZhaWxlZCA9IGZhbHNlO1xuICAgICAgICBTb2NrZXQucHJpb3JXZWJzb2NrZXRTdWNjZXNzID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IG9uVHJhbnNwb3J0T3BlbiA9ICgpID0+IHtcbiAgICAgICAgICAgIGlmIChmYWlsZWQpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgZGVidWcoJ3Byb2JlIHRyYW5zcG9ydCBcIiVzXCIgb3BlbmVkJywgbmFtZSk7XG4gICAgICAgICAgICB0cmFuc3BvcnQuc2VuZChbeyB0eXBlOiBcInBpbmdcIiwgZGF0YTogXCJwcm9iZVwiIH1dKTtcbiAgICAgICAgICAgIHRyYW5zcG9ydC5vbmNlKFwicGFja2V0XCIsIChtc2cpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZmFpbGVkKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgaWYgKFwicG9uZ1wiID09PSBtc2cudHlwZSAmJiBcInByb2JlXCIgPT09IG1zZy5kYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlYnVnKCdwcm9iZSB0cmFuc3BvcnQgXCIlc1wiIHBvbmcnLCBuYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGdyYWRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVtaXRSZXNlcnZlZChcInVwZ3JhZGluZ1wiLCB0cmFuc3BvcnQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRyYW5zcG9ydClcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgU29ja2V0LnByaW9yV2Vic29ja2V0U3VjY2VzcyA9IFwid2Vic29ja2V0XCIgPT09IHRyYW5zcG9ydC5uYW1lO1xuICAgICAgICAgICAgICAgICAgICBkZWJ1ZygncGF1c2luZyBjdXJyZW50IHRyYW5zcG9ydCBcIiVzXCInLCB0aGlzLnRyYW5zcG9ydC5uYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50cmFuc3BvcnQucGF1c2UoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZhaWxlZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXCJjbG9zZWRcIiA9PT0gdGhpcy5yZWFkeVN0YXRlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnKFwiY2hhbmdpbmcgdHJhbnNwb3J0IGFuZCBzZW5kaW5nIHVwZ3JhZGUgcGFja2V0XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xlYW51cCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRUcmFuc3BvcnQodHJhbnNwb3J0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zcG9ydC5zZW5kKFt7IHR5cGU6IFwidXBncmFkZVwiIH1dKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZW1pdFJlc2VydmVkKFwidXBncmFkZVwiLCB0cmFuc3BvcnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNwb3J0ID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXBncmFkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZsdXNoKCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZGVidWcoJ3Byb2JlIHRyYW5zcG9ydCBcIiVzXCIgZmFpbGVkJywgbmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVyciA9IG5ldyBFcnJvcihcInByb2JlIGVycm9yXCIpO1xuICAgICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgICAgIGVyci50cmFuc3BvcnQgPSB0cmFuc3BvcnQubmFtZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbWl0UmVzZXJ2ZWQoXCJ1cGdyYWRlRXJyb3JcIiwgZXJyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcbiAgICAgICAgZnVuY3Rpb24gZnJlZXplVHJhbnNwb3J0KCkge1xuICAgICAgICAgICAgaWYgKGZhaWxlZClcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAvLyBBbnkgY2FsbGJhY2sgY2FsbGVkIGJ5IHRyYW5zcG9ydCBzaG91bGQgYmUgaWdub3JlZCBzaW5jZSBub3dcbiAgICAgICAgICAgIGZhaWxlZCA9IHRydWU7XG4gICAgICAgICAgICBjbGVhbnVwKCk7XG4gICAgICAgICAgICB0cmFuc3BvcnQuY2xvc2UoKTtcbiAgICAgICAgICAgIHRyYW5zcG9ydCA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSGFuZGxlIGFueSBlcnJvciB0aGF0IGhhcHBlbnMgd2hpbGUgcHJvYmluZ1xuICAgICAgICBjb25zdCBvbmVycm9yID0gKGVycikgPT4ge1xuICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoXCJwcm9iZSBlcnJvcjogXCIgKyBlcnIpO1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgZXJyb3IudHJhbnNwb3J0ID0gdHJhbnNwb3J0Lm5hbWU7XG4gICAgICAgICAgICBmcmVlemVUcmFuc3BvcnQoKTtcbiAgICAgICAgICAgIGRlYnVnKCdwcm9iZSB0cmFuc3BvcnQgXCIlc1wiIGZhaWxlZCBiZWNhdXNlIG9mIGVycm9yOiAlcycsIG5hbWUsIGVycik7XG4gICAgICAgICAgICB0aGlzLmVtaXRSZXNlcnZlZChcInVwZ3JhZGVFcnJvclwiLCBlcnJvcik7XG4gICAgICAgIH07XG4gICAgICAgIGZ1bmN0aW9uIG9uVHJhbnNwb3J0Q2xvc2UoKSB7XG4gICAgICAgICAgICBvbmVycm9yKFwidHJhbnNwb3J0IGNsb3NlZFwiKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBXaGVuIHRoZSBzb2NrZXQgaXMgY2xvc2VkIHdoaWxlIHdlJ3JlIHByb2JpbmdcbiAgICAgICAgZnVuY3Rpb24gb25jbG9zZSgpIHtcbiAgICAgICAgICAgIG9uZXJyb3IoXCJzb2NrZXQgY2xvc2VkXCIpO1xuICAgICAgICB9XG4gICAgICAgIC8vIFdoZW4gdGhlIHNvY2tldCBpcyB1cGdyYWRlZCB3aGlsZSB3ZSdyZSBwcm9iaW5nXG4gICAgICAgIGZ1bmN0aW9uIG9udXBncmFkZSh0bykge1xuICAgICAgICAgICAgaWYgKHRyYW5zcG9ydCAmJiB0by5uYW1lICE9PSB0cmFuc3BvcnQubmFtZSkge1xuICAgICAgICAgICAgICAgIGRlYnVnKCdcIiVzXCIgd29ya3MgLSBhYm9ydGluZyBcIiVzXCInLCB0by5uYW1lLCB0cmFuc3BvcnQubmFtZSk7XG4gICAgICAgICAgICAgICAgZnJlZXplVHJhbnNwb3J0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gUmVtb3ZlIGFsbCBsaXN0ZW5lcnMgb24gdGhlIHRyYW5zcG9ydCBhbmQgb24gc2VsZlxuICAgICAgICBjb25zdCBjbGVhbnVwID0gKCkgPT4ge1xuICAgICAgICAgICAgdHJhbnNwb3J0LnJlbW92ZUxpc3RlbmVyKFwib3BlblwiLCBvblRyYW5zcG9ydE9wZW4pO1xuICAgICAgICAgICAgdHJhbnNwb3J0LnJlbW92ZUxpc3RlbmVyKFwiZXJyb3JcIiwgb25lcnJvcik7XG4gICAgICAgICAgICB0cmFuc3BvcnQucmVtb3ZlTGlzdGVuZXIoXCJjbG9zZVwiLCBvblRyYW5zcG9ydENsb3NlKTtcbiAgICAgICAgICAgIHRoaXMub2ZmKFwiY2xvc2VcIiwgb25jbG9zZSk7XG4gICAgICAgICAgICB0aGlzLm9mZihcInVwZ3JhZGluZ1wiLCBvbnVwZ3JhZGUpO1xuICAgICAgICB9O1xuICAgICAgICB0cmFuc3BvcnQub25jZShcIm9wZW5cIiwgb25UcmFuc3BvcnRPcGVuKTtcbiAgICAgICAgdHJhbnNwb3J0Lm9uY2UoXCJlcnJvclwiLCBvbmVycm9yKTtcbiAgICAgICAgdHJhbnNwb3J0Lm9uY2UoXCJjbG9zZVwiLCBvblRyYW5zcG9ydENsb3NlKTtcbiAgICAgICAgdGhpcy5vbmNlKFwiY2xvc2VcIiwgb25jbG9zZSk7XG4gICAgICAgIHRoaXMub25jZShcInVwZ3JhZGluZ1wiLCBvbnVwZ3JhZGUpO1xuICAgICAgICBpZiAodGhpcy51cGdyYWRlcy5pbmRleE9mKFwid2VidHJhbnNwb3J0XCIpICE9PSAtMSAmJlxuICAgICAgICAgICAgbmFtZSAhPT0gXCJ3ZWJ0cmFuc3BvcnRcIikge1xuICAgICAgICAgICAgLy8gZmF2b3IgV2ViVHJhbnNwb3J0XG4gICAgICAgICAgICB0aGlzLnNldFRpbWVvdXRGbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFmYWlsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNwb3J0Lm9wZW4oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCAyMDApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdHJhbnNwb3J0Lm9wZW4oKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgd2hlbiBjb25uZWN0aW9uIGlzIGRlZW1lZCBvcGVuLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBvbk9wZW4oKSB7XG4gICAgICAgIGRlYnVnKFwic29ja2V0IG9wZW5cIik7XG4gICAgICAgIHRoaXMucmVhZHlTdGF0ZSA9IFwib3BlblwiO1xuICAgICAgICBTb2NrZXQucHJpb3JXZWJzb2NrZXRTdWNjZXNzID0gXCJ3ZWJzb2NrZXRcIiA9PT0gdGhpcy50cmFuc3BvcnQubmFtZTtcbiAgICAgICAgdGhpcy5lbWl0UmVzZXJ2ZWQoXCJvcGVuXCIpO1xuICAgICAgICB0aGlzLmZsdXNoKCk7XG4gICAgICAgIC8vIHdlIGNoZWNrIGZvciBgcmVhZHlTdGF0ZWAgaW4gY2FzZSBhbiBgb3BlbmBcbiAgICAgICAgLy8gbGlzdGVuZXIgYWxyZWFkeSBjbG9zZWQgdGhlIHNvY2tldFxuICAgICAgICBpZiAoXCJvcGVuXCIgPT09IHRoaXMucmVhZHlTdGF0ZSAmJiB0aGlzLm9wdHMudXBncmFkZSkge1xuICAgICAgICAgICAgZGVidWcoXCJzdGFydGluZyB1cGdyYWRlIHByb2Jlc1wiKTtcbiAgICAgICAgICAgIGxldCBpID0gMDtcbiAgICAgICAgICAgIGNvbnN0IGwgPSB0aGlzLnVwZ3JhZGVzLmxlbmd0aDtcbiAgICAgICAgICAgIGZvciAoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9iZSh0aGlzLnVwZ3JhZGVzW2ldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBIYW5kbGVzIGEgcGFja2V0LlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBvblBhY2tldChwYWNrZXQpIHtcbiAgICAgICAgaWYgKFwib3BlbmluZ1wiID09PSB0aGlzLnJlYWR5U3RhdGUgfHxcbiAgICAgICAgICAgIFwib3BlblwiID09PSB0aGlzLnJlYWR5U3RhdGUgfHxcbiAgICAgICAgICAgIFwiY2xvc2luZ1wiID09PSB0aGlzLnJlYWR5U3RhdGUpIHtcbiAgICAgICAgICAgIGRlYnVnKCdzb2NrZXQgcmVjZWl2ZTogdHlwZSBcIiVzXCIsIGRhdGEgXCIlc1wiJywgcGFja2V0LnR5cGUsIHBhY2tldC5kYXRhKTtcbiAgICAgICAgICAgIHRoaXMuZW1pdFJlc2VydmVkKFwicGFja2V0XCIsIHBhY2tldCk7XG4gICAgICAgICAgICAvLyBTb2NrZXQgaXMgbGl2ZSAtIGFueSBwYWNrZXQgY291bnRzXG4gICAgICAgICAgICB0aGlzLmVtaXRSZXNlcnZlZChcImhlYXJ0YmVhdFwiKTtcbiAgICAgICAgICAgIHRoaXMucmVzZXRQaW5nVGltZW91dCgpO1xuICAgICAgICAgICAgc3dpdGNoIChwYWNrZXQudHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgXCJvcGVuXCI6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25IYW5kc2hha2UoSlNPTi5wYXJzZShwYWNrZXQuZGF0YSkpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwicGluZ1wiOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbmRQYWNrZXQoXCJwb25nXCIpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVtaXRSZXNlcnZlZChcInBpbmdcIik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW1pdFJlc2VydmVkKFwicG9uZ1wiKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBcImVycm9yXCI6XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVyciA9IG5ldyBFcnJvcihcInNlcnZlciBlcnJvclwiKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgICAgICBlcnIuY29kZSA9IHBhY2tldC5kYXRhO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uRXJyb3IoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBcIm1lc3NhZ2VcIjpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbWl0UmVzZXJ2ZWQoXCJkYXRhXCIsIHBhY2tldC5kYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbWl0UmVzZXJ2ZWQoXCJtZXNzYWdlXCIsIHBhY2tldC5kYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBkZWJ1ZygncGFja2V0IHJlY2VpdmVkIHdpdGggc29ja2V0IHJlYWR5U3RhdGUgXCIlc1wiJywgdGhpcy5yZWFkeVN0YXRlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgdXBvbiBoYW5kc2hha2UgY29tcGxldGlvbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIC0gaGFuZHNoYWtlIG9ialxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgb25IYW5kc2hha2UoZGF0YSkge1xuICAgICAgICB0aGlzLmVtaXRSZXNlcnZlZChcImhhbmRzaGFrZVwiLCBkYXRhKTtcbiAgICAgICAgdGhpcy5pZCA9IGRhdGEuc2lkO1xuICAgICAgICB0aGlzLnRyYW5zcG9ydC5xdWVyeS5zaWQgPSBkYXRhLnNpZDtcbiAgICAgICAgdGhpcy51cGdyYWRlcyA9IHRoaXMuZmlsdGVyVXBncmFkZXMoZGF0YS51cGdyYWRlcyk7XG4gICAgICAgIHRoaXMucGluZ0ludGVydmFsID0gZGF0YS5waW5nSW50ZXJ2YWw7XG4gICAgICAgIHRoaXMucGluZ1RpbWVvdXQgPSBkYXRhLnBpbmdUaW1lb3V0O1xuICAgICAgICB0aGlzLm1heFBheWxvYWQgPSBkYXRhLm1heFBheWxvYWQ7XG4gICAgICAgIHRoaXMub25PcGVuKCk7XG4gICAgICAgIC8vIEluIGNhc2Ugb3BlbiBoYW5kbGVyIGNsb3NlcyBzb2NrZXRcbiAgICAgICAgaWYgKFwiY2xvc2VkXCIgPT09IHRoaXMucmVhZHlTdGF0ZSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgdGhpcy5yZXNldFBpbmdUaW1lb3V0KCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFNldHMgYW5kIHJlc2V0cyBwaW5nIHRpbWVvdXQgdGltZXIgYmFzZWQgb24gc2VydmVyIHBpbmdzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICByZXNldFBpbmdUaW1lb3V0KCkge1xuICAgICAgICB0aGlzLmNsZWFyVGltZW91dEZuKHRoaXMucGluZ1RpbWVvdXRUaW1lcik7XG4gICAgICAgIHRoaXMucGluZ1RpbWVvdXRUaW1lciA9IHRoaXMuc2V0VGltZW91dEZuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25DbG9zZShcInBpbmcgdGltZW91dFwiKTtcbiAgICAgICAgfSwgdGhpcy5waW5nSW50ZXJ2YWwgKyB0aGlzLnBpbmdUaW1lb3V0KTtcbiAgICAgICAgaWYgKHRoaXMub3B0cy5hdXRvVW5yZWYpIHtcbiAgICAgICAgICAgIHRoaXMucGluZ1RpbWVvdXRUaW1lci51bnJlZigpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENhbGxlZCBvbiBgZHJhaW5gIGV2ZW50XG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIG9uRHJhaW4oKSB7XG4gICAgICAgIHRoaXMud3JpdGVCdWZmZXIuc3BsaWNlKDAsIHRoaXMucHJldkJ1ZmZlckxlbik7XG4gICAgICAgIC8vIHNldHRpbmcgcHJldkJ1ZmZlckxlbiA9IDAgaXMgdmVyeSBpbXBvcnRhbnRcbiAgICAgICAgLy8gZm9yIGV4YW1wbGUsIHdoZW4gdXBncmFkaW5nLCB1cGdyYWRlIHBhY2tldCBpcyBzZW50IG92ZXIsXG4gICAgICAgIC8vIGFuZCBhIG5vbnplcm8gcHJldkJ1ZmZlckxlbiBjb3VsZCBjYXVzZSBwcm9ibGVtcyBvbiBgZHJhaW5gXG4gICAgICAgIHRoaXMucHJldkJ1ZmZlckxlbiA9IDA7XG4gICAgICAgIGlmICgwID09PSB0aGlzLndyaXRlQnVmZmVyLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5lbWl0UmVzZXJ2ZWQoXCJkcmFpblwiKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZmx1c2goKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBGbHVzaCB3cml0ZSBidWZmZXJzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBmbHVzaCgpIHtcbiAgICAgICAgaWYgKFwiY2xvc2VkXCIgIT09IHRoaXMucmVhZHlTdGF0ZSAmJlxuICAgICAgICAgICAgdGhpcy50cmFuc3BvcnQud3JpdGFibGUgJiZcbiAgICAgICAgICAgICF0aGlzLnVwZ3JhZGluZyAmJlxuICAgICAgICAgICAgdGhpcy53cml0ZUJ1ZmZlci5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhY2tldHMgPSB0aGlzLmdldFdyaXRhYmxlUGFja2V0cygpO1xuICAgICAgICAgICAgZGVidWcoXCJmbHVzaGluZyAlZCBwYWNrZXRzIGluIHNvY2tldFwiLCBwYWNrZXRzLmxlbmd0aCk7XG4gICAgICAgICAgICB0aGlzLnRyYW5zcG9ydC5zZW5kKHBhY2tldHMpO1xuICAgICAgICAgICAgLy8ga2VlcCB0cmFjayBvZiBjdXJyZW50IGxlbmd0aCBvZiB3cml0ZUJ1ZmZlclxuICAgICAgICAgICAgLy8gc3BsaWNlIHdyaXRlQnVmZmVyIGFuZCBjYWxsYmFja0J1ZmZlciBvbiBgZHJhaW5gXG4gICAgICAgICAgICB0aGlzLnByZXZCdWZmZXJMZW4gPSBwYWNrZXRzLmxlbmd0aDtcbiAgICAgICAgICAgIHRoaXMuZW1pdFJlc2VydmVkKFwiZmx1c2hcIik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogRW5zdXJlIHRoZSBlbmNvZGVkIHNpemUgb2YgdGhlIHdyaXRlQnVmZmVyIGlzIGJlbG93IHRoZSBtYXhQYXlsb2FkIHZhbHVlIHNlbnQgYnkgdGhlIHNlcnZlciAob25seSBmb3IgSFRUUFxuICAgICAqIGxvbmctcG9sbGluZylcbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgZ2V0V3JpdGFibGVQYWNrZXRzKCkge1xuICAgICAgICBjb25zdCBzaG91bGRDaGVja1BheWxvYWRTaXplID0gdGhpcy5tYXhQYXlsb2FkICYmXG4gICAgICAgICAgICB0aGlzLnRyYW5zcG9ydC5uYW1lID09PSBcInBvbGxpbmdcIiAmJlxuICAgICAgICAgICAgdGhpcy53cml0ZUJ1ZmZlci5sZW5ndGggPiAxO1xuICAgICAgICBpZiAoIXNob3VsZENoZWNrUGF5bG9hZFNpemUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLndyaXRlQnVmZmVyO1xuICAgICAgICB9XG4gICAgICAgIGxldCBwYXlsb2FkU2l6ZSA9IDE7IC8vIGZpcnN0IHBhY2tldCB0eXBlXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy53cml0ZUJ1ZmZlci5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMud3JpdGVCdWZmZXJbaV0uZGF0YTtcbiAgICAgICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICAgICAgcGF5bG9hZFNpemUgKz0gKDAsIHV0aWxfanNfMS5ieXRlTGVuZ3RoKShkYXRhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpID4gMCAmJiBwYXlsb2FkU2l6ZSA+IHRoaXMubWF4UGF5bG9hZCkge1xuICAgICAgICAgICAgICAgIGRlYnVnKFwib25seSBzZW5kICVkIG91dCBvZiAlZCBwYWNrZXRzXCIsIGksIHRoaXMud3JpdGVCdWZmZXIubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy53cml0ZUJ1ZmZlci5zbGljZSgwLCBpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBheWxvYWRTaXplICs9IDI7IC8vIHNlcGFyYXRvciArIHBhY2tldCB0eXBlXG4gICAgICAgIH1cbiAgICAgICAgZGVidWcoXCJwYXlsb2FkIHNpemUgaXMgJWQgKG1heDogJWQpXCIsIHBheWxvYWRTaXplLCB0aGlzLm1heFBheWxvYWQpO1xuICAgICAgICByZXR1cm4gdGhpcy53cml0ZUJ1ZmZlcjtcbiAgICB9XG4gICAgLyoqXG4gICAgICogU2VuZHMgYSBtZXNzYWdlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IG1zZyAtIG1lc3NhZ2UuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2sgZnVuY3Rpb24uXG4gICAgICogQHJldHVybiB7U29ja2V0fSBmb3IgY2hhaW5pbmcuXG4gICAgICovXG4gICAgd3JpdGUobXNnLCBvcHRpb25zLCBmbikge1xuICAgICAgICB0aGlzLnNlbmRQYWNrZXQoXCJtZXNzYWdlXCIsIG1zZywgb3B0aW9ucywgZm4pO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgc2VuZChtc2csIG9wdGlvbnMsIGZuKSB7XG4gICAgICAgIHRoaXMuc2VuZFBhY2tldChcIm1lc3NhZ2VcIiwgbXNnLCBvcHRpb25zLCBmbik7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZW5kcyBhIHBhY2tldC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSB0eXBlOiBwYWNrZXQgdHlwZS5cbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gZGF0YS5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucy5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmbiAtIGNhbGxiYWNrIGZ1bmN0aW9uLlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgc2VuZFBhY2tldCh0eXBlLCBkYXRhLCBvcHRpb25zLCBmbikge1xuICAgICAgICBpZiAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgZGF0YSkge1xuICAgICAgICAgICAgZm4gPSBkYXRhO1xuICAgICAgICAgICAgZGF0YSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoXCJmdW5jdGlvblwiID09PSB0eXBlb2Ygb3B0aW9ucykge1xuICAgICAgICAgICAgZm4gPSBvcHRpb25zO1xuICAgICAgICAgICAgb3B0aW9ucyA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFwiY2xvc2luZ1wiID09PSB0aGlzLnJlYWR5U3RhdGUgfHwgXCJjbG9zZWRcIiA9PT0gdGhpcy5yZWFkeVN0YXRlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gICAgICAgIG9wdGlvbnMuY29tcHJlc3MgPSBmYWxzZSAhPT0gb3B0aW9ucy5jb21wcmVzcztcbiAgICAgICAgY29uc3QgcGFja2V0ID0ge1xuICAgICAgICAgICAgdHlwZTogdHlwZSxcbiAgICAgICAgICAgIGRhdGE6IGRhdGEsXG4gICAgICAgICAgICBvcHRpb25zOiBvcHRpb25zLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmVtaXRSZXNlcnZlZChcInBhY2tldENyZWF0ZVwiLCBwYWNrZXQpO1xuICAgICAgICB0aGlzLndyaXRlQnVmZmVyLnB1c2gocGFja2V0KTtcbiAgICAgICAgaWYgKGZuKVxuICAgICAgICAgICAgdGhpcy5vbmNlKFwiZmx1c2hcIiwgZm4pO1xuICAgICAgICB0aGlzLmZsdXNoKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENsb3NlcyB0aGUgY29ubmVjdGlvbi5cbiAgICAgKi9cbiAgICBjbG9zZSgpIHtcbiAgICAgICAgY29uc3QgY2xvc2UgPSAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uQ2xvc2UoXCJmb3JjZWQgY2xvc2VcIik7XG4gICAgICAgICAgICBkZWJ1ZyhcInNvY2tldCBjbG9zaW5nIC0gdGVsbGluZyB0cmFuc3BvcnQgdG8gY2xvc2VcIik7XG4gICAgICAgICAgICB0aGlzLnRyYW5zcG9ydC5jbG9zZSgpO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBjbGVhbnVwQW5kQ2xvc2UgPSAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9mZihcInVwZ3JhZGVcIiwgY2xlYW51cEFuZENsb3NlKTtcbiAgICAgICAgICAgIHRoaXMub2ZmKFwidXBncmFkZUVycm9yXCIsIGNsZWFudXBBbmRDbG9zZSk7XG4gICAgICAgICAgICBjbG9zZSgpO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCB3YWl0Rm9yVXBncmFkZSA9ICgpID0+IHtcbiAgICAgICAgICAgIC8vIHdhaXQgZm9yIHVwZ3JhZGUgdG8gZmluaXNoIHNpbmNlIHdlIGNhbid0IHNlbmQgcGFja2V0cyB3aGlsZSBwYXVzaW5nIGEgdHJhbnNwb3J0XG4gICAgICAgICAgICB0aGlzLm9uY2UoXCJ1cGdyYWRlXCIsIGNsZWFudXBBbmRDbG9zZSk7XG4gICAgICAgICAgICB0aGlzLm9uY2UoXCJ1cGdyYWRlRXJyb3JcIiwgY2xlYW51cEFuZENsb3NlKTtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKFwib3BlbmluZ1wiID09PSB0aGlzLnJlYWR5U3RhdGUgfHwgXCJvcGVuXCIgPT09IHRoaXMucmVhZHlTdGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5yZWFkeVN0YXRlID0gXCJjbG9zaW5nXCI7XG4gICAgICAgICAgICBpZiAodGhpcy53cml0ZUJ1ZmZlci5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uY2UoXCJkcmFpblwiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnVwZ3JhZGluZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2FpdEZvclVwZ3JhZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMudXBncmFkaW5nKSB7XG4gICAgICAgICAgICAgICAgd2FpdEZvclVwZ3JhZGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGNsb3NlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENhbGxlZCB1cG9uIHRyYW5zcG9ydCBlcnJvclxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBvbkVycm9yKGVycikge1xuICAgICAgICBkZWJ1ZyhcInNvY2tldCBlcnJvciAlalwiLCBlcnIpO1xuICAgICAgICBTb2NrZXQucHJpb3JXZWJzb2NrZXRTdWNjZXNzID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZW1pdFJlc2VydmVkKFwiZXJyb3JcIiwgZXJyKTtcbiAgICAgICAgdGhpcy5vbkNsb3NlKFwidHJhbnNwb3J0IGVycm9yXCIsIGVycik7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENhbGxlZCB1cG9uIHRyYW5zcG9ydCBjbG9zZS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgb25DbG9zZShyZWFzb24sIGRlc2NyaXB0aW9uKSB7XG4gICAgICAgIGlmIChcIm9wZW5pbmdcIiA9PT0gdGhpcy5yZWFkeVN0YXRlIHx8XG4gICAgICAgICAgICBcIm9wZW5cIiA9PT0gdGhpcy5yZWFkeVN0YXRlIHx8XG4gICAgICAgICAgICBcImNsb3NpbmdcIiA9PT0gdGhpcy5yZWFkeVN0YXRlKSB7XG4gICAgICAgICAgICBkZWJ1Zygnc29ja2V0IGNsb3NlIHdpdGggcmVhc29uOiBcIiVzXCInLCByZWFzb24pO1xuICAgICAgICAgICAgLy8gY2xlYXIgdGltZXJzXG4gICAgICAgICAgICB0aGlzLmNsZWFyVGltZW91dEZuKHRoaXMucGluZ1RpbWVvdXRUaW1lcik7XG4gICAgICAgICAgICAvLyBzdG9wIGV2ZW50IGZyb20gZmlyaW5nIGFnYWluIGZvciB0cmFuc3BvcnRcbiAgICAgICAgICAgIHRoaXMudHJhbnNwb3J0LnJlbW92ZUFsbExpc3RlbmVycyhcImNsb3NlXCIpO1xuICAgICAgICAgICAgLy8gZW5zdXJlIHRyYW5zcG9ydCB3b24ndCBzdGF5IG9wZW5cbiAgICAgICAgICAgIHRoaXMudHJhbnNwb3J0LmNsb3NlKCk7XG4gICAgICAgICAgICAvLyBpZ25vcmUgZnVydGhlciB0cmFuc3BvcnQgY29tbXVuaWNhdGlvblxuICAgICAgICAgICAgdGhpcy50cmFuc3BvcnQucmVtb3ZlQWxsTGlzdGVuZXJzKCk7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHJlbW92ZUV2ZW50TGlzdGVuZXIgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgIHJlbW92ZUV2ZW50TGlzdGVuZXIoXCJiZWZvcmV1bmxvYWRcIiwgdGhpcy5iZWZvcmV1bmxvYWRFdmVudExpc3RlbmVyLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgcmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm9mZmxpbmVcIiwgdGhpcy5vZmZsaW5lRXZlbnRMaXN0ZW5lciwgZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gc2V0IHJlYWR5IHN0YXRlXG4gICAgICAgICAgICB0aGlzLnJlYWR5U3RhdGUgPSBcImNsb3NlZFwiO1xuICAgICAgICAgICAgLy8gY2xlYXIgc2Vzc2lvbiBpZFxuICAgICAgICAgICAgdGhpcy5pZCA9IG51bGw7XG4gICAgICAgICAgICAvLyBlbWl0IGNsb3NlIGV2ZW50XG4gICAgICAgICAgICB0aGlzLmVtaXRSZXNlcnZlZChcImNsb3NlXCIsIHJlYXNvbiwgZGVzY3JpcHRpb24pO1xuICAgICAgICAgICAgLy8gY2xlYW4gYnVmZmVycyBhZnRlciwgc28gdXNlcnMgY2FuIHN0aWxsXG4gICAgICAgICAgICAvLyBncmFiIHRoZSBidWZmZXJzIG9uIGBjbG9zZWAgZXZlbnRcbiAgICAgICAgICAgIHRoaXMud3JpdGVCdWZmZXIgPSBbXTtcbiAgICAgICAgICAgIHRoaXMucHJldkJ1ZmZlckxlbiA9IDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogRmlsdGVycyB1cGdyYWRlcywgcmV0dXJuaW5nIG9ubHkgdGhvc2UgbWF0Y2hpbmcgY2xpZW50IHRyYW5zcG9ydHMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0FycmF5fSB1cGdyYWRlcyAtIHNlcnZlciB1cGdyYWRlc1xuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgZmlsdGVyVXBncmFkZXModXBncmFkZXMpIHtcbiAgICAgICAgY29uc3QgZmlsdGVyZWRVcGdyYWRlcyA9IFtdO1xuICAgICAgICBsZXQgaSA9IDA7XG4gICAgICAgIGNvbnN0IGogPSB1cGdyYWRlcy5sZW5ndGg7XG4gICAgICAgIGZvciAoOyBpIDwgajsgaSsrKSB7XG4gICAgICAgICAgICBpZiAofnRoaXMudHJhbnNwb3J0cy5pbmRleE9mKHVwZ3JhZGVzW2ldKSlcbiAgICAgICAgICAgICAgICBmaWx0ZXJlZFVwZ3JhZGVzLnB1c2godXBncmFkZXNbaV0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmaWx0ZXJlZFVwZ3JhZGVzO1xuICAgIH1cbn1cbmV4cG9ydHMuU29ja2V0ID0gU29ja2V0O1xuU29ja2V0LnByb3RvY29sID0gZW5naW5lX2lvX3BhcnNlcl8xLnByb3RvY29sO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnN0YXR1c0Rpc3BhdGNoZWQgPSBleHBvcnRzLnN0YXR1c0Rpc3BhdGNoaW5nID0gZXhwb3J0cy5zdGF0dXNSZXNwb25zZWQgPSBleHBvcnRzLnN0YXR1c1Jlc3BvbnNpbmcgPSBleHBvcnRzLnN0YXR1c1JlcXVlc3RpbmcgPSBleHBvcnRzLnN0YXR1c1VuVHVubmluZyA9IGV4cG9ydHMuc3RhdHVzVHVuZWQgPSBleHBvcnRzLnN0YXR1c1R1bm5pbmcgPSB2b2lkIDA7XG5jb25zdCBUb1NlcnZlcl8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCIuL1RvU2VydmVyXCIpKTtcbmV4cG9ydHMuc3RhdHVzVHVubmluZyA9ICd0dW5uaW5nJztcbmV4cG9ydHMuc3RhdHVzVHVuZWQgPSAndHVuZWQnO1xuZXhwb3J0cy5zdGF0dXNVblR1bm5pbmcgPSAndW50dW5uaW5nJztcbmV4cG9ydHMuc3RhdHVzUmVxdWVzdGluZyA9ICdyZXF1ZXN0aW5nJztcbmV4cG9ydHMuc3RhdHVzUmVzcG9uc2luZyA9ICdyZXNwb25zaW5nJztcbmV4cG9ydHMuc3RhdHVzUmVzcG9uc2VkID0gJ3Jlc3BvbnNlZCc7XG5leHBvcnRzLnN0YXR1c0Rpc3BhdGNoaW5nID0gJ2Rpc3BhdGNoaW5nJztcbmV4cG9ydHMuc3RhdHVzRGlzcGF0Y2hlZCA9ICdkaXNwYXRjaGVkJztcbi8vIE1FTU86IOODr+ODvOOCq+ODvOOBr+ODr+ODvOOCq+ODvOOCkueUn+aIkOOBp+OBjeOCi1xuY2xhc3MgV3NzV29ya2VyIHtcbiAgICBjb25zdHJ1Y3Rvcih3b3JrZXIpIHtcbiAgICAgICAgdGhpcy5vbk1lc3NhZ2UgPSB0aGlzLm9uTWVzc2FnZS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLm9uTWVzc2FnZUVycm9yID0gdGhpcy5vbk1lc3NhZ2VFcnJvci5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLnBvc3RNZXNzYWdlID0gdGhpcy5wb3N0TWVzc2FnZS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLndvcmtlciA9IHdvcmtlcjtcbiAgICAgICAgdGhpcy53b3JrZXIub25lcnJvciA9IHRoaXMub25NZXNzYWdlRXJyb3I7XG4gICAgICAgIHRoaXMud29ya2VyLm9ubWVzc2FnZSA9IHRoaXMub25NZXNzYWdlO1xuICAgICAgICB0aGlzLnRvU2VydmVyID0gbmV3IFRvU2VydmVyXzEuZGVmYXVsdCh0aGlzKTtcbiAgICB9XG4gICAgcG9zdE1lc3NhZ2UoeyBwaWQsIHR1bmVJZCwgbWV0aG9kLCBzZXJ2ZXJUb0FwaVR5cGUsIGFwaVN0YXRlIH0pIHtcbiAgICAgICAgaWYgKHBpZCAmJiB0dW5lSWQgJiYgbWV0aG9kKSB7XG4gICAgICAgICAgICB0aGlzLndvcmtlci5wb3N0TWVzc2FnZSh7IHBpZCwgdHVuZUlkLCBtZXRob2QsIHNlcnZlclRvQXBpVHlwZSwgYXBpU3RhdGUgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgb25NZXNzYWdlKGUpIHtcbiAgICAgICAgY29uc3QgeyBwaWQsIHR1bmVJZCwgbWV0aG9kLCBzZXJ2ZXJUb0FwaVR5cGUsIGFwaVN0YXRlIH0gPSBlLmRhdGE7XG4gICAgICAgIGlmIChwaWQgJiYgdHVuZUlkICYmIG1ldGhvZCAmJiBhcGlTdGF0ZSkge1xuICAgICAgICAgICAgdGhpcy50b1NlcnZlci5leGUocGlkLCB0dW5lSWQsIG1ldGhvZCwgYXBpU3RhdGUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIG9uTWVzc2FnZUVycm9yKGUpIHtcbiAgICAgICAgY29uc29sZS53YXJuKGUpO1xuICAgIH1cbn1cbmV4cG9ydHMuZGVmYXVsdCA9IFdzc1dvcmtlcjtcbm5ldyBXc3NXb3JrZXIoc2VsZik7XG4iLCJcInVzZSBzdHJpY3RcIjtcbi8vIGltcG9ydGVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2dhbGtuL3F1ZXJ5c3RyaW5nXG4vKipcbiAqIENvbXBpbGVzIGEgcXVlcnlzdHJpbmdcbiAqIFJldHVybnMgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3RcbiAqXG4gKiBAcGFyYW0ge09iamVjdH1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmRlY29kZSA9IGV4cG9ydHMuZW5jb2RlID0gdm9pZCAwO1xuZnVuY3Rpb24gZW5jb2RlKG9iaikge1xuICAgIGxldCBzdHIgPSAnJztcbiAgICBmb3IgKGxldCBpIGluIG9iaikge1xuICAgICAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGkpKSB7XG4gICAgICAgICAgICBpZiAoc3RyLmxlbmd0aClcbiAgICAgICAgICAgICAgICBzdHIgKz0gJyYnO1xuICAgICAgICAgICAgc3RyICs9IGVuY29kZVVSSUNvbXBvbmVudChpKSArICc9JyArIGVuY29kZVVSSUNvbXBvbmVudChvYmpbaV0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBzdHI7XG59XG5leHBvcnRzLmVuY29kZSA9IGVuY29kZTtcbi8qKlxuICogUGFyc2VzIGEgc2ltcGxlIHF1ZXJ5c3RyaW5nIGludG8gYW4gb2JqZWN0XG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHFzXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gZGVjb2RlKHFzKSB7XG4gICAgbGV0IHFyeSA9IHt9O1xuICAgIGxldCBwYWlycyA9IHFzLnNwbGl0KCcmJyk7XG4gICAgZm9yIChsZXQgaSA9IDAsIGwgPSBwYWlycy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgbGV0IHBhaXIgPSBwYWlyc1tpXS5zcGxpdCgnPScpO1xuICAgICAgICBxcnlbZGVjb2RlVVJJQ29tcG9uZW50KHBhaXJbMF0pXSA9IGRlY29kZVVSSUNvbXBvbmVudChwYWlyWzFdKTtcbiAgICB9XG4gICAgcmV0dXJuIHFyeTtcbn1cbmV4cG9ydHMuZGVjb2RlID0gZGVjb2RlO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLldTID0gdm9pZCAwO1xuY29uc3QgdHJhbnNwb3J0X2pzXzEgPSByZXF1aXJlKFwiLi4vdHJhbnNwb3J0LmpzXCIpO1xuY29uc3QgeWVhc3RfanNfMSA9IHJlcXVpcmUoXCIuLi9jb250cmliL3llYXN0LmpzXCIpO1xuY29uc3QgdXRpbF9qc18xID0gcmVxdWlyZShcIi4uL3V0aWwuanNcIik7XG5jb25zdCB3ZWJzb2NrZXRfY29uc3RydWN0b3JfanNfMSA9IHJlcXVpcmUoXCIuL3dlYnNvY2tldC1jb25zdHJ1Y3Rvci5qc1wiKTtcbmNvbnN0IGRlYnVnXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcImRlYnVnXCIpKTsgLy8gZGVidWcoKVxuY29uc3QgZW5naW5lX2lvX3BhcnNlcl8xID0gcmVxdWlyZShcImVuZ2luZS5pby1wYXJzZXJcIik7XG5jb25zdCBkZWJ1ZyA9ICgwLCBkZWJ1Z18xLmRlZmF1bHQpKFwiZW5naW5lLmlvLWNsaWVudDp3ZWJzb2NrZXRcIik7IC8vIGRlYnVnKClcbi8vIGRldGVjdCBSZWFjdE5hdGl2ZSBlbnZpcm9ubWVudFxuY29uc3QgaXNSZWFjdE5hdGl2ZSA9IHR5cGVvZiBuYXZpZ2F0b3IgIT09IFwidW5kZWZpbmVkXCIgJiZcbiAgICB0eXBlb2YgbmF2aWdhdG9yLnByb2R1Y3QgPT09IFwic3RyaW5nXCIgJiZcbiAgICBuYXZpZ2F0b3IucHJvZHVjdC50b0xvd2VyQ2FzZSgpID09PSBcInJlYWN0bmF0aXZlXCI7XG5jbGFzcyBXUyBleHRlbmRzIHRyYW5zcG9ydF9qc18xLlRyYW5zcG9ydCB7XG4gICAgLyoqXG4gICAgICogV2ViU29ja2V0IHRyYW5zcG9ydCBjb25zdHJ1Y3Rvci5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gY29ubmVjdGlvbiBvcHRpb25zXG4gICAgICogQHByb3RlY3RlZFxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIob3B0cyk7XG4gICAgICAgIHRoaXMuc3VwcG9ydHNCaW5hcnkgPSAhb3B0cy5mb3JjZUJhc2U2NDtcbiAgICB9XG4gICAgZ2V0IG5hbWUoKSB7XG4gICAgICAgIHJldHVybiBcIndlYnNvY2tldFwiO1xuICAgIH1cbiAgICBkb09wZW4oKSB7XG4gICAgICAgIGlmICghdGhpcy5jaGVjaygpKSB7XG4gICAgICAgICAgICAvLyBsZXQgcHJvYmUgdGltZW91dFxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHVyaSA9IHRoaXMudXJpKCk7XG4gICAgICAgIGNvbnN0IHByb3RvY29scyA9IHRoaXMub3B0cy5wcm90b2NvbHM7XG4gICAgICAgIC8vIFJlYWN0IE5hdGl2ZSBvbmx5IHN1cHBvcnRzIHRoZSAnaGVhZGVycycgb3B0aW9uLCBhbmQgd2lsbCBwcmludCBhIHdhcm5pbmcgaWYgYW55dGhpbmcgZWxzZSBpcyBwYXNzZWRcbiAgICAgICAgY29uc3Qgb3B0cyA9IGlzUmVhY3ROYXRpdmVcbiAgICAgICAgICAgID8ge31cbiAgICAgICAgICAgIDogKDAsIHV0aWxfanNfMS5waWNrKSh0aGlzLm9wdHMsIFwiYWdlbnRcIiwgXCJwZXJNZXNzYWdlRGVmbGF0ZVwiLCBcInBmeFwiLCBcImtleVwiLCBcInBhc3NwaHJhc2VcIiwgXCJjZXJ0XCIsIFwiY2FcIiwgXCJjaXBoZXJzXCIsIFwicmVqZWN0VW5hdXRob3JpemVkXCIsIFwibG9jYWxBZGRyZXNzXCIsIFwicHJvdG9jb2xWZXJzaW9uXCIsIFwib3JpZ2luXCIsIFwibWF4UGF5bG9hZFwiLCBcImZhbWlseVwiLCBcImNoZWNrU2VydmVySWRlbnRpdHlcIik7XG4gICAgICAgIGlmICh0aGlzLm9wdHMuZXh0cmFIZWFkZXJzKSB7XG4gICAgICAgICAgICBvcHRzLmhlYWRlcnMgPSB0aGlzLm9wdHMuZXh0cmFIZWFkZXJzO1xuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0aGlzLndzID1cbiAgICAgICAgICAgICAgICB3ZWJzb2NrZXRfY29uc3RydWN0b3JfanNfMS51c2luZ0Jyb3dzZXJXZWJTb2NrZXQgJiYgIWlzUmVhY3ROYXRpdmVcbiAgICAgICAgICAgICAgICAgICAgPyBwcm90b2NvbHNcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbmV3IHdlYnNvY2tldF9jb25zdHJ1Y3Rvcl9qc18xLldlYlNvY2tldCh1cmksIHByb3RvY29scylcbiAgICAgICAgICAgICAgICAgICAgICAgIDogbmV3IHdlYnNvY2tldF9jb25zdHJ1Y3Rvcl9qc18xLldlYlNvY2tldCh1cmkpXG4gICAgICAgICAgICAgICAgICAgIDogbmV3IHdlYnNvY2tldF9jb25zdHJ1Y3Rvcl9qc18xLldlYlNvY2tldCh1cmksIHByb3RvY29scywgb3B0cyk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZW1pdFJlc2VydmVkKFwiZXJyb3JcIiwgZXJyKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLndzLmJpbmFyeVR5cGUgPSB0aGlzLnNvY2tldC5iaW5hcnlUeXBlO1xuICAgICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXJzKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEFkZHMgZXZlbnQgbGlzdGVuZXJzIHRvIHRoZSBzb2NrZXRcbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgYWRkRXZlbnRMaXN0ZW5lcnMoKSB7XG4gICAgICAgIHRoaXMud3Mub25vcGVuID0gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMub3B0cy5hdXRvVW5yZWYpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndzLl9zb2NrZXQudW5yZWYoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMub25PcGVuKCk7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMud3Mub25jbG9zZSA9IChjbG9zZUV2ZW50KSA9PiB0aGlzLm9uQ2xvc2Uoe1xuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwid2Vic29ja2V0IGNvbm5lY3Rpb24gY2xvc2VkXCIsXG4gICAgICAgICAgICBjb250ZXh0OiBjbG9zZUV2ZW50LFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy53cy5vbm1lc3NhZ2UgPSAoZXYpID0+IHRoaXMub25EYXRhKGV2LmRhdGEpO1xuICAgICAgICB0aGlzLndzLm9uZXJyb3IgPSAoZSkgPT4gdGhpcy5vbkVycm9yKFwid2Vic29ja2V0IGVycm9yXCIsIGUpO1xuICAgIH1cbiAgICB3cml0ZShwYWNrZXRzKSB7XG4gICAgICAgIHRoaXMud3JpdGFibGUgPSBmYWxzZTtcbiAgICAgICAgLy8gZW5jb2RlUGFja2V0IGVmZmljaWVudCBhcyBpdCB1c2VzIFdTIGZyYW1pbmdcbiAgICAgICAgLy8gbm8gbmVlZCBmb3IgZW5jb2RlUGF5bG9hZFxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhY2tldHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHBhY2tldCA9IHBhY2tldHNbaV07XG4gICAgICAgICAgICBjb25zdCBsYXN0UGFja2V0ID0gaSA9PT0gcGFja2V0cy5sZW5ndGggLSAxO1xuICAgICAgICAgICAgKDAsIGVuZ2luZV9pb19wYXJzZXJfMS5lbmNvZGVQYWNrZXQpKHBhY2tldCwgdGhpcy5zdXBwb3J0c0JpbmFyeSwgKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBhbHdheXMgY3JlYXRlIGEgbmV3IG9iamVjdCAoR0gtNDM3KVxuICAgICAgICAgICAgICAgIGNvbnN0IG9wdHMgPSB7fTtcbiAgICAgICAgICAgICAgICBpZiAoIXdlYnNvY2tldF9jb25zdHJ1Y3Rvcl9qc18xLnVzaW5nQnJvd3NlcldlYlNvY2tldCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAocGFja2V0Lm9wdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdHMuY29tcHJlc3MgPSBwYWNrZXQub3B0aW9ucy5jb21wcmVzcztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5vcHRzLnBlck1lc3NhZ2VEZWZsYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsZW4gPSBcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiBkYXRhID8gQnVmZmVyLmJ5dGVMZW5ndGgoZGF0YSkgOiBkYXRhLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsZW4gPCB0aGlzLm9wdHMucGVyTWVzc2FnZURlZmxhdGUudGhyZXNob2xkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0cy5jb21wcmVzcyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIFNvbWV0aW1lcyB0aGUgd2Vic29ja2V0IGhhcyBhbHJlYWR5IGJlZW4gY2xvc2VkIGJ1dCB0aGUgYnJvd3NlciBkaWRuJ3RcbiAgICAgICAgICAgICAgICAvLyBoYXZlIGEgY2hhbmNlIG9mIGluZm9ybWluZyB1cyBhYm91dCBpdCB5ZXQsIGluIHRoYXQgY2FzZSBzZW5kIHdpbGxcbiAgICAgICAgICAgICAgICAvLyB0aHJvdyBhbiBlcnJvclxuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh3ZWJzb2NrZXRfY29uc3RydWN0b3JfanNfMS51c2luZ0Jyb3dzZXJXZWJTb2NrZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFR5cGVFcnJvciBpcyB0aHJvd24gd2hlbiBwYXNzaW5nIHRoZSBzZWNvbmQgYXJndW1lbnQgb24gU2FmYXJpXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndzLnNlbmQoZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndzLnNlbmQoZGF0YSwgb3B0cyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgZGVidWcoXCJ3ZWJzb2NrZXQgY2xvc2VkIGJlZm9yZSBvbmNsb3NlIGV2ZW50XCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAobGFzdFBhY2tldCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBmYWtlIGRyYWluXG4gICAgICAgICAgICAgICAgICAgIC8vIGRlZmVyIHRvIG5leHQgdGljayB0byBhbGxvdyBTb2NrZXQgdG8gY2xlYXIgd3JpdGVCdWZmZXJcbiAgICAgICAgICAgICAgICAgICAgKDAsIHdlYnNvY2tldF9jb25zdHJ1Y3Rvcl9qc18xLm5leHRUaWNrKSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRhYmxlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZW1pdFJlc2VydmVkKFwiZHJhaW5cIik7XG4gICAgICAgICAgICAgICAgICAgIH0sIHRoaXMuc2V0VGltZW91dEZuKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBkb0Nsb3NlKCkge1xuICAgICAgICBpZiAodHlwZW9mIHRoaXMud3MgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgIHRoaXMud3MuY2xvc2UoKTtcbiAgICAgICAgICAgIHRoaXMud3MgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEdlbmVyYXRlcyB1cmkgZm9yIGNvbm5lY3Rpb24uXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHVyaSgpIHtcbiAgICAgICAgY29uc3Qgc2NoZW1hID0gdGhpcy5vcHRzLnNlY3VyZSA/IFwid3NzXCIgOiBcIndzXCI7XG4gICAgICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5xdWVyeSB8fCB7fTtcbiAgICAgICAgLy8gYXBwZW5kIHRpbWVzdGFtcCB0byBVUklcbiAgICAgICAgaWYgKHRoaXMub3B0cy50aW1lc3RhbXBSZXF1ZXN0cykge1xuICAgICAgICAgICAgcXVlcnlbdGhpcy5vcHRzLnRpbWVzdGFtcFBhcmFtXSA9ICgwLCB5ZWFzdF9qc18xLnllYXN0KSgpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGNvbW11bmljYXRlIGJpbmFyeSBzdXBwb3J0IGNhcGFiaWxpdGllc1xuICAgICAgICBpZiAoIXRoaXMuc3VwcG9ydHNCaW5hcnkpIHtcbiAgICAgICAgICAgIHF1ZXJ5LmI2NCA9IDE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlVXJpKHNjaGVtYSwgcXVlcnkpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBGZWF0dXJlIGRldGVjdGlvbiBmb3IgV2ViU29ja2V0LlxuICAgICAqXG4gICAgICogQHJldHVybiB7Qm9vbGVhbn0gd2hldGhlciB0aGlzIHRyYW5zcG9ydCBpcyBhdmFpbGFibGUuXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBjaGVjaygpIHtcbiAgICAgICAgcmV0dXJuICEhd2Vic29ja2V0X2NvbnN0cnVjdG9yX2pzXzEuV2ViU29ja2V0O1xuICAgIH1cbn1cbmV4cG9ydHMuV1MgPSBXUztcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuY29uc3QgbW9kZWxzXzEgPSByZXF1aXJlKFwiQGNvbW1vbi9tb2RlbHNcIik7XG5leHBvcnRzLmRlZmF1bHQgPSAoc3RhdGUgPSBtb2RlbHNfMS5pbml0cy5jaCwgYWN0aW9uKSA9PiB7XG4gICAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgICAgICBjYXNlIFwiU0VSVkVSX1RPX0FQSVtCUk9BRENBU1RdOnBvc3RzXCI6XG4gICAgICAgICAgICBpZiAoYWN0aW9uLnBvc3RzWzBdKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgLi4uc3RhdGUsIGxhdGVzdFBvc3Q6IGFjdGlvbi5wb3N0c1swXSB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBpZiAoYWN0aW9uLnR1bmVDaCkge1xuICAgICAgICAgICAgICAgIGlmIChzdGF0ZS50dW5lSWQgPT09ICcnICYmIGFjdGlvbi50dW5lQ2gudHVuZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IC4uLmFjdGlvbi50dW5lQ2ggfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHN0YXRlLnR1bmVJZCAhPT0gJycgJiYgc3RhdGUudHVuZUlkID09PSBhY3Rpb24udHVuZUNoLnR1bmVJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyAuLi5hY3Rpb24udHVuZUNoIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChzdGF0ZS5jb25uZWN0aW9uID09PSBhY3Rpb24udHVuZUNoLmNvbm5lY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgLi4uc3RhdGUsIGxpdmVDbnQ6IGFjdGlvbi50dW5lQ2gubGl2ZUNudCB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICByZXR1cm4gc3RhdGU7XG59O1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19kZWZQcm9wID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xudmFyIF9fZ2V0T3duUHJvcERlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xudmFyIF9fZ2V0T3duUHJvcE5hbWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM7XG52YXIgX19oYXNPd25Qcm9wID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbnZhciBfX2V4cG9ydCA9ICh0YXJnZXQsIGFsbCkgPT4ge1xuICBmb3IgKHZhciBuYW1lIGluIGFsbClcbiAgICBfX2RlZlByb3AodGFyZ2V0LCBuYW1lLCB7IGdldDogYWxsW25hbWVdLCBlbnVtZXJhYmxlOiB0cnVlIH0pO1xufTtcbnZhciBfX2NvcHlQcm9wcyA9ICh0bywgZnJvbSwgZXhjZXB0LCBkZXNjKSA9PiB7XG4gIGlmIChmcm9tICYmIHR5cGVvZiBmcm9tID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBmcm9tID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICBmb3IgKGxldCBrZXkgb2YgX19nZXRPd25Qcm9wTmFtZXMoZnJvbSkpXG4gICAgICBpZiAoIV9faGFzT3duUHJvcC5jYWxsKHRvLCBrZXkpICYmIGtleSAhPT0gZXhjZXB0KVxuICAgICAgICBfX2RlZlByb3AodG8sIGtleSwgeyBnZXQ6ICgpID0+IGZyb21ba2V5XSwgZW51bWVyYWJsZTogIShkZXNjID0gX19nZXRPd25Qcm9wRGVzYyhmcm9tLCBrZXkpKSB8fCBkZXNjLmVudW1lcmFibGUgfSk7XG4gIH1cbiAgcmV0dXJuIHRvO1xufTtcbnZhciBfX3RvQ29tbW9uSlMgPSAobW9kKSA9PiBfX2NvcHlQcm9wcyhfX2RlZlByb3Aoe30sIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pLCBtb2QpO1xuXG4vLyBzcmMvaW5kZXgudHNcbnZhciBzcmNfZXhwb3J0cyA9IHt9O1xuX19leHBvcnQoc3JjX2V4cG9ydHMsIHtcbiAgX19ET19OT1RfVVNFX19BY3Rpb25UeXBlczogKCkgPT4gYWN0aW9uVHlwZXNfZGVmYXVsdCxcbiAgYXBwbHlNaWRkbGV3YXJlOiAoKSA9PiBhcHBseU1pZGRsZXdhcmUsXG4gIGJpbmRBY3Rpb25DcmVhdG9yczogKCkgPT4gYmluZEFjdGlvbkNyZWF0b3JzLFxuICBjb21iaW5lUmVkdWNlcnM6ICgpID0+IGNvbWJpbmVSZWR1Y2VycyxcbiAgY29tcG9zZTogKCkgPT4gY29tcG9zZSxcbiAgY3JlYXRlU3RvcmU6ICgpID0+IGNyZWF0ZVN0b3JlLFxuICBpc0FjdGlvbjogKCkgPT4gaXNBY3Rpb24sXG4gIGlzUGxhaW5PYmplY3Q6ICgpID0+IGlzUGxhaW5PYmplY3QsXG4gIGxlZ2FjeV9jcmVhdGVTdG9yZTogKCkgPT4gbGVnYWN5X2NyZWF0ZVN0b3JlXG59KTtcbm1vZHVsZS5leHBvcnRzID0gX190b0NvbW1vbkpTKHNyY19leHBvcnRzKTtcblxuLy8gc3JjL3V0aWxzL2Zvcm1hdFByb2RFcnJvck1lc3NhZ2UudHNcbmZ1bmN0aW9uIGZvcm1hdFByb2RFcnJvck1lc3NhZ2UoY29kZSkge1xuICByZXR1cm4gYE1pbmlmaWVkIFJlZHV4IGVycm9yICMke2NvZGV9OyB2aXNpdCBodHRwczovL3JlZHV4LmpzLm9yZy9FcnJvcnM/Y29kZT0ke2NvZGV9IGZvciB0aGUgZnVsbCBtZXNzYWdlIG9yIHVzZSB0aGUgbm9uLW1pbmlmaWVkIGRldiBlbnZpcm9ubWVudCBmb3IgZnVsbCBlcnJvcnMuIGA7XG59XG5cbi8vIHNyYy91dGlscy9zeW1ib2wtb2JzZXJ2YWJsZS50c1xudmFyICQkb2JzZXJ2YWJsZSA9IC8qIEBfX1BVUkVfXyAqLyAoKCkgPT4gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIFN5bWJvbC5vYnNlcnZhYmxlIHx8IFwiQEBvYnNlcnZhYmxlXCIpKCk7XG52YXIgc3ltYm9sX29ic2VydmFibGVfZGVmYXVsdCA9ICQkb2JzZXJ2YWJsZTtcblxuLy8gc3JjL3V0aWxzL2FjdGlvblR5cGVzLnRzXG52YXIgcmFuZG9tU3RyaW5nID0gKCkgPT4gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDcpLnNwbGl0KFwiXCIpLmpvaW4oXCIuXCIpO1xudmFyIEFjdGlvblR5cGVzID0ge1xuICBJTklUOiBgQEByZWR1eC9JTklUJHsvKiBAX19QVVJFX18gKi8gcmFuZG9tU3RyaW5nKCl9YCxcbiAgUkVQTEFDRTogYEBAcmVkdXgvUkVQTEFDRSR7LyogQF9fUFVSRV9fICovIHJhbmRvbVN0cmluZygpfWAsXG4gIFBST0JFX1VOS05PV05fQUNUSU9OOiAoKSA9PiBgQEByZWR1eC9QUk9CRV9VTktOT1dOX0FDVElPTiR7cmFuZG9tU3RyaW5nKCl9YFxufTtcbnZhciBhY3Rpb25UeXBlc19kZWZhdWx0ID0gQWN0aW9uVHlwZXM7XG5cbi8vIHNyYy91dGlscy9pc1BsYWluT2JqZWN0LnRzXG5mdW5jdGlvbiBpc1BsYWluT2JqZWN0KG9iaikge1xuICBpZiAodHlwZW9mIG9iaiAhPT0gXCJvYmplY3RcIiB8fCBvYmogPT09IG51bGwpXG4gICAgcmV0dXJuIGZhbHNlO1xuICBsZXQgcHJvdG8gPSBvYmo7XG4gIHdoaWxlIChPYmplY3QuZ2V0UHJvdG90eXBlT2YocHJvdG8pICE9PSBudWxsKSB7XG4gICAgcHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YocHJvdG8pO1xuICB9XG4gIHJldHVybiBPYmplY3QuZ2V0UHJvdG90eXBlT2Yob2JqKSA9PT0gcHJvdG8gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKG9iaikgPT09IG51bGw7XG59XG5cbi8vIHNyYy91dGlscy9raW5kT2YudHNcbmZ1bmN0aW9uIG1pbmlLaW5kT2YodmFsKSB7XG4gIGlmICh2YWwgPT09IHZvaWQgMClcbiAgICByZXR1cm4gXCJ1bmRlZmluZWRcIjtcbiAgaWYgKHZhbCA9PT0gbnVsbClcbiAgICByZXR1cm4gXCJudWxsXCI7XG4gIGNvbnN0IHR5cGUgPSB0eXBlb2YgdmFsO1xuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlIFwiYm9vbGVhblwiOlxuICAgIGNhc2UgXCJzdHJpbmdcIjpcbiAgICBjYXNlIFwibnVtYmVyXCI6XG4gICAgY2FzZSBcInN5bWJvbFwiOlxuICAgIGNhc2UgXCJmdW5jdGlvblwiOiB7XG4gICAgICByZXR1cm4gdHlwZTtcbiAgICB9XG4gIH1cbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsKSlcbiAgICByZXR1cm4gXCJhcnJheVwiO1xuICBpZiAoaXNEYXRlKHZhbCkpXG4gICAgcmV0dXJuIFwiZGF0ZVwiO1xuICBpZiAoaXNFcnJvcih2YWwpKVxuICAgIHJldHVybiBcImVycm9yXCI7XG4gIGNvbnN0IGNvbnN0cnVjdG9yTmFtZSA9IGN0b3JOYW1lKHZhbCk7XG4gIHN3aXRjaCAoY29uc3RydWN0b3JOYW1lKSB7XG4gICAgY2FzZSBcIlN5bWJvbFwiOlxuICAgIGNhc2UgXCJQcm9taXNlXCI6XG4gICAgY2FzZSBcIldlYWtNYXBcIjpcbiAgICBjYXNlIFwiV2Vha1NldFwiOlxuICAgIGNhc2UgXCJNYXBcIjpcbiAgICBjYXNlIFwiU2V0XCI6XG4gICAgICByZXR1cm4gY29uc3RydWN0b3JOYW1lO1xuICB9XG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsKS5zbGljZSg4LCAtMSkudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9cXHMvZywgXCJcIik7XG59XG5mdW5jdGlvbiBjdG9yTmFtZSh2YWwpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWwuY29uc3RydWN0b3IgPT09IFwiZnVuY3Rpb25cIiA/IHZhbC5jb25zdHJ1Y3Rvci5uYW1lIDogbnVsbDtcbn1cbmZ1bmN0aW9uIGlzRXJyb3IodmFsKSB7XG4gIHJldHVybiB2YWwgaW5zdGFuY2VvZiBFcnJvciB8fCB0eXBlb2YgdmFsLm1lc3NhZ2UgPT09IFwic3RyaW5nXCIgJiYgdmFsLmNvbnN0cnVjdG9yICYmIHR5cGVvZiB2YWwuY29uc3RydWN0b3Iuc3RhY2tUcmFjZUxpbWl0ID09PSBcIm51bWJlclwiO1xufVxuZnVuY3Rpb24gaXNEYXRlKHZhbCkge1xuICBpZiAodmFsIGluc3RhbmNlb2YgRGF0ZSlcbiAgICByZXR1cm4gdHJ1ZTtcbiAgcmV0dXJuIHR5cGVvZiB2YWwudG9EYXRlU3RyaW5nID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIHZhbC5nZXREYXRlID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIHZhbC5zZXREYXRlID09PSBcImZ1bmN0aW9uXCI7XG59XG5mdW5jdGlvbiBraW5kT2YodmFsKSB7XG4gIGxldCB0eXBlT2ZWYWwgPSB0eXBlb2YgdmFsO1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgdHlwZU9mVmFsID0gbWluaUtpbmRPZih2YWwpO1xuICB9XG4gIHJldHVybiB0eXBlT2ZWYWw7XG59XG5cbi8vIHNyYy9jcmVhdGVTdG9yZS50c1xuZnVuY3Rpb24gY3JlYXRlU3RvcmUocmVkdWNlciwgcHJlbG9hZGVkU3RhdGUsIGVuaGFuY2VyKSB7XG4gIGlmICh0eXBlb2YgcmVkdWNlciAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiA/IGZvcm1hdFByb2RFcnJvck1lc3NhZ2UoMikgOiBgRXhwZWN0ZWQgdGhlIHJvb3QgcmVkdWNlciB0byBiZSBhIGZ1bmN0aW9uLiBJbnN0ZWFkLCByZWNlaXZlZDogJyR7a2luZE9mKHJlZHVjZXIpfSdgKTtcbiAgfVxuICBpZiAodHlwZW9mIHByZWxvYWRlZFN0YXRlID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIGVuaGFuY2VyID09PSBcImZ1bmN0aW9uXCIgfHwgdHlwZW9mIGVuaGFuY2VyID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIGFyZ3VtZW50c1szXSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiA/IGZvcm1hdFByb2RFcnJvck1lc3NhZ2UoMCkgOiBcIkl0IGxvb2tzIGxpa2UgeW91IGFyZSBwYXNzaW5nIHNldmVyYWwgc3RvcmUgZW5oYW5jZXJzIHRvIGNyZWF0ZVN0b3JlKCkuIFRoaXMgaXMgbm90IHN1cHBvcnRlZC4gSW5zdGVhZCwgY29tcG9zZSB0aGVtIHRvZ2V0aGVyIHRvIGEgc2luZ2xlIGZ1bmN0aW9uLiBTZWUgaHR0cHM6Ly9yZWR1eC5qcy5vcmcvdHV0b3JpYWxzL2Z1bmRhbWVudGFscy9wYXJ0LTQtc3RvcmUjY3JlYXRpbmctYS1zdG9yZS13aXRoLWVuaGFuY2VycyBmb3IgYW4gZXhhbXBsZS5cIik7XG4gIH1cbiAgaWYgKHR5cGVvZiBwcmVsb2FkZWRTdGF0ZSA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBlbmhhbmNlciA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgIGVuaGFuY2VyID0gcHJlbG9hZGVkU3RhdGU7XG4gICAgcHJlbG9hZGVkU3RhdGUgPSB2b2lkIDA7XG4gIH1cbiAgaWYgKHR5cGVvZiBlbmhhbmNlciAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgIGlmICh0eXBlb2YgZW5oYW5jZXIgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiA/IGZvcm1hdFByb2RFcnJvck1lc3NhZ2UoMSkgOiBgRXhwZWN0ZWQgdGhlIGVuaGFuY2VyIHRvIGJlIGEgZnVuY3Rpb24uIEluc3RlYWQsIHJlY2VpdmVkOiAnJHtraW5kT2YoZW5oYW5jZXIpfSdgKTtcbiAgICB9XG4gICAgcmV0dXJuIGVuaGFuY2VyKGNyZWF0ZVN0b3JlKShyZWR1Y2VyLCBwcmVsb2FkZWRTdGF0ZSk7XG4gIH1cbiAgbGV0IGN1cnJlbnRSZWR1Y2VyID0gcmVkdWNlcjtcbiAgbGV0IGN1cnJlbnRTdGF0ZSA9IHByZWxvYWRlZFN0YXRlO1xuICBsZXQgY3VycmVudExpc3RlbmVycyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7XG4gIGxldCBuZXh0TGlzdGVuZXJzID0gY3VycmVudExpc3RlbmVycztcbiAgbGV0IGxpc3RlbmVySWRDb3VudGVyID0gMDtcbiAgbGV0IGlzRGlzcGF0Y2hpbmcgPSBmYWxzZTtcbiAgZnVuY3Rpb24gZW5zdXJlQ2FuTXV0YXRlTmV4dExpc3RlbmVycygpIHtcbiAgICBpZiAobmV4dExpc3RlbmVycyA9PT0gY3VycmVudExpc3RlbmVycykge1xuICAgICAgbmV4dExpc3RlbmVycyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7XG4gICAgICBjdXJyZW50TGlzdGVuZXJzLmZvckVhY2goKGxpc3RlbmVyLCBrZXkpID0+IHtcbiAgICAgICAgbmV4dExpc3RlbmVycy5zZXQoa2V5LCBsaXN0ZW5lcik7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgZnVuY3Rpb24gZ2V0U3RhdGUoKSB7XG4gICAgaWYgKGlzRGlzcGF0Y2hpbmcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJwcm9kdWN0aW9uXCIgPyBmb3JtYXRQcm9kRXJyb3JNZXNzYWdlKDMpIDogXCJZb3UgbWF5IG5vdCBjYWxsIHN0b3JlLmdldFN0YXRlKCkgd2hpbGUgdGhlIHJlZHVjZXIgaXMgZXhlY3V0aW5nLiBUaGUgcmVkdWNlciBoYXMgYWxyZWFkeSByZWNlaXZlZCB0aGUgc3RhdGUgYXMgYW4gYXJndW1lbnQuIFBhc3MgaXQgZG93biBmcm9tIHRoZSB0b3AgcmVkdWNlciBpbnN0ZWFkIG9mIHJlYWRpbmcgaXQgZnJvbSB0aGUgc3RvcmUuXCIpO1xuICAgIH1cbiAgICByZXR1cm4gY3VycmVudFN0YXRlO1xuICB9XG4gIGZ1bmN0aW9uIHN1YnNjcmliZShsaXN0ZW5lcikge1xuICAgIGlmICh0eXBlb2YgbGlzdGVuZXIgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiA/IGZvcm1hdFByb2RFcnJvck1lc3NhZ2UoNCkgOiBgRXhwZWN0ZWQgdGhlIGxpc3RlbmVyIHRvIGJlIGEgZnVuY3Rpb24uIEluc3RlYWQsIHJlY2VpdmVkOiAnJHtraW5kT2YobGlzdGVuZXIpfSdgKTtcbiAgICB9XG4gICAgaWYgKGlzRGlzcGF0Y2hpbmcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJwcm9kdWN0aW9uXCIgPyBmb3JtYXRQcm9kRXJyb3JNZXNzYWdlKDUpIDogXCJZb3UgbWF5IG5vdCBjYWxsIHN0b3JlLnN1YnNjcmliZSgpIHdoaWxlIHRoZSByZWR1Y2VyIGlzIGV4ZWN1dGluZy4gSWYgeW91IHdvdWxkIGxpa2UgdG8gYmUgbm90aWZpZWQgYWZ0ZXIgdGhlIHN0b3JlIGhhcyBiZWVuIHVwZGF0ZWQsIHN1YnNjcmliZSBmcm9tIGEgY29tcG9uZW50IGFuZCBpbnZva2Ugc3RvcmUuZ2V0U3RhdGUoKSBpbiB0aGUgY2FsbGJhY2sgdG8gYWNjZXNzIHRoZSBsYXRlc3Qgc3RhdGUuIFNlZSBodHRwczovL3JlZHV4LmpzLm9yZy9hcGkvc3RvcmUjc3Vic2NyaWJlbGlzdGVuZXIgZm9yIG1vcmUgZGV0YWlscy5cIik7XG4gICAgfVxuICAgIGxldCBpc1N1YnNjcmliZWQgPSB0cnVlO1xuICAgIGVuc3VyZUNhbk11dGF0ZU5leHRMaXN0ZW5lcnMoKTtcbiAgICBjb25zdCBsaXN0ZW5lcklkID0gbGlzdGVuZXJJZENvdW50ZXIrKztcbiAgICBuZXh0TGlzdGVuZXJzLnNldChsaXN0ZW5lcklkLCBsaXN0ZW5lcik7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIHVuc3Vic2NyaWJlKCkge1xuICAgICAgaWYgKCFpc1N1YnNjcmliZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKGlzRGlzcGF0Y2hpbmcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiA/IGZvcm1hdFByb2RFcnJvck1lc3NhZ2UoNikgOiBcIllvdSBtYXkgbm90IHVuc3Vic2NyaWJlIGZyb20gYSBzdG9yZSBsaXN0ZW5lciB3aGlsZSB0aGUgcmVkdWNlciBpcyBleGVjdXRpbmcuIFNlZSBodHRwczovL3JlZHV4LmpzLm9yZy9hcGkvc3RvcmUjc3Vic2NyaWJlbGlzdGVuZXIgZm9yIG1vcmUgZGV0YWlscy5cIik7XG4gICAgICB9XG4gICAgICBpc1N1YnNjcmliZWQgPSBmYWxzZTtcbiAgICAgIGVuc3VyZUNhbk11dGF0ZU5leHRMaXN0ZW5lcnMoKTtcbiAgICAgIG5leHRMaXN0ZW5lcnMuZGVsZXRlKGxpc3RlbmVySWQpO1xuICAgICAgY3VycmVudExpc3RlbmVycyA9IG51bGw7XG4gICAgfTtcbiAgfVxuICBmdW5jdGlvbiBkaXNwYXRjaChhY3Rpb24pIHtcbiAgICBpZiAoIWlzUGxhaW5PYmplY3QoYWN0aW9uKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiA/IGZvcm1hdFByb2RFcnJvck1lc3NhZ2UoNykgOiBgQWN0aW9ucyBtdXN0IGJlIHBsYWluIG9iamVjdHMuIEluc3RlYWQsIHRoZSBhY3R1YWwgdHlwZSB3YXM6ICcke2tpbmRPZihhY3Rpb24pfScuIFlvdSBtYXkgbmVlZCB0byBhZGQgbWlkZGxld2FyZSB0byB5b3VyIHN0b3JlIHNldHVwIHRvIGhhbmRsZSBkaXNwYXRjaGluZyBvdGhlciB2YWx1ZXMsIHN1Y2ggYXMgJ3JlZHV4LXRodW5rJyB0byBoYW5kbGUgZGlzcGF0Y2hpbmcgZnVuY3Rpb25zLiBTZWUgaHR0cHM6Ly9yZWR1eC5qcy5vcmcvdHV0b3JpYWxzL2Z1bmRhbWVudGFscy9wYXJ0LTQtc3RvcmUjbWlkZGxld2FyZSBhbmQgaHR0cHM6Ly9yZWR1eC5qcy5vcmcvdHV0b3JpYWxzL2Z1bmRhbWVudGFscy9wYXJ0LTYtYXN5bmMtbG9naWMjdXNpbmctdGhlLXJlZHV4LXRodW5rLW1pZGRsZXdhcmUgZm9yIGV4YW1wbGVzLmApO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGFjdGlvbi50eXBlID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gZm9ybWF0UHJvZEVycm9yTWVzc2FnZSg4KSA6ICdBY3Rpb25zIG1heSBub3QgaGF2ZSBhbiB1bmRlZmluZWQgXCJ0eXBlXCIgcHJvcGVydHkuIFlvdSBtYXkgaGF2ZSBtaXNzcGVsbGVkIGFuIGFjdGlvbiB0eXBlIHN0cmluZyBjb25zdGFudC4nKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBhY3Rpb24udHlwZSAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiA/IGZvcm1hdFByb2RFcnJvck1lc3NhZ2UoMTcpIDogYEFjdGlvbiBcInR5cGVcIiBwcm9wZXJ0eSBtdXN0IGJlIGEgc3RyaW5nLiBJbnN0ZWFkLCB0aGUgYWN0dWFsIHR5cGUgd2FzOiAnJHtraW5kT2YoYWN0aW9uLnR5cGUpfScuIFZhbHVlIHdhczogJyR7YWN0aW9uLnR5cGV9JyAoc3RyaW5naWZpZWQpYCk7XG4gICAgfVxuICAgIGlmIChpc0Rpc3BhdGNoaW5nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gZm9ybWF0UHJvZEVycm9yTWVzc2FnZSg5KSA6IFwiUmVkdWNlcnMgbWF5IG5vdCBkaXNwYXRjaCBhY3Rpb25zLlwiKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGlzRGlzcGF0Y2hpbmcgPSB0cnVlO1xuICAgICAgY3VycmVudFN0YXRlID0gY3VycmVudFJlZHVjZXIoY3VycmVudFN0YXRlLCBhY3Rpb24pO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpc0Rpc3BhdGNoaW5nID0gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IGxpc3RlbmVycyA9IGN1cnJlbnRMaXN0ZW5lcnMgPSBuZXh0TGlzdGVuZXJzO1xuICAgIGxpc3RlbmVycy5mb3JFYWNoKChsaXN0ZW5lcikgPT4ge1xuICAgICAgbGlzdGVuZXIoKTtcbiAgICB9KTtcbiAgICByZXR1cm4gYWN0aW9uO1xuICB9XG4gIGZ1bmN0aW9uIHJlcGxhY2VSZWR1Y2VyKG5leHRSZWR1Y2VyKSB7XG4gICAgaWYgKHR5cGVvZiBuZXh0UmVkdWNlciAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gZm9ybWF0UHJvZEVycm9yTWVzc2FnZSgxMCkgOiBgRXhwZWN0ZWQgdGhlIG5leHRSZWR1Y2VyIHRvIGJlIGEgZnVuY3Rpb24uIEluc3RlYWQsIHJlY2VpdmVkOiAnJHtraW5kT2YobmV4dFJlZHVjZXIpfWApO1xuICAgIH1cbiAgICBjdXJyZW50UmVkdWNlciA9IG5leHRSZWR1Y2VyO1xuICAgIGRpc3BhdGNoKHtcbiAgICAgIHR5cGU6IGFjdGlvblR5cGVzX2RlZmF1bHQuUkVQTEFDRVxuICAgIH0pO1xuICB9XG4gIGZ1bmN0aW9uIG9ic2VydmFibGUoKSB7XG4gICAgY29uc3Qgb3V0ZXJTdWJzY3JpYmUgPSBzdWJzY3JpYmU7XG4gICAgcmV0dXJuIHtcbiAgICAgIC8qKlxuICAgICAgICogVGhlIG1pbmltYWwgb2JzZXJ2YWJsZSBzdWJzY3JpcHRpb24gbWV0aG9kLlxuICAgICAgICogQHBhcmFtIG9ic2VydmVyIEFueSBvYmplY3QgdGhhdCBjYW4gYmUgdXNlZCBhcyBhbiBvYnNlcnZlci5cbiAgICAgICAqIFRoZSBvYnNlcnZlciBvYmplY3Qgc2hvdWxkIGhhdmUgYSBgbmV4dGAgbWV0aG9kLlxuICAgICAgICogQHJldHVybnMgQW4gb2JqZWN0IHdpdGggYW4gYHVuc3Vic2NyaWJlYCBtZXRob2QgdGhhdCBjYW5cbiAgICAgICAqIGJlIHVzZWQgdG8gdW5zdWJzY3JpYmUgdGhlIG9ic2VydmFibGUgZnJvbSB0aGUgc3RvcmUsIGFuZCBwcmV2ZW50IGZ1cnRoZXJcbiAgICAgICAqIGVtaXNzaW9uIG9mIHZhbHVlcyBmcm9tIHRoZSBvYnNlcnZhYmxlLlxuICAgICAgICovXG4gICAgICBzdWJzY3JpYmUob2JzZXJ2ZXIpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBvYnNlcnZlciAhPT0gXCJvYmplY3RcIiB8fCBvYnNlcnZlciA9PT0gbnVsbCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJwcm9kdWN0aW9uXCIgPyBmb3JtYXRQcm9kRXJyb3JNZXNzYWdlKDExKSA6IGBFeHBlY3RlZCB0aGUgb2JzZXJ2ZXIgdG8gYmUgYW4gb2JqZWN0LiBJbnN0ZWFkLCByZWNlaXZlZDogJyR7a2luZE9mKG9ic2VydmVyKX0nYCk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gb2JzZXJ2ZVN0YXRlKCkge1xuICAgICAgICAgIGNvbnN0IG9ic2VydmVyQXNPYnNlcnZlciA9IG9ic2VydmVyO1xuICAgICAgICAgIGlmIChvYnNlcnZlckFzT2JzZXJ2ZXIubmV4dCkge1xuICAgICAgICAgICAgb2JzZXJ2ZXJBc09ic2VydmVyLm5leHQoZ2V0U3RhdGUoKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIG9ic2VydmVTdGF0ZSgpO1xuICAgICAgICBjb25zdCB1bnN1YnNjcmliZSA9IG91dGVyU3Vic2NyaWJlKG9ic2VydmVTdGF0ZSk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdW5zdWJzY3JpYmVcbiAgICAgICAgfTtcbiAgICAgIH0sXG4gICAgICBbc3ltYm9sX29ic2VydmFibGVfZGVmYXVsdF0oKSB7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfVxuICAgIH07XG4gIH1cbiAgZGlzcGF0Y2goe1xuICAgIHR5cGU6IGFjdGlvblR5cGVzX2RlZmF1bHQuSU5JVFxuICB9KTtcbiAgY29uc3Qgc3RvcmUgPSB7XG4gICAgZGlzcGF0Y2gsXG4gICAgc3Vic2NyaWJlLFxuICAgIGdldFN0YXRlLFxuICAgIHJlcGxhY2VSZWR1Y2VyLFxuICAgIFtzeW1ib2xfb2JzZXJ2YWJsZV9kZWZhdWx0XTogb2JzZXJ2YWJsZVxuICB9O1xuICByZXR1cm4gc3RvcmU7XG59XG5mdW5jdGlvbiBsZWdhY3lfY3JlYXRlU3RvcmUocmVkdWNlciwgcHJlbG9hZGVkU3RhdGUsIGVuaGFuY2VyKSB7XG4gIHJldHVybiBjcmVhdGVTdG9yZShyZWR1Y2VyLCBwcmVsb2FkZWRTdGF0ZSwgZW5oYW5jZXIpO1xufVxuXG4vLyBzcmMvdXRpbHMvd2FybmluZy50c1xuZnVuY3Rpb24gd2FybmluZyhtZXNzYWdlKSB7XG4gIGlmICh0eXBlb2YgY29uc29sZSAhPT0gXCJ1bmRlZmluZWRcIiAmJiB0eXBlb2YgY29uc29sZS5lcnJvciA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgY29uc29sZS5lcnJvcihtZXNzYWdlKTtcbiAgfVxuICB0cnkge1xuICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgfSBjYXRjaCAoZSkge1xuICB9XG59XG5cbi8vIHNyYy9jb21iaW5lUmVkdWNlcnMudHNcbmZ1bmN0aW9uIGdldFVuZXhwZWN0ZWRTdGF0ZVNoYXBlV2FybmluZ01lc3NhZ2UoaW5wdXRTdGF0ZSwgcmVkdWNlcnMsIGFjdGlvbiwgdW5leHBlY3RlZEtleUNhY2hlKSB7XG4gIGNvbnN0IHJlZHVjZXJLZXlzID0gT2JqZWN0LmtleXMocmVkdWNlcnMpO1xuICBjb25zdCBhcmd1bWVudE5hbWUgPSBhY3Rpb24gJiYgYWN0aW9uLnR5cGUgPT09IGFjdGlvblR5cGVzX2RlZmF1bHQuSU5JVCA/IFwicHJlbG9hZGVkU3RhdGUgYXJndW1lbnQgcGFzc2VkIHRvIGNyZWF0ZVN0b3JlXCIgOiBcInByZXZpb3VzIHN0YXRlIHJlY2VpdmVkIGJ5IHRoZSByZWR1Y2VyXCI7XG4gIGlmIChyZWR1Y2VyS2V5cy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gXCJTdG9yZSBkb2VzIG5vdCBoYXZlIGEgdmFsaWQgcmVkdWNlci4gTWFrZSBzdXJlIHRoZSBhcmd1bWVudCBwYXNzZWQgdG8gY29tYmluZVJlZHVjZXJzIGlzIGFuIG9iamVjdCB3aG9zZSB2YWx1ZXMgYXJlIHJlZHVjZXJzLlwiO1xuICB9XG4gIGlmICghaXNQbGFpbk9iamVjdChpbnB1dFN0YXRlKSkge1xuICAgIHJldHVybiBgVGhlICR7YXJndW1lbnROYW1lfSBoYXMgdW5leHBlY3RlZCB0eXBlIG9mIFwiJHtraW5kT2YoaW5wdXRTdGF0ZSl9XCIuIEV4cGVjdGVkIGFyZ3VtZW50IHRvIGJlIGFuIG9iamVjdCB3aXRoIHRoZSBmb2xsb3dpbmcga2V5czogXCIke3JlZHVjZXJLZXlzLmpvaW4oJ1wiLCBcIicpfVwiYDtcbiAgfVxuICBjb25zdCB1bmV4cGVjdGVkS2V5cyA9IE9iamVjdC5rZXlzKGlucHV0U3RhdGUpLmZpbHRlcigoa2V5KSA9PiAhcmVkdWNlcnMuaGFzT3duUHJvcGVydHkoa2V5KSAmJiAhdW5leHBlY3RlZEtleUNhY2hlW2tleV0pO1xuICB1bmV4cGVjdGVkS2V5cy5mb3JFYWNoKChrZXkpID0+IHtcbiAgICB1bmV4cGVjdGVkS2V5Q2FjaGVba2V5XSA9IHRydWU7XG4gIH0pO1xuICBpZiAoYWN0aW9uICYmIGFjdGlvbi50eXBlID09PSBhY3Rpb25UeXBlc19kZWZhdWx0LlJFUExBQ0UpXG4gICAgcmV0dXJuO1xuICBpZiAodW5leHBlY3RlZEtleXMubGVuZ3RoID4gMCkge1xuICAgIHJldHVybiBgVW5leHBlY3RlZCAke3VuZXhwZWN0ZWRLZXlzLmxlbmd0aCA+IDEgPyBcImtleXNcIiA6IFwia2V5XCJ9IFwiJHt1bmV4cGVjdGVkS2V5cy5qb2luKCdcIiwgXCInKX1cIiBmb3VuZCBpbiAke2FyZ3VtZW50TmFtZX0uIEV4cGVjdGVkIHRvIGZpbmQgb25lIG9mIHRoZSBrbm93biByZWR1Y2VyIGtleXMgaW5zdGVhZDogXCIke3JlZHVjZXJLZXlzLmpvaW4oJ1wiLCBcIicpfVwiLiBVbmV4cGVjdGVkIGtleXMgd2lsbCBiZSBpZ25vcmVkLmA7XG4gIH1cbn1cbmZ1bmN0aW9uIGFzc2VydFJlZHVjZXJTaGFwZShyZWR1Y2Vycykge1xuICBPYmplY3Qua2V5cyhyZWR1Y2VycykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgY29uc3QgcmVkdWNlciA9IHJlZHVjZXJzW2tleV07XG4gICAgY29uc3QgaW5pdGlhbFN0YXRlID0gcmVkdWNlcih2b2lkIDAsIHtcbiAgICAgIHR5cGU6IGFjdGlvblR5cGVzX2RlZmF1bHQuSU5JVFxuICAgIH0pO1xuICAgIGlmICh0eXBlb2YgaW5pdGlhbFN0YXRlID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gZm9ybWF0UHJvZEVycm9yTWVzc2FnZSgxMikgOiBgVGhlIHNsaWNlIHJlZHVjZXIgZm9yIGtleSBcIiR7a2V5fVwiIHJldHVybmVkIHVuZGVmaW5lZCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uIElmIHRoZSBzdGF0ZSBwYXNzZWQgdG8gdGhlIHJlZHVjZXIgaXMgdW5kZWZpbmVkLCB5b3UgbXVzdCBleHBsaWNpdGx5IHJldHVybiB0aGUgaW5pdGlhbCBzdGF0ZS4gVGhlIGluaXRpYWwgc3RhdGUgbWF5IG5vdCBiZSB1bmRlZmluZWQuIElmIHlvdSBkb24ndCB3YW50IHRvIHNldCBhIHZhbHVlIGZvciB0aGlzIHJlZHVjZXIsIHlvdSBjYW4gdXNlIG51bGwgaW5zdGVhZCBvZiB1bmRlZmluZWQuYCk7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgcmVkdWNlcih2b2lkIDAsIHtcbiAgICAgIHR5cGU6IGFjdGlvblR5cGVzX2RlZmF1bHQuUFJPQkVfVU5LTk9XTl9BQ1RJT04oKVxuICAgIH0pID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gZm9ybWF0UHJvZEVycm9yTWVzc2FnZSgxMykgOiBgVGhlIHNsaWNlIHJlZHVjZXIgZm9yIGtleSBcIiR7a2V5fVwiIHJldHVybmVkIHVuZGVmaW5lZCB3aGVuIHByb2JlZCB3aXRoIGEgcmFuZG9tIHR5cGUuIERvbid0IHRyeSB0byBoYW5kbGUgJyR7YWN0aW9uVHlwZXNfZGVmYXVsdC5JTklUfScgb3Igb3RoZXIgYWN0aW9ucyBpbiBcInJlZHV4LypcIiBuYW1lc3BhY2UuIFRoZXkgYXJlIGNvbnNpZGVyZWQgcHJpdmF0ZS4gSW5zdGVhZCwgeW91IG11c3QgcmV0dXJuIHRoZSBjdXJyZW50IHN0YXRlIGZvciBhbnkgdW5rbm93biBhY3Rpb25zLCB1bmxlc3MgaXQgaXMgdW5kZWZpbmVkLCBpbiB3aGljaCBjYXNlIHlvdSBtdXN0IHJldHVybiB0aGUgaW5pdGlhbCBzdGF0ZSwgcmVnYXJkbGVzcyBvZiB0aGUgYWN0aW9uIHR5cGUuIFRoZSBpbml0aWFsIHN0YXRlIG1heSBub3QgYmUgdW5kZWZpbmVkLCBidXQgY2FuIGJlIG51bGwuYCk7XG4gICAgfVxuICB9KTtcbn1cbmZ1bmN0aW9uIGNvbWJpbmVSZWR1Y2VycyhyZWR1Y2Vycykge1xuICBjb25zdCByZWR1Y2VyS2V5cyA9IE9iamVjdC5rZXlzKHJlZHVjZXJzKTtcbiAgY29uc3QgZmluYWxSZWR1Y2VycyA9IHt9O1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHJlZHVjZXJLZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3Qga2V5ID0gcmVkdWNlcktleXNbaV07XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgaWYgKHR5cGVvZiByZWR1Y2Vyc1trZXldID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIHdhcm5pbmcoYE5vIHJlZHVjZXIgcHJvdmlkZWQgZm9yIGtleSBcIiR7a2V5fVwiYCk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0eXBlb2YgcmVkdWNlcnNba2V5XSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICBmaW5hbFJlZHVjZXJzW2tleV0gPSByZWR1Y2Vyc1trZXldO1xuICAgIH1cbiAgfVxuICBjb25zdCBmaW5hbFJlZHVjZXJLZXlzID0gT2JqZWN0LmtleXMoZmluYWxSZWR1Y2Vycyk7XG4gIGxldCB1bmV4cGVjdGVkS2V5Q2FjaGU7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICB1bmV4cGVjdGVkS2V5Q2FjaGUgPSB7fTtcbiAgfVxuICBsZXQgc2hhcGVBc3NlcnRpb25FcnJvcjtcbiAgdHJ5IHtcbiAgICBhc3NlcnRSZWR1Y2VyU2hhcGUoZmluYWxSZWR1Y2Vycyk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBzaGFwZUFzc2VydGlvbkVycm9yID0gZTtcbiAgfVxuICByZXR1cm4gZnVuY3Rpb24gY29tYmluYXRpb24oc3RhdGUgPSB7fSwgYWN0aW9uKSB7XG4gICAgaWYgKHNoYXBlQXNzZXJ0aW9uRXJyb3IpIHtcbiAgICAgIHRocm93IHNoYXBlQXNzZXJ0aW9uRXJyb3I7XG4gICAgfVxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICAgIGNvbnN0IHdhcm5pbmdNZXNzYWdlID0gZ2V0VW5leHBlY3RlZFN0YXRlU2hhcGVXYXJuaW5nTWVzc2FnZShzdGF0ZSwgZmluYWxSZWR1Y2VycywgYWN0aW9uLCB1bmV4cGVjdGVkS2V5Q2FjaGUpO1xuICAgICAgaWYgKHdhcm5pbmdNZXNzYWdlKSB7XG4gICAgICAgIHdhcm5pbmcod2FybmluZ01lc3NhZ2UpO1xuICAgICAgfVxuICAgIH1cbiAgICBsZXQgaGFzQ2hhbmdlZCA9IGZhbHNlO1xuICAgIGNvbnN0IG5leHRTdGF0ZSA9IHt9O1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmluYWxSZWR1Y2VyS2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3Qga2V5ID0gZmluYWxSZWR1Y2VyS2V5c1tpXTtcbiAgICAgIGNvbnN0IHJlZHVjZXIgPSBmaW5hbFJlZHVjZXJzW2tleV07XG4gICAgICBjb25zdCBwcmV2aW91c1N0YXRlRm9yS2V5ID0gc3RhdGVba2V5XTtcbiAgICAgIGNvbnN0IG5leHRTdGF0ZUZvcktleSA9IHJlZHVjZXIocHJldmlvdXNTdGF0ZUZvcktleSwgYWN0aW9uKTtcbiAgICAgIGlmICh0eXBlb2YgbmV4dFN0YXRlRm9yS2V5ID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIGNvbnN0IGFjdGlvblR5cGUgPSBhY3Rpb24gJiYgYWN0aW9uLnR5cGU7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJwcm9kdWN0aW9uXCIgPyBmb3JtYXRQcm9kRXJyb3JNZXNzYWdlKDE0KSA6IGBXaGVuIGNhbGxlZCB3aXRoIGFuIGFjdGlvbiBvZiB0eXBlICR7YWN0aW9uVHlwZSA/IGBcIiR7U3RyaW5nKGFjdGlvblR5cGUpfVwiYCA6IFwiKHVua25vd24gdHlwZSlcIn0sIHRoZSBzbGljZSByZWR1Y2VyIGZvciBrZXkgXCIke2tleX1cIiByZXR1cm5lZCB1bmRlZmluZWQuIFRvIGlnbm9yZSBhbiBhY3Rpb24sIHlvdSBtdXN0IGV4cGxpY2l0bHkgcmV0dXJuIHRoZSBwcmV2aW91cyBzdGF0ZS4gSWYgeW91IHdhbnQgdGhpcyByZWR1Y2VyIHRvIGhvbGQgbm8gdmFsdWUsIHlvdSBjYW4gcmV0dXJuIG51bGwgaW5zdGVhZCBvZiB1bmRlZmluZWQuYCk7XG4gICAgICB9XG4gICAgICBuZXh0U3RhdGVba2V5XSA9IG5leHRTdGF0ZUZvcktleTtcbiAgICAgIGhhc0NoYW5nZWQgPSBoYXNDaGFuZ2VkIHx8IG5leHRTdGF0ZUZvcktleSAhPT0gcHJldmlvdXNTdGF0ZUZvcktleTtcbiAgICB9XG4gICAgaGFzQ2hhbmdlZCA9IGhhc0NoYW5nZWQgfHwgZmluYWxSZWR1Y2VyS2V5cy5sZW5ndGggIT09IE9iamVjdC5rZXlzKHN0YXRlKS5sZW5ndGg7XG4gICAgcmV0dXJuIGhhc0NoYW5nZWQgPyBuZXh0U3RhdGUgOiBzdGF0ZTtcbiAgfTtcbn1cblxuLy8gc3JjL2JpbmRBY3Rpb25DcmVhdG9ycy50c1xuZnVuY3Rpb24gYmluZEFjdGlvbkNyZWF0b3IoYWN0aW9uQ3JlYXRvciwgZGlzcGF0Y2gpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKC4uLmFyZ3MpIHtcbiAgICByZXR1cm4gZGlzcGF0Y2goYWN0aW9uQ3JlYXRvci5hcHBseSh0aGlzLCBhcmdzKSk7XG4gIH07XG59XG5mdW5jdGlvbiBiaW5kQWN0aW9uQ3JlYXRvcnMoYWN0aW9uQ3JlYXRvcnMsIGRpc3BhdGNoKSB7XG4gIGlmICh0eXBlb2YgYWN0aW9uQ3JlYXRvcnMgPT09IFwiZnVuY3Rpb25cIikge1xuICAgIHJldHVybiBiaW5kQWN0aW9uQ3JlYXRvcihhY3Rpb25DcmVhdG9ycywgZGlzcGF0Y2gpO1xuICB9XG4gIGlmICh0eXBlb2YgYWN0aW9uQ3JlYXRvcnMgIT09IFwib2JqZWN0XCIgfHwgYWN0aW9uQ3JlYXRvcnMgPT09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gZm9ybWF0UHJvZEVycm9yTWVzc2FnZSgxNikgOiBgYmluZEFjdGlvbkNyZWF0b3JzIGV4cGVjdGVkIGFuIG9iamVjdCBvciBhIGZ1bmN0aW9uLCBidXQgaW5zdGVhZCByZWNlaXZlZDogJyR7a2luZE9mKGFjdGlvbkNyZWF0b3JzKX0nLiBEaWQgeW91IHdyaXRlIFwiaW1wb3J0IEFjdGlvbkNyZWF0b3JzIGZyb21cIiBpbnN0ZWFkIG9mIFwiaW1wb3J0ICogYXMgQWN0aW9uQ3JlYXRvcnMgZnJvbVwiP2ApO1xuICB9XG4gIGNvbnN0IGJvdW5kQWN0aW9uQ3JlYXRvcnMgPSB7fTtcbiAgZm9yIChjb25zdCBrZXkgaW4gYWN0aW9uQ3JlYXRvcnMpIHtcbiAgICBjb25zdCBhY3Rpb25DcmVhdG9yID0gYWN0aW9uQ3JlYXRvcnNba2V5XTtcbiAgICBpZiAodHlwZW9mIGFjdGlvbkNyZWF0b3IgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgYm91bmRBY3Rpb25DcmVhdG9yc1trZXldID0gYmluZEFjdGlvbkNyZWF0b3IoYWN0aW9uQ3JlYXRvciwgZGlzcGF0Y2gpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gYm91bmRBY3Rpb25DcmVhdG9ycztcbn1cblxuLy8gc3JjL2NvbXBvc2UudHNcbmZ1bmN0aW9uIGNvbXBvc2UoLi4uZnVuY3MpIHtcbiAgaWYgKGZ1bmNzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiAoYXJnKSA9PiBhcmc7XG4gIH1cbiAgaWYgKGZ1bmNzLmxlbmd0aCA9PT0gMSkge1xuICAgIHJldHVybiBmdW5jc1swXTtcbiAgfVxuICByZXR1cm4gZnVuY3MucmVkdWNlKChhLCBiKSA9PiAoLi4uYXJncykgPT4gYShiKC4uLmFyZ3MpKSk7XG59XG5cbi8vIHNyYy9hcHBseU1pZGRsZXdhcmUudHNcbmZ1bmN0aW9uIGFwcGx5TWlkZGxld2FyZSguLi5taWRkbGV3YXJlcykge1xuICByZXR1cm4gKGNyZWF0ZVN0b3JlMikgPT4gKHJlZHVjZXIsIHByZWxvYWRlZFN0YXRlKSA9PiB7XG4gICAgY29uc3Qgc3RvcmUgPSBjcmVhdGVTdG9yZTIocmVkdWNlciwgcHJlbG9hZGVkU3RhdGUpO1xuICAgIGxldCBkaXNwYXRjaCA9ICgpID0+IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJwcm9kdWN0aW9uXCIgPyBmb3JtYXRQcm9kRXJyb3JNZXNzYWdlKDE1KSA6IFwiRGlzcGF0Y2hpbmcgd2hpbGUgY29uc3RydWN0aW5nIHlvdXIgbWlkZGxld2FyZSBpcyBub3QgYWxsb3dlZC4gT3RoZXIgbWlkZGxld2FyZSB3b3VsZCBub3QgYmUgYXBwbGllZCB0byB0aGlzIGRpc3BhdGNoLlwiKTtcbiAgICB9O1xuICAgIGNvbnN0IG1pZGRsZXdhcmVBUEkgPSB7XG4gICAgICBnZXRTdGF0ZTogc3RvcmUuZ2V0U3RhdGUsXG4gICAgICBkaXNwYXRjaDogKGFjdGlvbiwgLi4uYXJncykgPT4gZGlzcGF0Y2goYWN0aW9uLCAuLi5hcmdzKVxuICAgIH07XG4gICAgY29uc3QgY2hhaW4gPSBtaWRkbGV3YXJlcy5tYXAoKG1pZGRsZXdhcmUpID0+IG1pZGRsZXdhcmUobWlkZGxld2FyZUFQSSkpO1xuICAgIGRpc3BhdGNoID0gY29tcG9zZSguLi5jaGFpbikoc3RvcmUuZGlzcGF0Y2gpO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdG9yZSxcbiAgICAgIGRpc3BhdGNoXG4gICAgfTtcbiAgfTtcbn1cblxuLy8gc3JjL3V0aWxzL2lzQWN0aW9uLnRzXG5mdW5jdGlvbiBpc0FjdGlvbihhY3Rpb24pIHtcbiAgcmV0dXJuIGlzUGxhaW5PYmplY3QoYWN0aW9uKSAmJiBcInR5cGVcIiBpbiBhY3Rpb24gJiYgdHlwZW9mIGFjdGlvbi50eXBlID09PSBcInN0cmluZ1wiO1xufVxuLy8gQW5ub3RhdGUgdGhlIENvbW1vbkpTIGV4cG9ydCBuYW1lcyBmb3IgRVNNIGltcG9ydCBpbiBub2RlOlxuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gIF9fRE9fTk9UX1VTRV9fQWN0aW9uVHlwZXMsXG4gIGFwcGx5TWlkZGxld2FyZSxcbiAgYmluZEFjdGlvbkNyZWF0b3JzLFxuICBjb21iaW5lUmVkdWNlcnMsXG4gIGNvbXBvc2UsXG4gIGNyZWF0ZVN0b3JlLFxuICBpc0FjdGlvbixcbiAgaXNQbGFpbk9iamVjdCxcbiAgbGVnYWN5X2NyZWF0ZVN0b3JlXG59KTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlZHV4LmNqcy5tYXAiLCJcbi8qKlxuICogVGhpcyBpcyB0aGUgY29tbW9uIGxvZ2ljIGZvciBib3RoIHRoZSBOb2RlLmpzIGFuZCB3ZWIgYnJvd3NlclxuICogaW1wbGVtZW50YXRpb25zIG9mIGBkZWJ1ZygpYC5cbiAqL1xuXG5mdW5jdGlvbiBzZXR1cChlbnYpIHtcblx0Y3JlYXRlRGVidWcuZGVidWcgPSBjcmVhdGVEZWJ1Zztcblx0Y3JlYXRlRGVidWcuZGVmYXVsdCA9IGNyZWF0ZURlYnVnO1xuXHRjcmVhdGVEZWJ1Zy5jb2VyY2UgPSBjb2VyY2U7XG5cdGNyZWF0ZURlYnVnLmRpc2FibGUgPSBkaXNhYmxlO1xuXHRjcmVhdGVEZWJ1Zy5lbmFibGUgPSBlbmFibGU7XG5cdGNyZWF0ZURlYnVnLmVuYWJsZWQgPSBlbmFibGVkO1xuXHRjcmVhdGVEZWJ1Zy5odW1hbml6ZSA9IHJlcXVpcmUoJ21zJyk7XG5cdGNyZWF0ZURlYnVnLmRlc3Ryb3kgPSBkZXN0cm95O1xuXG5cdE9iamVjdC5rZXlzKGVudikuZm9yRWFjaChrZXkgPT4ge1xuXHRcdGNyZWF0ZURlYnVnW2tleV0gPSBlbnZba2V5XTtcblx0fSk7XG5cblx0LyoqXG5cdCogVGhlIGN1cnJlbnRseSBhY3RpdmUgZGVidWcgbW9kZSBuYW1lcywgYW5kIG5hbWVzIHRvIHNraXAuXG5cdCovXG5cblx0Y3JlYXRlRGVidWcubmFtZXMgPSBbXTtcblx0Y3JlYXRlRGVidWcuc2tpcHMgPSBbXTtcblxuXHQvKipcblx0KiBNYXAgb2Ygc3BlY2lhbCBcIiVuXCIgaGFuZGxpbmcgZnVuY3Rpb25zLCBmb3IgdGhlIGRlYnVnIFwiZm9ybWF0XCIgYXJndW1lbnQuXG5cdCpcblx0KiBWYWxpZCBrZXkgbmFtZXMgYXJlIGEgc2luZ2xlLCBsb3dlciBvciB1cHBlci1jYXNlIGxldHRlciwgaS5lLiBcIm5cIiBhbmQgXCJOXCIuXG5cdCovXG5cdGNyZWF0ZURlYnVnLmZvcm1hdHRlcnMgPSB7fTtcblxuXHQvKipcblx0KiBTZWxlY3RzIGEgY29sb3IgZm9yIGEgZGVidWcgbmFtZXNwYWNlXG5cdCogQHBhcmFtIHtTdHJpbmd9IG5hbWVzcGFjZSBUaGUgbmFtZXNwYWNlIHN0cmluZyBmb3IgdGhlIGRlYnVnIGluc3RhbmNlIHRvIGJlIGNvbG9yZWRcblx0KiBAcmV0dXJuIHtOdW1iZXJ8U3RyaW5nfSBBbiBBTlNJIGNvbG9yIGNvZGUgZm9yIHRoZSBnaXZlbiBuYW1lc3BhY2Vcblx0KiBAYXBpIHByaXZhdGVcblx0Ki9cblx0ZnVuY3Rpb24gc2VsZWN0Q29sb3IobmFtZXNwYWNlKSB7XG5cdFx0bGV0IGhhc2ggPSAwO1xuXG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBuYW1lc3BhY2UubGVuZ3RoOyBpKyspIHtcblx0XHRcdGhhc2ggPSAoKGhhc2ggPDwgNSkgLSBoYXNoKSArIG5hbWVzcGFjZS5jaGFyQ29kZUF0KGkpO1xuXHRcdFx0aGFzaCB8PSAwOyAvLyBDb252ZXJ0IHRvIDMyYml0IGludGVnZXJcblx0XHR9XG5cblx0XHRyZXR1cm4gY3JlYXRlRGVidWcuY29sb3JzW01hdGguYWJzKGhhc2gpICUgY3JlYXRlRGVidWcuY29sb3JzLmxlbmd0aF07XG5cdH1cblx0Y3JlYXRlRGVidWcuc2VsZWN0Q29sb3IgPSBzZWxlY3RDb2xvcjtcblxuXHQvKipcblx0KiBDcmVhdGUgYSBkZWJ1Z2dlciB3aXRoIHRoZSBnaXZlbiBgbmFtZXNwYWNlYC5cblx0KlxuXHQqIEBwYXJhbSB7U3RyaW5nfSBuYW1lc3BhY2Vcblx0KiBAcmV0dXJuIHtGdW5jdGlvbn1cblx0KiBAYXBpIHB1YmxpY1xuXHQqL1xuXHRmdW5jdGlvbiBjcmVhdGVEZWJ1ZyhuYW1lc3BhY2UpIHtcblx0XHRsZXQgcHJldlRpbWU7XG5cdFx0bGV0IGVuYWJsZU92ZXJyaWRlID0gbnVsbDtcblx0XHRsZXQgbmFtZXNwYWNlc0NhY2hlO1xuXHRcdGxldCBlbmFibGVkQ2FjaGU7XG5cblx0XHRmdW5jdGlvbiBkZWJ1ZyguLi5hcmdzKSB7XG5cdFx0XHQvLyBEaXNhYmxlZD9cblx0XHRcdGlmICghZGVidWcuZW5hYmxlZCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdGNvbnN0IHNlbGYgPSBkZWJ1ZztcblxuXHRcdFx0Ly8gU2V0IGBkaWZmYCB0aW1lc3RhbXBcblx0XHRcdGNvbnN0IGN1cnIgPSBOdW1iZXIobmV3IERhdGUoKSk7XG5cdFx0XHRjb25zdCBtcyA9IGN1cnIgLSAocHJldlRpbWUgfHwgY3Vycik7XG5cdFx0XHRzZWxmLmRpZmYgPSBtcztcblx0XHRcdHNlbGYucHJldiA9IHByZXZUaW1lO1xuXHRcdFx0c2VsZi5jdXJyID0gY3Vycjtcblx0XHRcdHByZXZUaW1lID0gY3VycjtcblxuXHRcdFx0YXJnc1swXSA9IGNyZWF0ZURlYnVnLmNvZXJjZShhcmdzWzBdKTtcblxuXHRcdFx0aWYgKHR5cGVvZiBhcmdzWzBdICE9PSAnc3RyaW5nJykge1xuXHRcdFx0XHQvLyBBbnl0aGluZyBlbHNlIGxldCdzIGluc3BlY3Qgd2l0aCAlT1xuXHRcdFx0XHRhcmdzLnVuc2hpZnQoJyVPJyk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIEFwcGx5IGFueSBgZm9ybWF0dGVyc2AgdHJhbnNmb3JtYXRpb25zXG5cdFx0XHRsZXQgaW5kZXggPSAwO1xuXHRcdFx0YXJnc1swXSA9IGFyZ3NbMF0ucmVwbGFjZSgvJShbYS16QS1aJV0pL2csIChtYXRjaCwgZm9ybWF0KSA9PiB7XG5cdFx0XHRcdC8vIElmIHdlIGVuY291bnRlciBhbiBlc2NhcGVkICUgdGhlbiBkb24ndCBpbmNyZWFzZSB0aGUgYXJyYXkgaW5kZXhcblx0XHRcdFx0aWYgKG1hdGNoID09PSAnJSUnKSB7XG5cdFx0XHRcdFx0cmV0dXJuICclJztcblx0XHRcdFx0fVxuXHRcdFx0XHRpbmRleCsrO1xuXHRcdFx0XHRjb25zdCBmb3JtYXR0ZXIgPSBjcmVhdGVEZWJ1Zy5mb3JtYXR0ZXJzW2Zvcm1hdF07XG5cdFx0XHRcdGlmICh0eXBlb2YgZm9ybWF0dGVyID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRcdFx0Y29uc3QgdmFsID0gYXJnc1tpbmRleF07XG5cdFx0XHRcdFx0bWF0Y2ggPSBmb3JtYXR0ZXIuY2FsbChzZWxmLCB2YWwpO1xuXG5cdFx0XHRcdFx0Ly8gTm93IHdlIG5lZWQgdG8gcmVtb3ZlIGBhcmdzW2luZGV4XWAgc2luY2UgaXQncyBpbmxpbmVkIGluIHRoZSBgZm9ybWF0YFxuXHRcdFx0XHRcdGFyZ3Muc3BsaWNlKGluZGV4LCAxKTtcblx0XHRcdFx0XHRpbmRleC0tO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBtYXRjaDtcblx0XHRcdH0pO1xuXG5cdFx0XHQvLyBBcHBseSBlbnYtc3BlY2lmaWMgZm9ybWF0dGluZyAoY29sb3JzLCBldGMuKVxuXHRcdFx0Y3JlYXRlRGVidWcuZm9ybWF0QXJncy5jYWxsKHNlbGYsIGFyZ3MpO1xuXG5cdFx0XHRjb25zdCBsb2dGbiA9IHNlbGYubG9nIHx8IGNyZWF0ZURlYnVnLmxvZztcblx0XHRcdGxvZ0ZuLmFwcGx5KHNlbGYsIGFyZ3MpO1xuXHRcdH1cblxuXHRcdGRlYnVnLm5hbWVzcGFjZSA9IG5hbWVzcGFjZTtcblx0XHRkZWJ1Zy51c2VDb2xvcnMgPSBjcmVhdGVEZWJ1Zy51c2VDb2xvcnMoKTtcblx0XHRkZWJ1Zy5jb2xvciA9IGNyZWF0ZURlYnVnLnNlbGVjdENvbG9yKG5hbWVzcGFjZSk7XG5cdFx0ZGVidWcuZXh0ZW5kID0gZXh0ZW5kO1xuXHRcdGRlYnVnLmRlc3Ryb3kgPSBjcmVhdGVEZWJ1Zy5kZXN0cm95OyAvLyBYWFggVGVtcG9yYXJ5LiBXaWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgcmVsZWFzZS5cblxuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkZWJ1ZywgJ2VuYWJsZWQnLCB7XG5cdFx0XHRlbnVtZXJhYmxlOiB0cnVlLFxuXHRcdFx0Y29uZmlndXJhYmxlOiBmYWxzZSxcblx0XHRcdGdldDogKCkgPT4ge1xuXHRcdFx0XHRpZiAoZW5hYmxlT3ZlcnJpZGUgIT09IG51bGwpIHtcblx0XHRcdFx0XHRyZXR1cm4gZW5hYmxlT3ZlcnJpZGU7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKG5hbWVzcGFjZXNDYWNoZSAhPT0gY3JlYXRlRGVidWcubmFtZXNwYWNlcykge1xuXHRcdFx0XHRcdG5hbWVzcGFjZXNDYWNoZSA9IGNyZWF0ZURlYnVnLm5hbWVzcGFjZXM7XG5cdFx0XHRcdFx0ZW5hYmxlZENhY2hlID0gY3JlYXRlRGVidWcuZW5hYmxlZChuYW1lc3BhY2UpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmV0dXJuIGVuYWJsZWRDYWNoZTtcblx0XHRcdH0sXG5cdFx0XHRzZXQ6IHYgPT4ge1xuXHRcdFx0XHRlbmFibGVPdmVycmlkZSA9IHY7XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHQvLyBFbnYtc3BlY2lmaWMgaW5pdGlhbGl6YXRpb24gbG9naWMgZm9yIGRlYnVnIGluc3RhbmNlc1xuXHRcdGlmICh0eXBlb2YgY3JlYXRlRGVidWcuaW5pdCA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0Y3JlYXRlRGVidWcuaW5pdChkZWJ1Zyk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGRlYnVnO1xuXHR9XG5cblx0ZnVuY3Rpb24gZXh0ZW5kKG5hbWVzcGFjZSwgZGVsaW1pdGVyKSB7XG5cdFx0Y29uc3QgbmV3RGVidWcgPSBjcmVhdGVEZWJ1Zyh0aGlzLm5hbWVzcGFjZSArICh0eXBlb2YgZGVsaW1pdGVyID09PSAndW5kZWZpbmVkJyA/ICc6JyA6IGRlbGltaXRlcikgKyBuYW1lc3BhY2UpO1xuXHRcdG5ld0RlYnVnLmxvZyA9IHRoaXMubG9nO1xuXHRcdHJldHVybiBuZXdEZWJ1Zztcblx0fVxuXG5cdC8qKlxuXHQqIEVuYWJsZXMgYSBkZWJ1ZyBtb2RlIGJ5IG5hbWVzcGFjZXMuIFRoaXMgY2FuIGluY2x1ZGUgbW9kZXNcblx0KiBzZXBhcmF0ZWQgYnkgYSBjb2xvbiBhbmQgd2lsZGNhcmRzLlxuXHQqXG5cdCogQHBhcmFtIHtTdHJpbmd9IG5hbWVzcGFjZXNcblx0KiBAYXBpIHB1YmxpY1xuXHQqL1xuXHRmdW5jdGlvbiBlbmFibGUobmFtZXNwYWNlcykge1xuXHRcdGNyZWF0ZURlYnVnLnNhdmUobmFtZXNwYWNlcyk7XG5cdFx0Y3JlYXRlRGVidWcubmFtZXNwYWNlcyA9IG5hbWVzcGFjZXM7XG5cblx0XHRjcmVhdGVEZWJ1Zy5uYW1lcyA9IFtdO1xuXHRcdGNyZWF0ZURlYnVnLnNraXBzID0gW107XG5cblx0XHRsZXQgaTtcblx0XHRjb25zdCBzcGxpdCA9ICh0eXBlb2YgbmFtZXNwYWNlcyA9PT0gJ3N0cmluZycgPyBuYW1lc3BhY2VzIDogJycpLnNwbGl0KC9bXFxzLF0rLyk7XG5cdFx0Y29uc3QgbGVuID0gc3BsaXQubGVuZ3RoO1xuXG5cdFx0Zm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG5cdFx0XHRpZiAoIXNwbGl0W2ldKSB7XG5cdFx0XHRcdC8vIGlnbm9yZSBlbXB0eSBzdHJpbmdzXG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXG5cdFx0XHRuYW1lc3BhY2VzID0gc3BsaXRbaV0ucmVwbGFjZSgvXFwqL2csICcuKj8nKTtcblxuXHRcdFx0aWYgKG5hbWVzcGFjZXNbMF0gPT09ICctJykge1xuXHRcdFx0XHRjcmVhdGVEZWJ1Zy5za2lwcy5wdXNoKG5ldyBSZWdFeHAoJ14nICsgbmFtZXNwYWNlcy5zbGljZSgxKSArICckJykpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y3JlYXRlRGVidWcubmFtZXMucHVzaChuZXcgUmVnRXhwKCdeJyArIG5hbWVzcGFjZXMgKyAnJCcpKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvKipcblx0KiBEaXNhYmxlIGRlYnVnIG91dHB1dC5cblx0KlxuXHQqIEByZXR1cm4ge1N0cmluZ30gbmFtZXNwYWNlc1xuXHQqIEBhcGkgcHVibGljXG5cdCovXG5cdGZ1bmN0aW9uIGRpc2FibGUoKSB7XG5cdFx0Y29uc3QgbmFtZXNwYWNlcyA9IFtcblx0XHRcdC4uLmNyZWF0ZURlYnVnLm5hbWVzLm1hcCh0b05hbWVzcGFjZSksXG5cdFx0XHQuLi5jcmVhdGVEZWJ1Zy5za2lwcy5tYXAodG9OYW1lc3BhY2UpLm1hcChuYW1lc3BhY2UgPT4gJy0nICsgbmFtZXNwYWNlKVxuXHRcdF0uam9pbignLCcpO1xuXHRcdGNyZWF0ZURlYnVnLmVuYWJsZSgnJyk7XG5cdFx0cmV0dXJuIG5hbWVzcGFjZXM7XG5cdH1cblxuXHQvKipcblx0KiBSZXR1cm5zIHRydWUgaWYgdGhlIGdpdmVuIG1vZGUgbmFtZSBpcyBlbmFibGVkLCBmYWxzZSBvdGhlcndpc2UuXG5cdCpcblx0KiBAcGFyYW0ge1N0cmluZ30gbmFtZVxuXHQqIEByZXR1cm4ge0Jvb2xlYW59XG5cdCogQGFwaSBwdWJsaWNcblx0Ki9cblx0ZnVuY3Rpb24gZW5hYmxlZChuYW1lKSB7XG5cdFx0aWYgKG5hbWVbbmFtZS5sZW5ndGggLSAxXSA9PT0gJyonKSB7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cblx0XHRsZXQgaTtcblx0XHRsZXQgbGVuO1xuXG5cdFx0Zm9yIChpID0gMCwgbGVuID0gY3JlYXRlRGVidWcuc2tpcHMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcblx0XHRcdGlmIChjcmVhdGVEZWJ1Zy5za2lwc1tpXS50ZXN0KG5hbWUpKSB7XG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRmb3IgKGkgPSAwLCBsZW4gPSBjcmVhdGVEZWJ1Zy5uYW1lcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuXHRcdFx0aWYgKGNyZWF0ZURlYnVnLm5hbWVzW2ldLnRlc3QobmFtZSkpIHtcblx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0LyoqXG5cdCogQ29udmVydCByZWdleHAgdG8gbmFtZXNwYWNlXG5cdCpcblx0KiBAcGFyYW0ge1JlZ0V4cH0gcmVneGVwXG5cdCogQHJldHVybiB7U3RyaW5nfSBuYW1lc3BhY2Vcblx0KiBAYXBpIHByaXZhdGVcblx0Ki9cblx0ZnVuY3Rpb24gdG9OYW1lc3BhY2UocmVnZXhwKSB7XG5cdFx0cmV0dXJuIHJlZ2V4cC50b1N0cmluZygpXG5cdFx0XHQuc3Vic3RyaW5nKDIsIHJlZ2V4cC50b1N0cmluZygpLmxlbmd0aCAtIDIpXG5cdFx0XHQucmVwbGFjZSgvXFwuXFwqXFw/JC8sICcqJyk7XG5cdH1cblxuXHQvKipcblx0KiBDb2VyY2UgYHZhbGAuXG5cdCpcblx0KiBAcGFyYW0ge01peGVkfSB2YWxcblx0KiBAcmV0dXJuIHtNaXhlZH1cblx0KiBAYXBpIHByaXZhdGVcblx0Ki9cblx0ZnVuY3Rpb24gY29lcmNlKHZhbCkge1xuXHRcdGlmICh2YWwgaW5zdGFuY2VvZiBFcnJvcikge1xuXHRcdFx0cmV0dXJuIHZhbC5zdGFjayB8fCB2YWwubWVzc2FnZTtcblx0XHR9XG5cdFx0cmV0dXJuIHZhbDtcblx0fVxuXG5cdC8qKlxuXHQqIFhYWCBETyBOT1QgVVNFLiBUaGlzIGlzIGEgdGVtcG9yYXJ5IHN0dWIgZnVuY3Rpb24uXG5cdCogWFhYIEl0IFdJTEwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciByZWxlYXNlLlxuXHQqL1xuXHRmdW5jdGlvbiBkZXN0cm95KCkge1xuXHRcdGNvbnNvbGUud2FybignSW5zdGFuY2UgbWV0aG9kIGBkZWJ1Zy5kZXN0cm95KClgIGlzIGRlcHJlY2F0ZWQgYW5kIG5vIGxvbmdlciBkb2VzIGFueXRoaW5nLiBJdCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiBvZiBgZGVidWdgLicpO1xuXHR9XG5cblx0Y3JlYXRlRGVidWcuZW5hYmxlKGNyZWF0ZURlYnVnLmxvYWQoKSk7XG5cblx0cmV0dXJuIGNyZWF0ZURlYnVnO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHNldHVwO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19kZWZQcm9wID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xudmFyIF9fZ2V0T3duUHJvcERlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xudmFyIF9fZ2V0T3duUHJvcE5hbWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM7XG52YXIgX19oYXNPd25Qcm9wID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbnZhciBfX2V4cG9ydCA9ICh0YXJnZXQsIGFsbCkgPT4ge1xuICBmb3IgKHZhciBuYW1lIGluIGFsbClcbiAgICBfX2RlZlByb3AodGFyZ2V0LCBuYW1lLCB7IGdldDogYWxsW25hbWVdLCBlbnVtZXJhYmxlOiB0cnVlIH0pO1xufTtcbnZhciBfX2NvcHlQcm9wcyA9ICh0bywgZnJvbSwgZXhjZXB0LCBkZXNjKSA9PiB7XG4gIGlmIChmcm9tICYmIHR5cGVvZiBmcm9tID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBmcm9tID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICBmb3IgKGxldCBrZXkgb2YgX19nZXRPd25Qcm9wTmFtZXMoZnJvbSkpXG4gICAgICBpZiAoIV9faGFzT3duUHJvcC5jYWxsKHRvLCBrZXkpICYmIGtleSAhPT0gZXhjZXB0KVxuICAgICAgICBfX2RlZlByb3AodG8sIGtleSwgeyBnZXQ6ICgpID0+IGZyb21ba2V5XSwgZW51bWVyYWJsZTogIShkZXNjID0gX19nZXRPd25Qcm9wRGVzYyhmcm9tLCBrZXkpKSB8fCBkZXNjLmVudW1lcmFibGUgfSk7XG4gIH1cbiAgcmV0dXJuIHRvO1xufTtcbnZhciBfX3RvQ29tbW9uSlMgPSAobW9kKSA9PiBfX2NvcHlQcm9wcyhfX2RlZlByb3Aoe30sIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pLCBtb2QpO1xuXG4vLyBzcmMvaW5kZXgudHNcbnZhciBzcmNfZXhwb3J0cyA9IHt9O1xuX19leHBvcnQoc3JjX2V4cG9ydHMsIHtcbiAgdGh1bms6ICgpID0+IHRodW5rLFxuICB3aXRoRXh0cmFBcmd1bWVudDogKCkgPT4gd2l0aEV4dHJhQXJndW1lbnRcbn0pO1xubW9kdWxlLmV4cG9ydHMgPSBfX3RvQ29tbW9uSlMoc3JjX2V4cG9ydHMpO1xuZnVuY3Rpb24gY3JlYXRlVGh1bmtNaWRkbGV3YXJlKGV4dHJhQXJndW1lbnQpIHtcbiAgY29uc3QgbWlkZGxld2FyZSA9ICh7IGRpc3BhdGNoLCBnZXRTdGF0ZSB9KSA9PiAobmV4dCkgPT4gKGFjdGlvbikgPT4ge1xuICAgIGlmICh0eXBlb2YgYWN0aW9uID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIHJldHVybiBhY3Rpb24oZGlzcGF0Y2gsIGdldFN0YXRlLCBleHRyYUFyZ3VtZW50KTtcbiAgICB9XG4gICAgcmV0dXJuIG5leHQoYWN0aW9uKTtcbiAgfTtcbiAgcmV0dXJuIG1pZGRsZXdhcmU7XG59XG52YXIgdGh1bmsgPSBjcmVhdGVUaHVua01pZGRsZXdhcmUoKTtcbnZhciB3aXRoRXh0cmFBcmd1bWVudCA9IGNyZWF0ZVRodW5rTWlkZGxld2FyZTtcbi8vIEFubm90YXRlIHRoZSBDb21tb25KUyBleHBvcnQgbmFtZXMgZm9yIEVTTSBpbXBvcnQgaW4gbm9kZTpcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICB0aHVuayxcbiAgd2l0aEV4dHJhQXJndW1lbnRcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmhhc0JpbmFyeSA9IGV4cG9ydHMuaXNCaW5hcnkgPSB2b2lkIDA7XG5jb25zdCB3aXRoTmF0aXZlQXJyYXlCdWZmZXIgPSB0eXBlb2YgQXJyYXlCdWZmZXIgPT09IFwiZnVuY3Rpb25cIjtcbmNvbnN0IGlzVmlldyA9IChvYmopID0+IHtcbiAgICByZXR1cm4gdHlwZW9mIEFycmF5QnVmZmVyLmlzVmlldyA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgID8gQXJyYXlCdWZmZXIuaXNWaWV3KG9iailcbiAgICAgICAgOiBvYmouYnVmZmVyIGluc3RhbmNlb2YgQXJyYXlCdWZmZXI7XG59O1xuY29uc3QgdG9TdHJpbmcgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO1xuY29uc3Qgd2l0aE5hdGl2ZUJsb2IgPSB0eXBlb2YgQmxvYiA9PT0gXCJmdW5jdGlvblwiIHx8XG4gICAgKHR5cGVvZiBCbG9iICE9PSBcInVuZGVmaW5lZFwiICYmXG4gICAgICAgIHRvU3RyaW5nLmNhbGwoQmxvYikgPT09IFwiW29iamVjdCBCbG9iQ29uc3RydWN0b3JdXCIpO1xuY29uc3Qgd2l0aE5hdGl2ZUZpbGUgPSB0eXBlb2YgRmlsZSA9PT0gXCJmdW5jdGlvblwiIHx8XG4gICAgKHR5cGVvZiBGaWxlICE9PSBcInVuZGVmaW5lZFwiICYmXG4gICAgICAgIHRvU3RyaW5nLmNhbGwoRmlsZSkgPT09IFwiW29iamVjdCBGaWxlQ29uc3RydWN0b3JdXCIpO1xuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgb2JqIGlzIGEgQnVmZmVyLCBhbiBBcnJheUJ1ZmZlciwgYSBCbG9iIG9yIGEgRmlsZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICovXG5mdW5jdGlvbiBpc0JpbmFyeShvYmopIHtcbiAgICByZXR1cm4gKCh3aXRoTmF0aXZlQXJyYXlCdWZmZXIgJiYgKG9iaiBpbnN0YW5jZW9mIEFycmF5QnVmZmVyIHx8IGlzVmlldyhvYmopKSkgfHxcbiAgICAgICAgKHdpdGhOYXRpdmVCbG9iICYmIG9iaiBpbnN0YW5jZW9mIEJsb2IpIHx8XG4gICAgICAgICh3aXRoTmF0aXZlRmlsZSAmJiBvYmogaW5zdGFuY2VvZiBGaWxlKSk7XG59XG5leHBvcnRzLmlzQmluYXJ5ID0gaXNCaW5hcnk7XG5mdW5jdGlvbiBoYXNCaW5hcnkob2JqLCB0b0pTT04pIHtcbiAgICBpZiAoIW9iaiB8fCB0eXBlb2Ygb2JqICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xuICAgICAgICBmb3IgKGxldCBpID0gMCwgbCA9IG9iai5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChoYXNCaW5hcnkob2JqW2ldKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKGlzQmluYXJ5KG9iaikpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChvYmoudG9KU09OICYmXG4gICAgICAgIHR5cGVvZiBvYmoudG9KU09OID09PSBcImZ1bmN0aW9uXCIgJiZcbiAgICAgICAgYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICByZXR1cm4gaGFzQmluYXJ5KG9iai50b0pTT04oKSwgdHJ1ZSk7XG4gICAgfVxuICAgIGZvciAoY29uc3Qga2V5IGluIG9iaikge1xuICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSAmJiBoYXNCaW5hcnkob2JqW2tleV0pKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59XG5leHBvcnRzLmhhc0JpbmFyeSA9IGhhc0JpbmFyeTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gKHN0YXRlID0gW10sIGFjdGlvbikgPT4ge1xuICAgIGNvbnN0IHsgcG9zdHMsIHJhbmtBbGwsIHR1bmVDaCB9ID0gYWN0aW9uO1xuICAgIGxldCBwb3N0c0NudCA9IHBvc3RzPy5sZW5ndGggfHwgMDtcbiAgICBsZXQgcmFua0NudCA9IHJhbmtBbGw/Lmxlbmd0aCB8fCAwO1xuICAgIGNvbnN0IHNvcnRMaXZlQ250ID0gKGEsIGIpID0+IHtcbiAgICAgICAgaWYgKCF0dW5lQ2gpXG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgaWYgKGEuY29ubmVjdGlvbiA9PT0gdHVuZUNoLmNvbm5lY3Rpb24gfHwgYi5jb25uZWN0aW9uID09PSB0dW5lQ2guY29ubmVjdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGEubGl2ZUNudCA8IGIubGl2ZUNudClcbiAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICBpZiAoYS5saXZlQ250ID4gYi5saXZlQ250KVxuICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICByZXR1cm4gMDtcbiAgICB9O1xuICAgIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICAgICAgY2FzZSAnU0VSVkVSX1RPX0FQSVtFTUlUXTpmZXRjaFBvc3RzJzpcbiAgICAgICAgICAgIGlmICh0dW5lQ2ggJiYgcG9zdHMpIHtcbiAgICAgICAgICAgICAgICBpZiAocG9zdHNDbnQgPT09IDApXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGUubWFwKChyYW5rKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0dW5lQ2guY29ubmVjdGlvbiA9PT0gcmFuay5jb25uZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnJhbmssXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgIGZhdmljb246IHBvc3RzW3Bvc3RzQ250IC0gMV0uZmF2aWNvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFtcElkOiBwb3N0c1twb3N0c0NudCAtIDFdLnN0YW1wSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zdDogcG9zdHNbcG9zdHNDbnQgLSAxXS5jb250ZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByYW5rO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIGNhc2UgJ1NFUlZFUl9UT19BUElbQlJPQURDQVNUXTp0dW5lJzpcbiAgICAgICAgY2FzZSAnU0VSVkVSX1RPX0FQSVtCUk9BRENBU1RdOmNoYW5nZVRocmVhZCc6XG4gICAgICAgIGNhc2UgJ1NFUlZFUl9UT19BUElbQlJPQURDQVNUXTp1bnR1bmUnOlxuICAgICAgICAgICAgaWYgKHR1bmVDaCAmJiByYW5rQWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFsuLi5yYW5rQWxsXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgY2FzZSAnU0VSVkVSX1RPX0FQSVtCUk9BRENBU1RdOnBvc3RzJzpcbiAgICAgICAgICAgIGlmIChwb3N0cykge1xuICAgICAgICAgICAgICAgIHJldHVybiBzdGF0ZS5tYXAoKHJhbmspID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBvc3RzWzBdLmNvbm5lY3Rpb24gPT09IHJhbmsuY29ubmVjdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgLi4ucmFuaywgbGF0ZXN0UG9zdDogcG9zdHNbMF0gfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmFuaztcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgY2FzZSAnU0VSVkVSX1RPX0FQSVtFTUlUXTpyYW5rJzpcbiAgICAgICAgICAgIC8vIHN0YXRl44GoYWN0aW9uLnJhbmvjga7kuKHmlrnlrZjlnKjjgZnjgovloLTlkIhcbiAgICAgICAgICAgIGlmIChzdGF0ZSAmJiBzdGF0ZS5sZW5ndGggPiAwICYmIHJhbmtBbGwgJiYgcmFua0NudCA+IDApIHtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdSYW5rcyA9IFtdO1xuICAgICAgICAgICAgICAgIGxldCBsYXN0UG9zdCA9IHJhbmtBbGxbMF07XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByYW5rQ250OyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1JhbmsgPSByYW5rQWxsW2ldO1xuICAgICAgICAgICAgICAgICAgICBsYXN0UG9zdCA9IG5ld1JhbmsudXBkYXRlVGltZSA+IGxhc3RQb3N0LnVwZGF0ZVRpbWUgPyBuZXdSYW5rIDogbGFzdFBvc3Q7XG4gICAgICAgICAgICAgICAgICAgIGlmIChuZXdSYW5rLmNvbm5lY3Rpb24gPT09IHN0YXRlWzBdLmNvbm5lY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1JhbmsgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ubmV3UmFuayxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXZlQ250OiBzdGF0ZVswXS5saXZlQ250LFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBuZXdSYW5rcy5wdXNoKG5ld1JhbmspO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBuZXdSYW5rcy5zb3J0KHNvcnRMaXZlQ250KTtcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgbmV3UmFua3NbMF0uZmF2aWNvbiA9IGxhc3RQb3N0LmZhdmljb247XG4gICAgICAgICAgICAgICAgbmV3UmFua3NbMF0uY29udGVudCA9IGxhc3RQb3N0LmNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgbmV3UmFua3NbMF0uc3RhbXBJZCA9IGxhc3RQb3N0LnN0YW1wSWQ7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ld1JhbmtzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFjdGlvbi5yYW5rQWxsID8gYWN0aW9uLnJhbmtBbGwgOiBzdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBhY3Rpb24ucmFua0FsbCA/IGFjdGlvbi5yYW5rQWxsIDogc3RhdGU7XG4gICAgfVxufTtcbiIsIi8qIGVzbGludC1lbnYgYnJvd3NlciAqL1xuXG4vKipcbiAqIFRoaXMgaXMgdGhlIHdlYiBicm93c2VyIGltcGxlbWVudGF0aW9uIG9mIGBkZWJ1ZygpYC5cbiAqL1xuXG5leHBvcnRzLmZvcm1hdEFyZ3MgPSBmb3JtYXRBcmdzO1xuZXhwb3J0cy5zYXZlID0gc2F2ZTtcbmV4cG9ydHMubG9hZCA9IGxvYWQ7XG5leHBvcnRzLnVzZUNvbG9ycyA9IHVzZUNvbG9ycztcbmV4cG9ydHMuc3RvcmFnZSA9IGxvY2Fsc3RvcmFnZSgpO1xuZXhwb3J0cy5kZXN0cm95ID0gKCgpID0+IHtcblx0bGV0IHdhcm5lZCA9IGZhbHNlO1xuXG5cdHJldHVybiAoKSA9PiB7XG5cdFx0aWYgKCF3YXJuZWQpIHtcblx0XHRcdHdhcm5lZCA9IHRydWU7XG5cdFx0XHRjb25zb2xlLndhcm4oJ0luc3RhbmNlIG1ldGhvZCBgZGVidWcuZGVzdHJveSgpYCBpcyBkZXByZWNhdGVkIGFuZCBubyBsb25nZXIgZG9lcyBhbnl0aGluZy4gSXQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gb2YgYGRlYnVnYC4nKTtcblx0XHR9XG5cdH07XG59KSgpO1xuXG4vKipcbiAqIENvbG9ycy5cbiAqL1xuXG5leHBvcnRzLmNvbG9ycyA9IFtcblx0JyMwMDAwQ0MnLFxuXHQnIzAwMDBGRicsXG5cdCcjMDAzM0NDJyxcblx0JyMwMDMzRkYnLFxuXHQnIzAwNjZDQycsXG5cdCcjMDA2NkZGJyxcblx0JyMwMDk5Q0MnLFxuXHQnIzAwOTlGRicsXG5cdCcjMDBDQzAwJyxcblx0JyMwMENDMzMnLFxuXHQnIzAwQ0M2NicsXG5cdCcjMDBDQzk5Jyxcblx0JyMwMENDQ0MnLFxuXHQnIzAwQ0NGRicsXG5cdCcjMzMwMENDJyxcblx0JyMzMzAwRkYnLFxuXHQnIzMzMzNDQycsXG5cdCcjMzMzM0ZGJyxcblx0JyMzMzY2Q0MnLFxuXHQnIzMzNjZGRicsXG5cdCcjMzM5OUNDJyxcblx0JyMzMzk5RkYnLFxuXHQnIzMzQ0MwMCcsXG5cdCcjMzNDQzMzJyxcblx0JyMzM0NDNjYnLFxuXHQnIzMzQ0M5OScsXG5cdCcjMzNDQ0NDJyxcblx0JyMzM0NDRkYnLFxuXHQnIzY2MDBDQycsXG5cdCcjNjYwMEZGJyxcblx0JyM2NjMzQ0MnLFxuXHQnIzY2MzNGRicsXG5cdCcjNjZDQzAwJyxcblx0JyM2NkNDMzMnLFxuXHQnIzk5MDBDQycsXG5cdCcjOTkwMEZGJyxcblx0JyM5OTMzQ0MnLFxuXHQnIzk5MzNGRicsXG5cdCcjOTlDQzAwJyxcblx0JyM5OUNDMzMnLFxuXHQnI0NDMDAwMCcsXG5cdCcjQ0MwMDMzJyxcblx0JyNDQzAwNjYnLFxuXHQnI0NDMDA5OScsXG5cdCcjQ0MwMENDJyxcblx0JyNDQzAwRkYnLFxuXHQnI0NDMzMwMCcsXG5cdCcjQ0MzMzMzJyxcblx0JyNDQzMzNjYnLFxuXHQnI0NDMzM5OScsXG5cdCcjQ0MzM0NDJyxcblx0JyNDQzMzRkYnLFxuXHQnI0NDNjYwMCcsXG5cdCcjQ0M2NjMzJyxcblx0JyNDQzk5MDAnLFxuXHQnI0NDOTkzMycsXG5cdCcjQ0NDQzAwJyxcblx0JyNDQ0NDMzMnLFxuXHQnI0ZGMDAwMCcsXG5cdCcjRkYwMDMzJyxcblx0JyNGRjAwNjYnLFxuXHQnI0ZGMDA5OScsXG5cdCcjRkYwMENDJyxcblx0JyNGRjAwRkYnLFxuXHQnI0ZGMzMwMCcsXG5cdCcjRkYzMzMzJyxcblx0JyNGRjMzNjYnLFxuXHQnI0ZGMzM5OScsXG5cdCcjRkYzM0NDJyxcblx0JyNGRjMzRkYnLFxuXHQnI0ZGNjYwMCcsXG5cdCcjRkY2NjMzJyxcblx0JyNGRjk5MDAnLFxuXHQnI0ZGOTkzMycsXG5cdCcjRkZDQzAwJyxcblx0JyNGRkNDMzMnXG5dO1xuXG4vKipcbiAqIEN1cnJlbnRseSBvbmx5IFdlYktpdC1iYXNlZCBXZWIgSW5zcGVjdG9ycywgRmlyZWZveCA+PSB2MzEsXG4gKiBhbmQgdGhlIEZpcmVidWcgZXh0ZW5zaW9uIChhbnkgRmlyZWZveCB2ZXJzaW9uKSBhcmUga25vd25cbiAqIHRvIHN1cHBvcnQgXCIlY1wiIENTUyBjdXN0b21pemF0aW9ucy5cbiAqXG4gKiBUT0RPOiBhZGQgYSBgbG9jYWxTdG9yYWdlYCB2YXJpYWJsZSB0byBleHBsaWNpdGx5IGVuYWJsZS9kaXNhYmxlIGNvbG9yc1xuICovXG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb21wbGV4aXR5XG5mdW5jdGlvbiB1c2VDb2xvcnMoKSB7XG5cdC8vIE5COiBJbiBhbiBFbGVjdHJvbiBwcmVsb2FkIHNjcmlwdCwgZG9jdW1lbnQgd2lsbCBiZSBkZWZpbmVkIGJ1dCBub3QgZnVsbHlcblx0Ly8gaW5pdGlhbGl6ZWQuIFNpbmNlIHdlIGtub3cgd2UncmUgaW4gQ2hyb21lLCB3ZSdsbCBqdXN0IGRldGVjdCB0aGlzIGNhc2Vcblx0Ly8gZXhwbGljaXRseVxuXHRpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LnByb2Nlc3MgJiYgKHdpbmRvdy5wcm9jZXNzLnR5cGUgPT09ICdyZW5kZXJlcicgfHwgd2luZG93LnByb2Nlc3MuX19ud2pzKSkge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG5cblx0Ly8gSW50ZXJuZXQgRXhwbG9yZXIgYW5kIEVkZ2UgZG8gbm90IHN1cHBvcnQgY29sb3JzLlxuXHRpZiAodHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudCAmJiBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goLyhlZGdlfHRyaWRlbnQpXFwvKFxcZCspLykpIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHRsZXQgbTtcblxuXHQvLyBJcyB3ZWJraXQ/IGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9hLzE2NDU5NjA2LzM3Njc3M1xuXHQvLyBkb2N1bWVudCBpcyB1bmRlZmluZWQgaW4gcmVhY3QtbmF0aXZlOiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QtbmF0aXZlL3B1bGwvMTYzMlxuXHRyZXR1cm4gKHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcgJiYgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ICYmIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZSAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuV2Via2l0QXBwZWFyYW5jZSkgfHxcblx0XHQvLyBJcyBmaXJlYnVnPyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8zOTgxMjAvMzc2NzczXG5cdFx0KHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5jb25zb2xlICYmICh3aW5kb3cuY29uc29sZS5maXJlYnVnIHx8ICh3aW5kb3cuY29uc29sZS5leGNlcHRpb24gJiYgd2luZG93LmNvbnNvbGUudGFibGUpKSkgfHxcblx0XHQvLyBJcyBmaXJlZm94ID49IHYzMT9cblx0XHQvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1Rvb2xzL1dlYl9Db25zb2xlI1N0eWxpbmdfbWVzc2FnZXNcblx0XHQodHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudCAmJiAobSA9IG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5tYXRjaCgvZmlyZWZveFxcLyhcXGQrKS8pKSAmJiBwYXJzZUludChtWzFdLCAxMCkgPj0gMzEpIHx8XG5cdFx0Ly8gRG91YmxlIGNoZWNrIHdlYmtpdCBpbiB1c2VyQWdlbnQganVzdCBpbiBjYXNlIHdlIGFyZSBpbiBhIHdvcmtlclxuXHRcdCh0eXBlb2YgbmF2aWdhdG9yICE9PSAndW5kZWZpbmVkJyAmJiBuYXZpZ2F0b3IudXNlckFnZW50ICYmIG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5tYXRjaCgvYXBwbGV3ZWJraXRcXC8oXFxkKykvKSk7XG59XG5cbi8qKlxuICogQ29sb3JpemUgbG9nIGFyZ3VtZW50cyBpZiBlbmFibGVkLlxuICpcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZnVuY3Rpb24gZm9ybWF0QXJncyhhcmdzKSB7XG5cdGFyZ3NbMF0gPSAodGhpcy51c2VDb2xvcnMgPyAnJWMnIDogJycpICtcblx0XHR0aGlzLm5hbWVzcGFjZSArXG5cdFx0KHRoaXMudXNlQ29sb3JzID8gJyAlYycgOiAnICcpICtcblx0XHRhcmdzWzBdICtcblx0XHQodGhpcy51c2VDb2xvcnMgPyAnJWMgJyA6ICcgJykgK1xuXHRcdCcrJyArIG1vZHVsZS5leHBvcnRzLmh1bWFuaXplKHRoaXMuZGlmZik7XG5cblx0aWYgKCF0aGlzLnVzZUNvbG9ycykge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNvbnN0IGMgPSAnY29sb3I6ICcgKyB0aGlzLmNvbG9yO1xuXHRhcmdzLnNwbGljZSgxLCAwLCBjLCAnY29sb3I6IGluaGVyaXQnKTtcblxuXHQvLyBUaGUgZmluYWwgXCIlY1wiIGlzIHNvbWV3aGF0IHRyaWNreSwgYmVjYXVzZSB0aGVyZSBjb3VsZCBiZSBvdGhlclxuXHQvLyBhcmd1bWVudHMgcGFzc2VkIGVpdGhlciBiZWZvcmUgb3IgYWZ0ZXIgdGhlICVjLCBzbyB3ZSBuZWVkIHRvXG5cdC8vIGZpZ3VyZSBvdXQgdGhlIGNvcnJlY3QgaW5kZXggdG8gaW5zZXJ0IHRoZSBDU1MgaW50b1xuXHRsZXQgaW5kZXggPSAwO1xuXHRsZXQgbGFzdEMgPSAwO1xuXHRhcmdzWzBdLnJlcGxhY2UoLyVbYS16QS1aJV0vZywgbWF0Y2ggPT4ge1xuXHRcdGlmIChtYXRjaCA9PT0gJyUlJykge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRpbmRleCsrO1xuXHRcdGlmIChtYXRjaCA9PT0gJyVjJykge1xuXHRcdFx0Ly8gV2Ugb25seSBhcmUgaW50ZXJlc3RlZCBpbiB0aGUgKmxhc3QqICVjXG5cdFx0XHQvLyAodGhlIHVzZXIgbWF5IGhhdmUgcHJvdmlkZWQgdGhlaXIgb3duKVxuXHRcdFx0bGFzdEMgPSBpbmRleDtcblx0XHR9XG5cdH0pO1xuXG5cdGFyZ3Muc3BsaWNlKGxhc3RDLCAwLCBjKTtcbn1cblxuLyoqXG4gKiBJbnZva2VzIGBjb25zb2xlLmRlYnVnKClgIHdoZW4gYXZhaWxhYmxlLlxuICogTm8tb3Agd2hlbiBgY29uc29sZS5kZWJ1Z2AgaXMgbm90IGEgXCJmdW5jdGlvblwiLlxuICogSWYgYGNvbnNvbGUuZGVidWdgIGlzIG5vdCBhdmFpbGFibGUsIGZhbGxzIGJhY2tcbiAqIHRvIGBjb25zb2xlLmxvZ2AuXG4gKlxuICogQGFwaSBwdWJsaWNcbiAqL1xuZXhwb3J0cy5sb2cgPSBjb25zb2xlLmRlYnVnIHx8IGNvbnNvbGUubG9nIHx8ICgoKSA9PiB7fSk7XG5cbi8qKlxuICogU2F2ZSBgbmFtZXNwYWNlc2AuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IG5hbWVzcGFjZXNcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5mdW5jdGlvbiBzYXZlKG5hbWVzcGFjZXMpIHtcblx0dHJ5IHtcblx0XHRpZiAobmFtZXNwYWNlcykge1xuXHRcdFx0ZXhwb3J0cy5zdG9yYWdlLnNldEl0ZW0oJ2RlYnVnJywgbmFtZXNwYWNlcyk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGV4cG9ydHMuc3RvcmFnZS5yZW1vdmVJdGVtKCdkZWJ1ZycpO1xuXHRcdH1cblx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHQvLyBTd2FsbG93XG5cdFx0Ly8gWFhYIChAUWl4LSkgc2hvdWxkIHdlIGJlIGxvZ2dpbmcgdGhlc2U/XG5cdH1cbn1cblxuLyoqXG4gKiBMb2FkIGBuYW1lc3BhY2VzYC5cbiAqXG4gKiBAcmV0dXJuIHtTdHJpbmd9IHJldHVybnMgdGhlIHByZXZpb3VzbHkgcGVyc2lzdGVkIGRlYnVnIG1vZGVzXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gbG9hZCgpIHtcblx0bGV0IHI7XG5cdHRyeSB7XG5cdFx0ciA9IGV4cG9ydHMuc3RvcmFnZS5nZXRJdGVtKCdkZWJ1ZycpO1xuXHR9IGNhdGNoIChlcnJvcikge1xuXHRcdC8vIFN3YWxsb3dcblx0XHQvLyBYWFggKEBRaXgtKSBzaG91bGQgd2UgYmUgbG9nZ2luZyB0aGVzZT9cblx0fVxuXG5cdC8vIElmIGRlYnVnIGlzbid0IHNldCBpbiBMUywgYW5kIHdlJ3JlIGluIEVsZWN0cm9uLCB0cnkgdG8gbG9hZCAkREVCVUdcblx0aWYgKCFyICYmIHR5cGVvZiBwcm9jZXNzICE9PSAndW5kZWZpbmVkJyAmJiAnZW52JyBpbiBwcm9jZXNzKSB7XG5cdFx0ciA9IHByb2Nlc3MuZW52LkRFQlVHO1xuXHR9XG5cblx0cmV0dXJuIHI7XG59XG5cbi8qKlxuICogTG9jYWxzdG9yYWdlIGF0dGVtcHRzIHRvIHJldHVybiB0aGUgbG9jYWxzdG9yYWdlLlxuICpcbiAqIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2Ugc2FmYXJpIHRocm93c1xuICogd2hlbiBhIHVzZXIgZGlzYWJsZXMgY29va2llcy9sb2NhbHN0b3JhZ2VcbiAqIGFuZCB5b3UgYXR0ZW1wdCB0byBhY2Nlc3MgaXQuXG4gKlxuICogQHJldHVybiB7TG9jYWxTdG9yYWdlfVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gbG9jYWxzdG9yYWdlKCkge1xuXHR0cnkge1xuXHRcdC8vIFRWTUxLaXQgKEFwcGxlIFRWIEpTIFJ1bnRpbWUpIGRvZXMgbm90IGhhdmUgYSB3aW5kb3cgb2JqZWN0LCBqdXN0IGxvY2FsU3RvcmFnZSBpbiB0aGUgZ2xvYmFsIGNvbnRleHRcblx0XHQvLyBUaGUgQnJvd3NlciBhbHNvIGhhcyBsb2NhbFN0b3JhZ2UgaW4gdGhlIGdsb2JhbCBjb250ZXh0LlxuXHRcdHJldHVybiBsb2NhbFN0b3JhZ2U7XG5cdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0Ly8gU3dhbGxvd1xuXHRcdC8vIFhYWCAoQFFpeC0pIHNob3VsZCB3ZSBiZSBsb2dnaW5nIHRoZXNlP1xuXHR9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9jb21tb24nKShleHBvcnRzKTtcblxuY29uc3Qge2Zvcm1hdHRlcnN9ID0gbW9kdWxlLmV4cG9ydHM7XG5cbi8qKlxuICogTWFwICVqIHRvIGBKU09OLnN0cmluZ2lmeSgpYCwgc2luY2Ugbm8gV2ViIEluc3BlY3RvcnMgZG8gdGhhdCBieSBkZWZhdWx0LlxuICovXG5cbmZvcm1hdHRlcnMuaiA9IGZ1bmN0aW9uICh2KSB7XG5cdHRyeSB7XG5cdFx0cmV0dXJuIEpTT04uc3RyaW5naWZ5KHYpO1xuXHR9IGNhdGNoIChlcnJvcikge1xuXHRcdHJldHVybiAnW1VuZXhwZWN0ZWRKU09OUGFyc2VFcnJvcl06ICcgKyBlcnJvci5tZXNzYWdlO1xuXHR9XG59O1xuIiwiXG4ndXNlIHN0cmljdCdcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2ltbWVyLmNqcy5wcm9kdWN0aW9uLmpzJylcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9pbW1lci5janMuZGV2ZWxvcG1lbnQuanMnKVxufSIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy50cmFuc3BvcnRzID0gdm9pZCAwO1xuY29uc3QgcG9sbGluZ19qc18xID0gcmVxdWlyZShcIi4vcG9sbGluZy5qc1wiKTtcbmNvbnN0IHdlYnNvY2tldF9qc18xID0gcmVxdWlyZShcIi4vd2Vic29ja2V0LmpzXCIpO1xuY29uc3Qgd2VidHJhbnNwb3J0X2pzXzEgPSByZXF1aXJlKFwiLi93ZWJ0cmFuc3BvcnQuanNcIik7XG5leHBvcnRzLnRyYW5zcG9ydHMgPSB7XG4gICAgd2Vic29ja2V0OiB3ZWJzb2NrZXRfanNfMS5XUyxcbiAgICB3ZWJ0cmFuc3BvcnQ6IHdlYnRyYW5zcG9ydF9qc18xLldULFxuICAgIHBvbGxpbmc6IHBvbGxpbmdfanNfMS5Qb2xsaW5nLFxufTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9fY3JlYXRlQmluZGluZyA9ICh0aGlzICYmIHRoaXMuX19jcmVhdGVCaW5kaW5nKSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sIGspO1xuICAgIGlmICghZGVzYyB8fCAoXCJnZXRcIiBpbiBkZXNjID8gIW0uX19lc01vZHVsZSA6IGRlc2Mud3JpdGFibGUgfHwgZGVzYy5jb25maWd1cmFibGUpKSB7XG4gICAgICBkZXNjID0geyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gbVtrXTsgfSB9O1xuICAgIH1cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIGRlc2MpO1xufSkgOiAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIG9bazJdID0gbVtrXTtcbn0pKTtcbnZhciBfX3NldE1vZHVsZURlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9fc2V0TW9kdWxlRGVmYXVsdCkgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgdikge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBcImRlZmF1bHRcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdiB9KTtcbn0pIDogZnVuY3Rpb24obywgdikge1xuICAgIG9bXCJkZWZhdWx0XCJdID0gdjtcbn0pO1xudmFyIF9faW1wb3J0U3RhciA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnRTdGFyKSB8fCAoZnVuY3Rpb24gKCkge1xuICAgIHZhciBvd25LZXlzID0gZnVuY3Rpb24obykge1xuICAgICAgICBvd25LZXlzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMgfHwgZnVuY3Rpb24gKG8pIHtcbiAgICAgICAgICAgIHZhciBhciA9IFtdO1xuICAgICAgICAgICAgZm9yICh2YXIgayBpbiBvKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG8sIGspKSBhclthci5sZW5ndGhdID0gaztcbiAgICAgICAgICAgIHJldHVybiBhcjtcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIG93bktleXMobyk7XG4gICAgfTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKG1vZCkge1xuICAgICAgICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSByZXR1cm4gbW9kO1xuICAgICAgICB2YXIgcmVzdWx0ID0ge307XG4gICAgICAgIGlmIChtb2QgIT0gbnVsbCkgZm9yICh2YXIgayA9IG93bktleXMobW9kKSwgaSA9IDA7IGkgPCBrLmxlbmd0aDsgaSsrKSBpZiAoa1tpXSAhPT0gXCJkZWZhdWx0XCIpIF9fY3JlYXRlQmluZGluZyhyZXN1bHQsIG1vZCwga1tpXSk7XG4gICAgICAgIF9fc2V0TW9kdWxlRGVmYXVsdChyZXN1bHQsIG1vZCk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfTtcbn0pKCk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmluaXRzID0gdm9pZCAwO1xuY29uc3QgQm9vdE9wdGlvbl8xID0gX19pbXBvcnRTdGFyKHJlcXVpcmUoXCIuL0Jvb3RPcHRpb25cIikpO1xuY29uc3QgQ2hfMSA9IF9faW1wb3J0U3RhcihyZXF1aXJlKFwiLi9DaFwiKSk7XG5jb25zdCBDaERldGFpbF8xID0gX19pbXBvcnRTdGFyKHJlcXVpcmUoXCIuL0NoRGV0YWlsXCIpKTtcbmNvbnN0IFBvc3RfMSA9IF9faW1wb3J0U3RhcihyZXF1aXJlKFwiLi9Qb3N0XCIpKTtcbmNvbnN0IFJhbmtfMSA9IF9faW1wb3J0U3RhcihyZXF1aXJlKFwiLi9SYW5rXCIpKTtcbmNvbnN0IENoQ29uZmlnXzEgPSBfX2ltcG9ydFN0YXIocmVxdWlyZShcIi4vQ2hDb25maWdcIikpO1xuY29uc3QgVHVuZU9wdGlvbl8xID0gX19pbXBvcnRTdGFyKHJlcXVpcmUoXCIuL1R1bmVPcHRpb25cIikpO1xuZXhwb3J0cy5pbml0cyA9IHtcbiAgICBib290T3B0aW9uOiBCb290T3B0aW9uXzEuaW5pdCxcbiAgICBjaDogQ2hfMS5pbml0LFxuICAgIGNoRGV0YWlsOiBDaERldGFpbF8xLmluaXQsXG4gICAgcG9zdDogUG9zdF8xLmluaXQsXG4gICAgcmFuazogUmFua18xLmluaXQsXG4gICAgY2hUcmVlOiBDaENvbmZpZ18xLmluaXQsXG4gICAgdHVuZU9wdGlvbjogVHVuZU9wdGlvbl8xLmluaXQsXG59O1xuZXhwb3J0cy5kZWZhdWx0ID0ge1xuICAgIEJvb3RPcHRpb246IEJvb3RPcHRpb25fMS5kZWZhdWx0LFxuICAgIENoOiBDaF8xLmRlZmF1bHQsXG4gICAgQ2hEZXRhaWw6IENoRGV0YWlsXzEuZGVmYXVsdCxcbiAgICBSYW5rOiBSYW5rXzEuZGVmYXVsdCxcbiAgICBQb3N0OiBQb3N0XzEuZGVmYXVsdCxcbiAgICBDaENvbmZpZzogQ2hDb25maWdfMS5kZWZhdWx0LFxuICAgIFR1bmVPcHRpb246IFR1bmVPcHRpb25fMS5kZWZhdWx0LFxufTtcbiIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5jcmVhdGVTdG9yZXNEaXNwYXRjaGVyID0gZXhwb3J0cy5TdG9yZXNEaXNwYXRjaGVyID0gZXhwb3J0cy5saW1pdFBpZENudCA9IHZvaWQgMDtcbmNvbnN0IF9maWxlbmFtZV9Xc3NXb3JrZXJfanNfXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIndvcmtlci1sb2FkZXI/aW5saW5lPWZhbGxiYWNrJnB1YmxpY1BhdGg9LyZmaWxlbmFtZT1Xc3NXb3JrZXIuanMhLi9cIikpO1xuY29uc3QgbW9kZWxzXzEgPSByZXF1aXJlKFwiQGNvbW1vbi9tb2RlbHNcIik7XG5jb25zdCBTZXF1ZW5jZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJAY29tbW9uL1NlcXVlbmNlXCIpKTtcbmNvbnN0IHV0aWxzXzEgPSByZXF1aXJlKFwiQGNvbW1vbi91dGlsc1wiKTtcbmNvbnN0IHN0b3JlXzEgPSByZXF1aXJlKFwiQGFwaS1jbGllbnQvcmVkdXgvc3RvcmVcIik7XG5jb25zdCBzdGF0ZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJAYXBpLWNsaWVudC9zdGF0ZVwiKSk7XG5jb25zdCBfMSA9IHJlcXVpcmUoXCIuXCIpO1xuY29uc3QgQ2hfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiQGNvbW1vbi9tb2RlbHMvQ2hcIikpO1xuY29uc3Qgb3B0aW9uc0luaXQgPSB7XG4gICAgaXNUdW5lU2FtZUNoOiBmYWxzZSxcbiAgICBpc1R1bmVNdWx0aUNoOiBmYWxzZSxcbiAgICBpc0RlYnVnOiB0cnVlLFxufTtcbmNvbnN0IHNlcGFyYXRvciA9IHV0aWxzXzEuZ2VuZXJhdGVVbmlxdWVLZXlTZXBhcmF0b3I7XG4vLyDkvYbjgZfjgIFjaHJvbWXjgaflsILnlKjjg6/jg7zjgqvjg7wxNjfku7bjgavpgZTjgZnjgovjgajlvLfliLbnmoTjgavjgqjjg6njg7wg44Kz44O844OJOiA144GM55m655Sf44GZ44KLXG5leHBvcnRzLmxpbWl0UGlkQ250ID0gMTAwMDtcbmNsYXNzIFN0b3Jlc0Rpc3BhdGNoZXIge1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMgPSBvcHRpb25zSW5pdCkge1xuICAgICAgICB0aGlzLmdldEdlbmVyYXRlUGlkRXJyb3JDb2RlID0gdGhpcy5nZXRHZW5lcmF0ZVBpZEVycm9yQ29kZS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLnBvc3RNZXNzYWdlID0gdGhpcy5wb3N0TWVzc2FnZS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLm9uRXJyb3IgPSB0aGlzLm9uRXJyb3IuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy51aWQgPSAoMCwgdXRpbHNfMS5nZW5lcmF0ZVVuaXF1ZUtleSkoJ3VpZCcpO1xuICAgICAgICB0aGlzLnVzZVR1bmVJZCA9ICcnO1xuICAgICAgICB0aGlzLnR1bmVJZHMgPSB7fTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICAgICAgdGhpcy5jYWxsYmFjayA9ICgpID0+IHsgfTtcbiAgICAgICAgLy8gcHVibGljIGFwaSBlbmRwb2ludC5cbiAgICAgICAgdGhpcy5nZXRUdW5lUGlkID0gdGhpcy5nZXRUdW5lUGlkLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuZ2V0VHVuZUlkcyA9IHRoaXMuZ2V0VHVuZUlkcy5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmdldFN0YXRlID0gdGhpcy5nZXRTdGF0ZS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLnR1bmUgPSB0aGlzLnR1bmUuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy51bnR1bmUgPSB0aGlzLnVudHVuZS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmZldGNoUmFuayA9IHRoaXMuZmV0Y2hSYW5rLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuZmV0Y2hQb3N0cyA9IHRoaXMuZmV0Y2hQb3N0cy5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmZldGNoRGV0YWlsID0gdGhpcy5mZXRjaERldGFpbC5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLnBvc3QgPSB0aGlzLnBvc3QuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5vblN0YXRlcyA9IHRoaXMub25TdGF0ZXMuYmluZCh0aGlzKTtcbiAgICB9XG4gICAgZ2V0VHVuZUlkcygpIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMudHVuZUlkcyk7XG4gICAgfVxuICAgIGdldFN0YXRlKHR1bmVJZCkge1xuICAgICAgICBjb25zdCB0dW5lSWRLZXkgPSB0dW5lSWQgPyB0dW5lSWQgOiB0aGlzLnVzZVR1bmVJZDtcbiAgICAgICAgaWYgKHRoaXMudHVuZUlkc1t0dW5lSWRLZXldKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy50dW5lSWRzW3R1bmVJZEtleV0uc3RvcmUuZ2V0U3RhdGUoKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBUT0RPXG4gICAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gICAgYXN5bmMgZ2V0UmVzcG9uc2UodHVuZUlkID0gdGhpcy51c2VUdW5lSWQpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuZ2V0U3RhdGUodHVuZUlkKTtcbiAgICAgICAgICAgIHJlc29sdmUoeyBzdGF0ZSwgdHVuZUlkIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgYXN5bmMgdHVuZShjb25uZWN0aW9uLCBwYXJhbXMgPSBtb2RlbHNfMS5pbml0cy50dW5lT3B0aW9uLCBfb25DaGFuZ2VTdGF0ZSkge1xuICAgICAgICBjb25zdCBnZW5lcmF0ZVBpZEVycm9yQ29kZSA9IHRoaXMuZ2V0R2VuZXJhdGVQaWRFcnJvckNvZGUoY29ubmVjdGlvbik7XG4gICAgICAgIGlmIChnZW5lcmF0ZVBpZEVycm9yQ29kZSA9PT0gJycpIHtcbiAgICAgICAgICAgIGNvbnN0IG9uQ2hhbmdlU3RhdGUgPSB0eXBlb2YgcGFyYW1zID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICAgICAgPyBwYXJhbXNcbiAgICAgICAgICAgICAgICA6IHR5cGVvZiBfb25DaGFuZ2VTdGF0ZSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgICAgICAgICA/IF9vbkNoYW5nZVN0YXRlXG4gICAgICAgICAgICAgICAgICAgIDogKCkgPT4geyB9O1xuICAgICAgICAgICAgdGhpcy51c2VUdW5lSWQgPSB0aGlzLmdldFR1bmVQaWQoY29ubmVjdGlvbik7XG4gICAgICAgICAgICB0aGlzLnR1bmVJZHNbdGhpcy51c2VUdW5lSWRdID0ge1xuICAgICAgICAgICAgICAgIHBpZDogJycsXG4gICAgICAgICAgICAgICAgc3RvcmU6ICgwLCBzdG9yZV8xLmNyZWF0ZUFwaVN0b3JlKSgpLFxuICAgICAgICAgICAgICAgIHdzc1dvcmtlcjogbmV3IF9maWxlbmFtZV9Xc3NXb3JrZXJfanNfXzEuZGVmYXVsdCgpLFxuICAgICAgICAgICAgICAgIHN0YXR1czogXzEuc3RhdHVzVHVubmluZyxcbiAgICAgICAgICAgICAgICBvbkNoYW5nZVN0YXRlLFxuICAgICAgICAgICAgICAgIHVuc3Vic2NyaWJlOiAoKSA9PiB7IH0sXG4gICAgICAgICAgICAgICAgcmVzb2x2ZTogKCkgPT4geyB9LFxuICAgICAgICAgICAgICAgIHJlamVjdDogKCkgPT4geyB9LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vIGJvb3Qgd3NzV29ya2VyLlxuICAgICAgICAgICAgdGhpcy50dW5lSWRzW3RoaXMudXNlVHVuZUlkXS53c3NXb3JrZXIub25lcnJvciA9IHRoaXMub25FcnJvcjtcbiAgICAgICAgICAgIHRoaXMudHVuZUlkc1t0aGlzLnVzZVR1bmVJZF0ud3NzV29ya2VyLm9ubWVzc2FnZSA9IHRoaXMub25NZXNzYWdlLmJpbmQodGhpcyk7XG4gICAgICAgICAgICBjb25zdCB0dW5lT3B0aW9uID0gdHlwZW9mIHBhcmFtcyA9PT0gJ29iamVjdCcgPyBwYXJhbXMgOiBtb2RlbHNfMS5pbml0cy50dW5lT3B0aW9uO1xuICAgICAgICAgICAgY29uc3QgYm9vdE9wdGlvbiA9IHsgLi4ubW9kZWxzXzEuaW5pdHMuYm9vdE9wdGlvbiwgY29ubmVjdGlvbiwgdHVuZU9wdGlvbiB9O1xuICAgICAgICAgICAgY29uc3QgYXBpU3RhdGUgPSBuZXcgc3RhdGVfMS5kZWZhdWx0KHsgYm9vdE9wdGlvbiB9KTtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnBvc3RNZXNzYWdlKHsgdHVuZUlkOiB0aGlzLnVzZVR1bmVJZCwgbWV0aG9kOiAndHVuZScsIGFwaVN0YXRlIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUud2FybihgRXJyb3I6IHR1bmUoJHtjb25uZWN0aW9ufSkgTWVzc2FnZTogJHtnZW5lcmF0ZVBpZEVycm9yQ29kZX1gKTtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuZ2V0UmVzcG9uc2UoKTtcbiAgICB9XG4gICAgLy8gY29ubmVjdGlvbiB8IHR1bmVJZFxuICAgIGFzeW5jIHVudHVuZShwcmVmaXhDb25uZWN0aW9ucykge1xuICAgICAgICBjb25zdCBjb25uZWN0aW9ucyA9IEFycmF5LmlzQXJyYXkocHJlZml4Q29ubmVjdGlvbnMpID8gcHJlZml4Q29ubmVjdGlvbnMgOiBbcHJlZml4Q29ubmVjdGlvbnNdO1xuICAgICAgICBjb25zdCB1bnR1bmVJZCA9IHRoaXMuZ2V0VHVuZUlkcygpLmZpbmQoKHR1bmVJZCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGNvbm5lY3Rpb25zLmZpbmQoKGNvbm5lY3Rpb24pID0+IHR1bmVJZC5zdGFydHNXaXRoKGBjb24ke3NlcGFyYXRvcn0ke2Nvbm5lY3Rpb259JHtzZXBhcmF0b3J9YCkpO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHVudHVuZUlkKSB7XG4gICAgICAgICAgICBjb25zdCB0dW5lQ2ggPSB7IC4uLm1vZGVsc18xLmluaXRzLmNoIH07XG4gICAgICAgICAgICBjb25zdCBwaWQgPSB0aGlzLnR1bmVJZHNbdW50dW5lSWRdLnBpZDtcbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5wb3N0TWVzc2FnZSh7IHBpZCwgdHVuZUlkOiB1bnR1bmVJZCwgbWV0aG9kOiAndW50dW5lJywgYXBpU3RhdGU6IHsgdHVuZUNoIH0gfSk7XG4gICAgICAgICAgICBjb25zdCB0dW5lSWRzID0gT2JqZWN0LmtleXModGhpcy50dW5lSWRzKTtcbiAgICAgICAgICAgIGNvbnN0IHR1bmVDbnQgPSB0dW5lSWRzLmxlbmd0aDtcbiAgICAgICAgICAgIGNvbnN0IGxhdGVzdFR1bmVJZCA9IHR1bmVJZHNbdHVuZUNudCAtIDFdID8gdHVuZUlkc1t0dW5lQ250IC0gMV0gOiAnJztcbiAgICAgICAgICAgIHRoaXMudXNlVHVuZUlkID0gdGhpcy51c2VUdW5lSWQgPT09IHVudHVuZUlkID8gbGF0ZXN0VHVuZUlkIDogdGhpcy51c2VUdW5lSWQ7XG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYEVycm9yOiB1bnR1bmUoJHtwcmVmaXhDb25uZWN0aW9uc30pYCwgdW50dW5lSWQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmdldFJlc3BvbnNlKCk7XG4gICAgfVxuICAgIGFzeW5jIGZldGNoUmFuayh0dW5lSWQpIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0VHVuZUlkID0gdHVuZUlkIHx8IHRoaXMudXNlVHVuZUlkO1xuICAgICAgICBjb25zdCBjb25uZWN0aW9uID0gQ2hfMS5kZWZhdWx0LmdldENvbm5lY3Rpb25Gcm9tVHVuZUlkKHRhcmdldFR1bmVJZCk7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy50dW5lSWRzW3RhcmdldFR1bmVJZF0uc3RvcmUuZ2V0U3RhdGUoKTtcbiAgICAgICAgY29uc3QgdHVuZUNoID0geyAuLi5zdGF0ZS50dW5lQ2gsIGNvbm5lY3Rpb24gfTtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucG9zdE1lc3NhZ2UoeyB0dW5lSWQ6IHRhcmdldFR1bmVJZCwgbWV0aG9kOiAnZmV0Y2hSYW5rJywgYXBpU3RhdGU6IHsgdHVuZUNoIH0gfSk7XG4gICAgfVxuICAgIGFzeW5jIGZldGNoUG9zdHModHVuZUlkKSB7XG4gICAgICAgIGNvbnN0IHRhcmdldFR1bmVJZCA9IHR1bmVJZCB8fCB0aGlzLnVzZVR1bmVJZDtcbiAgICAgICAgY29uc3QgY29ubmVjdGlvbiA9IENoXzEuZGVmYXVsdC5nZXRDb25uZWN0aW9uRnJvbVR1bmVJZCh0YXJnZXRUdW5lSWQpO1xuICAgICAgICBjb25zdCBzdGF0ZSA9IHRoaXMudHVuZUlkc1t0YXJnZXRUdW5lSWRdLnN0b3JlLmdldFN0YXRlKCk7XG4gICAgICAgIGNvbnN0IHR1bmVDaCA9IHsgLi4uc3RhdGUudHVuZUNoLCBjb25uZWN0aW9uIH07XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnBvc3RNZXNzYWdlKHsgdHVuZUlkOiB0YXJnZXRUdW5lSWQsIG1ldGhvZDogJ2ZldGNoUG9zdHMnLCBhcGlTdGF0ZTogeyB0dW5lQ2ggfSB9KTtcbiAgICB9XG4gICAgYXN5bmMgZmV0Y2hEZXRhaWwodHVuZUlkKSB7XG4gICAgICAgIGNvbnN0IHRhcmdldFR1bmVJZCA9IHR1bmVJZCB8fCB0aGlzLnVzZVR1bmVJZDtcbiAgICAgICAgY29uc3QgY29ubmVjdGlvbiA9IENoXzEuZGVmYXVsdC5nZXRDb25uZWN0aW9uRnJvbVR1bmVJZCh0YXJnZXRUdW5lSWQpO1xuICAgICAgICBjb25zdCBzdGF0ZSA9IHRoaXMudHVuZUlkc1t0YXJnZXRUdW5lSWRdLnN0b3JlLmdldFN0YXRlKCk7XG4gICAgICAgIGNvbnN0IHR1bmVDaCA9IHsgLi4uc3RhdGUudHVuZUNoLCBjb25uZWN0aW9uIH07XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnBvc3RNZXNzYWdlKHsgdHVuZUlkOiB0YXJnZXRUdW5lSWQsIG1ldGhvZDogJ2ZldGNoQ2hEZXRhaWwnLCBhcGlTdGF0ZTogeyB0dW5lQ2ggfSB9KTtcbiAgICB9XG4gICAgYXN5bmMgcG9zdChjb250ZW50LCB0dW5lSWQpIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0VHVuZUlkID0gdHVuZUlkIHx8IHRoaXMudXNlVHVuZUlkO1xuICAgICAgICBjb25zdCBjb25uZWN0aW9uID0gQ2hfMS5kZWZhdWx0LmdldENvbm5lY3Rpb25Gcm9tVHVuZUlkKHRhcmdldFR1bmVJZCk7XG4gICAgICAgIGNvbnN0IHBvc3QgPSB7IGNvbm5lY3Rpb24sIGNvbnRlbnQsIHVpZDogdGhpcy51aWQgfTtcbiAgICAgICAgY29uc3QgcG9zdHMgPSBbT2JqZWN0LmFzc2lnbih7fSwgcG9zdCldOyAvLyDjg6Ljg4fjg6vjga9SZWR1eC5zdGF0ZeOBjOioseWuueOBl+OBquOBhOOBruOBp+OAgeOCquODluOCuOOCp+OCr+ODiOOBq+WkieaPm1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5wb3N0TWVzc2FnZSh7IHR1bmVJZDogdGFyZ2V0VHVuZUlkLCBtZXRob2Q6ICdwb3N0JywgYXBpU3RhdGU6IHsgcG9zdHMgfSB9KTtcbiAgICB9XG4gICAgLypcbiAgICAgIHB1YmxpYyB1c2VUdW5lKHR1bmVJZDogc3RyaW5nKXtcbiAgICAgICAgdGhpcy51c2VUdW5lSWQgPSB0dW5lSWRcbiAgICAgICAgdGhpcy50dW5lSWRzW3R1bmVJZF0gPSB7XG4gICAgICB9XG4gICAgKi9cbiAgICBhc3luYyBvblN0YXRlcyhjYWxsYmFjaykge1xuICAgICAgICB0aGlzLmNhbGxiYWNrID0gY2FsbGJhY2s7XG4gICAgfVxuICAgIC8vIHR1bmVJZOeJueWumuOBrueKtuaFi+WkieabtOebo+imllxuICAgIHN1YnNjcmliZVRvVHVuZUlkKHR1bmVJZCwgY2FsbGJhY2spIHtcbiAgICAgICAgaWYgKCF0aGlzLnR1bmVJZHNbdHVuZUlkXSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUdW5lSWQgJHt0dW5lSWR9IG5vdCBmb3VuZGApO1xuICAgICAgICB9XG4gICAgICAgIC8vIFJlZHV4IHN0b3Jl55uj6KaW44KS6Kit5a6aXG4gICAgICAgIGNvbnN0IHVuc3Vic2NyaWJlID0gdGhpcy50dW5lSWRzW3R1bmVJZF0uc3RvcmUuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnR1bmVJZHNbdHVuZUlkXSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFwaVN0YXRlID0gdGhpcy50dW5lSWRzW3R1bmVJZF0uc3RvcmUuZ2V0U3RhdGUoKTtcbiAgICAgICAgICAgICAgICBjYWxsYmFjayhhcGlTdGF0ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdW5zdWJzY3JpYmU7XG4gICAgfVxuICAgIGFzeW5jIHBvc3RNZXNzYWdlKHBhcmFtcykge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHR1bmVJZCwgbWV0aG9kLCBhcGlTdGF0ZSB9ID0gcGFyYW1zO1xuICAgICAgICAgICAgICAgIHRoaXMudHVuZUlkc1t0dW5lSWRdLnVuc3Vic2NyaWJlID0gdGhpcy50dW5lSWRzW3R1bmVJZF0uc3RvcmUuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudHVuZUlkc1t0dW5lSWRdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhcGlTdGF0ZSA9IHRoaXMudHVuZUlkc1t0dW5lSWRdLnN0b3JlLmdldFN0YXRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0eXBlID0gYXBpU3RhdGUubG9nc1swXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlLnN0YXJ0c1dpdGgoU2VxdWVuY2VfMS5kZWZhdWx0LlNFUlZFUl9UT19BUElfQlJPQURDQVNUKSB8fCB0eXBlLnN0YXJ0c1dpdGgoU2VxdWVuY2VfMS5kZWZhdWx0LlNFUlZFUl9UT19BUElfRU1JVCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnR1bmVJZHNbdHVuZUlkXS5vbkNoYW5nZVN0YXRlKGFwaVN0YXRlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWV0aG9kID09PSAndW50dW5lJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnR1bmVJZHNbdHVuZUlkXS51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy50dW5lSWRzW3R1bmVJZF07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0YXRlcyA9IHRoaXMuZ2V0VHVuZUlkcygpLm1hcCgodHVuZUlkKSA9PiB0aGlzLnR1bmVJZHNbdHVuZUlkXS5zdG9yZS5nZXRTdGF0ZSgpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbGxiYWNrKHN0YXRlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh7IHR1bmVJZCwgc3RhdGU6IGFwaVN0YXRlIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgY29uc3QgdHlwZSA9IGAke1NlcXVlbmNlXzEuZGVmYXVsdC5BUElfVE9fU0VSVkVSX1JFUVVFU1R9JHttZXRob2R9YDtcbiAgICAgICAgICAgICAgICBjb25zdCBwaWQgPSAoMCwgdXRpbHNfMS5nZW5lcmF0ZVVuaXF1ZUtleSkoYHBpZGApO1xuICAgICAgICAgICAgICAgIHRoaXMudHVuZUlkc1t0dW5lSWRdLnBpZCA9IHBpZDtcbiAgICAgICAgICAgICAgICB0aGlzLnR1bmVJZHNbdHVuZUlkXS5zdG9yZS5kaXNwYXRjaCh7IC4uLmFwaVN0YXRlLCB0eXBlIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMudHVuZUlkc1t0dW5lSWRdLndzc1dvcmtlci5wb3N0TWVzc2FnZSh7IHBpZCwgdHVuZUlkLCBtZXRob2QsIGFwaVN0YXRlIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucy5pc0RlYnVnICYmIGNvbnNvbGUubG9nKCdQT1NUIE1FU1NBR0UnLCB0dW5lSWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgb25NZXNzYWdlKGUpIHtcbiAgICAgICAgY29uc3QgeyBjdXJyZW50VGFyZ2V0LCBkYXRhIH0gPSBlO1xuICAgICAgICBpZiAoY3VycmVudFRhcmdldCBpbnN0YW5jZW9mIFdvcmtlcikge1xuICAgICAgICAgICAgY29uc3QgeyBwaWQsIHR1bmVJZCwgbWV0aG9kLCBhcGlTdGF0ZSwgc2VydmVyVG9BcGlUeXBlIH0gPSBkYXRhO1xuICAgICAgICAgICAgaWYgKHBpZCAmJiB0dW5lSWQgJiYgbWV0aG9kICYmIGFwaVN0YXRlICYmIHNlcnZlclRvQXBpVHlwZSkge1xuICAgICAgICAgICAgICAgIGxldCBpc0V4ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGlmIChhcGlTdGF0ZS50eXBlID09PSAndW50dW5lJykge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy50dW5lSWRzW3R1bmVJZF0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRXhlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudHVuZUlkc1t0dW5lSWRdICYmIHRoaXMudHVuZUlkc1t0dW5lSWRdLnBpZCA9PT0gcGlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpc0V4ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGlzRXhlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucy5pc0RlYnVnICYmIGNvbnNvbGUubG9nKCdPTiBNRVNTQUdFIEVYRScsIHR1bmVJZCk7XG4gICAgICAgICAgICAgICAgICAgIGFwaVN0YXRlLnR5cGUgPSBgJHtzZXJ2ZXJUb0FwaVR5cGV9JHttZXRob2R9YDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50dW5lSWRzW3R1bmVJZF0uc3RvcmUuZGlzcGF0Y2goYXBpU3RhdGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBvbkVycm9yKGUpIHtcbiAgICAgICAgY29uc29sZS53YXJuKGUpO1xuICAgIH1cbiAgICBnZXRUdW5lUGlkKGNvbm5lY3Rpb24pIHtcbiAgICAgICAgY29uc3QgeyBpc1R1bmVTYW1lQ2gsIGlzVHVuZU11bHRpQ2ggfSA9IHRoaXMub3B0aW9ucztcbiAgICAgICAgY29uc3QgdW5pcXVlS2V5ID0gKDAsIHV0aWxzXzEuZ2VuZXJhdGVVbmlxdWVLZXkpKGBjb24ke3NlcGFyYXRvcn0ke2Nvbm5lY3Rpb259YCk7XG4gICAgICAgIGNvbnN0IG5ld1R1bmVQaWQgPSB1bmlxdWVLZXkgKyBzZXBhcmF0b3IgKyB0aGlzLnVpZDtcbiAgICAgICAgY29uc3QgdHVuZUlkQ250ID0gdGhpcy5nZXRUdW5lSWRzKCkubGVuZ3RoO1xuICAgICAgICBpZiAoaXNUdW5lU2FtZUNoICYmIGlzVHVuZU11bHRpQ2gpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXdUdW5lUGlkO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKCFpc1R1bmVTYW1lQ2ggJiYgaXNUdW5lTXVsdGlDaCkge1xuICAgICAgICAgICAgLy8g5ZCM44GYY2jjga/mlrDjgZfjgYR0dW5lSWTjgpLoqLHlrrnjgZfjgarjgYTjgYzjgIHnlbDjgarjgotjaOOBr+ioseWuueOBmeOCi1xuICAgICAgICAgICAgY29uc3QgdHVuZWRTYW1lQ2ggPSBPYmplY3Qua2V5cyh0aGlzLnR1bmVJZHMpLmZpbmQoKHR1bmVJZCkgPT4gQm9vbGVhbih0dW5lSWQuc3RhcnRzV2l0aChgY29uJHtzZXBhcmF0b3J9JHtjb25uZWN0aW9ufSR7c2VwYXJhdG9yfWApKSk7XG4gICAgICAgICAgICByZXR1cm4gdHVuZWRTYW1lQ2ggPyB0dW5lZFNhbWVDaCA6IG5ld1R1bmVQaWQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNUdW5lU2FtZUNoICYmICFpc1R1bmVNdWx0aUNoKSB7XG4gICAgICAgICAgICAvLyDlkIzjgZhjaOOBr+aWsOOBl+OBhHR1bmVJZOOCkuioseWuueOBmeOCi+OBjOOAgeeVsOOBquOCi2No44Gv6Kix5a6544GX44Gq44GEXG4gICAgICAgICAgICBjb25zdCBvdGhlckNoID0gT2JqZWN0LmtleXModGhpcy50dW5lSWRzKS5maW5kKCh0dW5lSWQpID0+ICFCb29sZWFuKHR1bmVJZC5zdGFydHNXaXRoKGBjb24ke3NlcGFyYXRvcn0ke2Nvbm5lY3Rpb259JHtzZXBhcmF0b3J9YCkpKTtcbiAgICAgICAgICAgIHJldHVybiBvdGhlckNoID8gb3RoZXJDaCA6IG5ld1R1bmVQaWQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdHVuZUlkQ250ID09PSAxID8gT2JqZWN0LmtleXModGhpcy50dW5lSWRzKVswXSA6IG5ld1R1bmVQaWQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0R2VuZXJhdGVQaWRFcnJvckNvZGUoY29ubmVjdGlvbikge1xuICAgICAgICBjb25zdCB7IGlzVHVuZVNhbWVDaCwgaXNUdW5lTXVsdGlDaCB9ID0gdGhpcy5vcHRpb25zO1xuICAgICAgICBjb25zdCB0dW5lSWRDbnQgPSB0aGlzLmdldFR1bmVJZHMoKS5sZW5ndGg7XG4gICAgICAgIGlmICh0dW5lSWRDbnQgPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0dW5lSWRDbnQgPj0gZXhwb3J0cy5saW1pdFBpZENudCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnVFVORSBMSU1JVCc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNUdW5lU2FtZUNoICYmIGlzVHVuZU11bHRpQ2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICghaXNUdW5lU2FtZUNoICYmIGlzVHVuZU11bHRpQ2gpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpc0Vycm9yID0gQm9vbGVhbihPYmplY3Qua2V5cyh0aGlzLnR1bmVJZHMpLmZpbmQoKHR1bmVJZCkgPT4gdHVuZUlkLnN0YXJ0c1dpdGgoYGNvbiR7c2VwYXJhdG9yfSR7Y29ubmVjdGlvbn0ke3NlcGFyYXRvcn1gKSkpO1xuICAgICAgICAgICAgICAgIHJldHVybiBpc0Vycm9yID8gJ0JBRCBTQU1FIENPTk5FQ1RJT04nIDogJyc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChpc1R1bmVTYW1lQ2ggJiYgIWlzVHVuZU11bHRpQ2gpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpc0Vycm9yID0gQm9vbGVhbihPYmplY3Qua2V5cyh0aGlzLnR1bmVJZHMpLmZpbmQoKHR1bmVJZCkgPT4gIXR1bmVJZC5zdGFydHNXaXRoKGBjb24ke3NlcGFyYXRvcn0ke2Nvbm5lY3Rpb259JHtzZXBhcmF0b3J9YCkpKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNFcnJvciA/ICdCQUQgTVVMVEkgQ09OTkVDVElPTiMxJyA6ICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNFcnJvciA9IEJvb2xlYW4odHVuZUlkQ250ID49IDEpO1xuICAgICAgICAgICAgICAgIHJldHVybiBpc0Vycm9yID8gJ0JBRCBNVUxUSSBDT05ORUNUSU9OIzInIDogJyc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLlN0b3Jlc0Rpc3BhdGNoZXIgPSBTdG9yZXNEaXNwYXRjaGVyO1xuY29uc3QgY3JlYXRlU3RvcmVzRGlzcGF0Y2hlciA9IGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgY29uc3Qgc3RvcmVzRGlzcGF0Y2hlciA9IG5ldyBTdG9yZXNEaXNwYXRjaGVyKG9wdGlvbnMpO1xuICAgIHJldHVybiBzdG9yZXNEaXNwYXRjaGVyO1xufTtcbmV4cG9ydHMuY3JlYXRlU3RvcmVzRGlzcGF0Y2hlciA9IGNyZWF0ZVN0b3Jlc0Rpc3BhdGNoZXI7XG5leHBvcnRzLmRlZmF1bHQgPSBjcmVhdGVTdG9yZXNEaXNwYXRjaGVyO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnR1bmVPcHRpb25NZXRob2RzID0gZXhwb3J0cy5pbml0ID0gZXhwb3J0cy50dW5lT3B0aW9uRGV0YWlsTWV0YSA9IGV4cG9ydHMudHVuZU9wdGlvbkRldGFpbEVtb3Rpb24gPSBleHBvcnRzLnR1bmVPcHRpb25SYW5rQWxsSGFzTGF0ZXN0UG9zdCA9IGV4cG9ydHMudHVuZU9wdGlvblJhbmtIYXNMYXRlc3RQb3N0ID0gZXhwb3J0cy50dW5lT3B0aW9uSGFzTGF0ZXN0UG9zdCA9IGV4cG9ydHMudHVuZU9wdGlvblJhbmtBbGwgPSBleHBvcnRzLnR1bmVPcHRpb25SYW5rID0gZXhwb3J0cy50dW5lT3B0aW9uUG9zdHMgPSB2b2lkIDA7XG5leHBvcnRzLnR1bmVPcHRpb25Qb3N0cyA9ICdwb3N0cyc7XG5leHBvcnRzLnR1bmVPcHRpb25SYW5rID0gJ3JhbmsnO1xuZXhwb3J0cy50dW5lT3B0aW9uUmFua0FsbCA9ICdyYW5rQWxsJztcbmV4cG9ydHMudHVuZU9wdGlvbkhhc0xhdGVzdFBvc3QgPSAnaGFzTGF0ZXN0UG9zdCc7XG5leHBvcnRzLnR1bmVPcHRpb25SYW5rSGFzTGF0ZXN0UG9zdCA9ICdyYW5rSGFzTGF0ZXN0UG9zdCc7XG5leHBvcnRzLnR1bmVPcHRpb25SYW5rQWxsSGFzTGF0ZXN0UG9zdCA9ICdyYW5rQWxsSGFzTGF0ZXN0UG9zdCc7XG5leHBvcnRzLnR1bmVPcHRpb25EZXRhaWxFbW90aW9uID0gJ2RldGFpbEVtb3Rpb24nO1xuZXhwb3J0cy50dW5lT3B0aW9uRGV0YWlsTWV0YSA9ICdkZXRhaWxNZXRhJztcbmV4cG9ydHMuaW5pdCA9IHtcbiAgICBbZXhwb3J0cy50dW5lT3B0aW9uUG9zdHNdOiBmYWxzZSxcbiAgICBbZXhwb3J0cy50dW5lT3B0aW9uUmFua106IGZhbHNlLFxuICAgIFtleHBvcnRzLnR1bmVPcHRpb25SYW5rQWxsXTogZmFsc2UsXG4gICAgW2V4cG9ydHMudHVuZU9wdGlvbkhhc0xhdGVzdFBvc3RdOiBmYWxzZSxcbiAgICBbZXhwb3J0cy50dW5lT3B0aW9uUmFua0hhc0xhdGVzdFBvc3RdOiBmYWxzZSxcbiAgICBbZXhwb3J0cy50dW5lT3B0aW9uUmFua0FsbEhhc0xhdGVzdFBvc3RdOiBmYWxzZSxcbiAgICBbZXhwb3J0cy50dW5lT3B0aW9uRGV0YWlsRW1vdGlvbl06IGZhbHNlLFxuICAgIFtleHBvcnRzLnR1bmVPcHRpb25EZXRhaWxNZXRhXTogZmFsc2UsXG59O1xuZXhwb3J0cy50dW5lT3B0aW9uTWV0aG9kcyA9IE9iamVjdC5rZXlzKGV4cG9ydHMuaW5pdCk7XG5jbGFzcyBUdW5lT3B0aW9uTW9kZWwge1xuICAgIGNvbnN0cnVjdG9yKHBhcmFtcyA9IGV4cG9ydHMuaW5pdCkge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih0aGlzLCBwYXJhbXMpO1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0VHVuZU9wdGlvbkZyb21VcmwodXJsKSB7XG4gICAgICAgIGNvbnN0IHF1ZXJ5U3RyaW5nID0gdXJsLnNwbGl0KFwiP1wiKVsxXTtcbiAgICAgICAgaWYgKCFxdWVyeVN0cmluZylcbiAgICAgICAgICAgIHJldHVybiB7IC4uLmV4cG9ydHMuaW5pdCB9O1xuICAgICAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHF1ZXJ5U3RyaW5nKTtcbiAgICAgICAgY29uc3Qgb3B0aW9uID0ge307XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIGV4cG9ydHMudHVuZU9wdGlvbk1ldGhvZHMpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gcGFyYW1zLmdldChrZXkpO1xuICAgICAgICAgICAgaWYgKHZhbHVlID09PSBcInRydWVcIikge1xuICAgICAgICAgICAgICAgIG9wdGlvbltrZXldID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHZhbHVlID09PSBcImZhbHNlXCIpIHtcbiAgICAgICAgICAgICAgICBvcHRpb25ba2V5XSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgb3B0aW9uW2tleV0gPSBCb29sZWFuKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uZXhwb3J0cy5pbml0LFxuICAgICAgICAgICAgLi4ub3B0aW9uLFxuICAgICAgICB9O1xuICAgIH1cbn1cbmV4cG9ydHMuZGVmYXVsdCA9IFR1bmVPcHRpb25Nb2RlbDtcbiIsIi8vIFRoZSBtb2R1bGUgY2FjaGVcbnZhciBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18gPSB7fTtcblxuLy8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbmZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG5cdHZhciBjYWNoZWRNb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO1xuXHRpZiAoY2FjaGVkTW9kdWxlICE9PSB1bmRlZmluZWQpIHtcblx0XHRpZiAoY2FjaGVkTW9kdWxlLmVycm9yICE9PSB1bmRlZmluZWQpIHRocm93IGNhY2hlZE1vZHVsZS5lcnJvcjtcblx0XHRyZXR1cm4gY2FjaGVkTW9kdWxlLmV4cG9ydHM7XG5cdH1cblx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcblx0dmFyIG1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF0gPSB7XG5cdFx0Ly8gbm8gbW9kdWxlLmlkIG5lZWRlZFxuXHRcdC8vIG5vIG1vZHVsZS5sb2FkZWQgbmVlZGVkXG5cdFx0ZXhwb3J0czoge31cblx0fTtcblxuXHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cblx0dHJ5IHtcblx0XHR2YXIgZXhlY09wdGlvbnMgPSB7IGlkOiBtb2R1bGVJZCwgbW9kdWxlOiBtb2R1bGUsIGZhY3Rvcnk6IF9fd2VicGFja19tb2R1bGVzX19bbW9kdWxlSWRdLCByZXF1aXJlOiBfX3dlYnBhY2tfcmVxdWlyZV9fIH07XG5cdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5pLmZvckVhY2goZnVuY3Rpb24oaGFuZGxlcikgeyBoYW5kbGVyKGV4ZWNPcHRpb25zKTsgfSk7XG5cdFx0bW9kdWxlID0gZXhlY09wdGlvbnMubW9kdWxlO1xuXHRcdGV4ZWNPcHRpb25zLmZhY3RvcnkuY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgZXhlY09wdGlvbnMucmVxdWlyZSk7XG5cdH0gY2F0Y2goZSkge1xuXHRcdG1vZHVsZS5lcnJvciA9IGU7XG5cdFx0dGhyb3cgZTtcblx0fVxuXG5cdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG5cdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbn1cblxuLy8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbl9fd2VicGFja19yZXF1aXJlX18ubSA9IF9fd2VicGFja19tb2R1bGVzX187XG5cbi8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG5fX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX187XG5cbi8vIGV4cG9zZSB0aGUgbW9kdWxlIGV4ZWN1dGlvbiBpbnRlcmNlcHRvclxuX193ZWJwYWNrX3JlcXVpcmVfXy5pID0gW107XG5cbiIsIi8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSAobW9kdWxlKSA9PiB7XG5cdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuXHRcdCgpID0+IChtb2R1bGVbJ2RlZmF1bHQnXSkgOlxuXHRcdCgpID0+IChtb2R1bGUpO1xuXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCB7IGE6IGdldHRlciB9KTtcblx0cmV0dXJuIGdldHRlcjtcbn07IiwiLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHtcblx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcblx0XHR9XG5cdH1cbn07IiwiLy8gVGhpcyBmdW5jdGlvbiBhbGxvdyB0byByZWZlcmVuY2UgYWxsIGNodW5rc1xuX193ZWJwYWNrX3JlcXVpcmVfXy5odSA9IChjaHVua0lkKSA9PiB7XG5cdC8vIHJldHVybiB1cmwgZm9yIGZpbGVuYW1lcyBiYXNlZCBvbiB0ZW1wbGF0ZVxuXHRyZXR1cm4gXCJcIiArIGNodW5rSWQgKyBcIi5cIiArIF9fd2VicGFja19yZXF1aXJlX18uaCgpICsgXCIuaG90LXVwZGF0ZS5qc1wiO1xufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLmhtckYgPSAoKSA9PiAoXCJqYXZhc2NyaXB0LlwiICsgX193ZWJwYWNrX3JlcXVpcmVfXy5oKCkgKyBcIi5ob3QtdXBkYXRlLmpzb25cIik7IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5oID0gKCkgPT4gKFwiZWJhYTQ5OTg3NzkzYThlODFiNmRcIikiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLmcgPSAoZnVuY3Rpb24oKSB7XG5cdGlmICh0eXBlb2YgZ2xvYmFsVGhpcyA9PT0gJ29iamVjdCcpIHJldHVybiBnbG9iYWxUaGlzO1xuXHR0cnkge1xuXHRcdHJldHVybiB0aGlzIHx8IG5ldyBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuXHR9IGNhdGNoIChlKSB7XG5cdFx0aWYgKHR5cGVvZiB3aW5kb3cgPT09ICdvYmplY3QnKSByZXR1cm4gd2luZG93O1xuXHR9XG59KSgpOyIsIl9fd2VicGFja19yZXF1aXJlX18ubyA9IChvYmosIHByb3ApID0+IChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSkiLCIvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSAoZXhwb3J0cykgPT4ge1xuXHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcblx0fVxuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xufTsiLCJ2YXIgY3VycmVudE1vZHVsZURhdGEgPSB7fTtcbnZhciBpbnN0YWxsZWRNb2R1bGVzID0gX193ZWJwYWNrX3JlcXVpcmVfXy5jO1xuXG4vLyBtb2R1bGUgYW5kIHJlcXVpcmUgY3JlYXRpb25cbnZhciBjdXJyZW50Q2hpbGRNb2R1bGU7XG52YXIgY3VycmVudFBhcmVudHMgPSBbXTtcblxuLy8gc3RhdHVzXG52YXIgcmVnaXN0ZXJlZFN0YXR1c0hhbmRsZXJzID0gW107XG52YXIgY3VycmVudFN0YXR1cyA9IFwiaWRsZVwiO1xuXG4vLyB3aGlsZSBkb3dubG9hZGluZ1xudmFyIGJsb2NraW5nUHJvbWlzZXMgPSAwO1xudmFyIGJsb2NraW5nUHJvbWlzZXNXYWl0aW5nID0gW107XG5cbi8vIFRoZSB1cGRhdGUgaW5mb1xudmFyIGN1cnJlbnRVcGRhdGVBcHBseUhhbmRsZXJzO1xudmFyIHF1ZXVlZEludmFsaWRhdGVkTW9kdWxlcztcblxuX193ZWJwYWNrX3JlcXVpcmVfXy5obXJEID0gY3VycmVudE1vZHVsZURhdGE7XG5cbl9fd2VicGFja19yZXF1aXJlX18uaS5wdXNoKGZ1bmN0aW9uIChvcHRpb25zKSB7XG5cdHZhciBtb2R1bGUgPSBvcHRpb25zLm1vZHVsZTtcblx0dmFyIHJlcXVpcmUgPSBjcmVhdGVSZXF1aXJlKG9wdGlvbnMucmVxdWlyZSwgb3B0aW9ucy5pZCk7XG5cdG1vZHVsZS5ob3QgPSBjcmVhdGVNb2R1bGVIb3RPYmplY3Qob3B0aW9ucy5pZCwgbW9kdWxlKTtcblx0bW9kdWxlLnBhcmVudHMgPSBjdXJyZW50UGFyZW50cztcblx0bW9kdWxlLmNoaWxkcmVuID0gW107XG5cdGN1cnJlbnRQYXJlbnRzID0gW107XG5cdG9wdGlvbnMucmVxdWlyZSA9IHJlcXVpcmU7XG59KTtcblxuX193ZWJwYWNrX3JlcXVpcmVfXy5obXJDID0ge307XG5fX3dlYnBhY2tfcmVxdWlyZV9fLmhtckkgPSB7fTtcblxuZnVuY3Rpb24gY3JlYXRlUmVxdWlyZShyZXF1aXJlLCBtb2R1bGVJZCkge1xuXHR2YXIgbWUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXTtcblx0aWYgKCFtZSkgcmV0dXJuIHJlcXVpcmU7XG5cdHZhciBmbiA9IGZ1bmN0aW9uIChyZXF1ZXN0KSB7XG5cdFx0aWYgKG1lLmhvdC5hY3RpdmUpIHtcblx0XHRcdGlmIChpbnN0YWxsZWRNb2R1bGVzW3JlcXVlc3RdKSB7XG5cdFx0XHRcdHZhciBwYXJlbnRzID0gaW5zdGFsbGVkTW9kdWxlc1tyZXF1ZXN0XS5wYXJlbnRzO1xuXHRcdFx0XHRpZiAocGFyZW50cy5pbmRleE9mKG1vZHVsZUlkKSA9PT0gLTEpIHtcblx0XHRcdFx0XHRwYXJlbnRzLnB1c2gobW9kdWxlSWQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRjdXJyZW50UGFyZW50cyA9IFttb2R1bGVJZF07XG5cdFx0XHRcdGN1cnJlbnRDaGlsZE1vZHVsZSA9IHJlcXVlc3Q7XG5cdFx0XHR9XG5cdFx0XHRpZiAobWUuY2hpbGRyZW4uaW5kZXhPZihyZXF1ZXN0KSA9PT0gLTEpIHtcblx0XHRcdFx0bWUuY2hpbGRyZW4ucHVzaChyZXF1ZXN0KTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0Y29uc29sZS53YXJuKFxuXHRcdFx0XHRcIltITVJdIHVuZXhwZWN0ZWQgcmVxdWlyZShcIiArXG5cdFx0XHRcdFx0cmVxdWVzdCArXG5cdFx0XHRcdFx0XCIpIGZyb20gZGlzcG9zZWQgbW9kdWxlIFwiICtcblx0XHRcdFx0XHRtb2R1bGVJZFxuXHRcdFx0KTtcblx0XHRcdGN1cnJlbnRQYXJlbnRzID0gW107XG5cdFx0fVxuXHRcdHJldHVybiByZXF1aXJlKHJlcXVlc3QpO1xuXHR9O1xuXHR2YXIgY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yID0gZnVuY3Rpb24gKG5hbWUpIHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0Y29uZmlndXJhYmxlOiB0cnVlLFxuXHRcdFx0ZW51bWVyYWJsZTogdHJ1ZSxcblx0XHRcdGdldDogZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRyZXR1cm4gcmVxdWlyZVtuYW1lXTtcblx0XHRcdH0sXG5cdFx0XHRzZXQ6IGZ1bmN0aW9uICh2YWx1ZSkge1xuXHRcdFx0XHRyZXF1aXJlW25hbWVdID0gdmFsdWU7XG5cdFx0XHR9XG5cdFx0fTtcblx0fTtcblx0Zm9yICh2YXIgbmFtZSBpbiByZXF1aXJlKSB7XG5cdFx0aWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyZXF1aXJlLCBuYW1lKSAmJiBuYW1lICE9PSBcImVcIikge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGZuLCBuYW1lLCBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IobmFtZSkpO1xuXHRcdH1cblx0fVxuXHRmbi5lID0gZnVuY3Rpb24gKGNodW5rSWQsIGZldGNoUHJpb3JpdHkpIHtcblx0XHRyZXR1cm4gdHJhY2tCbG9ja2luZ1Byb21pc2UocmVxdWlyZS5lKGNodW5rSWQsIGZldGNoUHJpb3JpdHkpKTtcblx0fTtcblx0cmV0dXJuIGZuO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVNb2R1bGVIb3RPYmplY3QobW9kdWxlSWQsIG1lKSB7XG5cdHZhciBfbWFpbiA9IGN1cnJlbnRDaGlsZE1vZHVsZSAhPT0gbW9kdWxlSWQ7XG5cdHZhciBob3QgPSB7XG5cdFx0Ly8gcHJpdmF0ZSBzdHVmZlxuXHRcdF9hY2NlcHRlZERlcGVuZGVuY2llczoge30sXG5cdFx0X2FjY2VwdGVkRXJyb3JIYW5kbGVyczoge30sXG5cdFx0X2RlY2xpbmVkRGVwZW5kZW5jaWVzOiB7fSxcblx0XHRfc2VsZkFjY2VwdGVkOiBmYWxzZSxcblx0XHRfc2VsZkRlY2xpbmVkOiBmYWxzZSxcblx0XHRfc2VsZkludmFsaWRhdGVkOiBmYWxzZSxcblx0XHRfZGlzcG9zZUhhbmRsZXJzOiBbXSxcblx0XHRfbWFpbjogX21haW4sXG5cdFx0X3JlcXVpcmVTZWxmOiBmdW5jdGlvbiAoKSB7XG5cdFx0XHRjdXJyZW50UGFyZW50cyA9IG1lLnBhcmVudHMuc2xpY2UoKTtcblx0XHRcdGN1cnJlbnRDaGlsZE1vZHVsZSA9IF9tYWluID8gdW5kZWZpbmVkIDogbW9kdWxlSWQ7XG5cdFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKTtcblx0XHR9LFxuXG5cdFx0Ly8gTW9kdWxlIEFQSVxuXHRcdGFjdGl2ZTogdHJ1ZSxcblx0XHRhY2NlcHQ6IGZ1bmN0aW9uIChkZXAsIGNhbGxiYWNrLCBlcnJvckhhbmRsZXIpIHtcblx0XHRcdGlmIChkZXAgPT09IHVuZGVmaW5lZCkgaG90Ll9zZWxmQWNjZXB0ZWQgPSB0cnVlO1xuXHRcdFx0ZWxzZSBpZiAodHlwZW9mIGRlcCA9PT0gXCJmdW5jdGlvblwiKSBob3QuX3NlbGZBY2NlcHRlZCA9IGRlcDtcblx0XHRcdGVsc2UgaWYgKHR5cGVvZiBkZXAgPT09IFwib2JqZWN0XCIgJiYgZGVwICE9PSBudWxsKSB7XG5cdFx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgZGVwLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0aG90Ll9hY2NlcHRlZERlcGVuZGVuY2llc1tkZXBbaV1dID0gY2FsbGJhY2sgfHwgZnVuY3Rpb24gKCkge307XG5cdFx0XHRcdFx0aG90Ll9hY2NlcHRlZEVycm9ySGFuZGxlcnNbZGVwW2ldXSA9IGVycm9ySGFuZGxlcjtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0aG90Ll9hY2NlcHRlZERlcGVuZGVuY2llc1tkZXBdID0gY2FsbGJhY2sgfHwgZnVuY3Rpb24gKCkge307XG5cdFx0XHRcdGhvdC5fYWNjZXB0ZWRFcnJvckhhbmRsZXJzW2RlcF0gPSBlcnJvckhhbmRsZXI7XG5cdFx0XHR9XG5cdFx0fSxcblx0XHRkZWNsaW5lOiBmdW5jdGlvbiAoZGVwKSB7XG5cdFx0XHRpZiAoZGVwID09PSB1bmRlZmluZWQpIGhvdC5fc2VsZkRlY2xpbmVkID0gdHJ1ZTtcblx0XHRcdGVsc2UgaWYgKHR5cGVvZiBkZXAgPT09IFwib2JqZWN0XCIgJiYgZGVwICE9PSBudWxsKVxuXHRcdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IGRlcC5sZW5ndGg7IGkrKylcblx0XHRcdFx0XHRob3QuX2RlY2xpbmVkRGVwZW5kZW5jaWVzW2RlcFtpXV0gPSB0cnVlO1xuXHRcdFx0ZWxzZSBob3QuX2RlY2xpbmVkRGVwZW5kZW5jaWVzW2RlcF0gPSB0cnVlO1xuXHRcdH0sXG5cdFx0ZGlzcG9zZTogZnVuY3Rpb24gKGNhbGxiYWNrKSB7XG5cdFx0XHRob3QuX2Rpc3Bvc2VIYW5kbGVycy5wdXNoKGNhbGxiYWNrKTtcblx0XHR9LFxuXHRcdGFkZERpc3Bvc2VIYW5kbGVyOiBmdW5jdGlvbiAoY2FsbGJhY2spIHtcblx0XHRcdGhvdC5fZGlzcG9zZUhhbmRsZXJzLnB1c2goY2FsbGJhY2spO1xuXHRcdH0sXG5cdFx0cmVtb3ZlRGlzcG9zZUhhbmRsZXI6IGZ1bmN0aW9uIChjYWxsYmFjaykge1xuXHRcdFx0dmFyIGlkeCA9IGhvdC5fZGlzcG9zZUhhbmRsZXJzLmluZGV4T2YoY2FsbGJhY2spO1xuXHRcdFx0aWYgKGlkeCA+PSAwKSBob3QuX2Rpc3Bvc2VIYW5kbGVycy5zcGxpY2UoaWR4LCAxKTtcblx0XHR9LFxuXHRcdGludmFsaWRhdGU6IGZ1bmN0aW9uICgpIHtcblx0XHRcdHRoaXMuX3NlbGZJbnZhbGlkYXRlZCA9IHRydWU7XG5cdFx0XHRzd2l0Y2ggKGN1cnJlbnRTdGF0dXMpIHtcblx0XHRcdFx0Y2FzZSBcImlkbGVcIjpcblx0XHRcdFx0XHRjdXJyZW50VXBkYXRlQXBwbHlIYW5kbGVycyA9IFtdO1xuXHRcdFx0XHRcdE9iamVjdC5rZXlzKF9fd2VicGFja19yZXF1aXJlX18uaG1ySSkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG5cdFx0XHRcdFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmhtcklba2V5XShcblx0XHRcdFx0XHRcdFx0bW9kdWxlSWQsXG5cdFx0XHRcdFx0XHRcdGN1cnJlbnRVcGRhdGVBcHBseUhhbmRsZXJzXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdHNldFN0YXR1cyhcInJlYWR5XCIpO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRjYXNlIFwicmVhZHlcIjpcblx0XHRcdFx0XHRPYmplY3Qua2V5cyhfX3dlYnBhY2tfcmVxdWlyZV9fLmhtckkpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuXHRcdFx0XHRcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5obXJJW2tleV0oXG5cdFx0XHRcdFx0XHRcdG1vZHVsZUlkLFxuXHRcdFx0XHRcdFx0XHRjdXJyZW50VXBkYXRlQXBwbHlIYW5kbGVyc1xuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0Y2FzZSBcInByZXBhcmVcIjpcblx0XHRcdFx0Y2FzZSBcImNoZWNrXCI6XG5cdFx0XHRcdGNhc2UgXCJkaXNwb3NlXCI6XG5cdFx0XHRcdGNhc2UgXCJhcHBseVwiOlxuXHRcdFx0XHRcdChxdWV1ZWRJbnZhbGlkYXRlZE1vZHVsZXMgPSBxdWV1ZWRJbnZhbGlkYXRlZE1vZHVsZXMgfHwgW10pLnB1c2goXG5cdFx0XHRcdFx0XHRtb2R1bGVJZFxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0Ly8gaWdub3JlIHJlcXVlc3RzIGluIGVycm9yIHN0YXRlc1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdH0sXG5cblx0XHQvLyBNYW5hZ2VtZW50IEFQSVxuXHRcdGNoZWNrOiBob3RDaGVjayxcblx0XHRhcHBseTogaG90QXBwbHksXG5cdFx0c3RhdHVzOiBmdW5jdGlvbiAobCkge1xuXHRcdFx0aWYgKCFsKSByZXR1cm4gY3VycmVudFN0YXR1cztcblx0XHRcdHJlZ2lzdGVyZWRTdGF0dXNIYW5kbGVycy5wdXNoKGwpO1xuXHRcdH0sXG5cdFx0YWRkU3RhdHVzSGFuZGxlcjogZnVuY3Rpb24gKGwpIHtcblx0XHRcdHJlZ2lzdGVyZWRTdGF0dXNIYW5kbGVycy5wdXNoKGwpO1xuXHRcdH0sXG5cdFx0cmVtb3ZlU3RhdHVzSGFuZGxlcjogZnVuY3Rpb24gKGwpIHtcblx0XHRcdHZhciBpZHggPSByZWdpc3RlcmVkU3RhdHVzSGFuZGxlcnMuaW5kZXhPZihsKTtcblx0XHRcdGlmIChpZHggPj0gMCkgcmVnaXN0ZXJlZFN0YXR1c0hhbmRsZXJzLnNwbGljZShpZHgsIDEpO1xuXHRcdH0sXG5cblx0XHQvLyBpbmhlcml0IGZyb20gcHJldmlvdXMgZGlzcG9zZSBjYWxsXG5cdFx0ZGF0YTogY3VycmVudE1vZHVsZURhdGFbbW9kdWxlSWRdXG5cdH07XG5cdGN1cnJlbnRDaGlsZE1vZHVsZSA9IHVuZGVmaW5lZDtcblx0cmV0dXJuIGhvdDtcbn1cblxuZnVuY3Rpb24gc2V0U3RhdHVzKG5ld1N0YXR1cykge1xuXHRjdXJyZW50U3RhdHVzID0gbmV3U3RhdHVzO1xuXHR2YXIgcmVzdWx0cyA9IFtdO1xuXG5cdGZvciAodmFyIGkgPSAwOyBpIDwgcmVnaXN0ZXJlZFN0YXR1c0hhbmRsZXJzLmxlbmd0aDsgaSsrKVxuXHRcdHJlc3VsdHNbaV0gPSByZWdpc3RlcmVkU3RhdHVzSGFuZGxlcnNbaV0uY2FsbChudWxsLCBuZXdTdGF0dXMpO1xuXG5cdHJldHVybiBQcm9taXNlLmFsbChyZXN1bHRzKS50aGVuKGZ1bmN0aW9uICgpIHt9KTtcbn1cblxuZnVuY3Rpb24gdW5ibG9jaygpIHtcblx0aWYgKC0tYmxvY2tpbmdQcm9taXNlcyA9PT0gMCkge1xuXHRcdHNldFN0YXR1cyhcInJlYWR5XCIpLnRoZW4oZnVuY3Rpb24gKCkge1xuXHRcdFx0aWYgKGJsb2NraW5nUHJvbWlzZXMgPT09IDApIHtcblx0XHRcdFx0dmFyIGxpc3QgPSBibG9ja2luZ1Byb21pc2VzV2FpdGluZztcblx0XHRcdFx0YmxvY2tpbmdQcm9taXNlc1dhaXRpbmcgPSBbXTtcblx0XHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0bGlzdFtpXSgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cbn1cblxuZnVuY3Rpb24gdHJhY2tCbG9ja2luZ1Byb21pc2UocHJvbWlzZSkge1xuXHRzd2l0Y2ggKGN1cnJlbnRTdGF0dXMpIHtcblx0XHRjYXNlIFwicmVhZHlcIjpcblx0XHRcdHNldFN0YXR1cyhcInByZXBhcmVcIik7XG5cdFx0LyogZmFsbHRocm91Z2ggKi9cblx0XHRjYXNlIFwicHJlcGFyZVwiOlxuXHRcdFx0YmxvY2tpbmdQcm9taXNlcysrO1xuXHRcdFx0cHJvbWlzZS50aGVuKHVuYmxvY2ssIHVuYmxvY2spO1xuXHRcdFx0cmV0dXJuIHByb21pc2U7XG5cdFx0ZGVmYXVsdDpcblx0XHRcdHJldHVybiBwcm9taXNlO1xuXHR9XG59XG5cbmZ1bmN0aW9uIHdhaXRGb3JCbG9ja2luZ1Byb21pc2VzKGZuKSB7XG5cdGlmIChibG9ja2luZ1Byb21pc2VzID09PSAwKSByZXR1cm4gZm4oKTtcblx0cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlKSB7XG5cdFx0YmxvY2tpbmdQcm9taXNlc1dhaXRpbmcucHVzaChmdW5jdGlvbiAoKSB7XG5cdFx0XHRyZXNvbHZlKGZuKCkpO1xuXHRcdH0pO1xuXHR9KTtcbn1cblxuZnVuY3Rpb24gaG90Q2hlY2soYXBwbHlPblVwZGF0ZSkge1xuXHRpZiAoY3VycmVudFN0YXR1cyAhPT0gXCJpZGxlXCIpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoXCJjaGVjaygpIGlzIG9ubHkgYWxsb3dlZCBpbiBpZGxlIHN0YXR1c1wiKTtcblx0fVxuXHRyZXR1cm4gc2V0U3RhdHVzKFwiY2hlY2tcIilcblx0XHQudGhlbihfX3dlYnBhY2tfcmVxdWlyZV9fLmhtck0pXG5cdFx0LnRoZW4oZnVuY3Rpb24gKHVwZGF0ZSkge1xuXHRcdFx0aWYgKCF1cGRhdGUpIHtcblx0XHRcdFx0cmV0dXJuIHNldFN0YXR1cyhhcHBseUludmFsaWRhdGVkTW9kdWxlcygpID8gXCJyZWFkeVwiIDogXCJpZGxlXCIpLnRoZW4oXG5cdFx0XHRcdFx0ZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gc2V0U3RhdHVzKFwicHJlcGFyZVwiKS50aGVuKGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0dmFyIHVwZGF0ZWRNb2R1bGVzID0gW107XG5cdFx0XHRcdGN1cnJlbnRVcGRhdGVBcHBseUhhbmRsZXJzID0gW107XG5cblx0XHRcdFx0cmV0dXJuIFByb21pc2UuYWxsKFxuXHRcdFx0XHRcdE9iamVjdC5rZXlzKF9fd2VicGFja19yZXF1aXJlX18uaG1yQykucmVkdWNlKGZ1bmN0aW9uIChcblx0XHRcdFx0XHRcdHByb21pc2VzLFxuXHRcdFx0XHRcdFx0a2V5XG5cdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmhtckNba2V5XShcblx0XHRcdFx0XHRcdFx0dXBkYXRlLmMsXG5cdFx0XHRcdFx0XHRcdHVwZGF0ZS5yLFxuXHRcdFx0XHRcdFx0XHR1cGRhdGUubSxcblx0XHRcdFx0XHRcdFx0cHJvbWlzZXMsXG5cdFx0XHRcdFx0XHRcdGN1cnJlbnRVcGRhdGVBcHBseUhhbmRsZXJzLFxuXHRcdFx0XHRcdFx0XHR1cGRhdGVkTW9kdWxlc1xuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdHJldHVybiBwcm9taXNlcztcblx0XHRcdFx0XHR9LCBbXSlcblx0XHRcdFx0KS50aGVuKGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRyZXR1cm4gd2FpdEZvckJsb2NraW5nUHJvbWlzZXMoZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdFx0aWYgKGFwcGx5T25VcGRhdGUpIHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIGludGVybmFsQXBwbHkoYXBwbHlPblVwZGF0ZSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRyZXR1cm4gc2V0U3RhdHVzKFwicmVhZHlcIikudGhlbihmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiB1cGRhdGVkTW9kdWxlcztcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdH0pO1xufVxuXG5mdW5jdGlvbiBob3RBcHBseShvcHRpb25zKSB7XG5cdGlmIChjdXJyZW50U3RhdHVzICE9PSBcInJlYWR5XCIpIHtcblx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbiAoKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXG5cdFx0XHRcdFwiYXBwbHkoKSBpcyBvbmx5IGFsbG93ZWQgaW4gcmVhZHkgc3RhdHVzIChzdGF0ZTogXCIgK1xuXHRcdFx0XHRcdGN1cnJlbnRTdGF0dXMgK1xuXHRcdFx0XHRcdFwiKVwiXG5cdFx0XHQpO1xuXHRcdH0pO1xuXHR9XG5cdHJldHVybiBpbnRlcm5hbEFwcGx5KG9wdGlvbnMpO1xufVxuXG5mdW5jdGlvbiBpbnRlcm5hbEFwcGx5KG9wdGlvbnMpIHtcblx0b3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG5cblx0YXBwbHlJbnZhbGlkYXRlZE1vZHVsZXMoKTtcblxuXHR2YXIgcmVzdWx0cyA9IGN1cnJlbnRVcGRhdGVBcHBseUhhbmRsZXJzLm1hcChmdW5jdGlvbiAoaGFuZGxlcikge1xuXHRcdHJldHVybiBoYW5kbGVyKG9wdGlvbnMpO1xuXHR9KTtcblx0Y3VycmVudFVwZGF0ZUFwcGx5SGFuZGxlcnMgPSB1bmRlZmluZWQ7XG5cblx0dmFyIGVycm9ycyA9IHJlc3VsdHNcblx0XHQubWFwKGZ1bmN0aW9uIChyKSB7XG5cdFx0XHRyZXR1cm4gci5lcnJvcjtcblx0XHR9KVxuXHRcdC5maWx0ZXIoQm9vbGVhbik7XG5cblx0aWYgKGVycm9ycy5sZW5ndGggPiAwKSB7XG5cdFx0cmV0dXJuIHNldFN0YXR1cyhcImFib3J0XCIpLnRoZW4oZnVuY3Rpb24gKCkge1xuXHRcdFx0dGhyb3cgZXJyb3JzWzBdO1xuXHRcdH0pO1xuXHR9XG5cblx0Ly8gTm93IGluIFwiZGlzcG9zZVwiIHBoYXNlXG5cdHZhciBkaXNwb3NlUHJvbWlzZSA9IHNldFN0YXR1cyhcImRpc3Bvc2VcIik7XG5cblx0cmVzdWx0cy5mb3JFYWNoKGZ1bmN0aW9uIChyZXN1bHQpIHtcblx0XHRpZiAocmVzdWx0LmRpc3Bvc2UpIHJlc3VsdC5kaXNwb3NlKCk7XG5cdH0pO1xuXG5cdC8vIE5vdyBpbiBcImFwcGx5XCIgcGhhc2Vcblx0dmFyIGFwcGx5UHJvbWlzZSA9IHNldFN0YXR1cyhcImFwcGx5XCIpO1xuXG5cdHZhciBlcnJvcjtcblx0dmFyIHJlcG9ydEVycm9yID0gZnVuY3Rpb24gKGVycikge1xuXHRcdGlmICghZXJyb3IpIGVycm9yID0gZXJyO1xuXHR9O1xuXG5cdHZhciBvdXRkYXRlZE1vZHVsZXMgPSBbXTtcblxuXHR2YXIgb25BY2NlcHRlZCA9IGZ1bmN0aW9uICgpIHtcblx0XHRyZXR1cm4gUHJvbWlzZS5hbGwoW2Rpc3Bvc2VQcm9taXNlLCBhcHBseVByb21pc2VdKS50aGVuKGZ1bmN0aW9uICgpIHtcblx0XHRcdC8vIGhhbmRsZSBlcnJvcnMgaW4gYWNjZXB0IGhhbmRsZXJzIGFuZCBzZWxmIGFjY2VwdGVkIG1vZHVsZSBsb2FkXG5cdFx0XHRpZiAoZXJyb3IpIHtcblx0XHRcdFx0cmV0dXJuIHNldFN0YXR1cyhcImZhaWxcIikudGhlbihmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0dGhyb3cgZXJyb3I7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAocXVldWVkSW52YWxpZGF0ZWRNb2R1bGVzKSB7XG5cdFx0XHRcdHJldHVybiBpbnRlcm5hbEFwcGx5KG9wdGlvbnMpLnRoZW4oZnVuY3Rpb24gKGxpc3QpIHtcblx0XHRcdFx0XHRvdXRkYXRlZE1vZHVsZXMuZm9yRWFjaChmdW5jdGlvbiAobW9kdWxlSWQpIHtcblx0XHRcdFx0XHRcdGlmIChsaXN0LmluZGV4T2YobW9kdWxlSWQpIDwgMCkgbGlzdC5wdXNoKG1vZHVsZUlkKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRyZXR1cm4gbGlzdDtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBzZXRTdGF0dXMoXCJpZGxlXCIpLnRoZW4oZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRyZXR1cm4gb3V0ZGF0ZWRNb2R1bGVzO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cdH07XG5cblx0cmV0dXJuIFByb21pc2UuYWxsKFxuXHRcdHJlc3VsdHNcblx0XHRcdC5maWx0ZXIoZnVuY3Rpb24gKHJlc3VsdCkge1xuXHRcdFx0XHRyZXR1cm4gcmVzdWx0LmFwcGx5O1xuXHRcdFx0fSlcblx0XHRcdC5tYXAoZnVuY3Rpb24gKHJlc3VsdCkge1xuXHRcdFx0XHRyZXR1cm4gcmVzdWx0LmFwcGx5KHJlcG9ydEVycm9yKTtcblx0XHRcdH0pXG5cdClcblx0XHQudGhlbihmdW5jdGlvbiAoYXBwbHlSZXN1bHRzKSB7XG5cdFx0XHRhcHBseVJlc3VsdHMuZm9yRWFjaChmdW5jdGlvbiAobW9kdWxlcykge1xuXHRcdFx0XHRpZiAobW9kdWxlcykge1xuXHRcdFx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgbW9kdWxlcy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdFx0b3V0ZGF0ZWRNb2R1bGVzLnB1c2gobW9kdWxlc1tpXSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9KVxuXHRcdC50aGVuKG9uQWNjZXB0ZWQpO1xufVxuXG5mdW5jdGlvbiBhcHBseUludmFsaWRhdGVkTW9kdWxlcygpIHtcblx0aWYgKHF1ZXVlZEludmFsaWRhdGVkTW9kdWxlcykge1xuXHRcdGlmICghY3VycmVudFVwZGF0ZUFwcGx5SGFuZGxlcnMpIGN1cnJlbnRVcGRhdGVBcHBseUhhbmRsZXJzID0gW107XG5cdFx0T2JqZWN0LmtleXMoX193ZWJwYWNrX3JlcXVpcmVfXy5obXJJKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcblx0XHRcdHF1ZXVlZEludmFsaWRhdGVkTW9kdWxlcy5mb3JFYWNoKGZ1bmN0aW9uIChtb2R1bGVJZCkge1xuXHRcdFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmhtcklba2V5XShcblx0XHRcdFx0XHRtb2R1bGVJZCxcblx0XHRcdFx0XHRjdXJyZW50VXBkYXRlQXBwbHlIYW5kbGVyc1xuXHRcdFx0XHQpO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cdFx0cXVldWVkSW52YWxpZGF0ZWRNb2R1bGVzID0gdW5kZWZpbmVkO1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG59IiwidmFyIHNjcmlwdFVybDtcbmlmIChfX3dlYnBhY2tfcmVxdWlyZV9fLmcuaW1wb3J0U2NyaXB0cykgc2NyaXB0VXJsID0gX193ZWJwYWNrX3JlcXVpcmVfXy5nLmxvY2F0aW9uICsgXCJcIjtcbnZhciBkb2N1bWVudCA9IF9fd2VicGFja19yZXF1aXJlX18uZy5kb2N1bWVudDtcbmlmICghc2NyaXB0VXJsICYmIGRvY3VtZW50KSB7XG5cdGlmIChkb2N1bWVudC5jdXJyZW50U2NyaXB0ICYmIGRvY3VtZW50LmN1cnJlbnRTY3JpcHQudGFnTmFtZS50b1VwcGVyQ2FzZSgpID09PSAnU0NSSVBUJylcblx0XHRzY3JpcHRVcmwgPSBkb2N1bWVudC5jdXJyZW50U2NyaXB0LnNyYztcblx0aWYgKCFzY3JpcHRVcmwpIHtcblx0XHR2YXIgc2NyaXB0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwic2NyaXB0XCIpO1xuXHRcdGlmKHNjcmlwdHMubGVuZ3RoKSB7XG5cdFx0XHR2YXIgaSA9IHNjcmlwdHMubGVuZ3RoIC0gMTtcblx0XHRcdHdoaWxlIChpID4gLTEgJiYgKCFzY3JpcHRVcmwgfHwgIS9eaHR0cChzPyk6Ly50ZXN0KHNjcmlwdFVybCkpKSBzY3JpcHRVcmwgPSBzY3JpcHRzW2ktLV0uc3JjO1xuXHRcdH1cblx0fVxufVxuLy8gV2hlbiBzdXBwb3J0aW5nIGJyb3dzZXJzIHdoZXJlIGFuIGF1dG9tYXRpYyBwdWJsaWNQYXRoIGlzIG5vdCBzdXBwb3J0ZWQgeW91IG11c3Qgc3BlY2lmeSBhbiBvdXRwdXQucHVibGljUGF0aCBtYW51YWxseSB2aWEgY29uZmlndXJhdGlvblxuLy8gb3IgcGFzcyBhbiBlbXB0eSBzdHJpbmcgKFwiXCIpIGFuZCBzZXQgdGhlIF9fd2VicGFja19wdWJsaWNfcGF0aF9fIHZhcmlhYmxlIGZyb20geW91ciBjb2RlIHRvIHVzZSB5b3VyIG93biBsb2dpYy5cbmlmICghc2NyaXB0VXJsKSB0aHJvdyBuZXcgRXJyb3IoXCJBdXRvbWF0aWMgcHVibGljUGF0aCBpcyBub3Qgc3VwcG9ydGVkIGluIHRoaXMgYnJvd3NlclwiKTtcbnNjcmlwdFVybCA9IHNjcmlwdFVybC5yZXBsYWNlKC9eYmxvYjovLCBcIlwiKS5yZXBsYWNlKC8jLiokLywgXCJcIikucmVwbGFjZSgvXFw/LiokLywgXCJcIikucmVwbGFjZSgvXFwvW15cXC9dKyQvLCBcIi9cIik7XG5fX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBzY3JpcHRVcmw7IiwiLy8gbm8gYmFzZVVSSVxuXG4vLyBvYmplY3QgdG8gc3RvcmUgbG9hZGVkIGFuZCBsb2FkaW5nIGNodW5rc1xuLy8gdW5kZWZpbmVkID0gY2h1bmsgbm90IGxvYWRlZCwgbnVsbCA9IGNodW5rIHByZWxvYWRlZC9wcmVmZXRjaGVkXG4vLyBbcmVzb2x2ZSwgcmVqZWN0LCBQcm9taXNlXSA9IGNodW5rIGxvYWRpbmcsIDAgPSBjaHVuayBsb2FkZWRcbnZhciBpbnN0YWxsZWRDaHVua3MgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLmhtclNfanNvbnAgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLmhtclNfanNvbnAgfHwge1xuXHQ5NDI6IDBcbn07XG5cbi8vIG5vIGNodW5rIG9uIGRlbWFuZCBsb2FkaW5nXG5cbi8vIG5vIHByZWZldGNoaW5nXG5cbi8vIG5vIHByZWxvYWRlZFxuXG52YXIgY3VycmVudFVwZGF0ZWRNb2R1bGVzTGlzdDtcbnZhciB3YWl0aW5nVXBkYXRlUmVzb2x2ZXMgPSB7fTtcbmZ1bmN0aW9uIGxvYWRVcGRhdGVDaHVuayhjaHVua0lkLCB1cGRhdGVkTW9kdWxlc0xpc3QpIHtcblx0Y3VycmVudFVwZGF0ZWRNb2R1bGVzTGlzdCA9IHVwZGF0ZWRNb2R1bGVzTGlzdDtcblx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHR3YWl0aW5nVXBkYXRlUmVzb2x2ZXNbY2h1bmtJZF0gPSByZXNvbHZlO1xuXHRcdC8vIHN0YXJ0IHVwZGF0ZSBjaHVuayBsb2FkaW5nXG5cdFx0dmFyIHVybCA9IF9fd2VicGFja19yZXF1aXJlX18ucCArIF9fd2VicGFja19yZXF1aXJlX18uaHUoY2h1bmtJZCk7XG5cdFx0Ly8gY3JlYXRlIGVycm9yIGJlZm9yZSBzdGFjayB1bndvdW5kIHRvIGdldCB1c2VmdWwgc3RhY2t0cmFjZSBsYXRlclxuXHRcdHZhciBlcnJvciA9IG5ldyBFcnJvcigpO1xuXHRcdHZhciBsb2FkaW5nRW5kZWQgPSAoZXZlbnQpID0+IHtcblx0XHRcdGlmKHdhaXRpbmdVcGRhdGVSZXNvbHZlc1tjaHVua0lkXSkge1xuXHRcdFx0XHR3YWl0aW5nVXBkYXRlUmVzb2x2ZXNbY2h1bmtJZF0gPSB1bmRlZmluZWRcblx0XHRcdFx0dmFyIGVycm9yVHlwZSA9IGV2ZW50ICYmIChldmVudC50eXBlID09PSAnbG9hZCcgPyAnbWlzc2luZycgOiBldmVudC50eXBlKTtcblx0XHRcdFx0dmFyIHJlYWxTcmMgPSBldmVudCAmJiBldmVudC50YXJnZXQgJiYgZXZlbnQudGFyZ2V0LnNyYztcblx0XHRcdFx0ZXJyb3IubWVzc2FnZSA9ICdMb2FkaW5nIGhvdCB1cGRhdGUgY2h1bmsgJyArIGNodW5rSWQgKyAnIGZhaWxlZC5cXG4oJyArIGVycm9yVHlwZSArICc6ICcgKyByZWFsU3JjICsgJyknO1xuXHRcdFx0XHRlcnJvci5uYW1lID0gJ0NodW5rTG9hZEVycm9yJztcblx0XHRcdFx0ZXJyb3IudHlwZSA9IGVycm9yVHlwZTtcblx0XHRcdFx0ZXJyb3IucmVxdWVzdCA9IHJlYWxTcmM7XG5cdFx0XHRcdHJlamVjdChlcnJvcik7XG5cdFx0XHR9XG5cdFx0fTtcblx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmwodXJsLCBsb2FkaW5nRW5kZWQpO1xuXHR9KTtcbn1cblxuc2VsZltcIndlYnBhY2tIb3RVcGRhdGV0YWxrbl9hcGlfY2xpZW50XCJdID0gKGNodW5rSWQsIG1vcmVNb2R1bGVzLCBydW50aW1lKSA9PiB7XG5cdGZvcih2YXIgbW9kdWxlSWQgaW4gbW9yZU1vZHVsZXMpIHtcblx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8obW9yZU1vZHVsZXMsIG1vZHVsZUlkKSkge1xuXHRcdFx0Y3VycmVudFVwZGF0ZVttb2R1bGVJZF0gPSBtb3JlTW9kdWxlc1ttb2R1bGVJZF07XG5cdFx0XHRpZihjdXJyZW50VXBkYXRlZE1vZHVsZXNMaXN0KSBjdXJyZW50VXBkYXRlZE1vZHVsZXNMaXN0LnB1c2gobW9kdWxlSWQpO1xuXHRcdH1cblx0fVxuXHRpZihydW50aW1lKSBjdXJyZW50VXBkYXRlUnVudGltZS5wdXNoKHJ1bnRpbWUpO1xuXHRpZih3YWl0aW5nVXBkYXRlUmVzb2x2ZXNbY2h1bmtJZF0pIHtcblx0XHR3YWl0aW5nVXBkYXRlUmVzb2x2ZXNbY2h1bmtJZF0oKTtcblx0XHR3YWl0aW5nVXBkYXRlUmVzb2x2ZXNbY2h1bmtJZF0gPSB1bmRlZmluZWQ7XG5cdH1cbn07XG5cbnZhciBjdXJyZW50VXBkYXRlQ2h1bmtzO1xudmFyIGN1cnJlbnRVcGRhdGU7XG52YXIgY3VycmVudFVwZGF0ZVJlbW92ZWRDaHVua3M7XG52YXIgY3VycmVudFVwZGF0ZVJ1bnRpbWU7XG5mdW5jdGlvbiBhcHBseUhhbmRsZXIob3B0aW9ucykge1xuXHRpZiAoX193ZWJwYWNrX3JlcXVpcmVfXy5mKSBkZWxldGUgX193ZWJwYWNrX3JlcXVpcmVfXy5mLmpzb25wSG1yO1xuXHRjdXJyZW50VXBkYXRlQ2h1bmtzID0gdW5kZWZpbmVkO1xuXHRmdW5jdGlvbiBnZXRBZmZlY3RlZE1vZHVsZUVmZmVjdHModXBkYXRlTW9kdWxlSWQpIHtcblx0XHR2YXIgb3V0ZGF0ZWRNb2R1bGVzID0gW3VwZGF0ZU1vZHVsZUlkXTtcblx0XHR2YXIgb3V0ZGF0ZWREZXBlbmRlbmNpZXMgPSB7fTtcblxuXHRcdHZhciBxdWV1ZSA9IG91dGRhdGVkTW9kdWxlcy5tYXAoZnVuY3Rpb24gKGlkKSB7XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRjaGFpbjogW2lkXSxcblx0XHRcdFx0aWQ6IGlkXG5cdFx0XHR9O1xuXHRcdH0pO1xuXHRcdHdoaWxlIChxdWV1ZS5sZW5ndGggPiAwKSB7XG5cdFx0XHR2YXIgcXVldWVJdGVtID0gcXVldWUucG9wKCk7XG5cdFx0XHR2YXIgbW9kdWxlSWQgPSBxdWV1ZUl0ZW0uaWQ7XG5cdFx0XHR2YXIgY2hhaW4gPSBxdWV1ZUl0ZW0uY2hhaW47XG5cdFx0XHR2YXIgbW9kdWxlID0gX193ZWJwYWNrX3JlcXVpcmVfXy5jW21vZHVsZUlkXTtcblx0XHRcdGlmIChcblx0XHRcdFx0IW1vZHVsZSB8fFxuXHRcdFx0XHQobW9kdWxlLmhvdC5fc2VsZkFjY2VwdGVkICYmICFtb2R1bGUuaG90Ll9zZWxmSW52YWxpZGF0ZWQpXG5cdFx0XHQpXG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0aWYgKG1vZHVsZS5ob3QuX3NlbGZEZWNsaW5lZCkge1xuXHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdHR5cGU6IFwic2VsZi1kZWNsaW5lZFwiLFxuXHRcdFx0XHRcdGNoYWluOiBjaGFpbixcblx0XHRcdFx0XHRtb2R1bGVJZDogbW9kdWxlSWRcblx0XHRcdFx0fTtcblx0XHRcdH1cblx0XHRcdGlmIChtb2R1bGUuaG90Ll9tYWluKSB7XG5cdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0dHlwZTogXCJ1bmFjY2VwdGVkXCIsXG5cdFx0XHRcdFx0Y2hhaW46IGNoYWluLFxuXHRcdFx0XHRcdG1vZHVsZUlkOiBtb2R1bGVJZFxuXHRcdFx0XHR9O1xuXHRcdFx0fVxuXHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBtb2R1bGUucGFyZW50cy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHR2YXIgcGFyZW50SWQgPSBtb2R1bGUucGFyZW50c1tpXTtcblx0XHRcdFx0dmFyIHBhcmVudCA9IF9fd2VicGFja19yZXF1aXJlX18uY1twYXJlbnRJZF07XG5cdFx0XHRcdGlmICghcGFyZW50KSBjb250aW51ZTtcblx0XHRcdFx0aWYgKHBhcmVudC5ob3QuX2RlY2xpbmVkRGVwZW5kZW5jaWVzW21vZHVsZUlkXSkge1xuXHRcdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0XHR0eXBlOiBcImRlY2xpbmVkXCIsXG5cdFx0XHRcdFx0XHRjaGFpbjogY2hhaW4uY29uY2F0KFtwYXJlbnRJZF0pLFxuXHRcdFx0XHRcdFx0bW9kdWxlSWQ6IG1vZHVsZUlkLFxuXHRcdFx0XHRcdFx0cGFyZW50SWQ6IHBhcmVudElkXG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAob3V0ZGF0ZWRNb2R1bGVzLmluZGV4T2YocGFyZW50SWQpICE9PSAtMSkgY29udGludWU7XG5cdFx0XHRcdGlmIChwYXJlbnQuaG90Ll9hY2NlcHRlZERlcGVuZGVuY2llc1ttb2R1bGVJZF0pIHtcblx0XHRcdFx0XHRpZiAoIW91dGRhdGVkRGVwZW5kZW5jaWVzW3BhcmVudElkXSlcblx0XHRcdFx0XHRcdG91dGRhdGVkRGVwZW5kZW5jaWVzW3BhcmVudElkXSA9IFtdO1xuXHRcdFx0XHRcdGFkZEFsbFRvU2V0KG91dGRhdGVkRGVwZW5kZW5jaWVzW3BhcmVudElkXSwgW21vZHVsZUlkXSk7XG5cdFx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZGVsZXRlIG91dGRhdGVkRGVwZW5kZW5jaWVzW3BhcmVudElkXTtcblx0XHRcdFx0b3V0ZGF0ZWRNb2R1bGVzLnB1c2gocGFyZW50SWQpO1xuXHRcdFx0XHRxdWV1ZS5wdXNoKHtcblx0XHRcdFx0XHRjaGFpbjogY2hhaW4uY29uY2F0KFtwYXJlbnRJZF0pLFxuXHRcdFx0XHRcdGlkOiBwYXJlbnRJZFxuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4ge1xuXHRcdFx0dHlwZTogXCJhY2NlcHRlZFwiLFxuXHRcdFx0bW9kdWxlSWQ6IHVwZGF0ZU1vZHVsZUlkLFxuXHRcdFx0b3V0ZGF0ZWRNb2R1bGVzOiBvdXRkYXRlZE1vZHVsZXMsXG5cdFx0XHRvdXRkYXRlZERlcGVuZGVuY2llczogb3V0ZGF0ZWREZXBlbmRlbmNpZXNcblx0XHR9O1xuXHR9XG5cblx0ZnVuY3Rpb24gYWRkQWxsVG9TZXQoYSwgYikge1xuXHRcdGZvciAodmFyIGkgPSAwOyBpIDwgYi5sZW5ndGg7IGkrKykge1xuXHRcdFx0dmFyIGl0ZW0gPSBiW2ldO1xuXHRcdFx0aWYgKGEuaW5kZXhPZihpdGVtKSA9PT0gLTEpIGEucHVzaChpdGVtKTtcblx0XHR9XG5cdH1cblxuXHQvLyBhdCBiZWdpbiBhbGwgdXBkYXRlcyBtb2R1bGVzIGFyZSBvdXRkYXRlZFxuXHQvLyB0aGUgXCJvdXRkYXRlZFwiIHN0YXR1cyBjYW4gcHJvcGFnYXRlIHRvIHBhcmVudHMgaWYgdGhleSBkb24ndCBhY2NlcHQgdGhlIGNoaWxkcmVuXG5cdHZhciBvdXRkYXRlZERlcGVuZGVuY2llcyA9IHt9O1xuXHR2YXIgb3V0ZGF0ZWRNb2R1bGVzID0gW107XG5cdHZhciBhcHBsaWVkVXBkYXRlID0ge307XG5cblx0dmFyIHdhcm5VbmV4cGVjdGVkUmVxdWlyZSA9IGZ1bmN0aW9uIHdhcm5VbmV4cGVjdGVkUmVxdWlyZShtb2R1bGUpIHtcblx0XHRjb25zb2xlLndhcm4oXG5cdFx0XHRcIltITVJdIHVuZXhwZWN0ZWQgcmVxdWlyZShcIiArIG1vZHVsZS5pZCArIFwiKSB0byBkaXNwb3NlZCBtb2R1bGVcIlxuXHRcdCk7XG5cdH07XG5cblx0Zm9yICh2YXIgbW9kdWxlSWQgaW4gY3VycmVudFVwZGF0ZSkge1xuXHRcdGlmIChfX3dlYnBhY2tfcmVxdWlyZV9fLm8oY3VycmVudFVwZGF0ZSwgbW9kdWxlSWQpKSB7XG5cdFx0XHR2YXIgbmV3TW9kdWxlRmFjdG9yeSA9IGN1cnJlbnRVcGRhdGVbbW9kdWxlSWRdO1xuXHRcdFx0dmFyIHJlc3VsdCA9IG5ld01vZHVsZUZhY3Rvcnlcblx0XHRcdFx0PyBnZXRBZmZlY3RlZE1vZHVsZUVmZmVjdHMobW9kdWxlSWQpXG5cdFx0XHRcdDoge1xuXHRcdFx0XHRcdFx0dHlwZTogXCJkaXNwb3NlZFwiLFxuXHRcdFx0XHRcdFx0bW9kdWxlSWQ6IG1vZHVsZUlkXG5cdFx0XHRcdFx0fTtcblx0XHRcdC8qKiBAdHlwZSB7RXJyb3J8ZmFsc2V9ICovXG5cdFx0XHR2YXIgYWJvcnRFcnJvciA9IGZhbHNlO1xuXHRcdFx0dmFyIGRvQXBwbHkgPSBmYWxzZTtcblx0XHRcdHZhciBkb0Rpc3Bvc2UgPSBmYWxzZTtcblx0XHRcdHZhciBjaGFpbkluZm8gPSBcIlwiO1xuXHRcdFx0aWYgKHJlc3VsdC5jaGFpbikge1xuXHRcdFx0XHRjaGFpbkluZm8gPSBcIlxcblVwZGF0ZSBwcm9wYWdhdGlvbjogXCIgKyByZXN1bHQuY2hhaW4uam9pbihcIiAtPiBcIik7XG5cdFx0XHR9XG5cdFx0XHRzd2l0Y2ggKHJlc3VsdC50eXBlKSB7XG5cdFx0XHRcdGNhc2UgXCJzZWxmLWRlY2xpbmVkXCI6XG5cdFx0XHRcdFx0aWYgKG9wdGlvbnMub25EZWNsaW5lZCkgb3B0aW9ucy5vbkRlY2xpbmVkKHJlc3VsdCk7XG5cdFx0XHRcdFx0aWYgKCFvcHRpb25zLmlnbm9yZURlY2xpbmVkKVxuXHRcdFx0XHRcdFx0YWJvcnRFcnJvciA9IG5ldyBFcnJvcihcblx0XHRcdFx0XHRcdFx0XCJBYm9ydGVkIGJlY2F1c2Ugb2Ygc2VsZiBkZWNsaW5lOiBcIiArXG5cdFx0XHRcdFx0XHRcdFx0cmVzdWx0Lm1vZHVsZUlkICtcblx0XHRcdFx0XHRcdFx0XHRjaGFpbkluZm9cblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGNhc2UgXCJkZWNsaW5lZFwiOlxuXHRcdFx0XHRcdGlmIChvcHRpb25zLm9uRGVjbGluZWQpIG9wdGlvbnMub25EZWNsaW5lZChyZXN1bHQpO1xuXHRcdFx0XHRcdGlmICghb3B0aW9ucy5pZ25vcmVEZWNsaW5lZClcblx0XHRcdFx0XHRcdGFib3J0RXJyb3IgPSBuZXcgRXJyb3IoXG5cdFx0XHRcdFx0XHRcdFwiQWJvcnRlZCBiZWNhdXNlIG9mIGRlY2xpbmVkIGRlcGVuZGVuY3k6IFwiICtcblx0XHRcdFx0XHRcdFx0XHRyZXN1bHQubW9kdWxlSWQgK1xuXHRcdFx0XHRcdFx0XHRcdFwiIGluIFwiICtcblx0XHRcdFx0XHRcdFx0XHRyZXN1bHQucGFyZW50SWQgK1xuXHRcdFx0XHRcdFx0XHRcdGNoYWluSW5mb1xuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0Y2FzZSBcInVuYWNjZXB0ZWRcIjpcblx0XHRcdFx0XHRpZiAob3B0aW9ucy5vblVuYWNjZXB0ZWQpIG9wdGlvbnMub25VbmFjY2VwdGVkKHJlc3VsdCk7XG5cdFx0XHRcdFx0aWYgKCFvcHRpb25zLmlnbm9yZVVuYWNjZXB0ZWQpXG5cdFx0XHRcdFx0XHRhYm9ydEVycm9yID0gbmV3IEVycm9yKFxuXHRcdFx0XHRcdFx0XHRcIkFib3J0ZWQgYmVjYXVzZSBcIiArIG1vZHVsZUlkICsgXCIgaXMgbm90IGFjY2VwdGVkXCIgKyBjaGFpbkluZm9cblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGNhc2UgXCJhY2NlcHRlZFwiOlxuXHRcdFx0XHRcdGlmIChvcHRpb25zLm9uQWNjZXB0ZWQpIG9wdGlvbnMub25BY2NlcHRlZChyZXN1bHQpO1xuXHRcdFx0XHRcdGRvQXBwbHkgPSB0cnVlO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRjYXNlIFwiZGlzcG9zZWRcIjpcblx0XHRcdFx0XHRpZiAob3B0aW9ucy5vbkRpc3Bvc2VkKSBvcHRpb25zLm9uRGlzcG9zZWQocmVzdWx0KTtcblx0XHRcdFx0XHRkb0Rpc3Bvc2UgPSB0cnVlO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcihcIlVuZXhjZXB0aW9uIHR5cGUgXCIgKyByZXN1bHQudHlwZSk7XG5cdFx0XHR9XG5cdFx0XHRpZiAoYWJvcnRFcnJvcikge1xuXHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdGVycm9yOiBhYm9ydEVycm9yXG5cdFx0XHRcdH07XG5cdFx0XHR9XG5cdFx0XHRpZiAoZG9BcHBseSkge1xuXHRcdFx0XHRhcHBsaWVkVXBkYXRlW21vZHVsZUlkXSA9IG5ld01vZHVsZUZhY3Rvcnk7XG5cdFx0XHRcdGFkZEFsbFRvU2V0KG91dGRhdGVkTW9kdWxlcywgcmVzdWx0Lm91dGRhdGVkTW9kdWxlcyk7XG5cdFx0XHRcdGZvciAobW9kdWxlSWQgaW4gcmVzdWx0Lm91dGRhdGVkRGVwZW5kZW5jaWVzKSB7XG5cdFx0XHRcdFx0aWYgKF9fd2VicGFja19yZXF1aXJlX18ubyhyZXN1bHQub3V0ZGF0ZWREZXBlbmRlbmNpZXMsIG1vZHVsZUlkKSkge1xuXHRcdFx0XHRcdFx0aWYgKCFvdXRkYXRlZERlcGVuZGVuY2llc1ttb2R1bGVJZF0pXG5cdFx0XHRcdFx0XHRcdG91dGRhdGVkRGVwZW5kZW5jaWVzW21vZHVsZUlkXSA9IFtdO1xuXHRcdFx0XHRcdFx0YWRkQWxsVG9TZXQoXG5cdFx0XHRcdFx0XHRcdG91dGRhdGVkRGVwZW5kZW5jaWVzW21vZHVsZUlkXSxcblx0XHRcdFx0XHRcdFx0cmVzdWx0Lm91dGRhdGVkRGVwZW5kZW5jaWVzW21vZHVsZUlkXVxuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGlmIChkb0Rpc3Bvc2UpIHtcblx0XHRcdFx0YWRkQWxsVG9TZXQob3V0ZGF0ZWRNb2R1bGVzLCBbcmVzdWx0Lm1vZHVsZUlkXSk7XG5cdFx0XHRcdGFwcGxpZWRVcGRhdGVbbW9kdWxlSWRdID0gd2FyblVuZXhwZWN0ZWRSZXF1aXJlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRjdXJyZW50VXBkYXRlID0gdW5kZWZpbmVkO1xuXG5cdC8vIFN0b3JlIHNlbGYgYWNjZXB0ZWQgb3V0ZGF0ZWQgbW9kdWxlcyB0byByZXF1aXJlIHRoZW0gbGF0ZXIgYnkgdGhlIG1vZHVsZSBzeXN0ZW1cblx0dmFyIG91dGRhdGVkU2VsZkFjY2VwdGVkTW9kdWxlcyA9IFtdO1xuXHRmb3IgKHZhciBqID0gMDsgaiA8IG91dGRhdGVkTW9kdWxlcy5sZW5ndGg7IGorKykge1xuXHRcdHZhciBvdXRkYXRlZE1vZHVsZUlkID0gb3V0ZGF0ZWRNb2R1bGVzW2pdO1xuXHRcdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLmNbb3V0ZGF0ZWRNb2R1bGVJZF07XG5cdFx0aWYgKFxuXHRcdFx0bW9kdWxlICYmXG5cdFx0XHQobW9kdWxlLmhvdC5fc2VsZkFjY2VwdGVkIHx8IG1vZHVsZS5ob3QuX21haW4pICYmXG5cdFx0XHQvLyByZW1vdmVkIHNlbGYtYWNjZXB0ZWQgbW9kdWxlcyBzaG91bGQgbm90IGJlIHJlcXVpcmVkXG5cdFx0XHRhcHBsaWVkVXBkYXRlW291dGRhdGVkTW9kdWxlSWRdICE9PSB3YXJuVW5leHBlY3RlZFJlcXVpcmUgJiZcblx0XHRcdC8vIHdoZW4gY2FsbGVkIGludmFsaWRhdGUgc2VsZi1hY2NlcHRpbmcgaXMgbm90IHBvc3NpYmxlXG5cdFx0XHQhbW9kdWxlLmhvdC5fc2VsZkludmFsaWRhdGVkXG5cdFx0KSB7XG5cdFx0XHRvdXRkYXRlZFNlbGZBY2NlcHRlZE1vZHVsZXMucHVzaCh7XG5cdFx0XHRcdG1vZHVsZTogb3V0ZGF0ZWRNb2R1bGVJZCxcblx0XHRcdFx0cmVxdWlyZTogbW9kdWxlLmhvdC5fcmVxdWlyZVNlbGYsXG5cdFx0XHRcdGVycm9ySGFuZGxlcjogbW9kdWxlLmhvdC5fc2VsZkFjY2VwdGVkXG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cblxuXHR2YXIgbW9kdWxlT3V0ZGF0ZWREZXBlbmRlbmNpZXM7XG5cblx0cmV0dXJuIHtcblx0XHRkaXNwb3NlOiBmdW5jdGlvbiAoKSB7XG5cdFx0XHRjdXJyZW50VXBkYXRlUmVtb3ZlZENodW5rcy5mb3JFYWNoKGZ1bmN0aW9uIChjaHVua0lkKSB7XG5cdFx0XHRcdGRlbGV0ZSBpbnN0YWxsZWRDaHVua3NbY2h1bmtJZF07XG5cdFx0XHR9KTtcblx0XHRcdGN1cnJlbnRVcGRhdGVSZW1vdmVkQ2h1bmtzID0gdW5kZWZpbmVkO1xuXG5cdFx0XHR2YXIgaWR4O1xuXHRcdFx0dmFyIHF1ZXVlID0gb3V0ZGF0ZWRNb2R1bGVzLnNsaWNlKCk7XG5cdFx0XHR3aGlsZSAocXVldWUubGVuZ3RoID4gMCkge1xuXHRcdFx0XHR2YXIgbW9kdWxlSWQgPSBxdWV1ZS5wb3AoKTtcblx0XHRcdFx0dmFyIG1vZHVsZSA9IF9fd2VicGFja19yZXF1aXJlX18uY1ttb2R1bGVJZF07XG5cdFx0XHRcdGlmICghbW9kdWxlKSBjb250aW51ZTtcblxuXHRcdFx0XHR2YXIgZGF0YSA9IHt9O1xuXG5cdFx0XHRcdC8vIENhbGwgZGlzcG9zZSBoYW5kbGVyc1xuXHRcdFx0XHR2YXIgZGlzcG9zZUhhbmRsZXJzID0gbW9kdWxlLmhvdC5fZGlzcG9zZUhhbmRsZXJzO1xuXHRcdFx0XHRmb3IgKGogPSAwOyBqIDwgZGlzcG9zZUhhbmRsZXJzLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdFx0ZGlzcG9zZUhhbmRsZXJzW2pdLmNhbGwobnVsbCwgZGF0YSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5obXJEW21vZHVsZUlkXSA9IGRhdGE7XG5cblx0XHRcdFx0Ly8gZGlzYWJsZSBtb2R1bGUgKHRoaXMgZGlzYWJsZXMgcmVxdWlyZXMgZnJvbSB0aGlzIG1vZHVsZSlcblx0XHRcdFx0bW9kdWxlLmhvdC5hY3RpdmUgPSBmYWxzZTtcblxuXHRcdFx0XHQvLyByZW1vdmUgbW9kdWxlIGZyb20gY2FjaGVcblx0XHRcdFx0ZGVsZXRlIF9fd2VicGFja19yZXF1aXJlX18uY1ttb2R1bGVJZF07XG5cblx0XHRcdFx0Ly8gd2hlbiBkaXNwb3NpbmcgdGhlcmUgaXMgbm8gbmVlZCB0byBjYWxsIGRpc3Bvc2UgaGFuZGxlclxuXHRcdFx0XHRkZWxldGUgb3V0ZGF0ZWREZXBlbmRlbmNpZXNbbW9kdWxlSWRdO1xuXG5cdFx0XHRcdC8vIHJlbW92ZSBcInBhcmVudHNcIiByZWZlcmVuY2VzIGZyb20gYWxsIGNoaWxkcmVuXG5cdFx0XHRcdGZvciAoaiA9IDA7IGogPCBtb2R1bGUuY2hpbGRyZW4ubGVuZ3RoOyBqKyspIHtcblx0XHRcdFx0XHR2YXIgY2hpbGQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLmNbbW9kdWxlLmNoaWxkcmVuW2pdXTtcblx0XHRcdFx0XHRpZiAoIWNoaWxkKSBjb250aW51ZTtcblx0XHRcdFx0XHRpZHggPSBjaGlsZC5wYXJlbnRzLmluZGV4T2YobW9kdWxlSWQpO1xuXHRcdFx0XHRcdGlmIChpZHggPj0gMCkge1xuXHRcdFx0XHRcdFx0Y2hpbGQucGFyZW50cy5zcGxpY2UoaWR4LCAxKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ly8gcmVtb3ZlIG91dGRhdGVkIGRlcGVuZGVuY3kgZnJvbSBtb2R1bGUgY2hpbGRyZW5cblx0XHRcdHZhciBkZXBlbmRlbmN5O1xuXHRcdFx0Zm9yICh2YXIgb3V0ZGF0ZWRNb2R1bGVJZCBpbiBvdXRkYXRlZERlcGVuZGVuY2llcykge1xuXHRcdFx0XHRpZiAoX193ZWJwYWNrX3JlcXVpcmVfXy5vKG91dGRhdGVkRGVwZW5kZW5jaWVzLCBvdXRkYXRlZE1vZHVsZUlkKSkge1xuXHRcdFx0XHRcdG1vZHVsZSA9IF9fd2VicGFja19yZXF1aXJlX18uY1tvdXRkYXRlZE1vZHVsZUlkXTtcblx0XHRcdFx0XHRpZiAobW9kdWxlKSB7XG5cdFx0XHRcdFx0XHRtb2R1bGVPdXRkYXRlZERlcGVuZGVuY2llcyA9XG5cdFx0XHRcdFx0XHRcdG91dGRhdGVkRGVwZW5kZW5jaWVzW291dGRhdGVkTW9kdWxlSWRdO1xuXHRcdFx0XHRcdFx0Zm9yIChqID0gMDsgaiA8IG1vZHVsZU91dGRhdGVkRGVwZW5kZW5jaWVzLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdFx0XHRcdGRlcGVuZGVuY3kgPSBtb2R1bGVPdXRkYXRlZERlcGVuZGVuY2llc1tqXTtcblx0XHRcdFx0XHRcdFx0aWR4ID0gbW9kdWxlLmNoaWxkcmVuLmluZGV4T2YoZGVwZW5kZW5jeSk7XG5cdFx0XHRcdFx0XHRcdGlmIChpZHggPj0gMCkgbW9kdWxlLmNoaWxkcmVuLnNwbGljZShpZHgsIDEpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0sXG5cdFx0YXBwbHk6IGZ1bmN0aW9uIChyZXBvcnRFcnJvcikge1xuXHRcdFx0dmFyIGFjY2VwdFByb21pc2VzID0gW107XG5cdFx0XHQvLyBpbnNlcnQgbmV3IGNvZGVcblx0XHRcdGZvciAodmFyIHVwZGF0ZU1vZHVsZUlkIGluIGFwcGxpZWRVcGRhdGUpIHtcblx0XHRcdFx0aWYgKF9fd2VicGFja19yZXF1aXJlX18ubyhhcHBsaWVkVXBkYXRlLCB1cGRhdGVNb2R1bGVJZCkpIHtcblx0XHRcdFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLm1bdXBkYXRlTW9kdWxlSWRdID0gYXBwbGllZFVwZGF0ZVt1cGRhdGVNb2R1bGVJZF07XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ly8gcnVuIG5ldyBydW50aW1lIG1vZHVsZXNcblx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgY3VycmVudFVwZGF0ZVJ1bnRpbWUubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0Y3VycmVudFVwZGF0ZVJ1bnRpbWVbaV0oX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIGNhbGwgYWNjZXB0IGhhbmRsZXJzXG5cdFx0XHRmb3IgKHZhciBvdXRkYXRlZE1vZHVsZUlkIGluIG91dGRhdGVkRGVwZW5kZW5jaWVzKSB7XG5cdFx0XHRcdGlmIChfX3dlYnBhY2tfcmVxdWlyZV9fLm8ob3V0ZGF0ZWREZXBlbmRlbmNpZXMsIG91dGRhdGVkTW9kdWxlSWQpKSB7XG5cdFx0XHRcdFx0dmFyIG1vZHVsZSA9IF9fd2VicGFja19yZXF1aXJlX18uY1tvdXRkYXRlZE1vZHVsZUlkXTtcblx0XHRcdFx0XHRpZiAobW9kdWxlKSB7XG5cdFx0XHRcdFx0XHRtb2R1bGVPdXRkYXRlZERlcGVuZGVuY2llcyA9XG5cdFx0XHRcdFx0XHRcdG91dGRhdGVkRGVwZW5kZW5jaWVzW291dGRhdGVkTW9kdWxlSWRdO1xuXHRcdFx0XHRcdFx0dmFyIGNhbGxiYWNrcyA9IFtdO1xuXHRcdFx0XHRcdFx0dmFyIGVycm9ySGFuZGxlcnMgPSBbXTtcblx0XHRcdFx0XHRcdHZhciBkZXBlbmRlbmNpZXNGb3JDYWxsYmFja3MgPSBbXTtcblx0XHRcdFx0XHRcdGZvciAodmFyIGogPSAwOyBqIDwgbW9kdWxlT3V0ZGF0ZWREZXBlbmRlbmNpZXMubGVuZ3RoOyBqKyspIHtcblx0XHRcdFx0XHRcdFx0dmFyIGRlcGVuZGVuY3kgPSBtb2R1bGVPdXRkYXRlZERlcGVuZGVuY2llc1tqXTtcblx0XHRcdFx0XHRcdFx0dmFyIGFjY2VwdENhbGxiYWNrID1cblx0XHRcdFx0XHRcdFx0XHRtb2R1bGUuaG90Ll9hY2NlcHRlZERlcGVuZGVuY2llc1tkZXBlbmRlbmN5XTtcblx0XHRcdFx0XHRcdFx0dmFyIGVycm9ySGFuZGxlciA9XG5cdFx0XHRcdFx0XHRcdFx0bW9kdWxlLmhvdC5fYWNjZXB0ZWRFcnJvckhhbmRsZXJzW2RlcGVuZGVuY3ldO1xuXHRcdFx0XHRcdFx0XHRpZiAoYWNjZXB0Q2FsbGJhY2spIHtcblx0XHRcdFx0XHRcdFx0XHRpZiAoY2FsbGJhY2tzLmluZGV4T2YoYWNjZXB0Q2FsbGJhY2spICE9PSAtMSkgY29udGludWU7XG5cdFx0XHRcdFx0XHRcdFx0Y2FsbGJhY2tzLnB1c2goYWNjZXB0Q2FsbGJhY2spO1xuXHRcdFx0XHRcdFx0XHRcdGVycm9ySGFuZGxlcnMucHVzaChlcnJvckhhbmRsZXIpO1xuXHRcdFx0XHRcdFx0XHRcdGRlcGVuZGVuY2llc0ZvckNhbGxiYWNrcy5wdXNoKGRlcGVuZGVuY3kpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRmb3IgKHZhciBrID0gMDsgayA8IGNhbGxiYWNrcy5sZW5ndGg7IGsrKykge1xuXHRcdFx0XHRcdFx0XHR2YXIgcmVzdWx0O1xuXHRcdFx0XHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdFx0XHRcdHJlc3VsdCA9IGNhbGxiYWNrc1trXS5jYWxsKG51bGwsIG1vZHVsZU91dGRhdGVkRGVwZW5kZW5jaWVzKTtcblx0XHRcdFx0XHRcdFx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0XHRcdFx0XHRcdFx0aWYgKHR5cGVvZiBlcnJvckhhbmRsZXJzW2tdID09PSBcImZ1bmN0aW9uXCIpIHtcblx0XHRcdFx0XHRcdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGVycm9ySGFuZGxlcnNba10oZXJyLCB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0bW9kdWxlSWQ6IG91dGRhdGVkTW9kdWxlSWQsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZGVwZW5kZW5jeUlkOiBkZXBlbmRlbmNpZXNGb3JDYWxsYmFja3Nba11cblx0XHRcdFx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHRcdFx0XHR9IGNhdGNoIChlcnIyKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlmIChvcHRpb25zLm9uRXJyb3JlZCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdG9wdGlvbnMub25FcnJvcmVkKHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHR5cGU6IFwiYWNjZXB0LWVycm9yLWhhbmRsZXItZXJyb3JlZFwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0bW9kdWxlSWQ6IG91dGRhdGVkTW9kdWxlSWQsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRkZXBlbmRlbmN5SWQ6IGRlcGVuZGVuY2llc0ZvckNhbGxiYWNrc1trXSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGVycm9yOiBlcnIyLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0b3JpZ2luYWxFcnJvcjogZXJyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0aWYgKCFvcHRpb25zLmlnbm9yZUVycm9yZWQpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRyZXBvcnRFcnJvcihlcnIyKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRyZXBvcnRFcnJvcihlcnIpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdGlmIChvcHRpb25zLm9uRXJyb3JlZCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRvcHRpb25zLm9uRXJyb3JlZCh7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dHlwZTogXCJhY2NlcHQtZXJyb3JlZFwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdG1vZHVsZUlkOiBvdXRkYXRlZE1vZHVsZUlkLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGRlcGVuZGVuY3lJZDogZGVwZW5kZW5jaWVzRm9yQ2FsbGJhY2tzW2tdLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGVycm9yOiBlcnJcblx0XHRcdFx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAoIW9wdGlvbnMuaWdub3JlRXJyb3JlZCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRyZXBvcnRFcnJvcihlcnIpO1xuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRpZiAocmVzdWx0ICYmIHR5cGVvZiByZXN1bHQudGhlbiA9PT0gXCJmdW5jdGlvblwiKSB7XG5cdFx0XHRcdFx0XHRcdFx0YWNjZXB0UHJvbWlzZXMucHVzaChyZXN1bHQpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdHZhciBvbkFjY2VwdGVkID0gZnVuY3Rpb24gKCkge1xuXHRcdFx0XHQvLyBMb2FkIHNlbGYgYWNjZXB0ZWQgbW9kdWxlc1xuXHRcdFx0XHRmb3IgKHZhciBvID0gMDsgbyA8IG91dGRhdGVkU2VsZkFjY2VwdGVkTW9kdWxlcy5sZW5ndGg7IG8rKykge1xuXHRcdFx0XHRcdHZhciBpdGVtID0gb3V0ZGF0ZWRTZWxmQWNjZXB0ZWRNb2R1bGVzW29dO1xuXHRcdFx0XHRcdHZhciBtb2R1bGVJZCA9IGl0ZW0ubW9kdWxlO1xuXHRcdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0XHRpdGVtLnJlcXVpcmUobW9kdWxlSWQpO1xuXHRcdFx0XHRcdH0gY2F0Y2ggKGVycikge1xuXHRcdFx0XHRcdFx0aWYgKHR5cGVvZiBpdGVtLmVycm9ySGFuZGxlciA9PT0gXCJmdW5jdGlvblwiKSB7XG5cdFx0XHRcdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0XHRcdFx0aXRlbS5lcnJvckhhbmRsZXIoZXJyLCB7XG5cdFx0XHRcdFx0XHRcdFx0XHRtb2R1bGVJZDogbW9kdWxlSWQsXG5cdFx0XHRcdFx0XHRcdFx0XHRtb2R1bGU6IF9fd2VicGFja19yZXF1aXJlX18uY1ttb2R1bGVJZF1cblx0XHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdFx0fSBjYXRjaCAoZXJyMSkge1xuXHRcdFx0XHRcdFx0XHRcdGlmIChvcHRpb25zLm9uRXJyb3JlZCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0b3B0aW9ucy5vbkVycm9yZWQoe1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR0eXBlOiBcInNlbGYtYWNjZXB0LWVycm9yLWhhbmRsZXItZXJyb3JlZFwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRtb2R1bGVJZDogbW9kdWxlSWQsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGVycm9yOiBlcnIxLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRvcmlnaW5hbEVycm9yOiBlcnJcblx0XHRcdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRpZiAoIW9wdGlvbnMuaWdub3JlRXJyb3JlZCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0cmVwb3J0RXJyb3IoZXJyMSk7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXBvcnRFcnJvcihlcnIpO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0aWYgKG9wdGlvbnMub25FcnJvcmVkKSB7XG5cdFx0XHRcdFx0XHRcdFx0b3B0aW9ucy5vbkVycm9yZWQoe1xuXHRcdFx0XHRcdFx0XHRcdFx0dHlwZTogXCJzZWxmLWFjY2VwdC1lcnJvcmVkXCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRtb2R1bGVJZDogbW9kdWxlSWQsXG5cdFx0XHRcdFx0XHRcdFx0XHRlcnJvcjogZXJyXG5cdFx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0aWYgKCFvcHRpb25zLmlnbm9yZUVycm9yZWQpIHtcblx0XHRcdFx0XHRcdFx0XHRyZXBvcnRFcnJvcihlcnIpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXG5cdFx0XHRyZXR1cm4gUHJvbWlzZS5hbGwoYWNjZXB0UHJvbWlzZXMpXG5cdFx0XHRcdC50aGVuKG9uQWNjZXB0ZWQpXG5cdFx0XHRcdC50aGVuKGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRyZXR1cm4gb3V0ZGF0ZWRNb2R1bGVzO1xuXHRcdFx0XHR9KTtcblx0XHR9XG5cdH07XG59XG5fX3dlYnBhY2tfcmVxdWlyZV9fLmhtckkuanNvbnAgPSBmdW5jdGlvbiAobW9kdWxlSWQsIGFwcGx5SGFuZGxlcnMpIHtcblx0aWYgKCFjdXJyZW50VXBkYXRlKSB7XG5cdFx0Y3VycmVudFVwZGF0ZSA9IHt9O1xuXHRcdGN1cnJlbnRVcGRhdGVSdW50aW1lID0gW107XG5cdFx0Y3VycmVudFVwZGF0ZVJlbW92ZWRDaHVua3MgPSBbXTtcblx0XHRhcHBseUhhbmRsZXJzLnB1c2goYXBwbHlIYW5kbGVyKTtcblx0fVxuXHRpZiAoIV9fd2VicGFja19yZXF1aXJlX18ubyhjdXJyZW50VXBkYXRlLCBtb2R1bGVJZCkpIHtcblx0XHRjdXJyZW50VXBkYXRlW21vZHVsZUlkXSA9IF9fd2VicGFja19yZXF1aXJlX18ubVttb2R1bGVJZF07XG5cdH1cbn07XG5fX3dlYnBhY2tfcmVxdWlyZV9fLmhtckMuanNvbnAgPSBmdW5jdGlvbiAoXG5cdGNodW5rSWRzLFxuXHRyZW1vdmVkQ2h1bmtzLFxuXHRyZW1vdmVkTW9kdWxlcyxcblx0cHJvbWlzZXMsXG5cdGFwcGx5SGFuZGxlcnMsXG5cdHVwZGF0ZWRNb2R1bGVzTGlzdFxuKSB7XG5cdGFwcGx5SGFuZGxlcnMucHVzaChhcHBseUhhbmRsZXIpO1xuXHRjdXJyZW50VXBkYXRlQ2h1bmtzID0ge307XG5cdGN1cnJlbnRVcGRhdGVSZW1vdmVkQ2h1bmtzID0gcmVtb3ZlZENodW5rcztcblx0Y3VycmVudFVwZGF0ZSA9IHJlbW92ZWRNb2R1bGVzLnJlZHVjZShmdW5jdGlvbiAob2JqLCBrZXkpIHtcblx0XHRvYmpba2V5XSA9IGZhbHNlO1xuXHRcdHJldHVybiBvYmo7XG5cdH0sIHt9KTtcblx0Y3VycmVudFVwZGF0ZVJ1bnRpbWUgPSBbXTtcblx0Y2h1bmtJZHMuZm9yRWFjaChmdW5jdGlvbiAoY2h1bmtJZCkge1xuXHRcdGlmIChcblx0XHRcdF9fd2VicGFja19yZXF1aXJlX18ubyhpbnN0YWxsZWRDaHVua3MsIGNodW5rSWQpICYmXG5cdFx0XHRpbnN0YWxsZWRDaHVua3NbY2h1bmtJZF0gIT09IHVuZGVmaW5lZFxuXHRcdCkge1xuXHRcdFx0cHJvbWlzZXMucHVzaChsb2FkVXBkYXRlQ2h1bmsoY2h1bmtJZCwgdXBkYXRlZE1vZHVsZXNMaXN0KSk7XG5cdFx0XHRjdXJyZW50VXBkYXRlQ2h1bmtzW2NodW5rSWRdID0gdHJ1ZTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y3VycmVudFVwZGF0ZUNodW5rc1tjaHVua0lkXSA9IGZhbHNlO1xuXHRcdH1cblx0fSk7XG5cdGlmIChfX3dlYnBhY2tfcmVxdWlyZV9fLmYpIHtcblx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmYuanNvbnBIbXIgPSBmdW5jdGlvbiAoY2h1bmtJZCwgcHJvbWlzZXMpIHtcblx0XHRcdGlmIChcblx0XHRcdFx0Y3VycmVudFVwZGF0ZUNodW5rcyAmJlxuXHRcdFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLm8oY3VycmVudFVwZGF0ZUNodW5rcywgY2h1bmtJZCkgJiZcblx0XHRcdFx0IWN1cnJlbnRVcGRhdGVDaHVua3NbY2h1bmtJZF1cblx0XHRcdCkge1xuXHRcdFx0XHRwcm9taXNlcy5wdXNoKGxvYWRVcGRhdGVDaHVuayhjaHVua0lkKSk7XG5cdFx0XHRcdGN1cnJlbnRVcGRhdGVDaHVua3NbY2h1bmtJZF0gPSB0cnVlO1xuXHRcdFx0fVxuXHRcdH07XG5cdH1cbn07XG5cbl9fd2VicGFja19yZXF1aXJlX18uaG1yTSA9ICgpID0+IHtcblx0aWYgKHR5cGVvZiBmZXRjaCA9PT0gXCJ1bmRlZmluZWRcIikgdGhyb3cgbmV3IEVycm9yKFwiTm8gYnJvd3NlciBzdXBwb3J0OiBuZWVkIGZldGNoIEFQSVwiKTtcblx0cmV0dXJuIGZldGNoKF9fd2VicGFja19yZXF1aXJlX18ucCArIF9fd2VicGFja19yZXF1aXJlX18uaG1yRigpKS50aGVuKChyZXNwb25zZSkgPT4ge1xuXHRcdGlmKHJlc3BvbnNlLnN0YXR1cyA9PT0gNDA0KSByZXR1cm47IC8vIG5vIHVwZGF0ZSBhdmFpbGFibGVcblx0XHRpZighcmVzcG9uc2Uub2spIHRocm93IG5ldyBFcnJvcihcIkZhaWxlZCB0byBmZXRjaCB1cGRhdGUgbWFuaWZlc3QgXCIgKyByZXNwb25zZS5zdGF0dXNUZXh0KTtcblx0XHRyZXR1cm4gcmVzcG9uc2UuanNvbigpO1xuXHR9KTtcbn07XG5cbi8vIG5vIG9uIGNodW5rcyBsb2FkZWRcblxuLy8gbm8ganNvbnAgZnVuY3Rpb24iLCIvLyBtb2R1bGUgY2FjaGUgYXJlIHVzZWQgc28gZW50cnkgaW5saW5pbmcgaXMgZGlzYWJsZWRcbi8vIHN0YXJ0dXBcbi8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xudmFyIF9fd2VicGFja19leHBvcnRzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDgxNTYpO1xuIl0sIm5hbWVzIjpbImluUHJvZ3Jlc3MiLCJkYXRhV2VicGFja1ByZWZpeCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwic3RhdGUiLCJhY3Rpb24iLCJ0eXBlIiwicG9zdHNUaW1lbGluZSIsImxlbmd0aCIsInR1bmVDaCIsImNvbm5lY3Rpb24iLCJlIiwibmUiLCJnZSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImJlIiwiZ2V0T3duUHJvcGVydHlOYW1lcyIsIlRlIiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJCZSIsInQiLCJyIiwiZ2V0IiwiZW51bWVyYWJsZSIsIkFlIiwiSW1tZXIiLCJKIiwiYXBwbHlQYXRjaGVzIiwiQ2UiLCJjYXN0RHJhZnQiLCJrZSIsImNhc3RJbW11dGFibGUiLCJLZSIsImNyZWF0ZURyYWZ0IiwiUmUiLCJjdXJyZW50IiwicmUiLCJlbmFibGVNYXBTZXQiLCJ4ZSIsImVuYWJsZVBhdGNoZXMiLCJQZSIsImZpbmlzaERyYWZ0IiwidmUiLCJmcmVlemUiLCJLIiwiaW1tZXJhYmxlIiwiTiIsImlzRHJhZnQiLCJPIiwiaXNEcmFmdGFibGUiLCJBIiwibm90aGluZyIsImoiLCJvcmlnaW5hbCIsImxlIiwicHJvZHVjZSIsIkZlIiwicHJvZHVjZVdpdGhQYXRjaGVzIiwiTmUiLCJzZXRBdXRvRnJlZXplIiwiemUiLCJzZXRVc2VTdHJpY3RTaGFsbG93Q29weSIsImplIiwibW9kdWxlIiwibiIsImkiLCJjYWxsIiwiSWUiLCJTeW1ib2wiLCJmb3IiLCJ1IiwiaCIsIkVycm9yIiwieiIsImdldFByb3RvdHlwZU9mIiwieWUiLCJBcnJheSIsImlzQXJyYXkiLCJjb25zdHJ1Y3RvciIsInYiLCJrIiwiT2UiLCJ0b1N0cmluZyIsIkZ1bmN0aW9uIiwiXyIsIkMiLCJSZWZsZWN0Iiwib3duS2V5cyIsImZvckVhY2giLCJvIiwiUiIsImhhcyIsIlgiLCJRIiwic2V0IiwiYWRkIiwiTWFwIiwiU2V0IiwiVCIsIkwiLCJzbGljZSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJmIiwibCIsImMiLCJ3cml0YWJsZSIsImNvbmZpZ3VyYWJsZSIsImNyZWF0ZSIsImFzc2lnbiIsIiQiLCJjbGVhciIsImRlbGV0ZSIsIk1lIiwiZW50cmllcyIsImlzRnJvemVuIiwiVSIsImFlIiwidyIsIlkiLCJCIiwib2UiLCJiIiwiViIsIloiLCJhIiwid2UiLCJpZSIsInAiLCJQIiwiZCIsIl9lIiwieCIsIm0iLCJzZSIsInMiLCJlZSIsInRlIiwiZGUiLCJnIiwiY29uY2F0IiwieSIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwidWUiLCJtZSIsIkVlIiwiY2UiLCJmZSIsIlciLCJwZSIsIkUiLCJOdW1iZXIiLCJpc05hTiIsImRlbGV0ZVByb3BlcnR5Iiwic2V0UHJvdG90eXBlT2YiLCJxIiwiUyIsImFyZ3VtZW50cyIsImFwcGx5IiwidGhpcyIsImF1dG9GcmVlemUiLCJ1c2VTdHJpY3RTaGFsbG93Q29weSIsInBhdGgiLCJvcCIsIkkiLCJEIiwicmV2b2tlIiwicHJveHkiLCJQcm94eSIsInJldm9jYWJsZSIsImhlIiwicHVzaCIsIlNlIiwibWFwIiwiZnJvbSIsIkgiLCJGIiwiam9pbiIsInNwbGljZSIsInVuc2hpZnQiLCJzdXBlciIsInNpemUiLCJrZXlzIiwidmFsdWVzIiwiaXRlcmF0b3IiLCJuZXh0IiwiZG9uZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJNIiwiYmluZCIsIm1vZGVsc18xIiwiaW5pdHMiLCJib290T3B0aW9uIiwiX19jcmVhdGVCaW5kaW5nIiwiazIiLCJ1bmRlZmluZWQiLCJkZXNjIiwiX19lc01vZHVsZSIsIl9fc2V0TW9kdWxlRGVmYXVsdCIsIl9faW1wb3J0U3RhciIsImFyIiwibW9kIiwicmVzdWx0IiwiaW5pdCIsIkxpZ2h0UmFua01vZGVsIiwiUG9zdF8xIiwicGFyYW1zIiwibGl2ZUNudCIsInNjb3JlIiwiZ2V0TGlnaHRSYW5rIiwicmFuZ2VXaXRoU2NvcmVzIiwibGl2ZVJhbmsiLCJwb3N0IiwiZGVmYXVsdCIsIl9faW1wb3J0RGVmYXVsdCIsIlJlcXVlc3QiLCJQb2xsaW5nIiwidHJhbnNwb3J0X2pzXzEiLCJkZWJ1Z18xIiwieWVhc3RfanNfMSIsImVuZ2luZV9pb19wYXJzZXJfMSIsInhtbGh0dHByZXF1ZXN0X2pzXzEiLCJjb21wb25lbnRfZW1pdHRlcl8xIiwidXRpbF9qc18xIiwiZ2xvYmFsVGhpc19qc18xIiwiZGVidWciLCJlbXB0eSIsImhhc1hIUjIiLCJYSFIiLCJ4ZG9tYWluIiwicmVzcG9uc2VUeXBlIiwiVHJhbnNwb3J0Iiwib3B0cyIsInBvbGxpbmciLCJsb2NhdGlvbiIsImlzU1NMIiwicHJvdG9jb2wiLCJwb3J0IiwieGQiLCJob3N0bmFtZSIsImZvcmNlQmFzZTY0Iiwic3VwcG9ydHNCaW5hcnkiLCJ3aXRoQ3JlZGVudGlhbHMiLCJjb29raWVKYXIiLCJjcmVhdGVDb29raWVKYXIiLCJuYW1lIiwiZG9PcGVuIiwicG9sbCIsInBhdXNlIiwib25QYXVzZSIsInJlYWR5U3RhdGUiLCJ0b3RhbCIsIm9uY2UiLCJkb1BvbGwiLCJlbWl0UmVzZXJ2ZWQiLCJvbkRhdGEiLCJkYXRhIiwiZGVjb2RlUGF5bG9hZCIsInNvY2tldCIsImJpbmFyeVR5cGUiLCJwYWNrZXQiLCJvbk9wZW4iLCJvbkNsb3NlIiwiZGVzY3JpcHRpb24iLCJvblBhY2tldCIsImRvQ2xvc2UiLCJjbG9zZSIsIndyaXRlIiwicGFja2V0cyIsImVuY29kZVBheWxvYWQiLCJkb1dyaXRlIiwidXJpIiwic2NoZW1hIiwic2VjdXJlIiwicXVlcnkiLCJ0aW1lc3RhbXBSZXF1ZXN0cyIsInRpbWVzdGFtcFBhcmFtIiwieWVhc3QiLCJzaWQiLCJiNjQiLCJjcmVhdGVVcmkiLCJyZXF1ZXN0IiwiZm4iLCJyZXEiLCJtZXRob2QiLCJvbiIsInhoclN0YXR1cyIsImNvbnRleHQiLCJvbkVycm9yIiwicG9sbFhociIsIkVtaXR0ZXIiLCJpbnN0YWxsVGltZXJGdW5jdGlvbnMiLCJfYSIsInBpY2siLCJ4aHIiLCJvcGVuIiwiZXh0cmFIZWFkZXJzIiwic2V0RGlzYWJsZUhlYWRlckNoZWNrIiwic2V0UmVxdWVzdEhlYWRlciIsImFkZENvb2tpZXMiLCJyZXF1ZXN0VGltZW91dCIsInRpbWVvdXQiLCJvbnJlYWR5c3RhdGVjaGFuZ2UiLCJwYXJzZUNvb2tpZXMiLCJzdGF0dXMiLCJvbkxvYWQiLCJzZXRUaW1lb3V0Rm4iLCJzZW5kIiwiZG9jdW1lbnQiLCJpbmRleCIsInJlcXVlc3RzQ291bnQiLCJyZXF1ZXN0cyIsImVyciIsImNsZWFudXAiLCJmcm9tRXJyb3IiLCJhYm9ydCIsInJlc3BvbnNlVGV4dCIsImF0dGFjaEV2ZW50IiwidW5sb2FkSGFuZGxlciIsImFkZEV2ZW50TGlzdGVuZXIiLCJ0ZXJtaW5hdGlvbkV2ZW50IiwiZ2xvYmFsVGhpc1NoaW0iLCJkZWNvZGUiLCJlbmNvZGUiLCJhbHBoYWJldCIsInNwbGl0IiwicHJldiIsInNlZWQiLCJudW0iLCJlbmNvZGVkIiwiTWF0aCIsImZsb29yIiwic3RyIiwiZGVjb2RlZCIsImNoYXJBdCIsIm5vdyIsIkRhdGUiLCJmb3JtYXRBcmdzIiwiYXJncyIsInVzZUNvbG9ycyIsIm5hbWVzcGFjZSIsImh1bWFuaXplIiwiZGlmZiIsImNvbG9yIiwibGFzdEMiLCJyZXBsYWNlIiwibWF0Y2giLCJzYXZlIiwibmFtZXNwYWNlcyIsInN0b3JhZ2UiLCJzZXRJdGVtIiwicmVtb3ZlSXRlbSIsImVycm9yIiwibG9hZCIsImdldEl0ZW0iLCJwcm9jZXNzIiwiZW52IiwiREVCVUciLCJ3aW5kb3ciLCJfX253anMiLCJuYXZpZ2F0b3IiLCJ1c2VyQWdlbnQiLCJ0b0xvd2VyQ2FzZSIsImRvY3VtZW50RWxlbWVudCIsInN0eWxlIiwiV2Via2l0QXBwZWFyYW5jZSIsImNvbnNvbGUiLCJmaXJlYnVnIiwiZXhjZXB0aW9uIiwidGFibGUiLCJwYXJzZUludCIsImxvY2FsU3RvcmFnZSIsImxvY2Fsc3RvcmFnZSIsImRlc3Ryb3kiLCJ3YXJuZWQiLCJ3YXJuIiwiY29sb3JzIiwibG9nIiwiZm9ybWF0dGVycyIsIm1lc3NhZ2UiLCJ0eXBlVGltZWxpbmVTdG9jayIsInR5cGVUaW1lbGluZSIsInR5cGVDaGlsZCIsInR5cGVNdWx0aSIsInR5cGVTaW5nbGUiLCJQb3N0TW9kZWwiLCJ1aWQiLCJjb250ZW50Iiwic3RhbXBJZCIsImZhdmljb24iLCJjcmVhdGVUaW1lIiwiU3RyaW5nIiwidXBkYXRlVGltZSIsImN1cnJlbnRUaW1lIiwicGFyc2UiLCJwYXJ0cyIsInNyYyIsImluZGV4T2YiLCJzdWJzdHJpbmciLCJleGVjIiwic291cmNlIiwiaG9zdCIsImF1dGhvcml0eSIsImlwdjZ1cmkiLCJwYXRoTmFtZXMiLCJvYmoiLCJuYW1lcyIsInF1ZXJ5S2V5IiwiJDAiLCIkMSIsIiQyIiwiQ2hfMSIsImdhdGV3YXkiLCJpb1NlcnZlciIsInJlZGlzIiwiY2x1c3RlciIsImNsaWVudCIsImFjY2VwdCIsInJhbmtBbGwiLCJjaGlsZHJlbiIsIkNoQ29uZmlnTW9kZWwiLCJnZXRNeUNoQ29uZmlnIiwiY2hDb25maWdKc29uIiwibXlDb25uZWN0aW9uIiwibWF0Y2hpbmciLCJjaENvbmZpZyIsInBhcmVudExvY2F0aW9uIiwiY3VycmVudExvY2F0aW9uIiwiY2hpbGQiLCJtYXRjaGVkIiwiZ2V0Q2hSb290c0NvbmZpZyIsInR1bmVDb25uZWN0aW9uIiwicmVjY3VyZW50RmluZCIsInBhcmVudENvbm5lY3Rpb24iLCJyb290cyIsImZpbmRlZCIsImZpbmQiLCJjdXJyZW50Q29ubmVjdGlvbiIsInJvb3RDb25uZWN0aW9uIiwiZ2V0R2F0ZXdheSIsImNoUm9vdHNDb25maWciLCJnZXRSb290c0Nvbm5lY3Rpb25zIiwiaXNFeGNsdWRlVHVuZUNvbm5lY3Rpb24iLCJteVJvb3RzQ29ubmVjdGlvbnMiLCJjb25maWciLCJmaWx0ZXIiLCJjcmVhdGVEZWJ1ZyIsInByZXZUaW1lIiwibmFtZXNwYWNlc0NhY2hlIiwiZW5hYmxlZENhY2hlIiwiZW5hYmxlT3ZlcnJpZGUiLCJlbmFibGVkIiwic2VsZiIsImN1cnIiLCJtcyIsImNvZXJjZSIsImZvcm1hdCIsImZvcm1hdHRlciIsInZhbCIsInNlbGVjdENvbG9yIiwiZXh0ZW5kIiwiZGVsaW1pdGVyIiwibmV3RGVidWciLCJ0b05hbWVzcGFjZSIsInJlZ2V4cCIsInN0YWNrIiwiZGlzYWJsZSIsInNraXBzIiwiZW5hYmxlIiwibGVuIiwiUmVnRXhwIiwidGVzdCIsImtleSIsImhhc2giLCJjaGFyQ29kZUF0IiwiYWJzIiwicmVkdWNlcnMiLCJyZWR1eF8xIiwibG9nc18xIiwiYm9vdE9wdGlvbl8xIiwicG9zdHNfMSIsInBvc3RzVGltZWxpbmVfMSIsInBvc3RzVGltZWxpbmVTdG9ja18xIiwicmFua18xIiwicmFua0FsbF8xIiwiY2hEZXRhaWxfMSIsInR1bmVDaF8xIiwicmFuayIsInBvc3RzIiwicG9zdHNUaW1lbGluZVN0b2NrIiwiY2hEZXRhaWwiLCJsb2dzIiwiY29tYmluZVJlZHVjZXJzIiwiRVJST1JfUEFDS0VUIiwiUEFDS0VUX1RZUEVTX1JFVkVSU0UiLCJQQUNLRVRfVFlQRVMiLCJXb3JrZXJfZm4iLCJkZWNvZGVQYWNrZXQiLCJjb21tb25zX2pzXzEiLCJiYXNlNjRfYXJyYXlidWZmZXJfanNfMSIsIndpdGhOYXRpdmVBcnJheUJ1ZmZlciIsIkFycmF5QnVmZmVyIiwiZW5jb2RlZFBhY2tldCIsIm1hcEJpbmFyeSIsImRlY29kZUJhc2U2NFBhY2tldCIsImJhc2U2NCIsIkJsb2IiLCJidWZmZXIiLCJlbmNvZGVQYWNrZXQiLCJlbmNvZGVQYWNrZXRUb0JpbmFyeSIsImNhbGxiYWNrIiwid2l0aE5hdGl2ZUJsb2IiLCJhcnJheUJ1ZmZlciIsInRoZW4iLCJ0b0FycmF5IiwiaXNWaWV3IiwiVEVYVF9FTkNPREVSIiwiVGV4dEVuY29kZXIiLCJlbmNvZGVCbG9iQXNCYXNlNjQiLCJmaWxlUmVhZGVyIiwiRmlsZVJlYWRlciIsIm9ubG9hZCIsInJlYWRBc0RhdGFVUkwiLCJVaW50OEFycmF5IiwiYnl0ZU9mZnNldCIsImJ5dGVMZW5ndGgiLCJjaGFycyIsImxvb2t1cCIsImFycmF5YnVmZmVyIiwiYnl0ZXMiLCJlbmNvZGVkMSIsImVuY29kZWQyIiwiZW5jb2RlZDMiLCJlbmNvZGVkNCIsImJ1ZmZlckxlbmd0aCIsInBvc3RzQ250IiwicmFua0NudCIsInNvcnRMaXZlQ250IiwibGF0ZXN0UG9zdCIsIm5ld1JhbmtzIiwibGFzdFBvc3QiLCJuZXdSYW5rIiwic29ydCIsIl9fZGVmUHJvcCIsIl9fZ2V0T3duUHJvcERlc2MiLCJfX2dldE93blByb3BOYW1lcyIsIl9faGFzT3duUHJvcCIsInNyY19leHBvcnRzIiwidGFyZ2V0IiwiYWxsIiwiX19leHBvcnQiLCJjcmVhdGVTZWxlY3RvciIsImNyZWF0ZVNlbGVjdG9yQ3JlYXRvciIsImNyZWF0ZVN0cnVjdHVyZWRTZWxlY3RvciIsImxydU1lbW9pemUiLCJyZWZlcmVuY2VFcXVhbGl0eUNoZWNrIiwic2V0R2xvYmFsRGV2TW9kZUNoZWNrcyIsInVuc3RhYmxlX2F1dG90cmFja01lbW9pemUiLCJhdXRvdHJhY2tNZW1vaXplIiwid2Vha01hcE1lbW9pemUiLCJ0byIsImV4Y2VwdCIsIl9fY29weVByb3BzIiwiZ2xvYmFsRGV2TW9kZUNoZWNrcyIsImlucHV0U3RhYmlsaXR5Q2hlY2siLCJpZGVudGl0eUZ1bmN0aW9uQ2hlY2siLCJkZXZNb2RlQ2hlY2tzIiwiTk9UX0ZPVU5EIiwiYXNzZXJ0SXNGdW5jdGlvbiIsImZ1bmMiLCJlcnJvck1lc3NhZ2UiLCJUeXBlRXJyb3IiLCJlbnN1cmVJc0FycmF5IiwiaXRlbSIsIiRSRVZJU0lPTiIsIkNVUlJFTlRfVFJBQ0tFUiIsIkNlbGwiLCJyZXZpc2lvbiIsIl92YWx1ZSIsIl9sYXN0VmFsdWUiLCJfaXNFcXVhbCIsInRyaXBsZUVxIiwiaW5pdGlhbFZhbHVlIiwiaXNFcXVhbCIsIm5ld1ZhbHVlIiwiVHJhY2tpbmdDYWNoZSIsIl9jYWNoZWRWYWx1ZSIsIl9jYWNoZWRSZXZpc2lvbiIsIl9kZXBzIiwiaGl0cyIsImN1cnJlbnRUcmFja2VyIiwicHJldlRyYWNrZXIiLCJtYXgiLCJnZXRWYWx1ZSIsImNlbGwiLCJuZXZlckVxIiwiY3JlYXRlVGFnIiwiY3JlYXRlQ2VsbCIsImRpcnR5VGFnIiwidGFnIiwic2V0VmFsdWUiLCJjb25zdW1lQ29sbGVjdGlvbiIsIm5vZGUiLCJjb2xsZWN0aW9uVGFnIiwiZGlydHlDb2xsZWN0aW9uIiwibmV4dElkIiwicHJvdG8iLCJPYmplY3RUcmVlTm9kZSIsIm9iamVjdFByb3h5SGFuZGxlciIsInRhZ3MiLCJpZCIsImNoaWxkVmFsdWUiLCJjaGlsZE5vZGUiLCJjcmVhdGVOb2RlIiwiY2FsY3VsYXRlUmVzdWx0IiwicHJvcCIsIkFycmF5VHJlZU5vZGUiLCJhcnJheVByb3h5SGFuZGxlciIsInVwZGF0ZU5vZGUiLCJvbGRLZXlzU2l6ZSIsIm5ld0tleXNTaXplIiwiYW55S2V5c0FkZGVkIiwiX2tleSIsIm5ld0NoaWxkVmFsdWUiLCJkZWxldGVOb2RlIiwiY3JlYXRlQ2FjaGVLZXlDb21wYXJhdG9yIiwiZXF1YWxpdHlDaGVjayIsImVxdWFsaXR5Q2hlY2tPck9wdGlvbnMiLCJwcm92aWRlZE9wdGlvbnMiLCJtYXhTaXplIiwicmVzdWx0RXF1YWxpdHlDaGVjayIsImNvbXBhcmF0b3IiLCJyZXN1bHRzQ291bnQiLCJjYWNoZSIsImVxdWFscyIsImVudHJ5IiwicHV0IiwiZ2V0RW50cmllcyIsImNyZWF0ZVNpbmdsZXRvbkNhY2hlIiwiY2FjaGVJbmRleCIsImZpbmRJbmRleCIsInBvcCIsImNyZWF0ZUxydUNhY2hlIiwibWVtb2l6ZWQiLCJtYXRjaGluZ0VudHJ5IiwiY2xlYXJDYWNoZSIsInJlc2V0UmVzdWx0c0NvdW50IiwibGFzdEFyZ3MiLCJzaGFsbG93RXF1YWwiLCJSZWYiLCJXZWFrUmVmIiwiZGVyZWYiLCJVTlRFUk1JTkFURUQiLCJURVJNSU5BVEVEIiwiY3JlYXRlQ2FjaGVOb2RlIiwib3B0aW9ucyIsImZuTm9kZSIsImxhc3RSZXN1bHQiLCJjYWNoZU5vZGUiLCJhcmciLCJvYmplY3RDYWNoZSIsIldlYWtNYXAiLCJvYmplY3ROb2RlIiwicHJpbWl0aXZlQ2FjaGUiLCJwcmltaXRpdmVOb2RlIiwidGVybWluYXRlZE5vZGUiLCJsYXN0UmVzdWx0VmFsdWUiLCJtZW1vaXplT3JPcHRpb25zIiwibWVtb2l6ZU9wdGlvbnNGcm9tQXJncyIsImNyZWF0ZVNlbGVjdG9yQ3JlYXRvck9wdGlvbnMiLCJtZW1vaXplIiwibWVtb2l6ZU9wdGlvbnMiLCJjcmVhdGVTZWxlY3RvcjIiLCJjcmVhdGVTZWxlY3RvckFyZ3MiLCJyZWNvbXB1dGF0aW9ucyIsImRlcGVuZGVuY3lSZWNvbXB1dGF0aW9ucyIsImRpcmVjdGx5UGFzc2VkT3B0aW9ucyIsInJlc3VsdEZ1bmMiLCJjb21iaW5lZE9wdGlvbnMiLCJhcmdzTWVtb2l6ZSIsImFyZ3NNZW1vaXplT3B0aW9ucyIsImZpbmFsTWVtb2l6ZU9wdGlvbnMiLCJmaW5hbEFyZ3NNZW1vaXplT3B0aW9ucyIsImRlcGVuZGVuY2llcyIsImFycmF5IiwiZXZlcnkiLCJpdGVtVHlwZXMiLCJhc3NlcnRJc0FycmF5T2ZGdW5jdGlvbnMiLCJnZXREZXBlbmRlbmNpZXMiLCJtZW1vaXplZFJlc3VsdEZ1bmMiLCJzZWxlY3RvciIsImlucHV0U2VsZWN0b3JSZXN1bHRzIiwiaW5wdXRTZWxlY3RvckFyZ3MiLCJjb2xsZWN0SW5wdXRTZWxlY3RvclJlc3VsdHMiLCJyZXNldERlcGVuZGVuY3lSZWNvbXB1dGF0aW9ucyIsInJlc2V0UmVjb21wdXRhdGlvbnMiLCJ3aXRoVHlwZXMiLCJpbnB1dFNlbGVjdG9yc09iamVjdCIsInNlbGVjdG9yQ3JlYXRvciIsIm9iamVjdCIsImFzc2VydElzT2JqZWN0IiwiaW5wdXRTZWxlY3RvcktleXMiLCJyZWR1Y2UiLCJjb21wb3NpdGlvbiIsImhhc19jb3JzX2pzXzEiLCJYTUxIdHRwUmVxdWVzdCIsImhhc0NPUlMiLCJyZWR1eFN0YXRlIiwiY2giLCJmdW5jdGlvbnMiLCJzdG9yZSIsImlzQWN0aW9uIiwiZ2V0U3RhdGUiLCJNYW5hZ2VyIiwiZW5naW5lX2lvX2NsaWVudF8xIiwic29ja2V0X2pzXzEiLCJwYXJzZXIiLCJvbl9qc18xIiwiYmFja28yX2pzXzEiLCJuc3BzIiwic3VicyIsInJlY29ubmVjdGlvbiIsInJlY29ubmVjdGlvbkF0dGVtcHRzIiwiSW5maW5pdHkiLCJyZWNvbm5lY3Rpb25EZWxheSIsInJlY29ubmVjdGlvbkRlbGF5TWF4IiwicmFuZG9taXphdGlvbkZhY3RvciIsImJhY2tvZmYiLCJCYWNrb2ZmIiwibWluIiwiaml0dGVyIiwiX3JlYWR5U3RhdGUiLCJfcGFyc2VyIiwiZW5jb2RlciIsIkVuY29kZXIiLCJkZWNvZGVyIiwiRGVjb2RlciIsIl9hdXRvQ29ubmVjdCIsImF1dG9Db25uZWN0IiwiX3JlY29ubmVjdGlvbiIsIl9yZWNvbm5lY3Rpb25BdHRlbXB0cyIsIl9yZWNvbm5lY3Rpb25EZWxheSIsInNldE1pbiIsIl9yYW5kb21pemF0aW9uRmFjdG9yIiwic2V0Sml0dGVyIiwiX3JlY29ubmVjdGlvbkRlbGF5TWF4Iiwic2V0TWF4IiwiX3RpbWVvdXQiLCJtYXliZVJlY29ubmVjdE9uT3BlbiIsIl9yZWNvbm5lY3RpbmciLCJhdHRlbXB0cyIsInJlY29ubmVjdCIsImVuZ2luZSIsIlNvY2tldCIsInNraXBSZWNvbm5lY3QiLCJvcGVuU3ViRGVzdHJveSIsIm9ub3BlbiIsImVycm9yU3ViIiwidGltZXIiLCJhdXRvVW5yZWYiLCJ1bnJlZiIsImNsZWFyVGltZW91dEZuIiwiY29ubmVjdCIsIm9ucGluZyIsIm9uZGF0YSIsIm9uZXJyb3IiLCJvbmNsb3NlIiwib25kZWNvZGVkIiwibmV4dFRpY2siLCJuc3AiLCJhY3RpdmUiLCJfZGVzdHJveSIsIl9jbG9zZSIsIl9wYWNrZXQiLCJlbmNvZGVkUGFja2V0cyIsInN1YkRlc3Ryb3kiLCJkaXNjb25uZWN0IiwicmVhc29uIiwicmVzZXQiLCJkZWxheSIsImR1cmF0aW9uIiwib25yZWNvbm5lY3QiLCJhdHRlbXB0IiwiUnQiLCJNdCIsInd0IiwiUHQiLCJSZWR1Y2VyVHlwZSIsIlNIT1VMRF9BVVRPQkFUQ0giLCJUYXNrQWJvcnRFcnJvciIsIlR1cGxlIiwiYWRkTGlzdGVuZXIiLCJMZSIsImFzeW5jVGh1bmtDcmVhdG9yIiwicnQiLCJhdXRvQmF0Y2hFbmhhbmNlciIsImJ1aWxkQ3JlYXRlU2xpY2UiLCJjbGVhckFsbExpc3RlbmVycyIsIlVlIiwiY29tYmluZVNsaWNlcyIsIkV0IiwiY29uZmlndXJlU3RvcmUiLCJldCIsImNyZWF0ZUFjdGlvbiIsImNyZWF0ZUFjdGlvbkNyZWF0b3JJbnZhcmlhbnRNaWRkbGV3YXJlIiwiY3JlYXRlQXN5bmNUaHVuayIsImNyZWF0ZURyYWZ0U2FmZVNlbGVjdG9yIiwiY3JlYXRlRHJhZnRTYWZlU2VsZWN0b3JDcmVhdG9yIiwiY3JlYXRlRHluYW1pY01pZGRsZXdhcmUiLCJ4dCIsImNyZWF0ZUVudGl0eUFkYXB0ZXIiLCJkdCIsImNyZWF0ZUltbXV0YWJsZVN0YXRlSW52YXJpYW50TWlkZGxld2FyZSIsIkhlIiwiY3JlYXRlTGlzdGVuZXJNaWRkbGV3YXJlIiwia3QiLCJjcmVhdGVOZXh0U3RhdGUiLCJjcmVhdGVSZWR1Y2VyIiwiY3JlYXRlU2VyaWFsaXphYmxlU3RhdGVJbnZhcmlhbnRNaWRkbGV3YXJlIiwiWGUiLCJjcmVhdGVTbGljZSIsImF0IiwiZmluZE5vblNlcmlhbGl6YWJsZVZhbHVlIiwiZm9ybWF0UHJvZEVycm9yTWVzc2FnZSIsImlzQWN0aW9uQ3JlYXRvciIsImlzQWxsT2YiLCJpc0FueU9mIiwiaXNBc3luY1RodW5rQWN0aW9uIiwiaXNGbHV4U3RhbmRhcmRBY3Rpb24iLCJpc0Z1bGZpbGxlZCIsImlzSW1tdXRhYmxlRGVmYXVsdCIsImlzUGVuZGluZyIsImlzUGxhaW4iLCJpc1JlamVjdGVkIiwiaXNSZWplY3RlZFdpdGhWYWx1ZSIsIm1pbmlTZXJpYWxpemVFcnJvciIsIm5hbm9pZCIsInByZXBhcmVBdXRvQmF0Y2hlZCIsIlFlIiwicmVtb3ZlTGlzdGVuZXIiLCJXZSIsInVud3JhcFJlc3VsdCIsIkRlIiwiR2UiLCJfX1JFRFVYX0RFVlRPT0xTX0VYVEVOU0lPTl9DT01QT1NFX18iLCJjb21wb3NlIiwiX19SRURVWF9ERVZUT09MU19FWFRFTlNJT05fXyIsInBheWxvYWQiLCJtZXRhIiwiSXQiLCJHIiwic3BlY2llcyIsInByZXBlbmQiLCJ1cGRhdGUiLCJpbnNlcnQiLCIkZSIsImlzUGxhaW5PYmplY3QiLCJrZXlQYXRoIiwic29tZSIsInFlIiwiSmUiLCJ0aHVuayIsImltbXV0YWJsZUNoZWNrIiwic2VyaWFsaXphYmxlQ2hlY2siLCJhY3Rpb25DcmVhdG9yQ2hlY2siLCJEdCIsIndpdGhFeHRyYUFyZ3VtZW50IiwiZXh0cmFBcmd1bWVudCIsIlllIiwic2V0VGltZW91dCIsIk90IiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwicXVldWVNaWNyb3Rhc2siLCJxdWV1ZU5vdGlmaWNhdGlvbiIsInN1YnNjcmliZSIsImRpc3BhdGNoIiwiWmUiLCJhdXRvQmF0Y2giLCJyZWR1Y2VyIiwibWlkZGxld2FyZSIsImRldlRvb2xzIiwicHJlbG9hZGVkU3RhdGUiLCJlbmhhbmNlcnMiLCJ0cmFjZSIsImFwcGx5TWlkZGxld2FyZSIsImluY2x1ZGVzIiwiY3JlYXRlU3RvcmUiLCJhZGRDYXNlIiwiYWRkTWF0Y2hlciIsIm1hdGNoZXIiLCJhZGREZWZhdWx0Q2FzZSIsIk50IiwiZ2V0SW5pdGlhbFN0YXRlIiwicmFuZG9tIiwidHQiLCJyZXF1ZXN0SWQiLCJyZXF1ZXN0U3RhdHVzIiwicGVuZGluZyIsInJlamVjdGVkIiwicmVqZWN0ZWRXaXRoVmFsdWUiLCJmdWxmaWxsZWQiLCJGdCIsIl90eXBlIiwic2VyaWFsaXplRXJyb3IiLCJhYm9ydGVkIiwiY29uZGl0aW9uIiwiaWRHZW5lcmF0b3IiLCJBYm9ydENvbnRyb2xsZXIiLCJhc3luYyIsImV4dHJhIiwiVnQiLCJzaWduYWwiLCJQcm9taXNlIiwiZ2V0UGVuZGluZ01ldGEiLCJyYWNlIiwicmVzb2x2ZSIsInJlamVjdFdpdGhWYWx1ZSIsImZ1bGZpbGxXaXRoVmFsdWUiLCJkaXNwYXRjaENvbmRpdGlvblJlamVjdGlvbiIsInVud3JhcCIsInNldHRsZWQiLCJ0eXBlUHJlZml4IiwibnQiLCJyZWR1Y2VyV2l0aFByZXBhcmUiLCJhc3luY1RodW5rIiwiX3QiLCJjcmVhdG9ycyIsInJlZHVjZXJQYXRoIiwiX3JlZHVjZXJEZWZpbml0aW9uVHlwZSIsInBheWxvYWRDcmVhdG9yIiwicHJlcGFyZWRSZWR1Y2VyIiwicHJlcGFyZSIsIlV0Iiwic2xpY2VDYXNlUmVkdWNlcnNCeU5hbWUiLCJzbGljZUNhc2VSZWR1Y2Vyc0J5VHlwZSIsImFjdGlvbkNyZWF0b3JzIiwic2xpY2VNYXRjaGVycyIsImV4cG9zZUFjdGlvbiIsImV4cG9zZUNhc2VSZWR1Y2VyIiwiZXh0cmFSZWR1Y2VycyIsImluaXRpYWxTdGF0ZSIsInJlZHVjZXJOYW1lIiwiY3JlYXRlTm90YXRpb24iLCJ6dCIsIkd0IiwiV3QiLCJCdCIsImFjdGlvbnMiLCJjYXNlUmVkdWNlcnMiLCJnZXRTZWxlY3RvcnMiLCJzZWxlY3RvcnMiLCJMdCIsInNlbGVjdFNsaWNlIiwiaW5qZWN0SW50byIsImluamVjdCIsInVud3JhcHBlZCIsIkh0Iiwic3QiLCJlbnRpdGllcyIsImNoYW5nZXMiLCJpZHMiLCJyZW1vdmVBbGwiLCJhZGRPbmUiLCJhZGRNYW55Iiwic2V0T25lIiwic2V0TWFueSIsInNldEFsbCIsInVwZGF0ZU9uZSIsInVwZGF0ZU1hbnkiLCJ1cHNlcnRPbmUiLCJ1cHNlcnRNYW55IiwicmVtb3ZlT25lIiwicmVtb3ZlTWFueSIsInNlbGVjdElkIiwic29ydENvbXBhcmVyIiwic2VsZWN0SWRzIiwic2VsZWN0RW50aXRpZXMiLCJzZWxlY3RBbGwiLCJzZWxlY3RUb3RhbCIsInNlbGVjdEJ5SWQiLCJjdCIsIm10IiwiY2F0Y2giLCJyZW1vdmVFdmVudExpc3RlbmVyIiwidXQiLCJsdCIsInB0IiwiZnQiLCJ5dCIsImNvZGUiLCJmaW5hbGx5IiwiVmUiLCJxdCIsIkF0IiwiWHQiLCJodCIsImF1dG9Kb2luIiwiY2FuY2VsIiwiSnQiLCJwcmVkaWNhdGUiLCJlZmZlY3QiLCJ1bnN1YnNjcmliZSIsImdldE9yaWdpbmFsU3RhdGUiLCJTdCIsImFjdGlvbkNyZWF0b3IiLCJRdCIsIll0IiwiVHQiLCJadCIsImNhbmNlbEFjdGl2ZSIsIkJvb2xlYW4iLCJ0YWtlIiwiZm9yayIsImNhbmNlbEFjdGl2ZUxpc3RlbmVycyIsInRocm93SWZDYW5jZWxsZWQiLCJyYWlzZWRCeSIsImFsbFNldHRsZWQiLCJzdGFydExpc3RlbmluZyIsInN0b3BMaXN0ZW5pbmciLCJjbGVhckxpc3RlbmVycyIsImd0IiwiaW5zdGFuY2VJZCIsImFwcGxpZWQiLCJlbiIsInRuIiwiYWRkTWlkZGxld2FyZSIsIndpdGhNaWRkbGV3YXJlIiwiQ3QiLCJybiIsImZsYXRNYXAiLCJubiIsInNuIiwiY24iLCJhbiIsImZyb21FbnRyaWVzIiwid2l0aExhenlMb2FkZWRTbGljZXMiLCJvdmVycmlkZUV4aXN0aW5nIiwiZGVmYXVsdEJpbmFyeVR5cGUiLCJ1c2luZ0Jyb3dzZXJXZWJTb2NrZXQiLCJXZWJTb2NrZXQiLCJjYiIsIk1veldlYlNvY2tldCIsIm1peGluIiwiZXZlbnQiLCJfY2FsbGJhY2tzIiwib2ZmIiwicmVtb3ZlQWxsTGlzdGVuZXJzIiwiY2FsbGJhY2tzIiwiZW1pdCIsImxpc3RlbmVycyIsImhhc0xpc3RlbmVycyIsIldUIiwid2Vic29ja2V0X2NvbnN0cnVjdG9yX2pzXzEiLCJXZWJUcmFuc3BvcnQiLCJ0cmFuc3BvcnQiLCJ0cmFuc3BvcnRPcHRpb25zIiwiY2xvc2VkIiwicmVhZHkiLCJjcmVhdGVCaWRpcmVjdGlvbmFsU3RyZWFtIiwic3RyZWFtIiwiZGVjb2RlclN0cmVhbSIsImNyZWF0ZVBhY2tldERlY29kZXJTdHJlYW0iLCJNQVhfU0FGRV9JTlRFR0VSIiwicmVhZGVyIiwicmVhZGFibGUiLCJwaXBlVGhyb3VnaCIsImdldFJlYWRlciIsImVuY29kZXJTdHJlYW0iLCJjcmVhdGVQYWNrZXRFbmNvZGVyU3RyZWFtIiwicGlwZVRvIiwid3JpdGVyIiwiZ2V0V3JpdGVyIiwicmVhZCIsImxhc3RQYWNrZXQiLCJQYWNrZXRUeXBlIiwiYmluYXJ5X2pzXzEiLCJpc19iaW5hcnlfanNfMSIsIlJFU0VSVkVEX0VWRU5UUyIsImlzT2JqZWN0IiwicmVwbGFjZXIiLCJFVkVOVCIsIkFDSyIsImhhc0JpbmFyeSIsImVuY29kZUFzU3RyaW5nIiwiZW5jb2RlQXNCaW5hcnkiLCJCSU5BUllfRVZFTlQiLCJCSU5BUllfQUNLIiwiYXR0YWNobWVudHMiLCJkZWNvbnN0cnVjdGlvbiIsImRlY29uc3RydWN0UGFja2V0IiwicGFjayIsImJ1ZmZlcnMiLCJyZXZpdmVyIiwicmVjb25zdHJ1Y3RvciIsImRlY29kZVN0cmluZyIsImlzQmluYXJ5RXZlbnQiLCJCaW5hcnlSZWNvbnN0cnVjdG9yIiwiaXNCaW5hcnkiLCJ0YWtlQmluYXJ5RGF0YSIsInN0YXJ0IiwiYnVmIiwidHJ5UGFyc2UiLCJzdWJzdHIiLCJpc1BheWxvYWRWYWxpZCIsIkNPTk5FQ1QiLCJESVNDT05ORUNUIiwiQ09OTkVDVF9FUlJPUiIsImZpbmlzaGVkUmVjb25zdHJ1Y3Rpb24iLCJyZWNvblBhY2siLCJiaW5EYXRhIiwicmVjb25zdHJ1Y3RQYWNrZXQiLCJUcmFuc3BvcnRFcnJvciIsInBhcnNlcXNfanNfMSIsImRldGFpbHMiLCJfaG9zdG5hbWUiLCJfcG9ydCIsIl9xdWVyeSIsImVuY29kZWRRdWVyeSIsInRpdGxlIiwiX2RlY29uc3RydWN0UGFja2V0IiwicGxhY2Vob2xkZXIiLCJfcGxhY2Vob2xkZXIiLCJuZXdEYXRhIiwiX3JlY29uc3RydWN0UGFja2V0IiwicGFja2V0RGF0YSIsInRyYW5zcG9ydHMiLCJpbmRleF9qc18xIiwicGFyc2V1cmlfanNfMSIsIlR1bmVPcHRpb25fMSIsImdldENvbm5lY3Rpb24iLCJlbmRzV2l0aCIsInN0YXJ0c1dpdGgiLCJnZXRUdW5lT3B0aW9uU3RyaW5nIiwidHVuZU9wdGlvbiIsInR1bmVPcHRpb25OdW1iZXJzIiwidHVuZU9wdGlvbktleSIsInBhcnNlZFR1bmVPcHRpb24iLCJVUkxTZWFyY2hQYXJhbXMiLCJoYXNTbGFzaCIsImF0dHIiLCJhY2MiLCJOQVRJVkVfU0VUX1RJTUVPVVQiLCJOQVRJVkVfQ0xFQVJfVElNRU9VVCIsImNsZWFyVGltZW91dCIsInVzZU5hdGl2ZVRpbWVycyIsInV0ZjhMZW5ndGgiLCJjZWlsIiwiQVBQX05BTUUiLCJQUk9EVUNUSU9OIiwiTE9DQUxIT1NUIiwiREVWRUxPUE1FTlQiLCJQUk9EVUNUSU9OX0RPTUFJTiIsIlBST0RVQ1RJT05fQVBJX0RPTUFJTiIsIkRFVkVMT1BNRU5UX0RPTUFJTiIsIkFXU19IT1NUX0tFWSIsIlBPUlRTIiwiSFRUUCIsIkhUVFBTIiwiREVWRUxPUE1FTlRfQ09WRVIiLCJERVZFTE9QTUVOVF9BUEkiLCJERVZFTE9QTUVOVF9DT01QT05FTlRTIiwiREVWRUxPUE1FTlRfVFVORSIsIkRFVkVMT1BNRU5UX0NMSUVOVCIsIlJFRElTIiwiTU9OR08iLCJJT19MQiIsIklPX1JPT1QiLCJTVUJfRE9NQUlOUyIsIldXVyIsIkFQSSIsIkRFU0MiLCJQT1JUQUwiLCJDTElFTlQiLCJBU1NFVFMiLCJTRVNTSU9OIiwiQVVUTyIsIk9XTiIsIk5FV1MiLCJCQU5ORVIiLCJDT1ZFUiIsIlJBTksiLCJFWFQiLCJDT01QT05FTlRTIiwiVFVORSIsIlRSQU5TQUNUSU9OIiwiQVVUSCIsIkFQUF9UWVBFUyIsIkVYVEVOU0lPTiIsIlVSTCIsInR3aXR0ZXIiLCJmYWNlYm9vayIsImFwcHN0b3JlIiwicGxheXN0b3JlIiwiY2hyb21lRXh0ZW5zaW9uIiwidGFsa25DbGllbnRKcyIsInRhbGtuQXBpSnMiLCJ0YWxrblJhbmtKcyIsIm5vSW5uZXJOb3RpZiIsImJhbm5lckNsYXNzIiwic3RvcmFnZUtleSIsImJhc2VLZXkiLCJwb3N0c1RpbWVsaW5lWmVybyIsInBvc3RzU2luZ2xlIiwicG9zdHNNdWx0aSIsInBvc3RzQ2hpbGQiLCJwb3N0c0xvZ3MiLCJ0aHJlYWRzIiwid29ya2VyQ29uc3RydWN0b3IiLCJ3b3JrZXJPcHRpb25zIiwidXJsIiwiZ2xvYmFsU2NvcGUiLCJibG9iIiwiQmxvYkJ1aWxkZXIiLCJXZWJLaXRCbG9iQnVpbGRlciIsIk1vekJsb2JCdWlsZGVyIiwiTVNCbG9iQnVpbGRlciIsImFwcGVuZCIsImdldEJsb2IiLCJ3ZWJraXRVUkwiLCJvYmplY3RVUkwiLCJjcmVhdGVPYmplY3RVUkwiLCJ3b3JrZXIiLCJyZXZva2VPYmplY3RVUkwiLCJlbmNvZGVVUklDb21wb25lbnQiLCJjYWNoZWRTZXRUaW1lb3V0IiwiY2FjaGVkQ2xlYXJUaW1lb3V0IiwiZGVmYXVsdFNldFRpbW91dCIsImRlZmF1bHRDbGVhclRpbWVvdXQiLCJydW5UaW1lb3V0IiwiZnVuIiwiY3VycmVudFF1ZXVlIiwicXVldWUiLCJkcmFpbmluZyIsInF1ZXVlSW5kZXgiLCJjbGVhblVwTmV4dFRpY2siLCJkcmFpblF1ZXVlIiwicnVuIiwibWFya2VyIiwicnVuQ2xlYXJUaW1lb3V0IiwiSXRlbSIsIm5vb3AiLCJicm93c2VyIiwiYXJndiIsInZlcnNpb24iLCJ2ZXJzaW9ucyIsInByZXBlbmRMaXN0ZW5lciIsInByZXBlbmRPbmNlTGlzdGVuZXIiLCJiaW5kaW5nIiwiY3dkIiwiY2hkaXIiLCJkaXIiLCJ1bWFzayIsImNyZWF0ZUFwaVN0b3JlIiwidG9vbGtpdF8xIiwibWlkZGxld2FyZV8xIiwicmVkdWNlcnNfMSIsImFwaVN0b3JlIiwiZ2V0RGVmYXVsdE1pZGRsZXdhcmUiLCJnZW5lcmF0ZVVuaXF1ZUtleSIsImdlbmVyYXRlVW5pcXVlS2V5U2VwYXJhdG9yIiwiaXNWYWxpZEtleSIsIklTX05PREUiLCJJU19CUk9XU0VSIiwiaXNOb2RlU2VydmVyIiwiZ2V0RW52VmFyIiwicmVsZWFzZSIsImxhYmVsIiwic2VwZXJhdG9yIiwiZXYiLCJzb2NrZXRfaW9fcGFyc2VyXzEiLCJjb25uZWN0X2Vycm9yIiwiZGlzY29ubmVjdGluZyIsIm5ld0xpc3RlbmVyIiwiaW8iLCJjb25uZWN0ZWQiLCJyZWNvdmVyZWQiLCJyZWNlaXZlQnVmZmVyIiwic2VuZEJ1ZmZlciIsIl9xdWV1ZSIsIl9xdWV1ZVNlcSIsImFja3MiLCJmbGFncyIsImF1dGgiLCJfb3B0cyIsImRpc2Nvbm5lY3RlZCIsInN1YkV2ZW50cyIsIm9ucGFja2V0IiwicmV0cmllcyIsImZyb21RdWV1ZSIsInZvbGF0aWxlIiwiX2FkZFRvUXVldWUiLCJjb21wcmVzcyIsImFjayIsIl9yZWdpc3RlckFja0NhbGxiYWNrIiwiaXNUcmFuc3BvcnRXcml0YWJsZSIsIm5vdGlmeU91dGdvaW5nTGlzdGVuZXJzIiwiYWNrVGltZW91dCIsImVtaXRXaXRoQWNrIiwid2l0aEVyciIsInJlamVjdCIsImFyZzEiLCJhcmcyIiwidHJ5Q291bnQiLCJyZXNwb25zZUFyZ3MiLCJzaGlmdCIsIl9kcmFpblF1ZXVlIiwiZm9yY2UiLCJfc2VuZENvbm5lY3RQYWNrZXQiLCJfcGlkIiwicGlkIiwib2Zmc2V0IiwiX2xhc3RPZmZzZXQiLCJvbmNvbm5lY3QiLCJvbmV2ZW50Iiwib25hY2siLCJvbmRpc2Nvbm5lY3QiLCJlbWl0RXZlbnQiLCJfYW55TGlzdGVuZXJzIiwibGlzdGVuZXIiLCJzZW50IiwiZW1pdEJ1ZmZlcmVkIiwib25BbnkiLCJwcmVwZW5kQW55Iiwib2ZmQW55IiwibGlzdGVuZXJzQW55Iiwib25BbnlPdXRnb2luZyIsIl9hbnlPdXRnb2luZ0xpc3RlbmVycyIsInByZXBlbmRBbnlPdXRnb2luZyIsIm9mZkFueU91dGdvaW5nIiwibGlzdGVuZXJzQW55T3V0Z29pbmciLCJwcm9jZXNzXzEiLCJzb2NrZXRfaW9fY2xpZW50XzEiLCJDaENvbmZpZ18xIiwiY2hfY29uZmlnX2RldmVsb3BtZW50X2pzb25fMSIsImNoX2NvbmZpZ19wcm9kdWN0aW9uX2pzb25fMSIsIkJvb3RPcHRpb25fMSIsIlNlcXVlbmNlXzEiLCJjb25mXzEiLCJkZWZpbmVfMSIsInV0aWxzXzEiLCJfMSIsIklTX0RPQ0tFUiIsImhyZWYiLCJUb1NlcnZlciIsImRvbWFpbiIsIm9wdGlvbiIsInVwZ3JhZGUiLCJmb3JjZU5ldyIsIndzc1dvcmtlciIsInR1bmUiLCJ1bnR1bmUiLCJleGUiLCJvbkNvbm5lY3QiLCJvbkNvbm5lY3RFcnJvciIsIm9uUmVzcG9uc2VFbWl0Iiwib25SZXNwb25zZUJvYXJkY2FzdCIsIm9mZlJlc3BvbnNlIiwiaW9zIiwibWV0aG9kcyIsInR1bmVJZCIsInVybFNlYXJjaFBhcmFtcyIsImhvc3RQb3J0IiwiZW5kcG9pbnQiLCJIVFRQU19QUk9UT0NPTCIsInBvc3RNZXNzYWdlIiwic3RhdHVzVHVubmluZyIsInJlc3BvbnNlIiwiYXBpU3RhdGUiLCJzZXJ2ZXJUb0FwaVR5cGUiLCJTRVJWRVJfVE9fQVBJX0VNSVQiLCJTRVJWRVJfVE9fQVBJX0JST0FEQ0FTVCIsIlRyYW5zZm9ybVN0cmVhbSIsInRyYW5zZm9ybSIsImNvbnRyb2xsZXIiLCJlbmNvZGVQYWNrZXRfanNfMSIsInBheWxvYWRMZW5ndGgiLCJoZWFkZXIiLCJEYXRhVmlldyIsInNldFVpbnQ4IiwidmlldyIsInNldFVpbnQxNiIsInNldEJpZ1VpbnQ2NCIsIkJpZ0ludCIsImVucXVldWUiLCJtYXhQYXlsb2FkIiwiVEVYVF9ERUNPREVSIiwiVGV4dERlY29kZXIiLCJjaHVua3MiLCJleHBlY3RlZExlbmd0aCIsImNodW5rIiwidG90YWxMZW5ndGgiLCJjb25jYXRDaHVua3MiLCJoZWFkZXJBcnJheSIsImdldFVpbnQxNiIsImdldFVpbnQzMiIsInBvdyIsImRlY29kZVBhY2tldF9qc18xIiwiU0VQQVJBVE9SIiwiZnJvbUNoYXJDb2RlIiwiY291bnQiLCJlbmNvZGVkUGF5bG9hZCIsImRlY29kZWRQYWNrZXQiLCJTZXF1ZW5jZSIsIlRBTEtOX1BST1RPQ09MIiwiSFRUUF9QUk9UT0NPTCIsIldTU19QUk9UT0NPTCIsIlVOS05PV05fUFJPVE9DT0wiLCJFTUlUX01FX0tFWSIsIkFQSV9TRVBBUkFURV9JT19UWVBFX1NUQVJUIiwiQVBJX1NFUEFSQVRFX0lPX1RZUEVfRU5EIiwiQVBJX1JFUVVFU1RfVFlQRSIsIkFQSV9SRVNQT05TRV9UWVBFX0VNSVQiLCJBUElfUkVTUE9OU0VfVFlQRV9CUk9BRENBU1QiLCJBUElfU0VUVVAiLCJVTktOT1dOIiwiQ09OTkVDVElPTl9TRVJWRVJfS0VZIiwiQVBJX1RPX1NFUlZFUl9SRVFVRVNUIiwiTUVUSE9EX0NPTE9OIiwiQVBJX1RPX0NMSUVOVF9SRVFVRVNUIiwiQVBJX1RPX0NMSUVOVF9FTUlUIiwiQVBJX1RPX0NMSUVOVF9CUk9BRENBU1QiLCJBUElfQlJPQURDQVNUX0NBTExCQUNLIiwiUkVEVVhfQUNUSU9OX0tFWSIsIkFERF9DTElFTlRfQUNUSU9OX1BSRUZJWCIsInJlcXVlc3RQdWJsaWNTdGF0ZSIsInJlcXVlc3RQcml2YXRlU3RhdGUiLCJyZXNwb25zZUVtaXRTdGF0ZSIsInVzZXIiLCJzZXR0aW5nIiwidGhyZWFkIiwicmVzcG9uc2VCcm9hZGNhc3RTdGF0ZSIsImZldGNoUG9zdHMiLCJhcHAiLCJnZXRNb3JlIiwidXBkYXRlVGhyZWFkIiwiY2hhbmdlVGhyZWFkIiwiY2hhbmdlVGhyZWFkRGV0YWlsIiwiYWRkRmluZENoaWxkIiwiZmV0Y2hSYW5rIiwidXBkYXRlVGhyZWFkU2VydmVyTWV0YXMiLCJnZXRTZXF1ZW5jZUFjdGlvbk1hcCIsInNwbGl0ZWQiLCJzZXF1ZW5jZSIsImFjdGlvblR5cGUiLCJhY3Rpb25OYW1lIiwidXBkYXRlQ2FsbGJhY2tFeGVDb25kaXRpb25NYXAiLCJhY3RpdmVSZXNwb25zZU1hcCIsImJyb2FkY2FzdCIsInNlcXVlbmNlTWFwIiwiY29udmVydFNlcnZlclRvQXBpSW9UeXBlIiwiaUZyYW1lSWQiLCJjb252ZXJ0RXh0VG9DbGllbnRBY3Rpb25UeXBlIiwiY29udmVydEFwaVRvQ2xpZW50QWN0aW9uVHlwZSIsImdldFJlcXVlc3RTdGF0ZSIsInJlcXVlc3RQYXJhbXMiLCJlbmRwb2ludEtleSIsInJlcXVlc3RTdGF0ZSIsInN0YXRlS2V5IiwiY29sdW1uTmFtZSIsImdldFJlc3BvbnNlU3RhdGUiLCJ1cGRhdGVTdGF0ZSIsInJlc3BvbnNlU2NoZW1hIiwicmVzcG9uc2VTdGF0ZSIsInVwZGF0ZVN0YXRlS2V5IiwiY29sdW1uTmFtZXMiLCJ1cGRhdGVTdGF0ZVZhbHVlIiwidG9KU09OIiwiX2lkIiwiX192IiwiZ2V0UmVxdWVzdEFjdGlvblN0YXRlIiwicmVxdWVzdFBhcmFtczEiLCJyZXF1ZXN0UGFyYW1zMiIsInBsdXJhbCIsIm1zQWJzIiwiaXNQbHVyYWwiLCJyb3VuZCIsInBhcnNlRmxvYXQiLCJpc0Zpbml0ZSIsImxvbmciLCJmbXRTaG9ydCIsImxvYyIsImdldEhvc3ROYW1lIiwiaG9zdE5hbWUiLCJnZXRFbnYiLCJmaWxlcyIsImFwaSIsIndzV29ya2VyIiwiZXh0IiwiY292ZXIiLCJjb21wb25lbnRzIiwiaXNEZXYiLCJ3d3dVUkwiLCJjb3ZlclVSTCIsImFwaVVSTCIsImFwaUFjY2Vzc1VSTCIsImNsaWVudFVSTCIsImNvbXBvbmVudHNVUkwiLCJkZXNjVVJMIiwicG9ydGFsVVJMIiwiYXNzZXRzVVJMIiwiYXNzZXRzSW1nUGF0aCIsImNvbmYiLCJhdXRvVVJMIiwiZXh0VVJMIiwiY29tcFVSTCIsIkNPTVAiLCJvd25VUkwiLCJuZXdzVVJMIiwidHVuZVVSTCIsImJhbm5lclVSTCIsInRyYW5zYWN0aW9uVVJMIiwiYXV0aFVSTCIsImFzc2V0c0NvdmVyUGF0aCIsImFzc2V0c0ljb25QYXRoIiwiYXNzZXRzSnNQYXRoIiwic2Vzc2lvblVSTCIsImFwaVZlciIsImxwTGFuZ3VhZ2VzIiwiZGVmYXVsdEJpcnRoZGF5VW5peHRpbWUiLCJmaW5kT25lVGhyZWFkQWN0aXZlSG91ciIsImZpbmRPbmVQb3N0Q250IiwiZmluZE9uZUxpbWl0Q250Iiwib2dwSW1hZ2VzIiwiSHRtbCIsIk11c2ljIiwiVmlkZW8iLCJkZWZhdWx0RmF2aWNvbiIsImVudk5hbWUiLCJIT1NUTkFNRSIsIkhPU1QiLCJOT0RFX0hPU1ROQU1FIiwidHJpbSIsImdldENvbm5lY3Rpb25zT3B0aW9ucyIsImNvbm5lY3Rpb25zIiwic2VydmVyIiwiYXVkaW9zIiwidmlkZW9zIiwiaXNTZWxmRXhjbHVkZSIsImlzU29ydFVwcGVyTGF5ZXIiLCJDaE1vZGVsIiwiZ2V0UGFyZW50Q29ubmVjdGlvbiIsImZpeENvbm5lY3Rpb24iLCJyZXBsYWNlZENvbm5lY3Rpb24iLCJsYXN0U2xhc2hJbmRleCIsImxhc3RJbmRleE9mIiwiZ2V0VG9wQ29ubmVjdGlvbiIsInNlcCIsInNlcGFyZXRvciIsImdldENvbm5lY3Rpb25Gcm9tVXJsIiwicXVlcnlTdHJpbmciLCJyYXdUdW5lSWQiLCJnZXRDb25uZWN0aW9uRnJvbVR1bmVJZCIsImRlY29kZVVSSUNvbXBvbmVudCIsImVzY2FwZWRTZXBhcmF0b3IiLCJwYXR0ZXJuIiwiZ2V0RmF2aWNvbiIsImdldENvbm5lY3Rpb25zIiwiY29ubmVjdGlvbkFyciIsImNvbm5lY3Rpb25TZXBhcmF0b3IiLCJwYXJ0IiwiY29ubmVjdGlvblBhcnQiLCJzZWdtZW50IiwiYWRkQ29ubmVjdGlvbiIsImdldE15Q29ubmVjdGlvbkNsYXNzIiwic3RhcnRDb25uZWN0aW9uIiwiZW5kQ29ubmVjdGlvbiIsIm15Q29ubmVjdGlvbkNsYXNzIiwibG9vcENvbm5lY3Rpb25zIiwiaXNQdXNoIiwiZ2V0VHlwZSIsImRlZnVsdFR5cGUiLCJwbGFpblR5cGUiLCJpc01lZGlhQ2giLCJnZXRTZXJ2ZXIiLCJkZWZhdWx0UHJvdG9jb2wiLCJnZXRDaFBhcmFtcyIsIl9jb25uZWN0aW9uIiwiZmFjdG9yIiwicmFuZCIsImRldmlhdGlvbiIsInVybF9qc18xIiwibWFuYWdlcl9qc18xIiwicGFyc2VkIiwic2FtZU5hbWVzcGFjZSIsIm11bHRpcGxleCIsIlRhbGtuQVBJIiwiU3RvcmVzRGlzcGF0Y2hlcl8xIiwiU2NvcGVkVGFsa25DbGllbnRJbXBsIiwic3RvcmVzRGlzcGF0Y2hlciIsImZldGNoRGV0YWlsIiwic3Vic2NyaWJlVG9UdW5lSWQiLCJjcmVhdGVTdG9yZXNEaXNwYXRjaGVyIiwiaXNUdW5lU2FtZUNoIiwiaXNUdW5lTXVsdGlDaCIsIlRhbGtuQVBJXzEiLCJ3cml0ZUJ1ZmZlciIsInByZXZCdWZmZXJMZW4iLCJhZ2VudCIsInJlbWVtYmVyVXBncmFkZSIsImFkZFRyYWlsaW5nU2xhc2giLCJyZWplY3RVbmF1dGhvcml6ZWQiLCJwZXJNZXNzYWdlRGVmbGF0ZSIsInRocmVzaG9sZCIsImNsb3NlT25CZWZvcmV1bmxvYWQiLCJ1cGdyYWRlcyIsInBpbmdJbnRlcnZhbCIsInBpbmdUaW1lb3V0IiwicGluZ1RpbWVvdXRUaW1lciIsImJlZm9yZXVubG9hZEV2ZW50TGlzdGVuZXIiLCJvZmZsaW5lRXZlbnRMaXN0ZW5lciIsImNyZWF0ZVRyYW5zcG9ydCIsIkVJTyIsInByaW9yV2Vic29ja2V0U3VjY2VzcyIsInNldFRyYW5zcG9ydCIsIm9uRHJhaW4iLCJwcm9iZSIsImZhaWxlZCIsIm9uVHJhbnNwb3J0T3BlbiIsIm1zZyIsInVwZ3JhZGluZyIsImZsdXNoIiwiZnJlZXplVHJhbnNwb3J0Iiwib25UcmFuc3BvcnRDbG9zZSIsIm9udXBncmFkZSIsInJlc2V0UGluZ1RpbWVvdXQiLCJvbkhhbmRzaGFrZSIsInNlbmRQYWNrZXQiLCJmaWx0ZXJVcGdyYWRlcyIsImdldFdyaXRhYmxlUGFja2V0cyIsInBheWxvYWRTaXplIiwiY2xlYW51cEFuZENsb3NlIiwid2FpdEZvclVwZ3JhZGUiLCJmaWx0ZXJlZFVwZ3JhZGVzIiwic3RhdHVzRGlzcGF0Y2hlZCIsInN0YXR1c0Rpc3BhdGNoaW5nIiwic3RhdHVzUmVzcG9uc2VkIiwic3RhdHVzUmVzcG9uc2luZyIsInN0YXR1c1JlcXVlc3RpbmciLCJzdGF0dXNVblR1bm5pbmciLCJzdGF0dXNUdW5lZCIsIlRvU2VydmVyXzEiLCJXc3NXb3JrZXIiLCJvbk1lc3NhZ2UiLCJvbk1lc3NhZ2VFcnJvciIsIm9ubWVzc2FnZSIsInRvU2VydmVyIiwicXMiLCJxcnkiLCJwYWlycyIsInBhaXIiLCJXUyIsImlzUmVhY3ROYXRpdmUiLCJwcm9kdWN0IiwiY2hlY2siLCJwcm90b2NvbHMiLCJoZWFkZXJzIiwid3MiLCJhZGRFdmVudExpc3RlbmVycyIsIl9zb2NrZXQiLCJjbG9zZUV2ZW50IiwiQnVmZmVyIiwiX19ET19OT1RfVVNFX19BY3Rpb25UeXBlcyIsImFjdGlvblR5cGVzX2RlZmF1bHQiLCJiaW5kQWN0aW9uQ3JlYXRvcnMiLCJsZWdhY3lfY3JlYXRlU3RvcmUiLCJzeW1ib2xfb2JzZXJ2YWJsZV9kZWZhdWx0Iiwib2JzZXJ2YWJsZSIsInJhbmRvbVN0cmluZyIsIklOSVQiLCJSRVBMQUNFIiwiUFJPQkVfVU5LTk9XTl9BQ1RJT04iLCJlbmhhbmNlciIsImN1cnJlbnRSZWR1Y2VyIiwiY3VycmVudFN0YXRlIiwiY3VycmVudExpc3RlbmVycyIsIm5leHRMaXN0ZW5lcnMiLCJsaXN0ZW5lcklkQ291bnRlciIsImlzRGlzcGF0Y2hpbmciLCJlbnN1cmVDYW5NdXRhdGVOZXh0TGlzdGVuZXJzIiwiaXNTdWJzY3JpYmVkIiwibGlzdGVuZXJJZCIsInJlcGxhY2VSZWR1Y2VyIiwibmV4dFJlZHVjZXIiLCJvdXRlclN1YnNjcmliZSIsIm9ic2VydmVyIiwib2JzZXJ2ZVN0YXRlIiwib2JzZXJ2ZXJBc09ic2VydmVyIiwicmVkdWNlcktleXMiLCJmaW5hbFJlZHVjZXJzIiwiZmluYWxSZWR1Y2VyS2V5cyIsInNoYXBlQXNzZXJ0aW9uRXJyb3IiLCJhc3NlcnRSZWR1Y2VyU2hhcGUiLCJoYXNDaGFuZ2VkIiwibmV4dFN0YXRlIiwicHJldmlvdXNTdGF0ZUZvcktleSIsIm5leHRTdGF0ZUZvcktleSIsImJpbmRBY3Rpb25DcmVhdG9yIiwiYm91bmRBY3Rpb25DcmVhdG9ycyIsImZ1bmNzIiwibWlkZGxld2FyZXMiLCJjcmVhdGVTdG9yZTIiLCJtaWRkbGV3YXJlQVBJIiwiY2hhaW4iLCJjcmVhdGVUaHVua01pZGRsZXdhcmUiLCJ3aXRoTmF0aXZlRmlsZSIsIkZpbGUiLCJwb2xsaW5nX2pzXzEiLCJ3ZWJzb2NrZXRfanNfMSIsIndlYnRyYW5zcG9ydF9qc18xIiwid2Vic29ja2V0Iiwid2VidHJhbnNwb3J0IiwiQ2hEZXRhaWxfMSIsIlJhbmtfMSIsImNoVHJlZSIsIkJvb3RPcHRpb24iLCJDaCIsIkNoRGV0YWlsIiwiUmFuayIsIlBvc3QiLCJDaENvbmZpZyIsIlR1bmVPcHRpb24iLCJTdG9yZXNEaXNwYXRjaGVyIiwibGltaXRQaWRDbnQiLCJfZmlsZW5hbWVfV3NzV29ya2VyX2pzX18xIiwic3RvcmVfMSIsInN0YXRlXzEiLCJvcHRpb25zSW5pdCIsImlzRGVidWciLCJzZXBhcmF0b3IiLCJnZXRHZW5lcmF0ZVBpZEVycm9yQ29kZSIsInVzZVR1bmVJZCIsInR1bmVJZHMiLCJnZXRUdW5lUGlkIiwiZ2V0VHVuZUlkcyIsIm9uU3RhdGVzIiwidHVuZUlkS2V5IiwiZ2V0UmVzcG9uc2UiLCJfb25DaGFuZ2VTdGF0ZSIsImdlbmVyYXRlUGlkRXJyb3JDb2RlIiwib25DaGFuZ2VTdGF0ZSIsInByZWZpeENvbm5lY3Rpb25zIiwidW50dW5lSWQiLCJ0dW5lQ250IiwibGF0ZXN0VHVuZUlkIiwidGFyZ2V0VHVuZUlkIiwic3RhdGVzIiwiY3VycmVudFRhcmdldCIsIldvcmtlciIsImlzRXhlIiwibmV3VHVuZVBpZCIsInR1bmVJZENudCIsInR1bmVPcHRpb25NZXRob2RzIiwidHVuZU9wdGlvbkRldGFpbE1ldGEiLCJ0dW5lT3B0aW9uRGV0YWlsRW1vdGlvbiIsInR1bmVPcHRpb25SYW5rQWxsSGFzTGF0ZXN0UG9zdCIsInR1bmVPcHRpb25SYW5rSGFzTGF0ZXN0UG9zdCIsInR1bmVPcHRpb25IYXNMYXRlc3RQb3N0IiwidHVuZU9wdGlvblJhbmtBbGwiLCJ0dW5lT3B0aW9uUmFuayIsInR1bmVPcHRpb25Qb3N0cyIsImdldFR1bmVPcHRpb25Gcm9tVXJsIiwiX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsIm1vZHVsZUlkIiwiY2FjaGVkTW9kdWxlIiwiZXhlY09wdGlvbnMiLCJmYWN0b3J5IiwiX193ZWJwYWNrX21vZHVsZXNfXyIsInJlcXVpcmUiLCJoYW5kbGVyIiwiZ2V0dGVyIiwiZGVmaW5pdGlvbiIsImh1IiwiY2h1bmtJZCIsImhtckYiLCJnbG9iYWxUaGlzIiwic2NyaXB0IiwibmVlZEF0dGFjaCIsInNjcmlwdHMiLCJnZXRFbGVtZW50c0J5VGFnTmFtZSIsImdldEF0dHJpYnV0ZSIsImNyZWF0ZUVsZW1lbnQiLCJjaGFyc2V0IiwibmMiLCJzZXRBdHRyaWJ1dGUiLCJvblNjcmlwdENvbXBsZXRlIiwiZG9uZUZucyIsInBhcmVudE5vZGUiLCJyZW1vdmVDaGlsZCIsImhlYWQiLCJhcHBlbmRDaGlsZCIsInRvU3RyaW5nVGFnIiwiY3VycmVudENoaWxkTW9kdWxlIiwiY3VycmVudFVwZGF0ZUFwcGx5SGFuZGxlcnMiLCJxdWV1ZWRJbnZhbGlkYXRlZE1vZHVsZXMiLCJjdXJyZW50TW9kdWxlRGF0YSIsImluc3RhbGxlZE1vZHVsZXMiLCJjdXJyZW50UGFyZW50cyIsInJlZ2lzdGVyZWRTdGF0dXNIYW5kbGVycyIsImN1cnJlbnRTdGF0dXMiLCJibG9ja2luZ1Byb21pc2VzIiwiYmxvY2tpbmdQcm9taXNlc1dhaXRpbmciLCJzZXRTdGF0dXMiLCJuZXdTdGF0dXMiLCJyZXN1bHRzIiwidW5ibG9jayIsImxpc3QiLCJob3RDaGVjayIsImFwcGx5T25VcGRhdGUiLCJobXJNIiwidXBkYXRlZE1vZHVsZXMiLCJobXJDIiwicHJvbWlzZXMiLCJpbnRlcm5hbEFwcGx5IiwiYXBwbHlJbnZhbGlkYXRlZE1vZHVsZXMiLCJob3RBcHBseSIsImVycm9ycyIsImRpc3Bvc2VQcm9taXNlIiwiZGlzcG9zZSIsImFwcGx5UHJvbWlzZSIsInJlcG9ydEVycm9yIiwib3V0ZGF0ZWRNb2R1bGVzIiwiYXBwbHlSZXN1bHRzIiwibW9kdWxlcyIsImhtckkiLCJobXJEIiwiX21haW4iLCJob3QiLCJwYXJlbnRzIiwiY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yIiwiZmV0Y2hQcmlvcml0eSIsInByb21pc2UiLCJ0cmFja0Jsb2NraW5nUHJvbWlzZSIsImNyZWF0ZVJlcXVpcmUiLCJfYWNjZXB0ZWREZXBlbmRlbmNpZXMiLCJfYWNjZXB0ZWRFcnJvckhhbmRsZXJzIiwiX2RlY2xpbmVkRGVwZW5kZW5jaWVzIiwiX3NlbGZBY2NlcHRlZCIsIl9zZWxmRGVjbGluZWQiLCJfc2VsZkludmFsaWRhdGVkIiwiX2Rpc3Bvc2VIYW5kbGVycyIsIl9yZXF1aXJlU2VsZiIsImRlcCIsImVycm9ySGFuZGxlciIsImRlY2xpbmUiLCJhZGREaXNwb3NlSGFuZGxlciIsInJlbW92ZURpc3Bvc2VIYW5kbGVyIiwiaWR4IiwiaW52YWxpZGF0ZSIsImFkZFN0YXR1c0hhbmRsZXIiLCJyZW1vdmVTdGF0dXNIYW5kbGVyIiwic2NyaXB0VXJsIiwiaW1wb3J0U2NyaXB0cyIsImN1cnJlbnRTY3JpcHQiLCJ0YWdOYW1lIiwidG9VcHBlckNhc2UiLCJjdXJyZW50VXBkYXRlZE1vZHVsZXNMaXN0IiwiY3VycmVudFVwZGF0ZUNodW5rcyIsImN1cnJlbnRVcGRhdGUiLCJjdXJyZW50VXBkYXRlUmVtb3ZlZENodW5rcyIsImN1cnJlbnRVcGRhdGVSdW50aW1lIiwiaW5zdGFsbGVkQ2h1bmtzIiwiaG1yU19qc29ucCIsIndhaXRpbmdVcGRhdGVSZXNvbHZlcyIsImxvYWRVcGRhdGVDaHVuayIsInVwZGF0ZWRNb2R1bGVzTGlzdCIsImVycm9yVHlwZSIsInJlYWxTcmMiLCJhcHBseUhhbmRsZXIiLCJnZXRBZmZlY3RlZE1vZHVsZUVmZmVjdHMiLCJ1cGRhdGVNb2R1bGVJZCIsIm91dGRhdGVkRGVwZW5kZW5jaWVzIiwicXVldWVJdGVtIiwicGFyZW50SWQiLCJwYXJlbnQiLCJhZGRBbGxUb1NldCIsImpzb25wSG1yIiwiYXBwbGllZFVwZGF0ZSIsIndhcm5VbmV4cGVjdGVkUmVxdWlyZSIsIm5ld01vZHVsZUZhY3RvcnkiLCJhYm9ydEVycm9yIiwiZG9BcHBseSIsImRvRGlzcG9zZSIsImNoYWluSW5mbyIsIm9uRGVjbGluZWQiLCJpZ25vcmVEZWNsaW5lZCIsIm9uVW5hY2NlcHRlZCIsImlnbm9yZVVuYWNjZXB0ZWQiLCJvbkFjY2VwdGVkIiwib25EaXNwb3NlZCIsIm1vZHVsZU91dGRhdGVkRGVwZW5kZW5jaWVzIiwib3V0ZGF0ZWRTZWxmQWNjZXB0ZWRNb2R1bGVzIiwib3V0ZGF0ZWRNb2R1bGVJZCIsImRlcGVuZGVuY3kiLCJkaXNwb3NlSGFuZGxlcnMiLCJhY2NlcHRQcm9taXNlcyIsImVycm9ySGFuZGxlcnMiLCJkZXBlbmRlbmNpZXNGb3JDYWxsYmFja3MiLCJhY2NlcHRDYWxsYmFjayIsImRlcGVuZGVuY3lJZCIsImVycjIiLCJvbkVycm9yZWQiLCJvcmlnaW5hbEVycm9yIiwiaWdub3JlRXJyb3JlZCIsImVycjEiLCJtb3JlTW9kdWxlcyIsInJ1bnRpbWUiLCJqc29ucCIsImFwcGx5SGFuZGxlcnMiLCJjaHVua0lkcyIsInJlbW92ZWRDaHVua3MiLCJyZW1vdmVkTW9kdWxlcyIsImZldGNoIiwib2siLCJzdGF0dXNUZXh0IiwianNvbiJdLCJzb3VyY2VSb290IjoiIn0=