@datagrok/peptides 1.17.17 → 1.17.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/997.js DELETED
@@ -1,2 +0,0 @@
1
- var peptides;(()=>{"use strict";var t,e,n={m:{},u:t=>t+".js"};n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{var t;n.g.importScripts&&(t=n.g.location+"");var e=n.g.document;if(!t&&e&&(e.currentScript&&(t=e.currentScript.src),!t)){var r=e.getElementsByTagName("script");if(r.length)for(var s=r.length-1;s>-1&&!t;)t=r[s--].src}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),n.p=t})(),n.b=self.location+"",(e=t||(t={})).EUCLIDEAN="EUCLIDEAN",e.MANHATTAN="MANHATTAN";const r=t=>null==t;function s(t,e,n,r){if(n>t[t.length-1])return;const s=t.findIndex((t=>n<t));t.pop(),t.splice(s,0,n),e.pop(),e.splice(s,0,r)}class o{constructor(){this._workerCount=Math.max(navigator.hardwareConcurrency-2,1)}async calcMultiColumn(e,r,s,o=[{}],a=[1],l=t.EUCLIDEAN){const i=e[0].length*(e[0].length-1)/2,h=Math.floor(i/this._workerCount),c=e[0].length>2e4?await this.getMinimalThreshold(e,r,o,a,l):0;s<c&&(console.log(`using threshold ${c}`),s=c),o.forEach(((t,e)=>o[e].threshold=s));const u=new Array(this._workerCount),g=new Array(this._workerCount).fill(null).map((()=>new Worker(new URL(n.p+n.u(23),n.b))));for(let t=0;t<this._workerCount;t++)u[t]=new Promise(((n,c)=>{const u=t*h,f=t===this._workerCount-1?i:(t+1)*h;f<=u&&n({i:new Int32Array(0),j:new Int32Array(0),distance:new Float32Array(0),idx:t}),g[t].postMessage({values:e,startIdx:u,endIdx:f,threshold:s,fnNames:r,opts:o,weights:a,aggregationMethod:l}),g[t].onmessage=({data:{error:e,i:r,j:s,distance:o}})=>{e?(g[t].terminate(),c(e)):(g[t].terminate(),n({i:r,j:s,distance:o,idx:t}))}}));const f=await Promise.all(u),m=f.reduce(((t,e)=>t+e.i.length),0),w=new Int32Array(m),d=new Int32Array(m),y=new Float32Array(m);let p=0;for(const t of f)w.set(t.i,p),d.set(t.j,p),y.set(t.distance,p),p+=t.i.length;return{i:w,j:d,distance:y}}async calc(t,e,n,r={}){return await this.calcMultiColumn([t],[e],n,[r],[1])}async getKNN(t,e,n=15,r={}){return await this.multiColumnKNN([t],[e],n,[r],[1])}async getThresholdKNN(t,e,n=.8,r={}){return await this.multiColumnThresholdKnn([t],[e],n,[r],[1])}async multiColumnThresholdKnn(e,r,s=.8,o,a,l=t.EUCLIDEAN){if(e.length!==r.length||e.length!==o.length||e.length!==a.length)throw new Error("values, distance functions, options and weights arrays should have the same length");if(e.some((t=>t.length!==e[0].length)))throw new Error("all values arrays should have the same length");const i=e[0].length*(e[0].length-1)/2,h=Math.floor(i/this._workerCount),c=new Array(this._workerCount),u=new Array(this._workerCount).fill(null).map((()=>new Worker(new URL(n.p+n.u(427),n.b))));for(let t=0;t<this._workerCount;t++)c[t]=new Promise(((n,c)=>{const g=t*h,f=t===this._workerCount-1?i:(t+1)*h;f<=g&&n({knnDistances:new Array(0),knnIndexes:new Array(0)}),u[t].postMessage({values:e,startIdx:g,endIdx:f,fnNames:r,opts:o,threshold:s,weights:a,aggregationMethod:l}),u[t].onmessage=({data:{error:e,knnDistances:r,knnIndexes:s}})=>{e?(u[t].terminate(),c(e)):(u[t].terminate(),n({knnDistances:r,knnIndexes:s}))}}));const g=await Promise.all(c),f=new Int32Array(e[0].length);for(const t of g)for(let n=0;n<e[0].length;++n)f[n]+=t.knnIndexes[n]?.length??0;const m={knnDistances:new Array(e[0].length).fill(null).map(((t,e)=>new Array(f[e]))),knnIndexes:new Array(e[0].length).fill(null).map(((t,e)=>new Array(f[e])))};for(const t of g)for(let n=0;n<e[0].length;++n)for(let e=0;e<t.knnDistances[n]?.length;++e)m.knnDistances[n][f[n]-1]=t.knnDistances[n][e],m.knnIndexes[n][f[n]-1]=t.knnIndexes[n][e],f[n]-=1;return m}async multiColumnKNN(e,r,o=15,a,l,i=t.EUCLIDEAN){if(e.length!==r.length||e.length!==a.length||e.length!==l.length)throw new Error("values, distance functions, options and weights arrays should have the same length");if(e.some((t=>t.length!==e[0].length)))throw new Error("all values arrays should have the same length");const h=e[0].length*(e[0].length-1)/2,c=Math.floor(h/this._workerCount),u=new Array(this._workerCount),g=new Array(this._workerCount).fill(null).map((()=>new Worker(new URL(n.p+n.u(282),n.b))));for(let t=0;t<this._workerCount;t++)u[t]=new Promise(((n,s)=>{const u=t*c,f=t===this._workerCount-1?h:(t+1)*c;f<=u&&n({knnDistances:new Array(0),knnIndexes:new Array(0)}),g[t].postMessage({values:e,startIdx:u,endIdx:f,fnNames:r,opts:a,nNeighbours:o,weights:l,aggregationMethod:i}),g[t].onmessage=({data:{error:e,knnDistances:r,knnIndexes:o}})=>{e?(g[t].terminate(),s(e)):(g[t].terminate(),n({knnDistances:r,knnIndexes:o}))}}));const f=await Promise.all(u),m={knnDistances:new Array(e[0].length).fill(null).map((()=>new Array(o).fill(99999))),knnIndexes:new Array(e[0].length).fill(null).map((()=>new Array(o).fill(-1)))};for(const t of f)for(let n=0;n<e[0].length;++n)for(let e=0;e<t.knnDistances[n]?.length;++e)s(m.knnDistances[n],m.knnIndexes[n],t.knnDistances[n][e],t.knnIndexes[n][e]);return m}async getSampleDistances(e,r,s=[],o,a=t.EUCLIDEAN){const l=new Array(this._workerCount).fill(null).map((()=>new Worker(new URL(n.p+n.u(40),n.b))));try{const t=e[0].length*(e[0].length-1)/2,n=Math.floor(t/this._workerCount),i=1e6,h=Math.max(Math.min(t/1e3,i),Math.min(t,i)),c=Math.floor(h/this._workerCount),u=new Array(this._workerCount);for(let i=0;i<this._workerCount;i++)u[i]=new Promise(((h,u)=>{const g=i*n,f=i===this._workerCount-1?t:(i+1)*n;l[i].postMessage({values:e,startIdx:g,endIdx:f,sampleLength:c,fnNames:r,opts:s,weights:o,aggregationMethod:a}),l[i].onmessage=({data:{error:t,distance:e}})=>{l[i].terminate(),t?u(t):h({distance:e})}}));const g=await Promise.all(u),f=g.reduce(((t,e)=>t+e.distance.length),0),m=new Float32Array(f);let w=0;for(const t of g)m.set(t.distance,w),w+=t.distance.length;return m.sort(),m}catch(t){return l?.forEach((t=>t?.terminate())),console.error(t),new Float32Array(1).fill(.5)}}async getMinimalThreshold(e,n,r=[],s,o=t.EUCLIDEAN){try{const t=e.length*(e.length-1)/2,a=await this.getSampleDistances(e,n,r,s,o);return 1-a[Math.floor(7e7/t*a.length)]}catch(t){return console.error(t),.5}}static calcSync(t,e,n,s){const o=[],a=[],l=[];let i=0,h=0,c=0;const u=t.length*(t.length-1)/2;for(;i<u;){const e=r(t[h])||r(t[c])?1:n(t[h],t[c]);1-e>=s&&(o.push(h),a.push(c),l.push(e)),i++,c++,c===t.length&&(h++,c=h+1)}return{i:new Int32Array(o),j:new Int32Array(a),distance:new Float32Array(l)}}}async function a(t,e,n){const r=t.length,s=[],o=[];for(let a=0;a<r;a++)for(let l=a+1;l<r;l++){const r=t[a],i=t[l];e[r]?.[i]>=n&&(s.push(a),o.push(l))}return function(t,e,n){const r=new Float32Array(n.length).fill(0).map((()=>10*Math.random())),s=new Float32Array(n.length).fill(0).map((()=>10*Math.random())),o=new Float32Array(n.length).fill(0),a=new Float32Array(n.length).fill(0);for(let l=0;l<100;l++){const i=1-l/100;o.fill(0),a.fill(0);for(let n=0;n<t.length;n++){const l=t[n],h=e[n],c=r[l]-r[h],u=s[l]-s[h];Math.abs(c)>=1&&(o[l]-=i*c,o[h]+=i*c),Math.abs(u)>=1&&(a[l]-=i*u,a[h]+=i*u)}for(let t=0;t<n.length;t++){const e=Math.sqrt(o[t]*o[t]+a[t]*a[t]);e>0&&(r[t]+=o[t]/e*i,s[t]+=a[t]/e*i)}}let l=r[0],i=s[0],h=r[0],c=s[0];for(let t=1;t<n.length;t++)l=Math.min(l,r[t]),i=Math.min(i,s[t]),h=Math.max(h,r[t]),c=Math.max(c,s[t]);let u=h-l,g=c-i;0===u&&(u=h);for(let t=0;t<n.length;t++)r[t]=(r[t]-l)/u/2+.5;0===g&&(g=c);for(let t=0;t<n.length;t++)s[t]=(s[t]-i)/g/2+.5;return{embedX:r,embedY:s}}(s,o,t)}const l={expandFactor:2,maxIterations:5,inflateFactor:2,multFactor:1};class i{constructor(t={}){this._options={...l,...t}}async transform(t,e){let n=this.toObjectForm(t);if(this._options.maxIterations>0){this.addLoops(n,e),this.normalize(n);for(let t=0;t<this._options.maxIterations;t++)n=this.expand(n,e),this.inflate(n),this.normalize(n)}const{clusters:r,is:s,js:o}=this.assignClusters(n,e);this.correctClusters(r);const a=await this.layout(r,n,e);return{clusters:r,embedX:a.embedX,embedY:a.embedY,is:s,js:o}}correctClusters(t){const e={};for(const n of t)e[n]||(e[n]=0),e[n]++;const n=Object.keys(e).map(Number).sort(((t,n)=>e[t]-e[n])),r={};n.forEach(((t,e)=>r[t]=e+1));for(let e=0;e<t.length;e++)t[e]=r[t[e]]}async layout(t,e,n){const r=new Float32Array(n).fill(0),s=new Float32Array(n).fill(0),o={};t.forEach(((t,e)=>{o[t]||(o[t]=[]),o[t].push(e)}));let l=0;const i=Object.keys(o);i.sort(((t,e)=>o[e].length-o[t].length));let h=6,c=0;for(const t of i){const n=o[t],i=await a(n,e,.001);l===Math.ceil(h/1.5)&&(l=0,c+=5/h,h=Math.ceil(1.5*h));const u=l%h*5/h*1.5;for(let t=0;t<i.embedX.length;t++)r[n[t]]=5*i.embedX[t]/h+u,s[n[t]]=5*i.embedY[t]/h+c;l++}return{embedX:r,embedY:s}}mergeClusters(t,e,n){const r=t[e],s=t[n];for(let e=0;e<t.length;e++)t[e]===s&&(t[e]=r)}assignClusters(t,e){let n=0;const r=[],s=[],o=Math.floor(Math.max(Math.log10(e),2))+1,a=Math.pow(10,o),l=new Array(e).fill(-1);for(const e of Object.keys(t))for(const o of Object.keys(t[e]))Math.round(t[e][o]*a)/a>0&&t[e][o]!==Number(e)&&Number(o)>Number(e)&&(r.push(Number(e)),s.push(Number(o)),-1!==l[Number(e)]&&-1!==l[Number(o)]?l[Number(e)]!==l[Number(o)]&&this.mergeClusters(l,Number(e),Number(o)):-1!==l[Number(e)]?l[Number(o)]=l[Number(e)]:-1!==l[Number(o)]?l[Number(e)]=l[Number(o)]:(n++,l[Number(e)]=n,l[Number(o)]=n));for(let t=0;t<l.length;t++)-1===l[t]&&(n++,l[t]=n);return{clusters:l,is:new Uint32Array(r),js:new Uint32Array(s)}}toObjectForm(t){const e={};for(let n=0;n<t.i.length;n++)e[t.i[n]]||(e[t.i[n]]={}),e[t.i[n]][t.j[n]]=1-t.distance[n],e[t.j[n]]||(e[t.j[n]]={}),e[t.j[n]][t.i[n]]=1-t.distance[n];return e}addLoops(t,e){for(let n=0;n<e;n++)t[n]||(t[n]={}),t[n][n]=this._options.multFactor}normalize(t){for(const e of Object.keys(t)){const n=t[e];let r=0;for(const t of Object.keys(n))r+=n[t];if(0!==r)for(const s of Object.keys(n))t[e][s]/=r}}expand(t,e){const n={},r=Math.floor(Math.max(Math.log10(e),2))+1,s=Math.pow(10,r);for(let r=0;r<e;r++)if(t[r]){n[r]={};for(let o=r;o<e;o++){if(!t[r]?.[o])continue;const e=this.getExpandValue(t,r,o);Math.round(e*s)/s>0&&(n[r][o]=e,n[o]||(n[o]={}),n[o][r]=e)}}return n}inflate(t){for(const e of Object.keys(t)){const n=t[e];for(const r of Object.keys(n))t[e][r]=Math.pow(t[e][r],this._options.inflateFactor)}}getExpandValue(t,e,n){let r=0;const s=Object.keys(t[e]??{}),o=Object.keys(t[n]??{});for(const a of s)o.includes(a)&&(r+=t[e][a]*t[n][a]);return r}}onmessage=async t=>{const{data:e,threshold:n,weights:r,aggregationMethod:s,distanceFnArgs:a,distanceFns:l,maxIterations:h}=t.data,c=await(new o).calcMultiColumn(e,l,n/100,a,r,s),u=await new i({maxIterations:h??5}).transform(c,e[0].length);postMessage({res:u})},peptides={}})();
2
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,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LEVBQWExRyxHQUFHd0QsR0FBSTVFLEtBQUsySixTQUFTSCxjQUN4RSxDQUNKLENBQ0EsY0FBQTJDLENBQWVyRSxFQUFjMUcsRUFBR3dELEdBQzVCLElBQUlhLEVBQU0sRUFDVixNQUFNMkcsRUFBaUI3TCxPQUFPb0ssS0FBSzdDLEVBQWExRyxJQUFNLENBQUMsR0FDakRpTCxFQUFlOUwsT0FBT29LLEtBQUs3QyxFQUFhbEQsSUFBTSxDQUFDLEdBQ3JELElBQUssTUFBTTZHLEtBQUtXLEVBQ1JDLEVBQWFDLFNBQVNiLEtBQ3RCaEcsR0FBT3FDLEVBQWExRyxHQUFHcUssR0FBSzNELEVBQWFsRCxHQUFHNkcsSUFFcEQsT0FBT2hHLENBQ1gsRUM1TUpULFVBQVkyQyxNQUFPNEUsSUFDZixNQUFNLEtBQUV0SCxFQUFJLFVBQUVqQyxFQUFTLFFBQUVFLEVBQU8sa0JBQUVDLEVBQWlCLGVBQUVxSixFQUFjLFlBQUVDLEVBQVcsY0FBRWxELEdBQWtCZ0QsRUFBTXRILEtBQ3BHeUgsUUFBZSxJQUFJcEssR0FDcEJPLGdCQUFnQm9DLEVBQU13SCxFQUFhekosRUFBWSxJQUFLd0osRUFBZ0J0SixFQUFTQyxHQUM1RXdDLFFBQVksSUFBSStELEVBQWlCLENBQUVILGNBQWVBLEdBQWlCLElBQUtLLFVBQVU4QyxFQUFRekgsRUFBSyxHQUFHOUQsUUFDeEc0RCxZQUFZLENBQUVZLE9BQU0sRSIsInNvdXJjZXMiOlsid2VicGFjazovL3BlcHRpZGVzLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvbWwvc3JjL2Rpc3RhbmNlLW1hdHJpeC90eXBlcy5qcyIsIndlYnBhY2s6Ly9wZXB0aWRlcy93ZWJwYWNrL2Jvb3RzdHJhcCIsIndlYnBhY2s6Ly9wZXB0aWRlcy93ZWJwYWNrL3J1bnRpbWUvZ2V0IGphdmFzY3JpcHQgY2h1bmsgZmlsZW5hbWUiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvd2VicGFjay9ydW50aW1lL2dsb2JhbCIsIndlYnBhY2s6Ly9wZXB0aWRlcy93ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjazovL3BlcHRpZGVzL3dlYnBhY2svcnVudGltZS9wdWJsaWNQYXRoIiwid2VicGFjazovL3BlcHRpZGVzL3dlYnBhY2svcnVudGltZS9pbXBvcnRTY3JpcHRzIGNodW5rIGxvYWRpbmciLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9tbC9zcmMvZGlzdGFuY2UtbWF0cml4L3V0aWxzLmpzIiwid2VicGFjazovL3BlcHRpZGVzLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvbWwvc3JjL2Rpc3RhbmNlLW1hdHJpeC9zcGFyc2UtbWF0cml4LXNlcnZpY2UuanMiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9tbC9zcmMvTUNML2Jpby1sYXlvdXQuanMiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9tbC9zcmMvTUNML21hcmNvdi1jbHVzdGVyLmpzIiwid2VicGFjazovL3BlcHRpZGVzLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvbWwvc3JjL01DTC9tY2wtd29ya2VyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB2YXIgRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZHM7XG4oZnVuY3Rpb24gKERpc3RhbmNlQWdncmVnYXRpb25NZXRob2RzKSB7XG4gICAgRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZHNbXCJFVUNMSURFQU5cIl0gPSBcIkVVQ0xJREVBTlwiO1xuICAgIERpc3RhbmNlQWdncmVnYXRpb25NZXRob2RzW1wiTUFOSEFUVEFOXCJdID0gXCJNQU5IQVRUQU5cIjtcbn0pKERpc3RhbmNlQWdncmVnYXRpb25NZXRob2RzIHx8IChEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kcyA9IHt9KSk7XG47XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lkSGx3WlhNdWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUowZVhCbGN5NTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZCUVN4TlFVRk5MRU5CUVU0c1NVRkJXU3d3UWtGSFZEdEJRVWhJTEZkQlFWa3NNRUpCUVRCQ08wbEJRMnhETEhGRVFVRjFRaXhEUVVGQk8wbEJRM1pDTEhGRVFVRjFRaXhEUVVGQk8wRkJRM3BDTEVOQlFVTXNSVUZJVXl3d1FrRkJNRUlzUzBGQk1VSXNNRUpCUVRCQ0xGRkJSMjVETzBGQlFVRXNRMEZCUXlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltVjRjRzl5ZENCbGJuVnRJRVJwYzNSaGJtTmxRV2RuY21WbllYUnBiMjVOWlhSb2IyUnpJSHRjYmlBZ0lDQkZWVU5NU1VSRlFVNGdQU0FuUlZWRFRFbEVSVUZPSnl4Y2JpQWdJQ0JOUVU1SVFWUlVRVTRnUFNBblRVRk9TRUZVVkVGT0p5eGNiaUFnZlR0Y2JseHVaWGh3YjNKMElIUjVjR1VnUkdsemRHRnVZMlZCWjJkeVpXZGhkR2x2YmsxbGRHaHZaQ0E5SUd0bGVXOW1JSFI1Y0dWdlppQkVhWE4wWVc1alpVRm5aM0psWjJGMGFXOXVUV1YwYUc5a2N6dGNiaUpkZlE9PSIsIi8vIFRoZSByZXF1aXJlIHNjb3BlXG52YXIgX193ZWJwYWNrX3JlcXVpcmVfXyA9IHt9O1xuXG4vLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuX193ZWJwYWNrX3JlcXVpcmVfXy5tID0gX193ZWJwYWNrX21vZHVsZXNfXztcblxuIiwiLy8gVGhpcyBmdW5jdGlvbiBhbGxvdyB0byByZWZlcmVuY2UgYXN5bmMgY2h1bmtzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLnUgPSAoY2h1bmtJZCkgPT4ge1xuXHQvLyByZXR1cm4gdXJsIGZvciBmaWxlbmFtZXMgYmFzZWQgb24gdGVtcGxhdGVcblx0cmV0dXJuIFwiXCIgKyBjaHVua0lkICsgXCIuanNcIjtcbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5nID0gKGZ1bmN0aW9uKCkge1xuXHRpZiAodHlwZW9mIGdsb2JhbFRoaXMgPT09ICdvYmplY3QnKSByZXR1cm4gZ2xvYmFsVGhpcztcblx0dHJ5IHtcblx0XHRyZXR1cm4gdGhpcyB8fCBuZXcgRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTtcblx0fSBjYXRjaCAoZSkge1xuXHRcdGlmICh0eXBlb2Ygd2luZG93ID09PSAnb2JqZWN0JykgcmV0dXJuIHdpbmRvdztcblx0fVxufSkoKTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIiwidmFyIHNjcmlwdFVybDtcbmlmIChfX3dlYnBhY2tfcmVxdWlyZV9fLmcuaW1wb3J0U2NyaXB0cykgc2NyaXB0VXJsID0gX193ZWJwYWNrX3JlcXVpcmVfXy5nLmxvY2F0aW9uICsgXCJcIjtcbnZhciBkb2N1bWVudCA9IF9fd2VicGFja19yZXF1aXJlX18uZy5kb2N1bWVudDtcbmlmICghc2NyaXB0VXJsICYmIGRvY3VtZW50KSB7XG5cdGlmIChkb2N1bWVudC5jdXJyZW50U2NyaXB0KVxuXHRcdHNjcmlwdFVybCA9IGRvY3VtZW50LmN1cnJlbnRTY3JpcHQuc3JjO1xuXHRpZiAoIXNjcmlwdFVybCkge1xuXHRcdHZhciBzY3JpcHRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJzY3JpcHRcIik7XG5cdFx0aWYoc2NyaXB0cy5sZW5ndGgpIHtcblx0XHRcdHZhciBpID0gc2NyaXB0cy5sZW5ndGggLSAxO1xuXHRcdFx0d2hpbGUgKGkgPiAtMSAmJiAhc2NyaXB0VXJsKSBzY3JpcHRVcmwgPSBzY3JpcHRzW2ktLV0uc3JjO1xuXHRcdH1cblx0fVxufVxuLy8gV2hlbiBzdXBwb3J0aW5nIGJyb3dzZXJzIHdoZXJlIGFuIGF1dG9tYXRpYyBwdWJsaWNQYXRoIGlzIG5vdCBzdXBwb3J0ZWQgeW91IG11c3Qgc3BlY2lmeSBhbiBvdXRwdXQucHVibGljUGF0aCBtYW51YWxseSB2aWEgY29uZmlndXJhdGlvblxuLy8gb3IgcGFzcyBhbiBlbXB0eSBzdHJpbmcgKFwiXCIpIGFuZCBzZXQgdGhlIF9fd2VicGFja19wdWJsaWNfcGF0aF9fIHZhcmlhYmxlIGZyb20geW91ciBjb2RlIHRvIHVzZSB5b3VyIG93biBsb2dpYy5cbmlmICghc2NyaXB0VXJsKSB0aHJvdyBuZXcgRXJyb3IoXCJBdXRvbWF0aWMgcHVibGljUGF0aCBpcyBub3Qgc3VwcG9ydGVkIGluIHRoaXMgYnJvd3NlclwiKTtcbnNjcmlwdFVybCA9IHNjcmlwdFVybC5yZXBsYWNlKC8jLiokLywgXCJcIikucmVwbGFjZSgvXFw/LiokLywgXCJcIikucmVwbGFjZSgvXFwvW15cXC9dKyQvLCBcIi9cIik7XG5fX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBzY3JpcHRVcmw7IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5iID0gc2VsZi5sb2NhdGlvbiArIFwiXCI7XG5cbi8vIG9iamVjdCB0byBzdG9yZSBsb2FkZWQgY2h1bmtzXG4vLyBcIjFcIiBtZWFucyBcImFscmVhZHkgbG9hZGVkXCJcbnZhciBpbnN0YWxsZWRDaHVua3MgPSB7XG5cdDk5NzogMVxufTtcblxuLy8gbm8gY2h1bmsgaW5zdGFsbCBmdW5jdGlvbiBuZWVkZWRcbi8vIG5vIGNodW5rIGxvYWRpbmdcblxuLy8gbm8gSE1SXG5cbi8vIG5vIEhNUiBtYW5pZmVzdCIsImltcG9ydCB7IERpc3RhbmNlQWdncmVnYXRpb25NZXRob2RzIH0gZnJvbSAnLi90eXBlcyc7XG5leHBvcnQgY29uc3QgaXNOaWwgPSAoeCkgPT4geCA9PT0gbnVsbCB8fCB4ID09PSB1bmRlZmluZWQ7XG5leHBvcnQgZnVuY3Rpb24gaW5zZXJ0U21hbGxlcihkaXN0YW5jZXNBciwgaW5kZXhlcywgbnVtLCBpbmRleCkge1xuICAgIGlmIChudW0gPiBkaXN0YW5jZXNBcltkaXN0YW5jZXNBci5sZW5ndGggLSAxXSlcbiAgICAgICAgcmV0dXJuO1xuICAgIGNvbnN0IG5ld1Bvc2l0aW9uID0gZGlzdGFuY2VzQXIuZmluZEluZGV4KCh2KSA9PiBudW0gPCB2KTtcbiAgICBkaXN0YW5jZXNBci5wb3AoKTtcbiAgICBkaXN0YW5jZXNBci5zcGxpY2UobmV3UG9zaXRpb24sIDAsIG51bSk7XG4gICAgaW5kZXhlcy5wb3AoKTtcbiAgICBpbmRleGVzLnNwbGljZShuZXdQb3NpdGlvbiwgMCwgaW5kZXgpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGluc2VydExhcmdlcihkaXN0YW5jZXNBciwgaW5kZXhlcywgbnVtLCBpbmRleCkge1xuICAgIGlmIChudW0gPCBkaXN0YW5jZXNBcltkaXN0YW5jZXNBci5sZW5ndGggLSAxXSlcbiAgICAgICAgcmV0dXJuO1xuICAgIGNvbnN0IG5ld1Bvc2l0aW9uID0gZGlzdGFuY2VzQXIuZmluZEluZGV4KCh2KSA9PiBudW0gPiB2KTtcbiAgICBkaXN0YW5jZXNBci5wb3AoKTtcbiAgICBkaXN0YW5jZXNBci5zcGxpY2UobmV3UG9zaXRpb24sIDAsIG51bSk7XG4gICAgaW5kZXhlcy5wb3AoKTtcbiAgICBpbmRleGVzLnNwbGljZShuZXdQb3NpdGlvbiwgMCwgaW5kZXgpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldEFnZ3JlZ2F0aW9uRnVuY3Rpb24oYWdncmVnYXRpb25NZXRob2QsIHdlaWdodHMpIHtcbiAgICBzd2l0Y2ggKGFnZ3JlZ2F0aW9uTWV0aG9kKSB7XG4gICAgICAgIGNhc2UgRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZHMuTUFOSEFUVEFOOlxuICAgICAgICAgICAgcmV0dXJuICh2cykgPT4gdnMucmVkdWNlKChhY2MsIHZhbCwgaWR4KSA9PiBhY2MgKyB2YWwgKiB3ZWlnaHRzW2lkeF0sIDApO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuICh2cykgPT4ge1xuICAgICAgICAgICAgICAgIC8vIGV1Y2xpZGVhblxuICAgICAgICAgICAgICAgIGNvbnN0IHN1bSA9IHZzLnJlZHVjZSgoYWNjLCB2YWwsIGlkeCkgPT4gYWNjICsgKHZhbCAqIHdlaWdodHNbaWR4XSkgKiogMiwgMCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIE1hdGguc3FydChzdW0pO1xuICAgICAgICAgICAgfTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lkWFJwYkhNdWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUoxZEdsc2N5NTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZCUVN4UFFVRlBMRVZCUVRSQ0xEQkNRVUV3UWl4RlFVRkRMRTFCUVUwc1UwRkJVeXhEUVVGRE8wRkJSVGxGTEUxQlFVMHNRMEZCUXl4TlFVRk5MRXRCUVVzc1IwRkJSeXhEUVVGRExFTkJRVTBzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXl4TFFVRkxMRWxCUVVrc1NVRkJTU3hEUVVGRExFdEJRVXNzVTBGQlV5eERRVUZETzBGQlJTOUVMRTFCUVUwc1ZVRkJWU3hoUVVGaExFTkJRVU1zVjBGQmNVSXNSVUZCUlN4UFFVRnBRaXhGUVVGRkxFZEJRVmNzUlVGQlJTeExRVUZoTzBsQlEyaEhMRWxCUVVrc1IwRkJSeXhIUVVGSExGZEJRVmNzUTBGQlF5eFhRVUZYTEVOQlFVTXNUVUZCVFN4SFFVRkRMRU5CUVVNc1EwRkJRenRSUVVONlF5eFBRVUZQTzBsQlJWUXNUVUZCVFN4WFFVRlhMRWRCUVVjc1YwRkJWeXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1IwRkJSeXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlF6RkVMRmRCUVZjc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF6dEpRVU5zUWl4WFFVRlhMRU5CUVVNc1RVRkJUU3hEUVVGRExGZEJRVmNzUlVGQlJTeERRVUZETEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1NVRkRlRU1zVDBGQlR5eERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRPMGxCUTJRc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXl4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8wRkJRM2hETEVOQlFVTTdRVUZGUkN4TlFVRk5MRlZCUVZVc1dVRkJXU3hEUVVGRExGZEJRWEZDTEVWQlFVVXNUMEZCYVVJc1JVRkJSU3hIUVVGWExFVkJRVVVzUzBGQllUdEpRVU12Uml4SlFVRkpMRWRCUVVjc1IwRkJSeXhYUVVGWExFTkJRVU1zVjBGQlZ5eERRVUZETEUxQlFVMHNSMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRla01zVDBGQlR6dEpRVVZVTEUxQlFVMHNWMEZCVnl4SFFVRkhMRmRCUVZjc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRWRCUVVjc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU14UkN4WFFVRlhMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU03U1VGRGJFSXNWMEZCVnl4RFFVRkRMRTFCUVUwc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRPMGxCUTNoRExFOUJRVThzUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXp0SlFVTmtMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zVjBGQlZ5eEZRVUZGTEVOQlFVTXNSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenRCUVVONFF5eERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMSE5DUVVGelFpeERRVU53UXl4cFFrRkJORU1zUlVGQlJTeFBRVUZwUWp0SlFVVXZSQ3hSUVVGUkxHbENRVUZwUWl4RlFVRkZPMUZCUTNwQ0xFdEJRVXNzTUVKQlFUQkNMRU5CUVVNc1UwRkJVenRaUVVOMlF5eFBRVUZQTEVOQlFVTXNSVUZCV1N4RlFVRkZMRVZCUVVVc1EwRkJReXhGUVVGRkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUlVGQlJTeERRVUZETEVkQlFVY3NSMEZCUnl4SFFVRkhMRWRCUVVjc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTNKR08xbEJRMFVzVDBGQlR5eERRVUZETEVWQlFWa3NSVUZCUlN4RlFVRkZPMmRDUVVOMFFpeFpRVUZaTzJkQ1FVTmFMRTFCUVUwc1IwRkJSeXhIUVVGSExFVkJRVVVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEZRVUZGTEVOQlFVTXNSMEZCUnl4SFFVRkhMRU5CUVVNc1IwRkJSeXhIUVVGSExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dG5Ra0ZETjBVc1QwRkJUeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUTNoQ0xFTkJRVU1zUTBGQlF6dExRVU5NTzBGQlEwZ3NRMEZCUXlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENCN1JHbHpkR0Z1WTJWQloyZHlaV2RoZEdsdmJrMWxkR2h2WkN3Z1JHbHpkR0Z1WTJWQloyZHlaV2RoZEdsdmJrMWxkR2h2WkhOOUlHWnliMjBnSnk0dmRIbHdaWE1uTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnYVhOT2FXd2dQU0FvZURvZ1lXNTVLU0E5UGlCNElEMDlQU0J1ZFd4c0lIeDhJSGdnUFQwOUlIVnVaR1ZtYVc1bFpEdGNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR2x1YzJWeWRGTnRZV3hzWlhJb1pHbHpkR0Z1WTJWelFYSTZJRzUxYldKbGNsdGRMQ0JwYm1SbGVHVnpPaUJ1ZFcxaVpYSmJYU3dnYm5WdE9pQnVkVzFpWlhJc0lHbHVaR1Y0T2lCdWRXMWlaWElwSUh0Y2JpQWdhV1lnS0c1MWJTQStJR1JwYzNSaGJtTmxjMEZ5VzJScGMzUmhibU5sYzBGeUxteGxibWQwYUMweFhTbGNiaUFnSUNCeVpYUjFjbTQ3WEc1Y2JpQWdZMjl1YzNRZ2JtVjNVRzl6YVhScGIyNGdQU0JrYVhOMFlXNWpaWE5CY2k1bWFXNWtTVzVrWlhnb0tIWXBJRDArSUc1MWJTQThJSFlwTzF4dUlDQmthWE4wWVc1alpYTkJjaTV3YjNBb0tUdGNiaUFnWkdsemRHRnVZMlZ6UVhJdWMzQnNhV05sS0c1bGQxQnZjMmwwYVc5dUxDQXdMQ0J1ZFcwcE8xeHVJQ0JwYm1SbGVHVnpMbkJ2Y0NncE8xeHVJQ0JwYm1SbGVHVnpMbk53YkdsalpTaHVaWGRRYjNOcGRHbHZiaXdnTUN3Z2FXNWtaWGdwTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdhVzV6WlhKMFRHRnlaMlZ5S0dScGMzUmhibU5sYzBGeU9pQnVkVzFpWlhKYlhTd2dhVzVrWlhobGN6b2diblZ0WW1WeVcxMHNJRzUxYlRvZ2JuVnRZbVZ5TENCcGJtUmxlRG9nYm5WdFltVnlLU0I3WEc0Z0lHbG1JQ2h1ZFcwZ1BDQmthWE4wWVc1alpYTkJjbHRrYVhOMFlXNWpaWE5CY2k1c1pXNW5kR2d0TVYwcFhHNGdJQ0FnY21WMGRYSnVPMXh1WEc0Z0lHTnZibk4wSUc1bGQxQnZjMmwwYVc5dUlEMGdaR2x6ZEdGdVkyVnpRWEl1Wm1sdVpFbHVaR1Y0S0NoMktTQTlQaUJ1ZFcwZ1BpQjJLVHRjYmlBZ1pHbHpkR0Z1WTJWelFYSXVjRzl3S0NrN1hHNGdJR1JwYzNSaGJtTmxjMEZ5TG5Od2JHbGpaU2h1WlhkUWIzTnBkR2x2Yml3Z01Dd2diblZ0S1R0Y2JpQWdhVzVrWlhobGN5NXdiM0FvS1R0Y2JpQWdhVzVrWlhobGN5NXpjR3hwWTJVb2JtVjNVRzl6YVhScGIyNHNJREFzSUdsdVpHVjRLVHRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHZGxkRUZuWjNKbFoyRjBhVzl1Um5WdVkzUnBiMjRvWEc0Z0lHRm5aM0psWjJGMGFXOXVUV1YwYUc5a09pQkVhWE4wWVc1alpVRm5aM0psWjJGMGFXOXVUV1YwYUc5a0xDQjNaV2xuYUhSek9pQnVkVzFpWlhKYlhWeHVLVG9nS0haaGJIVmxjem9nYm5WdFltVnlXMTBwSUQwK0lHNTFiV0psY2lCN1hHNGdJSE4zYVhSamFDQW9ZV2RuY21WbllYUnBiMjVOWlhSb2IyUXBJSHRjYmlBZ0lDQmpZWE5sSUVScGMzUmhibU5sUVdkbmNtVm5ZWFJwYjI1TlpYUm9iMlJ6TGsxQlRraEJWRlJCVGpwY2JpQWdJQ0FnSUhKbGRIVnliaUFvZG5NNklHNTFiV0psY2x0ZEtTQTlQaUIyY3k1eVpXUjFZMlVvS0dGall5d2dkbUZzTENCcFpIZ3BJRDArSUdGall5QXJJSFpoYkNBcUlIZGxhV2RvZEhOYmFXUjRYU3dnTUNrN1hHNGdJQ0FnWkdWbVlYVnNkRHBjYmlBZ0lDQWdJSEpsZEhWeWJpQW9kbk02SUc1MWJXSmxjbHRkS1NBOVBpQjdYRzRnSUNBZ0lDQWdJQzh2SUdWMVkyeHBaR1ZoYmx4dUlDQWdJQ0FnSUNCamIyNXpkQ0J6ZFcwZ1BTQjJjeTV5WldSMVkyVW9LR0ZqWXl3Z2RtRnNMQ0JwWkhncElEMCtJR0ZqWXlBcklDaDJZV3dnS2lCM1pXbG5hSFJ6VzJsa2VGMHBJQ29xSURJc0lEQXBPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdUV0YwYUM1emNYSjBLSE4xYlNrN1hHNGdJQ0FnSUNCOU8xeHVJQ0I5WEc1OVhHNGlYWDA9IiwiaW1wb3J0IHsgRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZHMgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGluc2VydFNtYWxsZXIsIGlzTmlsIH0gZnJvbSAnLi91dGlscyc7XG5leHBvcnQgY2xhc3MgU3BhcnNlTWF0cml4U2VydmljZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuX3dvcmtlckNvdW50ID0gTWF0aC5tYXgobmF2aWdhdG9yLmhhcmR3YXJlQ29uY3VycmVuY3kgLSAyLCAxKTtcbiAgICB9XG4gICAgYXN5bmMgY2FsY011bHRpQ29sdW1uKHZhbHVlcywgZm5OYW1lcywgdGhyZXNob2xkLCBvcHRzID0gW3t9XSwgd2VpZ2h0cyA9IFsxXSwgYWdncmVnYXRpb25NZXRob2QgPSBEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kcy5FVUNMSURFQU4pIHtcbiAgICAgICAgY29uc3QgbWF0U2l6ZSA9IHZhbHVlc1swXS5sZW5ndGggKiAodmFsdWVzWzBdLmxlbmd0aCAtIDEpIC8gMjtcbiAgICAgICAgY29uc3QgY2h1bmtTaXplID0gTWF0aC5mbG9vcihtYXRTaXplIC8gdGhpcy5fd29ya2VyQ291bnQpO1xuICAgICAgICBjb25zdCBtaW5UaHJlc2hvbGQgPSB2YWx1ZXNbMF0ubGVuZ3RoID4gMjAwMDAgP1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5nZXRNaW5pbWFsVGhyZXNob2xkKHZhbHVlcywgZm5OYW1lcywgb3B0cywgd2VpZ2h0cywgYWdncmVnYXRpb25NZXRob2QpIDogMDtcbiAgICAgICAgaWYgKHRocmVzaG9sZCA8IG1pblRocmVzaG9sZCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYHVzaW5nIHRocmVzaG9sZCAke21pblRocmVzaG9sZH1gKTtcbiAgICAgICAgICAgIHRocmVzaG9sZCA9IG1pblRocmVzaG9sZDtcbiAgICAgICAgfVxuICAgICAgICBvcHRzLmZvckVhY2goKF8sIGkpID0+IG9wdHNbaV1bJ3RocmVzaG9sZCddID0gdGhyZXNob2xkKTtcbiAgICAgICAgY29uc3QgcHJvbWlzZXMgPSBuZXcgQXJyYXkodGhpcy5fd29ya2VyQ291bnQpO1xuICAgICAgICBjb25zdCB3b3JrZXJzID0gbmV3IEFycmF5KHRoaXMuX3dvcmtlckNvdW50KVxuICAgICAgICAgICAgLmZpbGwobnVsbCkubWFwKCgpID0+IG5ldyBXb3JrZXIobmV3IFVSTCgnLi9zcGFyc2UtbWF0cml4LXdvcmtlcicsIGltcG9ydC5tZXRhLnVybCkpKTtcbiAgICAgICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgdGhpcy5fd29ya2VyQ291bnQ7IGlkeCsrKSB7XG4gICAgICAgICAgICBwcm9taXNlc1tpZHhdID0gbmV3IFByb21pc2UoKHJlc29sdmVXb3JrZXIsIHJlamVjdFdvcmtlcikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0SWR4ID0gaWR4ICogY2h1bmtTaXplO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuZElkeCA9IGlkeCA9PT0gdGhpcy5fd29ya2VyQ291bnQgLSAxID8gbWF0U2l6ZSA6IChpZHggKyAxKSAqIGNodW5rU2l6ZTtcbiAgICAgICAgICAgICAgICBpZiAoZW5kSWR4IDw9IHN0YXJ0SWR4KVxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlV29ya2VyKHsgaTogbmV3IEludDMyQXJyYXkoMCksIGo6IG5ldyBJbnQzMkFycmF5KDApLCBkaXN0YW5jZTogbmV3IEZsb2F0MzJBcnJheSgwKSwgaWR4IH0pO1xuICAgICAgICAgICAgICAgIHdvcmtlcnNbaWR4XS5wb3N0TWVzc2FnZSh7IHZhbHVlcywgc3RhcnRJZHgsIGVuZElkeCwgdGhyZXNob2xkLCBmbk5hbWVzLCBvcHRzLCB3ZWlnaHRzLCBhZ2dyZWdhdGlvbk1ldGhvZCB9KTtcbiAgICAgICAgICAgICAgICB3b3JrZXJzW2lkeF0ub25tZXNzYWdlID0gKHsgZGF0YTogeyBlcnJvciwgaSwgaiwgZGlzdGFuY2UgfSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgd29ya2Vyc1tpZHhdLnRlcm1pbmF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0V29ya2VyKGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtlcnNbaWR4XS50ZXJtaW5hdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmVXb3JrZXIoeyBpLCBqLCBkaXN0YW5jZSwgaWR4IH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7XG4gICAgICAgIGNvbnN0IGZ1bGxTaXplID0gcmVzdWx0cy5yZWR1Y2UoKGFjYywgdmFsKSA9PiBhY2MgKyB2YWwuaS5sZW5ndGgsIDApO1xuICAgICAgICBjb25zdCBpID0gbmV3IEludDMyQXJyYXkoZnVsbFNpemUpO1xuICAgICAgICBjb25zdCBqID0gbmV3IEludDMyQXJyYXkoZnVsbFNpemUpO1xuICAgICAgICBjb25zdCBkaXN0YW5jZSA9IG5ldyBGbG9hdDMyQXJyYXkoZnVsbFNpemUpO1xuICAgICAgICBsZXQgb2Zmc2V0ID0gMDtcbiAgICAgICAgLy8gc2V0dGluZyB0aGUgcmVzdWx0c1xuICAgICAgICBmb3IgKGNvbnN0IHJlcyBvZiByZXN1bHRzKSB7XG4gICAgICAgICAgICBpLnNldChyZXMuaSwgb2Zmc2V0KTtcbiAgICAgICAgICAgIGouc2V0KHJlcy5qLCBvZmZzZXQpO1xuICAgICAgICAgICAgZGlzdGFuY2Uuc2V0KHJlcy5kaXN0YW5jZSwgb2Zmc2V0KTtcbiAgICAgICAgICAgIG9mZnNldCArPSByZXMuaS5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgaSwgaiwgZGlzdGFuY2UgfTtcbiAgICB9XG4gICAgYXN5bmMgY2FsYyh2YWx1ZXMsIGZuTmFtZSwgdGhyZXNob2xkLCBvcHRzID0ge30pIHtcbiAgICAgICAgLy9zaXplIG9mIGZ1bGwgbWF0cml4XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmNhbGNNdWx0aUNvbHVtbihbdmFsdWVzXSwgW2ZuTmFtZV0sIHRocmVzaG9sZCwgW29wdHNdLCBbMV0pO1xuICAgIH1cbiAgICBhc3luYyBnZXRLTk4odmFsdWVzLCBmbk5hbWUsIG5OZWlnaGJvdXJzID0gMTUsIG9wdHMgPSB7fSkge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5tdWx0aUNvbHVtbktOTihbdmFsdWVzXSwgW2ZuTmFtZV0sIG5OZWlnaGJvdXJzLCBbb3B0c10sIFsxXSk7XG4gICAgfVxuICAgIGFzeW5jIGdldFRocmVzaG9sZEtOTih2YWx1ZXMsIGZuTmFtZSwgdGhyZXNob2xkID0gMC44LCBvcHRzID0ge30pIHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMubXVsdGlDb2x1bW5UaHJlc2hvbGRLbm4oW3ZhbHVlc10sIFtmbk5hbWVdLCB0aHJlc2hvbGQsIFtvcHRzXSwgWzFdKTtcbiAgICB9XG4gICAgYXN5bmMgbXVsdGlDb2x1bW5UaHJlc2hvbGRLbm4odmFsdWVzLCBmbk5hbWVzLCB0aHJlc2hvbGQgPSAwLjgsIG9wdHMsIHdlaWdodHMsIGFnZ3JlZ2F0aW9uTWV0aG9kID0gRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZHMuRVVDTElERUFOKSB7XG4gICAgICAgIGlmICh2YWx1ZXMubGVuZ3RoICE9PSBmbk5hbWVzLmxlbmd0aCB8fCB2YWx1ZXMubGVuZ3RoICE9PSBvcHRzLmxlbmd0aCB8fCB2YWx1ZXMubGVuZ3RoICE9PSB3ZWlnaHRzLmxlbmd0aClcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigndmFsdWVzLCBkaXN0YW5jZSBmdW5jdGlvbnMsIG9wdGlvbnMgYW5kIHdlaWdodHMgYXJyYXlzIHNob3VsZCBoYXZlIHRoZSBzYW1lIGxlbmd0aCcpO1xuICAgICAgICBpZiAodmFsdWVzLnNvbWUoKHYpID0+IHYubGVuZ3RoICE9PSB2YWx1ZXNbMF0ubGVuZ3RoKSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignYWxsIHZhbHVlcyBhcnJheXMgc2hvdWxkIGhhdmUgdGhlIHNhbWUgbGVuZ3RoJyk7XG4gICAgICAgIGNvbnN0IG1hdFNpemUgPSB2YWx1ZXNbMF0ubGVuZ3RoICogKHZhbHVlc1swXS5sZW5ndGggLSAxKSAvIDI7XG4gICAgICAgIGNvbnN0IGNodW5rU2l6ZSA9IE1hdGguZmxvb3IobWF0U2l6ZSAvIHRoaXMuX3dvcmtlckNvdW50KTtcbiAgICAgICAgY29uc3QgcHJvbWlzZXMgPSBuZXcgQXJyYXkodGhpcy5fd29ya2VyQ291bnQpO1xuICAgICAgICBjb25zdCB3b3JrZXJzID0gbmV3IEFycmF5KHRoaXMuX3dvcmtlckNvdW50KVxuICAgICAgICAgICAgLmZpbGwobnVsbCkubWFwKCgpID0+IG5ldyBXb3JrZXIobmV3IFVSTCgnLi9rbm4tdGhyZXNob2xkLXdvcmtlcicsIGltcG9ydC5tZXRhLnVybCkpKTtcbiAgICAgICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgdGhpcy5fd29ya2VyQ291bnQ7IGlkeCsrKSB7XG4gICAgICAgICAgICBwcm9taXNlc1tpZHhdID0gbmV3IFByb21pc2UoKHJlc29sdmVXb3JrZXIsIHJlamVjdFdvcmtlcikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0SWR4ID0gaWR4ICogY2h1bmtTaXplO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuZElkeCA9IGlkeCA9PT0gdGhpcy5fd29ya2VyQ291bnQgLSAxID8gbWF0U2l6ZSA6IChpZHggKyAxKSAqIGNodW5rU2l6ZTtcbiAgICAgICAgICAgICAgICBpZiAoZW5kSWR4IDw9IHN0YXJ0SWR4KVxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlV29ya2VyKHsga25uRGlzdGFuY2VzOiBuZXcgQXJyYXkoMCksIGtubkluZGV4ZXM6IG5ldyBBcnJheSgwKSB9KTtcbiAgICAgICAgICAgICAgICB3b3JrZXJzW2lkeF0ucG9zdE1lc3NhZ2UoeyB2YWx1ZXMsIHN0YXJ0SWR4LCBlbmRJZHgsIGZuTmFtZXMsIG9wdHMsIHRocmVzaG9sZCwgd2VpZ2h0cywgYWdncmVnYXRpb25NZXRob2QgfSk7XG4gICAgICAgICAgICAgICAgd29ya2Vyc1tpZHhdLm9ubWVzc2FnZSA9ICh7IGRhdGE6IHsgZXJyb3IsIGtubkRpc3RhbmNlcywga25uSW5kZXhlcyB9IH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3b3JrZXJzW2lkeF0udGVybWluYXRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3RXb3JrZXIoZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgd29ya2Vyc1tpZHhdLnRlcm1pbmF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZVdvcmtlcih7IGtubkRpc3RhbmNlcywga25uSW5kZXhlcyB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xuICAgICAgICBjb25zdCBrbm5TaXplcyA9IG5ldyBJbnQzMkFycmF5KHZhbHVlc1swXS5sZW5ndGgpO1xuICAgICAgICBmb3IgKGNvbnN0IHJlcyBvZiByZXN1bHRzKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlc1swXS5sZW5ndGg7ICsraSlcbiAgICAgICAgICAgICAgICBrbm5TaXplc1tpXSArPSByZXMua25uSW5kZXhlc1tpXT8ubGVuZ3RoID8/IDA7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qga25uUmVzID0ge1xuICAgICAgICAgICAga25uRGlzdGFuY2VzOiBuZXcgQXJyYXkodmFsdWVzWzBdLmxlbmd0aCkuZmlsbChudWxsKS5tYXAoKF8sIGkpID0+IG5ldyBBcnJheShrbm5TaXplc1tpXSkpLFxuICAgICAgICAgICAga25uSW5kZXhlczogbmV3IEFycmF5KHZhbHVlc1swXS5sZW5ndGgpLmZpbGwobnVsbCkubWFwKChfLCBpKSA9PiBuZXcgQXJyYXkoa25uU2l6ZXNbaV0pKVxuICAgICAgICB9O1xuICAgICAgICBmb3IgKGNvbnN0IHJlcyBvZiByZXN1bHRzKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlc1swXS5sZW5ndGg7ICsraSkge1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcmVzLmtubkRpc3RhbmNlc1tpXT8ubGVuZ3RoID8/IDA7ICsraikge1xuICAgICAgICAgICAgICAgICAgICBrbm5SZXMua25uRGlzdGFuY2VzW2ldW2tublNpemVzW2ldIC0gMV0gPSByZXMua25uRGlzdGFuY2VzW2ldW2pdO1xuICAgICAgICAgICAgICAgICAgICBrbm5SZXMua25uSW5kZXhlc1tpXVtrbm5TaXplc1tpXSAtIDFdID0gcmVzLmtubkluZGV4ZXNbaV1bal07XG4gICAgICAgICAgICAgICAgICAgIGtublNpemVzW2ldIC09IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBrbm5SZXM7XG4gICAgfVxuICAgIGFzeW5jIG11bHRpQ29sdW1uS05OKHZhbHVlcywgZm5OYW1lcywgbk5laWdoYm91cnMgPSAxNSwgb3B0cywgd2VpZ2h0cywgYWdncmVnYXRpb25NZXRob2QgPSBEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kcy5FVUNMSURFQU4pIHtcbiAgICAgICAgaWYgKHZhbHVlcy5sZW5ndGggIT09IGZuTmFtZXMubGVuZ3RoIHx8IHZhbHVlcy5sZW5ndGggIT09IG9wdHMubGVuZ3RoIHx8IHZhbHVlcy5sZW5ndGggIT09IHdlaWdodHMubGVuZ3RoKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd2YWx1ZXMsIGRpc3RhbmNlIGZ1bmN0aW9ucywgb3B0aW9ucyBhbmQgd2VpZ2h0cyBhcnJheXMgc2hvdWxkIGhhdmUgdGhlIHNhbWUgbGVuZ3RoJyk7XG4gICAgICAgIGlmICh2YWx1ZXMuc29tZSgodikgPT4gdi5sZW5ndGggIT09IHZhbHVlc1swXS5sZW5ndGgpKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdhbGwgdmFsdWVzIGFycmF5cyBzaG91bGQgaGF2ZSB0aGUgc2FtZSBsZW5ndGgnKTtcbiAgICAgICAgY29uc3QgbWF0U2l6ZSA9IHZhbHVlc1swXS5sZW5ndGggKiAodmFsdWVzWzBdLmxlbmd0aCAtIDEpIC8gMjtcbiAgICAgICAgY29uc3QgY2h1bmtTaXplID0gTWF0aC5mbG9vcihtYXRTaXplIC8gdGhpcy5fd29ya2VyQ291bnQpO1xuICAgICAgICBjb25zdCBwcm9taXNlcyA9IG5ldyBBcnJheSh0aGlzLl93b3JrZXJDb3VudCk7XG4gICAgICAgIGNvbnN0IHdvcmtlcnMgPSBuZXcgQXJyYXkodGhpcy5fd29ya2VyQ291bnQpXG4gICAgICAgICAgICAuZmlsbChudWxsKS5tYXAoKCkgPT4gbmV3IFdvcmtlcihuZXcgVVJMKCcuL2tubi13b3JrZXInLCBpbXBvcnQubWV0YS51cmwpKSk7XG4gICAgICAgIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IHRoaXMuX3dvcmtlckNvdW50OyBpZHgrKykge1xuICAgICAgICAgICAgcHJvbWlzZXNbaWR4XSA9IG5ldyBQcm9taXNlKChyZXNvbHZlV29ya2VyLCByZWplY3RXb3JrZXIpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdGFydElkeCA9IGlkeCAqIGNodW5rU2l6ZTtcbiAgICAgICAgICAgICAgICBjb25zdCBlbmRJZHggPSBpZHggPT09IHRoaXMuX3dvcmtlckNvdW50IC0gMSA/IG1hdFNpemUgOiAoaWR4ICsgMSkgKiBjaHVua1NpemU7XG4gICAgICAgICAgICAgICAgaWYgKGVuZElkeCA8PSBzdGFydElkeClcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZVdvcmtlcih7IGtubkRpc3RhbmNlczogbmV3IEFycmF5KDApLCBrbm5JbmRleGVzOiBuZXcgQXJyYXkoMCkgfSk7XG4gICAgICAgICAgICAgICAgd29ya2Vyc1tpZHhdLnBvc3RNZXNzYWdlKHsgdmFsdWVzLCBzdGFydElkeCwgZW5kSWR4LCBmbk5hbWVzLCBvcHRzLCBuTmVpZ2hib3Vycywgd2VpZ2h0cywgYWdncmVnYXRpb25NZXRob2QgfSk7XG4gICAgICAgICAgICAgICAgd29ya2Vyc1tpZHhdLm9ubWVzc2FnZSA9ICh7IGRhdGE6IHsgZXJyb3IsIGtubkRpc3RhbmNlcywga25uSW5kZXhlcyB9IH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3b3JrZXJzW2lkeF0udGVybWluYXRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3RXb3JrZXIoZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgd29ya2Vyc1tpZHhdLnRlcm1pbmF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZVdvcmtlcih7IGtubkRpc3RhbmNlcywga25uSW5kZXhlcyB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xuICAgICAgICBjb25zdCBrbm5SZXMgPSB7XG4gICAgICAgICAgICBrbm5EaXN0YW5jZXM6IG5ldyBBcnJheSh2YWx1ZXNbMF0ubGVuZ3RoKS5maWxsKG51bGwpLm1hcCgoKSA9PiBuZXcgQXJyYXkobk5laWdoYm91cnMpLmZpbGwoOTk5OTkpKSxcbiAgICAgICAgICAgIGtubkluZGV4ZXM6IG5ldyBBcnJheSh2YWx1ZXNbMF0ubGVuZ3RoKS5maWxsKG51bGwpLm1hcCgoKSA9PiBuZXcgQXJyYXkobk5laWdoYm91cnMpLmZpbGwoLTEpKVxuICAgICAgICB9O1xuICAgICAgICBmb3IgKGNvbnN0IHJlcyBvZiByZXN1bHRzKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlc1swXS5sZW5ndGg7ICsraSkge1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcmVzLmtubkRpc3RhbmNlc1tpXT8ubGVuZ3RoID8/IDA7ICsrailcbiAgICAgICAgICAgICAgICAgICAgaW5zZXJ0U21hbGxlcihrbm5SZXMua25uRGlzdGFuY2VzW2ldLCBrbm5SZXMua25uSW5kZXhlc1tpXSwgcmVzLmtubkRpc3RhbmNlc1tpXVtqXSwgcmVzLmtubkluZGV4ZXNbaV1bal0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBrbm5SZXM7XG4gICAgfVxuICAgIGFzeW5jIGdldFNhbXBsZURpc3RhbmNlcyh2YWx1ZXMsIGZuTmFtZXMsIG9wdHMgPSBbXSwgd2VpZ2h0cywgYWdncmVnYXRpb25NZXRob2QgPSBEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kcy5FVUNMSURFQU4pIHtcbiAgICAgICAgY29uc3QgdGhyZXNob2xkV29ya2VycyA9IG5ldyBBcnJheSh0aGlzLl93b3JrZXJDb3VudCkuZmlsbChudWxsKVxuICAgICAgICAgICAgLm1hcCgoKSA9PiBuZXcgV29ya2VyKG5ldyBVUkwoJy4vc3BhcnNlLW1hdHJpeC10aHJlc2hvbGQtd29ya2VyJywgaW1wb3J0Lm1ldGEudXJsKSkpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgbWF0U2l6ZSA9IHZhbHVlc1swXS5sZW5ndGggKiAodmFsdWVzWzBdLmxlbmd0aCAtIDEpIC8gMjtcbiAgICAgICAgICAgIGNvbnN0IGNodW5rU2l6ZSA9IE1hdGguZmxvb3IobWF0U2l6ZSAvIHRoaXMuX3dvcmtlckNvdW50KTtcbiAgICAgICAgICAgIGNvbnN0IG1heFNhbXBsZVNpemUgPSAxMDAwMDAwO1xuICAgICAgICAgICAgY29uc3Qgc2FtcGxlU2lzZSA9IE1hdGgubWF4KE1hdGgubWluKG1hdFNpemUgLyAxMDAwLCBtYXhTYW1wbGVTaXplKSwgTWF0aC5taW4obWF0U2l6ZSwgbWF4U2FtcGxlU2l6ZSkpO1xuICAgICAgICAgICAgY29uc3QgdGVzdFNldFNpemVQZXJXb3JrZXIgPSBNYXRoLmZsb29yKHNhbXBsZVNpc2UgLyB0aGlzLl93b3JrZXJDb3VudCk7XG4gICAgICAgICAgICBjb25zdCB0UHJvbWlzZXMgPSBuZXcgQXJyYXkodGhpcy5fd29ya2VyQ291bnQpO1xuICAgICAgICAgICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgdGhpcy5fd29ya2VyQ291bnQ7IGlkeCsrKSB7XG4gICAgICAgICAgICAgICAgdFByb21pc2VzW2lkeF0gPSBuZXcgUHJvbWlzZSgocmVzb2x2ZVdvcmtlciwgcmVqZWN0V29ya2VyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0SWR4ID0gaWR4ICogY2h1bmtTaXplO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbmRJZHggPSBpZHggPT09IHRoaXMuX3dvcmtlckNvdW50IC0gMSA/IG1hdFNpemUgOiAoaWR4ICsgMSkgKiBjaHVua1NpemU7XG4gICAgICAgICAgICAgICAgICAgIHRocmVzaG9sZFdvcmtlcnNbaWR4XS5wb3N0TWVzc2FnZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM6IHZhbHVlcywgc3RhcnRJZHgsIGVuZElkeCwgc2FtcGxlTGVuZ3RoOiB0ZXN0U2V0U2l6ZVBlcldvcmtlcixcbiAgICAgICAgICAgICAgICAgICAgICAgIGZuTmFtZXMsIG9wdHMsIHdlaWdodHMsIGFnZ3JlZ2F0aW9uTWV0aG9kXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aHJlc2hvbGRXb3JrZXJzW2lkeF0ub25tZXNzYWdlID0gKHsgZGF0YTogeyBlcnJvciwgZGlzdGFuY2UgfSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJlc2hvbGRXb3JrZXJzW2lkeF0udGVybWluYXRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3IpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0V29ya2VyKGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlV29ya2VyKHsgZGlzdGFuY2UgfSk7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwodFByb21pc2VzKTtcbiAgICAgICAgICAgIGNvbnN0IGZ1bGxTaXplID0gcmVzdWx0cy5yZWR1Y2UoKGFjYywgdmFsKSA9PiBhY2MgKyB2YWwuZGlzdGFuY2UubGVuZ3RoLCAwKTtcbiAgICAgICAgICAgIGNvbnN0IGRpc3RhbmNlID0gbmV3IEZsb2F0MzJBcnJheShmdWxsU2l6ZSk7XG4gICAgICAgICAgICBsZXQgb2Zmc2V0ID0gMDtcbiAgICAgICAgICAgIGZvciAoY29uc3QgcmVzIG9mIHJlc3VsdHMpIHtcbiAgICAgICAgICAgICAgICBkaXN0YW5jZS5zZXQocmVzLmRpc3RhbmNlLCBvZmZzZXQpO1xuICAgICAgICAgICAgICAgIG9mZnNldCArPSByZXMuZGlzdGFuY2UubGVuZ3RoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGlzdGFuY2Uuc29ydCgpO1xuICAgICAgICAgICAgcmV0dXJuIGRpc3RhbmNlO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJlc2hvbGRXb3JrZXJzPy5mb3JFYWNoKCh3KSA9PiB3Py50ZXJtaW5hdGUoKSk7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBGbG9hdDMyQXJyYXkoMSkuZmlsbCgwLjUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGFzeW5jIGdldE1pbmltYWxUaHJlc2hvbGQodmFsdWVzLCBmbk5hbWVzLCBvcHRzID0gW10sIHdlaWdodHMsIGFnZ3JlZ2F0aW9uTWV0aG9kID0gRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZHMuRVVDTElERUFOKSB7XG4gICAgICAgIC8vV2UgbmVlZCB0byBjYWxjdWxhdGUgdGhlIG1pbmltYWwgdGhyZXNob2xkIGZpcnN0LFxuICAgICAgICAvL2luIG9yZGVyIHRvIGdldCBtYXRyaXggc3VjaCB0aGF0IGl0IGRvZXMgbm90IGV4Y2VlZCB0aGUgbWF4aW11bSBzaXplIG9mIDFHQlxuICAgICAgICAvL3dlIGhhdmUgMyByZXR1cm4gYXJyYXlzLCBlYWNoIDQgYml0ZXMgcGVyIGVsZW1lbnQsIHNvIGlmIHRoZSBtYXhpbXVtIHNpemUgb2YgdGhlIG1hdHJpeCBpcyAxR0IsXG4gICAgICAgIGNvbnN0IG1heFNwYXJzZU1hdHJpeFNpemUgPSA3MDAwMDAwMDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IG1hdFNpemUgPSB2YWx1ZXMubGVuZ3RoICogKHZhbHVlcy5sZW5ndGggLSAxKSAvIDI7XG4gICAgICAgICAgICBjb25zdCBkaXN0YW5jZSA9IGF3YWl0IHRoaXMuZ2V0U2FtcGxlRGlzdGFuY2VzKHZhbHVlcywgZm5OYW1lcywgb3B0cywgd2VpZ2h0cywgYWdncmVnYXRpb25NZXRob2QpO1xuICAgICAgICAgICAgY29uc3QgZnJhY3Rpb25JbmRleCA9IE1hdGguZmxvb3IobWF4U3BhcnNlTWF0cml4U2l6ZSAvIG1hdFNpemUgKiBkaXN0YW5jZS5sZW5ndGgpO1xuICAgICAgICAgICAgY29uc3QgdGhyZXNob2xkID0gMSAtIGRpc3RhbmNlW2ZyYWN0aW9uSW5kZXhdO1xuICAgICAgICAgICAgLy8gdGhyZXNob2xkID0gTWF0aC5tYXgodGhyZXNob2xkLCAwLjMpO1xuICAgICAgICAgICAgcmV0dXJuIHRocmVzaG9sZDtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgICAgIHJldHVybiAwLjU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc3RhdGljIGNhbGNTeW5jKHZhbHVlcywgZm5OYW1lLCBkaXN0YW5jZUZuLCB0aHJlc2hvbGQpIHtcbiAgICAgICAgY29uc3QgaSA9IFtdO1xuICAgICAgICBjb25zdCBqID0gW107XG4gICAgICAgIGNvbnN0IGRpc3RhbmNlcyA9IFtdO1xuICAgICAgICBsZXQgY250ID0gMDtcbiAgICAgICAgbGV0IG1pID0gMDtcbiAgICAgICAgbGV0IG1qID0gMDtcbiAgICAgICAgY29uc3QgZnVsbFNpemUgPSB2YWx1ZXMubGVuZ3RoICogKHZhbHVlcy5sZW5ndGggLSAxKSAvIDI7XG4gICAgICAgIHdoaWxlIChjbnQgPCBmdWxsU2l6ZSkge1xuICAgICAgICAgICAgLy9jb25zdCB2YWx1ZSA9IHNlcTFMaXN0W21pXSAmJiBzZXExTGlzdFttal0gPyBoYW1taW5nKHNlcTFMaXN0W21pXSwgc2VxMUxpc3RbbWpdKSA6IDA7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9ICFpc05pbCh2YWx1ZXNbbWldKSAmJiAhaXNOaWwodmFsdWVzW21qXSkgP1xuICAgICAgICAgICAgICAgIGRpc3RhbmNlRm4odmFsdWVzW21pXSwgdmFsdWVzW21qXSkgOiAxO1xuICAgICAgICAgICAgY29uc3Qgc2ltaWxhcml0eSA9IDEgLSB2YWx1ZTtcbiAgICAgICAgICAgIGlmIChzaW1pbGFyaXR5ID49IHRocmVzaG9sZCkge1xuICAgICAgICAgICAgICAgIGkucHVzaChtaSk7XG4gICAgICAgICAgICAgICAgai5wdXNoKG1qKTtcbiAgICAgICAgICAgICAgICBkaXN0YW5jZXMucHVzaCh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjbnQrKztcbiAgICAgICAgICAgIG1qKys7XG4gICAgICAgICAgICBpZiAobWogPT09IHZhbHVlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBtaSsrO1xuICAgICAgICAgICAgICAgIG1qID0gbWkgKyAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlBcnJheSA9IG5ldyBJbnQzMkFycmF5KGkpO1xuICAgICAgICBjb25zdCBqQXJyYXkgPSBuZXcgSW50MzJBcnJheShqKTtcbiAgICAgICAgY29uc3QgZGlzdGFuY2VBcnJheSA9IG5ldyBGbG9hdDMyQXJyYXkoZGlzdGFuY2VzKTtcbiAgICAgICAgcmV0dXJuIHsgaTogaUFycmF5LCBqOiBqQXJyYXksIGRpc3RhbmNlOiBkaXN0YW5jZUFycmF5IH07XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYzNCaGNuTmxMVzFoZEhKcGVDMXpaWEoyYVdObExtcHpJaXdpYzI5MWNtTmxVbTl2ZENJNklpSXNJbk52ZFhKalpYTWlPbHNpYzNCaGNuTmxMVzFoZEhKcGVDMXpaWEoyYVdObExuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVU5CTEU5QlFVOHNSVUZCTkVJc01FSkJRVEJDTEVWQlFVTXNUVUZCVFN4VFFVRlRMRU5CUVVNN1FVRkRPVVVzVDBGQlR5eEZRVUZETEdGQlFXRXNSVUZCUlN4TFFVRkxMRVZCUVVNc1RVRkJUU3hUUVVGVExFTkJRVU03UVVGaE4wTXNUVUZCVFN4UFFVRlBMRzFDUVVGdFFqdEpRVVUxUWp0UlFVTkZMRWxCUVVrc1EwRkJReXhaUVVGWkxFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4VFFVRlRMRU5CUVVNc2JVSkJRVzFDTEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRM0pGTEVOQlFVTTdTVUZGVFN4TFFVRkxMRU5CUVVNc1pVRkJaU3hEUVVGRExFMUJRVzlDTEVWQlFVVXNUMEZCZFVJc1JVRkRlRVVzVTBGQmFVSXNSVUZCUlN4UFFVRTJRaXhEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEZWQlFXOUNMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRemRGTEc5Q1FVRXJReXd3UWtGQk1FSXNRMEZCUXl4VFFVRlRPMUZCUlc1R0xFMUJRVTBzVDBGQlR5eEhRVUZITEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTTVSQ3hOUVVGTkxGTkJRVk1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTTdVVUZGTVVRc1RVRkJUU3haUVVGWkxFZEJRVWNzVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1IwRkJSeXhMUVVGTkxFTkJRVU1zUTBGQlF6dFpRVU01UXl4TlFVRk5MRWxCUVVrc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGRkxFbEJRVWtzUlVGQlJTeFBRVUZQTEVWQlFVVXNhVUpCUVdsQ0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTNoR0xFbEJRVWtzVTBGQlV5eEhRVUZITEZsQlFWa3NSVUZCUlR0WlFVTTFRaXhQUVVGUExFTkJRVU1zUjBGQlJ5eERRVUZETEcxQ1FVRnRRaXhaUVVGWkxFVkJRVVVzUTBGQlF5eERRVUZETzFsQlF5OURMRk5CUVZNc1IwRkJSeXhaUVVGWkxFTkJRVU03VTBGRE1VSTdVVUZEUkN4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEZkQlFWY3NRMEZCUXl4SFFVRkhMRk5CUVZNc1EwRkJReXhEUVVGRE8xRkJRM3BFTEUxQlFVMHNVVUZCVVN4SFFVTmFMRWxCUVVrc1MwRkJTeXhEUVVFNFFpeEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNN1VVRkZOVVFzVFVGQlRTeFBRVUZQTEVkQlFVY3NTVUZCU1N4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF6dGhRVU42UXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRMRWxCUVVrc1RVRkJUU3hEUVVGRExFbEJRVWtzUjBGQlJ5eERRVUZETEhkQ1FVRjNRaXhGUVVGRkxFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRM2hHTEV0QlFVc3NTVUZCU1N4SFFVRkhMRWRCUVVjc1EwRkJReXhGUVVGRkxFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RlFVRkZMRWRCUVVjc1JVRkJSU3hGUVVGRk8xbEJRMmhFTEZGQlFWRXNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhKUVVGSkxFOUJRVThzUTBGQlF5eERRVUZETEdGQlFXRXNSVUZCUlN4WlFVRlpMRVZCUVVVc1JVRkJSVHRuUWtGRE1VUXNUVUZCVFN4UlFVRlJMRWRCUVVjc1IwRkJSeXhIUVVGSExGTkJRVk1zUTBGQlF6dG5Ra0ZEYWtNc1RVRkJUU3hOUVVGTkxFZEJRVWNzUjBGQlJ5eExRVUZMTEVsQlFVa3NRMEZCUXl4WlFVRlpMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEZOQlFWTXNRMEZCUXp0blFrRkRMMFVzU1VGQlNTeE5RVUZOTEVsQlFVa3NVVUZCVVR0dlFrRkRjRUlzWVVGQllTeERRVUZETEVWQlFVTXNRMEZCUXl4RlFVRkZMRWxCUVVrc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4SlFVRkpMRlZCUVZVc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeFJRVUZSTEVWQlFVVXNTVUZCU1N4WlFVRlpMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUjBGQlJ5eEZRVUZETEVOQlFVTXNRMEZCUXp0blFrRkRiRWNzVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRmRCUVZjc1EwRkJReXhGUVVGRExFMUJRVTBzUlVGQlJTeFJRVUZSTEVWQlFVVXNUVUZCVFN4RlFVRkZMRk5CUVZNc1JVRkJSU3hQUVVGUExFVkJRVVVzU1VGQlNTeEZRVUZGTEU5QlFVOHNSVUZCUlN4cFFrRkJhVUlzUlVGQlF5eERRVUZETEVOQlFVTTdaMEpCUXpOSExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4VFFVRlRMRWRCUVVjc1EwRkJReXhGUVVGRExFbEJRVWtzUlVGQlJTeEZRVUZETEV0QlFVc3NSVUZCUlN4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxGRkJRVkVzUlVGQlF5eEZRVUZETEVWQlFWRXNSVUZCUlR0dlFrRkRha1VzU1VGQlNTeExRVUZMTEVWQlFVVTdkMEpCUTFRc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEZOQlFWTXNSVUZCUlN4RFFVRkRPM2RDUVVONlFpeFpRVUZaTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN2NVSkJRM0pDTzNsQ1FVRk5PM2RDUVVOTUxFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4VFFVRlRMRVZCUVVVc1EwRkJRenQzUWtGRGVrSXNZVUZCWVN4RFFVRkRMRVZCUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeFJRVUZSTEVWQlFVVXNSMEZCUnl4RlFVRkRMRU5CUVVNc1EwRkJRenR4UWtGRGRFTTdaMEpCUTBnc1EwRkJReXhEUVVGRE8xbEJRMG9zUTBGQlF5eERRVUZETEVOQlFVTTdVMEZEU2p0UlFVVkVMRTFCUVUwc1QwRkJUeXhIUVVGSExFMUJRVTBzVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenRSUVVNMVF5eE5RVUZOTEZGQlFWRXNSMEZCUnl4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4RlFVRkZMRU5CUVVNc1IwRkJSeXhIUVVGSExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRM0pGTEUxQlFVMHNRMEZCUXl4SFFVRkhMRWxCUVVrc1ZVRkJWU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzFGQlEyNURMRTFCUVUwc1EwRkJReXhIUVVGSExFbEJRVWtzVlVGQlZTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPMUZCUTI1RExFMUJRVTBzVVVGQlVTeEhRVUZITEVsQlFVa3NXVUZCV1N4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE8xRkJRelZETEVsQlFVa3NUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVObUxITkNRVUZ6UWp0UlFVTjBRaXhMUVVGTExFMUJRVTBzUjBGQlJ5eEpRVUZKTEU5QlFVOHNSVUZCUlR0WlFVTjZRaXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRVZCUVVVc1RVRkJUU3hEUVVGRExFTkJRVU03V1VGRGNrSXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEZRVUZGTEUxQlFVMHNRMEZCUXl4RFFVRkRPMWxCUTNKQ0xGRkJRVkVzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRkZCUVZFc1JVRkJSU3hOUVVGTkxFTkJRVU1zUTBGQlF6dFpRVU51UXl4TlFVRk5MRWxCUVVrc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTTdVMEZEZUVJN1VVRkRSQ3hQUVVGUExFVkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4UlFVRlJMRVZCUVVNc1EwRkJRenRKUVVNeFFpeERRVUZETzBsQlJVMHNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJTU3hOUVVGblFpeEZRVUZGTEUxQlFXOUNMRVZCUVVVc1UwRkJhVUlzUlVGQlJTeFBRVUV5UWl4RlFVRkZPMUZCUXpOSExIRkNRVUZ4UWp0UlFVTnlRaXhQUVVGUExFMUJRVTBzU1VGQlNTeERRVUZETEdWQlFXVXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhGUVVGRkxFTkJRVU1zVFVGQlRTeERRVUZETEVWQlFVVXNVMEZCVXl4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTJoR0xFTkJRVU03U1VGRlRTeExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVTnFRaXhOUVVGclFpeEZRVUZGTEUxQlFXOUNMRVZCUVVVc1kwRkJjMElzUlVGQlJTeEZRVUZGTEU5QlFUSkNMRVZCUVVVN1VVRkZha2NzVDBGQlR5eE5RVUZOTEVsQlFVa3NRMEZCUXl4alFVRmpMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeERRVUZETEUxQlFVMHNRMEZCUXl4RlFVRkZMRmRCUVZjc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOcVJpeERRVUZETzBsQlJVMHNTMEZCU3l4RFFVRkRMR1ZCUVdVc1EwRkRNVUlzVFVGQmEwSXNSVUZCUlN4TlFVRnZRaXhGUVVGRkxGbEJRVzlDTEVkQlFVY3NSVUZCUlN4UFFVRXlRaXhGUVVGRk8xRkJSV2hITEU5QlFVOHNUVUZCVFN4SlFVRkpMRU5CUVVNc2RVSkJRWFZDTEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1JVRkJSU3hEUVVGRExFMUJRVTBzUTBGQlF5eEZRVUZGTEZOQlFWTXNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTjRSaXhEUVVGRE8wbEJSVTBzUzBGQlN5eERRVUZETEhWQ1FVRjFRaXhEUVVGRExFMUJRWGxDTEVWQlFVVXNUMEZCZFVJc1JVRkJSU3haUVVGdlFpeEhRVUZITEVWQlF6bEhMRWxCUVRCQ0xFVkJRVVVzVDBGQmFVSXNSVUZETjBNc2IwSkJRU3RETERCQ1FVRXdRaXhEUVVGRExGTkJRVk03VVVGRmJrWXNTVUZCU1N4TlFVRk5MRU5CUVVNc1RVRkJUU3hMUVVGTExFOUJRVThzUTBGQlF5eE5RVUZOTEVsQlFVa3NUVUZCVFN4RFFVRkRMRTFCUVUwc1MwRkJTeXhKUVVGSkxFTkJRVU1zVFVGQlRTeEpRVUZKTEUxQlFVMHNRMEZCUXl4TlFVRk5MRXRCUVVzc1QwRkJUeXhEUVVGRExFMUJRVTA3V1VGRGRrY3NUVUZCVFN4SlFVRkpMRXRCUVVzc1EwRkJReXh2UmtGQmIwWXNRMEZCUXl4RFFVRkRPMUZCUlhoSExFbEJRVWtzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNTMEZCU3l4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETzFsQlEyNUVMRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zSzBOQlFTdERMRU5CUVVNc1EwRkJRenRSUVVWdVJTeE5RVUZOTEU5QlFVOHNSMEZCUnl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeEhRVUZITEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRPVVFzVFVGQlRTeFRRVUZUTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhQUVVGUExFZEJRVWNzU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRPMUZCUXpGRUxFMUJRVTBzVVVGQlVTeEhRVU5hTEVsQlFVa3NTMEZCU3l4RFFVRnhRaXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTTdVVUZEYmtRc1RVRkJUU3hQUVVGUExFZEJRVWNzU1VGQlNTeExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJRenRoUVVONlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEVsQlFVa3NUVUZCVFN4RFFVRkRMRWxCUVVrc1IwRkJSeXhEUVVGRExIZENRVUYzUWl4RlFVRkZMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTNoR0xFdEJRVXNzU1VGQlNTeEhRVUZITEVkQlFVY3NRMEZCUXl4RlFVRkZMRWRCUVVjc1IwRkJSeXhKUVVGSkxFTkJRVU1zV1VGQldTeEZRVUZGTEVkQlFVY3NSVUZCUlN4RlFVRkZPMWxCUTJoRUxGRkJRVkVzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4SlFVRkpMRTlCUVU4c1EwRkJReXhEUVVGRExHRkJRV0VzUlVGQlJTeFpRVUZaTEVWQlFVVXNSVUZCUlR0blFrRkRNVVFzVFVGQlRTeFJRVUZSTEVkQlFVY3NSMEZCUnl4SFFVRkhMRk5CUVZNc1EwRkJRenRuUWtGRGFrTXNUVUZCVFN4TlFVRk5MRWRCUVVjc1IwRkJSeXhMUVVGTExFbEJRVWtzUTBGQlF5eFpRVUZaTEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExGTkJRVk1zUTBGQlF6dG5Ra0ZETDBVc1NVRkJTU3hOUVVGTkxFbEJRVWtzVVVGQlVUdHZRa0ZEY0VJc1lVRkJZU3hEUVVGRExFVkJRVU1zV1VGQldTeEZRVUZGTEVsQlFVa3NTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxGVkJRVlVzUlVGQlJTeEpRVUZKTEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhEUVVGRExFTkJRVU03WjBKQlEzaEZMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eFhRVUZYTEVOQlFVTXNSVUZCUXl4TlFVRk5MRVZCUVVVc1VVRkJVU3hGUVVGRkxFMUJRVTBzUlVGQlJTeFBRVUZQTEVWQlFVVXNTVUZCU1N4RlFVRkZMRk5CUVZNc1JVRkJSU3hQUVVGUExFVkJRVVVzYVVKQlFXbENMRVZCUVVNc1EwRkJReXhEUVVGRE8yZENRVU16Unl4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zVTBGQlV5eEhRVUZITEVOQlFVTXNSVUZCUXl4SlFVRkpMRVZCUVVVc1JVRkJReXhMUVVGTExFVkJRVVVzV1VGQldTeEZRVUZGTEZWQlFWVXNSVUZCUXl4RlFVRkRMRVZCUVZFc1JVRkJSVHR2UWtGRE0wVXNTVUZCU1N4TFFVRkxMRVZCUVVVN2QwSkJRMVFzVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRk5CUVZNc1JVRkJSU3hEUVVGRE8zZENRVU42UWl4WlFVRlpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03Y1VKQlEzSkNPM2xDUVVGTk8zZENRVU5NTEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhUUVVGVExFVkJRVVVzUTBGQlF6dDNRa0ZEZWtJc1lVRkJZU3hEUVVGRExFVkJRVU1zV1VGQldTeEZRVUZGTEZWQlFWVXNSVUZCUXl4RFFVRkRMRU5CUVVNN2NVSkJRek5ETzJkQ1FVTklMRU5CUVVNc1EwRkJRenRaUVVOS0xFTkJRVU1zUTBGQlF5eERRVUZETzFOQlEwbzdVVUZGUkN4TlFVRk5MRTlCUVU4c1IwRkJSeXhOUVVGTkxFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN1VVRkROVU1zVFVGQlRTeFJRVUZSTEVkQlFVY3NTVUZCU1N4VlFVRlZMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMUZCUTJ4RUxFdEJRVXNzVFVGQlRTeEhRVUZITEVsQlFVa3NUMEZCVHl4RlFVRkZPMWxCUTNwQ0xFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RlFVRkZMRVZCUVVVc1EwRkJRenRuUWtGRGRrTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFZEJRVWNzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1RVRkJUU3hKUVVGSkxFTkJRVU1zUTBGQlF6dFRRVU5xUkR0UlFVTkVMRTFCUVUwc1RVRkJUU3hIUVVGak8xbEJRM2hDTEZsQlFWa3NSVUZCUlN4SlFVRkpMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEVsQlFVa3NTMEZCU3l4RFFVRlRMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEyeEhMRlZCUVZVc1JVRkJSU3hKUVVGSkxFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRWxCUVVrc1MwRkJTeXhEUVVGVExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMU5CUVVNc1EwRkJRenRSUVVOd1J5eExRVUZMTEUxQlFVMHNSMEZCUnl4SlFVRkpMRTlCUVU4c1JVRkJSVHRaUVVONlFpeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1JVRkJSU3hGUVVGRkxFTkJRVU1zUlVGQlJUdG5Ra0ZEZWtNc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRWRCUVVjc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNUVUZCVFN4SlFVRkpMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUlVGQlJUdHZRa0ZEZWtRc1RVRkJUU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0dlFrRkRha1VzVFVGQlRTeERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRWRCUVVjc1IwRkJSeXhEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenR2UWtGRE4wUXNVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dHBRa0ZEYkVJN1lVRkRSanRUUVVOR08xRkJRMFFzVDBGQlR5eE5RVUZOTEVOQlFVTTdTVUZEYUVJc1EwRkJRenRKUVVWTkxFdEJRVXNzUTBGQlF5eGpRVUZqTEVOQlFVTXNUVUZCZVVJc1JVRkJSU3hQUVVGMVFpeEZRVUZGTEdOQlFYTkNMRVZCUVVVc1JVRkRkRWNzU1VGQk1FSXNSVUZCUlN4UFFVRnBRaXhGUVVNM1F5eHZRa0ZCSzBNc01FSkJRVEJDTEVOQlFVTXNVMEZCVXp0UlFVVnVSaXhKUVVGSkxFMUJRVTBzUTBGQlF5eE5RVUZOTEV0QlFVc3NUMEZCVHl4RFFVRkRMRTFCUVUwc1NVRkJTU3hOUVVGTkxFTkJRVU1zVFVGQlRTeExRVUZMTEVsQlFVa3NRMEZCUXl4TlFVRk5MRWxCUVVrc1RVRkJUU3hEUVVGRExFMUJRVTBzUzBGQlN5eFBRVUZQTEVOQlFVTXNUVUZCVFR0WlFVTjJSeXhOUVVGTkxFbEJRVWtzUzBGQlN5eERRVUZETEc5R1FVRnZSaXhEUVVGRExFTkJRVU03VVVGRmVFY3NTVUZCU1N4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hMUVVGTExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNN1dVRkRia1FzVFVGQlRTeEpRVUZKTEV0QlFVc3NRMEZCUXl3clEwRkJLME1zUTBGQlF5eERRVUZETzFGQlJXNUZMRTFCUVUwc1QwRkJUeXhIUVVGSExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU01UkN4TlFVRk5MRk5CUVZNc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEU5QlFVOHNSMEZCUnl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU03VVVGRE1VUXNUVUZCVFN4UlFVRlJMRWRCUTFvc1NVRkJTU3hMUVVGTExFTkJRWEZDTEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJRenRSUVVOdVJDeE5RVUZOTEU5QlFVOHNSMEZCUnl4SlFVRkpMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETzJGQlEzcERMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNc1NVRkJTU3hOUVVGTkxFTkJRVU1zU1VGQlNTeEhRVUZITEVOQlFVTXNZMEZCWXl4RlFVRkZMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUXpsRkxFdEJRVXNzU1VGQlNTeEhRVUZITEVkQlFVY3NRMEZCUXl4RlFVRkZMRWRCUVVjc1IwRkJSeXhKUVVGSkxFTkJRVU1zV1VGQldTeEZRVUZGTEVkQlFVY3NSVUZCUlN4RlFVRkZPMWxCUTJoRUxGRkJRVkVzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4SlFVRkpMRTlCUVU4c1EwRkJReXhEUVVGRExHRkJRV0VzUlVGQlJTeFpRVUZaTEVWQlFVVXNSVUZCUlR0blFrRkRNVVFzVFVGQlRTeFJRVUZSTEVkQlFVY3NSMEZCUnl4SFFVRkhMRk5CUVZNc1EwRkJRenRuUWtGRGFrTXNUVUZCVFN4TlFVRk5MRWRCUVVjc1IwRkJSeXhMUVVGTExFbEJRVWtzUTBGQlF5eFpRVUZaTEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExGTkJRVk1zUTBGQlF6dG5Ra0ZETDBVc1NVRkJTU3hOUVVGTkxFbEJRVWtzVVVGQlVUdHZRa0ZEY0VJc1lVRkJZU3hEUVVGRExFVkJRVU1zV1VGQldTeEZRVUZGTEVsQlFVa3NTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxGVkJRVlVzUlVGQlJTeEpRVUZKTEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhEUVVGRExFTkJRVU03WjBKQlEzaEZMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eFhRVUZYTEVOQlFVTXNSVUZCUXl4TlFVRk5MRVZCUVVVc1VVRkJVU3hGUVVGRkxFMUJRVTBzUlVGQlJTeFBRVUZQTEVWQlFVVXNTVUZCU1N4RlFVRkZMRmRCUVZjc1JVRkJSU3hQUVVGUExFVkJRVVVzYVVKQlFXbENMRVZCUVVNc1EwRkJReXhEUVVGRE8yZENRVU0zUnl4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zVTBGQlV5eEhRVUZITEVOQlFVTXNSVUZCUXl4SlFVRkpMRVZCUVVVc1JVRkJReXhMUVVGTExFVkJRVVVzV1VGQldTeEZRVUZGTEZWQlFWVXNSVUZCUXl4RlFVRkRMRVZCUVZFc1JVRkJSVHR2UWtGRE0wVXNTVUZCU1N4TFFVRkxMRVZCUVVVN2QwSkJRMVFzVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRk5CUVZNc1JVRkJSU3hEUVVGRE8zZENRVU42UWl4WlFVRlpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03Y1VKQlEzSkNPM2xDUVVGTk8zZENRVU5NTEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhUUVVGVExFVkJRVVVzUTBGQlF6dDNRa0ZEZWtJc1lVRkJZU3hEUVVGRExFVkJRVU1zV1VGQldTeEZRVUZGTEZWQlFWVXNSVUZCUXl4RFFVRkRMRU5CUVVNN2NVSkJRek5ETzJkQ1FVTklMRU5CUVVNc1EwRkJRenRaUVVOS0xFTkJRVU1zUTBGQlF5eERRVUZETzFOQlEwbzdVVUZGUkN4TlFVRk5MRTlCUVU4c1IwRkJSeXhOUVVGTkxFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN1VVRkROVU1zVFVGQlRTeE5RVUZOTEVkQlFXTTdXVUZEZUVJc1dVRkJXU3hGUVVGRkxFbEJRVWtzUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEVsQlFVa3NTMEZCU3l4RFFVRlRMRmRCUVZjc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0WlFVTXhSeXhWUVVGVkxFVkJRVVVzU1VGQlNTeExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTXNTVUZCU1N4TFFVRkxMRU5CUVZNc1YwRkJWeXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1UwRkJReXhEUVVGRE8xRkJRM3BITEV0QlFVc3NUVUZCVFN4SFFVRkhMRWxCUVVrc1QwRkJUeXhGUVVGRk8xbEJRM3BDTEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hGUVVGRkxFVkJRVVVzUTBGQlF5eEZRVUZGTzJkQ1FVTjZReXhMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1IwRkJSeXhEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4TlFVRk5MRWxCUVVrc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF6dHZRa0ZEZGtRc1lVRkJZU3hEUVVGRExFMUJRVTBzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1RVRkJUU3hEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4SFFVRkhMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRWRCUVVjc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRoUVVNM1J6dFRRVU5HTzFGQlEwUXNUMEZCVHl4TlFVRk5MRU5CUVVNN1NVRkRhRUlzUTBGQlF6dEpRVVZOTEV0QlFVc3NRMEZCUXl4clFrRkJhMElzUTBGQlF5eE5RVUZ2UWl4RlFVTnNSQ3hQUVVGMVFpeEZRVUZGTEU5QlFUWkNMRVZCUVVVc1JVRkJSU3hQUVVGcFFpeEZRVU16UlN4dlFrRkJLME1zTUVKQlFUQkNMRU5CUVVNc1UwRkJVenRSUVVOdVJpeE5RVUZOTEdkQ1FVRm5RaXhIUVVGSExFbEJRVWtzUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETzJGQlF6ZEVMRWRCUVVjc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eEpRVUZKTEUxQlFVMHNRMEZCUXl4SlFVRkpMRWRCUVVjc1EwRkJReXhyUTBGQmEwTXNSVUZCUlN4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVVjJSaXhKUVVGSk8xbEJRMFlzVFVGQlRTeFBRVUZQTEVkQlFVY3NUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUXpsRUxFMUJRVTBzVTBGQlV5eEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1QwRkJUeXhIUVVGSExFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXp0WlFVTXhSQ3hOUVVGTkxHRkJRV0VzUjBGQlJ5eFBRVUZUTEVOQlFVTTdXVUZEYUVNc1RVRkJUU3hWUVVGVkxFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFOUJRVThzUjBGQlJ5eEpRVUZKTEVWQlFVVXNZVUZCWVN4RFFVRkRMRVZCUVVVc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eFBRVUZQTEVWQlFVVXNZVUZCWVN4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVOMlJ5eE5RVUZOTEc5Q1FVRnZRaXhIUVVGSExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNWVUZCVlN4SFFVRkhMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF6dFpRVU40UlN4TlFVRk5MRk5CUVZNc1IwRkJSeXhKUVVGSkxFdEJRVXNzUTBGQmIwTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRE8xbEJSV3hHTEV0QlFVc3NTVUZCU1N4SFFVRkhMRWRCUVVjc1EwRkJReXhGUVVGRkxFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RlFVRkZMRWRCUVVjc1JVRkJSU3hGUVVGRk8yZENRVU5vUkN4VFFVRlRMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzU1VGQlNTeFBRVUZQTEVOQlFVTXNRMEZCUXl4aFFVRmhMRVZCUVVVc1dVRkJXU3hGUVVGRkxFVkJRVVU3YjBKQlF6TkVMRTFCUVUwc1VVRkJVU3hIUVVGSExFZEJRVWNzUjBGQlJ5eFRRVUZUTEVOQlFVTTdiMEpCUTJwRExFMUJRVTBzVFVGQlRTeEhRVUZITEVkQlFVY3NTMEZCU3l4SlFVRkpMRU5CUVVNc1dVRkJXU3hIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUjBGQlJ5eERRVUZETEVOQlFVTXNSMEZCUnl4VFFVRlRMRU5CUVVNN2IwSkJReTlGTEdkQ1FVRm5RaXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEZkQlFWY3NRMEZCUXp0M1FrRkRhRU1zVFVGQlRTeEZRVUZGTEUxQlFVMHNSVUZCUlN4UlFVRlJMRVZCUVVVc1RVRkJUU3hGUVVGRkxGbEJRVmtzUlVGQlJTeHZRa0ZCYjBJN2QwSkJRM0JGTEU5QlFVOHNSVUZCUlN4SlFVRkpMRVZCUVVVc1QwRkJUeXhGUVVGRkxHbENRVUZwUWp0eFFrRkRNVU1zUTBGQlF5eERRVUZETzI5Q1FVTklMR2RDUVVGblFpeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRk5CUVZNc1IwRkJSeXhEUVVGRExFVkJRVU1zU1VGQlNTeEZRVUZGTEVWQlFVTXNTMEZCU3l4RlFVRkZMRkZCUVZFc1JVRkJReXhGUVVGRExFVkJRVkVzUlVGQlJUdDNRa0ZEY0VVc1owSkJRV2RDTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1UwRkJVeXhGUVVGRkxFTkJRVU03ZDBKQlEyeERMRWxCUVVrc1MwRkJTenMwUWtGQlJTeFpRVUZaTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN096UkNRVU0zUWl4aFFVRmhMRU5CUVVNc1JVRkJReXhSUVVGUkxFVkJRVU1zUTBGQlF5eERRVUZETzI5Q1FVTTVRaXhEUVVGRExFTkJRVU03WjBKQlEwb3NRMEZCUXl4RFFVRkRMRU5CUVVNN1lVRkRTanRaUVVWRUxFMUJRVTBzVDBGQlR5eEhRVUZITEUxQlFVMHNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dFpRVU0zUXl4TlFVRk5MRkZCUVZFc1IwRkJSeXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hGUVVGRkxFTkJRVU1zUjBGQlJ5eEhRVUZITEVkQlFVY3NRMEZCUXl4UlFVRlJMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzFsQlF6VkZMRTFCUVUwc1VVRkJVU3hIUVVGSExFbEJRVWtzV1VGQldTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPMWxCUXpWRExFbEJRVWtzVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXp0WlFVTm1MRXRCUVVzc1RVRkJUU3hIUVVGSExFbEJRVWtzVDBGQlR5eEZRVUZGTzJkQ1FVTjZRaXhSUVVGUkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4UlFVRlJMRVZCUVVVc1RVRkJUU3hEUVVGRExFTkJRVU03WjBKQlEyNURMRTFCUVUwc1NVRkJTU3hIUVVGSExFTkJRVU1zVVVGQlVTeERRVUZETEUxQlFVMHNRMEZCUXp0aFFVTXZRanRaUVVORUxGRkJRVkVzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXp0WlFVVm9RaXhQUVVGUExGRkJRVkVzUTBGQlF6dFRRVU5xUWp0UlFVRkRMRTlCUVU4c1EwRkJReXhGUVVGRk8xbEJRMVlzWjBKQlFXZENMRVZCUVVVc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMRVZCUVVVc1UwRkJVeXhGUVVGRkxFTkJRVU1zUTBGQlF6dFpRVU5xUkN4UFFVRlBMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEycENMRTlCUVU4c1NVRkJTU3haUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xTkJRM1JETzBsQlEwZ3NRMEZCUXp0SlFVVlBMRXRCUVVzc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4TlFVRnZRaXhGUVVOd1JDeFBRVUYxUWl4RlFVRkZMRTlCUVRaQ0xFVkJRVVVzUlVGQlJTeFBRVUZwUWl4RlFVTXpSU3h2UWtGQkswTXNNRUpCUVRCQ0xFTkJRVU1zVTBGQlV6dFJRVU51Uml4dFJFRkJiVVE3VVVGRGJrUXNOa1ZCUVRaRk8xRkJRemRGTEdsSFFVRnBSenRSUVVOcVJ5eE5RVUZOTEcxQ1FVRnRRaXhIUVVGSExGRkJRVlVzUTBGQlF6dFJRVU4yUXl4SlFVRkpPMWxCUTBZc1RVRkJUU3hQUVVGUExFZEJRVWNzVFVGQlRTeERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUTNoRUxFMUJRVTBzVVVGQlVTeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMR3RDUVVGclFpeERRVUZETEUxQlFVMHNSVUZCUlN4UFFVRlBMRVZCUVVVc1NVRkJTU3hGUVVGRkxFOUJRVThzUlVGQlJTeHBRa0ZCYVVJc1EwRkJReXhEUVVGRE8xbEJRMnhITEUxQlFVMHNZVUZCWVN4SFFVRkhMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zYlVKQlFXMUNMRWRCUVVjc1QwRkJUeXhIUVVGSExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0WlFVTnNSaXhOUVVGTkxGTkJRVk1zUjBGQlJ5eERRVUZETEVkQlFVY3NVVUZCVVN4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRE8xbEJRemxETEhkRFFVRjNRenRaUVVONFF5eFBRVUZQTEZOQlFWTXNRMEZCUXp0VFFVTnNRanRSUVVGRExFOUJRVThzUTBGQlF5eEZRVUZGTzFsQlExWXNUMEZCVHl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU5xUWl4UFFVRlBMRWRCUVVjc1EwRkJRenRUUVVOYU8wbEJRMGdzUTBGQlF6dEpRVVZOTEUxQlFVMHNRMEZCUXl4UlFVRlJMRU5CUTNCQ0xFMUJRU3RDTEVWQlFVVXNUVUZCYjBJc1JVRkJSU3hWUVVGdlFpeEZRVUZGTEZOQlFXbENPMUZCUlRsR0xFMUJRVTBzUTBGQlF5eEhRVUZoTEVWQlFVVXNRMEZCUXp0UlFVTjJRaXhOUVVGTkxFTkJRVU1zUjBGQllTeEZRVUZGTEVOQlFVTTdVVUZEZGtJc1RVRkJUU3hUUVVGVExFZEJRV0VzUlVGQlJTeERRVUZETzFGQlF5OUNMRWxCUVVrc1IwRkJSeXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU5hTEVsQlFVa3NSVUZCUlN4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVOWUxFbEJRVWtzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTllMRTFCUVUwc1VVRkJVU3hIUVVGSExFMUJRVTBzUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTjZSQ3hQUVVGUExFZEJRVWNzUjBGQlJ5eFJRVUZSTEVWQlFVVTdXVUZEY2tJc2RVWkJRWFZHTzFsQlEzWkdMRTFCUVUwc1MwRkJTeXhIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03WjBKQlEzUkVMRlZCUVZVc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNUVUZCVFN4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTjZReXhOUVVGTkxGVkJRVlVzUjBGQlJ5eERRVUZETEVkQlFVY3NTMEZCU3l4RFFVRkRPMWxCUXpkQ0xFbEJRVWtzVlVGQlZTeEpRVUZKTEZOQlFWTXNSVUZCUlR0blFrRkRNMElzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJRenRuUWtGRFdDeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRE8yZENRVU5ZTEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03WVVGRGRrSTdXVUZEUkN4SFFVRkhMRVZCUVVVc1EwRkJRenRaUVVOT0xFVkJRVVVzUlVGQlJTeERRVUZETzFsQlEwd3NTVUZCU1N4RlFVRkZMRXRCUVVzc1RVRkJUU3hEUVVGRExFMUJRVTBzUlVGQlJUdG5Ra0ZEZUVJc1JVRkJSU3hGUVVGRkxFTkJRVU03WjBKQlEwd3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03WVVGRFlqdFRRVU5HTzFGQlJVUXNUVUZCVFN4TlFVRk5MRWRCUVVjc1NVRkJTU3hWUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEYWtNc1RVRkJUU3hOUVVGTkxFZEJRVWNzU1VGQlNTeFZRVUZWTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRha01zVFVGQlRTeGhRVUZoTEVkQlFVY3NTVUZCU1N4WlFVRlpMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU03VVVGRmJFUXNUMEZCVHl4RlFVRkRMRU5CUVVNc1JVRkJSU3hOUVVGTkxFVkJRVVVzUTBGQlF5eEZRVUZGTEUxQlFVMHNSVUZCUlN4UlFVRlJMRVZCUVVVc1lVRkJZU3hGUVVGRExFTkJRVU03U1VGRGVrUXNRMEZCUXp0RFFVTktJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJSHRMYm05M2JrMWxkSEpwWTNOOUlHWnliMjBnSnk0dUwzUjVjR1ZrTFcxbGRISnBZM01uTzF4dWFXMXdiM0owSUh0RWFYTjBZVzVqWlVGblozSmxaMkYwYVc5dVRXVjBhRzlrTENCRWFYTjBZVzVqWlVGblozSmxaMkYwYVc5dVRXVjBhRzlrYzMwZ1puSnZiU0FuTGk5MGVYQmxjeWM3WEc1cGJYQnZjblFnZTJsdWMyVnlkRk50WVd4c1pYSXNJR2x6VG1sc2ZTQm1jbTl0SUNjdUwzVjBhV3h6Snp0Y2JseHVaWGh3YjNKMElIUjVjR1VnVTNCaGNuTmxUV0YwY21sNFVtVnpkV3gwSUQwZ2UxeHVJQ0JwT2lCSmJuUXpNa0Z5Y21GNUxGeHVJQ0JxT2lCSmJuUXpNa0Z5Y21GNUxGeHVJQ0JrYVhOMFlXNWpaVG9nUm14dllYUXpNa0Z5Y21GNUxGeHVJQ0JwWkhnL09pQnVkVzFpWlhKY2JuMDdYRzVjYm1WNGNHOXlkQ0IwZVhCbElFdHVibEpsYzNWc2RDQTlJSHRjYmlBZ2EyNXVSR2x6ZEdGdVkyVnpPaUJ1ZFcxaVpYSmJYVnRkTEZ4dUlDQnJibTVKYm1SbGVHVnpPaUJ1ZFcxaVpYSmJYVnRkWEc1OVhHNWxlSEJ2Y25RZ1kyeGhjM01nVTNCaGNuTmxUV0YwY21sNFUyVnlkbWxqWlNCN1hHNGdJQ0FnY0hKcGRtRjBaU0JmZDI5eWEyVnlRMjkxYm5RNklHNTFiV0psY2p0Y2JpQWdJQ0JqYjI1emRISjFZM1J2Y2lncElIdGNiaUFnSUNBZ0lIUm9hWE11WDNkdmNtdGxja052ZFc1MElEMGdUV0YwYUM1dFlYZ29ibUYyYVdkaGRHOXlMbWhoY21SM1lYSmxRMjl1WTNWeWNtVnVZM2tnTFNBeUxDQXhLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQndkV0pzYVdNZ1lYTjVibU1nWTJGc1kwMTFiSFJwUTI5c2RXMXVLSFpoYkhWbGN6b2dRWEp5WVhrOFlXNTVXMTArTENCbWJrNWhiV1Z6T2lCTGJtOTNiazFsZEhKcFkzTmJYU3hjYmlBZ0lDQWdJSFJvY21WemFHOXNaRG9nYm5WdFltVnlMQ0J2Y0hSek9pQjdXMTg2SUhOMGNtbHVaMTA2SUdGdWVYMWJYU0E5SUZ0N2ZWMHNJSGRsYVdkb2RITTZJRzUxYldKbGNsdGRJRDBnV3pGZExGeHVJQ0FnSUNBZ1lXZG5jbVZuWVhScGIyNU5aWFJvYjJRNklFUnBjM1JoYm1ObFFXZG5jbVZuWVhScGIyNU5aWFJvYjJRZ1BTQkVhWE4wWVc1alpVRm5aM0psWjJGMGFXOXVUV1YwYUc5a2N5NUZWVU5NU1VSRlFVNWNiaUFnSUNBcElIdGNiaUFnSUNBZ0lHTnZibk4wSUcxaGRGTnBlbVVnUFNCMllXeDFaWE5iTUYwdWJHVnVaM1JvSUNvZ0tIWmhiSFZsYzFzd1hTNXNaVzVuZEdnZ0xTQXhLU0F2SURJN1hHNGdJQ0FnSUNCamIyNXpkQ0JqYUhWdWExTnBlbVVnUFNCTllYUm9MbVpzYjI5eUtHMWhkRk5wZW1VZ0x5QjBhR2x6TGw5M2IzSnJaWEpEYjNWdWRDazdYRzVjYmlBZ0lDQWdJR052Ym5OMElHMXBibFJvY21WemFHOXNaQ0E5SUhaaGJIVmxjMXN3WFM1c1pXNW5kR2dnUGlBeU1GOHdNREFnUDF4dUlDQWdJQ0FnSUNCaGQyRnBkQ0IwYUdsekxtZGxkRTFwYm1sdFlXeFVhSEpsYzJodmJHUW9kbUZzZFdWekxDQm1iazVoYldWekxDQnZjSFJ6TENCM1pXbG5hSFJ6TENCaFoyZHlaV2RoZEdsdmJrMWxkR2h2WkNrZ09pQXdPMXh1SUNBZ0lDQWdhV1lnS0hSb2NtVnphRzlzWkNBOElHMXBibFJvY21WemFHOXNaQ2tnZTF4dUlDQWdJQ0FnSUNCamIyNXpiMnhsTG14dlp5aGdkWE5wYm1jZ2RHaHlaWE5vYjJ4a0lDUjdiV2x1VkdoeVpYTm9iMnhrZldBcE8xeHVJQ0FnSUNBZ0lDQjBhSEpsYzJodmJHUWdQU0J0YVc1VWFISmxjMmh2YkdRN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCdmNIUnpMbVp2Y2tWaFkyZ29LRjhzSUdrcElEMCtJRzl3ZEhOYmFWMWJKM1JvY21WemFHOXNaQ2RkSUQwZ2RHaHlaWE5vYjJ4a0tUdGNiaUFnSUNBZ0lHTnZibk4wSUhCeWIyMXBjMlZ6SUQxY2JpQWdJQ0FnSUNBZ2JtVjNJRUZ5Y21GNVBGQnliMjFwYzJVOFUzQmhjbk5sVFdGMGNtbDRVbVZ6ZFd4MFBqNG9kR2hwY3k1ZmQyOXlhMlZ5UTI5MWJuUXBPMXh1WEc0Z0lDQWdJQ0JqYjI1emRDQjNiM0pyWlhKeklEMGdibVYzSUVGeWNtRjVLSFJvYVhNdVgzZHZjbXRsY2tOdmRXNTBLVnh1SUNBZ0lDQWdJQ0F1Wm1sc2JDaHVkV3hzS1M1dFlYQW9LQ2tnUFQ0Z2JtVjNJRmR2Y210bGNpaHVaWGNnVlZKTUtDY3VMM053WVhKelpTMXRZWFJ5YVhndGQyOXlhMlZ5Snl3Z2FXMXdiM0owTG0xbGRHRXVkWEpzS1NrcE8xeHVJQ0FnSUNBZ1ptOXlJQ2hzWlhRZ2FXUjRJRDBnTURzZ2FXUjRJRHdnZEdocGN5NWZkMjl5YTJWeVEyOTFiblE3SUdsa2VDc3JLU0I3WEc0Z0lDQWdJQ0FnSUhCeWIyMXBjMlZ6VzJsa2VGMGdQU0J1WlhjZ1VISnZiV2x6WlNnb2NtVnpiMngyWlZkdmNtdGxjaXdnY21WcVpXTjBWMjl5YTJWeUtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYzNSaGNuUkpaSGdnUFNCcFpIZ2dLaUJqYUhWdWExTnBlbVU3WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjM1FnWlc1a1NXUjRJRDBnYVdSNElEMDlQU0IwYUdsekxsOTNiM0pyWlhKRGIzVnVkQ0F0SURFZ1B5QnRZWFJUYVhwbElEb2dLR2xrZUNBcklERXBJQ29nWTJoMWJtdFRhWHBsTzF4dUlDQWdJQ0FnSUNBZ0lHbG1JQ2hsYm1SSlpIZ2dQRDBnYzNSaGNuUkpaSGdwWEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWE52YkhabFYyOXlhMlZ5S0h0cE9pQnVaWGNnU1c1ME16SkJjbkpoZVNnd0tTd2dham9nYm1WM0lFbHVkRE15UVhKeVlYa29NQ2tzSUdScGMzUmhibU5sT2lCdVpYY2dSbXh2WVhRek1rRnljbUY1S0RBcExDQnBaSGg5S1R0Y2JpQWdJQ0FnSUNBZ0lDQjNiM0pyWlhKelcybGtlRjB1Y0c5emRFMWxjM05oWjJVb2UzWmhiSFZsY3l3Z2MzUmhjblJKWkhnc0lHVnVaRWxrZUN3Z2RHaHlaWE5vYjJ4a0xDQm1iazVoYldWekxDQnZjSFJ6TENCM1pXbG5hSFJ6TENCaFoyZHlaV2RoZEdsdmJrMWxkR2h2WkgwcE8xeHVJQ0FnSUNBZ0lDQWdJSGR2Y210bGNuTmJhV1I0WFM1dmJtMWxjM05oWjJVZ1BTQW9lMlJoZEdFNklIdGxjbkp2Y2l3Z2FTd2dhaXdnWkdsemRHRnVZMlY5ZlNrNklIWnZhV1FnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHVnljbTl5S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhkdmNtdGxjbk5iYVdSNFhTNTBaWEp0YVc1aGRHVW9LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVZxWldOMFYyOXlhMlZ5S0dWeWNtOXlLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhkdmNtdGxjbk5iYVdSNFhTNTBaWEp0YVc1aGRHVW9LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVZ6YjJ4MlpWZHZjbXRsY2loN2FTd2dhaXdnWkdsemRHRnVZMlVzSUdsa2VIMHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJSDA3WEc0Z0lDQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQmpiMjV6ZENCeVpYTjFiSFJ6SUQwZ1lYZGhhWFFnVUhKdmJXbHpaUzVoYkd3b2NISnZiV2x6WlhNcE8xeHVJQ0FnSUNBZ1kyOXVjM1FnWm5Wc2JGTnBlbVVnUFNCeVpYTjFiSFJ6TG5KbFpIVmpaU2dvWVdOakxDQjJZV3dwSUQwK0lHRmpZeUFySUhaaGJDNXBMbXhsYm1kMGFDd2dNQ2s3WEc0Z0lDQWdJQ0JqYjI1emRDQnBJRDBnYm1WM0lFbHVkRE15UVhKeVlYa29ablZzYkZOcGVtVXBPMXh1SUNBZ0lDQWdZMjl1YzNRZ2FpQTlJRzVsZHlCSmJuUXpNa0Z5Y21GNUtHWjFiR3hUYVhwbEtUdGNiaUFnSUNBZ0lHTnZibk4wSUdScGMzUmhibU5sSUQwZ2JtVjNJRVpzYjJGME16SkJjbkpoZVNobWRXeHNVMmw2WlNrN1hHNGdJQ0FnSUNCc1pYUWdiMlptYzJWMElEMGdNRHRjYmlBZ0lDQWdJQzh2SUhObGRIUnBibWNnZEdobElISmxjM1ZzZEhOY2JpQWdJQ0FnSUdadmNpQW9ZMjl1YzNRZ2NtVnpJRzltSUhKbGMzVnNkSE1wSUh0Y2JpQWdJQ0FnSUNBZ2FTNXpaWFFvY21Wekxta3NJRzltWm5ObGRDazdYRzRnSUNBZ0lDQWdJR291YzJWMEtISmxjeTVxTENCdlptWnpaWFFwTzF4dUlDQWdJQ0FnSUNCa2FYTjBZVzVqWlM1elpYUW9jbVZ6TG1ScGMzUmhibU5sTENCdlptWnpaWFFwTzF4dUlDQWdJQ0FnSUNCdlptWnpaWFFnS3owZ2NtVnpMbWt1YkdWdVozUm9PMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdjbVYwZFhKdUlIdHBMQ0JxTENCa2FYTjBZVzVqWlgwN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY0hWaWJHbGpJR0Z6ZVc1aklHTmhiR004VkQ0b2RtRnNkV1Z6T2lCQmNuSmhlVHhVUGl3Z1ptNU9ZVzFsT2lCTGJtOTNiazFsZEhKcFkzTXNJSFJvY21WemFHOXNaRG9nYm5WdFltVnlMQ0J2Y0hSek9pQjdXMTg2SUhOMGNtbHVaMTA2SUdGdWVYMGdQU0I3ZlNrZ2UxeHVJQ0FnSUNBZ0x5OXphWHBsSUc5bUlHWjFiR3dnYldGMGNtbDRYRzRnSUNBZ0lDQnlaWFIxY200Z1lYZGhhWFFnZEdocGN5NWpZV3hqVFhWc2RHbERiMngxYlc0b1czWmhiSFZsYzEwc0lGdG1iazVoYldWZExDQjBhSEpsYzJodmJHUXNJRnR2Y0hSelhTd2dXekZkS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0J3ZFdKc2FXTWdZWE41Ym1NZ1oyVjBTMDVPS0Z4dUlDQWdJQ0FnZG1Gc2RXVnpPaUJCY25KaGVUeGhibmsrTENCbWJrNWhiV1U2SUV0dWIzZHVUV1YwY21samN5d2diazVsYVdkb1ltOTFjbk02SUc1MWJXSmxjaUE5SURFMUxDQnZjSFJ6T2lCN1cxODZJSE4wY21sdVoxMDZJR0Z1ZVgwZ1BTQjdmVnh1SUNBZ0lDa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHRjNZV2wwSUhSb2FYTXViWFZzZEdsRGIyeDFiVzVMVGs0b1czWmhiSFZsYzEwc0lGdG1iazVoYldWZExDQnVUbVZwWjJoaWIzVnljeXdnVzI5d2RITmRMQ0JiTVYwcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUhCMVlteHBZeUJoYzNsdVl5Qm5aWFJVYUhKbGMyaHZiR1JMVGs0b1hHNGdJQ0FnSUNCMllXeDFaWE02SUVGeWNtRjVQR0Z1ZVQ0c0lHWnVUbUZ0WlRvZ1MyNXZkMjVOWlhSeWFXTnpMQ0IwYUhKbGMyaHZiR1E2SUc1MWJXSmxjaUE5SURBdU9Dd2diM0IwY3pvZ2UxdGZPaUJ6ZEhKcGJtZGRPaUJoYm5sOUlEMGdlMzFjYmlBZ0lDQXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQmhkMkZwZENCMGFHbHpMbTExYkhScFEyOXNkVzF1VkdoeVpYTm9iMnhrUzI1dUtGdDJZV3gxWlhOZExDQmJabTVPWVcxbFhTd2dkR2h5WlhOb2IyeGtMQ0JiYjNCMGMxMHNJRnN4WFNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY0hWaWJHbGpJR0Z6ZVc1aklHMTFiSFJwUTI5c2RXMXVWR2h5WlhOb2IyeGtTMjV1S0haaGJIVmxjem9nUVhKeVlYazhRWEp5WVhrOFlXNTVQajRzSUdadVRtRnRaWE02SUV0dWIzZHVUV1YwY21samMxdGRMQ0IwYUhKbGMyaHZiR1E2SUc1MWJXSmxjaUE5SURBdU9DeGNiaUFnSUNBZ0lHOXdkSE02SUh0Ylh6b2djM1J5YVc1blhUb2dZVzU1ZlZ0ZExDQjNaV2xuYUhSek9pQnVkVzFpWlhKYlhTeGNiaUFnSUNBZ0lHRm5aM0psWjJGMGFXOXVUV1YwYUc5a09pQkVhWE4wWVc1alpVRm5aM0psWjJGMGFXOXVUV1YwYUc5a0lEMGdSR2x6ZEdGdVkyVkJaMmR5WldkaGRHbHZiazFsZEdodlpITXVSVlZEVEVsRVJVRk9YRzRnSUNBZ0tTQjdYRzRnSUNBZ0lDQnBaaUFvZG1Gc2RXVnpMbXhsYm1kMGFDQWhQVDBnWm01T1lXMWxjeTVzWlc1bmRHZ2dmSHdnZG1Gc2RXVnpMbXhsYm1kMGFDQWhQVDBnYjNCMGN5NXNaVzVuZEdnZ2ZId2dkbUZzZFdWekxteGxibWQwYUNBaFBUMGdkMlZwWjJoMGN5NXNaVzVuZEdncFhHNGdJQ0FnSUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2lnbmRtRnNkV1Z6TENCa2FYTjBZVzVqWlNCbWRXNWpkR2x2Ym5Nc0lHOXdkR2x2Ym5NZ1lXNWtJSGRsYVdkb2RITWdZWEp5WVhseklITm9iM1ZzWkNCb1lYWmxJSFJvWlNCellXMWxJR3hsYm1kMGFDY3BPMXh1WEc0Z0lDQWdJQ0JwWmlBb2RtRnNkV1Z6TG5OdmJXVW9LSFlwSUQwK0lIWXViR1Z1WjNSb0lDRTlQU0IyWVd4MVpYTmJNRjB1YkdWdVozUm9LU2xjYmlBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLQ2RoYkd3Z2RtRnNkV1Z6SUdGeWNtRjVjeUJ6YUc5MWJHUWdhR0YyWlNCMGFHVWdjMkZ0WlNCc1pXNW5kR2duS1R0Y2JseHVJQ0FnSUNBZ1kyOXVjM1FnYldGMFUybDZaU0E5SUhaaGJIVmxjMXN3WFM1c1pXNW5kR2dnS2lBb2RtRnNkV1Z6V3pCZExteGxibWQwYUNBdElERXBJQzhnTWp0Y2JpQWdJQ0FnSUdOdmJuTjBJR05vZFc1clUybDZaU0E5SUUxaGRHZ3VabXh2YjNJb2JXRjBVMmw2WlNBdklIUm9hWE11WDNkdmNtdGxja052ZFc1MEtUdGNiaUFnSUNBZ0lHTnZibk4wSUhCeWIyMXBjMlZ6SUQxY2JpQWdJQ0FnSUNBZ2JtVjNJRUZ5Y21GNVBGQnliMjFwYzJVOFMyNXVVbVZ6ZFd4MFBqNG9kR2hwY3k1ZmQyOXlhMlZ5UTI5MWJuUXBPMXh1SUNBZ0lDQWdZMjl1YzNRZ2QyOXlhMlZ5Y3lBOUlHNWxkeUJCY25KaGVTaDBhR2x6TGw5M2IzSnJaWEpEYjNWdWRDbGNiaUFnSUNBZ0lDQWdMbVpwYkd3b2JuVnNiQ2t1YldGd0tDZ3BJRDArSUc1bGR5QlhiM0pyWlhJb2JtVjNJRlZTVENnbkxpOXJibTR0ZEdoeVpYTm9iMnhrTFhkdmNtdGxjaWNzSUdsdGNHOXlkQzV0WlhSaExuVnliQ2twS1R0Y2JpQWdJQ0FnSUdadmNpQW9iR1YwSUdsa2VDQTlJREE3SUdsa2VDQThJSFJvYVhNdVgzZHZjbXRsY2tOdmRXNTBPeUJwWkhnckt5a2dlMXh1SUNBZ0lDQWdJQ0J3Y205dGFYTmxjMXRwWkhoZElEMGdibVYzSUZCeWIyMXBjMlVvS0hKbGMyOXNkbVZYYjNKclpYSXNJSEpsYW1WamRGZHZjbXRsY2lrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSE4wWVhKMFNXUjRJRDBnYVdSNElDb2dZMmgxYm10VGFYcGxPMXh1SUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR1Z1WkVsa2VDQTlJR2xrZUNBOVBUMGdkR2hwY3k1ZmQyOXlhMlZ5UTI5MWJuUWdMU0F4SUQ4Z2JXRjBVMmw2WlNBNklDaHBaSGdnS3lBeEtTQXFJR05vZFc1clUybDZaVHRjYmlBZ0lDQWdJQ0FnSUNCcFppQW9aVzVrU1dSNElEdzlJSE4wWVhKMFNXUjRLVnh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVnpiMngyWlZkdmNtdGxjaWg3YTI1dVJHbHpkR0Z1WTJWek9pQnVaWGNnUVhKeVlYa29NQ2tzSUd0dWJrbHVaR1Y0WlhNNklHNWxkeUJCY25KaGVTZ3dLWDBwTzF4dUlDQWdJQ0FnSUNBZ0lIZHZjbXRsY25OYmFXUjRYUzV3YjNOMFRXVnpjMkZuWlNoN2RtRnNkV1Z6TENCemRHRnlkRWxrZUN3Z1pXNWtTV1I0TENCbWJrNWhiV1Z6TENCdmNIUnpMQ0IwYUhKbGMyaHZiR1FzSUhkbGFXZG9kSE1zSUdGblozSmxaMkYwYVc5dVRXVjBhRzlrZlNrN1hHNGdJQ0FnSUNBZ0lDQWdkMjl5YTJWeWMxdHBaSGhkTG05dWJXVnpjMkZuWlNBOUlDaDdaR0YwWVRvZ2UyVnljbTl5TENCcmJtNUVhWE4wWVc1alpYTXNJR3R1YmtsdVpHVjRaWE45ZlNrNklIWnZhV1FnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHVnljbTl5S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhkdmNtdGxjbk5iYVdSNFhTNTBaWEp0YVc1aGRHVW9LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVZxWldOMFYyOXlhMlZ5S0dWeWNtOXlLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhkdmNtdGxjbk5iYVdSNFhTNTBaWEp0YVc1aGRHVW9LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVZ6YjJ4MlpWZHZjbXRsY2loN2EyNXVSR2x6ZEdGdVkyVnpMQ0JyYm01SmJtUmxlR1Z6ZlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ2ZUdGNiaUFnSUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUdOdmJuTjBJSEpsYzNWc2RITWdQU0JoZDJGcGRDQlFjbTl0YVhObExtRnNiQ2h3Y205dGFYTmxjeWs3WEc0Z0lDQWdJQ0JqYjI1emRDQnJibTVUYVhwbGN5QTlJRzVsZHlCSmJuUXpNa0Z5Y21GNUtIWmhiSFZsYzFzd1hTNXNaVzVuZEdncE8xeHVJQ0FnSUNBZ1ptOXlJQ2hqYjI1emRDQnlaWE1nYjJZZ2NtVnpkV3gwY3lrZ2UxeHVJQ0FnSUNBZ0lDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJSFpoYkhWbGMxc3dYUzVzWlc1bmRHZzdJQ3NyYVNsY2JpQWdJQ0FnSUNBZ0lDQnJibTVUYVhwbGMxdHBYU0FyUFNCeVpYTXVhMjV1U1c1a1pYaGxjMXRwWFQ4dWJHVnVaM1JvSUQ4L0lEQTdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQmpiMjV6ZENCcmJtNVNaWE02SUV0dWJsSmxjM1ZzZENBOUlIdGNiaUFnSUNBZ0lDQWdhMjV1UkdsemRHRnVZMlZ6T2lCdVpYY2dRWEp5WVhrb2RtRnNkV1Z6V3pCZExteGxibWQwYUNrdVptbHNiQ2h1ZFd4c0tTNXRZWEFvS0Y4c0lHa3BJRDArSUc1bGR5QkJjbkpoZVR4dWRXMWlaWEkrS0d0dWJsTnBlbVZ6VzJsZEtTa3NYRzRnSUNBZ0lDQWdJR3R1YmtsdVpHVjRaWE02SUc1bGR5QkJjbkpoZVNoMllXeDFaWE5iTUYwdWJHVnVaM1JvS1M1bWFXeHNLRzUxYkd3cExtMWhjQ2dvWHl3Z2FTa2dQVDRnYm1WM0lFRnljbUY1UEc1MWJXSmxjajRvYTI1dVUybDZaWE5iYVYwcEtYMDdYRzRnSUNBZ0lDQm1iM0lnS0dOdmJuTjBJSEpsY3lCdlppQnlaWE4xYkhSektTQjdYRzRnSUNBZ0lDQWdJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnZG1Gc2RXVnpXekJkTG14bGJtZDBhRHNnS3l0cEtTQjdYRzRnSUNBZ0lDQWdJQ0FnWm05eUlDaHNaWFFnYWlBOUlEQTdJR29nUENCeVpYTXVhMjV1UkdsemRHRnVZMlZ6VzJsZFB5NXNaVzVuZEdnZ1B6OGdNRHNnS3l0cUtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCcmJtNVNaWE11YTI1dVJHbHpkR0Z1WTJWelcybGRXMnR1YmxOcGVtVnpXMmxkSUMwZ01WMGdQU0J5WlhNdWEyNXVSR2x6ZEdGdVkyVnpXMmxkVzJwZE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYTI1dVVtVnpMbXR1YmtsdVpHVjRaWE5iYVYxYmEyNXVVMmw2WlhOYmFWMGdMU0F4WFNBOUlISmxjeTVyYm01SmJtUmxlR1Z6VzJsZFcycGRPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2EyNXVVMmw2WlhOYmFWMGdMVDBnTVR0Y2JpQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJSEpsZEhWeWJpQnJibTVTWlhNN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY0hWaWJHbGpJR0Z6ZVc1aklHMTFiSFJwUTI5c2RXMXVTMDVPS0haaGJIVmxjem9nUVhKeVlYazhRWEp5WVhrOFlXNTVQajRzSUdadVRtRnRaWE02SUV0dWIzZHVUV1YwY21samMxdGRMQ0J1VG1WcFoyaGliM1Z5Y3pvZ2JuVnRZbVZ5SUQwZ01UVXNYRzRnSUNBZ0lDQnZjSFJ6T2lCN1cxODZJSE4wY21sdVoxMDZJR0Z1ZVgxYlhTd2dkMlZwWjJoMGN6b2diblZ0WW1WeVcxMHNYRzRnSUNBZ0lDQmhaMmR5WldkaGRHbHZiazFsZEdodlpEb2dSR2x6ZEdGdVkyVkJaMmR5WldkaGRHbHZiazFsZEdodlpDQTlJRVJwYzNSaGJtTmxRV2RuY21WbllYUnBiMjVOWlhSb2IyUnpMa1ZWUTB4SlJFVkJUbHh1SUNBZ0lDa2dlMXh1SUNBZ0lDQWdhV1lnS0haaGJIVmxjeTVzWlc1bmRHZ2dJVDA5SUdadVRtRnRaWE11YkdWdVozUm9JSHg4SUhaaGJIVmxjeTVzWlc1bmRHZ2dJVDA5SUc5d2RITXViR1Z1WjNSb0lIeDhJSFpoYkhWbGN5NXNaVzVuZEdnZ0lUMDlJSGRsYVdkb2RITXViR1Z1WjNSb0tWeHVJQ0FnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dSWEp5YjNJb0ozWmhiSFZsY3l3Z1pHbHpkR0Z1WTJVZ1puVnVZM1JwYjI1ekxDQnZjSFJwYjI1eklHRnVaQ0IzWldsbmFIUnpJR0Z5Y21GNWN5QnphRzkxYkdRZ2FHRjJaU0IwYUdVZ2MyRnRaU0JzWlc1bmRHZ25LVHRjYmx4dUlDQWdJQ0FnYVdZZ0tIWmhiSFZsY3k1emIyMWxLQ2gyS1NBOVBpQjJMbXhsYm1kMGFDQWhQVDBnZG1Gc2RXVnpXekJkTG14bGJtZDBhQ2twWEc0Z0lDQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWduWVd4c0lIWmhiSFZsY3lCaGNuSmhlWE1nYzJodmRXeGtJR2hoZG1VZ2RHaGxJSE5oYldVZ2JHVnVaM1JvSnlrN1hHNWNiaUFnSUNBZ0lHTnZibk4wSUcxaGRGTnBlbVVnUFNCMllXeDFaWE5iTUYwdWJHVnVaM1JvSUNvZ0tIWmhiSFZsYzFzd1hTNXNaVzVuZEdnZ0xTQXhLU0F2SURJN1hHNGdJQ0FnSUNCamIyNXpkQ0JqYUhWdWExTnBlbVVnUFNCTllYUm9MbVpzYjI5eUtHMWhkRk5wZW1VZ0x5QjBhR2x6TGw5M2IzSnJaWEpEYjNWdWRDazdYRzRnSUNBZ0lDQmpiMjV6ZENCd2NtOXRhWE5sY3lBOVhHNGdJQ0FnSUNBZ0lHNWxkeUJCY25KaGVUeFFjbTl0YVhObFBFdHVibEpsYzNWc2RENCtLSFJvYVhNdVgzZHZjbXRsY2tOdmRXNTBLVHRjYmlBZ0lDQWdJR052Ym5OMElIZHZjbXRsY25NZ1BTQnVaWGNnUVhKeVlYa29kR2hwY3k1ZmQyOXlhMlZ5UTI5MWJuUXBYRzRnSUNBZ0lDQWdJQzVtYVd4c0tHNTFiR3dwTG0xaGNDZ29LU0E5UGlCdVpYY2dWMjl5YTJWeUtHNWxkeUJWVWt3b0p5NHZhMjV1TFhkdmNtdGxjaWNzSUdsdGNHOXlkQzV0WlhSaExuVnliQ2twS1R0Y2JpQWdJQ0FnSUdadmNpQW9iR1YwSUdsa2VDQTlJREE3SUdsa2VDQThJSFJvYVhNdVgzZHZjbXRsY2tOdmRXNTBPeUJwWkhnckt5a2dlMXh1SUNBZ0lDQWdJQ0J3Y205dGFYTmxjMXRwWkhoZElEMGdibVYzSUZCeWIyMXBjMlVvS0hKbGMyOXNkbVZYYjNKclpYSXNJSEpsYW1WamRGZHZjbXRsY2lrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSE4wWVhKMFNXUjRJRDBnYVdSNElDb2dZMmgxYm10VGFYcGxPMXh1SUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR1Z1WkVsa2VDQTlJR2xrZUNBOVBUMGdkR2hwY3k1ZmQyOXlhMlZ5UTI5MWJuUWdMU0F4SUQ4Z2JXRjBVMmw2WlNBNklDaHBaSGdnS3lBeEtTQXFJR05vZFc1clUybDZaVHRjYmlBZ0lDQWdJQ0FnSUNCcFppQW9aVzVrU1dSNElEdzlJSE4wWVhKMFNXUjRLVnh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVnpiMngyWlZkdmNtdGxjaWg3YTI1dVJHbHpkR0Z1WTJWek9pQnVaWGNnUVhKeVlYa29NQ2tzSUd0dWJrbHVaR1Y0WlhNNklHNWxkeUJCY25KaGVTZ3dLWDBwTzF4dUlDQWdJQ0FnSUNBZ0lIZHZjbXRsY25OYmFXUjRYUzV3YjNOMFRXVnpjMkZuWlNoN2RtRnNkV1Z6TENCemRHRnlkRWxrZUN3Z1pXNWtTV1I0TENCbWJrNWhiV1Z6TENCdmNIUnpMQ0J1VG1WcFoyaGliM1Z5Y3l3Z2QyVnBaMmgwY3l3Z1lXZG5jbVZuWVhScGIyNU5aWFJvYjJSOUtUdGNiaUFnSUNBZ0lDQWdJQ0IzYjNKclpYSnpXMmxrZUYwdWIyNXRaWE56WVdkbElEMGdLSHRrWVhSaE9pQjdaWEp5YjNJc0lHdHVia1JwYzNSaGJtTmxjeXdnYTI1dVNXNWtaWGhsYzMxOUtUb2dkbTlwWkNBOVBpQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9aWEp5YjNJcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2QyOXlhMlZ5YzF0cFpIaGRMblJsY20xcGJtRjBaU2dwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0J5WldwbFkzUlhiM0pyWlhJb1pYSnliM0lwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2QyOXlhMlZ5YzF0cFpIaGRMblJsY20xcGJtRjBaU2dwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhOdmJIWmxWMjl5YTJWeUtIdHJibTVFYVhOMFlXNWpaWE1zSUd0dWJrbHVaR1Y0WlhOOUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQjlPMXh1SUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ1kyOXVjM1FnY21WemRXeDBjeUE5SUdGM1lXbDBJRkJ5YjIxcGMyVXVZV3hzS0hCeWIyMXBjMlZ6S1R0Y2JpQWdJQ0FnSUdOdmJuTjBJR3R1YmxKbGN6b2dTMjV1VW1WemRXeDBJRDBnZTF4dUlDQWdJQ0FnSUNCcmJtNUVhWE4wWVc1alpYTTZJRzVsZHlCQmNuSmhlU2gyWVd4MVpYTmJNRjB1YkdWdVozUm9LUzVtYVd4c0tHNTFiR3dwTG0xaGNDZ29LU0E5UGlCdVpYY2dRWEp5WVhrOGJuVnRZbVZ5UGlodVRtVnBaMmhpYjNWeWN5a3VabWxzYkNnNU9UazVPU2twTEZ4dUlDQWdJQ0FnSUNCcmJtNUpibVJsZUdWek9pQnVaWGNnUVhKeVlYa29kbUZzZFdWeld6QmRMbXhsYm1kMGFDa3VabWxzYkNodWRXeHNLUzV0WVhBb0tDa2dQVDRnYm1WM0lFRnljbUY1UEc1MWJXSmxjajRvYms1bGFXZG9ZbTkxY25NcExtWnBiR3dvTFRFcEtYMDdYRzRnSUNBZ0lDQm1iM0lnS0dOdmJuTjBJSEpsY3lCdlppQnlaWE4xYkhSektTQjdYRzRnSUNBZ0lDQWdJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnZG1Gc2RXVnpXekJkTG14bGJtZDBhRHNnS3l0cEtTQjdYRzRnSUNBZ0lDQWdJQ0FnWm05eUlDaHNaWFFnYWlBOUlEQTdJR29nUENCeVpYTXVhMjV1UkdsemRHRnVZMlZ6VzJsZFB5NXNaVzVuZEdnZ1B6OGdNRHNnS3l0cUtWeHVJQ0FnSUNBZ0lDQWdJQ0FnYVc1elpYSjBVMjFoYkd4bGNpaHJibTVTWlhNdWEyNXVSR2x6ZEdGdVkyVnpXMmxkTENCcmJtNVNaWE11YTI1dVNXNWtaWGhsYzF0cFhTd2djbVZ6TG10dWJrUnBjM1JoYm1ObGMxdHBYVnRxWFN3Z2NtVnpMbXR1YmtsdVpHVjRaWE5iYVYxYmFsMHBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0J5WlhSMWNtNGdhMjV1VW1Wek8xeHVJQ0FnSUgxY2JseHVJQ0FnSUhCMVlteHBZeUJoYzNsdVl5Qm5aWFJUWVcxd2JHVkVhWE4wWVc1alpYTW9kbUZzZFdWek9pQkJjbkpoZVR4aGJubGJYVDRzWEc0Z0lDQWdJQ0JtYms1aGJXVnpPaUJMYm05M2JrMWxkSEpwWTNOYlhTd2diM0IwY3pvZ2UxdGZPaUJ6ZEhKcGJtZGRPaUJoYm5sOVcxMGdQU0JiWFN3Z2QyVnBaMmgwY3pvZ2JuVnRZbVZ5VzEwc1hHNGdJQ0FnSUNCaFoyZHlaV2RoZEdsdmJrMWxkR2h2WkRvZ1JHbHpkR0Z1WTJWQloyZHlaV2RoZEdsdmJrMWxkR2h2WkNBOUlFUnBjM1JoYm1ObFFXZG5jbVZuWVhScGIyNU5aWFJvYjJSekxrVlZRMHhKUkVWQlRpazZJRkJ5YjIxcGMyVThSbXh2WVhRek1rRnljbUY1UGlCN1hHNGdJQ0FnSUNCamIyNXpkQ0IwYUhKbGMyaHZiR1JYYjNKclpYSnpJRDBnYm1WM0lFRnljbUY1S0hSb2FYTXVYM2R2Y210bGNrTnZkVzUwS1M1bWFXeHNLRzUxYkd3cFhHNGdJQ0FnSUNBZ0lDNXRZWEFvS0NrZ1BUNGdibVYzSUZkdmNtdGxjaWh1WlhjZ1ZWSk1LQ2N1TDNOd1lYSnpaUzF0WVhSeWFYZ3RkR2h5WlhOb2IyeGtMWGR2Y210bGNpY3NJR2x0Y0c5eWRDNXRaWFJoTG5WeWJDa3BLVHRjYmx4dUlDQWdJQ0FnZEhKNUlIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2JXRjBVMmw2WlNBOUlIWmhiSFZsYzFzd1hTNXNaVzVuZEdnZ0tpQW9kbUZzZFdWeld6QmRMbXhsYm1kMGFDQXRJREVwSUM4Z01qdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ1kyaDFibXRUYVhwbElEMGdUV0YwYUM1bWJHOXZjaWh0WVhSVGFYcGxJQzhnZEdocGN5NWZkMjl5YTJWeVEyOTFiblFwTzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J0WVhoVFlXMXdiR1ZUYVhwbElEMGdNVjh3TURCZk1EQXdPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnpZVzF3YkdWVGFYTmxJRDBnVFdGMGFDNXRZWGdvVFdGMGFDNXRhVzRvYldGMFUybDZaU0F2SURFd01EQXNJRzFoZUZOaGJYQnNaVk5wZW1VcExDQk5ZWFJvTG0xcGJpaHRZWFJUYVhwbExDQnRZWGhUWVcxd2JHVlRhWHBsS1NrN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUhSbGMzUlRaWFJUYVhwbFVHVnlWMjl5YTJWeUlEMGdUV0YwYUM1bWJHOXZjaWh6WVcxd2JHVlRhWE5sSUM4Z2RHaHBjeTVmZDI5eWEyVnlRMjkxYm5RcE8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCMFVISnZiV2x6WlhNZ1BTQnVaWGNnUVhKeVlYazhVSEp2YldselpUeDdaR2x6ZEdGdVkyVTZJRVpzYjJGME16SkJjbkpoZVgwK1BpaDBhR2x6TGw5M2IzSnJaWEpEYjNWdWRDazdYRzVjYmlBZ0lDQWdJQ0FnWm05eUlDaHNaWFFnYVdSNElEMGdNRHNnYVdSNElEd2dkR2hwY3k1ZmQyOXlhMlZ5UTI5MWJuUTdJR2xrZUNzcktTQjdYRzRnSUNBZ0lDQWdJQ0FnZEZCeWIyMXBjMlZ6VzJsa2VGMGdQU0J1WlhjZ1VISnZiV2x6WlNnb2NtVnpiMngyWlZkdmNtdGxjaXdnY21WcVpXTjBWMjl5YTJWeUtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCemRHRnlkRWxrZUNBOUlHbGtlQ0FxSUdOb2RXNXJVMmw2WlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHVnVaRWxrZUNBOUlHbGtlQ0E5UFQwZ2RHaHBjeTVmZDI5eWEyVnlRMjkxYm5RZ0xTQXhJRDhnYldGMFUybDZaU0E2SUNocFpIZ2dLeUF4S1NBcUlHTm9kVzVyVTJsNlpUdGNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2NtVnphRzlzWkZkdmNtdGxjbk5iYVdSNFhTNXdiM04wVFdWemMyRm5aU2g3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSFpoYkhWbGN6b2dkbUZzZFdWekxDQnpkR0Z5ZEVsa2VDd2daVzVrU1dSNExDQnpZVzF3YkdWTVpXNW5kR2c2SUhSbGMzUlRaWFJUYVhwbFVHVnlWMjl5YTJWeUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCbWJrNWhiV1Z6TENCdmNIUnpMQ0IzWldsbmFIUnpMQ0JoWjJkeVpXZGhkR2x2YmsxbGRHaHZaRnh1SUNBZ0lDQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFISmxjMmh2YkdSWGIzSnJaWEp6VzJsa2VGMHViMjV0WlhOellXZGxJRDBnS0h0a1lYUmhPaUI3WlhKeWIzSXNJR1JwYzNSaGJtTmxmWDBwT2lCMmIybGtJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdoeVpYTm9iMnhrVjI5eWEyVnljMXRwWkhoZExuUmxjbTFwYm1GMFpTZ3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWlhKeWIzSXBJSEpsYW1WamRGZHZjbXRsY2lobGNuSnZjaWs3SUdWc2MyVmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWE52YkhabFYyOXlhMlZ5S0h0a2FYTjBZVzVqWlgwcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlR0Y2JpQWdJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lHTnZibk4wSUhKbGMzVnNkSE1nUFNCaGQyRnBkQ0JRY205dGFYTmxMbUZzYkNoMFVISnZiV2x6WlhNcE8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCbWRXeHNVMmw2WlNBOUlISmxjM1ZzZEhNdWNtVmtkV05sS0NoaFkyTXNJSFpoYkNrZ1BUNGdZV05qSUNzZ2RtRnNMbVJwYzNSaGJtTmxMbXhsYm1kMGFDd2dNQ2s3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR1JwYzNSaGJtTmxJRDBnYm1WM0lFWnNiMkYwTXpKQmNuSmhlU2htZFd4c1UybDZaU2s3WEc0Z0lDQWdJQ0FnSUd4bGRDQnZabVp6WlhRZ1BTQXdPMXh1SUNBZ0lDQWdJQ0JtYjNJZ0tHTnZibk4wSUhKbGN5QnZaaUJ5WlhOMWJIUnpLU0I3WEc0Z0lDQWdJQ0FnSUNBZ1pHbHpkR0Z1WTJVdWMyVjBLSEpsY3k1a2FYTjBZVzVqWlN3Z2IyWm1jMlYwS1R0Y2JpQWdJQ0FnSUNBZ0lDQnZabVp6WlhRZ0t6MGdjbVZ6TG1ScGMzUmhibU5sTG14bGJtZDBhRHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCa2FYTjBZVzVqWlM1emIzSjBLQ2s3WEc1Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUdScGMzUmhibU5sTzF4dUlDQWdJQ0FnZlNCallYUmphQ0FvWlNrZ2UxeHVJQ0FnSUNBZ0lDQjBhSEpsYzJodmJHUlhiM0pyWlhKelB5NW1iM0pGWVdOb0tDaDNLU0E5UGlCM1B5NTBaWEp0YVc1aGRHVW9LU2s3WEc0Z0lDQWdJQ0FnSUdOdmJuTnZiR1V1WlhKeWIzSW9aU2s3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ1WlhjZ1JteHZZWFF6TWtGeWNtRjVLREVwTG1acGJHd29NQzQxS1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc1Y2JpQWdJQ0J3Y21sMllYUmxJR0Z6ZVc1aklHZGxkRTFwYm1sdFlXeFVhSEpsYzJodmJHUW9kbUZzZFdWek9pQkJjbkpoZVR4aGJubGJYVDRzWEc0Z0lDQWdJQ0JtYms1aGJXVnpPaUJMYm05M2JrMWxkSEpwWTNOYlhTd2diM0IwY3pvZ2UxdGZPaUJ6ZEhKcGJtZGRPaUJoYm5sOVcxMGdQU0JiWFN3Z2QyVnBaMmgwY3pvZ2JuVnRZbVZ5VzEwc1hHNGdJQ0FnSUNCaFoyZHlaV2RoZEdsdmJrMWxkR2h2WkRvZ1JHbHpkR0Z1WTJWQloyZHlaV2RoZEdsdmJrMWxkR2h2WkNBOUlFUnBjM1JoYm1ObFFXZG5jbVZuWVhScGIyNU5aWFJvYjJSekxrVlZRMHhKUkVWQlRpa2dlMXh1SUNBZ0lDQWdMeTlYWlNCdVpXVmtJSFJ2SUdOaGJHTjFiR0YwWlNCMGFHVWdiV2x1YVcxaGJDQjBhSEpsYzJodmJHUWdabWx5YzNRc1hHNGdJQ0FnSUNBdkwybHVJRzl5WkdWeUlIUnZJR2RsZENCdFlYUnlhWGdnYzNWamFDQjBhR0YwSUdsMElHUnZaWE1nYm05MElHVjRZMlZsWkNCMGFHVWdiV0Y0YVcxMWJTQnphWHBsSUc5bUlERkhRbHh1SUNBZ0lDQWdMeTkzWlNCb1lYWmxJRE1nY21WMGRYSnVJR0Z5Y21GNWN5d2daV0ZqYUNBMElHSnBkR1Z6SUhCbGNpQmxiR1Z0Wlc1MExDQnpieUJwWmlCMGFHVWdiV0Y0YVcxMWJTQnphWHBsSUc5bUlIUm9aU0J0WVhSeWFYZ2dhWE1nTVVkQ0xGeHVJQ0FnSUNBZ1kyOXVjM1FnYldGNFUzQmhjbk5sVFdGMGNtbDRVMmw2WlNBOUlEY3dYekF3TUY4d01EQTdYRzRnSUNBZ0lDQjBjbmtnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J0WVhSVGFYcGxJRDBnZG1Gc2RXVnpMbXhsYm1kMGFDQXFJQ2gyWVd4MVpYTXViR1Z1WjNSb0lDMGdNU2tnTHlBeU8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCa2FYTjBZVzVqWlNBOUlHRjNZV2wwSUhSb2FYTXVaMlYwVTJGdGNHeGxSR2x6ZEdGdVkyVnpLSFpoYkhWbGN5d2dabTVPWVcxbGN5d2diM0IwY3l3Z2QyVnBaMmgwY3l3Z1lXZG5jbVZuWVhScGIyNU5aWFJvYjJRcE8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCbWNtRmpkR2x2YmtsdVpHVjRJRDBnVFdGMGFDNW1iRzl2Y2lodFlYaFRjR0Z5YzJWTllYUnlhWGhUYVhwbElDOGdiV0YwVTJsNlpTQXFJR1JwYzNSaGJtTmxMbXhsYm1kMGFDazdYRzRnSUNBZ0lDQWdJR052Ym5OMElIUm9jbVZ6YUc5c1pDQTlJREVnTFNCa2FYTjBZVzVqWlZ0bWNtRmpkR2x2YmtsdVpHVjRYVHRjYmlBZ0lDQWdJQ0FnTHk4Z2RHaHlaWE5vYjJ4a0lEMGdUV0YwYUM1dFlYZ29kR2h5WlhOb2IyeGtMQ0F3TGpNcE8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHlaWE5vYjJ4a08xeHVJQ0FnSUNBZ2ZTQmpZWFJqYUNBb1pTa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emIyeGxMbVZ5Y205eUtHVXBPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdNQzQxTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmx4dUlDQWdJSEIxWW14cFl5QnpkR0YwYVdNZ1kyRnNZMU41Ym1NOFZENG9YRzRnSUNBZ0lDQjJZV3gxWlhNNklFRnljbUY1UEZRK0lId2dRWEp5WVhsTWFXdGxQRlErTENCbWJrNWhiV1U2SUV0dWIzZHVUV1YwY21samN5d2daR2x6ZEdGdVkyVkdiam9nUm5WdVkzUnBiMjRzSUhSb2NtVnphRzlzWkRvZ2JuVnRZbVZ5WEc0Z0lDQWdLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQnBPaUJ1ZFcxaVpYSmJYU0E5SUZ0ZE8xeHVJQ0FnSUNBZ1kyOXVjM1FnYWpvZ2JuVnRZbVZ5VzEwZ1BTQmJYVHRjYmlBZ0lDQWdJR052Ym5OMElHUnBjM1JoYm1ObGN6b2diblZ0WW1WeVcxMGdQU0JiWFR0Y2JpQWdJQ0FnSUd4bGRDQmpiblFnUFNBd08xeHVJQ0FnSUNBZ2JHVjBJRzFwSUQwZ01EdGNiaUFnSUNBZ0lHeGxkQ0J0YWlBOUlEQTdYRzRnSUNBZ0lDQmpiMjV6ZENCbWRXeHNVMmw2WlNBOUlIWmhiSFZsY3k1c1pXNW5kR2dnS2lBb2RtRnNkV1Z6TG14bGJtZDBhQ0F0SURFcElDOGdNanRjYmlBZ0lDQWdJSGRvYVd4bElDaGpiblFnUENCbWRXeHNVMmw2WlNrZ2UxeHVJQ0FnSUNBZ0lDQXZMMk52Ym5OMElIWmhiSFZsSUQwZ2MyVnhNVXhwYzNSYmJXbGRJQ1ltSUhObGNURk1hWE4wVzIxcVhTQS9JR2hoYlcxcGJtY29jMlZ4TVV4cGMzUmJiV2xkTENCelpYRXhUR2x6ZEZ0dGFsMHBJRG9nTUR0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnZG1Gc2RXVWdQU0FoYVhOT2FXd29kbUZzZFdWelcyMXBYU2tnSmlZZ0lXbHpUbWxzS0haaGJIVmxjMXR0YWwwcElEOWNiaUFnSUNBZ0lDQWdJQ0JrYVhOMFlXNWpaVVp1S0haaGJIVmxjMXR0YVYwc0lIWmhiSFZsYzF0dGFsMHBJRG9nTVR0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYzJsdGFXeGhjbWwwZVNBOUlERWdMU0IyWVd4MVpUdGNiaUFnSUNBZ0lDQWdhV1lnS0hOcGJXbHNZWEpwZEhrZ1BqMGdkR2h5WlhOb2IyeGtLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2FTNXdkWE5vS0cxcEtUdGNiaUFnSUNBZ0lDQWdJQ0JxTG5CMWMyZ29iV29wTzF4dUlDQWdJQ0FnSUNBZ0lHUnBjM1JoYm1ObGN5NXdkWE5vS0haaGJIVmxLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCamJuUXJLenRjYmlBZ0lDQWdJQ0FnYldvckt6dGNiaUFnSUNBZ0lDQWdhV1lnS0cxcUlEMDlQU0IyWVd4MVpYTXViR1Z1WjNSb0tTQjdYRzRnSUNBZ0lDQWdJQ0FnYldrckt6dGNiaUFnSUNBZ0lDQWdJQ0J0YWlBOUlHMXBJQ3NnTVR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQmpiMjV6ZENCcFFYSnlZWGtnUFNCdVpYY2dTVzUwTXpKQmNuSmhlU2hwS1R0Y2JpQWdJQ0FnSUdOdmJuTjBJR3BCY25KaGVTQTlJRzVsZHlCSmJuUXpNa0Z5Y21GNUtHb3BPMXh1SUNBZ0lDQWdZMjl1YzNRZ1pHbHpkR0Z1WTJWQmNuSmhlU0E5SUc1bGR5QkdiRzloZERNeVFYSnlZWGtvWkdsemRHRnVZMlZ6S1R0Y2JseHVJQ0FnSUNBZ2NtVjBkWEp1SUh0cE9pQnBRWEp5WVhrc0lHbzZJR3BCY25KaGVTd2daR2x6ZEdGdVkyVTZJR1JwYzNSaGJtTmxRWEp5WVhsOU8xeHVJQ0FnSUgxY2JuMWNiaUpkZlE9PSIsImV4cG9ydCBhc3luYyBmdW5jdGlvbiBiaW9MYXlvdXQoY2x1c3Rlciwgc3BhcnNlT2JqZWN0LCB0aHJlc2hvbGQpIHtcbiAgICBjb25zdCBuID0gY2x1c3Rlci5sZW5ndGg7XG4gICAgY29uc3QgaXMgPSBbXTtcbiAgICBjb25zdCBqcyA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgIGZvciAobGV0IGogPSBpICsgMTsgaiA8IG47IGorKykge1xuICAgICAgICAgICAgY29uc3QgYSA9IGNsdXN0ZXJbaV07XG4gICAgICAgICAgICBjb25zdCBiID0gY2x1c3RlcltqXTtcbiAgICAgICAgICAgIGlmIChzcGFyc2VPYmplY3RbYV0/LltiXSA+PSB0aHJlc2hvbGQpIHtcbiAgICAgICAgICAgICAgICBpcy5wdXNoKGkpO1xuICAgICAgICAgICAgICAgIGpzLnB1c2goaik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGdldExheW91dEVtYmVkZGluZ3MoaXMsIGpzLCBjbHVzdGVyKTtcbn1cbmZ1bmN0aW9uIGdldExheW91dEVtYmVkZGluZ3MoaXMsIGpzLCBjbHVzdGVyKSB7XG4gICAgY29uc3QgZW1iZWRYID0gbmV3IEZsb2F0MzJBcnJheShjbHVzdGVyLmxlbmd0aCkuZmlsbCgwKS5tYXAoKCkgPT4gTWF0aC5yYW5kb20oKSAqIDEwKTtcbiAgICBjb25zdCBlbWJlZFkgPSBuZXcgRmxvYXQzMkFycmF5KGNsdXN0ZXIubGVuZ3RoKS5maWxsKDApLm1hcCgoKSA9PiBNYXRoLnJhbmRvbSgpICogMTApO1xuICAgIGNvbnN0IGl0ZXJhdGlvbnMgPSAxMDA7XG4gICAgY29uc3QgeFZlbG9jaXRpZXMgPSBuZXcgRmxvYXQzMkFycmF5KGNsdXN0ZXIubGVuZ3RoKS5maWxsKDApO1xuICAgIGNvbnN0IHlWZWxvY2l0aWVzID0gbmV3IEZsb2F0MzJBcnJheShjbHVzdGVyLmxlbmd0aCkuZmlsbCgwKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZXJhdGlvbnM7IGkrKykge1xuICAgICAgICBjb25zdCB0ZW1wZXJhdHVyZSA9ICgxIC0gaSAvIGl0ZXJhdGlvbnMpO1xuICAgICAgICB4VmVsb2NpdGllcy5maWxsKDApO1xuICAgICAgICB5VmVsb2NpdGllcy5maWxsKDApO1xuICAgICAgICBmb3IgKGxldCBpZHggPSAwOyBpZHggPCBpcy5sZW5ndGg7IGlkeCsrKSB7XG4gICAgICAgICAgICBjb25zdCBhID0gaXNbaWR4XTtcbiAgICAgICAgICAgIGNvbnN0IGIgPSBqc1tpZHhdO1xuICAgICAgICAgICAgY29uc3QgZHggPSBlbWJlZFhbYV0gLSBlbWJlZFhbYl07XG4gICAgICAgICAgICBjb25zdCBkeSA9IGVtYmVkWVthXSAtIGVtYmVkWVtiXTtcbiAgICAgICAgICAgIC8vICAgY29uc3QgZGlzdGFuY2UgPSBNYXRoLnNxcnQoZHggKiBkeCArIGR5ICogZHkpO1xuICAgICAgICAgICAgLy8gICBjb25zdCBmYWN0b3IgPSAoZGlzdGFuY2UgLSAxKSAvIGRpc3RhbmNlO1xuICAgICAgICAgICAgLy8gICBjb25zdCBvZmZzZXRYID0gZHggKiBmYWN0b3I7XG4gICAgICAgICAgICAvLyAgIGNvbnN0IG9mZnNldFkgPSBkeSAqIGZhY3RvcjtcbiAgICAgICAgICAgIGlmIChNYXRoLmFicyhkeCkgPj0gMSkge1xuICAgICAgICAgICAgICAgIHhWZWxvY2l0aWVzW2FdIC09IHRlbXBlcmF0dXJlICogZHg7XG4gICAgICAgICAgICAgICAgeFZlbG9jaXRpZXNbYl0gKz0gdGVtcGVyYXR1cmUgKiBkeDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChNYXRoLmFicyhkeSkgPj0gMSkge1xuICAgICAgICAgICAgICAgIHlWZWxvY2l0aWVzW2FdIC09IHRlbXBlcmF0dXJlICogZHk7XG4gICAgICAgICAgICAgICAgeVZlbG9jaXRpZXNbYl0gKz0gdGVtcGVyYXR1cmUgKiBkeTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vICAgZW1iZWRZW2FdICs9IG9mZnNldFkgKiB0ZW1wZXJhdHVyZTtcbiAgICAgICAgICAgIC8vICAgZW1iZWRZW2JdIC09IG9mZnNldFkgKiB0ZW1wZXJhdHVyZTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBpZHggPSAwOyBpZHggPCBjbHVzdGVyLmxlbmd0aDsgaWR4KyspIHtcbiAgICAgICAgICAgIGNvbnN0IHZlY1NpemUgPSBNYXRoLnNxcnQoeFZlbG9jaXRpZXNbaWR4XSAqIHhWZWxvY2l0aWVzW2lkeF0gKyB5VmVsb2NpdGllc1tpZHhdICogeVZlbG9jaXRpZXNbaWR4XSk7XG4gICAgICAgICAgICBpZiAodmVjU2l6ZSA+IDApIHtcbiAgICAgICAgICAgICAgICBlbWJlZFhbaWR4XSArPSB4VmVsb2NpdGllc1tpZHhdIC8gdmVjU2l6ZSAqIHRlbXBlcmF0dXJlO1xuICAgICAgICAgICAgICAgIGVtYmVkWVtpZHhdICs9IHlWZWxvY2l0aWVzW2lkeF0gLyB2ZWNTaXplICogdGVtcGVyYXR1cmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gbm9ybWFsaXplXG4gICAgbGV0IG1pblggPSBlbWJlZFhbMF07XG4gICAgbGV0IG1pblkgPSBlbWJlZFlbMF07XG4gICAgbGV0IG1heFggPSBlbWJlZFhbMF07XG4gICAgbGV0IG1heFkgPSBlbWJlZFlbMF07XG4gICAgZm9yIChsZXQgaWR4ID0gMTsgaWR4IDwgY2x1c3Rlci5sZW5ndGg7IGlkeCsrKSB7XG4gICAgICAgIG1pblggPSBNYXRoLm1pbihtaW5YLCBlbWJlZFhbaWR4XSk7XG4gICAgICAgIG1pblkgPSBNYXRoLm1pbihtaW5ZLCBlbWJlZFlbaWR4XSk7XG4gICAgICAgIG1heFggPSBNYXRoLm1heChtYXhYLCBlbWJlZFhbaWR4XSk7XG4gICAgICAgIG1heFkgPSBNYXRoLm1heChtYXhZLCBlbWJlZFlbaWR4XSk7XG4gICAgfVxuICAgIGxldCByYW5nZVggPSBtYXhYIC0gbWluWDtcbiAgICBsZXQgcmFuZ2VZID0gbWF4WSAtIG1pblk7XG4gICAgaWYgKHJhbmdlWCA9PT0gMClcbiAgICAgICAgcmFuZ2VYID0gbWF4WDtcbiAgICBmb3IgKGxldCBpZHggPSAwOyBpZHggPCBjbHVzdGVyLmxlbmd0aDsgaWR4KyspXG4gICAgICAgIGVtYmVkWFtpZHhdID0gKGVtYmVkWFtpZHhdIC0gbWluWCkgLyByYW5nZVggLyAyICsgMC41O1xuICAgIGlmIChyYW5nZVkgPT09IDApXG4gICAgICAgIHJhbmdlWSA9IG1heFk7XG4gICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgY2x1c3Rlci5sZW5ndGg7IGlkeCsrKVxuICAgICAgICBlbWJlZFlbaWR4XSA9IChlbWJlZFlbaWR4XSAtIG1pblkpIC8gcmFuZ2VZIC8gMiArIDAuNTtcbiAgICByZXR1cm4geyBlbWJlZFgsIGVtYmVkWSB9O1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pWW1sdkxXeGhlVzkxZEM1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJbUpwYnkxc1lYbHZkWFF1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlJVRXNUVUZCVFN4RFFVRkRMRXRCUVVzc1ZVRkJWU3hUUVVGVExFTkJRVU1zVDBGQmFVSXNSVUZCUlN4WlFVRm5ReXhGUVVGRkxGTkJRV2xDTzBsQlEzQkhMRTFCUVUwc1EwRkJReXhIUVVGSExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTTdTVUZEZWtJc1RVRkJUU3hGUVVGRkxFZEJRV0VzUlVGQlJTeERRVUZETzBsQlEzaENMRTFCUVUwc1JVRkJSU3hIUVVGaExFVkJRVVVzUTBGQlF6dEpRVU40UWl4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8xRkJRekZDTEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8xbEJRemxDTEUxQlFVMHNRMEZCUXl4SFFVRkhMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU55UWl4TlFVRk5MRU5CUVVNc1IwRkJSeXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdXVUZEY2tJc1NVRkJTU3haUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hUUVVGVExFVkJRVVU3WjBKQlEzSkRMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUTFnc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0aFFVTmFPMU5CUTBZN1MwRkRSanRKUVVORUxFOUJRVThzYlVKQlFXMUNMRU5CUVVNc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeFBRVUZQTEVOQlFVTXNRMEZCUXp0QlFVTTVReXhEUVVGRE8wRkJSVVFzVTBGQlV5eHRRa0ZCYlVJc1EwRkJReXhGUVVGWkxFVkJRVVVzUlVGQldTeEZRVUZGTEU5QlFXbENPMGxCUTNoRkxFMUJRVTBzVFVGQlRTeEhRVUZITEVsQlFVa3NXVUZCV1N4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRVU1zUTBGQlF6dEpRVU4wUml4TlFVRk5MRTFCUVUwc1IwRkJSeXhKUVVGSkxGbEJRVmtzUTBGQlF5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRMRU5CUVVNN1NVRkRkRVlzVFVGQlRTeFZRVUZWTEVkQlFVY3NSMEZCUnl4RFFVRkRPMGxCUTNaQ0xFMUJRVTBzVjBGQlZ5eEhRVUZITEVsQlFVa3NXVUZCV1N4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkROMFFzVFVGQlRTeFhRVUZYTEVkQlFVY3NTVUZCU1N4WlFVRlpMRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVNM1JDeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzVlVGQlZTeEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZPMUZCUTI1RExFMUJRVTBzVjBGQlZ5eEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhWUVVGVkxFTkJRVU1zUTBGQlF6dFJRVU42UXl4WFFVRlhMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEzQkNMRmRCUVZjc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEY0VJc1MwRkJTeXhKUVVGSkxFZEJRVWNzUjBGQlJ5eERRVUZETEVWQlFVVXNSMEZCUnl4SFFVRkhMRVZCUVVVc1EwRkJReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVWQlFVVTdXVUZEZUVNc1RVRkJUU3hEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUTJ4Q0xFMUJRVTBzUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRaUVVOc1FpeE5RVUZOTEVWQlFVVXNSMEZCUnl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUTJwRExFMUJRVTBzUlVGQlJTeEhRVUZITEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdXVUZEYWtNc2JVUkJRVzFFTzFsQlEyNUVMRGhEUVVFNFF6dFpRVU01UXl4cFEwRkJhVU03V1VGRGFrTXNhVU5CUVdsRE8xbEJRMnBETEVsQlFVa3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVTdaMEpCUTNKQ0xGZEJRVmNzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4WFFVRlhMRWRCUVVjc1JVRkJSU3hEUVVGRE8yZENRVU51UXl4WFFVRlhMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzVjBGQlZ5eEhRVUZITEVWQlFVVXNRMEZCUXp0aFFVTndRenRaUVVORUxFbEJRVWtzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVU3WjBKQlEzSkNMRmRCUVZjc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeFhRVUZYTEVkQlFVY3NSVUZCUlN4RFFVRkRPMmRDUVVOdVF5eFhRVUZYTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1YwRkJWeXhIUVVGSExFVkJRVVVzUTBGQlF6dGhRVU53UXp0WlFVTklMSGREUVVGM1F6dFpRVU40UXl4M1EwRkJkME03VTBGRGRrTTdVVUZEUkN4TFFVRkxMRWxCUVVrc1IwRkJSeXhIUVVGSExFTkJRVU1zUlVGQlJTeEhRVUZITEVkQlFVY3NUMEZCVHl4RFFVRkRMRTFCUVUwc1JVRkJSU3hIUVVGSExFVkJRVVVzUlVGQlJUdFpRVU0zUXl4TlFVRk5MRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhYUVVGWExFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NWMEZCVnl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExGZEJRVmNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUTNKSExFbEJRVWtzVDBGQlR5eEhRVUZITEVOQlFVTXNSVUZCUlR0blFrRkRaaXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NWMEZCVnl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFOUJRVThzUjBGQlJ5eFhRVUZYTEVOQlFVTTdaMEpCUTNoRUxFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4WFFVRlhMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzVDBGQlR5eEhRVUZITEZkQlFWY3NRMEZCUXp0aFFVTjZSRHRUUVVOR08wdEJRMFk3U1VGRlJDeFpRVUZaTzBsQlExb3NTVUZCU1N4SlFVRkpMRWRCUVVjc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlEzSkNMRWxCUVVrc1NVRkJTU3hIUVVGSExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTnlRaXhKUVVGSkxFbEJRVWtzUjBGQlJ5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRja0lzU1VGQlNTeEpRVUZKTEVkQlFVY3NUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRM0pDTEV0QlFVc3NTVUZCU1N4SFFVRkhMRWRCUVVjc1EwRkJReXhGUVVGRkxFZEJRVWNzUjBGQlJ5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RlFVRkZMRWRCUVVjc1JVRkJSU3hGUVVGRk8xRkJRemRETEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUlVGQlJTeE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOdVF5eEpRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFVkJRVVVzVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRia01zU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hGUVVGRkxFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTI1RExFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1JVRkJSU3hOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXp0TFFVTndRenRKUVVORUxFbEJRVWtzVFVGQlRTeEhRVUZITEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNN1NVRkRla0lzU1VGQlNTeE5RVUZOTEVkQlFVY3NTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJRenRKUVVONlFpeEpRVUZKTEUxQlFVMHNTMEZCU3l4RFFVRkRPMUZCUTJRc1RVRkJUU3hIUVVGSExFbEJRVWtzUTBGQlF6dEpRVU5vUWl4TFFVRkxMRWxCUVVrc1IwRkJSeXhIUVVGSExFTkJRVU1zUlVGQlJTeEhRVUZITEVkQlFVY3NUMEZCVHl4RFFVRkRMRTFCUVUwc1JVRkJSU3hIUVVGSExFVkJRVVU3VVVGRE0wTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFMUJRVTBzUjBGQlJ5eERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRPMGxCUTNoRUxFbEJRVWtzVFVGQlRTeExRVUZMTEVOQlFVTTdVVUZEWkN4TlFVRk5MRWRCUVVjc1NVRkJTU3hEUVVGRE8wbEJRMmhDTEV0QlFVc3NTVUZCU1N4SFFVRkhMRWRCUVVjc1EwRkJReXhGUVVGRkxFZEJRVWNzUjBGQlJ5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RlFVRkZMRWRCUVVjc1JVRkJSVHRSUVVNelF5eE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1RVRkJUU3hIUVVGSExFTkJRVU1zUjBGQlJ5eEhRVUZITEVOQlFVTTdTVUZGZUVRc1QwRkJUeXhGUVVGRExFMUJRVTBzUlVGQlJTeE5RVUZOTEVWQlFVTXNRMEZCUXp0QlFVTXhRaXhEUVVGRElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIdFRjR0Z5YzJWTllYUnlhWGhQWW1wbFkzUjlJR1p5YjIwZ0p5NHZkSGx3WlhNbk8xeHVYRzVsZUhCdmNuUWdZWE41Ym1NZ1puVnVZM1JwYjI0Z1ltbHZUR0Y1YjNWMEtHTnNkWE4wWlhJNklHNTFiV0psY2x0ZExDQnpjR0Z5YzJWUFltcGxZM1E2SUZOd1lYSnpaVTFoZEhKcGVFOWlhbVZqZEN3Z2RHaHlaWE5vYjJ4a09pQnVkVzFpWlhJcElIdGNiaUFnWTI5dWMzUWdiaUE5SUdOc2RYTjBaWEl1YkdWdVozUm9PMXh1SUNCamIyNXpkQ0JwY3pvZ2JuVnRZbVZ5VzEwZ1BTQmJYVHRjYmlBZ1kyOXVjM1FnYW5NNklHNTFiV0psY2x0ZElEMGdXMTA3WEc0Z0lHWnZjaUFvYkdWMElHa2dQU0F3T3lCcElEd2dianNnYVNzcktTQjdYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FpQTlJR2tnS3lBeE95QnFJRHdnYmpzZ2Fpc3JLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQmhJRDBnWTJ4MWMzUmxjbHRwWFR0Y2JpQWdJQ0FnSUdOdmJuTjBJR0lnUFNCamJIVnpkR1Z5VzJwZE8xeHVJQ0FnSUNBZ2FXWWdLSE53WVhKelpVOWlhbVZqZEZ0aFhUOHVXMkpkSUQ0OUlIUm9jbVZ6YUc5c1pDa2dlMXh1SUNBZ0lDQWdJQ0JwY3k1d2RYTm9LR2twTzF4dUlDQWdJQ0FnSUNCcWN5NXdkWE5vS0dvcE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdmVnh1SUNCeVpYUjFjbTRnWjJWMFRHRjViM1YwUlcxaVpXUmthVzVuY3locGN5d2dhbk1zSUdOc2RYTjBaWElwTzF4dWZWeHVYRzVtZFc1amRHbHZiaUJuWlhSTVlYbHZkWFJGYldKbFpHUnBibWR6S0dsek9pQnVkVzFpWlhKYlhTd2dhbk02SUc1MWJXSmxjbHRkTENCamJIVnpkR1Z5T2lCdWRXMWlaWEpiWFNrZ2UxeHVJQ0JqYjI1emRDQmxiV0psWkZnZ1BTQnVaWGNnUm14dllYUXpNa0Z5Y21GNUtHTnNkWE4wWlhJdWJHVnVaM1JvS1M1bWFXeHNLREFwTG0xaGNDZ29LU0E5UGlCTllYUm9MbkpoYm1SdmJTZ3BJQ29nTVRBcE8xeHVJQ0JqYjI1emRDQmxiV0psWkZrZ1BTQnVaWGNnUm14dllYUXpNa0Z5Y21GNUtHTnNkWE4wWlhJdWJHVnVaM1JvS1M1bWFXeHNLREFwTG0xaGNDZ29LU0E5UGlCTllYUm9MbkpoYm1SdmJTZ3BJQ29nTVRBcE8xeHVJQ0JqYjI1emRDQnBkR1Z5WVhScGIyNXpJRDBnTVRBd08xeHVJQ0JqYjI1emRDQjRWbVZzYjJOcGRHbGxjeUE5SUc1bGR5QkdiRzloZERNeVFYSnlZWGtvWTJ4MWMzUmxjaTVzWlc1bmRHZ3BMbVpwYkd3b01DazdYRzRnSUdOdmJuTjBJSGxXWld4dlkybDBhV1Z6SUQwZ2JtVjNJRVpzYjJGME16SkJjbkpoZVNoamJIVnpkR1Z5TG14bGJtZDBhQ2t1Wm1sc2JDZ3dLVHRjYmlBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQnBkR1Z5WVhScGIyNXpPeUJwS3lzcElIdGNiaUFnSUNCamIyNXpkQ0IwWlcxd1pYSmhkSFZ5WlNBOUlDZ3hJQzBnYVNBdklHbDBaWEpoZEdsdmJuTXBPMXh1SUNBZ0lIaFdaV3h2WTJsMGFXVnpMbVpwYkd3b01DazdYRzRnSUNBZ2VWWmxiRzlqYVhScFpYTXVabWxzYkNnd0tUdGNiaUFnSUNCbWIzSWdLR3hsZENCcFpIZ2dQU0F3T3lCcFpIZ2dQQ0JwY3k1c1pXNW5kR2c3SUdsa2VDc3JLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQmhJRDBnYVhOYmFXUjRYVHRjYmlBZ0lDQWdJR052Ym5OMElHSWdQU0JxYzF0cFpIaGRPMXh1SUNBZ0lDQWdZMjl1YzNRZ1pIZ2dQU0JsYldKbFpGaGJZVjBnTFNCbGJXSmxaRmhiWWwwN1hHNGdJQ0FnSUNCamIyNXpkQ0JrZVNBOUlHVnRZbVZrV1Z0aFhTQXRJR1Z0WW1Wa1dWdGlYVHRjYmlBZ0lDQWdJQzh2SUNBZ1kyOXVjM1FnWkdsemRHRnVZMlVnUFNCTllYUm9Mbk54Y25Rb1pIZ2dLaUJrZUNBcklHUjVJQ29nWkhrcE8xeHVJQ0FnSUNBZ0x5OGdJQ0JqYjI1emRDQm1ZV04wYjNJZ1BTQW9aR2x6ZEdGdVkyVWdMU0F4S1NBdklHUnBjM1JoYm1ObE8xeHVJQ0FnSUNBZ0x5OGdJQ0JqYjI1emRDQnZabVp6WlhSWUlEMGdaSGdnS2lCbVlXTjBiM0k3WEc0Z0lDQWdJQ0F2THlBZ0lHTnZibk4wSUc5bVpuTmxkRmtnUFNCa2VTQXFJR1poWTNSdmNqdGNiaUFnSUNBZ0lHbG1JQ2hOWVhSb0xtRmljeWhrZUNrZ1BqMGdNU2tnZTF4dUlDQWdJQ0FnSUNCNFZtVnNiMk5wZEdsbGMxdGhYU0F0UFNCMFpXMXdaWEpoZEhWeVpTQXFJR1I0TzF4dUlDQWdJQ0FnSUNCNFZtVnNiMk5wZEdsbGMxdGlYU0FyUFNCMFpXMXdaWEpoZEhWeVpTQXFJR1I0TzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnYVdZZ0tFMWhkR2d1WVdKektHUjVLU0ErUFNBeEtTQjdYRzRnSUNBZ0lDQWdJSGxXWld4dlkybDBhV1Z6VzJGZElDMDlJSFJsYlhCbGNtRjBkWEpsSUNvZ1pIazdYRzRnSUNBZ0lDQWdJSGxXWld4dlkybDBhV1Z6VzJKZElDczlJSFJsYlhCbGNtRjBkWEpsSUNvZ1pIazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0x5OGdJQ0JsYldKbFpGbGJZVjBnS3owZ2IyWm1jMlYwV1NBcUlIUmxiWEJsY21GMGRYSmxPMXh1SUNBZ0lDOHZJQ0FnWlcxaVpXUlpXMkpkSUMwOUlHOW1abk5sZEZrZ0tpQjBaVzF3WlhKaGRIVnlaVHRjYmlBZ0lDQjlYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FXUjRJRDBnTURzZ2FXUjRJRHdnWTJ4MWMzUmxjaTVzWlc1bmRHZzdJR2xrZUNzcktTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCMlpXTlRhWHBsSUQwZ1RXRjBhQzV6Y1hKMEtIaFdaV3h2WTJsMGFXVnpXMmxrZUYwZ0tpQjRWbVZzYjJOcGRHbGxjMXRwWkhoZElDc2dlVlpsYkc5amFYUnBaWE5iYVdSNFhTQXFJSGxXWld4dlkybDBhV1Z6VzJsa2VGMHBPMXh1SUNBZ0lDQWdhV1lnS0habFkxTnBlbVVnUGlBd0tTQjdYRzRnSUNBZ0lDQWdJR1Z0WW1Wa1dGdHBaSGhkSUNzOUlIaFdaV3h2WTJsMGFXVnpXMmxrZUYwZ0x5QjJaV05UYVhwbElDb2dkR1Z0Y0dWeVlYUjFjbVU3WEc0Z0lDQWdJQ0FnSUdWdFltVmtXVnRwWkhoZElDczlJSGxXWld4dlkybDBhV1Z6VzJsa2VGMGdMeUIyWldOVGFYcGxJQ29nZEdWdGNHVnlZWFIxY21VN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ0x5OGdibTl5YldGc2FYcGxYRzRnSUd4bGRDQnRhVzVZSUQwZ1pXMWlaV1JZV3pCZE8xeHVJQ0JzWlhRZ2JXbHVXU0E5SUdWdFltVmtXVnN3WFR0Y2JpQWdiR1YwSUcxaGVGZ2dQU0JsYldKbFpGaGJNRjA3WEc0Z0lHeGxkQ0J0WVhoWklEMGdaVzFpWldSWld6QmRPMXh1SUNCbWIzSWdLR3hsZENCcFpIZ2dQU0F4T3lCcFpIZ2dQQ0JqYkhWemRHVnlMbXhsYm1kMGFEc2dhV1I0S3lzcElIdGNiaUFnSUNCdGFXNVlJRDBnVFdGMGFDNXRhVzRvYldsdVdDd2daVzFpWldSWVcybGtlRjBwTzF4dUlDQWdJRzFwYmxrZ1BTQk5ZWFJvTG0xcGJpaHRhVzVaTENCbGJXSmxaRmxiYVdSNFhTazdYRzRnSUNBZ2JXRjRXQ0E5SUUxaGRHZ3ViV0Y0S0cxaGVGZ3NJR1Z0WW1Wa1dGdHBaSGhkS1R0Y2JpQWdJQ0J0WVhoWklEMGdUV0YwYUM1dFlYZ29iV0Y0V1N3Z1pXMWlaV1JaVzJsa2VGMHBPMXh1SUNCOVhHNGdJR3hsZENCeVlXNW5aVmdnUFNCdFlYaFlJQzBnYldsdVdEdGNiaUFnYkdWMElISmhibWRsV1NBOUlHMWhlRmtnTFNCdGFXNVpPMXh1SUNCcFppQW9jbUZ1WjJWWUlEMDlQU0F3S1Z4dUlDQWdJSEpoYm1kbFdDQTlJRzFoZUZnN1hHNGdJR1p2Y2lBb2JHVjBJR2xrZUNBOUlEQTdJR2xrZUNBOElHTnNkWE4wWlhJdWJHVnVaM1JvT3lCcFpIZ3JLeWxjYmlBZ0lDQmxiV0psWkZoYmFXUjRYU0E5SUNobGJXSmxaRmhiYVdSNFhTQXRJRzFwYmxncElDOGdjbUZ1WjJWWUlDOGdNaUFySURBdU5UdGNiaUFnYVdZZ0tISmhibWRsV1NBOVBUMGdNQ2xjYmlBZ0lDQnlZVzVuWlZrZ1BTQnRZWGhaTzF4dUlDQm1iM0lnS0d4bGRDQnBaSGdnUFNBd095QnBaSGdnUENCamJIVnpkR1Z5TG14bGJtZDBhRHNnYVdSNEt5c3BYRzRnSUNBZ1pXMWlaV1JaVzJsa2VGMGdQU0FvWlcxaVpXUlpXMmxrZUYwZ0xTQnRhVzVaS1NBdklISmhibWRsV1NBdklESWdLeUF3TGpVN1hHNWNiaUFnY21WMGRYSnVJSHRsYldKbFpGZ3NJR1Z0WW1Wa1dYMDdYRzU5WEc0aVhYMD0iLCJpbXBvcnQgeyBiaW9MYXlvdXQgfSBmcm9tICcuL2Jpby1sYXlvdXQnO1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRNQ0xPcHRpb25zID0ge1xuICAgIGV4cGFuZEZhY3RvcjogMixcbiAgICBtYXhJdGVyYXRpb25zOiA1LFxuICAgIGluZmxhdGVGYWN0b3I6IDIsXG4gICAgbXVsdEZhY3RvcjogMSxcbn07XG5leHBvcnQgY2xhc3MgTUNMU3BhcnNlUmVkdWNlciB7XG4gICAgY29uc3RydWN0b3Iob3B0cyA9IHt9KSB7XG4gICAgICAgIHRoaXMuX29wdGlvbnMgPSB7IC4uLmRlZmF1bHRNQ0xPcHRpb25zLCAuLi5vcHRzIH07XG4gICAgfVxuICAgIGFzeW5jIHRyYW5zZm9ybShzcGFyc2VNYXRyaXgsIG5Sb3dzKSB7XG4gICAgICAgIC8vIHRlc3RXb3JrZXJNdWx0aXBseSgpO1xuICAgICAgICAvLyByZXR1cm4gbmV3IEludDMyQXJyYXkoblJvd3MpO1xuICAgICAgICBsZXQgc3BhcnNlT2JqZWN0ID0gdGhpcy50b09iamVjdEZvcm0oc3BhcnNlTWF0cml4KTtcbiAgICAgICAgaWYgKHRoaXMuX29wdGlvbnMubWF4SXRlcmF0aW9ucyA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuYWRkTG9vcHMoc3BhcnNlT2JqZWN0LCBuUm93cyk7XG4gICAgICAgICAgICB0aGlzLm5vcm1hbGl6ZShzcGFyc2VPYmplY3QpO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9vcHRpb25zLm1heEl0ZXJhdGlvbnM7IGkrKykge1xuICAgICAgICAgICAgICAgIHNwYXJzZU9iamVjdCA9IHRoaXMuZXhwYW5kKHNwYXJzZU9iamVjdCwgblJvd3MpO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5mbGF0ZShzcGFyc2VPYmplY3QpO1xuICAgICAgICAgICAgICAgIHRoaXMubm9ybWFsaXplKHNwYXJzZU9iamVjdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyBjbHVzdGVycywgaXMsIGpzIH0gPSB0aGlzLmFzc2lnbkNsdXN0ZXJzKHNwYXJzZU9iamVjdCwgblJvd3MpO1xuICAgICAgICB0aGlzLmNvcnJlY3RDbHVzdGVycyhjbHVzdGVycyk7XG4gICAgICAgIGNvbnN0IGVtYmVkZGluZ3MgPSBhd2FpdCB0aGlzLmxheW91dChjbHVzdGVycywgc3BhcnNlT2JqZWN0LCBuUm93cyk7XG4gICAgICAgIHJldHVybiB7IGNsdXN0ZXJzLCBlbWJlZFg6IGVtYmVkZGluZ3MuZW1iZWRYLCBlbWJlZFk6IGVtYmVkZGluZ3MuZW1iZWRZLCBpcywganMgfTtcbiAgICB9XG4gICAgY29ycmVjdENsdXN0ZXJzKGNsdXN0ZXJzKSB7XG4gICAgICAgIGNvbnN0IGNsdXN0ZXJTaXplTWFwID0ge307XG4gICAgICAgIGZvciAoY29uc3QgY2x1c3RlciBvZiBjbHVzdGVycykge1xuICAgICAgICAgICAgaWYgKCFjbHVzdGVyU2l6ZU1hcFtjbHVzdGVyXSlcbiAgICAgICAgICAgICAgICBjbHVzdGVyU2l6ZU1hcFtjbHVzdGVyXSA9IDA7XG4gICAgICAgICAgICBjbHVzdGVyU2l6ZU1hcFtjbHVzdGVyXSsrO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNvcnRlZEluZGV4ZXMgPSBPYmplY3Qua2V5cyhjbHVzdGVyU2l6ZU1hcCkubWFwKE51bWJlcikuc29ydCgoYSwgYikgPT4gY2x1c3RlclNpemVNYXBbYV0gLSBjbHVzdGVyU2l6ZU1hcFtiXSk7XG4gICAgICAgIGNvbnN0IGNsdXN0ZXJNYXAgPSB7fTtcbiAgICAgICAgc29ydGVkSW5kZXhlcy5mb3JFYWNoKChjbHVzdGVySWR4LCBpKSA9PiBjbHVzdGVyTWFwW2NsdXN0ZXJJZHhdID0gaSArIDEpO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNsdXN0ZXJzLmxlbmd0aDsgaSsrKVxuICAgICAgICAgICAgY2x1c3RlcnNbaV0gPSBjbHVzdGVyTWFwW2NsdXN0ZXJzW2ldXTtcbiAgICAgICAgLy8gbGV0IGN1ckNsdXN0ZXIgPSAxO1xuICAgICAgICAvLyBmb3IgKGxldCBpID0gMDsgaSA8IGNsdXN0ZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIC8vICAgaWYgKCFjbHVzdGVyTWFwW2NsdXN0ZXJzW2ldXSkge1xuICAgICAgICAvLyAgICAgY2x1c3Rlck1hcFtjbHVzdGVyc1tpXV0gPSBjdXJDbHVzdGVyO1xuICAgICAgICAvLyAgICAgY2x1c3RlcnNbaV0gPSBjdXJDbHVzdGVyO1xuICAgICAgICAvLyAgICAgY3VyQ2x1c3RlcisrO1xuICAgICAgICAvLyAgIH0gZWxzZSB7XG4gICAgICAgIC8vICAgICBjbHVzdGVyc1tpXSA9IGNsdXN0ZXJNYXBbY2x1c3RlcnNbaV1dO1xuICAgICAgICAvLyAgIH1cbiAgICAgICAgLy8gfVxuICAgIH1cbiAgICBhc3luYyBsYXlvdXQoY2x1c3RlcnMsIHNwYXJzZU1hdHJpeCwgblJvd3MpIHtcbiAgICAgICAgY29uc3QgZW1iZWRYID0gbmV3IEZsb2F0MzJBcnJheShuUm93cykuZmlsbCgwKTtcbiAgICAgICAgY29uc3QgZW1iZWRZID0gbmV3IEZsb2F0MzJBcnJheShuUm93cykuZmlsbCgwKTtcbiAgICAgICAgY29uc3QgY2x1c3Rlck1hcCA9IHt9O1xuICAgICAgICBjbHVzdGVycy5mb3JFYWNoKChjbHVzdGVyLCBpKSA9PiB7XG4gICAgICAgICAgICBpZiAoIWNsdXN0ZXJNYXBbY2x1c3Rlcl0pXG4gICAgICAgICAgICAgICAgY2x1c3Rlck1hcFtjbHVzdGVyXSA9IFtdO1xuICAgICAgICAgICAgY2x1c3Rlck1hcFtjbHVzdGVyXS5wdXNoKGkpO1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gY29uc3QgbkNsdXN0ZXJzID0gT2JqZWN0LmtleXMoY2x1c3Rlck1hcCkubGVuZ3RoO1xuICAgICAgICAvLyBjb25zdCBwZXJSb3cgPSBNYXRoLmZsb29yKE1hdGguc3FydChuQ2x1c3RlcnMpKTtcbiAgICAgICAgbGV0IGNsdXN0ZXJOdW0gPSAwO1xuICAgICAgICBjb25zdCBzb3J0ZWRDbHVzdGVyTmFtZXMgPSBPYmplY3Qua2V5cyhjbHVzdGVyTWFwKTtcbiAgICAgICAgc29ydGVkQ2x1c3Rlck5hbWVzLnNvcnQoKGEsIGIpID0+IGNsdXN0ZXJNYXBbYl0ubGVuZ3RoIC0gY2x1c3Rlck1hcFthXS5sZW5ndGgpO1xuICAgICAgICBsZXQgcGVyUm93ID0gNjtcbiAgICAgICAgbGV0IHlPZmZzZXQgPSAwO1xuICAgICAgICBjb25zdCBsYXlvdXRTaXplID0gNTtcbiAgICAgICAgZm9yIChjb25zdCBjbHVzdGVyTmFtZSBvZiBzb3J0ZWRDbHVzdGVyTmFtZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGNsdXN0ZXIgPSBjbHVzdGVyTWFwW2NsdXN0ZXJOYW1lXTtcbiAgICAgICAgICAgIGNvbnN0IGVtYmVkZGluZ3MgPSBhd2FpdCBiaW9MYXlvdXQoY2x1c3Rlciwgc3BhcnNlTWF0cml4LCAwLjAwMSk7XG4gICAgICAgICAgICBpZiAoY2x1c3Rlck51bSA9PT0gTWF0aC5jZWlsKHBlclJvdyAvIDEuNSkpIHtcbiAgICAgICAgICAgICAgICBjbHVzdGVyTnVtID0gMDtcbiAgICAgICAgICAgICAgICB5T2Zmc2V0ICs9IGxheW91dFNpemUgLyBwZXJSb3c7XG4gICAgICAgICAgICAgICAgcGVyUm93ID0gTWF0aC5jZWlsKHBlclJvdyAqIDEuNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBvZmZzZXRYID0gKChjbHVzdGVyTnVtICUgcGVyUm93KSAqIGxheW91dFNpemUgLyBwZXJSb3cpICogMS41O1xuICAgICAgICAgICAgLy8gY29uc3Qgb2Zmc2V0WSA9IE1hdGguZmxvb3IoY2x1c3Rlck51bSAvIHBlclJvdykgKiAyO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlbWJlZGRpbmdzLmVtYmVkWC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGVtYmVkWFtjbHVzdGVyW2ldXSA9IGVtYmVkZGluZ3MuZW1iZWRYW2ldICogbGF5b3V0U2l6ZSAvIHBlclJvdyArIG9mZnNldFg7XG4gICAgICAgICAgICAgICAgZW1iZWRZW2NsdXN0ZXJbaV1dID0gZW1iZWRkaW5ncy5lbWJlZFlbaV0gKiBsYXlvdXRTaXplIC8gcGVyUm93ICsgeU9mZnNldDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNsdXN0ZXJOdW0rKztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBlbWJlZFgsIGVtYmVkWSB9O1xuICAgIH1cbiAgICBtZXJnZUNsdXN0ZXJzKGNsdXN0ZXJzLCBpLCBqKSB7XG4gICAgICAgIGNvbnN0IGlDbHVzdGVyID0gY2x1c3RlcnNbaV07XG4gICAgICAgIGNvbnN0IGpDbHVzdGVyID0gY2x1c3RlcnNbal07XG4gICAgICAgIGZvciAobGV0IGsgPSAwOyBrIDwgY2x1c3RlcnMubGVuZ3RoOyBrKyspIHtcbiAgICAgICAgICAgIGlmIChjbHVzdGVyc1trXSA9PT0gakNsdXN0ZXIpXG4gICAgICAgICAgICAgICAgY2x1c3RlcnNba10gPSBpQ2x1c3RlcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhc3NpZ25DbHVzdGVycyhzcGFyc2VNYXRyaXgsIG5Sb3dzKSB7XG4gICAgICAgIGxldCBjbHVzdGVyTnVtID0gMDtcbiAgICAgICAgY29uc3QgaXMgPSBbXTtcbiAgICAgICAgY29uc3QganMgPSBbXTtcbiAgICAgICAgY29uc3Qgb3JkZXIgPSBNYXRoLmZsb29yKE1hdGgubWF4KE1hdGgubG9nMTAoblJvd3MpLCAyKSkgKyAxO1xuICAgICAgICBjb25zdCBtaW5PcmRlciA9IE1hdGgucG93KDEwLCBvcmRlcik7XG4gICAgICAgIGNvbnN0IGNsdXN0ZXJzID0gbmV3IEFycmF5KG5Sb3dzKS5maWxsKC0xKTtcbiAgICAgICAgZm9yIChjb25zdCBpIG9mIE9iamVjdC5rZXlzKHNwYXJzZU1hdHJpeCkpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgaiBvZiBPYmplY3Qua2V5cyhzcGFyc2VNYXRyaXhbaV0pKSB7XG4gICAgICAgICAgICAgICAgaWYgKE1hdGgucm91bmQoc3BhcnNlTWF0cml4W2ldW2pdICogbWluT3JkZXIpIC8gbWluT3JkZXIgPiAwICYmXG4gICAgICAgICAgICAgICAgICAgIHNwYXJzZU1hdHJpeFtpXVtqXSAhPT0gTnVtYmVyKGkpICYmIE51bWJlcihqKSA+IE51bWJlcihpKSkge1xuICAgICAgICAgICAgICAgICAgICBpcy5wdXNoKE51bWJlcihpKSk7XG4gICAgICAgICAgICAgICAgICAgIGpzLnB1c2goTnVtYmVyKGopKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNsdXN0ZXJzW051bWJlcihpKV0gIT09IC0xICYmIGNsdXN0ZXJzW051bWJlcihqKV0gIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2x1c3RlcnNbTnVtYmVyKGkpXSAhPT0gY2x1c3RlcnNbTnVtYmVyKGopXSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1lcmdlQ2x1c3RlcnMoY2x1c3RlcnMsIE51bWJlcihpKSwgTnVtYmVyKGopKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChjbHVzdGVyc1tOdW1iZXIoaSldICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2x1c3RlcnNbTnVtYmVyKGopXSA9IGNsdXN0ZXJzW051bWJlcihpKV07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoY2x1c3RlcnNbTnVtYmVyKGopXSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsdXN0ZXJzW051bWJlcihpKV0gPSBjbHVzdGVyc1tOdW1iZXIoaildO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2x1c3Rlck51bSsrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2x1c3RlcnNbTnVtYmVyKGkpXSA9IGNsdXN0ZXJOdW07XG4gICAgICAgICAgICAgICAgICAgICAgICBjbHVzdGVyc1tOdW1iZXIoaildID0gY2x1c3Rlck51bTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNsdXN0ZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoY2x1c3RlcnNbaV0gPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgY2x1c3Rlck51bSsrO1xuICAgICAgICAgICAgICAgIGNsdXN0ZXJzW2ldID0gY2x1c3Rlck51bTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBjbHVzdGVycywgaXM6IG5ldyBVaW50MzJBcnJheShpcyksIGpzOiBuZXcgVWludDMyQXJyYXkoanMpIH07XG4gICAgfVxuICAgIHRvT2JqZWN0Rm9ybShzcGFyc2VNYXRyaXgpIHtcbiAgICAgICAgY29uc3Qgc3BhcnNlT2JqZWN0ID0ge307XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3BhcnNlTWF0cml4LmkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmICghc3BhcnNlT2JqZWN0W3NwYXJzZU1hdHJpeC5pW2ldXSlcbiAgICAgICAgICAgICAgICBzcGFyc2VPYmplY3Rbc3BhcnNlTWF0cml4LmlbaV1dID0ge307XG4gICAgICAgICAgICBzcGFyc2VPYmplY3Rbc3BhcnNlTWF0cml4LmlbaV1dW3NwYXJzZU1hdHJpeC5qW2ldXSA9IDEgLSBzcGFyc2VNYXRyaXguZGlzdGFuY2VbaV07XG4gICAgICAgICAgICBpZiAoIXNwYXJzZU9iamVjdFtzcGFyc2VNYXRyaXgualtpXV0pXG4gICAgICAgICAgICAgICAgc3BhcnNlT2JqZWN0W3NwYXJzZU1hdHJpeC5qW2ldXSA9IHt9O1xuICAgICAgICAgICAgc3BhcnNlT2JqZWN0W3NwYXJzZU1hdHJpeC5qW2ldXVtzcGFyc2VNYXRyaXguaVtpXV0gPSAxIC0gc3BhcnNlTWF0cml4LmRpc3RhbmNlW2ldO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzcGFyc2VPYmplY3Q7XG4gICAgfVxuICAgIGFkZExvb3BzKHNwYXJzZU9iamVjdCwgblJvd3MpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuUm93czsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoIXNwYXJzZU9iamVjdFtpXSlcbiAgICAgICAgICAgICAgICBzcGFyc2VPYmplY3RbaV0gPSB7fTtcbiAgICAgICAgICAgIHNwYXJzZU9iamVjdFtpXVtpXSA9IHRoaXMuX29wdGlvbnMubXVsdEZhY3RvcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBub3JtYWxpemUoc3BhcnNlT2JqZWN0KSB7XG4gICAgICAgIGZvciAoY29uc3QgaSBvZiBPYmplY3Qua2V5cyhzcGFyc2VPYmplY3QpKSB7XG4gICAgICAgICAgICBjb25zdCByb3cgPSBzcGFyc2VPYmplY3RbaV07XG4gICAgICAgICAgICBsZXQgc3VtID0gMDtcbiAgICAgICAgICAgIGZvciAoY29uc3QgaiBvZiBPYmplY3Qua2V5cyhyb3cpKVxuICAgICAgICAgICAgICAgIHN1bSArPSByb3dbal07XG4gICAgICAgICAgICBpZiAoc3VtID09PSAwKVxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgZm9yIChjb25zdCBqIG9mIE9iamVjdC5rZXlzKHJvdykpXG4gICAgICAgICAgICAgICAgc3BhcnNlT2JqZWN0W2ldW2pdIC89IHN1bTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBleHBhbmQoc3BhcnNlT2JqZWN0LCBuUm93cykge1xuICAgICAgICBjb25zdCBleHBhbmRlZE9iamVjdCA9IHt9O1xuICAgICAgICBjb25zdCBvcmRlciA9IE1hdGguZmxvb3IoTWF0aC5tYXgoTWF0aC5sb2cxMChuUm93cyksIDIpKSArIDE7XG4gICAgICAgIGNvbnN0IG1pbk9yZGVyID0gTWF0aC5wb3coMTAsIG9yZGVyKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuUm93czsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoIXNwYXJzZU9iamVjdFtpXSlcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIC8vIGNvbnN0IHJvdyA9IHNwYXJzZU9iamVjdFtpXTtcbiAgICAgICAgICAgIGV4cGFuZGVkT2JqZWN0W2ldID0ge307XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gaTsgaiA8IG5Sb3dzOyBqKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoIXNwYXJzZU9iamVjdFtpXT8uW2pdKVxuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWwgPSB0aGlzLmdldEV4cGFuZFZhbHVlKHNwYXJzZU9iamVjdCwgaSwgaik7IC8vcHJ1bmluZyBzdGVwXG4gICAgICAgICAgICAgICAgaWYgKE1hdGgucm91bmQodmFsICogbWluT3JkZXIpIC8gbWluT3JkZXIgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGV4cGFuZGVkT2JqZWN0W2ldW2pdID0gdmFsO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWV4cGFuZGVkT2JqZWN0W2pdKVxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwYW5kZWRPYmplY3Rbal0gPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgZXhwYW5kZWRPYmplY3Rbal1baV0gPSB2YWw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBleHBhbmRlZE9iamVjdDtcbiAgICB9XG4gICAgLy8gcHJpdmF0ZSBwcnVuZShyb3c6IFNwYXJzZU1hdHJpeE9iamVjdFtudW1iZXJdKSB7XG4gICAgLy8gfVxuICAgIGluZmxhdGUoc3BhcnNlT2JqZWN0KSB7XG4gICAgICAgIGZvciAoY29uc3QgaSBvZiBPYmplY3Qua2V5cyhzcGFyc2VPYmplY3QpKSB7XG4gICAgICAgICAgICBjb25zdCByb3cgPSBzcGFyc2VPYmplY3RbaV07XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGogb2YgT2JqZWN0LmtleXMocm93KSlcbiAgICAgICAgICAgICAgICBzcGFyc2VPYmplY3RbaV1bal0gPSBNYXRoLnBvdyhzcGFyc2VPYmplY3RbaV1bal0sIHRoaXMuX29wdGlvbnMuaW5mbGF0ZUZhY3Rvcik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0RXhwYW5kVmFsdWUoc3BhcnNlT2JqZWN0LCBpLCBqKSB7XG4gICAgICAgIGxldCB2YWwgPSAwO1xuICAgICAgICBjb25zdCBjdXJyZW50SW5kZXhlcyA9IE9iamVjdC5rZXlzKHNwYXJzZU9iamVjdFtpXSA/PyB7fSk7XG4gICAgICAgIGNvbnN0IG90aGVySW5kZXhlcyA9IE9iamVjdC5rZXlzKHNwYXJzZU9iamVjdFtqXSA/PyB7fSk7XG4gICAgICAgIGZvciAoY29uc3QgayBvZiBjdXJyZW50SW5kZXhlcykge1xuICAgICAgICAgICAgaWYgKG90aGVySW5kZXhlcy5pbmNsdWRlcyhrKSlcbiAgICAgICAgICAgICAgICB2YWwgKz0gc3BhcnNlT2JqZWN0W2ldW2tdICogc3BhcnNlT2JqZWN0W2pdW2tdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWw7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYldGeVkyOTJMV05zZFhOMFpYSXVhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lKdFlYSmpiM1l0WTJ4MWMzUmxjaTUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGRFFTeFBRVUZQTEVWQlFVTXNVMEZCVXl4RlFVRkRMRTFCUVUwc1kwRkJZeXhEUVVGRE8wRkJSM1pETEUxQlFVMHNRMEZCUXl4TlFVRk5MR2xDUVVGcFFpeEhRVUZsTzBsQlF6TkRMRmxCUVZrc1JVRkJSU3hEUVVGRE8wbEJRMllzWVVGQllTeEZRVUZGTEVOQlFVTTdTVUZEYUVJc1lVRkJZU3hGUVVGRkxFTkJRVU03U1VGRGFFSXNWVUZCVlN4RlFVRkZMRU5CUVVNN1EwRkRaQ3hEUVVGRE8wRkJSVVlzVFVGQlRTeFBRVUZQTEdkQ1FVRm5RanRKUVVjelFpeFpRVUZaTEU5QlFUUkNMRVZCUVVVN1VVRkRlRU1zU1VGQlNTeERRVUZETEZGQlFWRXNSMEZCUnl4RlFVRkRMRWRCUVVjc2FVSkJRV2xDTEVWQlFVVXNSMEZCUnl4SlFVRkpMRVZCUVVNc1EwRkJRenRKUVVOc1JDeERRVUZETzBsQlJVMHNTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhaUVVGblF5eEZRVUZGTEV0QlFXRTdVVUZEY0VVc2QwSkJRWGRDTzFGQlEzaENMR2REUVVGblF6dFJRVU5vUXl4SlFVRkpMRmxCUVZrc1IwRkJSeXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRPMUZCUTI1RUxFbEJRVWtzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4aFFVRmhMRWRCUVVjc1EwRkJReXhGUVVGRk8xbEJRMjVETEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1dVRkJXU3hGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzFsQlEyNURMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTTdXVUZETjBJc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zWVVGQllTeEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZPMmRDUVVOd1JDeFpRVUZaTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhaUVVGWkxFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTTdaMEpCUTJoRUxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNN1owSkJRek5DTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU03WVVGRE9VSTdVMEZEUmp0UlFVTkVMRTFCUVUwc1JVRkJReXhSUVVGUkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhqUVVGakxFTkJRVU1zV1VGQldTeEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMUZCUTNCRkxFbEJRVWtzUTBGQlF5eGxRVUZsTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN1VVRkRMMElzVFVGQlRTeFZRVUZWTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExGRkJRVkVzUlVGQlJTeFpRVUZaTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkRjRVVzVDBGQlR5eEZRVUZETEZGQlFWRXNSVUZCUlN4TlFVRk5MRVZCUVVVc1ZVRkJWU3hEUVVGRExFMUJRVTBzUlVGQlJTeE5RVUZOTEVWQlFVVXNWVUZCVlN4RFFVRkRMRTFCUVUwc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZETEVOQlFVTTdTVUZEYkVZc1EwRkJRenRKUVVWUExHVkJRV1VzUTBGQlF5eFJRVUZyUWp0UlFVTjRReXhOUVVGTkxHTkJRV01zUjBGQk1FSXNSVUZCUlN4RFFVRkRPMUZCUTJwRUxFdEJRVXNzVFVGQlRTeFBRVUZQTEVsQlFVa3NVVUZCVVN4RlFVRkZPMWxCUXpsQ0xFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNUMEZCVHl4RFFVRkRPMmRDUVVNeFFpeGpRVUZqTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xbEJRemxDTEdOQlFXTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1JVRkJSU3hEUVVGRE8xTkJRek5DTzFGQlEwUXNUVUZCVFN4aFFVRmhMRWRCUVVjc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zWTBGQll5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMR05CUVdNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEzQklMRTFCUVUwc1ZVRkJWU3hIUVVFd1FpeEZRVUZGTEVOQlFVTTdVVUZETjBNc1lVRkJZU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEZWQlFWVXNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExGVkJRVlVzUTBGQlF5eFZRVUZWTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGVrVXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEZGQlFWRXNRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhGUVVGRk8xbEJRM1JETEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhWUVVGVkxFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRlRU1zYzBKQlFYTkNPMUZCUTNSQ0xEaERRVUU0UXp0UlFVTTVReXh2UTBGQmIwTTdVVUZEY0VNc05FTkJRVFJETzFGQlF6VkRMR2REUVVGblF6dFJRVU5vUXl4dlFrRkJiMEk3VVVGRGNFSXNZVUZCWVR0UlFVTmlMRFpEUVVFMlF6dFJRVU0zUXl4TlFVRk5PMUZCUTA0c1NVRkJTVHRKUVVOT0xFTkJRVU03U1VGRlR5eExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRMRkZCUVd0Q0xFVkJRVVVzV1VGQlowTXNSVUZCUlN4TFFVRmhPMUZCUTNSR0xFMUJRVTBzVFVGQlRTeEhRVUZITEVsQlFVa3NXVUZCV1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTXZReXhOUVVGTkxFMUJRVTBzUjBGQlJ5eEpRVUZKTEZsQlFWa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZETDBNc1RVRkJUU3hWUVVGVkxFZEJRVFJDTEVWQlFVVXNRMEZCUXp0UlFVTXZReXhSUVVGUkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNUMEZCVHl4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8xbEJRemxDTEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNc1QwRkJUeXhEUVVGRE8yZENRVU4wUWl4VlFVRlZMRU5CUVVNc1QwRkJUeXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETzFsQlF6TkNMRlZCUVZVc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRPVUlzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEU0N4dlJFRkJiMFE3VVVGRGNFUXNiVVJCUVcxRU8xRkJRMjVFTEVsQlFVa3NWVUZCVlN4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVOdVFpeE5RVUZOTEd0Q1FVRnJRaXhIUVVGSExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNN1VVRkRia1FzYTBKQlFXdENMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVkVzUTBGQlF5eERRVUZETEUxQlFVMHNSMEZCUnl4VlFVRlZMRU5CUVVNc1EwRkJVU3hEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdVVUZETjBZc1NVRkJTU3hOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETzFGQlJXWXNTVUZCU1N4UFFVRlBMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRMmhDTEUxQlFVMHNWVUZCVlN4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVOeVFpeExRVUZMTEUxQlFVMHNWMEZCVnl4SlFVRkpMR3RDUVVGclFpeEZRVUZGTzFsQlF6VkRMRTFCUVUwc1QwRkJUeXhIUVVGSExGVkJRVlVzUTBGQlF5eFhRVUZyUWl4RFFVRkZMRU5CUVVNN1dVRkRhRVFzVFVGQlRTeFZRVUZWTEVkQlFVY3NUVUZCVFN4VFFVRlRMRU5CUVVNc1QwRkJUeXhGUVVGRkxGbEJRVmtzUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXp0WlFVTnFSU3hKUVVGSkxGVkJRVlVzUzBGQlN5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhIUVVGSExFTkJRVU1zUlVGQlJUdG5Ra0ZETVVNc1ZVRkJWU3hIUVVGSExFTkJRVU1zUTBGQlF6dG5Ra0ZEWml4UFFVRlBMRWxCUVVrc1ZVRkJWU3hIUVVGSExFMUJRVTBzUTBGQlF6dG5Ra0ZETDBJc1RVRkJUU3hIUVVGSExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4SFFVRkhMRWRCUVVjc1EwRkJReXhEUVVGRE8yRkJRMnhETzFsQlEwUXNUVUZCVFN4UFFVRlBMRWRCUVVjc1EwRkJReXhEUVVGRExGVkJRVlVzUjBGQlJ5eE5RVUZOTEVOQlFVTXNSMEZCUnl4VlFVRlZMRWRCUVVjc1RVRkJUU3hEUVVGRExFZEJRVWNzUjBGQlJ5eERRVUZETzFsQlEzQkZMSFZFUVVGMVJEdFpRVVYyUkN4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NWVUZCVlN4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVTdaMEpCUTJwRUxFMUJRVTBzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhWUVVGVkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRlZCUVZVc1IwRkJSeXhOUVVGTkxFZEJRVWNzVDBGQlR5eERRVUZETzJkQ1FVTXhSU3hOUVVGTkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1ZVRkJWU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4VlFVRlZMRWRCUVVjc1RVRkJUU3hIUVVGSExFOUJRVThzUTBGQlF6dGhRVU16UlR0WlFVTkVMRlZCUVZVc1JVRkJSU3hEUVVGRE8xTkJRMlE3VVVGRFJDeFBRVUZQTEVWQlFVTXNUVUZCVFN4RlFVRkZMRTFCUVUwc1JVRkJReXhEUVVGRE8wbEJRekZDTEVOQlFVTTdTVUZGVHl4aFFVRmhMRU5CUVVNc1VVRkJhMElzUlVGQlJTeERRVUZUTEVWQlFVVXNRMEZCVXp0UlFVTTFSQ3hOUVVGTkxGRkJRVkVzUjBGQlJ5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkROMElzVFVGQlRTeFJRVUZSTEVkQlFVY3NVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRemRDTEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eFJRVUZSTEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8xbEJRM2hETEVsQlFVa3NVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExGRkJRVkU3WjBKQlF6RkNMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eFJRVUZSTEVOQlFVTTdVMEZETVVJN1NVRkRTQ3hEUVVGRE8wbEJRMDBzWTBGQll5eERRVUZETEZsQlFXZERMRVZCUVVVc1MwRkJZVHRSUVVOdVJTeEpRVUZKTEZWQlFWVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRia0lzVFVGQlRTeEZRVUZGTEVkQlFXRXNSVUZCUlN4RFFVRkRPMUZCUTNoQ0xFMUJRVTBzUlVGQlJTeEhRVUZoTEVWQlFVVXNRMEZCUXp0UlFVTjRRaXhOUVVGTkxFdEJRVXNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTTNSQ3hOUVVGTkxGRkJRVkVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1JVRkJSU3hMUVVGTExFTkJRVU1zUTBGQlF6dFJRVU55UXl4TlFVRk5MRkZCUVZFc1IwRkJZU3hKUVVGSkxFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU55UkN4TFFVRkxMRTFCUVUwc1EwRkJReXhKUVVGSkxFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRVZCUVVVN1dVRkRla01zUzBGQlN5eE5RVUZOTEVOQlFVTXNTVUZCU1N4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZSTEVOQlFVTXNRMEZCUXl4RlFVRkZPMmRDUVVOdVJDeEpRVUZKTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVkVzUTBGQlF5eERRVUZETEVOQlFWRXNRMEZCUXl4SFFVRkhMRkZCUVZFc1EwRkJReXhIUVVGSExGRkJRVkVzUjBGQlJ5eERRVUZETzI5Q1FVTjRSU3haUVVGWkxFTkJRVU1zUTBGQlVTeERRVUZETEVOQlFVTXNRMEZCVVN4RFFVRkRMRXRCUVVzc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVTdiMEpCUTNwRkxFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03YjBKQlEyNUNMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN2IwSkJRMjVDTEVsQlFVa3NVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4SlFVRkpMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1JVRkJSVHQzUWtGRE5VUXNTVUZCU1N4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6czBRa0ZETjBNc1NVRkJTU3hEUVVGRExHRkJRV0VzUTBGQlF5eFJRVUZSTEVWQlFVVXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPM0ZDUVVOMFJEdDVRa0ZCVFN4SlFVRkpMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1JVRkJSVHQzUWtGRGNrTXNVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dHhRa0ZETTBNN2VVSkJRVTBzU1VGQlNTeFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVWQlFVVTdkMEpCUTNKRExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN2NVSkJRek5ETzNsQ1FVRk5PM2RDUVVOTUxGVkJRVlVzUlVGQlJTeERRVUZETzNkQ1FVTmlMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4VlFVRlZMRU5CUVVNN2QwSkJRMnBETEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eFZRVUZWTEVOQlFVTTdjVUpCUTJ4RE8ybENRVU5HTzJGQlEwWTdVMEZEUmp0UlFVTkVMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4UlFVRlJMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzFsQlEzUkRMRWxCUVVrc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RlFVRkZPMmRDUVVOMFFpeFZRVUZWTEVWQlFVY3NRMEZCUXp0blFrRkRaQ3hSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NWVUZCVlN4RFFVRkRPMkZCUXpGQ08xTkJRMFk3VVVGRFJDeFBRVUZQTEVWQlFVTXNVVUZCVVN4RlFVRkZMRVZCUVVVc1JVRkJSU3hKUVVGSkxGZEJRVmNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZMRVZCUVVVc1NVRkJTU3hYUVVGWExFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNRMEZCUXp0SlFVTjBSU3hEUVVGRE8wbEJSVTBzV1VGQldTeERRVUZETEZsQlFXZERPMUZCUTJ4RUxFMUJRVTBzV1VGQldTeEhRVUY1UXl4RlFVRkZMRU5CUVVNN1VVRkRPVVFzUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8xbEJRemxETEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0blFrRkRiRU1zV1VGQldTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTTdXVUZEZGtNc1dVRkJXU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExGbEJRVmtzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRiRVlzU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzJkQ1FVTnNReXhaUVVGWkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF6dFpRVU4yUXl4WlFVRlpMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1dVRkJXU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0VFFVTnVSanRSUVVORUxFOUJRVThzV1VGQldTeERRVUZETzBsQlEzUkNMRU5CUVVNN1NVRkZUeXhSUVVGUkxFTkJRVU1zV1VGQlowTXNSVUZCUlN4TFFVRmhPMUZCUXpsRUxFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhMUVVGTExFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVTdXVUZET1VJc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUTJ4Q0xGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNN1dVRkRka0lzV1VGQldTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNWVUZCVlN4RFFVRkRPMU5CUXk5RE8wbEJRMGdzUTBGQlF6dEpRVVZQTEZOQlFWTXNRMEZCUXl4WlFVRm5RenRSUVVOb1JDeExRVUZMTEUxQlFVMHNRMEZCUXl4SlFVRkpMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEVWQlFVVTdXVUZEZWtNc1RVRkJUU3hIUVVGSExFZEJRVWNzV1VGQldTeERRVUZETEVOQlFWRXNRMEZCUXl4RFFVRkRPMWxCUTI1RExFbEJRVWtzUjBGQlJ5eEhRVUZITEVOQlFVTXNRMEZCUXp0WlFVTmFMRXRCUVVzc1RVRkJUU3hEUVVGRExFbEJRVWtzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNN1owSkJRemxDTEVkQlFVY3NTVUZCU1N4SFFVRkhMRU5CUVVNc1EwRkJVU3hEUVVGRExFTkJRVU03V1VGRGRrSXNTVUZCU1N4SFFVRkhMRXRCUVVzc1EwRkJRenRuUWtGQlJTeFRRVUZUTzFsQlEzaENMRXRCUVVzc1RVRkJUU3hEUVVGRExFbEJRVWtzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNN1owSkJRemxDTEZsQlFWa3NRMEZCUXl4RFFVRlJMRU5CUVVNc1EwRkJReXhEUVVGUkxFTkJRVU1zU1VGQlNTeEhRVUZITEVOQlFVTTdVMEZETTBNN1NVRkRTQ3hEUVVGRE8wbEJSVThzVFVGQlRTeERRVUZETEZsQlFXZERMRVZCUVVVc1MwRkJZVHRSUVVNMVJDeE5RVUZOTEdOQlFXTXNSMEZCZFVJc1JVRkJSU3hEUVVGRE8xRkJRemxETEUxQlFVMHNTMEZCU3l4SFFVRkhMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFdEJRVXNzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRemRFTEUxQlFVMHNVVUZCVVN4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMUZCUTNKRExFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhMUVVGTExFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVTdXVUZET1VJc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUTJ4Q0xGTkJRVk03V1VGRFdDd3JRa0ZCSzBJN1dVRkRMMElzWTBGQll5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJRenRaUVVOMlFpeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzUzBGQlN5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZPMmRDUVVNNVFpeEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzI5Q1FVTjJRaXhUUVVGVE8yZENRVU5ZTEUxQlFVMHNSMEZCUnl4SFFVRkhMRWxCUVVrc1EwRkJReXhqUVVGakxFTkJRVU1zV1VGQldTeEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExHTkJRV003WjBKQlEyNUZMRWxCUVVrc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEhRVUZITEVkQlFVY3NVVUZCVVN4RFFVRkRMRWRCUVVjc1VVRkJVU3hIUVVGSExFTkJRVU1zUlVGQlJUdHZRa0ZETjBNc1kwRkJZeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRWRCUVVjc1EwRkJRenR2UWtGRE0wSXNTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJReXhEUVVGRExFTkJRVU03ZDBKQlEzQkNMR05CUVdNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTTdiMEpCUTNwQ0xHTkJRV01zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhIUVVGSExFTkJRVU03YVVKQlF6VkNPMkZCUTBZN1UwRkRSanRSUVVORUxFOUJRVThzWTBGQll5eERRVUZETzBsQlEzaENMRU5CUVVNN1NVRkZSQ3h0UkVGQmJVUTdTVUZGYmtRc1NVRkJTVHRKUVVWSkxFOUJRVThzUTBGQlF5eFpRVUZuUXp0UlFVTTVReXhMUVVGTExFMUJRVTBzUTBGQlF5eEpRVUZKTEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFVkJRVVU3V1VGRGVrTXNUVUZCVFN4SFFVRkhMRWRCUVVjc1dVRkJXU3hEUVVGRExFTkJRVkVzUTBGQlF5eERRVUZETzFsQlEyNURMRXRCUVVzc1RVRkJUU3hEUVVGRExFbEJRVWtzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNN1owSkJRemxDTEZsQlFWa3NRMEZCUXl4RFFVRlJMRU5CUVVNc1EwRkJReXhEUVVGUkxFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZSTEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETzFOQlF6bEhPMGxCUTBnc1EwRkJRenRKUVVWUExHTkJRV01zUTBGQlF5eFpRVUZuUXl4RlFVRkZMRU5CUVUwc1JVRkJSU3hEUVVGTk8xRkJRM0pGTEVsQlFVa3NSMEZCUnl4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVOYUxFMUJRVTBzWTBGQll5eEhRVUZITEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXl4RFFVRkRPMUZCUXpGRUxFMUJRVTBzV1VGQldTeEhRVUZITEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXl4RFFVRkRPMUZCUTNoRUxFdEJRVXNzVFVGQlRTeERRVUZETEVsQlFVa3NZMEZCWXl4RlFVRkZPMWxCUXpsQ0xFbEJRVWtzV1VGQldTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNN1owSkJRekZDTEVkQlFVY3NTVUZCU1N4WlFVRlpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlVTeERRVUZETEVkQlFVY3NXVUZCV1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVkVzUTBGQlF5eERRVUZETzFOQlEyaEZPMUZCUTBRc1QwRkJUeXhIUVVGSExFTkJRVU03U1VGRFlpeERRVUZETzBOQlEwWWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdlMU53WVhKelpVMWhkSEpwZUZKbGMzVnNkSDBnWm5KdmJTQW5MaTR2WkdsemRHRnVZMlV0YldGMGNtbDRMM053WVhKelpTMXRZWFJ5YVhndGMyVnlkbWxqWlNjN1hHNXBiWEJ2Y25RZ2UySnBiMHhoZVc5MWRIMGdabkp2YlNBbkxpOWlhVzh0YkdGNWIzVjBKenRjYm1sdGNHOXlkQ0I3VFVOTVQzQjBhVzl1Y3l3Z1UzQmhjbk5sVFdGMGNtbDRUMkpxWldOMGZTQm1jbTl0SUNjdUwzUjVjR1Z6Snp0Y2JseHVaWGh3YjNKMElHTnZibk4wSUdSbFptRjFiSFJOUTB4UGNIUnBiMjV6T2lCTlEweFBjSFJwYjI1eklEMGdlMXh1SUNCbGVIQmhibVJHWVdOMGIzSTZJRElzWEc0Z0lHMWhlRWwwWlhKaGRHbHZibk02SURVc1hHNGdJR2x1Wm14aGRHVkdZV04wYjNJNklESXNYRzRnSUcxMWJIUkdZV04wYjNJNklERXNYRzU5TzF4dVhHNWxlSEJ2Y25RZ1kyeGhjM01nVFVOTVUzQmhjbk5sVW1Wa2RXTmxjaUI3WEc0Z0lIQnlhWFpoZEdVZ1gyOXdkR2x2Ym5NNklFMURURTl3ZEdsdmJuTTdYRzVjYmlBZ1kyOXVjM1J5ZFdOMGIzSW9iM0IwY3pvZ1VHRnlkR2xoYkR4TlEweFBjSFJwYjI1elBpQTlJSHQ5S1NCN1hHNGdJQ0FnZEdocGN5NWZiM0IwYVc5dWN5QTlJSHN1TGk1a1pXWmhkV3gwVFVOTVQzQjBhVzl1Y3l3Z0xpNHViM0IwYzMwN1hHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ1lYTjVibU1nZEhKaGJuTm1iM0p0S0hOd1lYSnpaVTFoZEhKcGVEb2dVM0JoY25ObFRXRjBjbWw0VW1WemRXeDBMQ0J1VW05M2N6b2diblZ0WW1WeUtTQjdYRzRnSUNBZ0x5OGdkR1Z6ZEZkdmNtdGxjazExYkhScGNHeDVLQ2s3WEc0Z0lDQWdMeThnY21WMGRYSnVJRzVsZHlCSmJuUXpNa0Z5Y21GNUtHNVNiM2R6S1R0Y2JpQWdJQ0JzWlhRZ2MzQmhjbk5sVDJKcVpXTjBJRDBnZEdocGN5NTBiMDlpYW1WamRFWnZjbTBvYzNCaGNuTmxUV0YwY21sNEtUdGNiaUFnSUNCcFppQW9kR2hwY3k1ZmIzQjBhVzl1Y3k1dFlYaEpkR1Z5WVhScGIyNXpJRDRnTUNrZ2UxeHVJQ0FnSUNBZ2RHaHBjeTVoWkdSTWIyOXdjeWh6Y0dGeWMyVlBZbXBsWTNRc0lHNVNiM2R6S1R0Y2JpQWdJQ0FnSUhSb2FYTXVibTl5YldGc2FYcGxLSE53WVhKelpVOWlhbVZqZENrN1hHNGdJQ0FnSUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElIUm9hWE11WDI5d2RHbHZibk11YldGNFNYUmxjbUYwYVc5dWN6c2dhU3NyS1NCN1hHNGdJQ0FnSUNBZ0lITndZWEp6WlU5aWFtVmpkQ0E5SUhSb2FYTXVaWGh3WVc1a0tITndZWEp6WlU5aWFtVmpkQ3dnYmxKdmQzTXBPMXh1SUNBZ0lDQWdJQ0IwYUdsekxtbHVabXhoZEdVb2MzQmhjbk5sVDJKcVpXTjBLVHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXViM0p0WVd4cGVtVW9jM0JoY25ObFQySnFaV04wS1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdZMjl1YzNRZ2UyTnNkWE4wWlhKekxDQnBjeXdnYW5OOUlEMGdkR2hwY3k1aGMzTnBaMjVEYkhWemRHVnljeWh6Y0dGeWMyVlBZbXBsWTNRc0lHNVNiM2R6S1R0Y2JpQWdJQ0IwYUdsekxtTnZjbkpsWTNSRGJIVnpkR1Z5Y3loamJIVnpkR1Z5Y3lrN1hHNGdJQ0FnWTI5dWMzUWdaVzFpWldSa2FXNW5jeUE5SUdGM1lXbDBJSFJvYVhNdWJHRjViM1YwS0dOc2RYTjBaWEp6TENCemNHRnljMlZQWW1wbFkzUXNJRzVTYjNkektUdGNiaUFnSUNCeVpYUjFjbTRnZTJOc2RYTjBaWEp6TENCbGJXSmxaRmc2SUdWdFltVmtaR2x1WjNNdVpXMWlaV1JZTENCbGJXSmxaRms2SUdWdFltVmtaR2x1WjNNdVpXMWlaV1JaTENCcGN5d2dhbk45TzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCamIzSnlaV04wUTJ4MWMzUmxjbk1vWTJ4MWMzUmxjbk02SUc1MWJXSmxjbHRkS1NCN1hHNGdJQ0FnWTI5dWMzUWdZMngxYzNSbGNsTnBlbVZOWVhBNklIdGJYem9nYm5WdFltVnlYVG9nYm5WdFltVnlmU0E5SUh0OU8xeHVJQ0FnSUdadmNpQW9ZMjl1YzNRZ1kyeDFjM1JsY2lCdlppQmpiSFZ6ZEdWeWN5a2dlMXh1SUNBZ0lDQWdhV1lnS0NGamJIVnpkR1Z5VTJsNlpVMWhjRnRqYkhWemRHVnlYU2xjYmlBZ0lDQWdJQ0FnWTJ4MWMzUmxjbE5wZW1WTllYQmJZMngxYzNSbGNsMGdQU0F3TzF4dUlDQWdJQ0FnWTJ4MWMzUmxjbE5wZW1WTllYQmJZMngxYzNSbGNsMHJLenRjYmlBZ0lDQjlYRzRnSUNBZ1kyOXVjM1FnYzI5eWRHVmtTVzVrWlhobGN5QTlJRTlpYW1WamRDNXJaWGx6S0dOc2RYTjBaWEpUYVhwbFRXRndLUzV0WVhBb1RuVnRZbVZ5S1M1emIzSjBLQ2hoTENCaUtTQTlQaUJqYkhWemRHVnlVMmw2WlUxaGNGdGhYU0F0SUdOc2RYTjBaWEpUYVhwbFRXRndXMkpkS1R0Y2JpQWdJQ0JqYjI1emRDQmpiSFZ6ZEdWeVRXRndPaUI3VzE4NklHNTFiV0psY2wwNklHNTFiV0psY24wZ1BTQjdmVHRjYmlBZ0lDQnpiM0owWldSSmJtUmxlR1Z6TG1admNrVmhZMmdvS0dOc2RYTjBaWEpKWkhnc0lHa3BJRDArSUdOc2RYTjBaWEpOWVhCYlkyeDFjM1JsY2tsa2VGMGdQU0JwSUNzZ01TazdYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQmpiSFZ6ZEdWeWN5NXNaVzVuZEdnN0lHa3JLeWxjYmlBZ0lDQWdJR05zZFhOMFpYSnpXMmxkSUQwZ1kyeDFjM1JsY2sxaGNGdGpiSFZ6ZEdWeWMxdHBYVjA3WEc0Z0lDQWdMeThnYkdWMElHTjFja05zZFhOMFpYSWdQU0F4TzF4dUlDQWdJQzh2SUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z1kyeDFjM1JsY25NdWJHVnVaM1JvT3lCcEt5c3BJSHRjYmlBZ0lDQXZMeUFnSUdsbUlDZ2hZMngxYzNSbGNrMWhjRnRqYkhWemRHVnljMXRwWFYwcElIdGNiaUFnSUNBdkx5QWdJQ0FnWTJ4MWMzUmxjazFoY0Z0amJIVnpkR1Z5YzF0cFhWMGdQU0JqZFhKRGJIVnpkR1Z5TzF4dUlDQWdJQzh2SUNBZ0lDQmpiSFZ6ZEdWeWMxdHBYU0E5SUdOMWNrTnNkWE4wWlhJN1hHNGdJQ0FnTHk4Z0lDQWdJR04xY2tOc2RYTjBaWElyS3p0Y2JpQWdJQ0F2THlBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnTHk4Z0lDQWdJR05zZFhOMFpYSnpXMmxkSUQwZ1kyeDFjM1JsY2sxaGNGdGpiSFZ6ZEdWeWMxdHBYVjA3WEc0Z0lDQWdMeThnSUNCOVhHNGdJQ0FnTHk4Z2ZWeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQmhjM2x1WXlCc1lYbHZkWFFvWTJ4MWMzUmxjbk02SUc1MWJXSmxjbHRkTENCemNHRnljMlZOWVhSeWFYZzZJRk53WVhKelpVMWhkSEpwZUU5aWFtVmpkQ3dnYmxKdmQzTTZJRzUxYldKbGNpa2dlMXh1SUNBZ0lHTnZibk4wSUdWdFltVmtXQ0E5SUc1bGR5QkdiRzloZERNeVFYSnlZWGtvYmxKdmQzTXBMbVpwYkd3b01DazdYRzRnSUNBZ1kyOXVjM1FnWlcxaVpXUlpJRDBnYm1WM0lFWnNiMkYwTXpKQmNuSmhlU2h1VW05M2N5a3VabWxzYkNnd0tUdGNiaUFnSUNCamIyNXpkQ0JqYkhWemRHVnlUV0Z3T2lCN1cxODZJRzUxYldKbGNsMDZJRzUxYldKbGNsdGRmU0E5SUh0OU8xeHVJQ0FnSUdOc2RYTjBaWEp6TG1admNrVmhZMmdvS0dOc2RYTjBaWElzSUdrcElEMCtJSHRjYmlBZ0lDQWdJR2xtSUNnaFkyeDFjM1JsY2sxaGNGdGpiSFZ6ZEdWeVhTbGNiaUFnSUNBZ0lDQWdZMngxYzNSbGNrMWhjRnRqYkhWemRHVnlYU0E5SUZ0ZE8xeHVJQ0FnSUNBZ1kyeDFjM1JsY2sxaGNGdGpiSFZ6ZEdWeVhTNXdkWE5vS0drcE8xeHVJQ0FnSUgwcE8xeHVJQ0FnSUM4dklHTnZibk4wSUc1RGJIVnpkR1Z5Y3lBOUlFOWlhbVZqZEM1clpYbHpLR05zZFhOMFpYSk5ZWEFwTG14bGJtZDBhRHRjYmlBZ0lDQXZMeUJqYjI1emRDQndaWEpTYjNjZ1BTQk5ZWFJvTG1ac2IyOXlLRTFoZEdndWMzRnlkQ2h1UTJ4MWMzUmxjbk1wS1R0Y2JpQWdJQ0JzWlhRZ1kyeDFjM1JsY2s1MWJTQTlJREE3WEc0Z0lDQWdZMjl1YzNRZ2MyOXlkR1ZrUTJ4MWMzUmxjazVoYldWeklEMGdUMkpxWldOMExtdGxlWE1vWTJ4MWMzUmxjazFoY0NrN1hHNGdJQ0FnYzI5eWRHVmtRMngxYzNSbGNrNWhiV1Z6TG5OdmNuUW9LR0VzSUdJcElEMCtJR05zZFhOMFpYSk5ZWEJiWWlCaGN5QmhibmxkTG14bGJtZDBhQ0F0SUdOc2RYTjBaWEpOWVhCYllTQmhjeUJoYm5sZExteGxibWQwYUNrN1hHNGdJQ0FnYkdWMElIQmxjbEp2ZHlBOUlEWTdYRzVjYmlBZ0lDQnNaWFFnZVU5bVpuTmxkQ0E5SURBN1hHNGdJQ0FnWTI5dWMzUWdiR0Y1YjNWMFUybDZaU0E5SURVN1hHNGdJQ0FnWm05eUlDaGpiMjV6ZENCamJIVnpkR1Z5VG1GdFpTQnZaaUJ6YjNKMFpXUkRiSFZ6ZEdWeVRtRnRaWE1wSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJR05zZFhOMFpYSWdQU0JqYkhWemRHVnlUV0Z3VzJOc2RYTjBaWEpPWVcxbElHRnpJR0Z1ZVYwaE8xeHVJQ0FnSUNBZ1kyOXVjM1FnWlcxaVpXUmthVzVuY3lBOUlHRjNZV2wwSUdKcGIweGhlVzkxZENoamJIVnpkR1Z5TENCemNHRnljMlZOWVhSeWFYZ3NJREF1TURBeEtUdGNiaUFnSUNBZ0lHbG1JQ2hqYkhWemRHVnlUblZ0SUQwOVBTQk5ZWFJvTG1ObGFXd29jR1Z5VW05M0lDOGdNUzQxS1NrZ2UxeHVJQ0FnSUNBZ0lDQmpiSFZ6ZEdWeVRuVnRJRDBnTUR0Y2JpQWdJQ0FnSUNBZ2VVOW1abk5sZENBclBTQnNZWGx2ZFhSVGFYcGxJQzhnY0dWeVVtOTNPMXh1SUNBZ0lDQWdJQ0J3WlhKU2IzY2dQU0JOWVhSb0xtTmxhV3dvY0dWeVVtOTNJQ29nTVM0MUtUdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lHTnZibk4wSUc5bVpuTmxkRmdnUFNBb0tHTnNkWE4wWlhKT2RXMGdKU0J3WlhKU2IzY3BJQ29nYkdGNWIzVjBVMmw2WlNBdklIQmxjbEp2ZHlrZ0tpQXhMalU3WEc0Z0lDQWdJQ0F2THlCamIyNXpkQ0J2Wm1aelpYUlpJRDBnVFdGMGFDNW1iRzl2Y2loamJIVnpkR1Z5VG5WdElDOGdjR1Z5VW05M0tTQXFJREk3WEc1Y2JpQWdJQ0FnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z1pXMWlaV1JrYVc1bmN5NWxiV0psWkZndWJHVnVaM1JvT3lCcEt5c3BJSHRjYmlBZ0lDQWdJQ0FnWlcxaVpXUllXMk5zZFhOMFpYSmJhVjFkSUQwZ1pXMWlaV1JrYVc1bmN5NWxiV0psWkZoYmFWMGdLaUJzWVhsdmRYUlRhWHBsSUM4Z2NHVnlVbTkzSUNzZ2IyWm1jMlYwV0R0Y2JpQWdJQ0FnSUNBZ1pXMWlaV1JaVzJOc2RYTjBaWEpiYVYxZElEMGdaVzFpWldSa2FXNW5jeTVsYldKbFpGbGJhVjBnS2lCc1lYbHZkWFJUYVhwbElDOGdjR1Z5VW05M0lDc2dlVTltWm5ObGREdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lHTnNkWE4wWlhKT2RXMHJLenRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUh0bGJXSmxaRmdzSUdWdFltVmtXWDA3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUcxbGNtZGxRMngxYzNSbGNuTW9ZMngxYzNSbGNuTTZJRzUxYldKbGNsdGRMQ0JwT2lCdWRXMWlaWElzSUdvNklHNTFiV0psY2lrZ2UxeHVJQ0FnSUdOdmJuTjBJR2xEYkhWemRHVnlJRDBnWTJ4MWMzUmxjbk5iYVYwN1hHNGdJQ0FnWTI5dWMzUWdha05zZFhOMFpYSWdQU0JqYkhWemRHVnljMXRxWFR0Y2JpQWdJQ0JtYjNJZ0tHeGxkQ0JySUQwZ01Ec2dheUE4SUdOc2RYTjBaWEp6TG14bGJtZDBhRHNnYXlzcktTQjdYRzRnSUNBZ0lDQnBaaUFvWTJ4MWMzUmxjbk5iYTEwZ1BUMDlJR3BEYkhWemRHVnlLVnh1SUNBZ0lDQWdJQ0JqYkhWemRHVnljMXRyWFNBOUlHbERiSFZ6ZEdWeU8xeHVJQ0FnSUgxY2JpQWdmVnh1SUNCd2RXSnNhV01nWVhOemFXZHVRMngxYzNSbGNuTW9jM0JoY25ObFRXRjBjbWw0T2lCVGNHRnljMlZOWVhSeWFYaFBZbXBsWTNRc0lHNVNiM2R6T2lCdWRXMWlaWElwSUh0Y2JpQWdJQ0JzWlhRZ1kyeDFjM1JsY2s1MWJTQTlJREE3WEc0Z0lDQWdZMjl1YzNRZ2FYTTZJRzUxYldKbGNsdGRJRDBnVzEwN1hHNGdJQ0FnWTI5dWMzUWdhbk02SUc1MWJXSmxjbHRkSUQwZ1cxMDdYRzRnSUNBZ1kyOXVjM1FnYjNKa1pYSWdQU0JOWVhSb0xtWnNiMjl5S0UxaGRHZ3ViV0Y0S0UxaGRHZ3ViRzluTVRBb2JsSnZkM01wTENBeUtTa2dLeUF4TzF4dUlDQWdJR052Ym5OMElHMXBiazl5WkdWeUlEMGdUV0YwYUM1d2IzY29NVEFzSUc5eVpHVnlLVHRjYmlBZ0lDQmpiMjV6ZENCamJIVnpkR1Z5Y3pvZ2JuVnRZbVZ5VzEwZ1BTQnVaWGNnUVhKeVlYa29ibEp2ZDNNcExtWnBiR3dvTFRFcE8xeHVJQ0FnSUdadmNpQW9ZMjl1YzNRZ2FTQnZaaUJQWW1wbFkzUXVhMlY1Y3loemNHRnljMlZOWVhSeWFYZ3BLU0I3WEc0Z0lDQWdJQ0JtYjNJZ0tHTnZibk4wSUdvZ2IyWWdUMkpxWldOMExtdGxlWE1vYzNCaGNuTmxUV0YwY21sNFcya2dZWE1nWVc1NVhTa3BJSHRjYmlBZ0lDQWdJQ0FnYVdZZ0tFMWhkR2d1Y205MWJtUW9jM0JoY25ObFRXRjBjbWw0VzJrZ1lYTWdZVzU1WFZ0cUlHRnpJR0Z1ZVYwZ0tpQnRhVzVQY21SbGNpa2dMeUJ0YVc1UGNtUmxjaUErSURBZ0ppWmNiaUFnSUNBZ0lDQWdJQ0J6Y0dGeWMyVk5ZWFJ5YVhoYmFTQmhjeUJoYm5sZFcyb2dZWE1nWVc1NVhTQWhQVDBnVG5WdFltVnlLR2twSUNZbUlFNTFiV0psY2locUtTQStJRTUxYldKbGNpaHBLU2tnZTF4dUlDQWdJQ0FnSUNBZ0lHbHpMbkIxYzJnb1RuVnRZbVZ5S0drcEtUdGNiaUFnSUNBZ0lDQWdJQ0JxY3k1d2RYTm9LRTUxYldKbGNpaHFLU2s3WEc0Z0lDQWdJQ0FnSUNBZ2FXWWdLR05zZFhOMFpYSnpXMDUxYldKbGNpaHBLVjBnSVQwOUlDMHhJQ1ltSUdOc2RYTjBaWEp6VzA1MWJXSmxjaWhxS1YwZ0lUMDlJQzB4S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb1kyeDFjM1JsY25OYlRuVnRZbVZ5S0drcFhTQWhQVDBnWTJ4MWMzUmxjbk5iVG5WdFltVnlLR29wWFNsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXRaWEpuWlVOc2RYTjBaWEp6S0dOc2RYTjBaWEp6TENCT2RXMWlaWElvYVNrc0lFNTFiV0psY2locUtTazdYRzRnSUNBZ0lDQWdJQ0FnZlNCbGJITmxJR2xtSUNoamJIVnpkR1Z5YzF0T2RXMWlaWElvYVNsZElDRTlQU0F0TVNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJ4MWMzUmxjbk5iVG5WdFltVnlLR29wWFNBOUlHTnNkWE4wWlhKelcwNTFiV0psY2locEtWMDdYRzRnSUNBZ0lDQWdJQ0FnZlNCbGJITmxJR2xtSUNoamJIVnpkR1Z5YzF0T2RXMWlaWElvYWlsZElDRTlQU0F0TVNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJ4MWMzUmxjbk5iVG5WdFltVnlLR2twWFNBOUlHTnNkWE4wWlhKelcwNTFiV0psY2locUtWMDdYRzRnSUNBZ0lDQWdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnNkWE4wWlhKT2RXMHJLenRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnNkWE4wWlhKelcwNTFiV0psY2locEtWMGdQU0JqYkhWemRHVnlUblZ0TzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMngxYzNSbGNuTmJUblZ0WW1WeUtHb3BYU0E5SUdOc2RYTjBaWEpPZFcwN1hHNGdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNBZ0lHWnZjaUFvYkdWMElHazlNRHNnYVNBOElHTnNkWE4wWlhKekxteGxibWQwYURzZ2FTc3JLU0I3WEc0Z0lDQWdJQ0JwWmlBb1kyeDFjM1JsY25OYmFWMGdQVDA5SUMweEtTQjdYRzRnSUNBZ0lDQWdJR05zZFhOMFpYSk9kVzBnS3lzN1hHNGdJQ0FnSUNBZ0lHTnNkWE4wWlhKelcybGRJRDBnWTJ4MWMzUmxjazUxYlR0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlIdGpiSFZ6ZEdWeWN5d2dhWE02SUc1bGR5QlZhVzUwTXpKQmNuSmhlU2hwY3lrc0lHcHpPaUJ1WlhjZ1ZXbHVkRE15UVhKeVlYa29hbk1wZlR0Y2JpQWdmVnh1WEc0Z0lIQjFZbXhwWXlCMGIwOWlhbVZqZEVadmNtMG9jM0JoY25ObFRXRjBjbWw0T2lCVGNHRnljMlZOWVhSeWFYaFNaWE4xYkhRcE9pQlRjR0Z5YzJWTllYUnlhWGhQWW1wbFkzUWdlMXh1SUNBZ0lHTnZibk4wSUhOd1lYSnpaVTlpYW1WamREb2dlMXRmT2lCdWRXMWlaWEpkT2lCN1cxODZJRzUxYldKbGNsMDZJRzUxYldKbGNuMTlJRDBnZTMwN1hHNGdJQ0FnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCemNHRnljMlZOWVhSeWFYZ3VhUzVzWlc1bmRHZzdJR2tyS3lrZ2UxeHVJQ0FnSUNBZ2FXWWdLQ0Z6Y0dGeWMyVlBZbXBsWTNSYmMzQmhjbk5sVFdGMGNtbDRMbWxiYVYxZEtWeHVJQ0FnSUNBZ0lDQnpjR0Z5YzJWUFltcGxZM1JiYzNCaGNuTmxUV0YwY21sNExtbGJhVjFkSUQwZ2UzMDdYRzRnSUNBZ0lDQnpjR0Z5YzJWUFltcGxZM1JiYzNCaGNuTmxUV0YwY21sNExtbGJhVjFkVzNOd1lYSnpaVTFoZEhKcGVDNXFXMmxkWFNBOUlERWdMU0J6Y0dGeWMyVk5ZWFJ5YVhndVpHbHpkR0Z1WTJWYmFWMDdYRzRnSUNBZ0lDQnBaaUFvSVhOd1lYSnpaVTlpYW1WamRGdHpjR0Z5YzJWTllYUnlhWGd1YWx0cFhWMHBYRzRnSUNBZ0lDQWdJSE53WVhKelpVOWlhbVZqZEZ0emNHRnljMlZOWVhSeWFYZ3VhbHRwWFYwZ1BTQjdmVHRjYmlBZ0lDQWdJSE53WVhKelpVOWlhbVZqZEZ0emNHRnljMlZOWVhSeWFYZ3VhbHRwWFYxYmMzQmhjbk5sVFdGMGNtbDRMbWxiYVYxZElEMGdNU0F0SUhOd1lYSnpaVTFoZEhKcGVDNWthWE4wWVc1alpWdHBYVHRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUhOd1lYSnpaVTlpYW1WamREdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdZV1JrVEc5dmNITW9jM0JoY25ObFQySnFaV04wT2lCVGNHRnljMlZOWVhSeWFYaFBZbXBsWTNRc0lHNVNiM2R6T2lCdWRXMWlaWElwSUh0Y2JpQWdJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUc1U2IzZHpPeUJwS3lzcElIdGNiaUFnSUNBZ0lHbG1JQ2doYzNCaGNuTmxUMkpxWldOMFcybGRLVnh1SUNBZ0lDQWdJQ0J6Y0dGeWMyVlBZbXBsWTNSYmFWMGdQU0I3ZlR0Y2JpQWdJQ0FnSUhOd1lYSnpaVTlpYW1WamRGdHBYVnRwWFNBOUlIUm9hWE11WDI5d2RHbHZibk11YlhWc2RFWmhZM1J2Y2p0Y2JpQWdJQ0I5WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUc1dmNtMWhiR2w2WlNoemNHRnljMlZQWW1wbFkzUTZJRk53WVhKelpVMWhkSEpwZUU5aWFtVmpkQ2tnZTF4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnYVNCdlppQlBZbXBsWTNRdWEyVjVjeWh6Y0dGeWMyVlBZbXBsWTNRcEtTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCeWIzY2dQU0J6Y0dGeWMyVlBZbXBsWTNSYmFTQmhjeUJoYm5sZE8xeHVJQ0FnSUNBZ2JHVjBJSE4xYlNBOUlEQTdYRzRnSUNBZ0lDQm1iM0lnS0dOdmJuTjBJR29nYjJZZ1QySnFaV04wTG10bGVYTW9jbTkzS1NsY2JpQWdJQ0FnSUNBZ2MzVnRJQ3M5SUhKdmQxdHFJR0Z6SUdGdWVWMDdYRzRnSUNBZ0lDQnBaaUFvYzNWdElEMDlQU0F3S1NCamIyNTBhVzUxWlR0Y2JpQWdJQ0FnSUdadmNpQW9ZMjl1YzNRZ2FpQnZaaUJQWW1wbFkzUXVhMlY1Y3loeWIzY3BLVnh1SUNBZ0lDQWdJQ0J6Y0dGeWMyVlBZbXBsWTNSYmFTQmhjeUJoYm5sZFcyb2dZWE1nWVc1NVhTQXZQU0J6ZFcwN1hHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCbGVIQmhibVFvYzNCaGNuTmxUMkpxWldOME9pQlRjR0Z5YzJWTllYUnlhWGhQWW1wbFkzUXNJRzVTYjNkek9pQnVkVzFpWlhJcElIdGNiaUFnSUNCamIyNXpkQ0JsZUhCaGJtUmxaRTlpYW1WamREb2dVM0JoY25ObFRXRjBjbWw0VDJKcVpXTjBJRDBnZTMwN1hHNGdJQ0FnWTI5dWMzUWdiM0prWlhJZ1BTQk5ZWFJvTG1ac2IyOXlLRTFoZEdndWJXRjRLRTFoZEdndWJHOW5NVEFvYmxKdmQzTXBMQ0F5S1NrZ0t5QXhPMXh1SUNBZ0lHTnZibk4wSUcxcGJrOXlaR1Z5SUQwZ1RXRjBhQzV3YjNjb01UQXNJRzl5WkdWeUtUdGNiaUFnSUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElHNVNiM2R6T3lCcEt5c3BJSHRjYmlBZ0lDQWdJR2xtSUNnaGMzQmhjbk5sVDJKcVpXTjBXMmxkS1Z4dUlDQWdJQ0FnSUNCamIyNTBhVzUxWlR0Y2JpQWdJQ0FnSUM4dklHTnZibk4wSUhKdmR5QTlJSE53WVhKelpVOWlhbVZqZEZ0cFhUdGNiaUFnSUNBZ0lHVjRjR0Z1WkdWa1QySnFaV04wVzJsZElEMGdlMzA3WEc0Z0lDQWdJQ0JtYjNJZ0tHeGxkQ0JxSUQwZ2FUc2dhaUE4SUc1U2IzZHpPeUJxS3lzcElIdGNiaUFnSUNBZ0lDQWdhV1lnS0NGemNHRnljMlZQWW1wbFkzUmJhVjAvTGx0cVhTbGNiaUFnSUNBZ0lDQWdJQ0JqYjI1MGFXNTFaVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdkbUZzSUQwZ2RHaHBjeTVuWlhSRmVIQmhibVJXWVd4MVpTaHpjR0Z5YzJWUFltcGxZM1FzSUdrc0lHb3BPeUF2TDNCeWRXNXBibWNnYzNSbGNGeHVJQ0FnSUNBZ0lDQnBaaUFvVFdGMGFDNXliM1Z1WkNoMllXd2dLaUJ0YVc1UGNtUmxjaWtnTHlCdGFXNVBjbVJsY2lBK0lEQXBJSHRjYmlBZ0lDQWdJQ0FnSUNCbGVIQmhibVJsWkU5aWFtVmpkRnRwWFZ0cVhTQTlJSFpoYkR0Y2JpQWdJQ0FnSUNBZ0lDQnBaaUFvSVdWNGNHRnVaR1ZrVDJKcVpXTjBXMnBkS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdaWGh3WVc1a1pXUlBZbXBsWTNSYmFsMGdQU0I3ZlR0Y2JpQWdJQ0FnSUNBZ0lDQmxlSEJoYm1SbFpFOWlhbVZqZEZ0cVhWdHBYU0E5SUhaaGJEdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnWlhod1lXNWtaV1JQWW1wbFkzUTdYRzRnSUgxY2JseHVJQ0F2THlCd2NtbDJZWFJsSUhCeWRXNWxLSEp2ZHpvZ1UzQmhjbk5sVFdGMGNtbDRUMkpxWldOMFcyNTFiV0psY2wwcElIdGNibHh1SUNBdkx5QjlYRzVjYmlBZ2NISnBkbUYwWlNCcGJtWnNZWFJsS0hOd1lYSnpaVTlpYW1WamREb2dVM0JoY25ObFRXRjBjbWw0VDJKcVpXTjBLU0I3WEc0Z0lDQWdabTl5SUNoamIyNXpkQ0JwSUc5bUlFOWlhbVZqZEM1clpYbHpLSE53WVhKelpVOWlhbVZqZENrcElIdGNiaUFnSUNBZ0lHTnZibk4wSUhKdmR5QTlJSE53WVhKelpVOWlhbVZqZEZ0cElHRnpJR0Z1ZVYwN1hHNGdJQ0FnSUNCbWIzSWdLR052Ym5OMElHb2diMllnVDJKcVpXTjBMbXRsZVhNb2NtOTNLU2xjYmlBZ0lDQWdJQ0FnYzNCaGNuTmxUMkpxWldOMFcya2dZWE1nWVc1NVhWdHFJR0Z6SUdGdWVWMGdQU0JOWVhSb0xuQnZkeWh6Y0dGeWMyVlBZbXBsWTNSYmFTQmhjeUJoYm5sZFcyb2dZWE1nWVc1NVhTd2dkR2hwY3k1ZmIzQjBhVzl1Y3k1cGJtWnNZWFJsUm1GamRHOXlLVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJR2RsZEVWNGNHRnVaRlpoYkhWbEtITndZWEp6WlU5aWFtVmpkRG9nVTNCaGNuTmxUV0YwY21sNFQySnFaV04wTENCcE9pQmhibmtzSUdvNklHRnVlU2tnZTF4dUlDQWdJR3hsZENCMllXd2dQU0F3TzF4dUlDQWdJR052Ym5OMElHTjFjbkpsYm5SSmJtUmxlR1Z6SUQwZ1QySnFaV04wTG10bGVYTW9jM0JoY25ObFQySnFaV04wVzJsZElEOC9JSHQ5S1R0Y2JpQWdJQ0JqYjI1emRDQnZkR2hsY2tsdVpHVjRaWE1nUFNCUFltcGxZM1F1YTJWNWN5aHpjR0Z5YzJWUFltcGxZM1JiYWwwZ1B6OGdlMzBwTzF4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnYXlCdlppQmpkWEp5Wlc1MFNXNWtaWGhsY3lrZ2UxeHVJQ0FnSUNBZ2FXWWdLRzkwYUdWeVNXNWtaWGhsY3k1cGJtTnNkV1JsY3locktTbGNiaUFnSUNBZ0lDQWdkbUZzSUNzOUlITndZWEp6WlU5aWFtVmpkRnRwWFZ0cklHRnpJR0Z1ZVYwZ0tpQnpjR0Z5YzJWUFltcGxZM1JiYWwxYmF5QmhjeUJoYm5sZE8xeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdkbUZzTzF4dUlDQjlYRzU5WEc1Y2JpSmRmUT09IiwiaW1wb3J0IHsgU3BhcnNlTWF0cml4U2VydmljZSB9IGZyb20gJy4uL2Rpc3RhbmNlLW1hdHJpeC9zcGFyc2UtbWF0cml4LXNlcnZpY2UnO1xuaW1wb3J0IHsgTUNMU3BhcnNlUmVkdWNlciB9IGZyb20gJy4vbWFyY292LWNsdXN0ZXInO1xub25tZXNzYWdlID0gYXN5bmMgKGV2ZW50KSA9PiB7XG4gICAgY29uc3QgeyBkYXRhLCB0aHJlc2hvbGQsIHdlaWdodHMsIGFnZ3JlZ2F0aW9uTWV0aG9kLCBkaXN0YW5jZUZuQXJncywgZGlzdGFuY2VGbnMsIG1heEl0ZXJhdGlvbnMgfSA9IGV2ZW50LmRhdGE7XG4gICAgY29uc3Qgc3BhcnNlID0gYXdhaXQgbmV3IFNwYXJzZU1hdHJpeFNlcnZpY2UoKVxuICAgICAgICAuY2FsY011bHRpQ29sdW1uKGRhdGEsIGRpc3RhbmNlRm5zLCB0aHJlc2hvbGQgLyAxMDAsIGRpc3RhbmNlRm5BcmdzLCB3ZWlnaHRzLCBhZ2dyZWdhdGlvbk1ldGhvZCk7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgbmV3IE1DTFNwYXJzZVJlZHVjZXIoeyBtYXhJdGVyYXRpb25zOiBtYXhJdGVyYXRpb25zID8/IDUgfSkudHJhbnNmb3JtKHNwYXJzZSwgZGF0YVswXS5sZW5ndGgpO1xuICAgIHBvc3RNZXNzYWdlKHsgcmVzIH0pO1xufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWJXTnNMWGR2Y210bGNpNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSW0xamJDMTNiM0pyWlhJdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJRVUVzVDBGQlR5eEZRVUZETEcxQ1FVRnRRaXhGUVVGRExFMUJRVTBzTUVOQlFUQkRMRU5CUVVNN1FVRkhOMFVzVDBGQlR5eEZRVUZETEdkQ1FVRm5RaXhGUVVGRExFMUJRVTBzYTBKQlFXdENMRU5CUVVNN1FVRkZiRVFzVTBGQlV5eEhRVUZITEV0QlFVc3NSVUZCUlN4TFFVRkxMRVZCUVVVc1JVRkJSVHRKUVVNeFFpeE5RVUZOTEVWQlFVTXNTVUZCU1N4RlFVRkZMRk5CUVZNc1JVRkJSU3hQUVVGUExFVkJRVVVzYVVKQlFXbENMRVZCUVVVc1kwRkJZeXhGUVVGRkxGZEJRVmNzUlVGQlJTeGhRVUZoTEVWQlFVTXNSMEZIYUVJc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF6dEpRVU14Uml4TlFVRk5MRTFCUVUwc1IwRkJSeXhOUVVGTkxFbEJRVWtzYlVKQlFXMUNMRVZCUVVVN1UwRkRNME1zWlVGQlpTeERRVUZETEVsQlFVa3NSVUZCUlN4WFFVRlhMRVZCUVVVc1UwRkJVeXhIUVVGSExFZEJRVWNzUlVGQlJTeGpRVUZqTEVWQlFVVXNUMEZCVHl4RlFVRkZMR2xDUVVGcFFpeERRVUZETEVOQlFVTTdTVUZEYmtjc1RVRkJUU3hIUVVGSExFZEJRVWNzVFVGQlRTeEpRVUZKTEdkQ1FVRm5RaXhEUVVGRExFVkJRVU1zWVVGQllTeEZRVUZGTEdGQlFXRXNTVUZCU1N4RFFVRkRMRVZCUVVNc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF5eE5RVUZOTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzBsQlF6bEhMRmRCUVZjc1EwRkJReXhGUVVGRExFZEJRVWNzUlVGQlF5eERRVUZETEVOQlFVTTdRVUZEY2tJc1EwRkJReXhEUVVGRElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIdFRjR0Z5YzJWTllYUnlhWGhUWlhKMmFXTmxmU0JtY205dElDY3VMaTlrYVhOMFlXNWpaUzF0WVhSeWFYZ3ZjM0JoY25ObExXMWhkSEpwZUMxelpYSjJhV05sSnp0Y2JtbHRjRzl5ZENCN1JHbHpkR0Z1WTJWQloyZHlaV2RoZEdsdmJrMWxkR2h2WkgwZ1puSnZiU0FuTGk0dlpHbHpkR0Z1WTJVdGJXRjBjbWw0TDNSNWNHVnpKenRjYm1sdGNHOXlkQ0I3UzI1dmQyNU5aWFJ5YVdOemZTQm1jbTl0SUNjdUxpOTBlWEJsWkMxdFpYUnlhV056Snp0Y2JtbHRjRzl5ZENCN1RVTk1VM0JoY25ObFVtVmtkV05sY24wZ1puSnZiU0FuTGk5dFlYSmpiM1l0WTJ4MWMzUmxjaWM3WEc1Y2JtOXViV1Z6YzJGblpTQTlJR0Z6ZVc1aklDaGxkbVZ1ZENrZ1BUNGdlMXh1SUNCamIyNXpkQ0I3WkdGMFlTd2dkR2h5WlhOb2IyeGtMQ0IzWldsbmFIUnpMQ0JoWjJkeVpXZGhkR2x2YmsxbGRHaHZaQ3dnWkdsemRHRnVZMlZHYmtGeVozTXNJR1JwYzNSaGJtTmxSbTV6TENCdFlYaEpkR1Z5WVhScGIyNXpmVHBjYmlBZ0lIdGtZWFJoT2lCaGJubGJYVnRkTENCMGFISmxjMmh2YkdRNklHNTFiV0psY2l4Y2JpQWdJQ0IzWldsbmFIUnpPaUJ1ZFcxaVpYSmJYU3dnWVdkbmNtVm5ZWFJwYjI1TlpYUm9iMlE2SUVScGMzUmhibU5sUVdkbmNtVm5ZWFJwYjI1TlpYUm9iMlFzWEc0Z0lDQWdaR2x6ZEdGdVkyVkdibk02SUV0dWIzZHVUV1YwY21samMxdGRMQ0JrYVhOMFlXNWpaVVp1UVhKbmN6b2dZVzU1VzEwc0lHMWhlRWwwWlhKaGRHbHZibk02SUc1MWJXSmxjbjBnUFNCbGRtVnVkQzVrWVhSaE8xeHVJQ0JqYjI1emRDQnpjR0Z5YzJVZ1BTQmhkMkZwZENCdVpYY2dVM0JoY25ObFRXRjBjbWw0VTJWeWRtbGpaU2dwWEc0Z0lDQWdMbU5oYkdOTmRXeDBhVU52YkhWdGJpaGtZWFJoTENCa2FYTjBZVzVqWlVadWN5d2dkR2h5WlhOb2IyeGtJQzhnTVRBd0xDQmthWE4wWVc1alpVWnVRWEpuY3l3Z2QyVnBaMmgwY3l3Z1lXZG5jbVZuWVhScGIyNU5aWFJvYjJRcE8xeHVJQ0JqYjI1emRDQnlaWE1nUFNCaGQyRnBkQ0J1WlhjZ1RVTk1VM0JoY25ObFVtVmtkV05sY2loN2JXRjRTWFJsY21GMGFXOXVjem9nYldGNFNYUmxjbUYwYVc5dWN5QS9QeUExZlNrdWRISmhibk5tYjNKdEtITndZWEp6WlN3Z1pHRjBZVnN3WFM1c1pXNW5kR2dwTzF4dUlDQndiM04wVFdWemMyRm5aU2g3Y21WemZTazdYRzU5TzF4dUlsMTkiXSwibmFtZXMiOlsiRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZHMiLCJfX3dlYnBhY2tfcmVxdWlyZV9fIiwiY2h1bmtJZCIsImciLCJnbG9iYWxUaGlzIiwidGhpcyIsIkZ1bmN0aW9uIiwiZSIsIndpbmRvdyIsIm8iLCJvYmoiLCJwcm9wIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwic2NyaXB0VXJsIiwiaW1wb3J0U2NyaXB0cyIsImxvY2F0aW9uIiwiZG9jdW1lbnQiLCJjdXJyZW50U2NyaXB0Iiwic3JjIiwic2NyaXB0cyIsImdldEVsZW1lbnRzQnlUYWdOYW1lIiwibGVuZ3RoIiwiaSIsIkVycm9yIiwicmVwbGFjZSIsInAiLCJiIiwic2VsZiIsImlzTmlsIiwieCIsImluc2VydFNtYWxsZXIiLCJkaXN0YW5jZXNBciIsImluZGV4ZXMiLCJudW0iLCJpbmRleCIsIm5ld1Bvc2l0aW9uIiwiZmluZEluZGV4IiwidiIsInBvcCIsInNwbGljZSIsIlNwYXJzZU1hdHJpeFNlcnZpY2UiLCJjb25zdHJ1Y3RvciIsIl93b3JrZXJDb3VudCIsIk1hdGgiLCJtYXgiLCJuYXZpZ2F0b3IiLCJoYXJkd2FyZUNvbmN1cnJlbmN5IiwiY2FsY011bHRpQ29sdW1uIiwidmFsdWVzIiwiZm5OYW1lcyIsInRocmVzaG9sZCIsIm9wdHMiLCJ3ZWlnaHRzIiwiYWdncmVnYXRpb25NZXRob2QiLCJFVUNMSURFQU4iLCJtYXRTaXplIiwiY2h1bmtTaXplIiwiZmxvb3IiLCJtaW5UaHJlc2hvbGQiLCJnZXRNaW5pbWFsVGhyZXNob2xkIiwiY29uc29sZSIsImxvZyIsImZvckVhY2giLCJfIiwicHJvbWlzZXMiLCJBcnJheSIsIndvcmtlcnMiLCJmaWxsIiwibWFwIiwiV29ya2VyIiwiVVJMIiwiaWR4IiwiUHJvbWlzZSIsInJlc29sdmVXb3JrZXIiLCJyZWplY3RXb3JrZXIiLCJzdGFydElkeCIsImVuZElkeCIsIkludDMyQXJyYXkiLCJqIiwiZGlzdGFuY2UiLCJGbG9hdDMyQXJyYXkiLCJwb3N0TWVzc2FnZSIsIm9ubWVzc2FnZSIsImRhdGEiLCJlcnJvciIsInRlcm1pbmF0ZSIsInJlc3VsdHMiLCJhbGwiLCJmdWxsU2l6ZSIsInJlZHVjZSIsImFjYyIsInZhbCIsIm9mZnNldCIsInJlcyIsInNldCIsImNhbGMiLCJmbk5hbWUiLCJnZXRLTk4iLCJuTmVpZ2hib3VycyIsIm11bHRpQ29sdW1uS05OIiwiZ2V0VGhyZXNob2xkS05OIiwibXVsdGlDb2x1bW5UaHJlc2hvbGRLbm4iLCJzb21lIiwia25uRGlzdGFuY2VzIiwia25uSW5kZXhlcyIsImtublNpemVzIiwia25uUmVzIiwiZ2V0U2FtcGxlRGlzdGFuY2VzIiwidGhyZXNob2xkV29ya2VycyIsIm1heFNhbXBsZVNpemUiLCJzYW1wbGVTaXNlIiwibWluIiwidGVzdFNldFNpemVQZXJXb3JrZXIiLCJ0UHJvbWlzZXMiLCJzYW1wbGVMZW5ndGgiLCJzb3J0IiwidyIsImNhbGNTeW5jIiwiZGlzdGFuY2VGbiIsImRpc3RhbmNlcyIsImNudCIsIm1pIiwibWoiLCJ2YWx1ZSIsInB1c2giLCJhc3luYyIsImJpb0xheW91dCIsImNsdXN0ZXIiLCJzcGFyc2VPYmplY3QiLCJuIiwiaXMiLCJqcyIsImEiLCJlbWJlZFgiLCJyYW5kb20iLCJlbWJlZFkiLCJ4VmVsb2NpdGllcyIsInlWZWxvY2l0aWVzIiwidGVtcGVyYXR1cmUiLCJkeCIsImR5IiwiYWJzIiwidmVjU2l6ZSIsInNxcnQiLCJtaW5YIiwibWluWSIsIm1heFgiLCJtYXhZIiwicmFuZ2VYIiwicmFuZ2VZIiwiZ2V0TGF5b3V0RW1iZWRkaW5ncyIsImRlZmF1bHRNQ0xPcHRpb25zIiwiZXhwYW5kRmFjdG9yIiwibWF4SXRlcmF0aW9ucyIsImluZmxhdGVGYWN0b3IiLCJtdWx0RmFjdG9yIiwiTUNMU3BhcnNlUmVkdWNlciIsIl9vcHRpb25zIiwidHJhbnNmb3JtIiwic3BhcnNlTWF0cml4IiwiblJvd3MiLCJ0b09iamVjdEZvcm0iLCJhZGRMb29wcyIsIm5vcm1hbGl6ZSIsImV4cGFuZCIsImluZmxhdGUiLCJjbHVzdGVycyIsImFzc2lnbkNsdXN0ZXJzIiwiY29ycmVjdENsdXN0ZXJzIiwiZW1iZWRkaW5ncyIsImxheW91dCIsImNsdXN0ZXJTaXplTWFwIiwic29ydGVkSW5kZXhlcyIsImtleXMiLCJOdW1iZXIiLCJjbHVzdGVyTWFwIiwiY2x1c3RlcklkeCIsImNsdXN0ZXJOdW0iLCJzb3J0ZWRDbHVzdGVyTmFtZXMiLCJwZXJSb3ciLCJ5T2Zmc2V0IiwiY2x1c3Rlck5hbWUiLCJjZWlsIiwib2Zmc2V0WCIsIm1lcmdlQ2x1c3RlcnMiLCJpQ2x1c3RlciIsImpDbHVzdGVyIiwiayIsIm9yZGVyIiwibG9nMTAiLCJtaW5PcmRlciIsInBvdyIsInJvdW5kIiwiVWludDMyQXJyYXkiLCJyb3ciLCJzdW0iLCJleHBhbmRlZE9iamVjdCIsImdldEV4cGFuZFZhbHVlIiwiY3VycmVudEluZGV4ZXMiLCJvdGhlckluZGV4ZXMiLCJpbmNsdWRlcyIsImV2ZW50IiwiZGlzdGFuY2VGbkFyZ3MiLCJkaXN0YW5jZUZucyIsInNwYXJzZSJdLCJzb3VyY2VSb290IjoiIn0=