@datagrok/eda 1.1.16 → 1.1.18
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/CHANGELOG.md +11 -0
- package/dist/221.js +1 -1
- package/dist/246.js +2 -0
- package/dist/42.js +2 -2
- package/dist/523.js +3 -0
- package/dist/590.js +1 -1
- package/dist/694.js +2 -2
- package/dist/972.js +2 -0
- package/dist/package-test.js +2 -2
- package/dist/package.js +2 -2
- package/package.json +3 -3
- package/src/package.ts +6 -3
- package/dist/133.js +0 -3
- package/dist/352.js +0 -2
- package/dist/709.js +0 -2
- /package/dist/{133.js.LICENSE.txt → 523.js.LICENSE.txt} +0 -0
package/dist/709.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var eda;(()=>{"use strict";var t,e,r={2357:(t,e,r)=>{var o=r(2590);async function n(t,e,r){const o=t.length,n=[],s=[];for(let a=0;a<o;a++)for(let l=a+1;l<o;l++){const o=t[a],i=t[l];e[o]?.[i]>=r&&(n.push(a),s.push(l))}return function(t,e,r){const o=new Float32Array(r.length).fill(0).map((()=>10*Math.random())),n=new Float32Array(r.length).fill(0).map((()=>10*Math.random())),s=new Float32Array(r.length).fill(0),a=new Float32Array(r.length).fill(0);for(let l=0;l<100;l++){const i=1-l/100;s.fill(0),a.fill(0);for(let r=0;r<t.length;r++){const l=t[r],c=e[r],f=o[l]-o[c],h=n[l]-n[c];Math.abs(f)>=1&&(s[l]-=i*f,s[c]+=i*f),Math.abs(h)>=1&&(a[l]-=i*h,a[c]+=i*h)}for(let t=0;t<r.length;t++){const e=Math.sqrt(s[t]*s[t]+a[t]*a[t]);e>0&&(o[t]+=s[t]/e*i,n[t]+=a[t]/e*i)}}let l=o[0],i=n[0],c=o[0],f=n[0];for(let t=1;t<r.length;t++)l=Math.min(l,o[t]),i=Math.min(i,n[t]),c=Math.max(c,o[t]),f=Math.max(f,n[t]);let h=c-l,u=f-i;0===h&&(h=c);for(let t=0;t<r.length;t++)o[t]=(o[t]-l)/h/2+.5;0===u&&(u=f);for(let t=0;t<r.length;t++)n[t]=(n[t]-i)/u/2+.5;return{embedX:o,embedY:n}}(n,s,t)}const s={expandFactor:2,maxIterations:5,inflateFactor:2,multFactor:1};class a{constructor(t={}){this._options={...s,...t}}async transform(t,e){let r=this.toObjectForm(t);if(this._options.maxIterations>0){this.addLoops(r,e),this.normalize(r);for(let t=0;t<this._options.maxIterations;t++)r=this.expand(r,e),this.inflate(r),this.normalize(r)}const{clusters:o,is:n,js:s}=this.assignClusters(r,e);this.correctClusters(o);const a=await this.layout(o,r,e);return{clusters:o,embedX:a.embedX,embedY:a.embedY,is:n,js:s}}correctClusters(t){const e={};for(const r of t)e[r]||(e[r]=0),e[r]++;const r=Object.keys(e).map(Number).sort(((t,r)=>e[t]-e[r])),o={};r.forEach(((t,e)=>o[t]=e+1));for(let e=0;e<t.length;e++)t[e]=o[t[e]]}async layout(t,e,r){const o=new Float32Array(r).fill(0),s=new Float32Array(r).fill(0),a={};t.forEach(((t,e)=>{a[t]||(a[t]=[]),a[t].push(e)}));let l=0;const i=Object.keys(a);i.sort(((t,e)=>a[e].length-a[t].length));let c=6,f=0;for(const t of i){const r=a[t],i=await n(r,e,.001);l===Math.ceil(c/1.5)&&(l=0,f+=5/c,c=Math.ceil(1.5*c));const h=l%c*5/c*1.5;for(let t=0;t<i.embedX.length;t++)o[r[t]]=5*i.embedX[t]/c+h,s[r[t]]=5*i.embedY[t]/c+f;l++}return{embedX:o,embedY:s}}mergeClusters(t,e,r){const o=t[e],n=t[r];for(let e=0;e<t.length;e++)t[e]===n&&(t[e]=o)}assignClusters(t,e){let r=0;const o=[],n=[],s=Math.floor(Math.max(Math.log10(e),2))+1,a=Math.pow(10,s),l=new Array(e).fill(-1);for(const e of Object.keys(t))for(const s of Object.keys(t[e]))Math.round(t[e][s]*a)/a>0&&t[e][s]!==Number(e)&&Number(s)>Number(e)&&(o.push(Number(e)),n.push(Number(s)),-1!==l[Number(e)]&&-1!==l[Number(s)]?l[Number(e)]!==l[Number(s)]&&this.mergeClusters(l,Number(e),Number(s)):-1!==l[Number(e)]?l[Number(s)]=l[Number(e)]:-1!==l[Number(s)]?l[Number(e)]=l[Number(s)]:(r++,l[Number(e)]=r,l[Number(s)]=r));for(let t=0;t<l.length;t++)-1===l[t]&&(r++,l[t]=r);return{clusters:l,is:new Uint32Array(o),js:new Uint32Array(n)}}toObjectForm(t){const e={};for(let r=0;r<t.i.length;r++)e[t.i[r]]||(e[t.i[r]]={}),e[t.i[r]][t.j[r]]=1-t.distance[r],e[t.j[r]]||(e[t.j[r]]={}),e[t.j[r]][t.i[r]]=1-t.distance[r];return e}addLoops(t,e){for(let r=0;r<e;r++)t[r]||(t[r]={}),t[r][r]=this._options.multFactor}normalize(t){for(const e of Object.keys(t)){const r=t[e];let o=0;for(const t of Object.keys(r))o+=r[t];if(0!==o)for(const n of Object.keys(r))t[e][n]/=o}}expand(t,e){const r={},o=Math.floor(Math.max(Math.log10(e),2))+1,n=Math.pow(10,o);for(let o=0;o<e;o++)if(t[o]){r[o]={};for(let s=o;s<e;s++){if(!t[o]?.[s])continue;const e=this.getExpandValue(t,o,s);Math.round(e*n)/n>0&&(r[o][s]=e,r[s]||(r[s]={}),r[s][o]=e)}}return r}inflate(t){for(const e of Object.keys(t)){const r=t[e];for(const o of Object.keys(r))t[e][o]=Math.pow(t[e][o],this._options.inflateFactor)}}getExpandValue(t,e,r){let o=0;const n=Object.keys(t[e]??{}),s=Object.keys(t[r]??{});for(const a of n)s.includes(a)&&(o+=t[e][a]*t[r][a]);return o}}onmessage=async t=>{const{data:e,threshold:r,weights:n,aggregationMethod:s,distanceFnArgs:l,distanceFns:i,maxIterations:c}=t.data,f=await(new o._).calcMultiColumn(e,i,r/100,l,n,s),h=await new a({maxIterations:c??5}).transform(f,e[0].length);postMessage({res:h})}},6814:(t,e,r)=>{r.d(e,{cZ:()=>n,kK:()=>o}),r(7862);const o=t=>null==t;function n(t,e,r,o){if(r>t[t.length-1])return;const n=t.findIndex((t=>r<t));t.pop(),t.splice(n,0,r),e.pop(),e.splice(n,0,o)}}},o={};function n(t){var e=o[t];if(void 0!==e)return e.exports;var s=o[t]={exports:{}};return r[t](s,s.exports,n),s.exports}n.m=r,n.x=()=>{var t=n.O(void 0,[590],(()=>n(2357)));return n.O(t)},t=[],n.O=(e,r,o,s)=>{if(!r){var a=1/0;for(f=0;f<t.length;f++){for(var[r,o,s]=t[f],l=!0,i=0;i<r.length;i++)(!1&s||a>=s)&&Object.keys(n.O).every((t=>n.O[t](r[i])))?r.splice(i--,1):(l=!1,s<a&&(a=s));if(l){t.splice(f--,1);var c=o();void 0!==c&&(e=c)}}return e}s=s||0;for(var f=t.length;f>0&&t[f-1][2]>s;f--)t[f]=t[f-1];t[f]=[r,o,s]},n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.f={},n.e=t=>Promise.all(Object.keys(n.f).reduce(((e,r)=>(n.f[r](t,e),e)),[])),n.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 o=r.length-1;o>-1&&!t;)t=r[o--].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+"";var t={709:1};n.f.i=(e,r)=>{t[e]||importScripts(n.p+n.u(e))};var e=self.webpackChunkeda=self.webpackChunkeda||[],r=e.push.bind(e);e.push=e=>{var[o,s,a]=e;for(var l in s)n.o(s,l)&&(n.m[l]=s[l]);for(a&&a(n);o.length;)t[o.pop()]=1;r(e)}})(),e=n.x,n.x=()=>n.e(590).then(e);var s=n.x();eda=s})();
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QVEsT0FBUSxJQUFJQSxRQUFRLFFBQVMsSUFBSUEsUUFBUSxZQUFhLEtBQ3BGcEQsRUFBb0JxRCxFQUFJVixDLFdDbEJ4QjNDLEVBQW9CL0csRUFBSXFLLEtBQUtULFNBQVcsR0FJeEMsSUFBSVUsRUFBa0IsQ0FDckIsSUFBSyxHQWdCTnZELEVBQW9CMEIsRUFBRTVJLEVBQUksQ0FBQzhJLEVBQVNJLEtBRS9CdUIsRUFBZ0IzQixJQUVsQmdCLGNBQWM1QyxFQUFvQnFELEVBQUlyRCxFQUFvQmlDLEVBQUVMLEdBRTlELEVBR0QsSUFBSTRCLEVBQXFCRixLQUFzQixnQkFBSUEsS0FBc0IsaUJBQUssR0FDMUVHLEVBQTZCRCxFQUFtQnRLLEtBQUt3SyxLQUFLRixHQUM5REEsRUFBbUJ0SyxLQXZCQ3VGLElBQ25CLElBQUtrQyxFQUFVZ0QsRUFBYUMsR0FBV25GLEVBQ3ZDLElBQUksSUFBSXdCLEtBQVkwRCxFQUNoQjNELEVBQW9Cc0IsRUFBRXFDLEVBQWExRCxLQUNyQ0QsRUFBb0JPLEVBQUVOLEdBQVkwRCxFQUFZMUQsSUFJaEQsSUFERzJELEdBQVNBLEVBQVE1RCxHQUNkVyxFQUFTaEksUUFDZDRLLEVBQWdCNUMsRUFBU2QsT0FBUyxFQUNuQzRELEVBQTJCaEYsRUFBSyxDLEtabkI3QnJHLEVBQU80SCxFQUFvQlosRUFDL0JZLEVBQW9CWixFQUFJLElBQ2hCWSxFQUFvQjJCLEVBQUUsS0FBS2tDLEtBQUt6TCxHYUR4QyxJQUFJb0ksRUFBc0JSLEVBQW9CWixJIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZWRhL3dlYnBhY2svcnVudGltZS9jaHVuayBsb2FkZWQiLCJ3ZWJwYWNrOi8vZWRhL3dlYnBhY2svcnVudGltZS9zdGFydHVwIGNodW5rIGRlcGVuZGVuY2llcyIsIndlYnBhY2s6Ly9lZGEvLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9tbC9zcmMvTUNML2Jpby1sYXlvdXQuanMiLCJ3ZWJwYWNrOi8vZWRhLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvbWwvc3JjL01DTC9tYXJjb3YtY2x1c3Rlci5qcyIsIndlYnBhY2s6Ly9lZGEvLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9tbC9zcmMvTUNML21jbC13b3JrZXIuanMiLCJ3ZWJwYWNrOi8vZWRhLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvbWwvc3JjL2Rpc3RhbmNlLW1hdHJpeC91dGlscy5qcyIsIndlYnBhY2s6Ly9lZGEvd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vZWRhL3dlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyIsIndlYnBhY2s6Ly9lZGEvd2VicGFjay9ydW50aW1lL2Vuc3VyZSBjaHVuayIsIndlYnBhY2s6Ly9lZGEvd2VicGFjay9ydW50aW1lL2dldCBqYXZhc2NyaXB0IGNodW5rIGZpbGVuYW1lIiwid2VicGFjazovL2VkYS93ZWJwYWNrL3J1bnRpbWUvZ2xvYmFsIiwid2VicGFjazovL2VkYS93ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjazovL2VkYS93ZWJwYWNrL3J1bnRpbWUvcHVibGljUGF0aCIsIndlYnBhY2s6Ly9lZGEvd2VicGFjay9ydW50aW1lL2ltcG9ydFNjcmlwdHMgY2h1bmsgbG9hZGluZyIsIndlYnBhY2s6Ly9lZGEvd2VicGFjay9zdGFydHVwIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBkZWZlcnJlZCA9IFtdO1xuX193ZWJwYWNrX3JlcXVpcmVfXy5PID0gKHJlc3VsdCwgY2h1bmtJZHMsIGZuLCBwcmlvcml0eSkgPT4ge1xuXHRpZihjaHVua0lkcykge1xuXHRcdHByaW9yaXR5ID0gcHJpb3JpdHkgfHwgMDtcblx0XHRmb3IodmFyIGkgPSBkZWZlcnJlZC5sZW5ndGg7IGkgPiAwICYmIGRlZmVycmVkW2kgLSAxXVsyXSA+IHByaW9yaXR5OyBpLS0pIGRlZmVycmVkW2ldID0gZGVmZXJyZWRbaSAtIDFdO1xuXHRcdGRlZmVycmVkW2ldID0gW2NodW5rSWRzLCBmbiwgcHJpb3JpdHldO1xuXHRcdHJldHVybjtcblx0fVxuXHR2YXIgbm90RnVsZmlsbGVkID0gSW5maW5pdHk7XG5cdGZvciAodmFyIGkgPSAwOyBpIDwgZGVmZXJyZWQubGVuZ3RoOyBpKyspIHtcblx0XHR2YXIgW2NodW5rSWRzLCBmbiwgcHJpb3JpdHldID0gZGVmZXJyZWRbaV07XG5cdFx0dmFyIGZ1bGZpbGxlZCA9IHRydWU7XG5cdFx0Zm9yICh2YXIgaiA9IDA7IGogPCBjaHVua0lkcy5sZW5ndGg7IGorKykge1xuXHRcdFx0aWYgKChwcmlvcml0eSAmIDEgPT09IDAgfHwgbm90RnVsZmlsbGVkID49IHByaW9yaXR5KSAmJiBPYmplY3Qua2V5cyhfX3dlYnBhY2tfcmVxdWlyZV9fLk8pLmV2ZXJ5KChrZXkpID0+IChfX3dlYnBhY2tfcmVxdWlyZV9fLk9ba2V5XShjaHVua0lkc1tqXSkpKSkge1xuXHRcdFx0XHRjaHVua0lkcy5zcGxpY2Uoai0tLCAxKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGZ1bGZpbGxlZCA9IGZhbHNlO1xuXHRcdFx0XHRpZihwcmlvcml0eSA8IG5vdEZ1bGZpbGxlZCkgbm90RnVsZmlsbGVkID0gcHJpb3JpdHk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmKGZ1bGZpbGxlZCkge1xuXHRcdFx0ZGVmZXJyZWQuc3BsaWNlKGktLSwgMSlcblx0XHRcdHZhciByID0gZm4oKTtcblx0XHRcdGlmIChyICE9PSB1bmRlZmluZWQpIHJlc3VsdCA9IHI7XG5cdFx0fVxuXHR9XG5cdHJldHVybiByZXN1bHQ7XG59OyIsInZhciBuZXh0ID0gX193ZWJwYWNrX3JlcXVpcmVfXy54O1xuX193ZWJwYWNrX3JlcXVpcmVfXy54ID0gKCkgPT4ge1xuXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXy5lKDU5MCkudGhlbihuZXh0KTtcbn07IiwiZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJpb0xheW91dChjbHVzdGVyLCBzcGFyc2VPYmplY3QsIHRocmVzaG9sZCkge1xuICAgIGNvbnN0IG4gPSBjbHVzdGVyLmxlbmd0aDtcbiAgICBjb25zdCBpcyA9IFtdO1xuICAgIGNvbnN0IGpzID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgZm9yIChsZXQgaiA9IGkgKyAxOyBqIDwgbjsgaisrKSB7XG4gICAgICAgICAgICBjb25zdCBhID0gY2x1c3RlcltpXTtcbiAgICAgICAgICAgIGNvbnN0IGIgPSBjbHVzdGVyW2pdO1xuICAgICAgICAgICAgaWYgKHNwYXJzZU9iamVjdFthXT8uW2JdID49IHRocmVzaG9sZCkge1xuICAgICAgICAgICAgICAgIGlzLnB1c2goaSk7XG4gICAgICAgICAgICAgICAganMucHVzaChqKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZ2V0TGF5b3V0RW1iZWRkaW5ncyhpcywganMsIGNsdXN0ZXIpO1xufVxuZnVuY3Rpb24gZ2V0TGF5b3V0RW1iZWRkaW5ncyhpcywganMsIGNsdXN0ZXIpIHtcbiAgICBjb25zdCBlbWJlZFggPSBuZXcgRmxvYXQzMkFycmF5KGNsdXN0ZXIubGVuZ3RoKS5maWxsKDApLm1hcCgoKSA9PiBNYXRoLnJhbmRvbSgpICogMTApO1xuICAgIGNvbnN0IGVtYmVkWSA9IG5ldyBGbG9hdDMyQXJyYXkoY2x1c3Rlci5sZW5ndGgpLmZpbGwoMCkubWFwKCgpID0+IE1hdGgucmFuZG9tKCkgKiAxMCk7XG4gICAgY29uc3QgaXRlcmF0aW9ucyA9IDEwMDtcbiAgICBjb25zdCB4VmVsb2NpdGllcyA9IG5ldyBGbG9hdDMyQXJyYXkoY2x1c3Rlci5sZW5ndGgpLmZpbGwoMCk7XG4gICAgY29uc3QgeVZlbG9jaXRpZXMgPSBuZXcgRmxvYXQzMkFycmF5KGNsdXN0ZXIubGVuZ3RoKS5maWxsKDApO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlcmF0aW9uczsgaSsrKSB7XG4gICAgICAgIGNvbnN0IHRlbXBlcmF0dXJlID0gKDEgLSBpIC8gaXRlcmF0aW9ucyk7XG4gICAgICAgIHhWZWxvY2l0aWVzLmZpbGwoMCk7XG4gICAgICAgIHlWZWxvY2l0aWVzLmZpbGwoMCk7XG4gICAgICAgIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IGlzLmxlbmd0aDsgaWR4KyspIHtcbiAgICAgICAgICAgIGNvbnN0IGEgPSBpc1tpZHhdO1xuICAgICAgICAgICAgY29uc3QgYiA9IGpzW2lkeF07XG4gICAgICAgICAgICBjb25zdCBkeCA9IGVtYmVkWFthXSAtIGVtYmVkWFtiXTtcbiAgICAgICAgICAgIGNvbnN0IGR5ID0gZW1iZWRZW2FdIC0gZW1iZWRZW2JdO1xuICAgICAgICAgICAgLy8gICBjb25zdCBkaXN0YW5jZSA9IE1hdGguc3FydChkeCAqIGR4ICsgZHkgKiBkeSk7XG4gICAgICAgICAgICAvLyAgIGNvbnN0IGZhY3RvciA9IChkaXN0YW5jZSAtIDEpIC8gZGlzdGFuY2U7XG4gICAgICAgICAgICAvLyAgIGNvbnN0IG9mZnNldFggPSBkeCAqIGZhY3RvcjtcbiAgICAgICAgICAgIC8vICAgY29uc3Qgb2Zmc2V0WSA9IGR5ICogZmFjdG9yO1xuICAgICAgICAgICAgaWYgKE1hdGguYWJzKGR4KSA+PSAxKSB7XG4gICAgICAgICAgICAgICAgeFZlbG9jaXRpZXNbYV0gLT0gdGVtcGVyYXR1cmUgKiBkeDtcbiAgICAgICAgICAgICAgICB4VmVsb2NpdGllc1tiXSArPSB0ZW1wZXJhdHVyZSAqIGR4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKE1hdGguYWJzKGR5KSA+PSAxKSB7XG4gICAgICAgICAgICAgICAgeVZlbG9jaXRpZXNbYV0gLT0gdGVtcGVyYXR1cmUgKiBkeTtcbiAgICAgICAgICAgICAgICB5VmVsb2NpdGllc1tiXSArPSB0ZW1wZXJhdHVyZSAqIGR5O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gICBlbWJlZFlbYV0gKz0gb2Zmc2V0WSAqIHRlbXBlcmF0dXJlO1xuICAgICAgICAgICAgLy8gICBlbWJlZFlbYl0gLT0gb2Zmc2V0WSAqIHRlbXBlcmF0dXJlO1xuICAgICAgICB9XG4gICAgICAgIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IGNsdXN0ZXIubGVuZ3RoOyBpZHgrKykge1xuICAgICAgICAgICAgY29uc3QgdmVjU2l6ZSA9IE1hdGguc3FydCh4VmVsb2NpdGllc1tpZHhdICogeFZlbG9jaXRpZXNbaWR4XSArIHlWZWxvY2l0aWVzW2lkeF0gKiB5VmVsb2NpdGllc1tpZHhdKTtcbiAgICAgICAgICAgIGlmICh2ZWNTaXplID4gMCkge1xuICAgICAgICAgICAgICAgIGVtYmVkWFtpZHhdICs9IHhWZWxvY2l0aWVzW2lkeF0gLyB2ZWNTaXplICogdGVtcGVyYXR1cmU7XG4gICAgICAgICAgICAgICAgZW1iZWRZW2lkeF0gKz0geVZlbG9jaXRpZXNbaWR4XSAvIHZlY1NpemUgKiB0ZW1wZXJhdHVyZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBub3JtYWxpemVcbiAgICBsZXQgbWluWCA9IGVtYmVkWFswXTtcbiAgICBsZXQgbWluWSA9IGVtYmVkWVswXTtcbiAgICBsZXQgbWF4WCA9IGVtYmVkWFswXTtcbiAgICBsZXQgbWF4WSA9IGVtYmVkWVswXTtcbiAgICBmb3IgKGxldCBpZHggPSAxOyBpZHggPCBjbHVzdGVyLmxlbmd0aDsgaWR4KyspIHtcbiAgICAgICAgbWluWCA9IE1hdGgubWluKG1pblgsIGVtYmVkWFtpZHhdKTtcbiAgICAgICAgbWluWSA9IE1hdGgubWluKG1pblksIGVtYmVkWVtpZHhdKTtcbiAgICAgICAgbWF4WCA9IE1hdGgubWF4KG1heFgsIGVtYmVkWFtpZHhdKTtcbiAgICAgICAgbWF4WSA9IE1hdGgubWF4KG1heFksIGVtYmVkWVtpZHhdKTtcbiAgICB9XG4gICAgbGV0IHJhbmdlWCA9IG1heFggLSBtaW5YO1xuICAgIGxldCByYW5nZVkgPSBtYXhZIC0gbWluWTtcbiAgICBpZiAocmFuZ2VYID09PSAwKVxuICAgICAgICByYW5nZVggPSBtYXhYO1xuICAgIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IGNsdXN0ZXIubGVuZ3RoOyBpZHgrKylcbiAgICAgICAgZW1iZWRYW2lkeF0gPSAoZW1iZWRYW2lkeF0gLSBtaW5YKSAvIHJhbmdlWCAvIDIgKyAwLjU7XG4gICAgaWYgKHJhbmdlWSA9PT0gMClcbiAgICAgICAgcmFuZ2VZID0gbWF4WTtcbiAgICBmb3IgKGxldCBpZHggPSAwOyBpZHggPCBjbHVzdGVyLmxlbmd0aDsgaWR4KyspXG4gICAgICAgIGVtYmVkWVtpZHhdID0gKGVtYmVkWVtpZHhdIC0gbWluWSkgLyByYW5nZVkgLyAyICsgMC41O1xuICAgIHJldHVybiB7IGVtYmVkWCwgZW1iZWRZIH07XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lZbWx2TFd4aGVXOTFkQzVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYkltSnBieTFzWVhsdmRYUXVkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJa0ZCUlVFc1RVRkJUU3hEUVVGRExFdEJRVXNzVlVGQlZTeFRRVUZUTEVOQlFVTXNUMEZCYVVJc1JVRkJSU3haUVVGblF5eEZRVUZGTEZOQlFXbENPMGxCUTNCSExFMUJRVTBzUTBGQlF5eEhRVUZITEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNN1NVRkRla0lzVFVGQlRTeEZRVUZGTEVkQlFXRXNSVUZCUlN4RFFVRkRPMGxCUTNoQ0xFMUJRVTBzUlVGQlJTeEhRVUZoTEVWQlFVVXNRMEZCUXp0SlFVTjRRaXhMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzFGQlF6RkNMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzFsQlF6bENMRTFCUVUwc1EwRkJReXhIUVVGSExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTnlRaXhOUVVGTkxFTkJRVU1zUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRja0lzU1VGQlNTeFpRVUZaTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeFRRVUZUTEVWQlFVVTdaMEpCUTNKRExFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1owSkJRMWdzUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRoUVVOYU8xTkJRMFk3UzBGRFJqdEpRVU5FTEU5QlFVOHNiVUpCUVcxQ0xFTkJRVU1zUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4UFFVRlBMRU5CUVVNc1EwRkJRenRCUVVNNVF5eERRVUZETzBGQlJVUXNVMEZCVXl4dFFrRkJiVUlzUTBGQlF5eEZRVUZaTEVWQlFVVXNSVUZCV1N4RlFVRkZMRTlCUVdsQ08wbEJRM2hGTEUxQlFVMHNUVUZCVFN4SFFVRkhMRWxCUVVrc1dVRkJXU3hEUVVGRExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVOQlFVTXNRMEZCUXp0SlFVTjBSaXhOUVVGTkxFMUJRVTBzUjBGQlJ5eEpRVUZKTEZsQlFWa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RlFVRkZMRWRCUVVjc1JVRkJSU3hEUVVGRExFTkJRVU03U1VGRGRFWXNUVUZCVFN4VlFVRlZMRWRCUVVjc1IwRkJSeXhEUVVGRE8wbEJRM1pDTEUxQlFVMHNWMEZCVnl4SFFVRkhMRWxCUVVrc1dVRkJXU3hEUVVGRExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRE4wUXNUVUZCVFN4WFFVRlhMRWRCUVVjc1NVRkJTU3haUVVGWkxFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU0zUkN4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NWVUZCVlN4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8xRkJRMjVETEUxQlFVMHNWMEZCVnl4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eFZRVUZWTEVOQlFVTXNRMEZCUXp0UlFVTjZReXhYUVVGWExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTNCQ0xGZEJRVmNzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRjRUlzUzBGQlN5eEpRVUZKTEVkQlFVY3NSMEZCUnl4RFFVRkRMRVZCUVVVc1IwRkJSeXhIUVVGSExFVkJRVVVzUTBGQlF5eE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZMRVZCUVVVN1dVRkRlRU1zVFVGQlRTeERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xbEJRMnhDTEUxQlFVMHNRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFpRVU5zUWl4TlFVRk5MRVZCUVVVc1IwRkJSeXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRMnBETEUxQlFVMHNSVUZCUlN4SFFVRkhMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRha01zYlVSQlFXMUVPMWxCUTI1RUxEaERRVUU0UXp0WlFVTTVReXhwUTBGQmFVTTdXVUZEYWtNc2FVTkJRV2xETzFsQlEycERMRWxCUVVrc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVN1owSkJRM0pDTEZkQlFWY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hYUVVGWExFZEJRVWNzUlVGQlJTeERRVUZETzJkQ1FVTnVReXhYUVVGWExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NWMEZCVnl4SFFVRkhMRVZCUVVVc1EwRkJRenRoUVVOd1F6dFpRVU5FTEVsQlFVa3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVTdaMEpCUTNKQ0xGZEJRVmNzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4WFFVRlhMRWRCUVVjc1JVRkJSU3hEUVVGRE8yZENRVU51UXl4WFFVRlhMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzVjBGQlZ5eEhRVUZITEVWQlFVVXNRMEZCUXp0aFFVTndRenRaUVVOSUxIZERRVUYzUXp0WlFVTjRReXgzUTBGQmQwTTdVMEZEZGtNN1VVRkRSQ3hMUVVGTExFbEJRVWtzUjBGQlJ5eEhRVUZITEVOQlFVTXNSVUZCUlN4SFFVRkhMRWRCUVVjc1QwRkJUeXhEUVVGRExFMUJRVTBzUlVGQlJTeEhRVUZITEVWQlFVVXNSVUZCUlR0WlFVTTNReXhOUVVGTkxFOUJRVThzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eFhRVUZYTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1YwRkJWeXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEZkQlFWY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRM0pITEVsQlFVa3NUMEZCVHl4SFFVRkhMRU5CUVVNc1JVRkJSVHRuUWtGRFppeE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1YwRkJWeXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEU5QlFVOHNSMEZCUnl4WFFVRlhMRU5CUVVNN1owSkJRM2hFTEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hYUVVGWExFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NUMEZCVHl4SFFVRkhMRmRCUVZjc1EwRkJRenRoUVVONlJEdFRRVU5HTzB0QlEwWTdTVUZGUkN4WlFVRlpPMGxCUTFvc1NVRkJTU3hKUVVGSkxFZEJRVWNzVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTNKQ0xFbEJRVWtzU1VGQlNTeEhRVUZITEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOeVFpeEpRVUZKTEVsQlFVa3NSMEZCUnl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRGNrSXNTVUZCU1N4SlFVRkpMRWRCUVVjc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlEzSkNMRXRCUVVzc1NVRkJTU3hIUVVGSExFZEJRVWNzUTBGQlF5eEZRVUZGTEVkQlFVY3NSMEZCUnl4UFFVRlBMRU5CUVVNc1RVRkJUU3hGUVVGRkxFZEJRVWNzUlVGQlJTeEZRVUZGTzFGQlF6ZERMRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NSVUZCUlN4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU51UXl4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVWQlFVVXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGJrTXNTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeEZRVUZGTEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMjVETEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUlVGQlJTeE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRMUVVOd1F6dEpRVU5FTEVsQlFVa3NUVUZCVFN4SFFVRkhMRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU03U1VGRGVrSXNTVUZCU1N4TlFVRk5MRWRCUVVjc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF6dEpRVU42UWl4SlFVRkpMRTFCUVUwc1MwRkJTeXhEUVVGRE8xRkJRMlFzVFVGQlRTeEhRVUZITEVsQlFVa3NRMEZCUXp0SlFVTm9RaXhMUVVGTExFbEJRVWtzUjBGQlJ5eEhRVUZITEVOQlFVTXNSVUZCUlN4SFFVRkhMRWRCUVVjc1QwRkJUeXhEUVVGRExFMUJRVTBzUlVGQlJTeEhRVUZITEVWQlFVVTdVVUZETTBNc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEUxQlFVMHNSMEZCUnl4RFFVRkRMRWRCUVVjc1IwRkJSeXhEUVVGRE8wbEJRM2hFTEVsQlFVa3NUVUZCVFN4TFFVRkxMRU5CUVVNN1VVRkRaQ3hOUVVGTkxFZEJRVWNzU1VGQlNTeERRVUZETzBsQlEyaENMRXRCUVVzc1NVRkJTU3hIUVVGSExFZEJRVWNzUTBGQlF5eEZRVUZGTEVkQlFVY3NSMEZCUnl4UFFVRlBMRU5CUVVNc1RVRkJUU3hGUVVGRkxFZEJRVWNzUlVGQlJUdFJRVU16UXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzVFVGQlRTeEhRVUZITEVOQlFVTXNSMEZCUnl4SFFVRkhMRU5CUVVNN1NVRkZlRVFzVDBGQlR5eEZRVUZETEUxQlFVMHNSVUZCUlN4TlFVRk5MRVZCUVVNc1EwRkJRenRCUVVNeFFpeERRVUZESWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUh0VGNHRnljMlZOWVhSeWFYaFBZbXBsWTNSOUlHWnliMjBnSnk0dmRIbHdaWE1uTzF4dVhHNWxlSEJ2Y25RZ1lYTjVibU1nWm5WdVkzUnBiMjRnWW1sdlRHRjViM1YwS0dOc2RYTjBaWEk2SUc1MWJXSmxjbHRkTENCemNHRnljMlZQWW1wbFkzUTZJRk53WVhKelpVMWhkSEpwZUU5aWFtVmpkQ3dnZEdoeVpYTm9iMnhrT2lCdWRXMWlaWElwSUh0Y2JpQWdZMjl1YzNRZ2JpQTlJR05zZFhOMFpYSXViR1Z1WjNSb08xeHVJQ0JqYjI1emRDQnBjem9nYm5WdFltVnlXMTBnUFNCYlhUdGNiaUFnWTI5dWMzUWdhbk02SUc1MWJXSmxjbHRkSUQwZ1cxMDdYRzRnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z2Jqc2dhU3NyS1NCN1hHNGdJQ0FnWm05eUlDaHNaWFFnYWlBOUlHa2dLeUF4T3lCcUlEd2dianNnYWlzcktTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCaElEMGdZMngxYzNSbGNsdHBYVHRjYmlBZ0lDQWdJR052Ym5OMElHSWdQU0JqYkhWemRHVnlXMnBkTzF4dUlDQWdJQ0FnYVdZZ0tITndZWEp6WlU5aWFtVmpkRnRoWFQ4dVcySmRJRDQ5SUhSb2NtVnphRzlzWkNrZ2UxeHVJQ0FnSUNBZ0lDQnBjeTV3ZFhOb0tHa3BPMXh1SUNBZ0lDQWdJQ0JxY3k1d2RYTm9LR29wTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ2ZWeHVJQ0J5WlhSMWNtNGdaMlYwVEdGNWIzVjBSVzFpWldSa2FXNW5jeWhwY3l3Z2FuTXNJR05zZFhOMFpYSXBPMXh1ZlZ4dVhHNW1kVzVqZEdsdmJpQm5aWFJNWVhsdmRYUkZiV0psWkdScGJtZHpLR2x6T2lCdWRXMWlaWEpiWFN3Z2FuTTZJRzUxYldKbGNsdGRMQ0JqYkhWemRHVnlPaUJ1ZFcxaVpYSmJYU2tnZTF4dUlDQmpiMjV6ZENCbGJXSmxaRmdnUFNCdVpYY2dSbXh2WVhRek1rRnljbUY1S0dOc2RYTjBaWEl1YkdWdVozUm9LUzVtYVd4c0tEQXBMbTFoY0Nnb0tTQTlQaUJOWVhSb0xuSmhibVJ2YlNncElDb2dNVEFwTzF4dUlDQmpiMjV6ZENCbGJXSmxaRmtnUFNCdVpYY2dSbXh2WVhRek1rRnljbUY1S0dOc2RYTjBaWEl1YkdWdVozUm9LUzVtYVd4c0tEQXBMbTFoY0Nnb0tTQTlQaUJOWVhSb0xuSmhibVJ2YlNncElDb2dNVEFwTzF4dUlDQmpiMjV6ZENCcGRHVnlZWFJwYjI1eklEMGdNVEF3TzF4dUlDQmpiMjV6ZENCNFZtVnNiMk5wZEdsbGN5QTlJRzVsZHlCR2JHOWhkRE15UVhKeVlYa29ZMngxYzNSbGNpNXNaVzVuZEdncExtWnBiR3dvTUNrN1hHNGdJR052Ym5OMElIbFdaV3h2WTJsMGFXVnpJRDBnYm1WM0lFWnNiMkYwTXpKQmNuSmhlU2hqYkhWemRHVnlMbXhsYm1kMGFDa3VabWxzYkNnd0tUdGNiaUFnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCcGRHVnlZWFJwYjI1ek95QnBLeXNwSUh0Y2JpQWdJQ0JqYjI1emRDQjBaVzF3WlhKaGRIVnlaU0E5SUNneElDMGdhU0F2SUdsMFpYSmhkR2x2Ym5NcE8xeHVJQ0FnSUhoV1pXeHZZMmwwYVdWekxtWnBiR3dvTUNrN1hHNGdJQ0FnZVZabGJHOWphWFJwWlhNdVptbHNiQ2d3S1R0Y2JpQWdJQ0JtYjNJZ0tHeGxkQ0JwWkhnZ1BTQXdPeUJwWkhnZ1BDQnBjeTVzWlc1bmRHZzdJR2xrZUNzcktTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCaElEMGdhWE5iYVdSNFhUdGNiaUFnSUNBZ0lHTnZibk4wSUdJZ1BTQnFjMXRwWkhoZE8xeHVJQ0FnSUNBZ1kyOXVjM1FnWkhnZ1BTQmxiV0psWkZoYllWMGdMU0JsYldKbFpGaGJZbDA3WEc0Z0lDQWdJQ0JqYjI1emRDQmtlU0E5SUdWdFltVmtXVnRoWFNBdElHVnRZbVZrV1Z0aVhUdGNiaUFnSUNBZ0lDOHZJQ0FnWTI5dWMzUWdaR2x6ZEdGdVkyVWdQU0JOWVhSb0xuTnhjblFvWkhnZ0tpQmtlQ0FySUdSNUlDb2daSGtwTzF4dUlDQWdJQ0FnTHk4Z0lDQmpiMjV6ZENCbVlXTjBiM0lnUFNBb1pHbHpkR0Z1WTJVZ0xTQXhLU0F2SUdScGMzUmhibU5sTzF4dUlDQWdJQ0FnTHk4Z0lDQmpiMjV6ZENCdlptWnpaWFJZSUQwZ1pIZ2dLaUJtWVdOMGIzSTdYRzRnSUNBZ0lDQXZMeUFnSUdOdmJuTjBJRzltWm5ObGRGa2dQU0JrZVNBcUlHWmhZM1J2Y2p0Y2JpQWdJQ0FnSUdsbUlDaE5ZWFJvTG1GaWN5aGtlQ2tnUGowZ01Ta2dlMXh1SUNBZ0lDQWdJQ0I0Vm1Wc2IyTnBkR2xsYzF0aFhTQXRQU0IwWlcxd1pYSmhkSFZ5WlNBcUlHUjRPMXh1SUNBZ0lDQWdJQ0I0Vm1Wc2IyTnBkR2xsYzF0aVhTQXJQU0IwWlcxd1pYSmhkSFZ5WlNBcUlHUjRPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdhV1lnS0UxaGRHZ3VZV0p6S0dSNUtTQStQU0F4S1NCN1hHNGdJQ0FnSUNBZ0lIbFdaV3h2WTJsMGFXVnpXMkZkSUMwOUlIUmxiWEJsY21GMGRYSmxJQ29nWkhrN1hHNGdJQ0FnSUNBZ0lIbFdaV3h2WTJsMGFXVnpXMkpkSUNzOUlIUmxiWEJsY21GMGRYSmxJQ29nWkhrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnTHk4Z0lDQmxiV0psWkZsYllWMGdLejBnYjJabWMyVjBXU0FxSUhSbGJYQmxjbUYwZFhKbE8xeHVJQ0FnSUM4dklDQWdaVzFpWldSWlcySmRJQzA5SUc5bVpuTmxkRmtnS2lCMFpXMXdaWEpoZEhWeVpUdGNiaUFnSUNCOVhHNGdJQ0FnWm05eUlDaHNaWFFnYVdSNElEMGdNRHNnYVdSNElEd2dZMngxYzNSbGNpNXNaVzVuZEdnN0lHbGtlQ3NyS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0IyWldOVGFYcGxJRDBnVFdGMGFDNXpjWEowS0hoV1pXeHZZMmwwYVdWelcybGtlRjBnS2lCNFZtVnNiMk5wZEdsbGMxdHBaSGhkSUNzZ2VWWmxiRzlqYVhScFpYTmJhV1I0WFNBcUlIbFdaV3h2WTJsMGFXVnpXMmxrZUYwcE8xeHVJQ0FnSUNBZ2FXWWdLSFpsWTFOcGVtVWdQaUF3S1NCN1hHNGdJQ0FnSUNBZ0lHVnRZbVZrV0Z0cFpIaGRJQ3M5SUhoV1pXeHZZMmwwYVdWelcybGtlRjBnTHlCMlpXTlRhWHBsSUNvZ2RHVnRjR1Z5WVhSMWNtVTdYRzRnSUNBZ0lDQWdJR1Z0WW1Wa1dWdHBaSGhkSUNzOUlIbFdaV3h2WTJsMGFXVnpXMmxrZUYwZ0x5QjJaV05UYVhwbElDb2dkR1Z0Y0dWeVlYUjFjbVU3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnTHk4Z2JtOXliV0ZzYVhwbFhHNGdJR3hsZENCdGFXNVlJRDBnWlcxaVpXUllXekJkTzF4dUlDQnNaWFFnYldsdVdTQTlJR1Z0WW1Wa1dWc3dYVHRjYmlBZ2JHVjBJRzFoZUZnZ1BTQmxiV0psWkZoYk1GMDdYRzRnSUd4bGRDQnRZWGhaSUQwZ1pXMWlaV1JaV3pCZE8xeHVJQ0JtYjNJZ0tHeGxkQ0JwWkhnZ1BTQXhPeUJwWkhnZ1BDQmpiSFZ6ZEdWeUxteGxibWQwYURzZ2FXUjRLeXNwSUh0Y2JpQWdJQ0J0YVc1WUlEMGdUV0YwYUM1dGFXNG9iV2x1V0N3Z1pXMWlaV1JZVzJsa2VGMHBPMXh1SUNBZ0lHMXBibGtnUFNCTllYUm9MbTFwYmlodGFXNVpMQ0JsYldKbFpGbGJhV1I0WFNrN1hHNGdJQ0FnYldGNFdDQTlJRTFoZEdndWJXRjRLRzFoZUZnc0lHVnRZbVZrV0Z0cFpIaGRLVHRjYmlBZ0lDQnRZWGhaSUQwZ1RXRjBhQzV0WVhnb2JXRjRXU3dnWlcxaVpXUlpXMmxrZUYwcE8xeHVJQ0I5WEc0Z0lHeGxkQ0J5WVc1blpWZ2dQU0J0WVhoWUlDMGdiV2x1V0R0Y2JpQWdiR1YwSUhKaGJtZGxXU0E5SUcxaGVGa2dMU0J0YVc1Wk8xeHVJQ0JwWmlBb2NtRnVaMlZZSUQwOVBTQXdLVnh1SUNBZ0lISmhibWRsV0NBOUlHMWhlRmc3WEc0Z0lHWnZjaUFvYkdWMElHbGtlQ0E5SURBN0lHbGtlQ0E4SUdOc2RYTjBaWEl1YkdWdVozUm9PeUJwWkhnckt5bGNiaUFnSUNCbGJXSmxaRmhiYVdSNFhTQTlJQ2hsYldKbFpGaGJhV1I0WFNBdElHMXBibGdwSUM4Z2NtRnVaMlZZSUM4Z01pQXJJREF1TlR0Y2JpQWdhV1lnS0hKaGJtZGxXU0E5UFQwZ01DbGNiaUFnSUNCeVlXNW5aVmtnUFNCdFlYaFpPMXh1SUNCbWIzSWdLR3hsZENCcFpIZ2dQU0F3T3lCcFpIZ2dQQ0JqYkhWemRHVnlMbXhsYm1kMGFEc2dhV1I0S3lzcFhHNGdJQ0FnWlcxaVpXUlpXMmxrZUYwZ1BTQW9aVzFpWldSWlcybGtlRjBnTFNCdGFXNVpLU0F2SUhKaGJtZGxXU0F2SURJZ0t5QXdMalU3WEc1Y2JpQWdjbVYwZFhKdUlIdGxiV0psWkZnc0lHVnRZbVZrV1gwN1hHNTlYRzRpWFgwPSIsImltcG9ydCB7IGJpb0xheW91dCB9IGZyb20gJy4vYmlvLWxheW91dCc7XG5leHBvcnQgY29uc3QgZGVmYXVsdE1DTE9wdGlvbnMgPSB7XG4gICAgZXhwYW5kRmFjdG9yOiAyLFxuICAgIG1heEl0ZXJhdGlvbnM6IDUsXG4gICAgaW5mbGF0ZUZhY3RvcjogMixcbiAgICBtdWx0RmFjdG9yOiAxLFxufTtcbmV4cG9ydCBjbGFzcyBNQ0xTcGFyc2VSZWR1Y2VyIHtcbiAgICBjb25zdHJ1Y3RvcihvcHRzID0ge30pIHtcbiAgICAgICAgdGhpcy5fb3B0aW9ucyA9IHsgLi4uZGVmYXVsdE1DTE9wdGlvbnMsIC4uLm9wdHMgfTtcbiAgICB9XG4gICAgYXN5bmMgdHJhbnNmb3JtKHNwYXJzZU1hdHJpeCwgblJvd3MpIHtcbiAgICAgICAgLy8gdGVzdFdvcmtlck11bHRpcGx5KCk7XG4gICAgICAgIC8vIHJldHVybiBuZXcgSW50MzJBcnJheShuUm93cyk7XG4gICAgICAgIGxldCBzcGFyc2VPYmplY3QgPSB0aGlzLnRvT2JqZWN0Rm9ybShzcGFyc2VNYXRyaXgpO1xuICAgICAgICBpZiAodGhpcy5fb3B0aW9ucy5tYXhJdGVyYXRpb25zID4gMCkge1xuICAgICAgICAgICAgdGhpcy5hZGRMb29wcyhzcGFyc2VPYmplY3QsIG5Sb3dzKTtcbiAgICAgICAgICAgIHRoaXMubm9ybWFsaXplKHNwYXJzZU9iamVjdCk7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX29wdGlvbnMubWF4SXRlcmF0aW9uczsgaSsrKSB7XG4gICAgICAgICAgICAgICAgc3BhcnNlT2JqZWN0ID0gdGhpcy5leHBhbmQoc3BhcnNlT2JqZWN0LCBuUm93cyk7XG4gICAgICAgICAgICAgICAgdGhpcy5pbmZsYXRlKHNwYXJzZU9iamVjdCk7XG4gICAgICAgICAgICAgICAgdGhpcy5ub3JtYWxpemUoc3BhcnNlT2JqZWN0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IGNsdXN0ZXJzLCBpcywganMgfSA9IHRoaXMuYXNzaWduQ2x1c3RlcnMoc3BhcnNlT2JqZWN0LCBuUm93cyk7XG4gICAgICAgIHRoaXMuY29ycmVjdENsdXN0ZXJzKGNsdXN0ZXJzKTtcbiAgICAgICAgY29uc3QgZW1iZWRkaW5ncyA9IGF3YWl0IHRoaXMubGF5b3V0KGNsdXN0ZXJzLCBzcGFyc2VPYmplY3QsIG5Sb3dzKTtcbiAgICAgICAgcmV0dXJuIHsgY2x1c3RlcnMsIGVtYmVkWDogZW1iZWRkaW5ncy5lbWJlZFgsIGVtYmVkWTogZW1iZWRkaW5ncy5lbWJlZFksIGlzLCBqcyB9O1xuICAgIH1cbiAgICBjb3JyZWN0Q2x1c3RlcnMoY2x1c3RlcnMpIHtcbiAgICAgICAgY29uc3QgY2x1c3RlclNpemVNYXAgPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBjbHVzdGVyIG9mIGNsdXN0ZXJzKSB7XG4gICAgICAgICAgICBpZiAoIWNsdXN0ZXJTaXplTWFwW2NsdXN0ZXJdKVxuICAgICAgICAgICAgICAgIGNsdXN0ZXJTaXplTWFwW2NsdXN0ZXJdID0gMDtcbiAgICAgICAgICAgIGNsdXN0ZXJTaXplTWFwW2NsdXN0ZXJdKys7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc29ydGVkSW5kZXhlcyA9IE9iamVjdC5rZXlzKGNsdXN0ZXJTaXplTWFwKS5tYXAoTnVtYmVyKS5zb3J0KChhLCBiKSA9PiBjbHVzdGVyU2l6ZU1hcFthXSAtIGNsdXN0ZXJTaXplTWFwW2JdKTtcbiAgICAgICAgY29uc3QgY2x1c3Rlck1hcCA9IHt9O1xuICAgICAgICBzb3J0ZWRJbmRleGVzLmZvckVhY2goKGNsdXN0ZXJJZHgsIGkpID0+IGNsdXN0ZXJNYXBbY2x1c3RlcklkeF0gPSBpICsgMSk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2x1c3RlcnMubGVuZ3RoOyBpKyspXG4gICAgICAgICAgICBjbHVzdGVyc1tpXSA9IGNsdXN0ZXJNYXBbY2x1c3RlcnNbaV1dO1xuICAgICAgICAvLyBsZXQgY3VyQ2x1c3RlciA9IDE7XG4gICAgICAgIC8vIGZvciAobGV0IGkgPSAwOyBpIDwgY2x1c3RlcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgLy8gICBpZiAoIWNsdXN0ZXJNYXBbY2x1c3RlcnNbaV1dKSB7XG4gICAgICAgIC8vICAgICBjbHVzdGVyTWFwW2NsdXN0ZXJzW2ldXSA9IGN1ckNsdXN0ZXI7XG4gICAgICAgIC8vICAgICBjbHVzdGVyc1tpXSA9IGN1ckNsdXN0ZXI7XG4gICAgICAgIC8vICAgICBjdXJDbHVzdGVyKys7XG4gICAgICAgIC8vICAgfSBlbHNlIHtcbiAgICAgICAgLy8gICAgIGNsdXN0ZXJzW2ldID0gY2x1c3Rlck1hcFtjbHVzdGVyc1tpXV07XG4gICAgICAgIC8vICAgfVxuICAgICAgICAvLyB9XG4gICAgfVxuICAgIGFzeW5jIGxheW91dChjbHVzdGVycywgc3BhcnNlTWF0cml4LCBuUm93cykge1xuICAgICAgICBjb25zdCBlbWJlZFggPSBuZXcgRmxvYXQzMkFycmF5KG5Sb3dzKS5maWxsKDApO1xuICAgICAgICBjb25zdCBlbWJlZFkgPSBuZXcgRmxvYXQzMkFycmF5KG5Sb3dzKS5maWxsKDApO1xuICAgICAgICBjb25zdCBjbHVzdGVyTWFwID0ge307XG4gICAgICAgIGNsdXN0ZXJzLmZvckVhY2goKGNsdXN0ZXIsIGkpID0+IHtcbiAgICAgICAgICAgIGlmICghY2x1c3Rlck1hcFtjbHVzdGVyXSlcbiAgICAgICAgICAgICAgICBjbHVzdGVyTWFwW2NsdXN0ZXJdID0gW107XG4gICAgICAgICAgICBjbHVzdGVyTWFwW2NsdXN0ZXJdLnB1c2goaSk7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBjb25zdCBuQ2x1c3RlcnMgPSBPYmplY3Qua2V5cyhjbHVzdGVyTWFwKS5sZW5ndGg7XG4gICAgICAgIC8vIGNvbnN0IHBlclJvdyA9IE1hdGguZmxvb3IoTWF0aC5zcXJ0KG5DbHVzdGVycykpO1xuICAgICAgICBsZXQgY2x1c3Rlck51bSA9IDA7XG4gICAgICAgIGNvbnN0IHNvcnRlZENsdXN0ZXJOYW1lcyA9IE9iamVjdC5rZXlzKGNsdXN0ZXJNYXApO1xuICAgICAgICBzb3J0ZWRDbHVzdGVyTmFtZXMuc29ydCgoYSwgYikgPT4gY2x1c3Rlck1hcFtiXS5sZW5ndGggLSBjbHVzdGVyTWFwW2FdLmxlbmd0aCk7XG4gICAgICAgIGxldCBwZXJSb3cgPSA2O1xuICAgICAgICBsZXQgeU9mZnNldCA9IDA7XG4gICAgICAgIGNvbnN0IGxheW91dFNpemUgPSA1O1xuICAgICAgICBmb3IgKGNvbnN0IGNsdXN0ZXJOYW1lIG9mIHNvcnRlZENsdXN0ZXJOYW1lcykge1xuICAgICAgICAgICAgY29uc3QgY2x1c3RlciA9IGNsdXN0ZXJNYXBbY2x1c3Rlck5hbWVdO1xuICAgICAgICAgICAgY29uc3QgZW1iZWRkaW5ncyA9IGF3YWl0IGJpb0xheW91dChjbHVzdGVyLCBzcGFyc2VNYXRyaXgsIDAuMDAxKTtcbiAgICAgICAgICAgIGlmIChjbHVzdGVyTnVtID09PSBNYXRoLmNlaWwocGVyUm93IC8gMS41KSkge1xuICAgICAgICAgICAgICAgIGNsdXN0ZXJOdW0gPSAwO1xuICAgICAgICAgICAgICAgIHlPZmZzZXQgKz0gbGF5b3V0U2l6ZSAvIHBlclJvdztcbiAgICAgICAgICAgICAgICBwZXJSb3cgPSBNYXRoLmNlaWwocGVyUm93ICogMS41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IG9mZnNldFggPSAoKGNsdXN0ZXJOdW0gJSBwZXJSb3cpICogbGF5b3V0U2l6ZSAvIHBlclJvdykgKiAxLjU7XG4gICAgICAgICAgICAvLyBjb25zdCBvZmZzZXRZID0gTWF0aC5mbG9vcihjbHVzdGVyTnVtIC8gcGVyUm93KSAqIDI7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGVtYmVkZGluZ3MuZW1iZWRYLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgZW1iZWRYW2NsdXN0ZXJbaV1dID0gZW1iZWRkaW5ncy5lbWJlZFhbaV0gKiBsYXlvdXRTaXplIC8gcGVyUm93ICsgb2Zmc2V0WDtcbiAgICAgICAgICAgICAgICBlbWJlZFlbY2x1c3RlcltpXV0gPSBlbWJlZGRpbmdzLmVtYmVkWVtpXSAqIGxheW91dFNpemUgLyBwZXJSb3cgKyB5T2Zmc2V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2x1c3Rlck51bSsrO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGVtYmVkWCwgZW1iZWRZIH07XG4gICAgfVxuICAgIG1lcmdlQ2x1c3RlcnMoY2x1c3RlcnMsIGksIGopIHtcbiAgICAgICAgY29uc3QgaUNsdXN0ZXIgPSBjbHVzdGVyc1tpXTtcbiAgICAgICAgY29uc3QgakNsdXN0ZXIgPSBjbHVzdGVyc1tqXTtcbiAgICAgICAgZm9yIChsZXQgayA9IDA7IGsgPCBjbHVzdGVycy5sZW5ndGg7IGsrKykge1xuICAgICAgICAgICAgaWYgKGNsdXN0ZXJzW2tdID09PSBqQ2x1c3RlcilcbiAgICAgICAgICAgICAgICBjbHVzdGVyc1trXSA9IGlDbHVzdGVyO1xuICAgICAgICB9XG4gICAgfVxuICAgIGFzc2lnbkNsdXN0ZXJzKHNwYXJzZU1hdHJpeCwgblJvd3MpIHtcbiAgICAgICAgbGV0IGNsdXN0ZXJOdW0gPSAwO1xuICAgICAgICBjb25zdCBpcyA9IFtdO1xuICAgICAgICBjb25zdCBqcyA9IFtdO1xuICAgICAgICBjb25zdCBvcmRlciA9IE1hdGguZmxvb3IoTWF0aC5tYXgoTWF0aC5sb2cxMChuUm93cyksIDIpKSArIDE7XG4gICAgICAgIGNvbnN0IG1pbk9yZGVyID0gTWF0aC5wb3coMTAsIG9yZGVyKTtcbiAgICAgICAgY29uc3QgY2x1c3RlcnMgPSBuZXcgQXJyYXkoblJvd3MpLmZpbGwoLTEpO1xuICAgICAgICBmb3IgKGNvbnN0IGkgb2YgT2JqZWN0LmtleXMoc3BhcnNlTWF0cml4KSkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBqIG9mIE9iamVjdC5rZXlzKHNwYXJzZU1hdHJpeFtpXSkpIHtcbiAgICAgICAgICAgICAgICBpZiAoTWF0aC5yb3VuZChzcGFyc2VNYXRyaXhbaV1bal0gKiBtaW5PcmRlcikgLyBtaW5PcmRlciA+IDAgJiZcbiAgICAgICAgICAgICAgICAgICAgc3BhcnNlTWF0cml4W2ldW2pdICE9PSBOdW1iZXIoaSkgJiYgTnVtYmVyKGopID4gTnVtYmVyKGkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlzLnB1c2goTnVtYmVyKGkpKTtcbiAgICAgICAgICAgICAgICAgICAganMucHVzaChOdW1iZXIoaikpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY2x1c3RlcnNbTnVtYmVyKGkpXSAhPT0gLTEgJiYgY2x1c3RlcnNbTnVtYmVyKGopXSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjbHVzdGVyc1tOdW1iZXIoaSldICE9PSBjbHVzdGVyc1tOdW1iZXIoaildKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWVyZ2VDbHVzdGVycyhjbHVzdGVycywgTnVtYmVyKGkpLCBOdW1iZXIoaikpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGNsdXN0ZXJzW051bWJlcihpKV0gIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbHVzdGVyc1tOdW1iZXIoaildID0gY2x1c3RlcnNbTnVtYmVyKGkpXTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChjbHVzdGVyc1tOdW1iZXIoaildICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2x1c3RlcnNbTnVtYmVyKGkpXSA9IGNsdXN0ZXJzW051bWJlcihqKV07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbHVzdGVyTnVtKys7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbHVzdGVyc1tOdW1iZXIoaSldID0gY2x1c3Rlck51bTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsdXN0ZXJzW051bWJlcihqKV0gPSBjbHVzdGVyTnVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2x1c3RlcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChjbHVzdGVyc1tpXSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICBjbHVzdGVyTnVtKys7XG4gICAgICAgICAgICAgICAgY2x1c3RlcnNbaV0gPSBjbHVzdGVyTnVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGNsdXN0ZXJzLCBpczogbmV3IFVpbnQzMkFycmF5KGlzKSwganM6IG5ldyBVaW50MzJBcnJheShqcykgfTtcbiAgICB9XG4gICAgdG9PYmplY3RGb3JtKHNwYXJzZU1hdHJpeCkge1xuICAgICAgICBjb25zdCBzcGFyc2VPYmplY3QgPSB7fTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzcGFyc2VNYXRyaXguaS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKCFzcGFyc2VPYmplY3Rbc3BhcnNlTWF0cml4LmlbaV1dKVxuICAgICAgICAgICAgICAgIHNwYXJzZU9iamVjdFtzcGFyc2VNYXRyaXguaVtpXV0gPSB7fTtcbiAgICAgICAgICAgIHNwYXJzZU9iamVjdFtzcGFyc2VNYXRyaXguaVtpXV1bc3BhcnNlTWF0cml4LmpbaV1dID0gMSAtIHNwYXJzZU1hdHJpeC5kaXN0YW5jZVtpXTtcbiAgICAgICAgICAgIGlmICghc3BhcnNlT2JqZWN0W3NwYXJzZU1hdHJpeC5qW2ldXSlcbiAgICAgICAgICAgICAgICBzcGFyc2VPYmplY3Rbc3BhcnNlTWF0cml4LmpbaV1dID0ge307XG4gICAgICAgICAgICBzcGFyc2VPYmplY3Rbc3BhcnNlTWF0cml4LmpbaV1dW3NwYXJzZU1hdHJpeC5pW2ldXSA9IDEgLSBzcGFyc2VNYXRyaXguZGlzdGFuY2VbaV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNwYXJzZU9iamVjdDtcbiAgICB9XG4gICAgYWRkTG9vcHMoc3BhcnNlT2JqZWN0LCBuUm93cykge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5Sb3dzOyBpKyspIHtcbiAgICAgICAgICAgIGlmICghc3BhcnNlT2JqZWN0W2ldKVxuICAgICAgICAgICAgICAgIHNwYXJzZU9iamVjdFtpXSA9IHt9O1xuICAgICAgICAgICAgc3BhcnNlT2JqZWN0W2ldW2ldID0gdGhpcy5fb3B0aW9ucy5tdWx0RmFjdG9yO1xuICAgICAgICB9XG4gICAgfVxuICAgIG5vcm1hbGl6ZShzcGFyc2VPYmplY3QpIHtcbiAgICAgICAgZm9yIChjb25zdCBpIG9mIE9iamVjdC5rZXlzKHNwYXJzZU9iamVjdCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHJvdyA9IHNwYXJzZU9iamVjdFtpXTtcbiAgICAgICAgICAgIGxldCBzdW0gPSAwO1xuICAgICAgICAgICAgZm9yIChjb25zdCBqIG9mIE9iamVjdC5rZXlzKHJvdykpXG4gICAgICAgICAgICAgICAgc3VtICs9IHJvd1tqXTtcbiAgICAgICAgICAgIGlmIChzdW0gPT09IDApXG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGogb2YgT2JqZWN0LmtleXMocm93KSlcbiAgICAgICAgICAgICAgICBzcGFyc2VPYmplY3RbaV1bal0gLz0gc3VtO1xuICAgICAgICB9XG4gICAgfVxuICAgIGV4cGFuZChzcGFyc2VPYmplY3QsIG5Sb3dzKSB7XG4gICAgICAgIGNvbnN0IGV4cGFuZGVkT2JqZWN0ID0ge307XG4gICAgICAgIGNvbnN0IG9yZGVyID0gTWF0aC5mbG9vcihNYXRoLm1heChNYXRoLmxvZzEwKG5Sb3dzKSwgMikpICsgMTtcbiAgICAgICAgY29uc3QgbWluT3JkZXIgPSBNYXRoLnBvdygxMCwgb3JkZXIpO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5Sb3dzOyBpKyspIHtcbiAgICAgICAgICAgIGlmICghc3BhcnNlT2JqZWN0W2ldKVxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgLy8gY29uc3Qgcm93ID0gc3BhcnNlT2JqZWN0W2ldO1xuICAgICAgICAgICAgZXhwYW5kZWRPYmplY3RbaV0gPSB7fTtcbiAgICAgICAgICAgIGZvciAobGV0IGogPSBpOyBqIDwgblJvd3M7IGorKykge1xuICAgICAgICAgICAgICAgIGlmICghc3BhcnNlT2JqZWN0W2ldPy5bal0pXG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbCA9IHRoaXMuZ2V0RXhwYW5kVmFsdWUoc3BhcnNlT2JqZWN0LCBpLCBqKTsgLy9wcnVuaW5nIHN0ZXBcbiAgICAgICAgICAgICAgICBpZiAoTWF0aC5yb3VuZCh2YWwgKiBtaW5PcmRlcikgLyBtaW5PcmRlciA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgZXhwYW5kZWRPYmplY3RbaV1bal0gPSB2YWw7XG4gICAgICAgICAgICAgICAgICAgIGlmICghZXhwYW5kZWRPYmplY3Rbal0pXG4gICAgICAgICAgICAgICAgICAgICAgICBleHBhbmRlZE9iamVjdFtqXSA9IHt9O1xuICAgICAgICAgICAgICAgICAgICBleHBhbmRlZE9iamVjdFtqXVtpXSA9IHZhbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGV4cGFuZGVkT2JqZWN0O1xuICAgIH1cbiAgICAvLyBwcml2YXRlIHBydW5lKHJvdzogU3BhcnNlTWF0cml4T2JqZWN0W251bWJlcl0pIHtcbiAgICAvLyB9XG4gICAgaW5mbGF0ZShzcGFyc2VPYmplY3QpIHtcbiAgICAgICAgZm9yIChjb25zdCBpIG9mIE9iamVjdC5rZXlzKHNwYXJzZU9iamVjdCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHJvdyA9IHNwYXJzZU9iamVjdFtpXTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgaiBvZiBPYmplY3Qua2V5cyhyb3cpKVxuICAgICAgICAgICAgICAgIHNwYXJzZU9iamVjdFtpXVtqXSA9IE1hdGgucG93KHNwYXJzZU9iamVjdFtpXVtqXSwgdGhpcy5fb3B0aW9ucy5pbmZsYXRlRmFjdG9yKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXRFeHBhbmRWYWx1ZShzcGFyc2VPYmplY3QsIGksIGopIHtcbiAgICAgICAgbGV0IHZhbCA9IDA7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRJbmRleGVzID0gT2JqZWN0LmtleXMoc3BhcnNlT2JqZWN0W2ldID8/IHt9KTtcbiAgICAgICAgY29uc3Qgb3RoZXJJbmRleGVzID0gT2JqZWN0LmtleXMoc3BhcnNlT2JqZWN0W2pdID8/IHt9KTtcbiAgICAgICAgZm9yIChjb25zdCBrIG9mIGN1cnJlbnRJbmRleGVzKSB7XG4gICAgICAgICAgICBpZiAob3RoZXJJbmRleGVzLmluY2x1ZGVzKGspKVxuICAgICAgICAgICAgICAgIHZhbCArPSBzcGFyc2VPYmplY3RbaV1ba10gKiBzcGFyc2VPYmplY3Rbal1ba107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbDtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2liV0Z5WTI5MkxXTnNkWE4wWlhJdWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUp0WVhKamIzWXRZMngxYzNSbGNpNTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZEUVN4UFFVRlBMRVZCUVVNc1UwRkJVeXhGUVVGRExFMUJRVTBzWTBGQll5eERRVUZETzBGQlIzWkRMRTFCUVUwc1EwRkJReXhOUVVGTkxHbENRVUZwUWl4SFFVRmxPMGxCUXpORExGbEJRVmtzUlVGQlJTeERRVUZETzBsQlEyWXNZVUZCWVN4RlFVRkZMRU5CUVVNN1NVRkRhRUlzWVVGQllTeEZRVUZGTEVOQlFVTTdTVUZEYUVJc1ZVRkJWU3hGUVVGRkxFTkJRVU03UTBGRFpDeERRVUZETzBGQlJVWXNUVUZCVFN4UFFVRlBMR2RDUVVGblFqdEpRVWN6UWl4WlFVRlpMRTlCUVRSQ0xFVkJRVVU3VVVGRGVFTXNTVUZCU1N4RFFVRkRMRkZCUVZFc1IwRkJSeXhGUVVGRExFZEJRVWNzYVVKQlFXbENMRVZCUVVVc1IwRkJSeXhKUVVGSkxFVkJRVU1zUTBGQlF6dEpRVU5zUkN4RFFVRkRPMGxCUlUwc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF5eFpRVUZuUXl4RlFVRkZMRXRCUVdFN1VVRkRjRVVzZDBKQlFYZENPMUZCUTNoQ0xHZERRVUZuUXp0UlFVTm9ReXhKUVVGSkxGbEJRVmtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRE8xRkJRMjVFTEVsQlFVa3NTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhoUVVGaExFZEJRVWNzUTBGQlF5eEZRVUZGTzFsQlEyNURMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zV1VGQldTeEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMWxCUTI1RExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNN1dVRkROMElzUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNZVUZCWVN4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8yZENRVU53UkN4WlFVRlpMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eFpRVUZaTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNN1owSkJRMmhFTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU03WjBKQlF6TkNMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTTdZVUZET1VJN1UwRkRSanRSUVVORUxFMUJRVTBzUlVGQlF5eFJRVUZSTEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNXVUZCV1N4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJRM0JGTEVsQlFVa3NRMEZCUXl4bFFVRmxMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03VVVGREwwSXNUVUZCVFN4VlFVRlZMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEZGQlFWRXNSVUZCUlN4WlFVRlpMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRGNFVXNUMEZCVHl4RlFVRkRMRkZCUVZFc1JVRkJSU3hOUVVGTkxFVkJRVVVzVlVGQlZTeERRVUZETEUxQlFVMHNSVUZCUlN4TlFVRk5MRVZCUVVVc1ZVRkJWU3hEUVVGRExFMUJRVTBzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkRMRU5CUVVNN1NVRkRiRVlzUTBGQlF6dEpRVVZQTEdWQlFXVXNRMEZCUXl4UlFVRnJRanRSUVVONFF5eE5RVUZOTEdOQlFXTXNSMEZCTUVJc1JVRkJSU3hEUVVGRE8xRkJRMnBFTEV0QlFVc3NUVUZCVFN4UFFVRlBMRWxCUVVrc1VVRkJVU3hGUVVGRk8xbEJRemxDTEVsQlFVa3NRMEZCUXl4alFVRmpMRU5CUVVNc1QwRkJUeXhEUVVGRE8yZENRVU14UWl4alFVRmpMRU5CUVVNc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFsQlF6bENMR05CUVdNc1EwRkJReXhQUVVGUExFTkJRVU1zUlVGQlJTeERRVUZETzFOQlF6TkNPMUZCUTBRc1RVRkJUU3hoUVVGaExFZEJRVWNzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4alFVRmpMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNZMEZCWXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExHTkJRV01zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTNCSUxFMUJRVTBzVlVGQlZTeEhRVUV3UWl4RlFVRkZMRU5CUVVNN1VVRkROME1zWVVGQllTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRlZCUVZVc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEZWQlFWVXNRMEZCUXl4VlFVRlZMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEZWtVc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRkZCUVZFc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF5eEZRVUZGTzFsQlEzUkRMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eFZRVUZWTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGVFTXNjMEpCUVhOQ08xRkJRM1JDTERoRFFVRTRRenRSUVVNNVF5eHZRMEZCYjBNN1VVRkRjRU1zTkVOQlFUUkRPMUZCUXpWRExHZERRVUZuUXp0UlFVTm9ReXh2UWtGQmIwSTdVVUZEY0VJc1lVRkJZVHRSUVVOaUxEWkRRVUUyUXp0UlFVTTNReXhOUVVGTk8xRkJRMDRzU1VGQlNUdEpRVU5PTEVOQlFVTTdTVUZGVHl4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVGRExGRkJRV3RDTEVWQlFVVXNXVUZCWjBNc1JVRkJSU3hMUVVGaE8xRkJRM1JHTEUxQlFVMHNUVUZCVFN4SFFVRkhMRWxCUVVrc1dVRkJXU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVNdlF5eE5RVUZOTEUxQlFVMHNSMEZCUnl4SlFVRkpMRmxCUVZrc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRMME1zVFVGQlRTeFZRVUZWTEVkQlFUUkNMRVZCUVVVc1EwRkJRenRSUVVNdlF5eFJRVUZSTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1QwRkJUeXhGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzFsQlF6bENMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zVDBGQlR5eERRVUZETzJkQ1FVTjBRaXhWUVVGVkxFTkJRVU1zVDBGQlR5eERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRPMWxCUXpOQ0xGVkJRVlVzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRE9VSXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRTQ3h2UkVGQmIwUTdVVUZEY0VRc2JVUkJRVzFFTzFGQlEyNUVMRWxCUVVrc1ZVRkJWU3hIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU51UWl4TlFVRk5MR3RDUVVGclFpeEhRVUZITEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU03VVVGRGJrUXNhMEpCUVd0Q0xFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFWRXNRMEZCUXl4RFFVRkRMRTFCUVUwc1IwRkJSeXhWUVVGVkxFTkJRVU1zUTBGQlVTeERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1VVRkROMFlzU1VGQlNTeE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUldZc1NVRkJTU3hQUVVGUExFZEJRVWNzUTBGQlF5eERRVUZETzFGQlEyaENMRTFCUVUwc1ZVRkJWU3hIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU55UWl4TFFVRkxMRTFCUVUwc1YwRkJWeXhKUVVGSkxHdENRVUZyUWl4RlFVRkZPMWxCUXpWRExFMUJRVTBzVDBGQlR5eEhRVUZITEZWQlFWVXNRMEZCUXl4WFFVRnJRaXhEUVVGRkxFTkJRVU03V1VGRGFFUXNUVUZCVFN4VlFVRlZMRWRCUVVjc1RVRkJUU3hUUVVGVExFTkJRVU1zVDBGQlR5eEZRVUZGTEZsQlFWa3NSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenRaUVVOcVJTeEpRVUZKTEZWQlFWVXNTMEZCU3l4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUjBGQlJ5eEhRVUZITEVOQlFVTXNSVUZCUlR0blFrRkRNVU1zVlVGQlZTeEhRVUZITEVOQlFVTXNRMEZCUXp0blFrRkRaaXhQUVVGUExFbEJRVWtzVlVGQlZTeEhRVUZITEUxQlFVMHNRMEZCUXp0blFrRkRMMElzVFVGQlRTeEhRVUZITEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hIUVVGSExFZEJRVWNzUTBGQlF5eERRVUZETzJGQlEyeERPMWxCUTBRc1RVRkJUU3hQUVVGUExFZEJRVWNzUTBGQlF5eERRVUZETEZWQlFWVXNSMEZCUnl4TlFVRk5MRU5CUVVNc1IwRkJSeXhWUVVGVkxFZEJRVWNzVFVGQlRTeERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRPMWxCUTNCRkxIVkVRVUYxUkR0WlFVVjJSQ3hMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1ZVRkJWU3hEUVVGRExFMUJRVTBzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVN1owSkJRMnBFTEUxQlFVMHNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eFZRVUZWTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExGVkJRVlVzUjBGQlJ5eE5RVUZOTEVkQlFVY3NUMEZCVHl4RFFVRkRPMmRDUVVNeFJTeE5RVUZOTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzVlVGQlZTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhWUVVGVkxFZEJRVWNzVFVGQlRTeEhRVUZITEU5QlFVOHNRMEZCUXp0aFFVTXpSVHRaUVVORUxGVkJRVlVzUlVGQlJTeERRVUZETzFOQlEyUTdVVUZEUkN4UFFVRlBMRVZCUVVNc1RVRkJUU3hGUVVGRkxFMUJRVTBzUlVGQlF5eERRVUZETzBsQlF6RkNMRU5CUVVNN1NVRkZUeXhoUVVGaExFTkJRVU1zVVVGQmEwSXNSVUZCUlN4RFFVRlRMRVZCUVVVc1EwRkJVenRSUVVNMVJDeE5RVUZOTEZGQlFWRXNSMEZCUnl4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRE4wSXNUVUZCVFN4UlFVRlJMRWRCUVVjc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlF6ZENMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4UlFVRlJMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzFsQlEzaERMRWxCUVVrc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEZGQlFWRTdaMEpCUXpGQ0xGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4UlFVRlJMRU5CUVVNN1UwRkRNVUk3U1VGRFNDeERRVUZETzBsQlEwMHNZMEZCWXl4RFFVRkRMRmxCUVdkRExFVkJRVVVzUzBGQllUdFJRVU51UlN4SlFVRkpMRlZCUVZVc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGJrSXNUVUZCVFN4RlFVRkZMRWRCUVdFc1JVRkJSU3hEUVVGRE8xRkJRM2hDTEUxQlFVMHNSVUZCUlN4SFFVRmhMRVZCUVVVc1EwRkJRenRSUVVONFFpeE5RVUZOTEV0QlFVc3NSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVNM1JDeE5RVUZOTEZGQlFWRXNSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXp0UlFVTnlReXhOUVVGTkxGRkJRVkVzUjBGQllTeEpRVUZKTEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTnlSQ3hMUVVGTExFMUJRVTBzUTBGQlF5eEpRVUZKTEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFVkJRVVU3V1VGRGVrTXNTMEZCU3l4TlFVRk5MRU5CUVVNc1NVRkJTU3hOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRlJMRU5CUVVNc1EwRkJReXhGUVVGRk8yZENRVU51UkN4SlFVRkpMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zV1VGQldTeERRVUZETEVOQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVZFc1EwRkJReXhIUVVGSExGRkJRVkVzUTBGQlF5eEhRVUZITEZGQlFWRXNSMEZCUnl4RFFVRkRPMjlDUVVONFJTeFpRVUZaTEVOQlFVTXNRMEZCVVN4RFFVRkRMRU5CUVVNc1EwRkJVU3hEUVVGRExFdEJRVXNzVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVN2IwSkJRM3BGTEVWQlFVVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdiMEpCUTI1Q0xFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03YjBKQlEyNUNMRWxCUVVrc1VVRkJVU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhKUVVGSkxGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUlVGQlJUdDNRa0ZETlVRc1NVRkJTU3hSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1VVRkJVU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXpzMFFrRkROME1zU1VGQlNTeERRVUZETEdGQlFXRXNRMEZCUXl4UlFVRlJMRVZCUVVVc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8zRkNRVU4wUkR0NVFrRkJUU3hKUVVGSkxGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUlVGQlJUdDNRa0ZEY2tNc1VVRkJVU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0eFFrRkRNME03ZVVKQlFVMHNTVUZCU1N4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRVZCUVVVN2QwSkJRM0pETEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03Y1VKQlF6TkRPM2xDUVVGTk8zZENRVU5NTEZWQlFWVXNSVUZCUlN4RFFVRkRPM2RDUVVOaUxGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhWUVVGVkxFTkJRVU03ZDBKQlEycERMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4VlFVRlZMRU5CUVVNN2NVSkJRMnhETzJsQ1FVTkdPMkZCUTBZN1UwRkRSanRSUVVORUxFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhSUVVGUkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZPMWxCUTNSRExFbEJRVWtzVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhGUVVGRk8yZENRVU4wUWl4VlFVRlZMRVZCUVVjc1EwRkJRenRuUWtGRFpDeFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1ZVRkJWU3hEUVVGRE8yRkJRekZDTzFOQlEwWTdVVUZEUkN4UFFVRlBMRVZCUVVNc1VVRkJVU3hGUVVGRkxFVkJRVVVzUlVGQlJTeEpRVUZKTEZkQlFWY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRkxFVkJRVVVzU1VGQlNTeFhRVUZYTEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1EwRkJRenRKUVVOMFJTeERRVUZETzBsQlJVMHNXVUZCV1N4RFFVRkRMRmxCUVdkRE8xRkJRMnhFTEUxQlFVMHNXVUZCV1N4SFFVRjVReXhGUVVGRkxFTkJRVU03VVVGRE9VUXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzFsQlF6bERMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRuUWtGRGJFTXNXVUZCV1N4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNN1dVRkRka01zV1VGQldTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEZsQlFWa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRGJFWXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMmRDUVVOc1F5eFpRVUZaTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXp0WlFVTjJReXhaUVVGWkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzV1VGQldTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRUUVVOdVJqdFJRVU5FTEU5QlFVOHNXVUZCV1N4RFFVRkRPMGxCUTNSQ0xFTkJRVU03U1VGRlR5eFJRVUZSTEVOQlFVTXNXVUZCWjBNc1JVRkJSU3hMUVVGaE8xRkJRemxFTEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eExRVUZMTEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVN1dVRkRPVUlzU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNN1owSkJRMnhDTEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU03V1VGRGRrSXNXVUZCV1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1ZVRkJWU3hEUVVGRE8xTkJReTlETzBsQlEwZ3NRMEZCUXp0SlFVVlBMRk5CUVZNc1EwRkJReXhaUVVGblF6dFJRVU5vUkN4TFFVRkxMRTFCUVUwc1EwRkJReXhKUVVGSkxFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRVZCUVVVN1dVRkRla01zVFVGQlRTeEhRVUZITEVkQlFVY3NXVUZCV1N4RFFVRkRMRU5CUVZFc1EwRkJReXhEUVVGRE8xbEJRMjVETEVsQlFVa3NSMEZCUnl4SFFVRkhMRU5CUVVNc1EwRkJRenRaUVVOYUxFdEJRVXNzVFVGQlRTeERRVUZETEVsQlFVa3NUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU03WjBKQlF6bENMRWRCUVVjc1NVRkJTU3hIUVVGSExFTkJRVU1zUTBGQlVTeERRVUZETEVOQlFVTTdXVUZEZGtJc1NVRkJTU3hIUVVGSExFdEJRVXNzUTBGQlF6dG5Ra0ZCUlN4VFFVRlRPMWxCUTNoQ0xFdEJRVXNzVFVGQlRTeERRVUZETEVsQlFVa3NUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU03WjBKQlF6bENMRmxCUVZrc1EwRkJReXhEUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZSTEVOQlFVTXNTVUZCU1N4SFFVRkhMRU5CUVVNN1UwRkRNME03U1VGRFNDeERRVUZETzBsQlJVOHNUVUZCVFN4RFFVRkRMRmxCUVdkRExFVkJRVVVzUzBGQllUdFJRVU0xUkN4TlFVRk5MR05CUVdNc1IwRkJkVUlzUlVGQlJTeERRVUZETzFGQlF6bERMRTFCUVUwc1MwRkJTeXhIUVVGSExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFGQlF6ZEVMRTFCUVUwc1VVRkJVU3hIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJRM0pETEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eExRVUZMTEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVN1dVRkRPVUlzU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNN1owSkJRMnhDTEZOQlFWTTdXVUZEV0N3clFrRkJLMEk3V1VGREwwSXNZMEZCWXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF6dFpRVU4yUWl4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NTMEZCU3l4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8yZENRVU01UWl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMjlDUVVOMlFpeFRRVUZUTzJkQ1FVTllMRTFCUVUwc1IwRkJSeXhIUVVGSExFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNXVUZCV1N4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEdOQlFXTTdaMEpCUTI1RkxFbEJRVWtzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4SFFVRkhMRWRCUVVjc1VVRkJVU3hEUVVGRExFZEJRVWNzVVVGQlVTeEhRVUZITEVOQlFVTXNSVUZCUlR0dlFrRkROME1zWTBGQll5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFZEJRVWNzUTBGQlF6dHZRa0ZETTBJc1NVRkJTU3hEUVVGRExHTkJRV01zUTBGQlF5eERRVUZETEVOQlFVTTdkMEpCUTNCQ0xHTkJRV01zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNN2IwSkJRM3BDTEdOQlFXTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eEhRVUZITEVOQlFVTTdhVUpCUXpWQ08yRkJRMFk3VTBGRFJqdFJRVU5FTEU5QlFVOHNZMEZCWXl4RFFVRkRPMGxCUTNoQ0xFTkJRVU03U1VGRlJDeHRSRUZCYlVRN1NVRkZia1FzU1VGQlNUdEpRVVZKTEU5QlFVOHNRMEZCUXl4WlFVRm5RenRSUVVNNVF5eExRVUZMTEUxQlFVMHNRMEZCUXl4SlFVRkpMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEVWQlFVVTdXVUZEZWtNc1RVRkJUU3hIUVVGSExFZEJRVWNzV1VGQldTeERRVUZETEVOQlFWRXNRMEZCUXl4RFFVRkRPMWxCUTI1RExFdEJRVXNzVFVGQlRTeERRVUZETEVsQlFVa3NUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU03WjBKQlF6bENMRmxCUVZrc1EwRkJReXhEUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZSTEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRlJMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEdGQlFXRXNRMEZCUXl4RFFVRkRPMU5CUXpsSE8wbEJRMGdzUTBGQlF6dEpRVVZQTEdOQlFXTXNRMEZCUXl4WlFVRm5ReXhGUVVGRkxFTkJRVTBzUlVGQlJTeERRVUZOTzFGQlEzSkZMRWxCUVVrc1IwRkJSeXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU5hTEUxQlFVMHNZMEZCWXl4SFFVRkhMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJRekZFTEUxQlFVMHNXVUZCV1N4SFFVRkhMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJRM2hFTEV0QlFVc3NUVUZCVFN4RFFVRkRMRWxCUVVrc1kwRkJZeXhGUVVGRk8xbEJRemxDTEVsQlFVa3NXVUZCV1N4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU03WjBKQlF6RkNMRWRCUVVjc1NVRkJTU3haUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCVVN4RFFVRkRMRWRCUVVjc1dVRkJXU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFWRXNRMEZCUXl4RFFVRkRPMU5CUTJoRk8xRkJRMFFzVDBGQlR5eEhRVUZITEVOQlFVTTdTVUZEWWl4RFFVRkRPME5CUTBZaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ2UxTndZWEp6WlUxaGRISnBlRkpsYzNWc2RIMGdabkp2YlNBbkxpNHZaR2x6ZEdGdVkyVXRiV0YwY21sNEwzTndZWEp6WlMxdFlYUnlhWGd0YzJWeWRtbGpaU2M3WEc1cGJYQnZjblFnZTJKcGIweGhlVzkxZEgwZ1puSnZiU0FuTGk5aWFXOHRiR0Y1YjNWMEp6dGNibWx0Y0c5eWRDQjdUVU5NVDNCMGFXOXVjeXdnVTNCaGNuTmxUV0YwY21sNFQySnFaV04wZlNCbWNtOXRJQ2N1TDNSNWNHVnpKenRjYmx4dVpYaHdiM0owSUdOdmJuTjBJR1JsWm1GMWJIUk5RMHhQY0hScGIyNXpPaUJOUTB4UGNIUnBiMjV6SUQwZ2UxeHVJQ0JsZUhCaGJtUkdZV04wYjNJNklESXNYRzRnSUcxaGVFbDBaWEpoZEdsdmJuTTZJRFVzWEc0Z0lHbHVabXhoZEdWR1lXTjBiM0k2SURJc1hHNGdJRzExYkhSR1lXTjBiM0k2SURFc1hHNTlPMXh1WEc1bGVIQnZjblFnWTJ4aGMzTWdUVU5NVTNCaGNuTmxVbVZrZFdObGNpQjdYRzRnSUhCeWFYWmhkR1VnWDI5d2RHbHZibk02SUUxRFRFOXdkR2x2Ym5NN1hHNWNiaUFnWTI5dWMzUnlkV04wYjNJb2IzQjBjem9nVUdGeWRHbGhiRHhOUTB4UGNIUnBiMjV6UGlBOUlIdDlLU0I3WEc0Z0lDQWdkR2hwY3k1ZmIzQjBhVzl1Y3lBOUlIc3VMaTVrWldaaGRXeDBUVU5NVDNCMGFXOXVjeXdnTGk0dWIzQjBjMzA3WEc0Z0lIMWNibHh1SUNCd2RXSnNhV01nWVhONWJtTWdkSEpoYm5ObWIzSnRLSE53WVhKelpVMWhkSEpwZURvZ1UzQmhjbk5sVFdGMGNtbDRVbVZ6ZFd4MExDQnVVbTkzY3pvZ2JuVnRZbVZ5S1NCN1hHNGdJQ0FnTHk4Z2RHVnpkRmR2Y210bGNrMTFiSFJwY0d4NUtDazdYRzRnSUNBZ0x5OGdjbVYwZFhKdUlHNWxkeUJKYm5Rek1rRnljbUY1S0c1U2IzZHpLVHRjYmlBZ0lDQnNaWFFnYzNCaGNuTmxUMkpxWldOMElEMGdkR2hwY3k1MGIwOWlhbVZqZEVadmNtMG9jM0JoY25ObFRXRjBjbWw0S1R0Y2JpQWdJQ0JwWmlBb2RHaHBjeTVmYjNCMGFXOXVjeTV0WVhoSmRHVnlZWFJwYjI1eklENGdNQ2tnZTF4dUlDQWdJQ0FnZEdocGN5NWhaR1JNYjI5d2N5aHpjR0Z5YzJWUFltcGxZM1FzSUc1U2IzZHpLVHRjYmlBZ0lDQWdJSFJvYVhNdWJtOXliV0ZzYVhwbEtITndZWEp6WlU5aWFtVmpkQ2s3WEc0Z0lDQWdJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUhSb2FYTXVYMjl3ZEdsdmJuTXViV0Y0U1hSbGNtRjBhVzl1Y3pzZ2FTc3JLU0I3WEc0Z0lDQWdJQ0FnSUhOd1lYSnpaVTlpYW1WamRDQTlJSFJvYVhNdVpYaHdZVzVrS0hOd1lYSnpaVTlpYW1WamRDd2dibEp2ZDNNcE8xeHVJQ0FnSUNBZ0lDQjBhR2x6TG1sdVpteGhkR1VvYzNCaGNuTmxUMkpxWldOMEtUdGNiaUFnSUNBZ0lDQWdkR2hwY3k1dWIzSnRZV3hwZW1Vb2MzQmhjbk5sVDJKcVpXTjBLVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ1kyOXVjM1FnZTJOc2RYTjBaWEp6TENCcGN5d2dhbk45SUQwZ2RHaHBjeTVoYzNOcFoyNURiSFZ6ZEdWeWN5aHpjR0Z5YzJWUFltcGxZM1FzSUc1U2IzZHpLVHRjYmlBZ0lDQjBhR2x6TG1OdmNuSmxZM1JEYkhWemRHVnljeWhqYkhWemRHVnljeWs3WEc0Z0lDQWdZMjl1YzNRZ1pXMWlaV1JrYVc1bmN5QTlJR0YzWVdsMElIUm9hWE11YkdGNWIzVjBLR05zZFhOMFpYSnpMQ0J6Y0dGeWMyVlBZbXBsWTNRc0lHNVNiM2R6S1R0Y2JpQWdJQ0J5WlhSMWNtNGdlMk5zZFhOMFpYSnpMQ0JsYldKbFpGZzZJR1Z0WW1Wa1pHbHVaM011WlcxaVpXUllMQ0JsYldKbFpGazZJR1Z0WW1Wa1pHbHVaM011WlcxaVpXUlpMQ0JwY3l3Z2FuTjlPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0JqYjNKeVpXTjBRMngxYzNSbGNuTW9ZMngxYzNSbGNuTTZJRzUxYldKbGNsdGRLU0I3WEc0Z0lDQWdZMjl1YzNRZ1kyeDFjM1JsY2xOcGVtVk5ZWEE2SUh0Ylh6b2diblZ0WW1WeVhUb2diblZ0WW1WeWZTQTlJSHQ5TzF4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnWTJ4MWMzUmxjaUJ2WmlCamJIVnpkR1Z5Y3lrZ2UxeHVJQ0FnSUNBZ2FXWWdLQ0ZqYkhWemRHVnlVMmw2WlUxaGNGdGpiSFZ6ZEdWeVhTbGNiaUFnSUNBZ0lDQWdZMngxYzNSbGNsTnBlbVZOWVhCYlkyeDFjM1JsY2wwZ1BTQXdPMXh1SUNBZ0lDQWdZMngxYzNSbGNsTnBlbVZOWVhCYlkyeDFjM1JsY2wwckt6dGNiaUFnSUNCOVhHNGdJQ0FnWTI5dWMzUWdjMjl5ZEdWa1NXNWtaWGhsY3lBOUlFOWlhbVZqZEM1clpYbHpLR05zZFhOMFpYSlRhWHBsVFdGd0tTNXRZWEFvVG5WdFltVnlLUzV6YjNKMEtDaGhMQ0JpS1NBOVBpQmpiSFZ6ZEdWeVUybDZaVTFoY0Z0aFhTQXRJR05zZFhOMFpYSlRhWHBsVFdGd1cySmRLVHRjYmlBZ0lDQmpiMjV6ZENCamJIVnpkR1Z5VFdGd09pQjdXMTg2SUc1MWJXSmxjbDA2SUc1MWJXSmxjbjBnUFNCN2ZUdGNiaUFnSUNCemIzSjBaV1JKYm1SbGVHVnpMbVp2Y2tWaFkyZ29LR05zZFhOMFpYSkpaSGdzSUdrcElEMCtJR05zZFhOMFpYSk5ZWEJiWTJ4MWMzUmxja2xrZUYwZ1BTQnBJQ3NnTVNrN1hHNGdJQ0FnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCamJIVnpkR1Z5Y3k1c1pXNW5kR2c3SUdrckt5bGNiaUFnSUNBZ0lHTnNkWE4wWlhKelcybGRJRDBnWTJ4MWMzUmxjazFoY0Z0amJIVnpkR1Z5YzF0cFhWMDdYRzRnSUNBZ0x5OGdiR1YwSUdOMWNrTnNkWE4wWlhJZ1BTQXhPMXh1SUNBZ0lDOHZJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnWTJ4MWMzUmxjbk11YkdWdVozUm9PeUJwS3lzcElIdGNiaUFnSUNBdkx5QWdJR2xtSUNnaFkyeDFjM1JsY2sxaGNGdGpiSFZ6ZEdWeWMxdHBYVjBwSUh0Y2JpQWdJQ0F2THlBZ0lDQWdZMngxYzNSbGNrMWhjRnRqYkhWemRHVnljMXRwWFYwZ1BTQmpkWEpEYkhWemRHVnlPMXh1SUNBZ0lDOHZJQ0FnSUNCamJIVnpkR1Z5YzF0cFhTQTlJR04xY2tOc2RYTjBaWEk3WEc0Z0lDQWdMeThnSUNBZ0lHTjFja05zZFhOMFpYSXJLenRjYmlBZ0lDQXZMeUFnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdMeThnSUNBZ0lHTnNkWE4wWlhKelcybGRJRDBnWTJ4MWMzUmxjazFoY0Z0amJIVnpkR1Z5YzF0cFhWMDdYRzRnSUNBZ0x5OGdJQ0I5WEc0Z0lDQWdMeThnZlZ4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCaGMzbHVZeUJzWVhsdmRYUW9ZMngxYzNSbGNuTTZJRzUxYldKbGNsdGRMQ0J6Y0dGeWMyVk5ZWFJ5YVhnNklGTndZWEp6WlUxaGRISnBlRTlpYW1WamRDd2dibEp2ZDNNNklHNTFiV0psY2lrZ2UxeHVJQ0FnSUdOdmJuTjBJR1Z0WW1Wa1dDQTlJRzVsZHlCR2JHOWhkRE15UVhKeVlYa29ibEp2ZDNNcExtWnBiR3dvTUNrN1hHNGdJQ0FnWTI5dWMzUWdaVzFpWldSWklEMGdibVYzSUVac2IyRjBNekpCY25KaGVTaHVVbTkzY3lrdVptbHNiQ2d3S1R0Y2JpQWdJQ0JqYjI1emRDQmpiSFZ6ZEdWeVRXRndPaUI3VzE4NklHNTFiV0psY2wwNklHNTFiV0psY2x0ZGZTQTlJSHQ5TzF4dUlDQWdJR05zZFhOMFpYSnpMbVp2Y2tWaFkyZ29LR05zZFhOMFpYSXNJR2twSUQwK0lIdGNiaUFnSUNBZ0lHbG1JQ2doWTJ4MWMzUmxjazFoY0Z0amJIVnpkR1Z5WFNsY2JpQWdJQ0FnSUNBZ1kyeDFjM1JsY2sxaGNGdGpiSFZ6ZEdWeVhTQTlJRnRkTzF4dUlDQWdJQ0FnWTJ4MWMzUmxjazFoY0Z0amJIVnpkR1Z5WFM1d2RYTm9LR2twTzF4dUlDQWdJSDBwTzF4dUlDQWdJQzh2SUdOdmJuTjBJRzVEYkhWemRHVnljeUE5SUU5aWFtVmpkQzVyWlhsektHTnNkWE4wWlhKTllYQXBMbXhsYm1kMGFEdGNiaUFnSUNBdkx5QmpiMjV6ZENCd1pYSlNiM2NnUFNCTllYUm9MbVpzYjI5eUtFMWhkR2d1YzNGeWRDaHVRMngxYzNSbGNuTXBLVHRjYmlBZ0lDQnNaWFFnWTJ4MWMzUmxjazUxYlNBOUlEQTdYRzRnSUNBZ1kyOXVjM1FnYzI5eWRHVmtRMngxYzNSbGNrNWhiV1Z6SUQwZ1QySnFaV04wTG10bGVYTW9ZMngxYzNSbGNrMWhjQ2s3WEc0Z0lDQWdjMjl5ZEdWa1EyeDFjM1JsY2s1aGJXVnpMbk52Y25Rb0tHRXNJR0lwSUQwK0lHTnNkWE4wWlhKTllYQmJZaUJoY3lCaGJubGRMbXhsYm1kMGFDQXRJR05zZFhOMFpYSk5ZWEJiWVNCaGN5QmhibmxkTG14bGJtZDBhQ2s3WEc0Z0lDQWdiR1YwSUhCbGNsSnZkeUE5SURZN1hHNWNiaUFnSUNCc1pYUWdlVTltWm5ObGRDQTlJREE3WEc0Z0lDQWdZMjl1YzNRZ2JHRjViM1YwVTJsNlpTQTlJRFU3WEc0Z0lDQWdabTl5SUNoamIyNXpkQ0JqYkhWemRHVnlUbUZ0WlNCdlppQnpiM0owWldSRGJIVnpkR1Z5VG1GdFpYTXBJSHRjYmlBZ0lDQWdJR052Ym5OMElHTnNkWE4wWlhJZ1BTQmpiSFZ6ZEdWeVRXRndXMk5zZFhOMFpYSk9ZVzFsSUdGeklHRnVlVjBoTzF4dUlDQWdJQ0FnWTI5dWMzUWdaVzFpWldSa2FXNW5jeUE5SUdGM1lXbDBJR0pwYjB4aGVXOTFkQ2hqYkhWemRHVnlMQ0J6Y0dGeWMyVk5ZWFJ5YVhnc0lEQXVNREF4S1R0Y2JpQWdJQ0FnSUdsbUlDaGpiSFZ6ZEdWeVRuVnRJRDA5UFNCTllYUm9MbU5sYVd3b2NHVnlVbTkzSUM4Z01TNDFLU2tnZTF4dUlDQWdJQ0FnSUNCamJIVnpkR1Z5VG5WdElEMGdNRHRjYmlBZ0lDQWdJQ0FnZVU5bVpuTmxkQ0FyUFNCc1lYbHZkWFJUYVhwbElDOGdjR1Z5VW05M08xeHVJQ0FnSUNBZ0lDQndaWEpTYjNjZ1BTQk5ZWFJvTG1ObGFXd29jR1Z5VW05M0lDb2dNUzQxS1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUdOdmJuTjBJRzltWm5ObGRGZ2dQU0FvS0dOc2RYTjBaWEpPZFcwZ0pTQndaWEpTYjNjcElDb2diR0Y1YjNWMFUybDZaU0F2SUhCbGNsSnZkeWtnS2lBeExqVTdYRzRnSUNBZ0lDQXZMeUJqYjI1emRDQnZabVp6WlhSWklEMGdUV0YwYUM1bWJHOXZjaWhqYkhWemRHVnlUblZ0SUM4Z2NHVnlVbTkzS1NBcUlESTdYRzVjYmlBZ0lDQWdJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnWlcxaVpXUmthVzVuY3k1bGJXSmxaRmd1YkdWdVozUm9PeUJwS3lzcElIdGNiaUFnSUNBZ0lDQWdaVzFpWldSWVcyTnNkWE4wWlhKYmFWMWRJRDBnWlcxaVpXUmthVzVuY3k1bGJXSmxaRmhiYVYwZ0tpQnNZWGx2ZFhSVGFYcGxJQzhnY0dWeVVtOTNJQ3NnYjJabWMyVjBXRHRjYmlBZ0lDQWdJQ0FnWlcxaVpXUlpXMk5zZFhOMFpYSmJhVjFkSUQwZ1pXMWlaV1JrYVc1bmN5NWxiV0psWkZsYmFWMGdLaUJzWVhsdmRYUlRhWHBsSUM4Z2NHVnlVbTkzSUNzZ2VVOW1abk5sZER0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUdOc2RYTjBaWEpPZFcwckt6dGNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJSHRsYldKbFpGZ3NJR1Z0WW1Wa1dYMDdYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJRzFsY21kbFEyeDFjM1JsY25Nb1kyeDFjM1JsY25NNklHNTFiV0psY2x0ZExDQnBPaUJ1ZFcxaVpYSXNJR282SUc1MWJXSmxjaWtnZTF4dUlDQWdJR052Ym5OMElHbERiSFZ6ZEdWeUlEMGdZMngxYzNSbGNuTmJhVjA3WEc0Z0lDQWdZMjl1YzNRZ2FrTnNkWE4wWlhJZ1BTQmpiSFZ6ZEdWeWMxdHFYVHRjYmlBZ0lDQm1iM0lnS0d4bGRDQnJJRDBnTURzZ2F5QThJR05zZFhOMFpYSnpMbXhsYm1kMGFEc2dheXNyS1NCN1hHNGdJQ0FnSUNCcFppQW9ZMngxYzNSbGNuTmJhMTBnUFQwOUlHcERiSFZ6ZEdWeUtWeHVJQ0FnSUNBZ0lDQmpiSFZ6ZEdWeWMxdHJYU0E5SUdsRGJIVnpkR1Z5TzF4dUlDQWdJSDFjYmlBZ2ZWeHVJQ0J3ZFdKc2FXTWdZWE56YVdkdVEyeDFjM1JsY25Nb2MzQmhjbk5sVFdGMGNtbDRPaUJUY0dGeWMyVk5ZWFJ5YVhoUFltcGxZM1FzSUc1U2IzZHpPaUJ1ZFcxaVpYSXBJSHRjYmlBZ0lDQnNaWFFnWTJ4MWMzUmxjazUxYlNBOUlEQTdYRzRnSUNBZ1kyOXVjM1FnYVhNNklHNTFiV0psY2x0ZElEMGdXMTA3WEc0Z0lDQWdZMjl1YzNRZ2FuTTZJRzUxYldKbGNsdGRJRDBnVzEwN1hHNGdJQ0FnWTI5dWMzUWdiM0prWlhJZ1BTQk5ZWFJvTG1ac2IyOXlLRTFoZEdndWJXRjRLRTFoZEdndWJHOW5NVEFvYmxKdmQzTXBMQ0F5S1NrZ0t5QXhPMXh1SUNBZ0lHTnZibk4wSUcxcGJrOXlaR1Z5SUQwZ1RXRjBhQzV3YjNjb01UQXNJRzl5WkdWeUtUdGNiaUFnSUNCamIyNXpkQ0JqYkhWemRHVnljem9nYm5WdFltVnlXMTBnUFNCdVpYY2dRWEp5WVhrb2JsSnZkM01wTG1acGJHd29MVEVwTzF4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnYVNCdlppQlBZbXBsWTNRdWEyVjVjeWh6Y0dGeWMyVk5ZWFJ5YVhncEtTQjdYRzRnSUNBZ0lDQm1iM0lnS0dOdmJuTjBJR29nYjJZZ1QySnFaV04wTG10bGVYTW9jM0JoY25ObFRXRjBjbWw0VzJrZ1lYTWdZVzU1WFNrcElIdGNiaUFnSUNBZ0lDQWdhV1lnS0UxaGRHZ3VjbTkxYm1Rb2MzQmhjbk5sVFdGMGNtbDRXMmtnWVhNZ1lXNTVYVnRxSUdGeklHRnVlVjBnS2lCdGFXNVBjbVJsY2lrZ0x5QnRhVzVQY21SbGNpQStJREFnSmlaY2JpQWdJQ0FnSUNBZ0lDQnpjR0Z5YzJWTllYUnlhWGhiYVNCaGN5QmhibmxkVzJvZ1lYTWdZVzU1WFNBaFBUMGdUblZ0WW1WeUtHa3BJQ1ltSUU1MWJXSmxjaWhxS1NBK0lFNTFiV0psY2locEtTa2dlMXh1SUNBZ0lDQWdJQ0FnSUdsekxuQjFjMmdvVG5WdFltVnlLR2twS1R0Y2JpQWdJQ0FnSUNBZ0lDQnFjeTV3ZFhOb0tFNTFiV0psY2locUtTazdYRzRnSUNBZ0lDQWdJQ0FnYVdZZ0tHTnNkWE4wWlhKelcwNTFiV0psY2locEtWMGdJVDA5SUMweElDWW1JR05zZFhOMFpYSnpXMDUxYldKbGNpaHFLVjBnSVQwOUlDMHhLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWTJ4MWMzUmxjbk5iVG5WdFltVnlLR2twWFNBaFBUMGdZMngxYzNSbGNuTmJUblZ0WW1WeUtHb3BYU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1dFpYSm5aVU5zZFhOMFpYSnpLR05zZFhOMFpYSnpMQ0JPZFcxaVpYSW9hU2tzSUU1MWJXSmxjaWhxS1NrN1hHNGdJQ0FnSUNBZ0lDQWdmU0JsYkhObElHbG1JQ2hqYkhWemRHVnljMXRPZFcxaVpYSW9hU2xkSUNFOVBTQXRNU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZMngxYzNSbGNuTmJUblZ0WW1WeUtHb3BYU0E5SUdOc2RYTjBaWEp6VzA1MWJXSmxjaWhwS1YwN1hHNGdJQ0FnSUNBZ0lDQWdmU0JsYkhObElHbG1JQ2hqYkhWemRHVnljMXRPZFcxaVpYSW9haWxkSUNFOVBTQXRNU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZMngxYzNSbGNuTmJUblZ0WW1WeUtHa3BYU0E5SUdOc2RYTjBaWEp6VzA1MWJXSmxjaWhxS1YwN1hHNGdJQ0FnSUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOc2RYTjBaWEpPZFcwckt6dGNiaUFnSUNBZ0lDQWdJQ0FnSUdOc2RYTjBaWEp6VzA1MWJXSmxjaWhwS1YwZ1BTQmpiSFZ6ZEdWeVRuVnRPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyeDFjM1JsY25OYlRuVnRZbVZ5S0dvcFhTQTlJR05zZFhOMFpYSk9kVzA3WEc0Z0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0FnSUdadmNpQW9iR1YwSUdrOU1Ec2dhU0E4SUdOc2RYTjBaWEp6TG14bGJtZDBhRHNnYVNzcktTQjdYRzRnSUNBZ0lDQnBaaUFvWTJ4MWMzUmxjbk5iYVYwZ1BUMDlJQzB4S1NCN1hHNGdJQ0FnSUNBZ0lHTnNkWE4wWlhKT2RXMGdLeXM3WEc0Z0lDQWdJQ0FnSUdOc2RYTjBaWEp6VzJsZElEMGdZMngxYzNSbGNrNTFiVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUh0amJIVnpkR1Z5Y3l3Z2FYTTZJRzVsZHlCVmFXNTBNekpCY25KaGVTaHBjeWtzSUdwek9pQnVaWGNnVldsdWRETXlRWEp5WVhrb2FuTXBmVHRjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUIwYjA5aWFtVmpkRVp2Y20wb2MzQmhjbk5sVFdGMGNtbDRPaUJUY0dGeWMyVk5ZWFJ5YVhoU1pYTjFiSFFwT2lCVGNHRnljMlZOWVhSeWFYaFBZbXBsWTNRZ2UxeHVJQ0FnSUdOdmJuTjBJSE53WVhKelpVOWlhbVZqZERvZ2UxdGZPaUJ1ZFcxaVpYSmRPaUI3VzE4NklHNTFiV0psY2wwNklHNTFiV0psY24xOUlEMGdlMzA3WEc0Z0lDQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0J6Y0dGeWMyVk5ZWFJ5YVhndWFTNXNaVzVuZEdnN0lHa3JLeWtnZTF4dUlDQWdJQ0FnYVdZZ0tDRnpjR0Z5YzJWUFltcGxZM1JiYzNCaGNuTmxUV0YwY21sNExtbGJhVjFkS1Z4dUlDQWdJQ0FnSUNCemNHRnljMlZQWW1wbFkzUmJjM0JoY25ObFRXRjBjbWw0TG1sYmFWMWRJRDBnZTMwN1hHNGdJQ0FnSUNCemNHRnljMlZQWW1wbFkzUmJjM0JoY25ObFRXRjBjbWw0TG1sYmFWMWRXM053WVhKelpVMWhkSEpwZUM1cVcybGRYU0E5SURFZ0xTQnpjR0Z5YzJWTllYUnlhWGd1WkdsemRHRnVZMlZiYVYwN1hHNGdJQ0FnSUNCcFppQW9JWE53WVhKelpVOWlhbVZqZEZ0emNHRnljMlZOWVhSeWFYZ3VhbHRwWFYwcFhHNGdJQ0FnSUNBZ0lITndZWEp6WlU5aWFtVmpkRnR6Y0dGeWMyVk5ZWFJ5YVhndWFsdHBYVjBnUFNCN2ZUdGNiaUFnSUNBZ0lITndZWEp6WlU5aWFtVmpkRnR6Y0dGeWMyVk5ZWFJ5YVhndWFsdHBYVjFiYzNCaGNuTmxUV0YwY21sNExtbGJhVjFkSUQwZ01TQXRJSE53WVhKelpVMWhkSEpwZUM1a2FYTjBZVzVqWlZ0cFhUdGNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJSE53WVhKelpVOWlhbVZqZER0Y2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ1lXUmtURzl2Y0hNb2MzQmhjbk5sVDJKcVpXTjBPaUJUY0dGeWMyVk5ZWFJ5YVhoUFltcGxZM1FzSUc1U2IzZHpPaUJ1ZFcxaVpYSXBJSHRjYmlBZ0lDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJRzVTYjNkek95QnBLeXNwSUh0Y2JpQWdJQ0FnSUdsbUlDZ2hjM0JoY25ObFQySnFaV04wVzJsZEtWeHVJQ0FnSUNBZ0lDQnpjR0Z5YzJWUFltcGxZM1JiYVYwZ1BTQjdmVHRjYmlBZ0lDQWdJSE53WVhKelpVOWlhbVZqZEZ0cFhWdHBYU0E5SUhSb2FYTXVYMjl3ZEdsdmJuTXViWFZzZEVaaFkzUnZjanRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJRzV2Y20xaGJHbDZaU2h6Y0dGeWMyVlBZbXBsWTNRNklGTndZWEp6WlUxaGRISnBlRTlpYW1WamRDa2dlMXh1SUNBZ0lHWnZjaUFvWTI5dWMzUWdhU0J2WmlCUFltcGxZM1F1YTJWNWN5aHpjR0Z5YzJWUFltcGxZM1FwS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0J5YjNjZ1BTQnpjR0Z5YzJWUFltcGxZM1JiYVNCaGN5QmhibmxkTzF4dUlDQWdJQ0FnYkdWMElITjFiU0E5SURBN1hHNGdJQ0FnSUNCbWIzSWdLR052Ym5OMElHb2diMllnVDJKcVpXTjBMbXRsZVhNb2NtOTNLU2xjYmlBZ0lDQWdJQ0FnYzNWdElDczlJSEp2ZDF0cUlHRnpJR0Z1ZVYwN1hHNGdJQ0FnSUNCcFppQW9jM1Z0SUQwOVBTQXdLU0JqYjI1MGFXNTFaVHRjYmlBZ0lDQWdJR1p2Y2lBb1kyOXVjM1FnYWlCdlppQlBZbXBsWTNRdWEyVjVjeWh5YjNjcEtWeHVJQ0FnSUNBZ0lDQnpjR0Z5YzJWUFltcGxZM1JiYVNCaGN5QmhibmxkVzJvZ1lYTWdZVzU1WFNBdlBTQnpkVzA3WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0JsZUhCaGJtUW9jM0JoY25ObFQySnFaV04wT2lCVGNHRnljMlZOWVhSeWFYaFBZbXBsWTNRc0lHNVNiM2R6T2lCdWRXMWlaWElwSUh0Y2JpQWdJQ0JqYjI1emRDQmxlSEJoYm1SbFpFOWlhbVZqZERvZ1UzQmhjbk5sVFdGMGNtbDRUMkpxWldOMElEMGdlMzA3WEc0Z0lDQWdZMjl1YzNRZ2IzSmtaWElnUFNCTllYUm9MbVpzYjI5eUtFMWhkR2d1YldGNEtFMWhkR2d1Ykc5bk1UQW9ibEp2ZDNNcExDQXlLU2tnS3lBeE8xeHVJQ0FnSUdOdmJuTjBJRzFwYms5eVpHVnlJRDBnVFdGMGFDNXdiM2NvTVRBc0lHOXlaR1Z5S1R0Y2JpQWdJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUc1U2IzZHpPeUJwS3lzcElIdGNiaUFnSUNBZ0lHbG1JQ2doYzNCaGNuTmxUMkpxWldOMFcybGRLVnh1SUNBZ0lDQWdJQ0JqYjI1MGFXNTFaVHRjYmlBZ0lDQWdJQzh2SUdOdmJuTjBJSEp2ZHlBOUlITndZWEp6WlU5aWFtVmpkRnRwWFR0Y2JpQWdJQ0FnSUdWNGNHRnVaR1ZrVDJKcVpXTjBXMmxkSUQwZ2UzMDdYRzRnSUNBZ0lDQm1iM0lnS0d4bGRDQnFJRDBnYVRzZ2FpQThJRzVTYjNkek95QnFLeXNwSUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLQ0Z6Y0dGeWMyVlBZbXBsWTNSYmFWMC9MbHRxWFNsY2JpQWdJQ0FnSUNBZ0lDQmpiMjUwYVc1MVpUdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2RtRnNJRDBnZEdocGN5NW5aWFJGZUhCaGJtUldZV3gxWlNoemNHRnljMlZQWW1wbFkzUXNJR2tzSUdvcE95QXZMM0J5ZFc1cGJtY2djM1JsY0Z4dUlDQWdJQ0FnSUNCcFppQW9UV0YwYUM1eWIzVnVaQ2gyWVd3Z0tpQnRhVzVQY21SbGNpa2dMeUJ0YVc1UGNtUmxjaUErSURBcElIdGNiaUFnSUNBZ0lDQWdJQ0JsZUhCaGJtUmxaRTlpYW1WamRGdHBYVnRxWFNBOUlIWmhiRHRjYmlBZ0lDQWdJQ0FnSUNCcFppQW9JV1Y0Y0dGdVpHVmtUMkpxWldOMFcycGRLVnh1SUNBZ0lDQWdJQ0FnSUNBZ1pYaHdZVzVrWldSUFltcGxZM1JiYWwwZ1BTQjdmVHRjYmlBZ0lDQWdJQ0FnSUNCbGVIQmhibVJsWkU5aWFtVmpkRnRxWFZ0cFhTQTlJSFpoYkR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdaWGh3WVc1a1pXUlBZbXBsWTNRN1hHNGdJSDFjYmx4dUlDQXZMeUJ3Y21sMllYUmxJSEJ5ZFc1bEtISnZkem9nVTNCaGNuTmxUV0YwY21sNFQySnFaV04wVzI1MWJXSmxjbDBwSUh0Y2JseHVJQ0F2THlCOVhHNWNiaUFnY0hKcGRtRjBaU0JwYm1ac1lYUmxLSE53WVhKelpVOWlhbVZqZERvZ1UzQmhjbk5sVFdGMGNtbDRUMkpxWldOMEtTQjdYRzRnSUNBZ1ptOXlJQ2hqYjI1emRDQnBJRzltSUU5aWFtVmpkQzVyWlhsektITndZWEp6WlU5aWFtVmpkQ2twSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJSEp2ZHlBOUlITndZWEp6WlU5aWFtVmpkRnRwSUdGeklHRnVlVjA3WEc0Z0lDQWdJQ0JtYjNJZ0tHTnZibk4wSUdvZ2IyWWdUMkpxWldOMExtdGxlWE1vY205M0tTbGNiaUFnSUNBZ0lDQWdjM0JoY25ObFQySnFaV04wVzJrZ1lYTWdZVzU1WFZ0cUlHRnpJR0Z1ZVYwZ1BTQk5ZWFJvTG5CdmR5aHpjR0Z5YzJWUFltcGxZM1JiYVNCaGN5QmhibmxkVzJvZ1lYTWdZVzU1WFN3Z2RHaHBjeTVmYjNCMGFXOXVjeTVwYm1ac1lYUmxSbUZqZEc5eUtUdGNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElHZGxkRVY0Y0dGdVpGWmhiSFZsS0hOd1lYSnpaVTlpYW1WamREb2dVM0JoY25ObFRXRjBjbWw0VDJKcVpXTjBMQ0JwT2lCaGJua3NJR282SUdGdWVTa2dlMXh1SUNBZ0lHeGxkQ0IyWVd3Z1BTQXdPMXh1SUNBZ0lHTnZibk4wSUdOMWNuSmxiblJKYm1SbGVHVnpJRDBnVDJKcVpXTjBMbXRsZVhNb2MzQmhjbk5sVDJKcVpXTjBXMmxkSUQ4L0lIdDlLVHRjYmlBZ0lDQmpiMjV6ZENCdmRHaGxja2x1WkdWNFpYTWdQU0JQWW1wbFkzUXVhMlY1Y3loemNHRnljMlZQWW1wbFkzUmJhbDBnUHo4Z2UzMHBPMXh1SUNBZ0lHWnZjaUFvWTI5dWMzUWdheUJ2WmlCamRYSnlaVzUwU1c1a1pYaGxjeWtnZTF4dUlDQWdJQ0FnYVdZZ0tHOTBhR1Z5U1c1a1pYaGxjeTVwYm1Oc2RXUmxjeWhyS1NsY2JpQWdJQ0FnSUNBZ2RtRnNJQ3M5SUhOd1lYSnpaVTlpYW1WamRGdHBYVnRySUdGeklHRnVlVjBnS2lCemNHRnljMlZQWW1wbFkzUmJhbDFiYXlCaGN5QmhibmxkTzF4dUlDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z2RtRnNPMXh1SUNCOVhHNTlYRzVjYmlKZGZRPT0iLCJpbXBvcnQgeyBTcGFyc2VNYXRyaXhTZXJ2aWNlIH0gZnJvbSAnLi4vZGlzdGFuY2UtbWF0cml4L3NwYXJzZS1tYXRyaXgtc2VydmljZSc7XG5pbXBvcnQgeyBNQ0xTcGFyc2VSZWR1Y2VyIH0gZnJvbSAnLi9tYXJjb3YtY2x1c3Rlcic7XG5vbm1lc3NhZ2UgPSBhc3luYyAoZXZlbnQpID0+IHtcbiAgICBjb25zdCB7IGRhdGEsIHRocmVzaG9sZCwgd2VpZ2h0cywgYWdncmVnYXRpb25NZXRob2QsIGRpc3RhbmNlRm5BcmdzLCBkaXN0YW5jZUZucywgbWF4SXRlcmF0aW9ucyB9ID0gZXZlbnQuZGF0YTtcbiAgICBjb25zdCBzcGFyc2UgPSBhd2FpdCBuZXcgU3BhcnNlTWF0cml4U2VydmljZSgpXG4gICAgICAgIC5jYWxjTXVsdGlDb2x1bW4oZGF0YSwgZGlzdGFuY2VGbnMsIHRocmVzaG9sZCAvIDEwMCwgZGlzdGFuY2VGbkFyZ3MsIHdlaWdodHMsIGFnZ3JlZ2F0aW9uTWV0aG9kKTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCBuZXcgTUNMU3BhcnNlUmVkdWNlcih7IG1heEl0ZXJhdGlvbnM6IG1heEl0ZXJhdGlvbnMgPz8gNSB9KS50cmFuc2Zvcm0oc3BhcnNlLCBkYXRhWzBdLmxlbmd0aCk7XG4gICAgcG9zdE1lc3NhZ2UoeyByZXMgfSk7XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYldOc0xYZHZjbXRsY2k1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJbTFqYkMxM2IzSnJaWEl1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRXNUMEZCVHl4RlFVRkRMRzFDUVVGdFFpeEZRVUZETEUxQlFVMHNNRU5CUVRCRExFTkJRVU03UVVGSE4wVXNUMEZCVHl4RlFVRkRMR2RDUVVGblFpeEZRVUZETEUxQlFVMHNhMEpCUVd0Q0xFTkJRVU03UVVGRmJFUXNVMEZCVXl4SFFVRkhMRXRCUVVzc1JVRkJSU3hMUVVGTExFVkJRVVVzUlVGQlJUdEpRVU14UWl4TlFVRk5MRVZCUVVNc1NVRkJTU3hGUVVGRkxGTkJRVk1zUlVGQlJTeFBRVUZQTEVWQlFVVXNhVUpCUVdsQ0xFVkJRVVVzWTBGQll5eEZRVUZGTEZkQlFWY3NSVUZCUlN4aFFVRmhMRVZCUVVNc1IwRkhhRUlzUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXp0SlFVTXhSaXhOUVVGTkxFMUJRVTBzUjBGQlJ5eE5RVUZOTEVsQlFVa3NiVUpCUVcxQ0xFVkJRVVU3VTBGRE0wTXNaVUZCWlN4RFFVRkRMRWxCUVVrc1JVRkJSU3hYUVVGWExFVkJRVVVzVTBGQlV5eEhRVUZITEVkQlFVY3NSVUZCUlN4alFVRmpMRVZCUVVVc1QwRkJUeXhGUVVGRkxHbENRVUZwUWl4RFFVRkRMRU5CUVVNN1NVRkRia2NzVFVGQlRTeEhRVUZITEVkQlFVY3NUVUZCVFN4SlFVRkpMR2RDUVVGblFpeERRVUZETEVWQlFVTXNZVUZCWVN4RlFVRkZMR0ZCUVdFc1NVRkJTU3hEUVVGRExFVkJRVU1zUTBGQlF5eERRVUZETEZOQlFWTXNRMEZCUXl4TlFVRk5MRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMGxCUXpsSExGZEJRVmNzUTBGQlF5eEZRVUZETEVkQlFVY3NSVUZCUXl4RFFVRkRMRU5CUVVNN1FVRkRja0lzUTBGQlF5eERRVUZESWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUh0VGNHRnljMlZOWVhSeWFYaFRaWEoyYVdObGZTQm1jbTl0SUNjdUxpOWthWE4wWVc1alpTMXRZWFJ5YVhndmMzQmhjbk5sTFcxaGRISnBlQzF6WlhKMmFXTmxKenRjYm1sdGNHOXlkQ0I3UkdsemRHRnVZMlZCWjJkeVpXZGhkR2x2YmsxbGRHaHZaSDBnWm5KdmJTQW5MaTR2WkdsemRHRnVZMlV0YldGMGNtbDRMM1I1Y0dWekp6dGNibWx0Y0c5eWRDQjdTMjV2ZDI1TlpYUnlhV056ZlNCbWNtOXRJQ2N1TGk5MGVYQmxaQzF0WlhSeWFXTnpKenRjYm1sdGNHOXlkQ0I3VFVOTVUzQmhjbk5sVW1Wa2RXTmxjbjBnWm5KdmJTQW5MaTl0WVhKamIzWXRZMngxYzNSbGNpYzdYRzVjYm05dWJXVnpjMkZuWlNBOUlHRnplVzVqSUNobGRtVnVkQ2tnUFQ0Z2UxeHVJQ0JqYjI1emRDQjdaR0YwWVN3Z2RHaHlaWE5vYjJ4a0xDQjNaV2xuYUhSekxDQmhaMmR5WldkaGRHbHZiazFsZEdodlpDd2daR2x6ZEdGdVkyVkdia0Z5WjNNc0lHUnBjM1JoYm1ObFJtNXpMQ0J0WVhoSmRHVnlZWFJwYjI1emZUcGNiaUFnSUh0a1lYUmhPaUJoYm5sYlhWdGRMQ0IwYUhKbGMyaHZiR1E2SUc1MWJXSmxjaXhjYmlBZ0lDQjNaV2xuYUhSek9pQnVkVzFpWlhKYlhTd2dZV2RuY21WbllYUnBiMjVOWlhSb2IyUTZJRVJwYzNSaGJtTmxRV2RuY21WbllYUnBiMjVOWlhSb2IyUXNYRzRnSUNBZ1pHbHpkR0Z1WTJWR2JuTTZJRXR1YjNkdVRXVjBjbWxqYzF0ZExDQmthWE4wWVc1alpVWnVRWEpuY3pvZ1lXNTVXMTBzSUcxaGVFbDBaWEpoZEdsdmJuTTZJRzUxYldKbGNuMGdQU0JsZG1WdWRDNWtZWFJoTzF4dUlDQmpiMjV6ZENCemNHRnljMlVnUFNCaGQyRnBkQ0J1WlhjZ1UzQmhjbk5sVFdGMGNtbDRVMlZ5ZG1salpTZ3BYRzRnSUNBZ0xtTmhiR05OZFd4MGFVTnZiSFZ0Ymloa1lYUmhMQ0JrYVhOMFlXNWpaVVp1Y3l3Z2RHaHlaWE5vYjJ4a0lDOGdNVEF3TENCa2FYTjBZVzVqWlVadVFYSm5jeXdnZDJWcFoyaDBjeXdnWVdkbmNtVm5ZWFJwYjI1TlpYUm9iMlFwTzF4dUlDQmpiMjV6ZENCeVpYTWdQU0JoZDJGcGRDQnVaWGNnVFVOTVUzQmhjbk5sVW1Wa2RXTmxjaWg3YldGNFNYUmxjbUYwYVc5dWN6b2diV0Y0U1hSbGNtRjBhVzl1Y3lBL1B5QTFmU2t1ZEhKaGJuTm1iM0p0S0hOd1lYSnpaU3dnWkdGMFlWc3dYUzVzWlc1bmRHZ3BPMXh1SUNCd2IzTjBUV1Z6YzJGblpTaDdjbVZ6ZlNrN1hHNTlPMXh1SWwxOSIsImltcG9ydCB7IERpc3RhbmNlQWdncmVnYXRpb25NZXRob2RzIH0gZnJvbSAnLi90eXBlcyc7XG5leHBvcnQgY29uc3QgaXNOaWwgPSAoeCkgPT4geCA9PT0gbnVsbCB8fCB4ID09PSB1bmRlZmluZWQ7XG5leHBvcnQgZnVuY3Rpb24gaW5zZXJ0U21hbGxlcihkaXN0YW5jZXNBciwgaW5kZXhlcywgbnVtLCBpbmRleCkge1xuICAgIGlmIChudW0gPiBkaXN0YW5jZXNBcltkaXN0YW5jZXNBci5sZW5ndGggLSAxXSlcbiAgICAgICAgcmV0dXJuO1xuICAgIGNvbnN0IG5ld1Bvc2l0aW9uID0gZGlzdGFuY2VzQXIuZmluZEluZGV4KCh2KSA9PiBudW0gPCB2KTtcbiAgICBkaXN0YW5jZXNBci5wb3AoKTtcbiAgICBkaXN0YW5jZXNBci5zcGxpY2UobmV3UG9zaXRpb24sIDAsIG51bSk7XG4gICAgaW5kZXhlcy5wb3AoKTtcbiAgICBpbmRleGVzLnNwbGljZShuZXdQb3NpdGlvbiwgMCwgaW5kZXgpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGluc2VydExhcmdlcihkaXN0YW5jZXNBciwgaW5kZXhlcywgbnVtLCBpbmRleCkge1xuICAgIGlmIChudW0gPCBkaXN0YW5jZXNBcltkaXN0YW5jZXNBci5sZW5ndGggLSAxXSlcbiAgICAgICAgcmV0dXJuO1xuICAgIGNvbnN0IG5ld1Bvc2l0aW9uID0gZGlzdGFuY2VzQXIuZmluZEluZGV4KCh2KSA9PiBudW0gPiB2KTtcbiAgICBkaXN0YW5jZXNBci5wb3AoKTtcbiAgICBkaXN0YW5jZXNBci5zcGxpY2UobmV3UG9zaXRpb24sIDAsIG51bSk7XG4gICAgaW5kZXhlcy5wb3AoKTtcbiAgICBpbmRleGVzLnNwbGljZShuZXdQb3NpdGlvbiwgMCwgaW5kZXgpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldEFnZ3JlZ2F0aW9uRnVuY3Rpb24oYWdncmVnYXRpb25NZXRob2QsIHdlaWdodHMpIHtcbiAgICBzd2l0Y2ggKGFnZ3JlZ2F0aW9uTWV0aG9kKSB7XG4gICAgICAgIGNhc2UgRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZHMuTUFOSEFUVEFOOlxuICAgICAgICAgICAgcmV0dXJuICh2cykgPT4gdnMucmVkdWNlKChhY2MsIHZhbCwgaWR4KSA9PiBhY2MgKyB2YWwgKiB3ZWlnaHRzW2lkeF0sIDApO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuICh2cykgPT4ge1xuICAgICAgICAgICAgICAgIC8vIGV1Y2xpZGVhblxuICAgICAgICAgICAgICAgIGNvbnN0IHN1bSA9IHZzLnJlZHVjZSgoYWNjLCB2YWwsIGlkeCkgPT4gYWNjICsgKHZhbCAqIHdlaWdodHNbaWR4XSkgKiogMiwgMCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIE1hdGguc3FydChzdW0pO1xuICAgICAgICAgICAgfTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lkWFJwYkhNdWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUoxZEdsc2N5NTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZCUVN4UFFVRlBMRVZCUVRSQ0xEQkNRVUV3UWl4RlFVRkRMRTFCUVUwc1UwRkJVeXhEUVVGRE8wRkJSVGxGTEUxQlFVMHNRMEZCUXl4TlFVRk5MRXRCUVVzc1IwRkJSeXhEUVVGRExFTkJRVTBzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXl4TFFVRkxMRWxCUVVrc1NVRkJTU3hEUVVGRExFdEJRVXNzVTBGQlV5eERRVUZETzBGQlJTOUVMRTFCUVUwc1ZVRkJWU3hoUVVGaExFTkJRVU1zVjBGQmNVSXNSVUZCUlN4UFFVRnBRaXhGUVVGRkxFZEJRVmNzUlVGQlJTeExRVUZoTzBsQlEyaEhMRWxCUVVrc1IwRkJSeXhIUVVGSExGZEJRVmNzUTBGQlF5eFhRVUZYTEVOQlFVTXNUVUZCVFN4SFFVRkRMRU5CUVVNc1EwRkJRenRSUVVONlF5eFBRVUZQTzBsQlJWUXNUVUZCVFN4WFFVRlhMRWRCUVVjc1YwRkJWeXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1IwRkJSeXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlF6RkVMRmRCUVZjc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF6dEpRVU5zUWl4WFFVRlhMRU5CUVVNc1RVRkJUU3hEUVVGRExGZEJRVmNzUlVGQlJTeERRVUZETEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1NVRkRlRU1zVDBGQlR5eERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRPMGxCUTJRc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXl4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8wRkJRM2hETEVOQlFVTTdRVUZGUkN4TlFVRk5MRlZCUVZVc1dVRkJXU3hEUVVGRExGZEJRWEZDTEVWQlFVVXNUMEZCYVVJc1JVRkJSU3hIUVVGWExFVkJRVVVzUzBGQllUdEpRVU12Uml4SlFVRkpMRWRCUVVjc1IwRkJSeXhYUVVGWExFTkJRVU1zVjBGQlZ5eERRVUZETEUxQlFVMHNSMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRla01zVDBGQlR6dEpRVVZVTEUxQlFVMHNWMEZCVnl4SFFVRkhMRmRCUVZjc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRWRCUVVjc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU14UkN4WFFVRlhMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU03U1VGRGJFSXNWMEZCVnl4RFFVRkRMRTFCUVUwc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRPMGxCUTNoRExFOUJRVThzUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXp0SlFVTmtMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zVjBGQlZ5eEZRVUZGTEVOQlFVTXNSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenRCUVVONFF5eERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMSE5DUVVGelFpeERRVU53UXl4cFFrRkJORU1zUlVGQlJTeFBRVUZwUWp0SlFVVXZSQ3hSUVVGUkxHbENRVUZwUWl4RlFVRkZPMUZCUTNwQ0xFdEJRVXNzTUVKQlFUQkNMRU5CUVVNc1UwRkJVenRaUVVOMlF5eFBRVUZQTEVOQlFVTXNSVUZCV1N4RlFVRkZMRVZCUVVVc1EwRkJReXhGUVVGRkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUlVGQlJTeERRVUZETEVkQlFVY3NSMEZCUnl4SFFVRkhMRWRCUVVjc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTNKR08xbEJRMFVzVDBGQlR5eERRVUZETEVWQlFWa3NSVUZCUlN4RlFVRkZPMmRDUVVOMFFpeFpRVUZaTzJkQ1FVTmFMRTFCUVUwc1IwRkJSeXhIUVVGSExFVkJRVVVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEZRVUZGTEVOQlFVTXNSMEZCUnl4SFFVRkhMRU5CUVVNc1IwRkJSeXhIUVVGSExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dG5Ra0ZETjBVc1QwRkJUeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUTNoQ0xFTkJRVU1zUTBGQlF6dExRVU5NTzBGQlEwZ3NRMEZCUXlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENCN1JHbHpkR0Z1WTJWQloyZHlaV2RoZEdsdmJrMWxkR2h2WkN3Z1JHbHpkR0Z1WTJWQloyZHlaV2RoZEdsdmJrMWxkR2h2WkhOOUlHWnliMjBnSnk0dmRIbHdaWE1uTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnYVhOT2FXd2dQU0FvZURvZ1lXNTVLU0E5UGlCNElEMDlQU0J1ZFd4c0lIeDhJSGdnUFQwOUlIVnVaR1ZtYVc1bFpEdGNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR2x1YzJWeWRGTnRZV3hzWlhJb1pHbHpkR0Z1WTJWelFYSTZJRzUxYldKbGNsdGRMQ0JwYm1SbGVHVnpPaUJ1ZFcxaVpYSmJYU3dnYm5WdE9pQnVkVzFpWlhJc0lHbHVaR1Y0T2lCdWRXMWlaWElwSUh0Y2JpQWdhV1lnS0c1MWJTQStJR1JwYzNSaGJtTmxjMEZ5VzJScGMzUmhibU5sYzBGeUxteGxibWQwYUMweFhTbGNiaUFnSUNCeVpYUjFjbTQ3WEc1Y2JpQWdZMjl1YzNRZ2JtVjNVRzl6YVhScGIyNGdQU0JrYVhOMFlXNWpaWE5CY2k1bWFXNWtTVzVrWlhnb0tIWXBJRDArSUc1MWJTQThJSFlwTzF4dUlDQmthWE4wWVc1alpYTkJjaTV3YjNBb0tUdGNiaUFnWkdsemRHRnVZMlZ6UVhJdWMzQnNhV05sS0c1bGQxQnZjMmwwYVc5dUxDQXdMQ0J1ZFcwcE8xeHVJQ0JwYm1SbGVHVnpMbkJ2Y0NncE8xeHVJQ0JwYm1SbGVHVnpMbk53YkdsalpTaHVaWGRRYjNOcGRHbHZiaXdnTUN3Z2FXNWtaWGdwTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdhVzV6WlhKMFRHRnlaMlZ5S0dScGMzUmhibU5sYzBGeU9pQnVkVzFpWlhKYlhTd2dhVzVrWlhobGN6b2diblZ0WW1WeVcxMHNJRzUxYlRvZ2JuVnRZbVZ5TENCcGJtUmxlRG9nYm5WdFltVnlLU0I3WEc0Z0lHbG1JQ2h1ZFcwZ1BDQmthWE4wWVc1alpYTkJjbHRrYVhOMFlXNWpaWE5CY2k1c1pXNW5kR2d0TVYwcFhHNGdJQ0FnY21WMGRYSnVPMXh1WEc0Z0lHTnZibk4wSUc1bGQxQnZjMmwwYVc5dUlEMGdaR2x6ZEdGdVkyVnpRWEl1Wm1sdVpFbHVaR1Y0S0NoMktTQTlQaUJ1ZFcwZ1BpQjJLVHRjYmlBZ1pHbHpkR0Z1WTJWelFYSXVjRzl3S0NrN1hHNGdJR1JwYzNSaGJtTmxjMEZ5TG5Od2JHbGpaU2h1WlhkUWIzTnBkR2x2Yml3Z01Dd2diblZ0S1R0Y2JpQWdhVzVrWlhobGN5NXdiM0FvS1R0Y2JpQWdhVzVrWlhobGN5NXpjR3hwWTJVb2JtVjNVRzl6YVhScGIyNHNJREFzSUdsdVpHVjRLVHRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHZGxkRUZuWjNKbFoyRjBhVzl1Um5WdVkzUnBiMjRvWEc0Z0lHRm5aM0psWjJGMGFXOXVUV1YwYUc5a09pQkVhWE4wWVc1alpVRm5aM0psWjJGMGFXOXVUV1YwYUc5a0xDQjNaV2xuYUhSek9pQnVkVzFpWlhKYlhWeHVLVG9nS0haaGJIVmxjem9nYm5WdFltVnlXMTBwSUQwK0lHNTFiV0psY2lCN1hHNGdJSE4zYVhSamFDQW9ZV2RuY21WbllYUnBiMjVOWlhSb2IyUXBJSHRjYmlBZ0lDQmpZWE5sSUVScGMzUmhibU5sUVdkbmNtVm5ZWFJwYjI1TlpYUm9iMlJ6TGsxQlRraEJWRlJCVGpwY2JpQWdJQ0FnSUhKbGRIVnliaUFvZG5NNklHNTFiV0psY2x0ZEtTQTlQaUIyY3k1eVpXUjFZMlVvS0dGall5d2dkbUZzTENCcFpIZ3BJRDArSUdGall5QXJJSFpoYkNBcUlIZGxhV2RvZEhOYmFXUjRYU3dnTUNrN1hHNGdJQ0FnWkdWbVlYVnNkRHBjYmlBZ0lDQWdJSEpsZEhWeWJpQW9kbk02SUc1MWJXSmxjbHRkS1NBOVBpQjdYRzRnSUNBZ0lDQWdJQzh2SUdWMVkyeHBaR1ZoYmx4dUlDQWdJQ0FnSUNCamIyNXpkQ0J6ZFcwZ1BTQjJjeTV5WldSMVkyVW9LR0ZqWXl3Z2RtRnNMQ0JwWkhncElEMCtJR0ZqWXlBcklDaDJZV3dnS2lCM1pXbG5hSFJ6VzJsa2VGMHBJQ29xSURJc0lEQXBPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdUV0YwYUM1emNYSjBLSE4xYlNrN1hHNGdJQ0FnSUNCOU8xeHVJQ0I5WEc1OVhHNGlYWDA9IiwiLy8gVGhlIG1vZHVsZSBjYWNoZVxudmFyIF9fd2VicGFja19tb2R1bGVfY2FjaGVfXyA9IHt9O1xuXG4vLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcblx0dmFyIGNhY2hlZE1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF07XG5cdGlmIChjYWNoZWRNb2R1bGUgIT09IHVuZGVmaW5lZCkge1xuXHRcdHJldHVybiBjYWNoZWRNb2R1bGUuZXhwb3J0cztcblx0fVxuXHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuXHR2YXIgbW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXSA9IHtcblx0XHQvLyBubyBtb2R1bGUuaWQgbmVlZGVkXG5cdFx0Ly8gbm8gbW9kdWxlLmxvYWRlZCBuZWVkZWRcblx0XHRleHBvcnRzOiB7fVxuXHR9O1xuXG5cdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuXHRfX3dlYnBhY2tfbW9kdWxlc19fW21vZHVsZUlkXShtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuXHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuXHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG59XG5cbi8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG5fX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBfX3dlYnBhY2tfbW9kdWxlc19fO1xuXG4vLyB0aGUgc3RhcnR1cCBmdW5jdGlvblxuX193ZWJwYWNrX3JlcXVpcmVfXy54ID0gKCkgPT4ge1xuXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcblx0Ly8gVGhpcyBlbnRyeSBtb2R1bGUgZGVwZW5kcyBvbiBvdGhlciBsb2FkZWQgY2h1bmtzIGFuZCBleGVjdXRpb24gbmVlZCB0byBiZSBkZWxheWVkXG5cdHZhciBfX3dlYnBhY2tfZXhwb3J0c19fID0gX193ZWJwYWNrX3JlcXVpcmVfXy5PKHVuZGVmaW5lZCwgWzU5MF0sICgpID0+IChfX3dlYnBhY2tfcmVxdWlyZV9fKDIzNTcpKSlcblx0X193ZWJwYWNrX2V4cG9ydHNfXyA9IF9fd2VicGFja19yZXF1aXJlX18uTyhfX3dlYnBhY2tfZXhwb3J0c19fKTtcblx0cmV0dXJuIF9fd2VicGFja19leHBvcnRzX187XG59O1xuXG4iLCIvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9ucyBmb3IgaGFybW9ueSBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSAoZXhwb3J0cywgZGVmaW5pdGlvbikgPT4ge1xuXHRmb3IodmFyIGtleSBpbiBkZWZpbml0aW9uKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sIGtleSkgJiYgIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBrZXkpKSB7XG5cdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZGVmaW5pdGlvbltrZXldIH0pO1xuXHRcdH1cblx0fVxufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLmYgPSB7fTtcbi8vIFRoaXMgZmlsZSBjb250YWlucyBvbmx5IHRoZSBlbnRyeSBjaHVuay5cbi8vIFRoZSBjaHVuayBsb2FkaW5nIGZ1bmN0aW9uIGZvciBhZGRpdGlvbmFsIGNodW5rc1xuX193ZWJwYWNrX3JlcXVpcmVfXy5lID0gKGNodW5rSWQpID0+IHtcblx0cmV0dXJuIFByb21pc2UuYWxsKE9iamVjdC5rZXlzKF9fd2VicGFja19yZXF1aXJlX18uZikucmVkdWNlKChwcm9taXNlcywga2V5KSA9PiB7XG5cdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5mW2tleV0oY2h1bmtJZCwgcHJvbWlzZXMpO1xuXHRcdHJldHVybiBwcm9taXNlcztcblx0fSwgW10pKTtcbn07IiwiLy8gVGhpcyBmdW5jdGlvbiBhbGxvdyB0byByZWZlcmVuY2UgYXN5bmMgY2h1bmtzIGFuZCBzaWJsaW5nIGNodW5rcyBmb3IgdGhlIGVudHJ5cG9pbnRcbl9fd2VicGFja19yZXF1aXJlX18udSA9IChjaHVua0lkKSA9PiB7XG5cdC8vIHJldHVybiB1cmwgZm9yIGZpbGVuYW1lcyBiYXNlZCBvbiB0ZW1wbGF0ZVxuXHRyZXR1cm4gXCJcIiArIGNodW5rSWQgKyBcIi5qc1wiO1xufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLmcgPSAoZnVuY3Rpb24oKSB7XG5cdGlmICh0eXBlb2YgZ2xvYmFsVGhpcyA9PT0gJ29iamVjdCcpIHJldHVybiBnbG9iYWxUaGlzO1xuXHR0cnkge1xuXHRcdHJldHVybiB0aGlzIHx8IG5ldyBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuXHR9IGNhdGNoIChlKSB7XG5cdFx0aWYgKHR5cGVvZiB3aW5kb3cgPT09ICdvYmplY3QnKSByZXR1cm4gd2luZG93O1xuXHR9XG59KSgpOyIsIl9fd2VicGFja19yZXF1aXJlX18ubyA9IChvYmosIHByb3ApID0+IChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSkiLCJ2YXIgc2NyaXB0VXJsO1xuaWYgKF9fd2VicGFja19yZXF1aXJlX18uZy5pbXBvcnRTY3JpcHRzKSBzY3JpcHRVcmwgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLmcubG9jYXRpb24gKyBcIlwiO1xudmFyIGRvY3VtZW50ID0gX193ZWJwYWNrX3JlcXVpcmVfXy5nLmRvY3VtZW50O1xuaWYgKCFzY3JpcHRVcmwgJiYgZG9jdW1lbnQpIHtcblx0aWYgKGRvY3VtZW50LmN1cnJlbnRTY3JpcHQpXG5cdFx0c2NyaXB0VXJsID0gZG9jdW1lbnQuY3VycmVudFNjcmlwdC5zcmM7XG5cdGlmICghc2NyaXB0VXJsKSB7XG5cdFx0dmFyIHNjcmlwdHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcInNjcmlwdFwiKTtcblx0XHRpZihzY3JpcHRzLmxlbmd0aCkge1xuXHRcdFx0dmFyIGkgPSBzY3JpcHRzLmxlbmd0aCAtIDE7XG5cdFx0XHR3aGlsZSAoaSA+IC0xICYmICFzY3JpcHRVcmwpIHNjcmlwdFVybCA9IHNjcmlwdHNbaS0tXS5zcmM7XG5cdFx0fVxuXHR9XG59XG4vLyBXaGVuIHN1cHBvcnRpbmcgYnJvd3NlcnMgd2hlcmUgYW4gYXV0b21hdGljIHB1YmxpY1BhdGggaXMgbm90IHN1cHBvcnRlZCB5b3UgbXVzdCBzcGVjaWZ5IGFuIG91dHB1dC5wdWJsaWNQYXRoIG1hbnVhbGx5IHZpYSBjb25maWd1cmF0aW9uXG4vLyBvciBwYXNzIGFuIGVtcHR5IHN0cmluZyAoXCJcIikgYW5kIHNldCB0aGUgX193ZWJwYWNrX3B1YmxpY19wYXRoX18gdmFyaWFibGUgZnJvbSB5b3VyIGNvZGUgdG8gdXNlIHlvdXIgb3duIGxvZ2ljLlxuaWYgKCFzY3JpcHRVcmwpIHRocm93IG5ldyBFcnJvcihcIkF1dG9tYXRpYyBwdWJsaWNQYXRoIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBicm93c2VyXCIpO1xuc2NyaXB0VXJsID0gc2NyaXB0VXJsLnJlcGxhY2UoLyMuKiQvLCBcIlwiKS5yZXBsYWNlKC9cXD8uKiQvLCBcIlwiKS5yZXBsYWNlKC9cXC9bXlxcL10rJC8sIFwiL1wiKTtcbl9fd2VicGFja19yZXF1aXJlX18ucCA9IHNjcmlwdFVybDsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLmIgPSBzZWxmLmxvY2F0aW9uICsgXCJcIjtcblxuLy8gb2JqZWN0IHRvIHN0b3JlIGxvYWRlZCBjaHVua3Ncbi8vIFwiMVwiIG1lYW5zIFwiYWxyZWFkeSBsb2FkZWRcIlxudmFyIGluc3RhbGxlZENodW5rcyA9IHtcblx0NzA5OiAxXG59O1xuXG4vLyBpbXBvcnRTY3JpcHRzIGNodW5rIGxvYWRpbmdcbnZhciBpbnN0YWxsQ2h1bmsgPSAoZGF0YSkgPT4ge1xuXHR2YXIgW2NodW5rSWRzLCBtb3JlTW9kdWxlcywgcnVudGltZV0gPSBkYXRhO1xuXHRmb3IodmFyIG1vZHVsZUlkIGluIG1vcmVNb2R1bGVzKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKG1vcmVNb2R1bGVzLCBtb2R1bGVJZCkpIHtcblx0XHRcdF9fd2VicGFja19yZXF1aXJlX18ubVttb2R1bGVJZF0gPSBtb3JlTW9kdWxlc1ttb2R1bGVJZF07XG5cdFx0fVxuXHR9XG5cdGlmKHJ1bnRpbWUpIHJ1bnRpbWUoX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cdHdoaWxlKGNodW5rSWRzLmxlbmd0aClcblx0XHRpbnN0YWxsZWRDaHVua3NbY2h1bmtJZHMucG9wKCldID0gMTtcblx0cGFyZW50Q2h1bmtMb2FkaW5nRnVuY3Rpb24oZGF0YSk7XG59O1xuX193ZWJwYWNrX3JlcXVpcmVfXy5mLmkgPSAoY2h1bmtJZCwgcHJvbWlzZXMpID0+IHtcblx0Ly8gXCIxXCIgaXMgdGhlIHNpZ25hbCBmb3IgXCJhbHJlYWR5IGxvYWRlZFwiXG5cdGlmKCFpbnN0YWxsZWRDaHVua3NbY2h1bmtJZF0pIHtcblx0XHRpZih0cnVlKSB7IC8vIGFsbCBjaHVua3MgaGF2ZSBKU1xuXHRcdFx0aW1wb3J0U2NyaXB0cyhfX3dlYnBhY2tfcmVxdWlyZV9fLnAgKyBfX3dlYnBhY2tfcmVxdWlyZV9fLnUoY2h1bmtJZCkpO1xuXHRcdH1cblx0fVxufTtcblxudmFyIGNodW5rTG9hZGluZ0dsb2JhbCA9IHNlbGZbXCJ3ZWJwYWNrQ2h1bmtlZGFcIl0gPSBzZWxmW1wid2VicGFja0NodW5rZWRhXCJdIHx8IFtdO1xudmFyIHBhcmVudENodW5rTG9hZGluZ0Z1bmN0aW9uID0gY2h1bmtMb2FkaW5nR2xvYmFsLnB1c2guYmluZChjaHVua0xvYWRpbmdHbG9iYWwpO1xuY2h1bmtMb2FkaW5nR2xvYmFsLnB1c2ggPSBpbnN0YWxsQ2h1bms7XG5cbi8vIG5vIEhNUlxuXG4vLyBubyBITVIgbWFuaWZlc3QiLCIvLyBydW4gc3RhcnR1cFxudmFyIF9fd2VicGFja19leHBvcnRzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fLngoKTtcbiJdLCJuYW1lcyI6WyJkZWZlcnJlZCIsIm5leHQiLCJhc3luYyIsImJpb0xheW91dCIsImNsdXN0ZXIiLCJzcGFyc2VPYmplY3QiLCJ0aHJlc2hvbGQiLCJuIiwibGVuZ3RoIiwiaXMiLCJqcyIsImkiLCJqIiwiYSIsImIiLCJwdXNoIiwiZW1iZWRYIiwiRmxvYXQzMkFycmF5IiwiZmlsbCIsIm1hcCIsIk1hdGgiLCJyYW5kb20iLCJlbWJlZFkiLCJ4VmVsb2NpdGllcyIsInlWZWxvY2l0aWVzIiwidGVtcGVyYXR1cmUiLCJpZHgiLCJkeCIsImR5IiwiYWJzIiwidmVjU2l6ZSIsInNxcnQiLCJtaW5YIiwibWluWSIsIm1heFgiLCJtYXhZIiwibWluIiwibWF4IiwicmFuZ2VYIiwicmFuZ2VZIiwiZ2V0TGF5b3V0RW1iZWRkaW5ncyIsImRlZmF1bHRNQ0xPcHRpb25zIiwiZXhwYW5kRmFjdG9yIiwibWF4SXRlcmF0aW9ucyIsImluZmxhdGVGYWN0b3IiLCJtdWx0RmFjdG9yIiwiTUNMU3BhcnNlUmVkdWNlciIsImNvbnN0cnVjdG9yIiwib3B0cyIsInRoaXMiLCJfb3B0aW9ucyIsInNwYXJzZU1hdHJpeCIsIm5Sb3dzIiwidG9PYmplY3RGb3JtIiwiYWRkTG9vcHMiLCJub3JtYWxpemUiLCJleHBhbmQiLCJpbmZsYXRlIiwiY2x1c3RlcnMiLCJhc3NpZ25DbHVzdGVycyIsImNvcnJlY3RDbHVzdGVycyIsImVtYmVkZGluZ3MiLCJsYXlvdXQiLCJjbHVzdGVyU2l6ZU1hcCIsInNvcnRlZEluZGV4ZXMiLCJPYmplY3QiLCJrZXlzIiwiTnVtYmVyIiwic29ydCIsImNsdXN0ZXJNYXAiLCJmb3JFYWNoIiwiY2x1c3RlcklkeCIsImNsdXN0ZXJOdW0iLCJzb3J0ZWRDbHVzdGVyTmFtZXMiLCJwZXJSb3ciLCJ5T2Zmc2V0IiwiY2x1c3Rlck5hbWUiLCJjZWlsIiwib2Zmc2V0WCIsIm1lcmdlQ2x1c3RlcnMiLCJpQ2x1c3RlciIsImpDbHVzdGVyIiwiayIsIm9yZGVyIiwiZmxvb3IiLCJsb2cxMCIsIm1pbk9yZGVyIiwicG93IiwiQXJyYXkiLCJyb3VuZCIsIlVpbnQzMkFycmF5IiwiZGlzdGFuY2UiLCJyb3ciLCJzdW0iLCJleHBhbmRlZE9iamVjdCIsInZhbCIsImdldEV4cGFuZFZhbHVlIiwiY3VycmVudEluZGV4ZXMiLCJvdGhlckluZGV4ZXMiLCJpbmNsdWRlcyIsIm9ubWVzc2FnZSIsImV2ZW50IiwiZGF0YSIsIndlaWdodHMiLCJhZ2dyZWdhdGlvbk1ldGhvZCIsImRpc3RhbmNlRm5BcmdzIiwiZGlzdGFuY2VGbnMiLCJzcGFyc2UiLCJjYWxjTXVsdGlDb2x1bW4iLCJyZXMiLCJ0cmFuc2Zvcm0iLCJwb3N0TWVzc2FnZSIsImlzTmlsIiwieCIsImluc2VydFNtYWxsZXIiLCJkaXN0YW5jZXNBciIsImluZGV4ZXMiLCJudW0iLCJpbmRleCIsIm5ld1Bvc2l0aW9uIiwiZmluZEluZGV4IiwidiIsInBvcCIsInNwbGljZSIsIl9fd2VicGFja19tb2R1bGVfY2FjaGVfXyIsIl9fd2VicGFja19yZXF1aXJlX18iLCJtb2R1bGVJZCIsImNhY2hlZE1vZHVsZSIsInVuZGVmaW5lZCIsImV4cG9ydHMiLCJtb2R1bGUiLCJfX3dlYnBhY2tfbW9kdWxlc19fIiwibSIsIl9fd2VicGFja19leHBvcnRzX18iLCJPIiwicmVzdWx0IiwiY2h1bmtJZHMiLCJmbiIsInByaW9yaXR5Iiwibm90RnVsZmlsbGVkIiwiSW5maW5pdHkiLCJmdWxmaWxsZWQiLCJldmVyeSIsImtleSIsInIiLCJkIiwiZGVmaW5pdGlvbiIsIm8iLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiLCJmIiwiZSIsImNodW5rSWQiLCJQcm9taXNlIiwiYWxsIiwicmVkdWNlIiwicHJvbWlzZXMiLCJ1IiwiZyIsImdsb2JhbFRoaXMiLCJGdW5jdGlvbiIsIndpbmRvdyIsIm9iaiIsInByb3AiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJzY3JpcHRVcmwiLCJpbXBvcnRTY3JpcHRzIiwibG9jYXRpb24iLCJkb2N1bWVudCIsImN1cnJlbnRTY3JpcHQiLCJzcmMiLCJzY3JpcHRzIiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJFcnJvciIsInJlcGxhY2UiLCJwIiwic2VsZiIsImluc3RhbGxlZENodW5rcyIsImNodW5rTG9hZGluZ0dsb2JhbCIsInBhcmVudENodW5rTG9hZGluZ0Z1bmN0aW9uIiwiYmluZCIsIm1vcmVNb2R1bGVzIiwicnVudGltZSIsInRoZW4iXSwic291cmNlUm9vdCI6IiJ9
|
|
File without changes
|