|
|
/*
|
|
|
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
|
|
if you want to view the source, please visit the github repository https://github.com/mokeyish/obsidian-enhancing-export .
|
|
|
*/
|
|
|
|
|
|
var $s=Object.create;var At=Object.defineProperty;var Is=Object.getOwnPropertyDescriptor;var Ls=Object.getOwnPropertyNames;var Ws=Object.getPrototypeOf,Vs=Object.prototype.hasOwnProperty;var ue=(s,e)=>()=>(e||s((e={exports:{}}).exports,e),e.exports),qs=(s,e)=>{for(var t in e)At(s,t,{get:e[t],enumerable:!0})},Hn=(s,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ls(e))!Vs.call(s,i)&&i!==t&&At(s,i,{get:()=>e[i],enumerable:!(n=Is(e,i))||n.enumerable});return s};var Ye=(s,e,t)=>(t=s!=null?$s(Ws(s)):{},Hn(e||!s||!s.__esModule?At(t,"default",{value:s,enumerable:!0}):t,s)),Hs=s=>Hn(At({},"__esModule",{value:!0}),s);var ge=(()=>{for(var s=new Uint8Array(128),e=0;e<64;e++)s[e<26?e+65:e<52?e+71:e<62?e-4:e*4-205]=e;return t=>{for(var n=t.length,i=new Uint8Array((n-(t[n-1]=="=")-(t[n-2]=="="))*3/4|0),r=0,o=0;r<n;){var a=s[t.charCodeAt(r++)],c=s[t.charCodeAt(r++)],h=s[t.charCodeAt(r++)],d=s[t.charCodeAt(r++)];i[o++]=a<<2|c>>4,i[o++]=c<<4|h>>2,i[o++]=h<<6|d}return i}})();var ti=ue((Lo,ei)=>{"use strict";var sn=require("fs"),Zs=require("util"),Qs=require("path"),_e,rn=class{constructor(e){e=e||{},this.directory=e.directory||"./locales",this.updateFiles=typeof e.updateFiles=="boolean"?e.updateFiles:!0,this.locale=e.locale||"en",this.fallbackToLanguage=typeof e.fallbackToLanguage=="boolean"?e.fallbackToLanguage:!0,this.cache=Object.create(null),this.writeQueue=[]}__(...e){if(typeof arguments[0]!="string")return this._taggedLiteral(arguments[0],...arguments);let t=e.shift(),n=function(){};return typeof e[e.length-1]=="function"&&(n=e.pop()),n=n||function(){},this.cache[this.locale]||this._readLocaleFile(),!this.cache[this.locale][t]&&this.updateFiles?(this.cache[this.locale][t]=t,this._enqueueWrite({directory:this.directory,locale:this.locale,cb:n})):n(),_e.format.apply(_e.format,[this.cache[this.locale][t]||t].concat(e))}__n(){let e=Array.prototype.slice.call(arguments),t=e.shift(),n=e.shift(),i=e.shift(),r=function(){};typeof e[e.length-1]=="function"&&(r=e.pop()),this.cache[this.locale]||this._readLocaleFile();let o=i===1?t:n;this.cache[this.locale][t]&&(o=this.cache[this.locale][t][i===1?"one":"other"]),!this.cache[this.locale][t]&&this.updateFiles?(this.cache[this.locale][t]={one:t,other:n},this._enqueueWrite({directory:this.directory,locale:this.locale,cb:r})):r();let a=[o];return~o.indexOf("%d")&&a.push(i),_e.format.apply(_e.format,a.concat(e))}setLocale(e){this.locale=e}getLocale(){return this.locale}updateLocale(e){this.cache[this.locale]||this._readLocaleFile();for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&(this.cache[this.locale][t]=e[t])}_taggedLiteral(e,...t){let n="";return e.forEach(function(i,r){let o=t[r+1];n+=i,typeof o<"u"&&(n+="%s")}),this.__.apply(this,[n].concat([].slice.call(t,1)))}_enqueueWrite(e){this.writeQueue.push(e),this.writeQueue.length===1&&this._processWriteQueue()}_processWriteQueue(){let e=this,t=this.writeQueue[0],n=t.directory,i=t.locale,r=t.cb,o=this._resolveLocaleFile(n,i),a=JSON.stringify(this.cache[i],null,2);_e.fs.writeFile(o,a,"utf-8",function(c){e.writeQueue.shift(),e.writeQueue.length>0&&e._processWriteQueue(),r(c)})}_readLocaleFile(){let e={},t=this._resolveLocaleFile(this.directory,this.locale);try{_e.fs.readFileSync&&(e=JSON.parse(_e.fs.readFileSync(t,"utf-8")))}catch(n){if(n instanceof SyntaxError&&(n.message="syntax error in "+t),n.code==="ENOENT")e={};else throw n}this.cache[this.locale]=e}_resolveLocaleFile(e,t){let n=_e.resolve(e,"./",t+".json");if(this.fallbackToLanguage&&!this._fileExistsSync(n)&&~t.lastIndexOf("_")){let i=_e.resolve(e,"./",t.split("_")[0]+".json");this._fileExistsSync(i)&&(n=i)}return n}_fileExistsSync(e){return _e.exists(e)}};function Ys(s,e){_e=e;let t=new rn(s);return{__:t.__.bind(t),__n:t.__n.bind(t),setLocale:t.setLocale.bind(t),getLocale:t.getLocale.bind(t),updateLocale:t.updateLocale.bind(t),locale:t.locale}}var er={fs:{readFileSync:sn.readFileSync,writeFile:sn.writeFile},format:Zs.format,resolve:Qs.resolve,exists:s=>{try{return sn.statSync(s).isFile()}catch{return!1}}},tr=s=>Ys(s,er);ei.exports=tr});var un=ue((Wo,ui)=>{"use strict";var nr=require("util"),ni=require("path"),ir=require("fs");function mt(s){if(s!==s.toLowerCase()&&s!==s.toUpperCase()||(s=s.toLowerCase()),s.indexOf("-")===-1&&s.indexOf("_")===-1)return s;{let t="",n=!1,i=s.match(/^-+/);for(let r=i?i[0].length:0;r<s.length;r++){let o=s.charAt(r);n&&(n=!1,o=o.toUpperCase()),r!==0&&(o==="-"||o==="_")?n=!0:o!=="-"&&o!=="_"&&(t+=o)}return t}}function ri(s,e){let t=s.toLowerCase();e=e||"-";let n="";for(let i=0;i<s.length;i++){let r=t.charAt(i),o=s.charAt(i);r!==o&&i>0?n+=`${e}${t.charAt(i)}`:n+=o}return n}function oi(s){return s==null?!1:typeof s=="number"||/^0x[0-9a-f]+$/i.test(s)?!0:/^0[^.]/.test(s)?!1:/^[-]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(s)}function sr(s){if(Array.isArray(s))return s.map(o=>typeof o!="string"?o+"":o);s=s.trim();let e=0,t=null,n=null,i=null,r=[];for(let o=0;o<s.length;o++){if(t=n,n=s.charAt(o),n===" "&&!i){t!==" "&&e++;continue}n===i?i=null:(n==="'"||n==='"')&&!i&&(i=n),r[e]||(r[e]=""),r[e]+=n}return r}var Oe;(function(s){s.BOOLEAN="boolean",s.STRING="string",s.NUMBER="number",s.ARRAY="array"})(Oe||(Oe={}));var Be,an=class{constructor(e){Be=e}parse(e,t){let n=Object.assign({alias:void 0,array:void 0,boolean:void 0,config:void 0,configObjects:void 0,configuration:void 0,coerce:void 0,count:void 0,default:void 0,envPrefix:void 0,narg:void 0,normalize:void 0,string:void 0,number:void 0,__:void 0,key:void 0},t),i=sr(e),r=typeof e=="string",o=rr(Object.assign(Object.create(null),n.alias)),a=Object.assign({"boolean-negation":!0,"camel-case-expansion":!0,"combine-arrays":!1,"dot-notation":!0,"duplicate-arguments-array":!0,"flatten-duplicate-arrays":!0,"greedy-arrays":!0,"halt-at-non-option":!1,"nargs-eats-options":!1,"negation-prefix":"no-","parse-numbers":!0,"parse-positional-numbers":!0,"populate--":!1,"set-placeholder-key":!1,"short-option-groups":!0,"strip-aliased":!1,"strip-dashed":!1,"unknown-options-as-args":!1},n.configuration),c=Object.assign(Object.create(null),n.default),h=n.configObjects||[],d=n.envPrefix,D=a["populate--"],y=D?"--":"_",B=Object.create(null),F=Object.create(null),g=n.__||Be.format,l={aliases:Object.create(null),arrays:Object.create(null),bools:Object.create(null),strings:Object.create(null),numbers:Object.create(null),counts:Object.create(null),normalize:Object.create(null),configs:Object.create(null),nargs:Object.create(null),coercions:Object.create(null),keys:[]},T=/^-([0-9]+(\.[0-9]+)?|\.[0-9]+)$/,L=new RegExp("^--"+a["negation-prefix"]+"(.+)");[].concat(n.array||[]).filter(Boolean).forEach(function(f){let m=typeof f=="object"?f.key:f,w=Object.keys(f).map(function(C){return{boolean:"bools",string:"strings",number:"numbers"}[C]}).filter(Boolean).pop();w&&(l[w][m]=!0),l.arrays[m]=!0,l.keys.push(m)}),[].concat(n.boolean||[]).filter(Boolean).forEach(function(f){l.bools[f]=!0,l.keys.push(f)}),[].concat(n.string||[]).filter(Boolean).forEach(function(f){l.strings[f]=!0,l.keys.push(f)}),[].concat(n.number||[]).filter(Boolean).forEach(function(f){l.numbers[f]=!0,l.keys.push(f)}),[].concat(n.count||[]).filter(Boolean).forEach(function(f){l.counts[f]=!0,l.keys.push(f)}),[].concat(n.normalize||[]).filter(Boolean).forEach(function(f){l.normalize[f]=!0,l.keys.push(f)}),typeof n.narg=="object"&&Object.entries(n.narg).forEach(([f,m])=>{typeof m=="number"&&(l.nargs[f]=m,l.keys.push(f))}),typeof n.coerce=="object"&&Object.entries(n.coerce).forEach(([f,m])=>{typeof m=="function"&&(l.coercions[f]=m,l.keys.push(f))}),typeof n.config<"u"&&(Array.isArray(n.config)||typeof n.config=="string"?[].concat(n.config).filter(Boolean).forEach(function(f){l.configs[f]=!0}):typeof n.config=="object"&&Object.entries(n.config).forEach(([f,m])=>{(typeof m=="boolean"||typeof m=="function")&&(l.configs[f]=m)})),H(n.key,o,n.default,l.arrays),Object.keys(c).forEach(function(f){(l.aliases[f]||[]).forEach(function(m){c[m]=c[f]})});let N=null;Ns();let U=[],b=Object.assign(Object.create(null),{_:[]}),E={};for(let f=0;f<i.length;f++){let m=i[f],w=m.replace(/^-{3,}/,"---"),C,p,j,v,$,ae;if(m!=="--"&&se(m))R(m);else if(w.match(/---+(=|$)/)){R(m);continue}else if(m.match(/^--.+=/)||!a["short-option-groups"]&&m.match(/^-.+=/))v=m.match(/^--?([^=]+)=([\s\S]*)$/),v!==null&&Array.isArray(v)&&v.length>=3&&(O(v[1],l.arrays)?f=x(f,v[1],i,v[2]):O(v[1],l.nargs)!==!1?f=ie(f,v[1],i,v[2]):_(v[1],v[2],!0));else if(m.match(L)&&a["boolean-negation"])v=m.match(L),v!==null&&Array.isArray(v)&&v.length>=2&&(p=v[1],_(p,O(p,l.arrays)?[!1]:!1));else if(m.match(/^--.+/)||!a["short-option-groups"]&&m.match(/^-[^-]+/))v=m.match(/^--?(.+)/),v!==null&&Array.isArray(v)&&v.length>=2&&(p=v[1],O(p,l.arrays)?f=x(f,p,i):O(p,l.nargs)!==!1?f=ie(f,p,i):($=i[f+1],$!==void 0&&(!$.match(/^-/)||$.match(T))&&!O(p,l.bools)&&!O(p,l.counts)||/^(true|false)$/.test($)?(_(p,$),f++):_(p,Te(p))));else if(m.match(/^-.\..+=/))v=m.match(/^-([^=]+)=([\s\S]*)$/),v!==null&&Array.isArray(v)&&v.length>=3&&_(v[1],v[2]);else if(m.match(/^-.\..+/)&&!m.match(T))$=i[f+1],v=m.match(/^-(.\..+)/),v!==null&&Array.isArray(v)&&v.length>=2&&(p=v[1],$!==void 0&&!$.match(/^-/)&&!O(p,l.bools)&&!O(p,l.counts)?(_(p,$),f++):_(p,Te(p)));else if(m.match(/^-[^-]+/)&&!m.match(T)){j=m.slice(1,-1).split(""),C=!1;for(let fe=0;fe<j.length;fe++){if($=m.slice(fe+2),j[fe+1]&&j[fe+1]==="="){ae=m.slice(fe+3),p=j[fe],O(p,l.arrays)?f=x(f,p,i,ae):O(p,l.nargs)!==!1?f=ie(f,p,i,ae):_(p,ae),C=!0;break}if($==="-"){_(j[fe],$);continue}if(/[A-Za-z]/.test(j[fe])&&/^-?\d+(\.\d*)?(e-?\d+)?$/.test($)&&O($,l.bools)===!1){_(j[fe],$),C=!0;break}if(j[fe+1]&&j[fe+1].match(/\W/)){_(j[fe],$),C=!0;break}else _(j[fe],Te(j[fe]))}p=m.slice(-1)[0],!C&&p!=="-"&&(O(p,l.arrays)?f=x(f,p,i):O(p,l.nargs)!==!1?f=ie(f,p,i):($=i[f+1],$!==void 0&&(!/^(-|--)[^-]/.test($)||$.match(T))&&!O(p,l.bools)&&!O(p,l.counts)||/^(true|false)$/.test($)?(_(p,$),f++):_(p,Te(p))))}else if(m.match(/^-[0-9]$/)&&m.match(T)&&O(m.slice(1),l.bools))p=m.slice(1),_(p,Te(p));else if(m==="--"){U=i.slice(f+1);break}else if(a["halt-at-non-option"]){U=i.slice(f);break}else R(m)}J(b,!0),J(b,!1),K(b),Ne(),xe(b,l.aliases,c,!0),he(b),a["set-placeholder-key"]&&Ae(b),Object.keys(l.counts).forEach(function(f){X(b,f.split("."))||_(f,0)}),D&&U.length&&(b[y]=[]),U.forEach(function(f){b[y].push(f)}),a["camel-case-expansion"]&&a["strip-dashed"]&&Object.keys(b).filter(f=>f!=="--"&&f.includes("-")).forEach(f=>{delete b[f]}),a["strip-aliased"]&&[].concat(...Object.keys(o).map(f=>o[f])).forEach(f=>{a["camel-case-expansion"]&&f.includes("-")&&delete b[f.split(".").map(m=>mt(m)).join(".")],delete b[f]});function R(f){let m=G("_",f);(typeof m=="string"||typeof m=="number")&&b._.push(m)}function ie(f,m,w,C){let p,j=O(m,l.nargs);if(j=typeof j!="number"||isNaN(j)?1:j,j===0)return Pe(C)||(N=Error(g("Argument unexpected for: %s",m))),_(m,Te(m)),f;let v=Pe(C)?0:1;if(a["nargs-eats-options"])w.length-(f+1)+v<j&&(N=Error(g("Not enough arguments following: %s",m))),v=j;else{for(p=f+1;p<w.length&&(!w[p].match(/^-[^0-9]/)||w[p].match(T)||se(w[p]));p++)v++;v<j&&(N=Error(g("Not enough arguments following: %s",m)))}let $=Math.min(v,j);for(!Pe(C)&&$>0&&(_(m,C),$--),p=f+1;p<$+f+1;p++)_(m,w[p]);return f+$}function x(f,m,w,C){let p=[],j=C||w[f+1],v=O(m,l.nargs);if(O(m,l.bools)&&!/^(true|false)$/.test(j))p.push(!0);else if(Pe(j)||Pe(C)&&/^-/.test(j)&&!T.test(j)&&!se(j)){if(c[m]!==void 0){let $=c[m];p=Array.isArray($)?$:[$]}}else{Pe(C)||p.push(z(m,C,!0));for(let $=f+1;$<w.length&&!(!a["greedy-arrays"]&&p.length>0||v&&typeof v=="number"&&p.length>=v||(j=w[$],/^-/.test(j)&&!T.test(j)&&!se(j)));$++)f=$,p.push(z(m,j,r))}return typeof v=="number"&&(v&&p.length<v||isNaN(v)&&p.length===0)&&(N=Error(g("Not enough arguments following: %s",m))),_(m,p),f}function _(f,m,w=r){if(/-/.test(f)&&a["camel-case-expansion"]){let j=f.split(".").map(function(v){return mt(v)}).join(".");V(f,j)}let C=z(f,m,w),p=f.split(".");A(b,p,C),l.aliases[f]&&l.aliases[f].forEach(function(j){let v=j.split(".");A(b,v,C)}),p.length>1&&a["dot-notation"]&&(l.aliases[p[0]]||[]).forEach(function(j){let v=j.split("."),$=[].concat(p);$.shift(),v=v.concat($),(l.aliases[f]||[]).includes(v.join("."))||A(b,v,C)}),O(f,l.normalize)&&!O(f,l.arrays)&&[f].concat(l.aliases[f]||[]).forEach(function(v){Object.defineProperty(E,v,{enumerable:!0,get(){return m},set($){m=typeof $=="string"?Be.normalize($):$}})})}function V(f,m){l.aliases[f]&&l.aliases[f].length||(l.aliases[f]=[m],B[m]=!0),l.aliases[m]&&l.aliases[m].length||V(m,f)}function z(f,m,w){w&&(m=or(m)),(O(f,l.bools)||O(f,l.counts))&&typeof m=="string"&&(m=m==="true");let C=Array.isArray(m)?m.map(function(p){return G(f,p)}):G(f,m);return O(f,l.counts)&&(Pe(C)||typeof C=="boolean")&&(C=on()),O(f,l.normalize)&&O(f,l.arrays)&&(Array.isArray(m)?C=m.map(p=>Be.normalize(p)):C=Be.normalize(m)),C}function G(f,m){return!a["parse-positional-numbers"]&&f==="_"||!O(f,l.strings)&&!O(f,l.bools)&&!Array.isArray(m)&&(oi(m)&&a["parse-numbers"]&&Number.isSafeInteger(Math.floor(parseFloat(`${m}`)))||!Pe(m)&&O(f,l.numbers))&&(m=Number(m)),m}function K(f){let m=Object.create(null);xe(m,l.aliases,c),Object.keys(l.configs).forEach(function(w){let C=f[w]||m[w];if(C)try{let p=null,j=Be.resolve(Be.cwd(),C),v=l.configs[w];if(typeof v=="function"){try{p=v(j)}catch($){p=$}if(p instanceof Error){N=p;return}}else p=Be.require(j);Y(p)}catch(p){p.name==="PermissionDenied"?N=p:f[w]&&(N=Error(g("Invalid JSON config file: %s",C)))}})}function Y(f,m){Object.keys(f).forEach(function(w){let C=f[w],p=m?m+"."+w:w;typeof C=="object"&&C!==null&&!Array.isArray(C)&&a["dot-notation"]?Y(C,p):(!X(b,p.split("."))||O(p,l.arrays)&&a["combine-arrays"])&&_(p,C)})}function Ne(){typeof h<"u"&&h.forEach(function(f){Y(f)})}function J(f,m){if(typeof d>"u")return;let w=typeof d=="string"?d:"",C=Be.env();Object.keys(C).forEach(function(p){if(w===""||p.lastIndexOf(w,0)===0){let j=p.split("__").map(function(v,$){return $===0&&(v=v.substring(w.length)),mt(v)});(m&&l.configs[j.join(".")]||!m)&&!X(f,j)&&_(j.join("."),C[p])}})}function he(f){let m,w=new Set;Object.keys(f).forEach(function(C){if(!w.has(C)&&(m=O(C,l.coercions),typeof m=="function"))try{let p=G(C,m(f[C]));[].concat(l.aliases[C]||[],C).forEach(j=>{w.add(j),f[j]=p})}catch(p){N=p}})}function Ae(f){return l.keys.forEach(m=>{~m.indexOf(".")||typeof f[m]>"u"&&(f[m]=void 0)}),f}function xe(f,m,w,C=!1){Object.keys(w).forEach(function(p){X(f,p.split("."))||(A(f,p.split("."),w[p]),C&&(F[p]=!0),(m[p]||[]).forEach(function(j){X(f,j.split("."))||A(f,j.split("."),w[p])}))})}function X(f,m){let w=f;a["dot-notation"]||(m=[m.join(".")]),m.slice(0,-1).forEach(function(p){w=w[p]||{}});let C=m[m.length-1];return typeof w!="object"?!1:C in w}function A(f,m,w){let C=f;a["dot-notation"]||(m=[m.join(".")]),m.slice(0,-1).forEach(function(ae){ae=ii(ae),typeof C=="object"&&C[ae]===void 0&&(C[ae]={}),typeof C[ae]!="object"||Array.isArray(C[ae])?(Array.isArray(C[ae])?C[ae].push({}):C[ae]=[C[ae],{}],C=C[ae][C[ae].length-1]):C=C[ae]});let p=ii(m[m.length-1]),j=O(m.join("."),l.arrays),v=Array.isArray(w),$=a["duplicate-arguments-array"];!$&&O(p,l.nargs)&&($=!0,(!Pe(C[p])&&l.nargs[p]===1||Array.isArray(C[p])&&C[p].length===l.nargs[p])&&(C[p]=void 0)),w===on()?C[p]=on(C[p]):Array.isArray(C[p])?$&&j&&v?C[p]=a["flatten-duplicate-arrays"]?C[p].concat(w):(Array.isArray(C[p][0])?C[p]:[C[p]]).concat([w]):!$&&Boolean(j)===Boolean(v)?C[p]=w:C[p]=C[p].concat([w]):C[p]===void 0&&j?C[p]=v?w:[w]:$&&!(C[p]===void 0||O(p,l.counts)||O(p,l.bools))?C[p]=[C[p],w]:C[p]=w}function H(...f){f.forEach(function(m){Object.keys(m||{}).forEach(function(w){l.aliases[w]||(l.aliases[w]=[].concat(o[w]||[]),l.aliases[w].concat(w).forEach(function(C){if(/-/.test(C)&&a["camel-case-expansion"]){let p=mt(C);p!==w&&l.aliases[w].indexOf(p)===-1&&(l.aliases[w].push(p),B[p]=!0)}}),l.aliases[w].concat(w).forEach(function(C){if(C.length>1&&/[A-Z]/.test(C)&&a["camel-case-expansion"]){let p=ri(C,"-");p!==w&&l.aliases[w].indexOf(p)===-1&&(l.aliases[w].push(p),B[p]=!0)}}),l.aliases[w].forEach(function(C){l.aliases[C]=[w].concat(l.aliases[w].filter(function(p){return C!==p}))}))})})}function O(f,m){let w=[].concat(l.aliases[f]||[],f),C=Object.keys(m),p=w.find(j=>C.includes(j));return p?m[p]:!1}function I(f){let m=Object.keys(l);return[].concat(m.map(C=>l[C])).some(function(C){return Array.isArray(C)?C.includes(f):C[f]})}function ee(f,...m){return[].concat(...m).some(function(C){let p=f.match(C);return p&&I(p[1])})}function Z(f){if(f.match(T)||!f.match(/^-[^-]+/))return!1;let m=!0,w,C=f.slice(1).split("");for(let p=0;p<C.length;p++){if(w=f.slice(p+2),!I(C[p])){m=!1;break}if(C[p+1]&&C[p+1]==="="||w==="-"||/[A-Za-z]/.test(C[p])&&/^-?\d+(\.\d*)?(e-?\d+)?$/.test(w)||C[p+1]&&C[p+1].match(/\W/))break}return m}function se(f){return a["unknown-options-as-args"]&&Qe(f)}function Qe(f){return f=f.replace(/^-{3,}/,"--"),f.match(T)||Z(f)?!1:!ee(f,/^-+([^=]+?)=[\s\S]*$/,L,/^-+([^=]+?)$/,/^-+([^=]+?)-$/,/^-+([^=]+?\d+)$/,/^-+([^=]+?)\W+.*$/)}function Te(f){return!O(f,l.bools)&&!O(f,l.counts)&&`${f}`in c?c[f]:Bs(Ms(f))}function Bs(f){return{[Oe.BOOLEAN]:!0,[Oe.STRING]:"",[Oe.NUMBER]:void 0,[Oe.ARRAY]:[]}[f]}function Ms(f){let m=Oe.BOOLEAN;return O(f,l.strings)?m=Oe.STRING:O(f,l.numbers)?m=Oe.NUMBER:O(f,l.bools)?m=Oe.BOOLEAN:O(f,l.arrays)&&(m=Oe.ARRAY),m}function Pe(f){return f===void 0}function Ns(){Object.keys(l.counts).find(f=>O(f,l.arrays)?(N=Error(g("Invalid configuration: %s, opts.count excludes opts.array.",f)),!0):O(f,l.nargs)?(N=Error(g("Invalid configuration: %s, opts.count excludes opts.narg.",f)),!0):!1)}return{aliases:Object.assign({},l.aliases),argv:Object.assign(E,b),configuration:a,defaulted:Object.assign({},F),error:N,newAliases:Object.assign({},B)}}};function rr(s){let e=[],t=Object.create(null),n=!0;for(Object.keys(s).forEach(function(i){e.push([].concat(s[i],i))});n;){n=!1;for(let i=0;i<e.length;i++)for(let r=i+1;r<e.length;r++)if(e[i].filter(function(a){return e[r].indexOf(a)!==-1}).length){e[i]=e[i].concat(e[r]),e.splice(r,1),n=!0;break}}return e.forEach(function(i){i=i.filter(function(o,a,c){return c.indexOf(o)===a});let r=i.pop();r!==void 0&&typeof r=="string"&&(t[r]=i)}),t}function on(s){return s!==void 0?s+1:1}function ii(s){return s==="__proto__"?"___proto___":s}function or(s){return typeof s=="string"&&(s[0]==="'"||s[0]==='"')&&s[s.length-1]===s[0]?s.substring(1,s.length-1):s}var si=process&&process.env&&process.env.YARGS_MIN_NODE_VERSION?Number(process.env.YARGS_MIN_NODE_VERSION):12;if(process&&process.version&&Number(process.version.match(/v([^.]+)/)[1])<si)throw Error(`yargs parser supports a minimum Node.js version of ${si}. Read our version support policy: https://github.com/yargs/yargs-parser#supported-nodejs-versions`);var ar=process?process.env:{},ai=new an({cwd:process.cwd,env:()=>ar,format:nr.format,normalize:ni.normalize,resolve:ni.resolve,require:s=>{if(typeof require<"u")return require(s);if(s.match(/\.json$/))return JSON.parse(ir.readFileSync(s,"utf8"));throw Error("only .json config files are supported in ESM")}}),gt=function(e,t){return ai.parse(e.slice(),t).argv};gt.detailed=function(s,e){return ai.parse(s.slice(),e)};gt.camelCase=mt;gt.decamelize=ri;gt.looksLikeNumber=oi;ui.exports=gt});var ci=ue((Vo,li)=>{"use strict";li.exports=({onlyFirst:s=!1}={})=>{let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,s?void 0:"g")}});var kt=ue((qo,fi)=>{"use strict";var ur=ci();fi.exports=s=>typeof s=="string"?s.replace(ur(),""):s});var di=ue((Ho,ln)=>{"use strict";var hi=s=>Number.isNaN(s)?!1:s>=4352&&(s<=4447||s===9001||s===9002||11904<=s&&s<=12871&&s!==12351||12880<=s&&s<=19903||19968<=s&&s<=42182||43360<=s&&s<=43388||44032<=s&&s<=55203||63744<=s&&s<=64255||65040<=s&&s<=65049||65072<=s&&s<=65131||65281<=s&&s<=65376||65504<=s&&s<=65510||110592<=s&&s<=110593||127488<=s&&s<=127569||131072<=s&&s<=262141);ln.exports=hi;ln.exports.default=hi});var Di=ue((Ro,pi)=>{"use strict";pi.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}});var St=ue((Uo,cn)=>{"use strict";var lr=kt(),cr=di(),fr=Di(),mi=s=>{if(typeof s!="string"||s.length===0||(s=lr(s),s.length===0))return 0;s=s.replace(fr()," ");let e=0;for(let t=0;t<s.length;t++){let n=s.codePointAt(t);n<=31||n>=127&&n<=159||n>=768&&n<=879||(n>65535&&t++,e+=cr(n)?2:1)}return e};cn.exports=mi;cn.exports.default=mi});var bi=ue((zo,gi)=>{"use strict";gi.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var fn=ue((Jo,Ci)=>{var bt=bi(),yi={};for(let s of Object.keys(bt))yi[bt[s]]=s;var P={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};Ci.exports=P;for(let s of Object.keys(P)){if(!("channels"in P[s]))throw new Error("missing channels property: "+s);if(!("labels"in P[s]))throw new Error("missing channel labels property: "+s);if(P[s].labels.length!==P[s].channels)throw new Error("channel and label counts mismatch: "+s);let{channels:e,labels:t}=P[s];delete P[s].channels,delete P[s].labels,Object.defineProperty(P[s],"channels",{value:e}),Object.defineProperty(P[s],"labels",{value:t})}P.rgb.hsl=function(s){let e=s[0]/255,t=s[1]/255,n=s[2]/255,i=Math.min(e,t,n),r=Math.max(e,t,n),o=r-i,a,c;r===i?a=0:e===r?a=(t-n)/o:t===r?a=2+(n-e)/o:n===r&&(a=4+(e-t)/o),a=Math.min(a*60,360),a<0&&(a+=360);let h=(i+r)/2;return r===i?c=0:h<=.5?c=o/(r+i):c=o/(2-r-i),[a,c*100,h*100]};P.rgb.hsv=function(s){let e,t,n,i,r,o=s[0]/255,a=s[1]/255,c=s[2]/255,h=Math.max(o,a,c),d=h-Math.min(o,a,c),D=function(y){return(h-y)/6/d+1/2};return d===0?(i=0,r=0):(r=d/h,e=D(o),t=D(a),n=D(c),o===h?i=n-t:a===h?i=1/3+e-n:c===h&&(i=2/3+t-e),i<0?i+=1:i>1&&(i-=1)),[i*360,r*100,h*100]};P.rgb.hwb=function(s){let e=s[0],t=s[1],n=s[2],i=P.rgb.hsl(s)[0],r=1/255*Math.min(e,Math.min(t,n));return n=1-1/255*Math.max(e,Math.max(t,n)),[i,r*100,n*100]};P.rgb.cmyk=function(s){let e=s[0]/255,t=s[1]/255,n=s[2]/255,i=Math.min(1-e,1-t,1-n),r=(1-e-i)/(1-i)||0,o=(1-t-i)/(1-i)||0,a=(1-n-i)/(1-i)||0;return[r*100,o*100,a*100,i*100]};function hr(s,e){return(s[0]-e[0])**2+(s[1]-e[1])**2+(s[2]-e[2])**2}P.rgb.keyword=function(s){let e=yi[s];if(e)return e;let t=1/0,n;for(let i of Object.keys(bt)){let r=bt[i],o=hr(s,r);o<t&&(t=o,n=i)}return n};P.keyword.rgb=function(s){return bt[s]};P.rgb.xyz=function(s){let e=s[0]/255,t=s[1]/255,n=s[2]/255;e=e>.04045?((e+.055)/1.055)**2.4:e/12.92,t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,n=n>.04045?((n+.055)/1.055)**2.4:n/12.92;let i=e*.4124+t*.3576+n*.1805,r=e*.2126+t*.7152+n*.0722,o=e*.0193+t*.1192+n*.9505;return[i*100,r*100,o*100]};P.rgb.lab=function(s){let e=P.rgb.xyz(s),t=e[0],n=e[1],i=e[2];t/=95.047,n/=100,i/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,n=n>.008856?n**(1/3):7.787*n+16/116,i=i>.008856?i**(1/3):7.787*i+16/116;let r=116*n-16,o=500*(t-n),a=200*(n-i);return[r,o,a]};P.hsl.rgb=function(s){let e=s[0]/360,t=s[1]/100,n=s[2]/100,i,r,o;if(t===0)return o=n*255,[o,o,o];n<.5?i=n*(1+t):i=n+t-n*t;let a=2*n-i,c=[0,0,0];for(let h=0;h<3;h++)r=e+1/3*-(h-1),r<0&&r++,r>1&&r--,6*r<1?o=a+(i-a)*6*r:2*r<1?o=i:3*r<2?o=a+(i-a)*(2/3-r)*6:o=a,c[h]=o*255;return c};P.hsl.hsv=function(s){let e=s[0],t=s[1]/100,n=s[2]/100,i=t,r=Math.max(n,.01);n*=2,t*=n<=1?n:2-n,i*=r<=1?r:2-r;let o=(n+t)/2,a=n===0?2*i/(r+i):2*t/(n+t);return[e,a*100,o*100]};P.hsv.rgb=function(s){let e=s[0]/60,t=s[1]/100,n=s[2]/100,i=Math.floor(e)%6,r=e-Math.floor(e),o=255*n*(1-t),a=255*n*(1-t*r),c=255*n*(1-t*(1-r));switch(n*=255,i){case 0:return[n,c,o];case 1:return[a,n,o];case 2:return[o,n,c];case 3:return[o,a,n];case 4:return[c,o,n];case 5:return[n,o,a]}};P.hsv.hsl=function(s){let e=s[0],t=s[1]/100,n=s[2]/100,i=Math.max(n,.01),r,o;o=(2-t)*n;let a=(2-t)*i;return r=t*i,r/=a<=1?a:2-a,r=r||0,o/=2,[e,r*100,o*100]};P.hwb.rgb=function(s){let e=s[0]/360,t=s[1]/100,n=s[2]/100,i=t+n,r;i>1&&(t/=i,n/=i);let o=Math.floor(6*e),a=1-n;r=6*e-o,(o&1)!==0&&(r=1-r);let c=t+r*(a-t),h,d,D;switch(o){default:case 6:case 0:h=a,d=c,D=t;break;case 1:h=c,d=a,D=t;break;case 2:h=t,d=a,D=c;break;case 3:h=t,d=c,D=a;break;case 4:h=c,d=t,D=a;break;case 5:h=a,d=t,D=c;break}return[h*255,d*255,D*255]};P.cmyk.rgb=function(s){let e=s[0]/100,t=s[1]/100,n=s[2]/100,i=s[3]/100,r=1-Math.min(1,e*(1-i)+i),o=1-Math.min(1,t*(1-i)+i),a=1-Math.min(1,n*(1-i)+i);return[r*255,o*255,a*255]};P.xyz.rgb=function(s){let e=s[0]/100,t=s[1]/100,n=s[2]/100,i,r,o;return i=e*3.2406+t*-1.5372+n*-.4986,r=e*-.9689+t*1.8758+n*.0415,o=e*.0557+t*-.204+n*1.057,i=i>.0031308?1.055*i**(1/2.4)-.055:i*12.92,r=r>.0031308?1.055*r**(1/2.4)-.055:r*12.92,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,i=Math.min(Math.max(0,i),1),r=Math.min(Math.max(0,r),1),o=Math.min(Math.max(0,o),1),[i*255,r*255,o*255]};P.xyz.lab=function(s){let e=s[0],t=s[1],n=s[2];e/=95.047,t/=100,n/=108.883,e=e>.008856?e**(1/3):7.787*e+16/116,t=t>.008856?t**(1/3):7.787*t+16/116,n=n>.008856?n**(1/3):7.787*n+16/116;let i=116*t-16,r=500*(e-t),o=200*(t-n);return[i,r,o]};P.lab.xyz=function(s){let e=s[0],t=s[1],n=s[2],i,r,o;r=(e+16)/116,i=t/500+r,o=r-n/200;let a=r**3,c=i**3,h=o**3;return r=a>.008856?a:(r-16/116)/7.787,i=c>.008856?c:(i-16/116)/7.787,o=h>.008856?h:(o-16/116)/7.787,i*=95.047,r*=100,o*=108.883,[i,r,o]};P.lab.lch=function(s){let e=s[0],t=s[1],n=s[2],i;i=Math.atan2(n,t)*360/2/Math.PI,i<0&&(i+=360);let o=Math.sqrt(t*t+n*n);return[e,o,i]};P.lch.lab=function(s){let e=s[0],t=s[1],i=s[2]/360*2*Math.PI,r=t*Math.cos(i),o=t*Math.sin(i);return[e,r,o]};P.rgb.ansi16=function(s,e=null){let[t,n,i]=s,r=e===null?P.rgb.hsv(s)[2]:e;if(r=Math.round(r/50),r===0)return 30;let o=30+(Math.round(i/255)<<2|Math.round(n/255)<<1|Math.round(t/255));return r===2&&(o+=60),o};P.hsv.ansi16=function(s){return P.rgb.ansi16(P.hsv.rgb(s),s[2])};P.rgb.ansi256=function(s){let e=s[0],t=s[1],n=s[2];return e===t&&t===n?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(t/255*5)+Math.round(n/255*5)};P.ansi16.rgb=function(s){let e=s%10;if(e===0||e===7)return s>50&&(e+=3.5),e=e/10.5*255,[e,e,e];let t=(~~(s>50)+1)*.5,n=(e&1)*t*255,i=(e>>1&1)*t*255,r=(e>>2&1)*t*255;return[n,i,r]};P.ansi256.rgb=function(s){if(s>=232){let r=(s-232)*10+8;return[r,r,r]}s-=16;let e,t=Math.floor(s/36)/5*255,n=Math.floor((e=s%36)/6)/5*255,i=e%6/5*255;return[t,n,i]};P.rgb.hex=function(s){let t=(((Math.round(s[0])&255)<<16)+((Math.round(s[1])&255)<<8)+(Math.round(s[2])&255)).toString(16).toUpperCase();return"000000".substring(t.length)+t};P.hex.rgb=function(s){let e=s.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];let t=e[0];e[0].length===3&&(t=t.split("").map(a=>a+a).join(""));let n=parseInt(t,16),i=n>>16&255,r=n>>8&255,o=n&255;return[i,r,o]};P.rgb.hcg=function(s){let e=s[0]/255,t=s[1]/255,n=s[2]/255,i=Math.max(Math.max(e,t),n),r=Math.min(Math.min(e,t),n),o=i-r,a,c;return o<1?a=r/(1-o):a=0,o<=0?c=0:i===e?c=(t-n)/o%6:i===t?c=2+(n-e)/o:c=4+(e-t)/o,c/=6,c%=1,[c*360,o*100,a*100]};P.hsl.hcg=function(s){let e=s[1]/100,t=s[2]/100,n=t<.5?2*e*t:2*e*(1-t),i=0;return n<1&&(i=(t-.5*n)/(1-n)),[s[0],n*100,i*100]};P.hsv.hcg=function(s){let e=s[1]/100,t=s[2]/100,n=e*t,i=0;return n<1&&(i=(t-n)/(1-n)),[s[0],n*100,i*100]};P.hcg.rgb=function(s){let e=s[0]/360,t=s[1]/100,n=s[2]/100;if(t===0)return[n*255,n*255,n*255];let i=[0,0,0],r=e%1*6,o=r%1,a=1-o,c=0;switch(Math.floor(r)){case 0:i[0]=1,i[1]=o,i[2]=0;break;case 1:i[0]=a,i[1]=1,i[2]=0;break;case 2:i[0]=0,i[1]=1,i[2]=o;break;case 3:i[0]=0,i[1]=a,i[2]=1;break;case 4:i[0]=o,i[1]=0,i[2]=1;break;default:i[0]=1,i[1]=0,i[2]=a}return c=(1-t)*n,[(t*i[0]+c)*255,(t*i[1]+c)*255,(t*i[2]+c)*255]};P.hcg.hsv=function(s){let e=s[1]/100,t=s[2]/100,n=e+t*(1-e),i=0;return n>0&&(i=e/n),[s[0],i*100,n*100]};P.hcg.hsl=function(s){let e=s[1]/100,n=s[2]/100*(1-e)+.5*e,i=0;return n>0&&n<.5?i=e/(2*n):n>=.5&&n<1&&(i=e/(2*(1-n))),[s[0],i*100,n*100]};P.hcg.hwb=function(s){let e=s[1]/100,t=s[2]/100,n=e+t*(1-e);return[s[0],(n-e)*100,(1-n)*100]};P.hwb.hcg=function(s){let e=s[1]/100,t=s[2]/100,n=1-t,i=n-e,r=0;return i<1&&(r=(n-i)/(1-i)),[s[0],i*100,r*100]};P.apple.rgb=function(s){return[s[0]/65535*255,s[1]/65535*255,s[2]/65535*255]};P.rgb.apple=function(s){return[s[0]/255*65535,s[1]/255*65535,s[2]/255*65535]};P.gray.rgb=function(s){return[s[0]/100*255,s[0]/100*255,s[0]/100*255]};P.gray.hsl=function(s){return[0,0,s[0]]};P.gray.hsv=P.gray.hsl;P.gray.hwb=function(s){return[0,100,s[0]]};P.gray.cmyk=function(s){return[0,0,0,s[0]]};P.gray.lab=function(s){return[s[0],0,0]};P.gray.hex=function(s){let e=Math.round(s[0]/100*255)&255,n=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(n.length)+n};P.rgb.gray=function(s){return[(s[0]+s[1]+s[2])/3/255*100]}});var Fi=ue((Go,Ei)=>{var jt=fn();function dr(){let s={},e=Object.keys(jt);for(let t=e.length,n=0;n<t;n++)s[e[n]]={distance:-1,parent:null};return s}function pr(s){let e=dr(),t=[s];for(e[s].distance=0;t.length;){let n=t.pop(),i=Object.keys(jt[n]);for(let r=i.length,o=0;o<r;o++){let a=i[o],c=e[a];c.distance===-1&&(c.distance=e[n].distance+1,c.parent=n,t.unshift(a))}}return e}function Dr(s,e){return function(t){return e(s(t))}}function mr(s,e){let t=[e[s].parent,s],n=jt[e[s].parent][s],i=e[s].parent;for(;e[i].parent;)t.unshift(e[i].parent),n=Dr(jt[e[i].parent][i],n),i=e[i].parent;return n.conversion=t,n}Ei.exports=function(s){let e=pr(s),t={},n=Object.keys(e);for(let i=n.length,r=0;r<i;r++){let o=n[r];e[o].parent!==null&&(t[o]=mr(o,e))}return t}});var wi=ue((Ko,xi)=>{var hn=fn(),gr=Fi(),nt={},br=Object.keys(hn);function yr(s){let e=function(...t){let n=t[0];return n==null?n:(n.length>1&&(t=n),s(t))};return"conversion"in s&&(e.conversion=s.conversion),e}function Cr(s){let e=function(...t){let n=t[0];if(n==null)return n;n.length>1&&(t=n);let i=s(t);if(typeof i=="object")for(let r=i.length,o=0;o<r;o++)i[o]=Math.round(i[o]);return i};return"conversion"in s&&(e.conversion=s.conversion),e}br.forEach(s=>{nt[s]={},Object.defineProperty(nt[s],"channels",{value:hn[s].channels}),Object.defineProperty(nt[s],"labels",{value:hn[s].labels});let e=gr(s);Object.keys(e).forEach(n=>{let i=e[n];nt[s][n]=Cr(i),nt[s][n].raw=yr(i)})});xi.exports=nt});var ki=ue((Xo,Ti)=>{"use strict";var _i=(s,e)=>(...t)=>`\x1B[${s(...t)+e}m`,Oi=(s,e)=>(...t)=>{let n=s(...t);return`\x1B[${38+e};5;${n}m`},vi=(s,e)=>(...t)=>{let n=s(...t);return`\x1B[${38+e};2;${n[0]};${n[1]};${n[2]}m`},Pt=s=>s,Ai=(s,e,t)=>[s,e,t],it=(s,e,t)=>{Object.defineProperty(s,e,{get:()=>{let n=t();return Object.defineProperty(s,e,{value:n,enumerable:!0,configurable:!0}),n},enumerable:!0,configurable:!0})},dn,st=(s,e,t,n)=>{dn===void 0&&(dn=wi());let i=n?10:0,r={};for(let[o,a]of Object.entries(dn)){let c=o==="ansi16"?"ansi":o;o===e?r[c]=s(t,i):typeof a=="object"&&(r[c]=s(a[e],i))}return r};function Er(){let s=new Map,e={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};e.color.gray=e.color.blackBright,e.bgColor.bgGray=e.bgColor.bgBlackBright,e.color.grey=e.color.blackBright,e.bgColor.bgGrey=e.bgColor.bgBlackBright;for(let[t,n]of Object.entries(e)){for(let[i,r]of Object.entries(n))e[i]={open:`\x1B[${r[0]}m`,close:`\x1B[${r[1]}m`},n[i]=e[i],s.set(r[0],r[1]);Object.defineProperty(e,t,{value:n,enumerable:!1})}return Object.defineProperty(e,"codes",{value:s,enumerable:!1}),e.color.close="\x1B[39m",e.bgColor.close="\x1B[49m",it(e.color,"ansi",()=>st(_i,"ansi16",Pt,!1)),it(e.color,"ansi256",()=>st(Oi,"ansi256",Pt,!1)),it(e.color,"ansi16m",()=>st(vi,"rgb",Ai,!1)),it(e.bgColor,"ansi",()=>st(_i,"ansi16",Pt,!0)),it(e.bgColor,"ansi256",()=>st(Oi,"ansi256",Pt,!0)),it(e.bgColor,"ansi16m",()=>st(vi,"rgb",Ai,!0)),e}Object.defineProperty(Ti,"exports",{enumerable:!0,get:Er})});var Ni=ue((Zo,Mi)=>{"use strict";var yt=St(),Fr=kt(),xr=ki(),Bt=new Set(["\x1B","\x9B"]),wr=39,Dn="\x07",Pi="[",_r="]",Bi="m",mn=`${_r}8;;`,Si=s=>`${Bt.values().next().value}${Pi}${s}${Bi}`,ji=s=>`${Bt.values().next().value}${mn}${s}${Dn}`,Or=s=>s.split(" ").map(e=>yt(e)),pn=(s,e,t)=>{let n=[...e],i=!1,r=!1,o=yt(Fr(s[s.length-1]));for(let[a,c]of n.entries()){let h=yt(c);if(o+h<=t?s[s.length-1]+=c:(s.push(c),o=0),Bt.has(c)&&(i=!0,r=n.slice(a+1).join("").startsWith(mn)),i){r?c===Dn&&(i=!1,r=!1):c===Bi&&(i=!1);continue}o+=h,o===t&&a<n.length-1&&(s.push(""),o=0)}!o&&s[s.length-1].length>0&&s.length>1&&(s[s.length-2]+=s.pop())},vr=s=>{let e=s.split(" "),t=e.length;for(;t>0&&!(yt(e[t-1])>0);)t--;return t===e.length?s:e.slice(0,t).join(" ")+e.slice(t).join("")},Ar=(s,e,t={})=>{if(t.trim!==!1&&s.trim()==="")return"";let n="",i,r,o=Or(s),a=[""];for(let[h,d]of s.split(" ").entries()){t.trim!==!1&&(a[a.length-1]=a[a.length-1].trimStart());let D=yt(a[a.length-1]);if(h!==0&&(D>=e&&(t.wordWrap===!1||t.trim===!1)&&(a.push(""),D=0),(D>0||t.trim===!1)&&(a[a.length-1]+=" ",D++)),t.hard&&o[h]>e){let y=e-D,B=1+Math.floor((o[h]-y-1)/e);Math.floor((o[h]-1)/e)<B&&a.push(""),pn(a,d,e);continue}if(D+o[h]>e&&D>0&&o[h]>0){if(t.wordWrap===!1&&D<e){pn(a,d,e);continue}a.push("")}if(D+o[h]>e&&t.wordWrap===!1){pn(a,d,e);continue}a[a.length-1]+=d}t.trim!==!1&&(a=a.map(vr));let c=[...a.join(`
|
|
|
`)];for(let[h,d]of c.entries()){if(n+=d,Bt.has(d)){let{groups:y}=new RegExp(`(?:\\${Pi}(?<code>\\d+)m|\\${mn}(?<uri>.*)${Dn})`).exec(c.slice(h).join(""))||{groups:{}};if(y.code!==void 0){let B=Number.parseFloat(y.code);i=B===wr?void 0:B}else y.uri!==void 0&&(r=y.uri.length===0?void 0:y.uri)}let D=xr.codes.get(Number(i));c[h+1]===`
|
|
|
`?(r&&(n+=ji("")),i&&D&&(n+=Si(D))):d===`
|
|
|
`&&(i&&D&&(n+=Si(i)),r&&(n+=ji(r)))}return n};Mi.exports=(s,e,t)=>String(s).normalize().replace(/\r\n/g,`
|
|
|
`).split(`
|
|
|
`).map(n=>Ar(n,e,t)).join(`
|
|
|
`)});var Li=ue((Qo,Ii)=>{"use strict";var Tr={right:Br,center:Mr},kr=0,Mt=1,Sr=2,Nt=3,gn=class{constructor(e){var t;this.width=e.width,this.wrap=(t=e.wrap)!==null&&t!==void 0?t:!0,this.rows=[]}span(...e){let t=this.div(...e);t.span=!0}resetOutput(){this.rows=[]}div(...e){if(e.length===0&&this.div(""),this.wrap&&this.shouldApplyLayoutDSL(...e)&&typeof e[0]=="string")return this.applyLayoutDSL(e[0]);let t=e.map(n=>typeof n=="string"?this.colFromString(n):n);return this.rows.push(t),t}shouldApplyLayoutDSL(...e){return e.length===1&&typeof e[0]=="string"&&/[\t\n]/.test(e[0])}applyLayoutDSL(e){let t=e.split(`
|
|
|
`).map(i=>i.split(" ")),n=0;return t.forEach(i=>{i.length>1&&de.stringWidth(i[0])>n&&(n=Math.min(Math.floor(this.width*.5),de.stringWidth(i[0])))}),t.forEach(i=>{this.div(...i.map((r,o)=>({text:r.trim(),padding:this.measurePadding(r),width:o===0&&i.length>1?n:void 0})))}),this.rows[this.rows.length-1]}colFromString(e){return{text:e,padding:this.measurePadding(e)}}measurePadding(e){let t=de.stripAnsi(e);return[0,t.match(/\s*$/)[0].length,0,t.match(/^\s*/)[0].length]}toString(){let e=[];return this.rows.forEach(t=>{this.rowToString(t,e)}),e.filter(t=>!t.hidden).map(t=>t.text).join(`
|
|
|
`)}rowToString(e,t){return this.rasterize(e).forEach((n,i)=>{let r="";n.forEach((o,a)=>{let{width:c}=e[a],h=this.negatePadding(e[a]),d=o;h>de.stringWidth(o)&&(d+=" ".repeat(h-de.stringWidth(o))),e[a].align&&e[a].align!=="left"&&this.wrap&&(d=Tr[e[a].align](d,h),de.stringWidth(d)<h&&(d+=" ".repeat((c||0)-de.stringWidth(d)-1)));let D=e[a].padding||[0,0,0,0];D[Nt]&&(r+=" ".repeat(D[Nt])),r+=$i(e[a],d,"| "),r+=d,r+=$i(e[a],d," |"),D[Mt]&&(r+=" ".repeat(D[Mt])),i===0&&t.length>0&&(r=this.renderInline(r,t[t.length-1]))}),t.push({text:r.replace(/ +$/,""),span:e.span})}),t}renderInline(e,t){let n=e.match(/^ */),i=n?n[0].length:0,r=t.text,o=de.stringWidth(r.trimRight());return t.span?this.wrap?i<o?e:(t.hidden=!0,r.trimRight()+" ".repeat(i-o)+e.trimLeft()):(t.hidden=!0,r+e):e}rasterize(e){let t=[],n=this.columnWidths(e),i;return e.forEach((r,o)=>{r.width=n[o],this.wrap?i=de.wrap(r.text,this.negatePadding(r),{hard:!0}).split(`
|
|
|
`):i=r.text.split(`
|
|
|
`),r.border&&(i.unshift("."+"-".repeat(this.negatePadding(r)+2)+"."),i.push("'"+"-".repeat(this.negatePadding(r)+2)+"'")),r.padding&&(i.unshift(...new Array(r.padding[kr]||0).fill("")),i.push(...new Array(r.padding[Sr]||0).fill(""))),i.forEach((a,c)=>{t[c]||t.push([]);let h=t[c];for(let d=0;d<o;d++)h[d]===void 0&&h.push("");h.push(a)})}),t}negatePadding(e){let t=e.width||0;return e.padding&&(t-=(e.padding[Nt]||0)+(e.padding[Mt]||0)),e.border&&(t-=4),t}columnWidths(e){if(!this.wrap)return e.map(o=>o.width||de.stringWidth(o.text));let t=e.length,n=this.width,i=e.map(o=>{if(o.width)return t--,n-=o.width,o.width}),r=t?Math.floor(n/t):0;return i.map((o,a)=>o===void 0?Math.max(r,jr(e[a])):o)}};function $i(s,e,t){return s.border?/[.']-+[.']/.test(e)?"":e.trim().length!==0?t:" ":""}function jr(s){let e=s.padding||[],t=1+(e[Nt]||0)+(e[Mt]||0);return s.border?t+4:t}function Pr(){return typeof process=="object"&&process.stdout&&process.stdout.columns?process.stdout.columns:80}function Br(s,e){s=s.trim();let t=de.stringWidth(s);return t<e?" ".repeat(e-t)+s:s}function Mr(s,e){s=s.trim();let t=de.stringWidth(s);return t>=e?s:" ".repeat(e-t>>1)+s}var de;function Nr(s,e){return de=e,new gn({width:s?.width||Pr(),wrap:s?.wrap})}var $r=St(),Ir=kt(),Lr=Ni();function Wr(s){return Nr(s,{stringWidth:$r,stripAnsi:Ir,wrap:Lr})}Ii.exports=Wr});var Hi=ue((Yo,qi)=>{var{dirname:Wi,resolve:Vi}=require("path"),{readdirSync:Vr,statSync:qr}=require("fs");qi.exports=function(s,e){let t=Vi(".",s),n;for(qr(t).isDirectory()||(t=Wi(t));;){if(n=e(t,Vr(t)),n)return Vi(t,n);if(t=Wi(n=t),n===t)break}}});var Ui=ue((ea,Ri)=>{"use strict";Ri.exports=function(e){if(e===void 0&&(e=2),e>=Error.stackTraceLimit)throw new TypeError("getCallerFile(position) requires position be less then Error.stackTraceLimit but position was: `"+e+"` and Error.stackTraceLimit was: `"+Error.stackTraceLimit+"`");var t=Error.prepareStackTrace;Error.prepareStackTrace=function(i,r){return r};var n=new Error().stack;if(Error.prepareStackTrace=t,n!==null&&typeof n=="object")return n[e]?n[e].getFileName():void 0}});var Ki=ue((ta,yn)=>{"use strict";var zi=require("fs"),Hr=require("path").join,Rr=require("path").resolve,Ji=require("path").dirname,bn={extensions:["js","json","coffee"],recurse:!0,rename:function(s){return s},visit:function(s){return s}};function Ur(s,e,t){return new RegExp("\\.("+t.extensions.join("|")+")$","i").test(e)&&!(t.include&&t.include instanceof RegExp&&!t.include.test(s))&&!(t.include&&typeof t.include=="function"&&!t.include(s,e))&&!(t.exclude&&t.exclude instanceof RegExp&&t.exclude.test(s))&&!(t.exclude&&typeof t.exclude=="function"&&t.exclude(s,e))}function Gi(s,e,t){var n={};e&&!t&&typeof e!="string"&&(t=e,e=null),t=t||{};for(var i in bn)typeof t[i]>"u"&&(t[i]=bn[i]);return e=e?Rr(Ji(s.filename),e):Ji(s.filename),zi.readdirSync(e).forEach(function(r){var o=Hr(e,r),a,c,h;zi.statSync(o).isDirectory()&&t.recurse?(a=Gi(s,o,t),Object.keys(a).length&&(n[t.rename(r,o,r)]=a)):o!==s.filename&&Ur(o,r,t)&&(c=r.substring(0,r.lastIndexOf(".")),h=s.require(o),n[t.rename(c,o,r)]=t.visit(h,o,r)||h)}),n}yn.exports=Gi;yn.exports.defaults=bn});var vs=ue((na,Os)=>{"use strict";var Xi=require("assert"),re=class extends Error{constructor(e){super(e||"yargs error"),this.name="YError",Error.captureStackTrace&&Error.captureStackTrace(this,re)}},Ct,Cn=[];function Jt(s,e,t,n){Ct=n;let i={};if(Object.prototype.hasOwnProperty.call(s,"extends")){if(typeof s.extends!="string")return i;let r=/\.json|\..*rc$/.test(s.extends),o=null;if(r)o=function(a,c){return Ct.path.resolve(a,c)}(e,s.extends);else try{o=require.resolve(s.extends)}catch{return s}(function(a){if(Cn.indexOf(a)>-1)throw new re(`Circular extended configurations: '${a}'.`)})(o),Cn.push(o),i=r?JSON.parse(Ct.readFileSync(o,"utf8")):require(s.extends),delete s.extends,i=Jt(i,Ct.path.dirname(o),t,Ct)}return Cn=[],t?xs(i,s):Object.assign({},i,s)}function xs(s,e){let t={};function n(i){return i&&typeof i=="object"&&!Array.isArray(i)}Object.assign(t,s);for(let i of Object.keys(e))n(e[i])&&n(t[i])?t[i]=xs(s[i],e[i]):t[i]=e[i];return t}function ct(s){let e=s.replace(/\s{2,}/g," ").split(/\s+(?![^[]*]|[^<]*>)/),t=/\.*[\][<>]/g,n=e.shift();if(!n)throw new Error(`No command found in: ${s}`);let i={cmd:n.replace(t,""),demanded:[],optional:[]};return e.forEach((r,o)=>{let a=!1;r=r.replace(/\s/g,""),/\.+[\]>]/.test(r)&&o===e.length-1&&(a=!0),/^\[/.test(r)?i.optional.push({cmd:r.replace(t,"").split("|"),variadic:a}):i.demanded.push({cmd:r.replace(t,"").split("|"),variadic:a})}),i}var zr=["first","second","third","fourth","fifth","sixth"];function S(s,e,t){try{let n=0,[i,r,o]=typeof s=="object"?[{demanded:[],optional:[]},s,e]:[ct(`cmd ${s}`),e,t],a=[].slice.call(r);for(;a.length&&a[a.length-1]===void 0;)a.pop();let c=o||a.length;if(c<i.demanded.length)throw new re(`Not enough arguments provided. Expected ${i.demanded.length} but received ${a.length}.`);let h=i.demanded.length+i.optional.length;if(c>h)throw new re(`Too many arguments provided. Expected max ${h} but received ${c}.`);i.demanded.forEach(d=>{let D=Zi(a.shift());d.cmd.filter(y=>y===D||y==="*").length===0&&Qi(D,d.cmd,n),n+=1}),i.optional.forEach(d=>{if(a.length===0)return;let D=Zi(a.shift());d.cmd.filter(y=>y===D||y==="*").length===0&&Qi(D,d.cmd,n),n+=1})}catch(n){console.warn(n.stack)}}function Zi(s){return Array.isArray(s)?"array":s===null?"null":typeof s}function Qi(s,e,t){throw new re(`Invalid ${zr[t]||"manyith"} argument. Expected ${e.join(" or ")} but received ${s}.`)}function ne(s){return!!s&&!!s.then&&typeof s.then=="function"}function ve(s,e,t,n){t.assert.notStrictEqual(s,e,n)}function Yi(s,e){e.assert.strictEqual(typeof s,"string")}function zt(s){return Object.keys(s)}function lt(s={},e=()=>!0){let t={};return zt(s).forEach(n=>{e(n,s[n])&&(t[n]=s[n])}),t}function ws(){return process.versions.electron&&!process.defaultApp?0:1}function _s(){return process.argv[ws()]}var Jr=Object.freeze({__proto__:null,hideBin:function(s){return s.slice(ws()+1)},getProcessArgvBin:_s});function u(s,e,t,n){if(t==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?s!==e||!n:!e.has(s))throw new TypeError("Cannot read private member from an object whose class did not declare it");return t==="m"?n:t==="a"?n.call(s):n?n.value:e.get(s)}function k(s,e,t,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?s!==e||!i:!e.has(s))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(s,t):i?i.value=t:e.set(s,t),t}var Mn=class{constructor(e){this.globalMiddleware=[],this.frozens=[],this.yargs=e}addMiddleware(e,t,n=!0,i=!1){if(S("<array|function> [boolean] [boolean] [boolean]",[e,t,n],arguments.length),Array.isArray(e)){for(let r=0;r<e.length;r++){if(typeof e[r]!="function")throw Error("middleware must be a function");let o=e[r];o.applyBeforeValidation=t,o.global=n}Array.prototype.push.apply(this.globalMiddleware,e)}else if(typeof e=="function"){let r=e;r.applyBeforeValidation=t,r.global=n,r.mutates=i,this.globalMiddleware.push(e)}return this.yargs}addCoerceMiddleware(e,t){let n=this.yargs.getAliases();return this.globalMiddleware=this.globalMiddleware.filter(i=>{let r=[...n[t]||[],t];return!i.option||!r.includes(i.option)}),e.option=t,this.addMiddleware(e,!0,!0,!0)}getMiddleware(){return this.globalMiddleware}freeze(){this.frozens.push([...this.globalMiddleware])}unfreeze(){let e=this.frozens.pop();e!==void 0&&(this.globalMiddleware=e)}reset(){this.globalMiddleware=this.globalMiddleware.filter(e=>e.global)}};function wt(s,e,t,n){return t.reduce((i,r)=>{if(r.applyBeforeValidation!==n)return i;if(r.mutates){if(r.applied)return i;r.applied=!0}if(ne(i))return i.then(o=>Promise.all([o,r(o,e)])).then(([o,a])=>Object.assign(o,a));{let o=r(i,e);return ne(o)?o.then(a=>Object.assign(i,a)):Object.assign(i,o)}},s)}function _t(s,e,t=n=>{throw n}){try{let n=typeof s=="function"?s():s;return ne(n)?n.then(i=>e(i)):e(n)}catch(n){return t(n)}}var rt=/(^\*)|(^\$0)/,Nn=class{constructor(e,t,n,i){this.requireCache=new Set,this.handlers={},this.aliasMap={},this.frozens=[],this.shim=i,this.usage=e,this.globalMiddleware=n,this.validation=t}addDirectory(e,t,n,i){typeof(i=i||{}).recurse!="boolean"&&(i.recurse=!1),Array.isArray(i.extensions)||(i.extensions=["js"]);let r=typeof i.visit=="function"?i.visit:o=>o;i.visit=(o,a,c)=>{let h=r(o,a,c);if(h){if(this.requireCache.has(a))return h;this.requireCache.add(a),this.addHandler(h)}return h},this.shim.requireDirectory({require:t,filename:n},e,i)}addHandler(e,t,n,i,r,o){let a=[],c=function(h){return h?h.map(d=>(d.applyBeforeValidation=!1,d)):[]}(r);if(i=i||(()=>{}),Array.isArray(e))if(function(h){return h.every(d=>typeof d=="string")}(e))[e,...a]=e;else for(let h of e)this.addHandler(h);else{if(function(h){return typeof h=="object"&&!Array.isArray(h)}(e)){let h=Array.isArray(e.command)||typeof e.command=="string"?e.command:this.moduleName(e);return e.aliases&&(h=[].concat(h).concat(e.aliases)),void this.addHandler(h,this.extractDesc(e),e.builder,e.handler,e.middlewares,e.deprecated)}if(es(n))return void this.addHandler([e].concat(a),t,n.builder,n.handler,n.middlewares,n.deprecated)}if(typeof e=="string"){let h=ct(e);a=a.map(y=>ct(y).cmd);let d=!1,D=[h.cmd].concat(a).filter(y=>!rt.test(y)||(d=!0,!1));D.length===0&&d&&D.push("$0"),d&&(h.cmd=D[0],a=D.slice(1),e=e.replace(rt,h.cmd)),a.forEach(y=>{this.aliasMap[y]=h.cmd}),t!==!1&&this.usage.command(e,t,d,a,o),this.handlers[h.cmd]={original:e,description:t,handler:i,builder:n||{},middlewares:c,deprecated:o,demanded:h.demanded,optional:h.optional},d&&(this.defaultCommand=this.handlers[h.cmd])}}getCommandHandlers(){return this.handlers}getCommands(){return Object.keys(this.handlers).concat(Object.keys(this.aliasMap))}hasDefaultCommand(){return!!this.defaultCommand}runCommand(e,t,n,i,r,o){let a=this.handlers[e]||this.handlers[this.aliasMap[e]]||this.defaultCommand,c=t.getInternalMethods().getContext(),h=c.commands.slice(),d=!e;e&&(c.commands.push(e),c.fullCommands.push(a.original));let D=this.applyBuilderUpdateUsageAndParse(d,a,t,n.aliases,h,i,r,o);return ne(D)?D.then(y=>this.applyMiddlewareAndGetResult(d,a,y.innerArgv,c,r,y.aliases,t)):this.applyMiddlewareAndGetResult(d,a,D.innerArgv,c,r,D.aliases,t)}applyBuilderUpdateUsageAndParse(e,t,n,i,r,o,a,c){let h=t.builder,d=n;if($n(h)){let D=h(n.getInternalMethods().reset(i),c);if(ne(D))return D.then(y=>{var B;return d=(B=y)&&typeof B.getInternalMethods=="function"?y:n,this.parseAndUpdateUsage(e,t,d,r,o,a)})}else(function(D){return typeof D=="object"})(h)&&(d=n.getInternalMethods().reset(i),Object.keys(t.builder).forEach(D=>{d.option(D,h[D])}));return this.parseAndUpdateUsage(e,t,d,r,o,a)}parseAndUpdateUsage(e,t,n,i,r,o){e&&n.getInternalMethods().getUsageInstance().unfreeze(!0),this.shouldUpdateUsage(n)&&n.getInternalMethods().getUsageInstance().usage(this.usageFromParentCommandsCommandHandler(i,t),t.description);let a=n.getInternalMethods().runYargsParserAndExecuteCommands(null,void 0,!0,r,o);return ne(a)?a.then(c=>({aliases:n.parsed.aliases,innerArgv:c})):{aliases:n.parsed.aliases,innerArgv:a}}shouldUpdateUsage(e){return!e.getInternalMethods().getUsageInstance().getUsageDisabled()&&e.getInternalMethods().getUsageInstance().getUsage().length===0}usageFromParentCommandsCommandHandler(e,t){let n=rt.test(t.original)?t.original.replace(rt,"").trim():t.original,i=e.filter(r=>!rt.test(r));return i.push(n),`$0 ${i.join(" ")}`}handleValidationAndGetResult(e,t,n,i,r,o,a,c){if(!o.getInternalMethods().getHasOutput()){let h=o.getInternalMethods().runValidation(r,c,o.parsed.error,e);n=_t(n,d=>(h(d),d))}if(t.handler&&!o.getInternalMethods().getHasOutput()){o.getInternalMethods().setHasOutput();let h=!!o.getOptions().configuration["populate--"];o.getInternalMethods().postProcess(n,h,!1,!1),n=_t(n=wt(n,o,a,!1),d=>{let D=t.handler(d);return ne(D)?D.then(()=>d):d}),e||o.getInternalMethods().getUsageInstance().cacheHelpMessage(),ne(n)&&!o.getInternalMethods().hasParseCallback()&&n.catch(d=>{try{o.getInternalMethods().getUsageInstance().fail(null,d)}catch{}})}return e||(i.commands.pop(),i.fullCommands.pop()),n}applyMiddlewareAndGetResult(e,t,n,i,r,o,a){let c={};if(r)return n;a.getInternalMethods().getHasOutput()||(c=this.populatePositionals(t,n,i,a));let h=this.globalMiddleware.getMiddleware().slice(0).concat(t.middlewares),d=wt(n,a,h,!0);return ne(d)?d.then(D=>this.handleValidationAndGetResult(e,t,D,i,o,a,h,c)):this.handleValidationAndGetResult(e,t,d,i,o,a,h,c)}populatePositionals(e,t,n,i){t._=t._.slice(n.commands.length);let r=e.demanded.slice(0),o=e.optional.slice(0),a={};for(this.validation.positionalCount(r.length,t._.length);r.length;){let c=r.shift();this.populatePositional(c,t,a)}for(;o.length;){let c=o.shift();this.populatePositional(c,t,a)}return t._=n.commands.concat(t._.map(c=>""+c)),this.postProcessPositionals(t,a,this.cmdToParseOptions(e.original),i),a}populatePositional(e,t,n){let i=e.cmd[0];e.variadic?n[i]=t._.splice(0).map(String):t._.length&&(n[i]=[String(t._.shift())])}cmdToParseOptions(e){let t={array:[],default:{},alias:{},demand:{}},n=ct(e);return n.demanded.forEach(i=>{let[r,...o]=i.cmd;i.variadic&&(t.array.push(r),t.default[r]=[]),t.alias[r]=o,t.demand[r]=!0}),n.optional.forEach(i=>{let[r,...o]=i.cmd;i.variadic&&(t.array.push(r),t.default[r]=[]),t.alias[r]=o}),t}postProcessPositionals(e,t,n,i){let r=Object.assign({},i.getOptions());r.default=Object.assign(n.default,r.default);for(let h of Object.keys(n.alias))r.alias[h]=(r.alias[h]||[]).concat(n.alias[h]);r.array=r.array.concat(n.array),r.config={};let o=[];if(Object.keys(t).forEach(h=>{t[h].map(d=>{r.configuration["unknown-options-as-args"]&&(r.key[h]=!0),o.push(`--${h}`),o.push(d)})}),!o.length)return;let a=Object.assign({},r.configuration,{"populate--":!1}),c=this.shim.Parser.detailed(o,Object.assign({},r,{configuration:a}));if(c.error)i.getInternalMethods().getUsageInstance().fail(c.error.message,c.error);else{let h=Object.keys(t);Object.keys(t).forEach(d=>{h.push(...c.aliases[d])}),Object.keys(c.argv).forEach(d=>{h.includes(d)&&(t[d]||(t[d]=c.argv[d]),!this.isInConfigs(i,d)&&!this.isDefaulted(i,d)&&Object.prototype.hasOwnProperty.call(e,d)&&Object.prototype.hasOwnProperty.call(c.argv,d)&&(Array.isArray(e[d])||Array.isArray(c.argv[d]))?e[d]=[].concat(e[d],c.argv[d]):e[d]=c.argv[d])})}}isDefaulted(e,t){let{default:n}=e.getOptions();return Object.prototype.hasOwnProperty.call(n,t)||Object.prototype.hasOwnProperty.call(n,this.shim.Parser.camelCase(t))}isInConfigs(e,t){let{configObjects:n}=e.getOptions();return n.some(i=>Object.prototype.hasOwnProperty.call(i,t))||n.some(i=>Object.prototype.hasOwnProperty.call(i,this.shim.Parser.camelCase(t)))}runDefaultBuilderOn(e){if(!this.defaultCommand)return;if(this.shouldUpdateUsage(e)){let n=rt.test(this.defaultCommand.original)?this.defaultCommand.original:this.defaultCommand.original.replace(/^[^[\]<>]*/,"$0 ");e.getInternalMethods().getUsageInstance().usage(n,this.defaultCommand.description)}let t=this.defaultCommand.builder;if($n(t))return t(e,!0);es(t)||Object.keys(t).forEach(n=>{e.option(n,t[n])})}moduleName(e){let t=function(n){if(typeof require>"u")return null;for(let i,r=0,o=Object.keys(require.cache);r<o.length;r++)if(i=require.cache[o[r]],i.exports===n)return i;return null}(e);if(!t)throw new Error(`No command name given for module: ${this.shim.inspect(e)}`);return this.commandFromFilename(t.filename)}commandFromFilename(e){return this.shim.path.basename(e,this.shim.path.extname(e))}extractDesc({describe:e,description:t,desc:n}){for(let i of[e,t,n]){if(typeof i=="string"||i===!1)return i;ve(i,!0,this.shim)}return!1}freeze(){this.frozens.push({handlers:this.handlers,aliasMap:this.aliasMap,defaultCommand:this.defaultCommand})}unfreeze(){let e=this.frozens.pop();ve(e,void 0,this.shim),{handlers:this.handlers,aliasMap:this.aliasMap,defaultCommand:this.defaultCommand}=e}reset(){return this.handlers={},this.aliasMap={},this.defaultCommand=void 0,this.requireCache=new Set,this}};function es(s){return typeof s=="object"&&!!s.builder&&typeof s.handler=="function"}function $n(s){return typeof s=="function"}function xt(s){typeof process<"u"&&[process.stdout,process.stderr].forEach(e=>{let t=e;t._handle&&t.isTTY&&typeof t._handle.setBlocking=="function"&&t._handle.setBlocking(s)})}function Gr(s){return typeof s=="boolean"}function Kr(s,e){let t=e.y18n.__,n={},i=[];n.failFn=function(x){i.push(x)};let r=null,o=null,a=!0;n.showHelpOnFail=function(x=!0,_){let[V,z]=typeof x=="string"?[!0,x]:[x,_];return s.getInternalMethods().isGlobalContext()&&(o=z),r=z,a=V,n};let c=!1;n.fail=function(x,_){let V=s.getInternalMethods().getLoggerInstance();if(!i.length){if(s.getExitProcess()&&xt(!0),!c){c=!0,a&&(s.showHelp("error"),V.error()),(x||_)&&V.error(x||_);let z=r||o;z&&((x||_)&&V.error(""),V.error(z))}if(_=_||new re(x),s.getExitProcess())return s.exit(1);if(s.getInternalMethods().hasParseCallback())return s.exit(1,_);throw _}for(let z=i.length-1;z>=0;--z){let G=i[z];if(Gr(G)){if(_)throw _;if(x)throw Error(x)}else G(x,_,n)}};let h=[],d=!1;n.usage=(x,_)=>x===null?(d=!0,h=[],n):(d=!1,h.push([x,_||""]),n),n.getUsage=()=>h,n.getUsageDisabled=()=>d,n.getPositionalGroupName=()=>t("Positionals:");let D=[];n.example=(x,_)=>{D.push([x,_||""])};let y=[];n.command=function(x,_,V,z,G=!1){V&&(y=y.map(K=>(K[2]=!1,K))),y.push([x,_||"",V,z,G])},n.getCommands=()=>y;let B={};n.describe=function(x,_){Array.isArray(x)?x.forEach(V=>{n.describe(V,_)}):typeof x=="object"?Object.keys(x).forEach(V=>{n.describe(V,x[V])}):B[x]=_},n.getDescriptions=()=>B;let F=[];n.epilog=x=>{F.push(x)};let g,l=!1;function T(){return l||(g=function(){return e.process.stdColumns?Math.min(80,e.process.stdColumns):80}(),l=!0),g}n.wrap=x=>{l=!0,g=x};let L="__yargsString__:";function N(x,_,V){let z=0;return Array.isArray(x)||(x=Object.values(x).map(G=>[G])),x.forEach(G=>{z=Math.max(e.stringWidth(V?`${V} ${$t(G[0])}`:$t(G[0]))+ts(G[0]),z)}),_&&(z=Math.min(z,parseInt((.5*_).toString(),10))),z}let U;function b(x){return s.getOptions().hiddenOptions.indexOf(x)<0||s.parsed.argv[s.getOptions().showHiddenOpt]}function E(x,_){let V=`[${t("default:")} `;if(x===void 0&&!_)return null;if(_)V+=_;else switch(typeof x){case"string":V+=`"${x}"`;break;case"object":V+=JSON.stringify(x);break;default:V+=x}return`${V}]`}n.deferY18nLookup=x=>L+x,n.help=function(){if(U)return U;(function(){let A=s.getDemandedOptions(),H=s.getOptions();(Object.keys(H.alias)||[]).forEach(O=>{H.alias[O].forEach(I=>{B[I]&&n.describe(O,B[I]),I in A&&s.demandOption(O,A[I]),H.boolean.includes(I)&&s.boolean(O),H.count.includes(I)&&s.count(O),H.string.includes(I)&&s.string(O),H.normalize.includes(I)&&s.normalize(O),H.array.includes(I)&&s.array(O),H.number.includes(I)&&s.number(O)})})})();let x=s.customScriptName?s.$0:e.path.basename(s.$0),_=s.getDemandedOptions(),V=s.getDemandedCommands(),z=s.getDeprecatedOptions(),G=s.getGroups(),K=s.getOptions(),Y=[];Y=Y.concat(Object.keys(B)),Y=Y.concat(Object.keys(_)),Y=Y.concat(Object.keys(V)),Y=Y.concat(Object.keys(K.default)),Y=Y.filter(b),Y=Object.keys(Y.reduce((A,H)=>(H!=="_"&&(A[H]=!0),A),{}));let Ne=T(),J=e.cliui({width:Ne,wrap:!!Ne});if(!d){if(h.length)h.forEach(A=>{J.div({text:`${A[0].replace(/\$0/g,x)}`}),A[1]&&J.div({text:`${A[1]}`,padding:[1,0,0,0]})}),J.div();else if(y.length){let A=null;A=V._?`${x} <${t("command")}>
|
|
|
`:`${x} [${t("command")}]
|
|
|
`,J.div(`${A}`)}}if(y.length>1||y.length===1&&!y[0][2]){J.div(t("Commands:"));let A=s.getInternalMethods().getContext(),H=A.commands.length?`${A.commands.join(" ")} `:"";s.getInternalMethods().getParserConfiguration()["sort-commands"]===!0&&(y=y.sort((I,ee)=>I[0].localeCompare(ee[0])));let O=x?`${x} `:"";y.forEach(I=>{let ee=`${O}${H}${I[0].replace(/^\$0 ?/,"")}`;J.span({text:ee,padding:[0,2,0,2],width:N(y,Ne,`${x}${H}`)+4},{text:I[1]});let Z=[];I[2]&&Z.push(`[${t("default")}]`),I[3]&&I[3].length&&Z.push(`[${t("aliases:")} ${I[3].join(", ")}]`),I[4]&&(typeof I[4]=="string"?Z.push(`[${t("deprecated: %s",I[4])}]`):Z.push(`[${t("deprecated")}]`)),Z.length?J.div({text:Z.join(" "),padding:[0,0,0,2],align:"right"}):J.div()}),J.div()}let he=(Object.keys(K.alias)||[]).concat(Object.keys(s.parsed.newAliases)||[]);Y=Y.filter(A=>!s.parsed.newAliases[A]&&he.every(H=>(K.alias[H]||[]).indexOf(A)===-1));let Ae=t("Options:");G[Ae]||(G[Ae]=[]),function(A,H,O,I){let ee=[],Z=null;Object.keys(O).forEach(se=>{ee=ee.concat(O[se])}),A.forEach(se=>{Z=[se].concat(H[se]),Z.some(Qe=>ee.indexOf(Qe)!==-1)||O[I].push(se)})}(Y,K.alias,G,Ae);let xe=A=>/^--/.test($t(A)),X=Object.keys(G).filter(A=>G[A].length>0).map(A=>({groupName:A,normalizedKeys:G[A].filter(b).map(H=>{if(he.includes(H))return H;for(let O,I=0;(O=he[I])!==void 0;I++)if((K.alias[O]||[]).includes(H))return O;return H})})).filter(({normalizedKeys:A})=>A.length>0).map(({groupName:A,normalizedKeys:H})=>{let O=H.reduce((I,ee)=>(I[ee]=[ee].concat(K.alias[ee]||[]).map(Z=>A===n.getPositionalGroupName()?Z:(/^[0-9]$/.test(Z)?K.boolean.includes(ee)?"-":"--":Z.length>1?"--":"-")+Z).sort((Z,se)=>xe(Z)===xe(se)?0:xe(Z)?1:-1).join(", "),I),{});return{groupName:A,normalizedKeys:H,switches:O}});if(X.filter(({groupName:A})=>A!==n.getPositionalGroupName()).some(({normalizedKeys:A,switches:H})=>!A.every(O=>xe(H[O])))&&X.filter(({groupName:A})=>A!==n.getPositionalGroupName()).forEach(({normalizedKeys:A,switches:H})=>{A.forEach(O=>{var I,ee;xe(H[O])&&(H[O]=(I=H[O],ee=4,Wn(I)?{text:I.text,indentation:I.indentation+ee}:{text:I,indentation:ee}))})}),X.forEach(({groupName:A,normalizedKeys:H,switches:O})=>{J.div(A),H.forEach(I=>{let ee=O[I],Z=B[I]||"",se=null;Z.includes(L)&&(Z=t(Z.substring(L.length))),K.boolean.includes(I)&&(se=`[${t("boolean")}]`),K.count.includes(I)&&(se=`[${t("count")}]`),K.string.includes(I)&&(se=`[${t("string")}]`),K.normalize.includes(I)&&(se=`[${t("string")}]`),K.array.includes(I)&&(se=`[${t("array")}]`),K.number.includes(I)&&(se=`[${t("number")}]`);let Qe=[I in z?(Te=z[I],typeof Te=="string"?`[${t("deprecated: %s",Te)}]`:`[${t("deprecated")}]`):null,se,I in _?`[${t("required")}]`:null,K.choices&&K.choices[I]?`[${t("choices:")} ${n.stringifiedValues(K.choices[I])}]`:null,E(K.default[I],K.defaultDescription[I])].filter(Boolean).join(" ");var Te;J.span({text:$t(ee),padding:[0,2,0,2+ts(ee)],width:N(O,Ne)+4},Z),Qe?J.div({text:Qe,padding:[0,0,0,2],align:"right"}):J.div()}),J.div()}),D.length&&(J.div(t("Examples:")),D.forEach(A=>{A[0]=A[0].replace(/\$0/g,x)}),D.forEach(A=>{A[1]===""?J.div({text:A[0],padding:[0,2,0,2]}):J.div({text:A[0],padding:[0,2,0,2],width:N(D,Ne)+4},{text:A[1]})}),J.div()),F.length>0){let A=F.map(H=>H.replace(/\$0/g,x)).join(`
|
|
|
`);J.div(`${A}
|
|
|
`)}return J.toString().replace(/\s*$/,"")},n.cacheHelpMessage=function(){U=this.help()},n.clearCachedHelpMessage=function(){U=void 0},n.hasCachedHelpMessage=function(){return!!U},n.showHelp=x=>{let _=s.getInternalMethods().getLoggerInstance();x||(x="error"),(typeof x=="function"?x:_[x])(n.help())},n.functionDescription=x=>["(",x.name?e.Parser.decamelize(x.name,"-"):t("generated-value"),")"].join(""),n.stringifiedValues=function(x,_){let V="",z=_||", ",G=[].concat(x);return x&&G.length&&G.forEach(K=>{V.length&&(V+=z),V+=JSON.stringify(K)}),V};let R=null;n.version=x=>{R=x},n.showVersion=x=>{let _=s.getInternalMethods().getLoggerInstance();x||(x="error"),(typeof x=="function"?x:_[x])(R)},n.reset=function(x){return r=null,c=!1,h=[],d=!1,F=[],D=[],y=[],B=lt(B,_=>!x[_]),n};let ie=[];return n.freeze=function(){ie.push({failMessage:r,failureOutput:c,usages:h,usageDisabled:d,epilogs:F,examples:D,commands:y,descriptions:B})},n.unfreeze=function(x=!1){let _=ie.pop();_&&(x?(B={..._.descriptions,...B},y=[..._.commands,...y],h=[..._.usages,...h],D=[..._.examples,...D],F=[..._.epilogs,...F]):{failMessage:r,failureOutput:c,usages:h,usageDisabled:d,epilogs:F,examples:D,commands:y,descriptions:B}=_)},n}function Wn(s){return typeof s=="object"}function ts(s){return Wn(s)?s.indentation:0}function $t(s){return Wn(s)?s.text:s}var In=class{constructor(e,t,n,i){var r,o,a;this.yargs=e,this.usage=t,this.command=n,this.shim=i,this.completionKey="get-yargs-completions",this.aliases=null,this.customCompletionFunction=null,this.indexAfterLastReset=0,this.zshShell=(a=((r=this.shim.getEnv("SHELL"))===null||r===void 0?void 0:r.includes("zsh"))||((o=this.shim.getEnv("ZSH_NAME"))===null||o===void 0?void 0:o.includes("zsh")))!==null&&a!==void 0&&a}defaultCompletion(e,t,n,i){let r=this.command.getCommandHandlers();for(let a=0,c=e.length;a<c;++a)if(r[e[a]]&&r[e[a]].builder){let h=r[e[a]].builder;if($n(h)){this.indexAfterLastReset=a+1;let d=this.yargs.getInternalMethods().reset();return h(d,!0),d.argv}}let o=[];this.commandCompletions(o,e,n),this.optionCompletions(o,e,t,n),this.choicesFromOptionsCompletions(o,e,t,n),this.choicesFromPositionalsCompletions(o,e,t,n),i(null,o)}commandCompletions(e,t,n){let i=this.yargs.getInternalMethods().getContext().commands;n.match(/^-/)||i[i.length-1]===n||this.previousArgHasChoices(t)||this.usage.getCommands().forEach(r=>{let o=ct(r[0]).cmd;if(t.indexOf(o)===-1)if(this.zshShell){let a=r[1]||"";e.push(o.replace(/:/g,"\\:")+":"+a)}else e.push(o)})}optionCompletions(e,t,n,i){if((i.match(/^-/)||i===""&&e.length===0)&&!this.previousArgHasChoices(t)){let r=this.yargs.getOptions(),o=this.yargs.getGroups()[this.usage.getPositionalGroupName()]||[];Object.keys(r.key).forEach(a=>{let c=!!r.configuration["boolean-negation"]&&r.boolean.includes(a);o.includes(a)||r.hiddenOptions.includes(a)||this.argsContainKey(t,a,c)||(this.completeOptionKey(a,e,i),c&&r.default[a]&&this.completeOptionKey(`no-${a}`,e,i))})}}choicesFromOptionsCompletions(e,t,n,i){if(this.previousArgHasChoices(t)){let r=this.getPreviousArgChoices(t);r&&r.length>0&&e.push(...r.map(o=>o.replace(/:/g,"\\:")))}}choicesFromPositionalsCompletions(e,t,n,i){if(i===""&&e.length>0&&this.previousArgHasChoices(t))return;let r=this.yargs.getGroups()[this.usage.getPositionalGroupName()]||[],o=Math.max(this.indexAfterLastReset,this.yargs.getInternalMethods().getContext().commands.length+1),a=r[n._.length-o-1];if(!a)return;let c=this.yargs.getOptions().choices[a]||[];for(let h of c)h.startsWith(i)&&e.push(h.replace(/:/g,"\\:"))}getPreviousArgChoices(e){if(e.length<1)return;let t=e[e.length-1],n="";if(!t.startsWith("-")&&e.length>1&&(n=t,t=e[e.length-2]),!t.startsWith("-"))return;let i=t.replace(/^-+/,""),r=this.yargs.getOptions(),o=[i,...this.yargs.getAliases()[i]||[]],a;for(let c of o)if(Object.prototype.hasOwnProperty.call(r.key,c)&&Array.isArray(r.choices[c])){a=r.choices[c];break}return a?a.filter(c=>!n||c.startsWith(n)):void 0}previousArgHasChoices(e){let t=this.getPreviousArgChoices(e);return t!==void 0&&t.length>0}argsContainKey(e,t,n){let i=r=>e.indexOf((/^[^0-9]$/.test(r)?"-":"--")+r)!==-1;if(i(t)||n&&i(`no-${t}`))return!0;if(this.aliases){for(let r of this.aliases[t])if(i(r))return!0}return!1}completeOptionKey(e,t,n){let i=this.usage.getDescriptions(),r=!/^--/.test(n)&&(o=>/^[^0-9]$/.test(o))(e)?"-":"--";if(this.zshShell){let o=i[e]||"";t.push(r+`${e.replace(/:/g,"\\:")}:${o.replace("__yargsString__:","")}`)}else t.push(r+e)}customCompletion(e,t,n,i){if(ve(this.customCompletionFunction,null,this.shim),this.customCompletionFunction.length<3){let r=this.customCompletionFunction(n,t);return ne(r)?r.then(o=>{this.shim.process.nextTick(()=>{i(null,o)})}).catch(o=>{this.shim.process.nextTick(()=>{i(o,void 0)})}):i(null,r)}return function(r){return r.length>3}(this.customCompletionFunction)?this.customCompletionFunction(n,t,(r=i)=>this.defaultCompletion(e,t,n,r),r=>{i(null,r)}):this.customCompletionFunction(n,t,r=>{i(null,r)})}getCompletion(e,t){let n=e.length?e[e.length-1]:"",i=this.yargs.parse(e,!0),r=this.customCompletionFunction?o=>this.customCompletion(e,o,n,t):o=>this.defaultCompletion(e,o,n,t);return ne(i)?i.then(r):r(i)}generateCompletionScript(e,t){let n=this.zshShell?`#compdef {{app_name}}
|
|
|
###-begin-{{app_name}}-completions-###
|
|
|
#
|
|
|
# yargs command completion script
|
|
|
#
|
|
|
# Installation: {{app_path}} {{completion_command}} >> ~/.zshrc
|
|
|
# or {{app_path}} {{completion_command}} >> ~/.zprofile on OSX.
|
|
|
#
|
|
|
_{{app_name}}_yargs_completions()
|
|
|
{
|
|
|
local reply
|
|
|
local si=$IFS
|
|
|
IFS=$'
|
|
|
' reply=($(COMP_CWORD="$((CURRENT-1))" COMP_LINE="$BUFFER" COMP_POINT="$CURSOR" {{app_path}} --get-yargs-completions "\${words[@]}"))
|
|
|
IFS=$si
|
|
|
_describe 'values' reply
|
|
|
}
|
|
|
compdef _{{app_name}}_yargs_completions {{app_name}}
|
|
|
###-end-{{app_name}}-completions-###
|
|
|
`:`###-begin-{{app_name}}-completions-###
|
|
|
#
|
|
|
# yargs command completion script
|
|
|
#
|
|
|
# Installation: {{app_path}} {{completion_command}} >> ~/.bashrc
|
|
|
# or {{app_path}} {{completion_command}} >> ~/.bash_profile on OSX.
|
|
|
#
|
|
|
_{{app_name}}_yargs_completions()
|
|
|
{
|
|
|
local cur_word args type_list
|
|
|
|
|
|
cur_word="\${COMP_WORDS[COMP_CWORD]}"
|
|
|
args=("\${COMP_WORDS[@]}")
|
|
|
|
|
|
# ask yargs to generate completions.
|
|
|
type_list=$({{app_path}} --get-yargs-completions "\${args[@]}")
|
|
|
|
|
|
COMPREPLY=( $(compgen -W "\${type_list}" -- \${cur_word}) )
|
|
|
|
|
|
# if no match was found, fall back to filename completion
|
|
|
if [ \${#COMPREPLY[@]} -eq 0 ]; then
|
|
|
COMPREPLY=()
|
|
|
fi
|
|
|
|
|
|
return 0
|
|
|
}
|
|
|
complete -o bashdefault -o default -F _{{app_name}}_yargs_completions {{app_name}}
|
|
|
###-end-{{app_name}}-completions-###
|
|
|
`,i=this.shim.path.basename(e);return e.match(/\.js$/)&&(e=`./${e}`),n=n.replace(/{{app_name}}/g,i),n=n.replace(/{{completion_command}}/g,t),n.replace(/{{app_path}}/g,e)}registerFunction(e){this.customCompletionFunction=e}setParsed(e){this.aliases=e.aliases}};function Xr(s,e){if(s.length===0)return e.length;if(e.length===0)return s.length;let t=[],n,i;for(n=0;n<=e.length;n++)t[n]=[n];for(i=0;i<=s.length;i++)t[0][i]=i;for(n=1;n<=e.length;n++)for(i=1;i<=s.length;i++)e.charAt(n-1)===s.charAt(i-1)?t[n][i]=t[n-1][i-1]:n>1&&i>1&&e.charAt(n-2)===s.charAt(i-1)&&e.charAt(n-1)===s.charAt(i-2)?t[n][i]=t[n-2][i-2]+1:t[n][i]=Math.min(t[n-1][i-1]+1,Math.min(t[n][i-1]+1,t[n-1][i]+1));return t[e.length][s.length]}var ns=["$0","--","_"],te,We,Et,ye,pe,It,$e,Ve,Lt,Ce,Wt,Ee,Se,De,Fe,Vt,ot,le,M,qt,Ht,me,qe,at,He,Ie,Rt,W,Re,Ue,ze,q,je,Q,is=Symbol("copyDoubleDash"),ss=Symbol("copyDoubleDash"),En=Symbol("deleteFromParserHintObject"),rs=Symbol("emitWarning"),os=Symbol("freeze"),as=Symbol("getDollarZero"),Je=Symbol("getParserConfiguration"),Fn=Symbol("guessLocale"),us=Symbol("guessVersion"),ls=Symbol("parsePositionalNumbers"),xn=Symbol("pkgUp"),Le=Symbol("populateParserHintArray"),ut=Symbol("populateParserHintSingleValueDictionary"),wn=Symbol("populateParserHintArrayDictionary"),_n=Symbol("populateParserHintDictionary"),On=Symbol("sanitizeKey"),vn=Symbol("setKey"),An=Symbol("unfreeze"),cs=Symbol("validateAsync"),fs=Symbol("getCommandInstance"),hs=Symbol("getContext"),ds=Symbol("getHasOutput"),ps=Symbol("getLoggerInstance"),Ds=Symbol("getParseContext"),ms=Symbol("getUsageInstance"),gs=Symbol("getValidationInstance"),Ut=Symbol("hasParseCallback"),bs=Symbol("isGlobalContext"),Ge=Symbol("postProcess"),ys=Symbol("rebase"),Tn=Symbol("reset"),Ft=Symbol("runYargsParserAndExecuteCommands"),kn=Symbol("runValidation"),Cs=Symbol("setHasOutput"),Ke=Symbol("kTrackManuallySetKeys"),Ln=class{constructor(e=[],t,n,i){this.customScriptName=!1,this.parsed=!1,te.set(this,void 0),We.set(this,void 0),Et.set(this,{commands:[],fullCommands:[]}),ye.set(this,null),pe.set(this,null),It.set(this,"show-hidden"),$e.set(this,null),Ve.set(this,!0),Lt.set(this,{}),Ce.set(this,!0),Wt.set(this,[]),Ee.set(this,void 0),Se.set(this,{}),De.set(this,!1),Fe.set(this,null),Vt.set(this,!0),ot.set(this,void 0),le.set(this,""),M.set(this,void 0),qt.set(this,void 0),Ht.set(this,{}),me.set(this,null),qe.set(this,null),at.set(this,{}),He.set(this,{}),Ie.set(this,void 0),Rt.set(this,!1),W.set(this,void 0),Re.set(this,!1),Ue.set(this,!1),ze.set(this,!1),q.set(this,void 0),je.set(this,null),Q.set(this,void 0),k(this,W,i,"f"),k(this,Ie,e,"f"),k(this,We,t,"f"),k(this,qt,n,"f"),k(this,Ee,new Mn(this),"f"),this.$0=this[as](),this[Tn](),k(this,te,u(this,te,"f"),"f"),k(this,q,u(this,q,"f"),"f"),k(this,Q,u(this,Q,"f"),"f"),k(this,M,u(this,M,"f"),"f"),u(this,M,"f").showHiddenOpt=u(this,It,"f"),k(this,ot,this[ss](),"f")}addHelpOpt(e,t){return S("[string|boolean] [string]",[e,t],arguments.length),u(this,Fe,"f")&&(this[En](u(this,Fe,"f")),k(this,Fe,null,"f")),e===!1&&t===void 0||(k(this,Fe,typeof e=="string"?e:"help","f"),this.boolean(u(this,Fe,"f")),this.describe(u(this,Fe,"f"),t||u(this,q,"f").deferY18nLookup("Show help"))),this}help(e,t){return this.addHelpOpt(e,t)}addShowHiddenOpt(e,t){if(S("[string|boolean] [string]",[e,t],arguments.length),e===!1&&t===void 0)return this;let n=typeof e=="string"?e:u(this,It,"f");return this.boolean(n),this.describe(n,t||u(this,q,"f").deferY18nLookup("Show hidden options")),u(this,M,"f").showHiddenOpt=n,this}showHidden(e,t){return this.addShowHiddenOpt(e,t)}alias(e,t){return S("<object|string|array> [string|array]",[e,t],arguments.length),this[wn](this.alias.bind(this),"alias",e,t),this}array(e){return S("<array|string>",[e],arguments.length),this[Le]("array",e),this[Ke](e),this}boolean(e){return S("<array|string>",[e],arguments.length),this[Le]("boolean",e),this[Ke](e),this}check(e,t){return S("<function> [boolean]",[e,t],arguments.length),this.middleware((n,i)=>_t(()=>e(n,i.getOptions()),r=>(r?(typeof r=="string"||r instanceof Error)&&u(this,q,"f").fail(r.toString(),r):u(this,q,"f").fail(u(this,W,"f").y18n.__("Argument check failed: %s",e.toString())),n),r=>(u(this,q,"f").fail(r.message?r.message:r.toString(),r),n)),!1,t),this}choices(e,t){return S("<object|string|array> [string|array]",[e,t],arguments.length),this[wn](this.choices.bind(this),"choices",e,t),this}coerce(e,t){if(S("<object|string|array> [function]",[e,t],arguments.length),Array.isArray(e)){if(!t)throw new re("coerce callback must be provided");for(let n of e)this.coerce(n,t);return this}if(typeof e=="object"){for(let n of Object.keys(e))this.coerce(n,e[n]);return this}if(!t)throw new re("coerce callback must be provided");return u(this,M,"f").key[e]=!0,u(this,Ee,"f").addCoerceMiddleware((n,i)=>{let r;return Object.prototype.hasOwnProperty.call(n,e)?_t(()=>(r=i.getAliases(),t(n[e])),o=>{n[e]=o;let a=i.getInternalMethods().getParserConfiguration()["strip-aliased"];if(r[e]&&a!==!0)for(let c of r[e])n[c]=o;return n},o=>{throw new re(o.message)}):n},e),this}conflicts(e,t){return S("<string|object> [string|array]",[e,t],arguments.length),u(this,Q,"f").conflicts(e,t),this}config(e="config",t,n){return S("[object|string] [string|function] [function]",[e,t,n],arguments.length),typeof e!="object"||Array.isArray(e)?(typeof t=="function"&&(n=t,t=void 0),this.describe(e,t||u(this,q,"f").deferY18nLookup("Path to JSON config file")),(Array.isArray(e)?e:[e]).forEach(i=>{u(this,M,"f").config[i]=n||!0}),this):(e=Jt(e,u(this,We,"f"),this[Je]()["deep-merge-config"]||!1,u(this,W,"f")),u(this,M,"f").configObjects=(u(this,M,"f").configObjects||[]).concat(e),this)}completion(e,t,n){return S("[string] [string|boolean|function] [function]",[e,t,n],arguments.length),typeof t=="function"&&(n=t,t=void 0),k(this,pe,e||u(this,pe,"f")||"completion","f"),t||t===!1||(t="generate completion script"),this.command(u(this,pe,"f"),t),n&&u(this,ye,"f").registerFunction(n),this}command(e,t,n,i,r,o){return S("<string|array|object> [string|boolean] [function|object] [function] [array] [boolean|string]",[e,t,n,i,r,o],arguments.length),u(this,te,"f").addHandler(e,t,n,i,r,o),this}commands(e,t,n,i,r,o){return this.command(e,t,n,i,r,o)}commandDir(e,t){S("<string> [object]",[e,t],arguments.length);let n=u(this,qt,"f")||u(this,W,"f").require;return u(this,te,"f").addDirectory(e,n,u(this,W,"f").getCallerFile(),t),this}count(e){return S("<array|string>",[e],arguments.length),this[Le]("count",e),this[Ke](e),this}default(e,t,n){return S("<object|string|array> [*] [string]",[e,t,n],arguments.length),n&&(Yi(e,u(this,W,"f")),u(this,M,"f").defaultDescription[e]=n),typeof t=="function"&&(Yi(e,u(this,W,"f")),u(this,M,"f").defaultDescription[e]||(u(this,M,"f").defaultDescription[e]=u(this,q,"f").functionDescription(t)),t=t.call()),this[ut](this.default.bind(this),"default",e,t),this}defaults(e,t,n){return this.default(e,t,n)}demandCommand(e=1,t,n,i){return S("[number] [number|string] [string|null|undefined] [string|null|undefined]",[e,t,n,i],arguments.length),typeof t!="number"&&(n=t,t=1/0),this.global("_",!1),u(this,M,"f").demandedCommands._={min:e,max:t,minMsg:n,maxMsg:i},this}demand(e,t,n){return Array.isArray(t)?(t.forEach(i=>{ve(n,!0,u(this,W,"f")),this.demandOption(i,n)}),t=1/0):typeof t!="number"&&(n=t,t=1/0),typeof e=="number"?(ve(n,!0,u(this,W,"f")),this.demandCommand(e,t,n,n)):Array.isArray(e)?e.forEach(i=>{ve(n,!0,u(this,W,"f")),this.demandOption(i,n)}):typeof n=="string"?this.demandOption(e,n):n!==!0&&n!==void 0||this.demandOption(e),this}demandOption(e,t){return S("<object|string|array> [string]",[e,t],arguments.length),this[ut](this.demandOption.bind(this),"demandedOptions",e,t),this}deprecateOption(e,t){return S("<string> [string|boolean]",[e,t],arguments.length),u(this,M,"f").deprecatedOptions[e]=t,this}describe(e,t){return S("<object|string|array> [string]",[e,t],arguments.length),this[vn](e,!0),u(this,q,"f").describe(e,t),this}detectLocale(e){return S("<boolean>",[e],arguments.length),k(this,Ve,e,"f"),this}env(e){return S("[string|boolean]",[e],arguments.length),e===!1?delete u(this,M,"f").envPrefix:u(this,M,"f").envPrefix=e||"",this}epilogue(e){return S("<string>",[e],arguments.length),u(this,q,"f").epilog(e),this}epilog(e){return this.epilogue(e)}example(e,t){return S("<string|array> [string]",[e,t],arguments.length),Array.isArray(e)?e.forEach(n=>this.example(...n)):u(this,q,"f").example(e,t),this}exit(e,t){k(this,De,!0,"f"),k(this,$e,t,"f"),u(this,Ce,"f")&&u(this,W,"f").process.exit(e)}exitProcess(e=!0){return S("[boolean]",[e],arguments.length),k(this,Ce,e,"f"),this}fail(e){if(S("<function|boolean>",[e],arguments.length),typeof e=="boolean"&&e!==!1)throw new re("Invalid first argument. Expected function or boolean 'false'");return u(this,q,"f").failFn(e),this}getAliases(){return this.parsed?this.parsed.aliases:{}}async getCompletion(e,t){return S("<array> [function]",[e,t],arguments.length),t?u(this,ye,"f").getCompletion(e,t):new Promise((n,i)=>{u(this,ye,"f").getCompletion(e,(r,o)=>{r?i(r):n(o)})})}getDemandedOptions(){return S([],0),u(this,M,"f").demandedOptions}getDemandedCommands(){return S([],0),u(this,M,"f").demandedCommands}getDeprecatedOptions(){return S([],0),u(this,M,"f").deprecatedOptions}getDetectLocale(){return u(this,Ve,"f")}getExitProcess(){return u(this,Ce,"f")}getGroups(){return Object.assign({},u(this,Se,"f"),u(this,He,"f"))}getHelp(){if(k(this,De,!0,"f"),!u(this,q,"f").hasCachedHelpMessage()){if(!this.parsed){let t=this[Ft](u(this,Ie,"f"),void 0,void 0,0,!0);if(ne(t))return t.then(()=>u(this,q,"f").help())}let e=u(this,te,"f").runDefaultBuilderOn(this);if(ne(e))return e.then(()=>u(this,q,"f").help())}return Promise.resolve(u(this,q,"f").help())}getOptions(){return u(this,M,"f")}getStrict(){return u(this,Re,"f")}getStrictCommands(){return u(this,Ue,"f")}getStrictOptions(){return u(this,ze,"f")}global(e,t){return S("<string|array> [boolean]",[e,t],arguments.length),e=[].concat(e),t!==!1?u(this,M,"f").local=u(this,M,"f").local.filter(n=>e.indexOf(n)===-1):e.forEach(n=>{u(this,M,"f").local.includes(n)||u(this,M,"f").local.push(n)}),this}group(e,t){S("<string|array> <string>",[e,t],arguments.length);let n=u(this,He,"f")[t]||u(this,Se,"f")[t];u(this,He,"f")[t]&&delete u(this,He,"f")[t];let i={};return u(this,Se,"f")[t]=(n||[]).concat(e).filter(r=>!i[r]&&(i[r]=!0)),this}hide(e){return S("<string>",[e],arguments.length),u(this,M,"f").hiddenOptions.push(e),this}implies(e,t){return S("<string|object> [number|string|array]",[e,t],arguments.length),u(this,Q,"f").implies(e,t),this}locale(e){return S("[string]",[e],arguments.length),e===void 0?(this[Fn](),u(this,W,"f").y18n.getLocale()):(k(this,Ve,!1,"f"),u(this,W,"f").y18n.setLocale(e),this)}middleware(e,t,n){return u(this,Ee,"f").addMiddleware(e,!!t,n)}nargs(e,t){return S("<string|object|array> [number]",[e,t],arguments.length),this[ut](this.nargs.bind(this),"narg",e,t),this}normalize(e){return S("<array|string>",[e],arguments.length),this[Le]("normalize",e),this}number(e){return S("<array|string>",[e],arguments.length),this[Le]("number",e),this[Ke](e),this}option(e,t){if(S("<string|object> [object]",[e,t],arguments.length),typeof e=="object")Object.keys(e).forEach(n=>{this.options(n,e[n])});else{typeof t!="object"&&(t={}),this[Ke](e),!u(this,je,"f")||e!=="version"&&t?.alias!=="version"||this[rs](['"version" is a reserved word.',"Please do one of the following:",'- Disable version with `yargs.version(false)` if using "version" as an option',"- Use the built-in `yargs.version` method instead (if applicable)","- Use a different option key","https://yargs.js.org/docs/#api-reference-version"].join(`
|
|
|
`),void 0,"versionWarning"),u(this,M,"f").key[e]=!0,t.alias&&this.alias(e,t.alias);let n=t.deprecate||t.deprecated;n&&this.deprecateOption(e,n);let i=t.demand||t.required||t.require;i&&this.demand(e,i),t.demandOption&&this.demandOption(e,typeof t.demandOption=="string"?t.demandOption:void 0),t.conflicts&&this.conflicts(e,t.conflicts),"default"in t&&this.default(e,t.default),t.implies!==void 0&&this.implies(e,t.implies),t.nargs!==void 0&&this.nargs(e,t.nargs),t.config&&this.config(e,t.configParser),t.normalize&&this.normalize(e),t.choices&&this.choices(e,t.choices),t.coerce&&this.coerce(e,t.coerce),t.group&&this.group(e,t.group),(t.boolean||t.type==="boolean")&&(this.boolean(e),t.alias&&this.boolean(t.alias)),(t.array||t.type==="array")&&(this.array(e),t.alias&&this.array(t.alias)),(t.number||t.type==="number")&&(this.number(e),t.alias&&this.number(t.alias)),(t.string||t.type==="string")&&(this.string(e),t.alias&&this.string(t.alias)),(t.count||t.type==="count")&&this.count(e),typeof t.global=="boolean"&&this.global(e,t.global),t.defaultDescription&&(u(this,M,"f").defaultDescription[e]=t.defaultDescription),t.skipValidation&&this.skipValidation(e);let r=t.describe||t.description||t.desc;this.describe(e,r),t.hidden&&this.hide(e),t.requiresArg&&this.requiresArg(e)}return this}options(e,t){return this.option(e,t)}parse(e,t,n){S("[string|array] [function|boolean|object] [function]",[e,t,n],arguments.length),this[os](),e===void 0&&(e=u(this,Ie,"f")),typeof t=="object"&&(k(this,qe,t,"f"),t=n),typeof t=="function"&&(k(this,me,t,"f"),t=!1),t||k(this,Ie,e,"f"),u(this,me,"f")&&k(this,Ce,!1,"f");let i=this[Ft](e,!!t),r=this.parsed;return u(this,ye,"f").setParsed(this.parsed),ne(i)?i.then(o=>(u(this,me,"f")&&u(this,me,"f").call(this,u(this,$e,"f"),o,u(this,le,"f")),o)).catch(o=>{throw u(this,me,"f")&&u(this,me,"f")(o,this.parsed.argv,u(this,le,"f")),o}).finally(()=>{this[An](),this.parsed=r}):(u(this,me,"f")&&u(this,me,"f").call(this,u(this,$e,"f"),i,u(this,le,"f")),this[An](),this.parsed=r,i)}parseAsync(e,t,n){let i=this.parse(e,t,n);return ne(i)?i:Promise.resolve(i)}parseSync(e,t,n){let i=this.parse(e,t,n);if(ne(i))throw new re(".parseSync() must not be used with asynchronous builders, handlers, or middleware");return i}parserConfiguration(e){return S("<object>",[e],arguments.length),k(this,Ht,e,"f"),this}pkgConf(e,t){S("<string> [string]",[e,t],arguments.length);let n=null,i=this[xn](t||u(this,We,"f"));return i[e]&&typeof i[e]=="object"&&(n=Jt(i[e],t||u(this,We,"f"),this[Je]()["deep-merge-config"]||!1,u(this,W,"f")),u(this,M,"f").configObjects=(u(this,M,"f").configObjects||[]).concat(n)),this}positional(e,t){S("<string> <object>",[e,t],arguments.length);let n=["default","defaultDescription","implies","normalize","choices","conflicts","coerce","type","describe","desc","description","alias"];t=lt(t,(o,a)=>!(o==="type"&&!["string","number","boolean"].includes(a))&&n.includes(o));let i=u(this,Et,"f").fullCommands[u(this,Et,"f").fullCommands.length-1],r=i?u(this,te,"f").cmdToParseOptions(i):{array:[],alias:{},default:{},demand:{}};return zt(r).forEach(o=>{let a=r[o];Array.isArray(a)?a.indexOf(e)!==-1&&(t[o]=!0):a[e]&&!(o in t)&&(t[o]=a[e])}),this.group(e,u(this,q,"f").getPositionalGroupName()),this.option(e,t)}recommendCommands(e=!0){return S("[boolean]",[e],arguments.length),k(this,Rt,e,"f"),this}required(e,t,n){return this.demand(e,t,n)}require(e,t,n){return this.demand(e,t,n)}requiresArg(e){return S("<array|string|object> [number]",[e],arguments.length),typeof e=="string"&&u(this,M,"f").narg[e]||this[ut](this.requiresArg.bind(this),"narg",e,NaN),this}showCompletionScript(e,t){return S("[string] [string]",[e,t],arguments.length),e=e||this.$0,u(this,ot,"f").log(u(this,ye,"f").generateCompletionScript(e,t||u(this,pe,"f")||"completion")),this}showHelp(e){if(S("[string|function]",[e],arguments.length),k(this,De,!0,"f"),!u(this,q,"f").hasCachedHelpMessage()){if(!this.parsed){let n=this[Ft](u(this,Ie,"f"),void 0,void 0,0,!0);if(ne(n))return n.then(()=>{u(this,q,"f").showHelp(e)}),this}let t=u(this,te,"f").runDefaultBuilderOn(this);if(ne(t))return t.then(()=>{u(this,q,"f").showHelp(e)}),this}return u(this,q,"f").showHelp(e),this}scriptName(e){return this.customScriptName=!0,this.$0=e,this}showHelpOnFail(e,t){return S("[boolean|string] [string]",[e,t],arguments.length),u(this,q,"f").showHelpOnFail(e,t),this}showVersion(e){return S("[string|function]",[e],arguments.length),u(this,q,"f").showVersion(e),this}skipValidation(e){return S("<array|string>",[e],arguments.length),this[Le]("skipValidation",e),this}strict(e){return S("[boolean]",[e],arguments.length),k(this,Re,e!==!1,"f"),this}strictCommands(e){return S("[boolean]",[e],arguments.length),k(this,Ue,e!==!1,"f"),this}strictOptions(e){return S("[boolean]",[e],arguments.length),k(this,ze,e!==!1,"f"),this}string(e){return S("<array|string>",[e],arguments.length),this[Le]("string",e),this[Ke](e),this}terminalWidth(){return S([],0),u(this,W,"f").process.stdColumns}updateLocale(e){return this.updateStrings(e)}updateStrings(e){return S("<object>",[e],arguments.length),k(this,Ve,!1,"f"),u(this,W,"f").y18n.updateLocale(e),this}usage(e,t,n,i){if(S("<string|null|undefined> [string|boolean] [function|object] [function]",[e,t,n,i],arguments.length),t!==void 0){if(ve(e,null,u(this,W,"f")),(e||"").match(/^\$0( |$)/))return this.command(e,t,n,i);throw new re(".usage() description must start with $0 if being used as alias for .command()")}return u(this,q,"f").usage(e),this}version(e,t,n){let i="version";if(S("[boolean|string] [string] [string]",[e,t,n],arguments.length),u(this,je,"f")&&(this[En](u(this,je,"f")),u(this,q,"f").version(void 0),k(this,je,null,"f")),arguments.length===0)n=this[us](),e=i;else if(arguments.length===1){if(e===!1)return this;n=e,e=i}else arguments.length===2&&(n=t,t=void 0);return k(this,je,typeof e=="string"?e:i,"f"),t=t||u(this,q,"f").deferY18nLookup("Show version number"),u(this,q,"f").version(n||void 0),this.boolean(u(this,je,"f")),this.describe(u(this,je,"f"),t),this}wrap(e){return S("<number|null|undefined>",[e],arguments.length),u(this,q,"f").wrap(e),this}[(te=new WeakMap,We=new WeakMap,Et=new WeakMap,ye=new WeakMap,pe=new WeakMap,It=new WeakMap,$e=new WeakMap,Ve=new WeakMap,Lt=new WeakMap,Ce=new WeakMap,Wt=new WeakMap,Ee=new WeakMap,Se=new WeakMap,De=new WeakMap,Fe=new WeakMap,Vt=new WeakMap,ot=new WeakMap,le=new WeakMap,M=new WeakMap,qt=new WeakMap,Ht=new WeakMap,me=new WeakMap,qe=new WeakMap,at=new WeakMap,He=new WeakMap,Ie=new WeakMap,Rt=new WeakMap,W=new WeakMap,Re=new WeakMap,Ue=new WeakMap,ze=new WeakMap,q=new WeakMap,je=new WeakMap,Q=new WeakMap,is)](e){if(!e._||!e["--"])return e;e._.push.apply(e._,e["--"]);try{delete e["--"]}catch{}return e}[ss](){return{log:(...e)=>{this[Ut]()||console.log(...e),k(this,De,!0,"f"),u(this,le,"f").length&&k(this,le,u(this,le,"f")+`
|
|
|
`,"f"),k(this,le,u(this,le,"f")+e.join(" "),"f")},error:(...e)=>{this[Ut]()||console.error(...e),k(this,De,!0,"f"),u(this,le,"f").length&&k(this,le,u(this,le,"f")+`
|
|
|
`,"f"),k(this,le,u(this,le,"f")+e.join(" "),"f")}}}[En](e){zt(u(this,M,"f")).forEach(t=>{if(t==="configObjects")return;let n=u(this,M,"f")[t];Array.isArray(n)?n.includes(e)&&n.splice(n.indexOf(e),1):typeof n=="object"&&delete n[e]}),delete u(this,q,"f").getDescriptions()[e]}[rs](e,t,n){u(this,Lt,"f")[n]||(u(this,W,"f").process.emitWarning(e,t),u(this,Lt,"f")[n]=!0)}[os](){u(this,Wt,"f").push({options:u(this,M,"f"),configObjects:u(this,M,"f").configObjects.slice(0),exitProcess:u(this,Ce,"f"),groups:u(this,Se,"f"),strict:u(this,Re,"f"),strictCommands:u(this,Ue,"f"),strictOptions:u(this,ze,"f"),completionCommand:u(this,pe,"f"),output:u(this,le,"f"),exitError:u(this,$e,"f"),hasOutput:u(this,De,"f"),parsed:this.parsed,parseFn:u(this,me,"f"),parseContext:u(this,qe,"f")}),u(this,q,"f").freeze(),u(this,Q,"f").freeze(),u(this,te,"f").freeze(),u(this,Ee,"f").freeze()}[as](){let e,t="";return e=/\b(node|iojs|electron)(\.exe)?$/.test(u(this,W,"f").process.argv()[0])?u(this,W,"f").process.argv().slice(1,2):u(this,W,"f").process.argv().slice(0,1),t=e.map(n=>{let i=this[ys](u(this,We,"f"),n);return n.match(/^(\/|([a-zA-Z]:)?\\)/)&&i.length<n.length?i:n}).join(" ").trim(),u(this,W,"f").getEnv("_")&&u(this,W,"f").getProcessArgvBin()===u(this,W,"f").getEnv("_")&&(t=u(this,W,"f").getEnv("_").replace(`${u(this,W,"f").path.dirname(u(this,W,"f").process.execPath())}/`,"")),t}[Je](){return u(this,Ht,"f")}[Fn](){if(!u(this,Ve,"f"))return;let e=u(this,W,"f").getEnv("LC_ALL")||u(this,W,"f").getEnv("LC_MESSAGES")||u(this,W,"f").getEnv("LANG")||u(this,W,"f").getEnv("LANGUAGE")||"en_US";this.locale(e.replace(/[.:].*/,""))}[us](){return this[xn]().version||"unknown"}[ls](e){let t=e["--"]?e["--"]:e._;for(let n,i=0;(n=t[i])!==void 0;i++)u(this,W,"f").Parser.looksLikeNumber(n)&&Number.isSafeInteger(Math.floor(parseFloat(`${n}`)))&&(t[i]=Number(n));return e}[xn](e){let t=e||"*";if(u(this,at,"f")[t])return u(this,at,"f")[t];let n={};try{let i=e||u(this,W,"f").mainFilename;!e&&u(this,W,"f").path.extname(i)&&(i=u(this,W,"f").path.dirname(i));let r=u(this,W,"f").findUp(i,(o,a)=>a.includes("package.json")?"package.json":void 0);ve(r,void 0,u(this,W,"f")),n=JSON.parse(u(this,W,"f").readFileSync(r,"utf8"))}catch{}return u(this,at,"f")[t]=n||{},u(this,at,"f")[t]}[Le](e,t){(t=[].concat(t)).forEach(n=>{n=this[On](n),u(this,M,"f")[e].push(n)})}[ut](e,t,n,i){this[_n](e,t,n,i,(r,o,a)=>{u(this,M,"f")[r][o]=a})}[wn](e,t,n,i){this[_n](e,t,n,i,(r,o,a)=>{u(this,M,"f")[r][o]=(u(this,M,"f")[r][o]||[]).concat(a)})}[_n](e,t,n,i,r){if(Array.isArray(n))n.forEach(o=>{e(o,i)});else if((o=>typeof o=="object")(n))for(let o of zt(n))e(o,n[o]);else r(t,this[On](n),i)}[On](e){return e==="__proto__"?"___proto___":e}[vn](e,t){return this[ut](this[vn].bind(this),"key",e,t),this}[An](){var e,t,n,i,r,o,a,c,h,d,D,y;let B=u(this,Wt,"f").pop(),F;ve(B,void 0,u(this,W,"f")),e=this,t=this,n=this,i=this,r=this,o=this,a=this,c=this,h=this,d=this,D=this,y=this,{options:{set value(g){k(e,M,g,"f")}}.value,configObjects:F,exitProcess:{set value(g){k(t,Ce,g,"f")}}.value,groups:{set value(g){k(n,Se,g,"f")}}.value,output:{set value(g){k(i,le,g,"f")}}.value,exitError:{set value(g){k(r,$e,g,"f")}}.value,hasOutput:{set value(g){k(o,De,g,"f")}}.value,parsed:this.parsed,strict:{set value(g){k(a,Re,g,"f")}}.value,strictCommands:{set value(g){k(c,Ue,g,"f")}}.value,strictOptions:{set value(g){k(h,ze,g,"f")}}.value,completionCommand:{set value(g){k(d,pe,g,"f")}}.value,parseFn:{set value(g){k(D,me,g,"f")}}.value,parseContext:{set value(g){k(y,qe,g,"f")}}.value}=B,u(this,M,"f").configObjects=F,u(this,q,"f").unfreeze(),u(this,Q,"f").unfreeze(),u(this,te,"f").unfreeze(),u(this,Ee,"f").unfreeze()}[cs](e,t){return _t(t,n=>(e(n),n))}getInternalMethods(){return{getCommandInstance:this[fs].bind(this),getContext:this[hs].bind(this),getHasOutput:this[ds].bind(this),getLoggerInstance:this[ps].bind(this),getParseContext:this[Ds].bind(this),getParserConfiguration:this[Je].bind(this),getUsageInstance:this[ms].bind(this),getValidationInstance:this[gs].bind(this),hasParseCallback:this[Ut].bind(this),isGlobalContext:this[bs].bind(this),postProcess:this[Ge].bind(this),reset:this[Tn].bind(this),runValidation:this[kn].bind(this),runYargsParserAndExecuteCommands:this[Ft].bind(this),setHasOutput:this[Cs].bind(this)}}[fs](){return u(this,te,"f")}[hs](){return u(this,Et,"f")}[ds](){return u(this,De,"f")}[ps](){return u(this,ot,"f")}[Ds](){return u(this,qe,"f")||{}}[ms](){return u(this,q,"f")}[gs](){return u(this,Q,"f")}[Ut](){return!!u(this,me,"f")}[bs](){return u(this,Vt,"f")}[Ge](e,t,n,i){return n||ne(e)?e:(t||(e=this[is](e)),(this[Je]()["parse-positional-numbers"]||this[Je]()["parse-positional-numbers"]===void 0)&&(e=this[ls](e)),i&&(e=wt(e,this,u(this,Ee,"f").getMiddleware(),!1)),e)}[Tn](e={}){k(this,M,u(this,M,"f")||{},"f");let t={};t.local=u(this,M,"f").local||[],t.configObjects=u(this,M,"f").configObjects||[];let n={};return t.local.forEach(i=>{n[i]=!0,(e[i]||[]).forEach(r=>{n[r]=!0})}),Object.assign(u(this,He,"f"),Object.keys(u(this,Se,"f")).reduce((i,r)=>{let o=u(this,Se,"f")[r].filter(a=>!(a in n));return o.length>0&&(i[r]=o),i},{})),k(this,Se,{},"f"),["array","boolean","string","skipValidation","count","normalize","number","hiddenOptions"].forEach(i=>{t[i]=(u(this,M,"f")[i]||[]).filter(r=>!n[r])}),["narg","key","alias","default","defaultDescription","config","choices","demandedOptions","demandedCommands","deprecatedOptions"].forEach(i=>{t[i]=lt(u(this,M,"f")[i],r=>!n[r])}),t.envPrefix=u(this,M,"f").envPrefix,k(this,M,t,"f"),k(this,q,u(this,q,"f")?u(this,q,"f").reset(n):Kr(this,u(this,W,"f")),"f"),k(this,Q,u(this,Q,"f")?u(this,Q,"f").reset(n):function(i,r,o){let a=o.y18n.__,c=o.y18n.__n,h={nonOptionCount:function(F){let g=i.getDemandedCommands(),l=F._.length+(F["--"]?F["--"].length:0)-i.getInternalMethods().getContext().commands.length;g._&&(l<g._.min||l>g._.max)&&(l<g._.min?g._.minMsg!==void 0?r.fail(g._.minMsg?g._.minMsg.replace(/\$0/g,l.toString()).replace(/\$1/,g._.min.toString()):null):r.fail(c("Not enough non-option arguments: got %s, need at least %s","Not enough non-option arguments: got %s, need at least %s",l,l.toString(),g._.min.toString())):l>g._.max&&(g._.maxMsg!==void 0?r.fail(g._.maxMsg?g._.maxMsg.replace(/\$0/g,l.toString()).replace(/\$1/,g._.max.toString()):null):r.fail(c("Too many non-option arguments: got %s, maximum of %s","Too many non-option arguments: got %s, maximum of %s",l,l.toString(),g._.max.toString()))))},positionalCount:function(F,g){g<F&&r.fail(c("Not enough non-option arguments: got %s, need at least %s","Not enough non-option arguments: got %s, need at least %s",g,g+"",F+""))},requiredArguments:function(F,g){let l=null;for(let T of Object.keys(g))Object.prototype.hasOwnProperty.call(F,T)&&F[T]!==void 0||(l=l||{},l[T]=g[T]);if(l){let T=[];for(let N of Object.keys(l)){let U=l[N];U&&T.indexOf(U)<0&&T.push(U)}let L=T.length?`
|
|
|
${T.join(`
|
|
|
`)}`:"";r.fail(c("Missing required argument: %s","Missing required arguments: %s",Object.keys(l).length,Object.keys(l).join(", ")+L))}},unknownArguments:function(F,g,l,T,L=!0){var N;let U=i.getInternalMethods().getCommandInstance().getCommands(),b=[],E=i.getInternalMethods().getContext();if(Object.keys(F).forEach(R=>{ns.includes(R)||Object.prototype.hasOwnProperty.call(l,R)||Object.prototype.hasOwnProperty.call(i.getInternalMethods().getParseContext(),R)||h.isValidAndSomeAliasIsNotNew(R,g)||b.push(R)}),L&&(E.commands.length>0||U.length>0||T)&&F._.slice(E.commands.length).forEach(R=>{U.includes(""+R)||b.push(""+R)}),L){let R=((N=i.getDemandedCommands()._)===null||N===void 0?void 0:N.max)||0,ie=E.commands.length+R;ie<F._.length&&F._.slice(ie).forEach(x=>{x=String(x),E.commands.includes(x)||b.includes(x)||b.push(x)})}b.length&&r.fail(c("Unknown argument: %s","Unknown arguments: %s",b.length,b.map(R=>R.trim()?R:`"${R}"`).join(", ")))},unknownCommands:function(F){let g=i.getInternalMethods().getCommandInstance().getCommands(),l=[],T=i.getInternalMethods().getContext();return(T.commands.length>0||g.length>0)&&F._.slice(T.commands.length).forEach(L=>{g.includes(""+L)||l.push(""+L)}),l.length>0&&(r.fail(c("Unknown command: %s","Unknown commands: %s",l.length,l.join(", "))),!0)},isValidAndSomeAliasIsNotNew:function(F,g){if(!Object.prototype.hasOwnProperty.call(g,F))return!1;let l=i.parsed.newAliases;return[F,...g[F]].some(T=>!Object.prototype.hasOwnProperty.call(l,T)||!l[F])},limitedChoices:function(F){let g=i.getOptions(),l={};if(!Object.keys(g.choices).length)return;Object.keys(F).forEach(N=>{ns.indexOf(N)===-1&&Object.prototype.hasOwnProperty.call(g.choices,N)&&[].concat(F[N]).forEach(U=>{g.choices[N].indexOf(U)===-1&&U!==void 0&&(l[N]=(l[N]||[]).concat(U))})});let T=Object.keys(l);if(!T.length)return;let L=a("Invalid values:");T.forEach(N=>{L+=`
|
|
|
${a("Argument: %s, Given: %s, Choices: %s",N,r.stringifiedValues(l[N]),r.stringifiedValues(g.choices[N]))}`}),r.fail(L)}},d={};function D(F,g){let l=Number(g);return typeof(g=isNaN(l)?g:l)=="number"?g=F._.length>=g:g.match(/^--no-.+/)?(g=g.match(/^--no-(.+)/)[1],g=!Object.prototype.hasOwnProperty.call(F,g)):g=Object.prototype.hasOwnProperty.call(F,g),g}h.implies=function(F,g){S("<string|object> [array|number|string]",[F,g],arguments.length),typeof F=="object"?Object.keys(F).forEach(l=>{h.implies(l,F[l])}):(i.global(F),d[F]||(d[F]=[]),Array.isArray(g)?g.forEach(l=>h.implies(F,l)):(ve(g,void 0,o),d[F].push(g)))},h.getImplied=function(){return d},h.implications=function(F){let g=[];if(Object.keys(d).forEach(l=>{let T=l;(d[l]||[]).forEach(L=>{let N=T,U=L;N=D(F,N),L=D(F,L),N&&!L&&g.push(` ${T} -> ${U}`)})}),g.length){let l=`${a("Implications failed:")}
|
|
|
`;g.forEach(T=>{l+=T}),r.fail(l)}};let y={};h.conflicts=function(F,g){S("<string|object> [array|string]",[F,g],arguments.length),typeof F=="object"?Object.keys(F).forEach(l=>{h.conflicts(l,F[l])}):(i.global(F),y[F]||(y[F]=[]),Array.isArray(g)?g.forEach(l=>h.conflicts(F,l)):y[F].push(g))},h.getConflicting=()=>y,h.conflicting=function(F){Object.keys(F).forEach(g=>{y[g]&&y[g].forEach(l=>{l&&F[g]!==void 0&&F[l]!==void 0&&r.fail(a("Arguments %s and %s are mutually exclusive",g,l))})}),i.getInternalMethods().getParserConfiguration()["strip-dashed"]&&Object.keys(y).forEach(g=>{y[g].forEach(l=>{l&&F[o.Parser.camelCase(g)]!==void 0&&F[o.Parser.camelCase(l)]!==void 0&&r.fail(a("Arguments %s and %s are mutually exclusive",g,l))})})},h.recommendCommands=function(F,g){g=g.sort((L,N)=>N.length-L.length);let l=null,T=1/0;for(let L,N=0;(L=g[N])!==void 0;N++){let U=Xr(F,L);U<=3&&U<T&&(T=U,l=L)}l&&r.fail(a("Did you mean %s?",l))},h.reset=function(F){return d=lt(d,g=>!F[g]),y=lt(y,g=>!F[g]),h};let B=[];return h.freeze=function(){B.push({implied:d,conflicting:y})},h.unfreeze=function(){let F=B.pop();ve(F,void 0,o),{implied:d,conflicting:y}=F},h}(this,u(this,q,"f"),u(this,W,"f")),"f"),k(this,te,u(this,te,"f")?u(this,te,"f").reset():function(i,r,o,a){return new Nn(i,r,o,a)}(u(this,q,"f"),u(this,Q,"f"),u(this,Ee,"f"),u(this,W,"f")),"f"),u(this,ye,"f")||k(this,ye,function(i,r,o,a){return new In(i,r,o,a)}(this,u(this,q,"f"),u(this,te,"f"),u(this,W,"f")),"f"),u(this,Ee,"f").reset(),k(this,pe,null,"f"),k(this,le,"","f"),k(this,$e,null,"f"),k(this,De,!1,"f"),this.parsed=!1,this}[ys](e,t){return u(this,W,"f").path.relative(e,t)}[Ft](e,t,n,i=0,r=!1){let o=!!n||r;e=e||u(this,Ie,"f"),u(this,M,"f").__=u(this,W,"f").y18n.__,u(this,M,"f").configuration=this[Je]();let a=!!u(this,M,"f").configuration["populate--"],c=Object.assign({},u(this,M,"f").configuration,{"populate--":!0}),h=u(this,W,"f").Parser.detailed(e,Object.assign({},u(this,M,"f"),{configuration:{"parse-positional-numbers":!1,...c}})),d=Object.assign(h.argv,u(this,qe,"f")),D,y=h.aliases,B=!1,F=!1;Object.keys(d).forEach(g=>{g===u(this,Fe,"f")&&d[g]?B=!0:g===u(this,je,"f")&&d[g]&&(F=!0)}),d.$0=this.$0,this.parsed=h,i===0&&u(this,q,"f").clearCachedHelpMessage();try{if(this[Fn](),t)return this[Ge](d,a,!!n,!1);u(this,Fe,"f")&&[u(this,Fe,"f")].concat(y[u(this,Fe,"f")]||[]).filter(L=>L.length>1).includes(""+d._[d._.length-1])&&(d._.pop(),B=!0),k(this,Vt,!1,"f");let g=u(this,te,"f").getCommands(),l=u(this,ye,"f").completionKey in d,T=B||l||r;if(d._.length){if(g.length){let L;for(let N,U=i||0;d._[U]!==void 0;U++){if(N=String(d._[U]),g.includes(N)&&N!==u(this,pe,"f")){let b=u(this,te,"f").runCommand(N,this,h,U+1,r,B||F||r);return this[Ge](b,a,!!n,!1)}if(!L&&N!==u(this,pe,"f")){L=N;break}}!u(this,te,"f").hasDefaultCommand()&&u(this,Rt,"f")&&L&&!T&&u(this,Q,"f").recommendCommands(L,g)}u(this,pe,"f")&&d._.includes(u(this,pe,"f"))&&!l&&(u(this,Ce,"f")&&xt(!0),this.showCompletionScript(),this.exit(0))}if(u(this,te,"f").hasDefaultCommand()&&!T){let L=u(this,te,"f").runCommand(null,this,h,0,r,B||F||r);return this[Ge](L,a,!!n,!1)}if(l){u(this,Ce,"f")&&xt(!0);let L=(e=[].concat(e)).slice(e.indexOf(`--${u(this,ye,"f").completionKey}`)+1);return u(this,ye,"f").getCompletion(L,(N,U)=>{if(N)throw new re(N.message);(U||[]).forEach(b=>{u(this,ot,"f").log(b)}),this.exit(0)}),this[Ge](d,!a,!!n,!1)}if(u(this,De,"f")||(B?(u(this,Ce,"f")&&xt(!0),o=!0,this.showHelp("log"),this.exit(0)):F&&(u(this,Ce,"f")&&xt(!0),o=!0,u(this,q,"f").showVersion("log"),this.exit(0))),!o&&u(this,M,"f").skipValidation.length>0&&(o=Object.keys(d).some(L=>u(this,M,"f").skipValidation.indexOf(L)>=0&&d[L]===!0)),!o){if(h.error)throw new re(h.error.message);if(!l){let L=this[kn](y,{},h.error);n||(D=wt(d,this,u(this,Ee,"f").getMiddleware(),!0)),D=this[cs](L,D??d),ne(D)&&!n&&(D=D.then(()=>wt(d,this,u(this,Ee,"f").getMiddleware(),!1)))}}}catch(g){if(!(g instanceof re))throw g;u(this,q,"f").fail(g.message,g)}return this[Ge](D??d,a,!!n,!0)}[kn](e,t,n,i){let r={...this.getDemandedOptions()};return o=>{if(n)throw new re(n.message);u(this,Q,"f").nonOptionCount(o),u(this,Q,"f").requiredArguments(o,r);let a=!1;u(this,Ue,"f")&&(a=u(this,Q,"f").unknownCommands(o)),u(this,Re,"f")&&!a?u(this,Q,"f").unknownArguments(o,e,t,!!i):u(this,ze,"f")&&u(this,Q,"f").unknownArguments(o,e,{},!1,!1),u(this,Q,"f").limitedChoices(o),u(this,Q,"f").implications(o),u(this,Q,"f").conflicting(o)}}[Cs](){k(this,De,!0,"f")}[Ke](e){if(typeof e=="string")u(this,M,"f").key[e]=!0;else for(let t of e)u(this,M,"f").key[t]=!0}},Sn,jn,{readFileSync:Zr}=require("fs"),{inspect:Qr}=require("util"),{resolve:Yr}=require("path"),eo=ti(),to=un(),Pn,Es={assert:{notStrictEqual:Xi.notStrictEqual,strictEqual:Xi.strictEqual},cliui:Li(),findUp:Hi(),getEnv:s=>process.env[s],getCallerFile:Ui(),getProcessArgvBin:_s,inspect:Qr,mainFilename:(jn=(Sn=require==null?void 0:require.main)===null||Sn===void 0?void 0:Sn.filename)!==null&&jn!==void 0?jn:process.cwd(),Parser:to,path:require("path"),process:{argv:()=>process.argv,cwd:process.cwd,emitWarning:(s,e)=>process.emitWarning(s,e),execPath:()=>process.execPath,exit:s=>{process.exit(s)},nextTick:process.nextTick,stdColumns:process.stdout.columns!==void 0?process.stdout.columns:null},readFileSync:Zr,require,requireDirectory:Ki(),stringWidth:St(),y18n:eo({directory:Yr(__dirname,"../locales"),updateFiles:!1})},Fs=!((Pn=process==null?void 0:process.env)===null||Pn===void 0)&&Pn.YARGS_MIN_NODE_VERSION?Number(process.env.YARGS_MIN_NODE_VERSION):12;if(process&&process.version&&Number(process.version.match(/v([^.]+)/)[1])<Fs)throw Error(`yargs supports a minimum Node.js version of ${Fs}. Read our version support policy: https://github.com/yargs/yargs#supported-nodejs-versions`);var no=un(),Bn,io={applyExtends:Jt,cjsPlatformShim:Es,Yargs:(Bn=Es,(s=[],e=Bn.process.cwd(),t)=>{let n=new Ln(s,e,t,Bn);return Object.defineProperty(n,"argv",{get:()=>n.parse(),enumerable:!0}),n.help(),n.version(),n}),argsert:S,isPromise:ne,objFilter:lt,parseCommand:ct,Parser:no,processArgv:Jr,YError:re};Os.exports=io});var uo={};qs(uo,{default:()=>en});module.exports=Hs(uo);var Rn=ge("LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tIE1vZHVsZTogdXRmOF9maWxlbmFtZXMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tIEZpbGVuYW1lOiB1dGY4X2ZpbGVuYW1lcy5sdWEKLS0gVmVyc2lvbjogIDIwMTktMDctMTMKLS0gTGljZW5zZTogIE1JVCAoc2VlIGF0IHRoZSBlbmQgb2YgdGhpcyBmaWxlKQoKLS0gVGhpcyBtb2R1bGUgbW9kaWZpZXMgc3RhbmRhcmQgTHVhIGZ1bmN0aW9ucyBzbyB0aGF0IHRoZXkgd29yayB3aXRoIFVURi04IGZpbGVuYW1lcyBvbiBXaW5kb3dzOgotLSAgICBpby5vcGVuCi0tICAgIGlvLnBvcGVuCi0tICAgIGlvLmxpbmVzCi0tICAgIGlvLmlucHV0Ci0tICAgIGlvLm91dHB1dAotLSAgICBvcy5yZW5hbWUKLS0gICAgb3MucmVtb3ZlCi0tICAgIG9zLmV4ZWN1dGUKLS0gICAgZG9maWxlCi0tICAgIGxvYWRmaWxlCi0tICAgIHJlcXVpcmUKLS0gT25seSBmaWxlbmFtZS1yZWxhdGVkIGZ1bmN0aW9ucyBhcmUgbW9kaWZpZWQgKGZvciBleGFtcGxlLCB0aGlzIG1vZHVsZSBET0VTIE5PVCBjaGFuZ2UgTHVhIHBhdHRlcm5zIGJlaGF2aW9yKS4KCi0tIFBsZWFzZSBub3RlIHRoYXQgZmlsZW5hbWVzIG11c3QgY29udGFpbiBvbmx5IHN5bWJvbHMgZnJvbSB5b3VyIFdpbmRvd3MgQU5TSSBjb2RlcGFnZSAod2hpY2ggZGVwZW5kcyBvbiBPUyBsb2NhbGUpLgotLSBVbmZvcnR1bmF0ZWx5LCBpdCdzIGltcG9zc2libGUgdG8gd29yayB3aXRoIGEgZmlsZSBoYXZpbmcgYXJiaXRyYXJ5IFVURi04IHN5bWJvbHMgaW4gaXRzIG5hbWUuCgotLSBUaGlzIG1vZHVsZSBpcyBjb21wYXRpYmxlIHdpdGggTHVhIDUuMSwgNS4yLCA1LjMsIEx1YUpJVCwgYW5kIHByb2JhYmx5IDUuNC4KLS0gTHVhIGltcGxlbWVudGF0aW9ucyBoYXZpbmcgc2hvcnRlbmVkIEZQIG51bWJlcnMgKDQtYnl0ZSAiZmxvYXQiIGluc3RlYWQgb2YgOC1ieXRlICJkb3VibGUiKSBhcmUgbm90IHN1cHBvcnRlZC4KLS0gTHVhIDUuMysgaW1wbGVtZW50YXRpb25zIHdpdGggc2hvcnRlbmVkIGludGVnZXJzIChpbnQzMiBpbnN0ZWFkIG9mIGludDY0KSBhcmUgT0suCgotLSBUaGlzIG1vZHVsZSByZXR1cm5zIGEgImNvbnZlcnRvciIgZnVuY3Rpb24gd2hpY2ggY29udmVydHMgYSBzdHJpbmcgZnJvbSBVVEYtOCB0byBPUy1zcGVjaWZpYyBjb2RlcGFnZS4KLS0gT24gTGludXgvTWFjT1MvZXRjLiB0aGlzIG1vZHVsZSBkb2Vzbid0IG1vZGlmeSBhbnkgTHVhIGZ1bmN0aW9ucyBhbmQgcmV0dXJucyAiZW1wdHkgY29udmVydG9yIiAod2hpY2ggc2ltcGx5IHJldHVybnMgaXRzIGFyZ3VtZW50KS4KCi0tIFVzYWdlIGV4YW1wbGUgIzEgKGV4ZWN1dGluZyBhIEx1YSBzY3JpcHQpOgotLSAgICByZXF1aXJlInV0ZjhfZmlsZW5hbWVzIgotLSAgICBkb2ZpbGUoc2NyaXB0X2ZpbGVuYW1lX2luX3V0ZjgpCgotLSBVc2FnZSBleGFtcGxlICMyIChsb2FkaW5nIGEgTHVhIG1vZHVsZSk6Ci0tICAgIGxvY2FsIGNvbnZlcnRfZnJvbV91dGY4ID0gcmVxdWlyZSJ1dGY4X2ZpbGVuYW1lcyIKLS0gICAgcGFja2FnZS5wYXRoID0gcGFja2FnZS5wYXRoLi4iOyIuLmNvbnZlcnRfZnJvbV91dGY4KG1vZHVsZV9mb2xkZXJfaW5fdXRmOCkuLiIvPy5sdWEiCi0tICAgIHJlcXVpcmUobW9kdWxlX25hbWVfaW5fdXRmOCkKCi0tIFBsZWFzZSBub3RlIHRoYXQgdGhlc2UgZXhhbXBsZXMgd291bGQgd29yayBvbiBib3RoIFdpbmRvd3MgYW5kIExpbnV4LgotLSBCVFcsIFdpbmRvd3MgZG9lcyBhY2NlcHQgYm90aCAvIGFuZCBcIGFzIHBhdGggc2VwYXJhdG9ycywgc28gaXQncyBPSyB0byB1c2UgLyBvbiBhbnkgT1MuCgotLSBUaGUgY29udmVyc2lvbiBmcm9tIFVURi04IHRvICJXaW5kb3dzIEFOU0kgY29kZXBhZ2UiIGlzIGltcGxlbWVudGVkIGFjY29yZGluZyB0byBtYXBwaW5nIHRhYmxlcyBwdWJsaXNoZWQgYXQgdW5pY29kZS5vcmcuCi0tIE1hcHBpbmcgdGFibGVzIGFyZSBzdG9yZWQgaW4gaHVtYW4tdW5yZWFkYWJsZSBjb21wcmVzc2VkIGZvcm0gdG8gc2lnbmlmaWNhbnRseSByZWR1Y2UgbW9kdWxlIHNpemUuCgoKbG9jYWwgdGVzdF9kYXRhX2ludGVncml0eSA9IGZhbHNlICAtLSBzZXQgdG8gdHJ1ZSBpZiB5b3UgYXJlIHVuc3VyZSBhYm91dCBjb3JyZWN0bmVzcyBvZiBodW1hbi11bnJlYWRhYmxlIHBhcnRzIG9mIHRoaXMgZmlsZQoKbG9jYWwgZnVuY3Rpb24gbW9kaWZ5X2x1YV9mdW5jdGlvbnMoYWxsX2NvbXByZXNzZWRfbWFwcGluZ3MpCgogICBsb2NhbCBmdW5jdGlvbiBjb252ZXJ0X2Zyb21fdXRmOCguLi4pICAgLS0gZm9yIGFsbCBPUyBleGNlcHQgV2luZG93cwogICAgICByZXR1cm4gLi4uCiAgIGVuZAoKICAgbG9jYWwgY2hhciwgYnl0ZSwgZmxvb3IsIHRhYmxlX2luc2VydCwgdGFibGVfY29uY2F0ID0gc3RyaW5nLmNoYXIsIHN0cmluZy5ieXRlLCBtYXRoLmZsb29yLCB0YWJsZS5pbnNlcnQsIHRhYmxlLmNvbmNhdAoKICAgbG9jYWwgZnVuY3Rpb24gZGVjb21wcmVzc19tYXBwaW5nKGNvbXByZXNzZWRfbWFwcGluZykKCiAgICAgIGxvY2FsIHdpZHRoLCBvZmZzZXQsIGJhc2UsIENTMSwgQ1MyLCBnZXRfbmV4dF9jaGFyID0gMS4wLCAwLjAsIDAuMCwgN14xOCwgNV4yMiwgY29tcHJlc3NlZF9tYXBwaW5nOmdtYXRjaCIlUyIKICAgICAgbG9jYWwgbWFwcGluZywgdHJlZXMsIHVuaWNvZGUsIGFuc2ksIHByZXZfZGVsdGFfdW5pY29kZSwgcHJldl9kZWx0YV9hbnNpID0ge30sIHt9LCAweDdGLCAweDdGCgogICAgICBsb2NhbCBmdW5jdGlvbiBkZWNvbXByZXNzX3NlbGVjdGlvbihxdHksIHRyZWUpCiAgICAgICAgIHdoaWxlIHdpZHRoIDw9IDk0XjcgZG8KICAgICAgICAgICAgd2lkdGgsIG9mZnNldCwgYmFzZSA9IHdpZHRoICogOTQuMCwgb2Zmc2V0ICogOTQuMCArIGJ5dGUoZ2V0X25leHRfY2hhcigpKSAtIDMzLjAsIChiYXNlIC0gZmxvb3IoKGJhc2UgKyB3aWR0aCAtIDEpIC8gOTReNykgKiA5NF43KSAqIDk0LjAKICAgICAgICAgZW5kCiAgICAgICAgIGlmIHF0eSB0aGVuCiAgICAgICAgICAgIGxvY2FsIGJpZ19xdHkgPSB3aWR0aCAlIHF0eQogICAgICAgICAgICBsb2NhbCBzbWFsbF91bml0ID0gKHdpZHRoIC0gYmlnX3F0eSkgLyBxdHkKICAgICAgICAgICAgbG9jYWwgYmlnX3VuaXQgPSBzbWFsbF91bml0ICsgMS4wCiAgICAgICAgICAgIGxvY2FsIG9mZnNldF9zbWFsbCA9IGJpZ19xdHkgKiBiaWdfdW5pdAogICAgICAgICAgICBsb2NhbCBmcm9tLCBvZmZzZXRfZnJvbSwgbGVmdCwgcmlnaHQKICAgICAgICAgICAgaWYgb2Zmc2V0IDwgb2Zmc2V0X3NtYWxsIHRoZW4KICAgICAgICAgICAgICAgd2lkdGggPSBiaWdfdW5pdAogICAgICAgICAgICAgICBvZmZzZXRfZnJvbSA9IG9mZnNldCAtIG9mZnNldCAlIGJpZ191bml0CiAgICAgICAgICAgICAgIGZyb20gPSBvZmZzZXRfZnJvbSAvIGJpZ191bml0CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgd2lkdGggPSBzbWFsbF91bml0CiAgICAgICAgICAgICAgIG9mZnNldF9mcm9tID0gb2Zmc2V0IC0gKG9mZnNldCAtIG9mZnNldF9zbWFsbCkgJSBzbWFsbF91bml0CiAgICAgICAgICAgICAgIGZyb20gPSBiaWdfcXR5ICsgKG9mZnNldF9mcm9tIC0gb2Zmc2V0X3NtYWxsKSAvIHNtYWxsX3VuaXQKICAgICAgICAgICAgZW5kCiAgICAgICAgICAgIGxvY2FsIGxlbiwgbGVhZiA9IDEuMCwgZnJvbQogICAgICAgICAgICBpZiB0cmVlIHRoZW4KICAgICAgICAgICAgICAgbGVhZiwgbGVmdCwgcmlnaHQgPSA0LCAwLCBxdHkKICAgICAgICAgICAgICAgcmVwZWF0CiAgICAgICAgICAgICAgICAgIGxvY2FsIG1pZGRsZSA9IHRyZWVbbGVhZl0KICAgICAgICAgICAgICAgICAgaWYgZnJvbSA8IG1pZGRsZSB0aGVuCiAgICAgICAgICAgICAgICAgICAgIHJpZ2h0ID0gbWlkZGxlCiAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgbGVmdCwgbGVhZiA9IG1pZGRsZSwgbGVhZiArIDEKICAgICAgICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICAgICAgIGxlYWYgPSB0cmVlW2xlYWYgKyAxXQogICAgICAgICAgICAgICB1bnRpbCBsZWFmIDwgMAogICAgICAgICAgICAgICBmcm9tLCBsZW4gPSBsZWZ0LCByaWdodCAtIGxlZnQKICAgICAgICAgICAgICAgb2Zmc2V0X2Zyb20gPSBsZWZ0IDwgYmlnX3F0eSBhbmQgbGVmdCAqIGJpZ191bml0IG9yIG9mZnNldF9zbWFsbCArIChsZWZ0IC0gYmlnX3F0eSkgKiBzbWFsbF91bml0CiAgICAgICAgICAgICAgIHdpZHRoID0gKHJpZ2h0IDwgYmlnX3F0eSBhbmQgcmlnaHQgKiBiaWdfdW5pdCBvciBvZmZzZXRfc21hbGwgKyAocmlnaHQgLSBiaWdfcXR5KSAqIHNtYWxsX3VuaXQpIC0gb2Zmc2V0X2Zyb20KICAgICAgICAgICAgZW5kCiAgICAgICAgICAgIGJhc2UsIG9mZnNldCA9IGJhc2UgKyBvZmZzZXRfZnJvbSwgb2Zmc2V0IC0gb2Zmc2V0X2Zyb20KICAgICAgICAgICAgQ1MxLCBDUzIgPSAoQ1MxICUgOTM0NzE4MDEuMCkgKiAoQ1MyICUgOTM0NzE4MTEuMCkgKyBxdHksIChDUzEgJSA5MzQ3MTgyMS4wKSAqIChDUzIgJSA5MzQ3MTgzMS4wKSAtIGZyb20gKiA3NzMuMCAtIGxlbiAqIDc3ODkuMAogICAgICAgICAgICByZXR1cm4gbGVhZgogICAgICAgICBlbmQKICAgICAgICAgYXNzZXJ0KChDUzEgLSBDUzIpICUgd2lkdGggPT0gb2Zmc2V0KQogICAgICBlbmQKCiAgICAgIGxvY2FsIGZ1bmN0aW9uIGdldF9kZWx0YSh0cmVlX2lkeCkKICAgICAgICAgbG9jYWwgdHJlZSA9IHRyZWVzW3RyZWVfaWR4XQogICAgICAgICBsb2NhbCB2YWwgPSB0cmVlWzNdCiAgICAgICAgIGlmIHZhbCA9PSAwLjAgdGhlbgogICAgICAgICAgICBsb2NhbCBsZWFmID0gZGVjb21wcmVzc19zZWxlY3Rpb24odHJlZVsxXSwgdHJlZSkKICAgICAgICAgICAgbG9jYWwgbWF4X2V4cF9jbnQgPSB0cmVlWzJdCiAgICAgICAgICAgIHZhbCA9IGxlYWYgJSBtYXhfZXhwX2NudAogICAgICAgICAgICBsZWFmID0gKGxlYWYgLSB2YWwpIC8gbWF4X2V4cF9jbnQgKyAyLjAKICAgICAgICAgICAgdmFsID0gMi4wXnZhbAogICAgICAgICAgICB2YWwgPSB2YWwgKyBkZWNvbXByZXNzX3NlbGVjdGlvbih2YWwpCiAgICAgICAgICAgIGlmIGxlYWYgfj0gMC4wIHRoZW4KICAgICAgICAgICAgICAgcmV0dXJuIGxlYWYgKiB2YWwKICAgICAgICAgICAgZW5kCiAgICAgICAgIGVuZAogICAgICAgICB0cmVlWzNdID0gdmFsIC0gMS4wCiAgICAgIGVuZAoKICAgICAgZm9yIHRyZWVfaWR4ID0gMSwgMiBkbwogICAgICAgICBsb2NhbCB0b3RhbF9mcmVxID0gZGVjb21wcmVzc19zZWxlY3Rpb24oMl4xNSkKICAgICAgICAgbG9jYWwgbWF4X2V4cF9jbnQgPSBkZWNvbXByZXNzX3NlbGVjdGlvbigxNykKICAgICAgICAgbG9jYWwgdHJlZSwgcXR5X2Zvcl9sZWFmX2luZm8gPSB7dG90YWxfZnJlcSwgbWF4X2V4cF9jbnQsIDAuMH0sIDMgKiBtYXhfZXhwX2NudAoKICAgICAgICAgbG9jYWwgZnVuY3Rpb24gYnVpbGRfc3VidHJlZShsZWZ0LCByaWdodCwgaWR4KQogICAgICAgICAgICBsb2NhbCBtaWRkbGUsIHN1YnRyZWUgPSBsZWZ0ICsgMQogICAgICAgICAgICBtaWRkbGUgPSBkZWNvbXByZXNzX3NlbGVjdGlvbihyaWdodCAtIG1pZGRsZSkgKyBtaWRkbGUKICAgICAgICAgICAgdHJlZVtpZHhdLCBpZHggPSBtaWRkbGUsIGlkeCArIDMKICAgICAgICAgICAgZm9yIG5leHRfaWR4ID0gaWR4IC0gMiwgaWR4IC0gMSBkbwogICAgICAgICAgICAgICBpZiBkZWNvbXByZXNzX3NlbGVjdGlvbigyKSA9PSAxIHRoZW4KICAgICAgICAgICAgICAgICAgc3VidHJlZSwgaWR4ID0gaWR4LCBidWlsZF9zdWJ0cmVlKGxlZnQsIG1pZGRsZSwgaWR4KQogICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgIHN1YnRyZWUgPSBkZWNvbXByZXNzX3NlbGVjdGlvbihxdHlfZm9yX2xlYWZfaW5mbykgLSBxdHlfZm9yX2xlYWZfaW5mbwogICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgICAgdHJlZVtuZXh0X2lkeF0sIGxlZnQsIG1pZGRsZSA9IHN1YnRyZWUsIG1pZGRsZSwgcmlnaHQKICAgICAgICAgICAgZW5kCiAgICAgICAgICAgIHJldHVybiBpZHgKICAgICAgICAgZW5kCgogICAgICAgICBidWlsZF9zdWJ0cmVlKDAsIHRvdGFsX2ZyZXEsIDQpCiAgICAgICAgIHRyZWVzW3RyZWVfaWR4XSA9IHRyZWUKICAgICAgZW5kCiAgICAgIHdoaWxlIHRydWUgZG8KICAgICAgICAgbG9jYWwgZGVsdGEgPSBnZXRfZGVsdGEoMSkKICAgICAgICAgaWYgbm90IGRlbHRhIHRoZW4KICAgICAgICAgICAgZGVsdGEgPSBwcmV2X2RlbHRhX3VuaWNvZGUKICAgICAgICAgZWxzZWlmIGRlbHRhID09IHByZXZfZGVsdGFfdW5pY29kZSB0aGVuCiAgICAgICAgICAgIGRlY29tcHJlc3Nfc2VsZWN0aW9uKCkKICAgICAgICAgICAgcmV0dXJuIG1hcHBpbmcKICAgICAgICAgZW5kCiAgICAgICAgIHVuaWNvZGUsIHByZXZfZGVsdGFfdW5pY29kZSwgZGVsdGEgPSB1bmljb2RlICsgZGVsdGEsIGRlbHRhLCBnZXRfZGVsdGEoMikgb3IgcHJldl9kZWx0YV9hbnNpCiAgICAgICAgIGFuc2ksIHByZXZfZGVsdGFfYW5zaSA9IGFuc2kgKyBkZWx0YSwgZGVsdGEKICAgICAgICAgbWFwcGluZ1t1bmljb2RlXSA9IGFuc2kKICAgICAgZW5kCiAgIGVuZAoKICAgaWYgdGVzdF9kYXRhX2ludGVncml0eSB0aGVuCiAgICAgIHByaW50Ii0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCiAgICAgIHByaW50IlRlc3RpbmcgZGF0YSBpbnRlZ3JpdHkgb2YgYWxsIGNvbXByZXNzZWQgbWFwcGluZ3MiCiAgICAgIGZvciBjb2RlcGFnZSwgY29tcHJlc3NlZF9tYXBwaW5nIGluIHBhaXJzKGFsbF9jb21wcmVzc2VkX21hcHBpbmdzKSBkbwogICAgICAgICBwcmludChjb2RlcGFnZSwgcGNhbGwoZGVjb21wcmVzc19tYXBwaW5nLCBjb21wcmVzc2VkX21hcHBpbmcpIGFuZCAiT0siIG9yICJGQUlMRUQiKQogICAgICBlbmQKICAgICAgcHJpbnQiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKICAgZW5kCgogICBpZiAob3MuZ2V0ZW52Im9zIiBvciAiIik6bWF0Y2giXldpbmRvd3MiIHRoZW4KCiAgICAgIGxvY2FsIGZ1bmN0aW9uIGdldF93aW5kb3dzX2Fuc2lfY29kZXBhZ2UoKQogICAgICAgICAtLSByZXR1cm5zIHN0cmluZyAiMTI1MyIgZm9yIEdyZWVrLCAiMTI1MSIgZm9yIFJ1c3NpYW4sIGV0Yy4KICAgICAgICAgbG9jYWwgcGlwZSA9IGFzc2VydChpby5wb3BlbltbcmVnIHF1ZXJ5IEhLTE1cU1lTVEVNXEN1cnJlbnRDb250cm9sU2V0XENvbnRyb2xcTmxzXENvZGVQYWdlIC92IEFDUF1dKQogICAgICAgICBsb2NhbCBjb2RlcGFnZSA9IHBpcGU6cmVhZCIqYSI6bWF0Y2giJXNBQ1AlcytSRUdfU1olcysoLi0pJXMqJCIKICAgICAgICAgcGlwZTpjbG9zZSgpCiAgICAgICAgIHJldHVybiBhc3NlcnQoY29kZXBhZ2UsICJGYWlsZWQgdG8gZGV0ZXJtaW5lIFdpbmRvd3MgQU5TSSBjb2RlcGFnZSBmcm9tIFdpbmRvd3MgcmVnaXN0cnkiKQogICAgICBlbmQKCiAgICAgIGxvY2FsIGNvZGVwYWdlID0gZ2V0X3dpbmRvd3NfYW5zaV9jb2RlcGFnZSgpCiAgICAgIC0tIHByaW50KCJZb3VyIGNvZGVwYWdlIGlzICIuLmNvZGVwYWdlKQogICAgICBsb2NhbCBjb21wcmVzc2VkX21hcHBpbmcgPSBhbGxfY29tcHJlc3NlZF9tYXBwaW5nc1tjb2RlcGFnZV0KICAgICAgaWYgY29tcHJlc3NlZF9tYXBwaW5nIHRoZW4KICAgICAgICAgbG9jYWwgbWFwX3VuaWNvZGVfdG9fYW5zaSA9IGRlY29tcHJlc3NfbWFwcGluZyhjb21wcmVzc2VkX21hcHBpbmcpCgogICAgICAgICBsb2NhbCBmdW5jdGlvbiB1dGY4X3RvX3VuaWNvZGUodXRmOHN0ciwgcG9zKQogICAgICAgICAgICAtLSBwb3MgPSBzdGFydGluZyBieXRlIHBvc2l0aW9uIGluc2lkZSBpbnB1dCBzdHJpbmcgKGRlZmF1bHQgMSkKICAgICAgICAgICAgLS0gcmV0dXJucyBjb2RlLCBudW1iZXIgb2YgYnl0ZXMgaW4gdGhpcyB1dGY4IGNoYXIKICAgICAgICAgICAgcG9zID0gcG9zIG9yIDEKICAgICAgICAgICAgbG9jYWwgY29kZSwgc2l6ZSA9IGJ5dGUodXRmOHN0ciwgcG9zKSwgMQogICAgICAgICAgICBpZiBjb2RlID49IDB4QzAgYW5kIGNvZGUgPCAweEZFIHRoZW4KICAgICAgICAgICAgICAgbG9jYWwgbWFzayA9IDY0CiAgICAgICAgICAgICAgIGNvZGUgPSBjb2RlIC0gMTI4CiAgICAgICAgICAgICAgIHJlcGVhdAogICAgICAgICAgICAgICAgICBsb2NhbCBuZXh0X2J5dGUgPSBieXRlKHV0ZjhzdHIsIHBvcyArIHNpemUpIG9yIDAKICAgICAgICAgICAgICAgICAgaWYgbmV4dF9ieXRlID49IDB4ODAgYW5kIG5leHRfYnl0ZSA8IDB4QzAgdGhlbgogICAgICAgICAgICAgICAgICAgICBjb2RlLCBzaXplID0gKGNvZGUgLSBtYXNrIC0gMikgKiA2NCArIG5leHRfYnl0ZSwgc2l6ZSArIDEKICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICBjb2RlLCBzaXplID0gYnl0ZSh1dGY4c3RyLCBwb3MpLCAxCiAgICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgICAgICBtYXNrID0gbWFzayAqIDMyCiAgICAgICAgICAgICAgIHVudGlsIGNvZGUgPCBtYXNrCiAgICAgICAgICAgIGVuZAogICAgICAgICAgICByZXR1cm4gY29kZSwgc2l6ZQogICAgICAgICBlbmQKCiAgICAgICAgIGZ1bmN0aW9uIGNvbnZlcnRfZnJvbV91dGY4KHV0ZjhzdHIpCiAgICAgICAgICAgIGxvY2FsIHBvcywgcmVzdWx0X2Fuc2kgPSAxLCB7fQogICAgICAgICAgICB3aGlsZSBwb3MgPD0gI3V0ZjhzdHIgZG8KICAgICAgICAgICAgICAgbG9jYWwgY29kZSwgc2l6ZSA9IHV0ZjhfdG9fdW5pY29kZSh1dGY4c3RyLCBwb3MpCiAgICAgICAgICAgICAgIHBvcyA9IHBvcyArIHNpemUKICAgICAgICAgICAgICAgY29kZSA9IGNvZGUgPCAxMjggYW5kIGNvZGUgb3IgbWFwX3VuaWNvZGVfdG9fYW5zaVtjb2RlXSBvciBieXRlIj8iCiAgICAgICAgICAgICAgIGlmIGNvZGUgPiAyNTUgdGhlbgogICAgICAgICAgICAgICAgICB0YWJsZV9pbnNlcnQocmVzdWx0X2Fuc2ksIGNoYXIoZmxvb3IoY29kZSAvIDI1NikpKQogICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgICAgdGFibGVfaW5zZXJ0KHJlc3VsdF9hbnNpLCBjaGFyKGNvZGUgJSAyNTYpKQogICAgICAgICAgICBlbmQKICAgICAgICAgICAgcmV0dXJuIHRhYmxlX2NvbmNhdChyZXN1bHRfYW5zaSkKICAgICAgICAgZW5kCgogICAgICAgICBsb2NhbCBvcmlnX29zX3JlbmFtZSA9IG9zLnJlbmFtZQoKICAgICAgICAgZnVuY3Rpb24gb3MucmVuYW1lKG9sZCwgbmV3KQogICAgICAgICAgICByZXR1cm4gb3JpZ19vc19yZW5hbWUoY29udmVydF9mcm9tX3V0Zjgob2xkKSwgY29udmVydF9mcm9tX3V0ZjgobmV3KSkKICAgICAgICAgZW5kCgogICAgICAgICBsb2NhbCBvcmlnX29zX3JlbW92ZSA9IG9zLnJlbW92ZQoKICAgICAgICAgZnVuY3Rpb24gb3MucmVtb3ZlKGZpbGVuYW1lKQogICAgICAgICAgICByZXR1cm4gb3JpZ19vc19yZW1vdmUoY29udmVydF9mcm9tX3V0ZjgoZmlsZW5hbWUpKQogICAgICAgICBlbmQKCiAgICAgICAgIGxvY2FsIG9yaWdfb3NfZXhlY3V0ZSA9IG9zLmV4ZWN1dGUKCiAgICAgICAgIGZ1bmN0aW9uIG9zLmV4ZWN1dGUoY29tbWFuZCkKICAgICAgICAgICAgaWYgY29tbWFuZCB0aGVuCiAgICAgICAgICAgICAgIGNvbW1hbmQgPSBjb252ZXJ0X2Zyb21fdXRmOChjb21tYW5kKQogICAgICAgICAgICBlbmQKICAgICAgICAgICAgcmV0dXJuIG9yaWdfb3NfZXhlY3V0ZShjb21tYW5kKQogICAgICAgICBlbmQKCiAgICAgICAgIGxvY2FsIG9yaWdfaW9fb3BlbiA9IGlvLm9wZW4KCiAgICAgICAgIGZ1bmN0aW9uIGlvLm9wZW4oZmlsZW5hbWUsIC4uLikKICAgICAgICAgICAgcmV0dXJuIG9yaWdfaW9fb3Blbihjb252ZXJ0X2Zyb21fdXRmOChmaWxlbmFtZSksIC4uLikKICAgICAgICAgZW5kCgogICAgICAgICBsb2NhbCBvcmlnX2lvX3BvcGVuID0gaW8ucG9wZW4KCiAgICAgICAgIGZ1bmN0aW9uIGlvLnBvcGVuKHByb2csIC4uLikKICAgICAgICAgICAgcmV0dXJuIG9yaWdfaW9fcG9wZW4oY29udmVydF9mcm9tX3V0ZjgocHJvZyksIC4uLikKICAgICAgICAgZW5kCgogICAgICAgICBsb2NhbCBvcmlnX2lvX2xpbmVzID0gaW8ubGluZXMKCiAgICAgICAgIGZ1bmN0aW9uIGlvLmxpbmVzKGZpbGVuYW1lLCAuLi4pCiAgICAgICAgICAgIGlmIGZpbGVuYW1lIHRoZW4KICAgICAgICAgICAgICAgZmlsZW5hbWUgPSBjb252ZXJ0X2Zyb21fdXRmOChmaWxlbmFtZSkKICAgICAgICAgICAgICAgcmV0dXJuIG9yaWdfaW9fbGluZXMoZmlsZW5hbWUsIC4uLikKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICByZXR1cm4gb3JpZ19pb19saW5lcygpCiAgICAgICAgICAgIGVuZAogICAgICAgICBlbmQKCiAgICAgICAgIGxvY2FsIG9yaWdfZG9maWxlID0gZG9maWxlCgogICAgICAgICBmdW5jdGlvbiBkb2ZpbGUoZmlsZW5hbWUpCiAgICAgICAgICAgIGlmIGZpbGVuYW1lIHRoZW4KICAgICAgICAgICAgICAgZmlsZW5hbWUgPSBjb252ZXJ0X2Zyb21fdXRmOChmaWxlbmFtZSkKICAgICAgICAgICAgZW5kCiAgICAgICAgICAgIHJldHVybiBvcmlnX2RvZmlsZShmaWxlbmFtZSkKICAgICAgICAgZW5kCgogICAgICAgICBsb2NhbCBvcmlnX2xvYWRmaWxlID0gbG9hZGZpbGUKCiAgICAgICAgIGZ1bmN0aW9uIGxvYWRmaWxlKGZpbGVuYW1lLCAuLi4pCiAgICAgICAgICAgIGlmIGZpbGVuYW1lIHRoZW4KICAgICAgICAgICAgICAgZmlsZW5hbWUgPSBjb252ZXJ0X2Zyb21fdXRmOChmaWxlbmFtZSkKICAgICAgICAgICAgZW5kCiAgICAgICAgICAgIHJldHVybiBvcmlnX2xvYWRmaWxlKGZpbGVuYW1lLCAuLi4pCiAgICAgICAgIGVuZAoKICAgICAgICAgbG9jYWwgb3JpZ19yZXF1aXJlID0gcmVxdWlyZQoKICAgICAgICAgZnVuY3Rpb24gcmVxdWlyZShtb2RuYW1lKQogICAgICAgICAgICBtb2RuYW1lID0gY29udmVydF9mcm9tX3V0ZjgobW9kbmFtZSkKICAgICAgICAgICAgcmV0dXJuIG9yaWdfcmVxdWlyZShtb2RuYW1lKQogICAgICAgICBlbmQKCiAgICAgICAgIGxvY2FsIG9yaWdfaW9faW5wdXQgPSBpby5pbnB1dAoKICAgICAgICAgZnVuY3Rpb24gaW8uaW5wdXQoZmlsZSkKICAgICAgICAgICAgaWYgdHlwZShmaWxlKSA9PSAic3RyaW5nIiB0aGVuCiAgICAgICAgICAgICAgIGZpbGUgPSBjb252ZXJ0X2Zyb21fdXRmOChmaWxlKQogICAgICAgICAgICBlbmQKICAgICAgICAgICAgcmV0dXJuIG9yaWdfaW9faW5wdXQoZmlsZSkKICAgICAgICAgZW5kCgogICAgICAgICBsb2NhbCBvcmlnX2lvX291dHB1dCA9IGlvLm91dHB1dAoKICAgICAgICAgZnVuY3Rpb24gaW8ub3V0cHV0KGZpbGUpCiAgICAgICAgICAgIGlmIHR5cGUoZmlsZSkgPT0gInN0cmluZyIgdGhlbgogICAgICAgICAgICAgICBmaWxlID0gY29udmVydF9mcm9tX3V0ZjgoZmlsZSkKICAgICAgICAgICAgZW5kCiAgICAgICAgICAgIHJldHVybiBvcmlnX2lvX291dHB1dChmaWxlKQogICAgICAgICBlbmQKCiAgICAgIGVsc2UKICAgICAgICAgLS0gcHJpbnQoIk1hcHBpbmcgZm9yIGNvZGVwYWdlICIuLmNvZGVwYWdlLi4iIG5vdCBmb3VuZCIpCiAgICAgIGVuZAoKICAgZW5kCgogICByZXR1cm4gY29udmVydF9mcm9tX3V0ZjgKCmVuZAoKcmV0dXJuIG1vZGlmeV9sdWFfZnVuY3Rpb25zewoKICAgLS0gVW5pY29kZSB0byBXaW5kb3dzIEFOU0kgY29kZXBhZ2UgbWFwcGluZ3MgKGNvbXByZXNzZWQgYW5kIHByb3RlY3RlZCBieSBhIGNoZWNrc3VtKQoKICAgWyI4NzQiXSAgPSAgLS0gVGhhaSwgOTcgY29kZXBvaW50cyBhYm92ZSBVKzAwN0YKICAgICAgW1shJWwrJCIiIldOXjk9JiRwcUYnb2hlTyM7MGwjImhzKW1JWz1lIXVmd2tEQiNPd0xuSnxJUklVejhRKE1NTV1dLAoKICAgWyIxMjUwIl0gPSAgLS0gQ2VudHJhbCBFdXJvcGVhbiwgMTIzIGNvZGVwb2ludHMgYWJvdmUgVSswMDdGCiAgICAgIFtbITwyIz92IjEocm87eGgvdExfM2hDXmk7ZX5Qak8icDxJXGFUVH07XVJifk03L10malJqZnd1RSVBSilAWGZCUXkmXGp5W1Y1Ol0hUnRIXW0+WWQ4bT82THBzVUFcVj14J1ZjTU88V3orRU9PCiAgICAgIDBtN1VgdXwkWTV4P1ZrKjYrcUpALzBMaWU3N19ifU9FdXd2JFFqL3dgK0o+TSo8ZzJxeEQzcUV5QyYqe1ZHSSdVZGRRYEdRKUw9bGo8e1M7Sm0pLGYzeXpjUU91eGFjSFNae1gnWElXekR6IT9FCiAgICAgID1VMGZdXSwKCiAgIFsiMTI1MSJdID0gIC0tIEN5cmlsbGljLCAxMjcgY29kZXBvaW50cyBhYm92ZSBVKzAwN0YKICAgICAgW1shLVs7XzhrTWFpN2pdeEIkXm4pIzduZ3JYfV9iJXs8Q2RvdDtQPzJKJjAwJl53WHw7XUBOKmZqcSNpb1gndi4mZ0dAdXJ+M3lpOHQxO3huNDB7RyNOWD83K2hHQ3skRCI0I29KLy9+a2ZsenMKICAgICAgIl9cejlxUCN9MW98QHt0YDJOck0ldHtNVz9YOWQ2bzpNcUhsNit6XV0sCgogICBbIjEyNTIiXSA9ICAtLSBXZXN0ZXJuLCAxMjMgY29kZXBvaW50cyBhYm92ZSBVKzAwN0YKICAgICAgW1shKVckPGN+XE9kQTVUSiUvSi97OnlvRV1LW2QsYzxNditncF9bX1V1QjUyYztIJntsZUZrJUtkOCVjSG52THJCWz58Oil0Ln1RSCopXUFEfExxanNCK0pDZEttYlJJak8sXV0sCgogICBbIjEyNTMiXSA9ICAtLSBHcmVlaywgMTExIGNvZGVwb2ludHMgYWJvdmUgVSswMDdGCiAgICAgIFtbIS4veURDcTsjV0F1Q1xDMVJ7PVtuJ0ZwU3VjISJSXEVafDQmSj9BMy16PypUST91ZmJoRnExSiF4QFNqZmZcIUd7b15kRFhsfDhOTFohJGQnOCRmXj1oaF9EUG0hPD4+YkNnVig+ZXJVV2hYCiAgICAgID9SKy1KUEA0anU6WXcjKkNdXSwKCiAgIFsiMTI1NCJdID0gIC0tIFR1cmtpc2gsIDEyMSBjb2RlcG9pbnRzIGFib3ZlIFUrMDA3RgogICAgICBbWyEtKFJbU1BLWT5jZ2NLNWNDczR2ayVNdUxgeUZ4XkJsIy8hbCNNQCN5b2V8SngrcHhadXZoJXI+Tzwvbl9nYj5oRGptR11qI2xBe10yIlItWkAoNld5OlF+JTszMjdiJmZSU2tGI0JNL2QrJQogICAgICBpV21TeDRFKlxGX3o9cz5RZUpCcUNeXV0sCgogICBbIjEyNTUiXSA9ICAtLSBIZWJyZXcsIDEwNSBjb2RlcG9pbnRzIGFib3ZlIFUrMDA3RgogICAgICBbWyEuYlwuSD9TXDIxKzdlZm0nYHcmTVdfSmcsbVJiQjt7WEBUXDM6OkRDIzc8bV9jQUUhOiVDJWM3LywuL3VbOHcqaC1pd3B6MDNRWSxheSVdTUkqRF1XJl1VR14zKD0yMGE3JHpHW05nN01MdAogICAgICBzWEluZShWMzdBP09PJXxIbjEzd01oLT9eak56aFdgLC1dXSwKCiAgIFsiMTI1NiJdID0gIC0tIEFyYWJpYywgMTI4IGNvZGVwb2ludHMgYWJvdmUgVSswMDdGCiAgICAgIFtbITNuOEdFJC50by9rYSVOeGB1T3BjaWI+fDlLVS1ONzIhMUo0YzJOQVVFM2EsSGxPRT1NYEByc2F8fE5oXyFvZ106ZElMejlLTmxGfnZpZ05IKmEwS3h3ampmUipdP3RPODcoYTMtUlFleF5WCiAgICAgIFd3JlNZezpBcUV8cyV9QFU4JXJLY3IwLE5DalI6TiZMJ1l5R3U8dXMnc04qMXBsPWdBWE93U0pbdj9mO2ltQmhEdV8pZCRGOFQ/JVNbXV0sCgogICBbIjEyNTciXSA9ICAtLSBCYWx0aWMsIDExNiBjb2RlcG9pbnRzIGFib3ZlIFUrMDA3RgogICAgICBbWyE6PF8uWFFbO24zNXMlST9nOSliLzdEaUd3SVIpenkmPTY/LzMpNmlPJXJTbkNfNnlqbCc4I3plTjB2Y1dfeVgvMipKOTMrRUpWclcsXlJoZSxoN3dXbCJ9bmVGMn5GW1B5RDtCY3JHKjU9SgogICAgICBmaDx4IUZKP3FTdzlYcCE7V0IzVDxKXng/I0llYHh1ZmV6UidcSShlRURdM2QmKVZKTCQvKyRaZjtXXkk+TFszRDVGPF9JY0dwbj1vWCJKUjElYXJTfEZYfGRpYTRdQmVGPmQ1cGBFVis6OypJPAogICAgICB4XlZvcXsiZl1dLAoKICAgWyIxMjU4Il0gPSAgLS0gVmlldG5hbWVzZSwgMTE5IGNvZGVwb2ludHMgYWJvdmUgVSswMDdGCiAgICAgIFtbITNuOEN7JUMwfSZwM2dFMH58JlJWbTlXciZebG4xfSckZ1Z7Ym1sMW9CeU4qYmI6Qm1eRTt+QjMtV2pGNlF1YnFeYFkqNlwwXnchREtwSzxcN2xIVkVMbVNYTnsyfkIiMEMiPDFDWU4yeyRhCiAgICAgIDVNPz58NyV+cW17cFhwaHdtMyR9aXlYakJZd3RHcXhwKGZbIWdeRWU5SC59MX4wSC1rLWR6TkRoMUxdXSwKCiAgIFsiOTMyIl0gID0gIC0tIEphcGFuZXNlLCA3Mzg5IGNvZGVwb2ludHMgYWJvdmUgVSswMDdGCiAgICAgIFs9WzMrPSY3fnNMVHkibl5QblZHKkd4Jmo+NEx4bWwlfWZlfDdffW5ic3UxSW1Gal9lcVolL2prUyNxVDJQRDk/XUtxJ2ZLPn5DLlltajw/Z04rezZ0XWp0TWdaV1pweD4jVnl6dWhIUT1OaHVsCiAgICAgIEh5LENgPV5cJjxSTmMrcjY8N35Rcyc0TVdTMl5MUigiTClmWzAuN0liVGUiXmVEV3w0fls2KVApaSc0ci00Kj5YL3JPb0VzUC4keUV4bG1VNW0+V3RZXF43XWhDQXJiMSMxSHxRPTU1Vl16YyQ+CiAgICAgIEclczRXWll1VVVGa3Fed08oNjgxeCQkI0ouYGxhZVNkOX4hfTdJcC8qbyN8W1NPNTBoQVdBd2hgdSpOd1NuZyNyRHstLld0ZVBEJWxWZ1lXKmBTR24uQ1pJR31ARCtPTz5ZQiJsdXVjLSpKLSRQCiAgICAgIFBqKlNfWWMkJ35jfCxePFA7V3oraF9SeXklZCwqYnc/KzJZaVwnZUV0ZFQ2X25xVCwoXDR1aD9FO1BvXl9jclJSZDYqcWI0TXxHR151LncncngvQ3Y4MkMiQmNsb3tCNS5WVDs5Xygsb2AlVFQnCiAgICAgIHBaO25QcFp7dWhBKFVUKGY2dno/Ym9rMWw0QiUzfkd2J3cvNzE5RCJQZlRNVyYhcW42THt6dSNAV2FqO0RDc0lXI0kxeFB1bWl6ST5ERXRxRkU8QmYwfmRaLG86dTdAJTxnYFZeTkJ3PFI3YUokCiAgICAgIDQlR0F8UX07bXpbOXd9MkYqKyZdLVJwaSdjbykvODZpUjA9UjNKLDNtOjkmc3pOR092aExQXTcrfUBbfVksNyl9R1hKbWkqfE49TClEZzQleS5rQzNsSntLYUdjPldhdi8/KilUX319YWYyaFJQCiAgICAgIElpXWxOenxVQXMvdW5fPyQ2U3Q5dSs+PHRSejt7Jid9Qnlhbj06c150XkRbVnRAYidzdWglMWdQVyhSbnxjcXszeV1cXishe31nNjxKcW9eJVteZSJnY3lBJTRoQHpmN1g5Pm9ufj5zdFR2RUh1CiAgICAgIF1nZUhMS3RqQFhHNVEldHRMVSkwNS4qNG88Kmh+VnRwNUxTbXciYlJ2KnVhTCkoczVXQi1qIVx1R2coXCF3L282Il5Bdjg4Pi54e2QmezBTPzEqJCIiNjJvcik5N0AyUyxcWS4yXFw4JkZWKjNKCiAgICAgIEpgTDYnVVhDX0hqOn1WQ05waSJ9MCljO0J+LkxYb18yfF0zczptLlJUL2E/cXVCSTxeXHtjJ2VMfCpeKm1NLT02VkV5Tn5mTmlFNTlYXzJIPUF5LlV2JClTTUEqcXRkOHRVNHkiZnIyLHNHbD83CiAgICAgIGZOOkxwWiYiV0FeRCRWMShkaVtuPm9aa0B0LURZTj1bI3Zsc28kW284dS9eO3c8eydtRVMlfTBaOEVaNVtVPTRLY1s8IjgvJ1I3cGMpUU8wIjttL3d3alxdI05bVS1qUXQiZTh8RkU9XHVyNWVzCiAgICAgIDRGJDVNPS1eKDo7RC8uNkhxdk5mMzxtQGp6Q0Y9aHdyS3M9c287UmZodz0vb3pFWTJKJS9YOURkQHAlZUNeRy9JcTZzenBxajo/b1lrPC0lSHVAYWRvKip8W1I/JlZMWjZMP1YkYWJuM0xdTF8+CiAgICAgICc5LCF6OVktPUpwe2wtYTFrXzlub21dTGB9XFA2YShMZzRObmkzVDVHJU1lRWFBNk9zY1k0QkV1RF0lUHw1N30+YT8sJnx6clg6UHtiTGBZfDV5Wl1GO3ZmJ1tjME9Eb3I8VnVMMWcqXHwvMm1BCiAgICAgIElZLXwrfSssUiRGfSxGe2dXfWtqUy4ySVJrMi0/dyM9VnAlYWRFJHZoR1RLfm82L1t9Xj4iXixlKWRGJnI6QmRXaHl9bWZRb3Z7ekI8bzlGVCwpKV0pS0o2SWFKLn1teVE5NDtpdUInQD17ZzA/CiAgICAgIHtgfTxaa2YudTZffVctcnsrJj40TV9kaWckT289dT8+QydhRExDL0QqZmBufjVwN2BxZj5XVVF8c01MenNEMjF3OGxENDQxMFlkbmRuQHJ+VjI7VDhpVHRjTT0pb1U/aD1ybDgtRlprWC0hRShoCiAgICAgIGNFRVd6andOcj5nciRBLnptaH0yJjUtYVtBR0RqY086KGpjOkUsQyx1MSEvXDUmITBSNyYoKmBFcWp0cStvc085J017OiRrMUBcKEEqTV1DMix7XmdMX09MPjcmVzFNNT53IX03ZFE2RzpxW3otCiAgICAgIEJyPnRVUUJEelRUWkxiTFVDNkd7WSpbejpTKjZ4Yzk9RHZQaEoxSHRQSFYxb3NkclczZ2EsUGYuTVhbcko8SW9OOURVXj4qQjViSGgjblBrbnk3Z05WbXh5OG9MOzVdTi0qfGExLUYiR3c8Xmg5CiAgICAgIEgkLTZsb3MyfWcnYjpjXWMwfnt5d2U+NT13Oyx7XX4ufjQ4OHt6L0omck9cWEd9OCQqO3kuNDAyTiNxUXBqOSMzci1peCR6aip2JGRKQzdcKClicWRpITU0OX0rdX47TXldPGNHMEFrLD0mPCtaCiAgICAgIFVEdGRHKSk3Mm8xdENFU0BdU0VtRDFTNzk0TilgV0NLcDs3XldRYlolJXloVFojIWtgfjkySThVMGBqfVpOaUBcXD9nSEt2NjVfaUJ0WypqNm5ET1J8TiVueyghVHp4bUs+NiY1YkpvdFBeYW5UCiAgICAgIERfYiV1UlpcNXFiLzpGMEt1PVkyKiE2J2lebEF4V0ojanQiTTFjeykqdkAscUQnVlYvIXdRLmNcND47a3QmX3wlVjhKUFVFakNNdmdfTmU8N1VlUXFvfVc9OE4zZTAuaFtbbEA6NDc3bV9lNWcrCiAgICAgIHUmdi8+VEJSIit9aTpwUC1JZl5+aGJaW1Mta0tcOUYsIUQ4UUpycnlRRXpBN1JJY1wxP1dUaWFffCNlL2M9QWEjSWAkWXRUOCVVWjYkWHQiP2BYXy9SQyd2cG44Zl81W2luaTN9KV50bnNgXC8pCiAgICAgIEhrNHl4KSdMc1ZcJ2tHcX4rMj9kIjgpX3prLzVcQ29FcCkwfFNEUUxBM1dyVH1UIXsybG05bz5yMCF8U29YOTdmL2YuejpiL1d9cD5NfFE/V2NnYns8dWRnVU9sM3YoYHlhLT9PTm8+T3wmSjcsCiAgICAgIFJCdkNGa1siZ0lYTEJ6VSUyTntoZDhoRXdIRCxdOjUjamQ5diw0Im9RMFgjKFAxcSc+S1JbWyZvS2pqN3x1JydifVBnIW1jXDRxb0tUeS0qMS87Q2tWJit9Wy1wSVZHM3ZARXVXZHRKKzNwQFhXCiAgICAgIF1TYTAxWkR7RHI9L0hHM1JoaTpXSCV7K1JPOUExLCwiPU1jejdIKCpkcng1O3VZN3ZBQGFtd34saS8+bSp7TllWJX1kQiMjY2ArSzhIfUgxW2B9fks+c0cka3YzR2RjOnhAb2FKakA4bS13TklLCiAgICAgIGdoP3tGLWI6RVlET1w2cj1HTCxaNHBnQUB1S3lOZ15ycTBqW1laZyxbb3gjbSU8N1UieVxVSjR7el9Vai16Ny5BS2VAMVgpRWdzfldrbCpXJSR8Yj9LZ0ApJS5nU15ielY7LlN7Un1UcHVNfVwwCiAgICAgICQzdkFDQ1EpKVtmUnZEI1NXPTVRVy8nYFdCL1BxTSZ9KXROMV98VTQtMypHLjktN0guXUkheUclJX5vOCRzc1h9Y2dFaFVgJm1IM1s1fT4uKTxJPiMzQH5yRCFZeD52QGpXTE1RLUgyMEZAM080CiAgICAgIEV7dUReY0chdnQkekotPXRKc0ZPSW9eY2skfSkzNHhOXUQ9SGJFT3FWcnwiN0AyeVk2X3opKXNVdD9ubj4tcyhTPVNVQS4zK2IxKXtuZXtSWFdOUzRbO0xtcGs/e1xFYlFKN1E0JT1KNnZ8PU5fCiAgICAgIF8uLiJcQlRKRX0wYEo3KDg4MkYyMHxEZVoybXMlPSJna10zPmY1ZktUSi5wMHgvYXRJZygle2JkTFpaXD4wejFqXV9pSTVSVCUqe1J0MHtVTDVJNkluM1JUayhsPEhDRGtJRW43ZnU9RlttOy9LCiAgICAgIE9uPUs9UT1YY2Z7UyE6NjoxLjg+U2QvXTVReV06PSR1LUA4XEF1NiN5Qm5EZVtAa0MtXjJlMGtaUllbQ1Z5JkUye2RlKVEsKklvSFpPRClYaCppVCpAXDdDVidXVmA3SVUzMyN7O3IhWHcuRmo8CiAgICAgIDRPaENrW010SipnTWkkQmQxZUpeLG1vZGFdNFdbNiIhSXQiaToiOklJfHpzRHJ6XiklLm1SZFRJdCJKWl1tNjtFOkZNd0Y2dy44K30nZH1yRlYkU0krVWpnXyYzVVt4YWBidU4zZWAle1IuLEg9CiAgICAgIHFdIi0oaXUsTkRuVVcqRSdHTix6XDB5XyotRzBDSEIjIXpEcD4/KTJzIiFYdEVRaG9YLWx9WSVdVkc/JWEzNFFHVFVBJiRUdm13b2t3LFFQKEYqbC5Wdm8iRnR3O3lTOG4uNXltVygoQl4+Yl1yCiAgICAgIHd0I0xOZVVqaF5lZ0M7NClmMH1xXk1Aa1dSQHQhP0UmdUs3PGdXNURWQExzYnVDK0pFckh6OztjaHk4Iic6elNzZSYqT1N9UVBHcmV6aUlga1EiZ2BNWCRLJj5fUiMiI1Y8YjpuY2pheCJSdyIzCiAgICAgIDF5Rj8+XkdtNSs6b201OT9gKGxEakg6fD92MWclRVd8fSFtZiQ0Pj5AN24ucHZxdjM7fFpWeCsoVSpRPmVBPGI7XnYwKzp7NDlIRFNBSG9eIm4lcT8/S1ExI0ZfeU0/eEc3Zjs7TDZjJmpPP3JdCiAgICAgIHl3TmQmKylPJWdmUnQzQSs7dG10JE1mPE89PTJ2dixxcE4hKGtDJ2dTIVBDbyxwNHB1JWohRX5aOyQqaW5TMTlsOGkjLjhzb014IXZENlhBVl9yamVkXGhAL3oyT1RYTmJqUCstRE0tSD45bUt4CiAgICAgIERTPVhZcGBsKilAW2AvS1pWPW52YXdUK3BFdmFpPHYuVFYvOnJtLls6fjVjbE5re3UwSkB5YklKOSprLWFCWHp4WkBcelhlbUE4WD8rW0xzYUghT1tFUVo1ZTojK1ZTUW5YOWdId2sxRmpubHJrCiAgICAgIEBNbWpsU18hW282Q1VsSFxROlB4W0FiclFIOywkZihaXnRwP1lhLVI8XlBXOUkhVXlMRTo+XiI0V1JFLHYySissZVxlXGUiRUImJjVBRDZ4JzpvdTYzQzprT28vKTFlcipOe315d05fXVl8SFA2CiAgICAgIFo0WlpUXkwwe0FhSU9kKkheNUJ8aVVuPD49WVo3akJXakptci1ybE5jWTkrO1paPWx+TTslIiRXbmY5J3VpYEU+eFs9LU0xWEhVNkZcZChpW2l8WipPdVpyYWxiSVc6NkArd0djcyQlQHRaQ1RhCiAgICAgIG89T1dPOy1iJ25ASDN1Nj47ZDA1QS8tfUVNeVk6PlRgL1dkPiVWPzpxTS90YlRcVCQwJUJtfnB5WzZXJTZ9PjQtI2Q5KGYxfHhXWG9bMntkflBZYnRDJHB7JGYyPlIrMihtY3UxcGxZdSU1eXw5CiAgICAgIEQ4aTxselJxJn12eHtifTc0WCVASzJ8UmNxLyY5TmdweCJjPUInY3hQPys4WFx3dGAsMmNdfE8rajRDPVBycnw3MCI7e0NbTFguXj9nQ2JUKEw1aFViMiguI2w6eDw8eUw/KGc+OjBuRy5naiNGCiAgICAgIHh+NjMoSEFyQidoX2t7b2JXMEpGV0BZZ29aZU08WDEmb0BgY2t2RG99P05vPkl9LjZhbzcucDpGdk03QEpBPVUwQFFpVCJRW1Q9altINU94YVl4b1IkTUAoeW1faDZCYjF3TiZJL2pdNzI1ayNoCiAgICAgIHByK3VeLH1gaWQwNyM7XFIrdH01eVltSC9mayMhWHFLTGw8LFl2Xj14LmhqQHY0LnFddGlCeH0yVmRHQnptdyglQSInVCEtODstd0R6LmRsUCgzKTtMYSkxKnx8W2soUG8iPFVlIzxqdmMkdjUoCiAgICAgIEglK31ZJnc8NDxUdGYscDFKZSVnc2Y/VFFgXVFkUUhrdWstZmMmY2BMO3Q8X1dXR1t0SkBsMTBecVJYJCU/XXh9MmQmQ204K2RlX1xsQFZQciMmMUxAOEovKmgiLGZVaDMsM2ZWTDo2YTMlI1tMCiAgICAgIEtAZkAxJjUmOSRSWGMlSWpEJ1ZsKV1sYi9MUCJ7SHJMKExwZWxjX0NMZSgrLFN+VWhBZktKbjNBazpjXWZrOTpzPTg0VWNRISF6NlZYb2xOO047SXNWfCk9cENINkdmfXckS153Rlw9VCRmRH0vCiAgICAgICU/QUJKUWd5aUJQfiFqYkMiPjEnUT5VckNzejRDLUNSPlh3MFM/e1BCSEF5XFNAakonRVMqa1EqRCgzTTpCNXFpOTQyJ0deJUcmcXFyZ2E4JiROYGExND52QEdQRCttJ2AvMFtEWEZAWjBqU1NZCiAgICAgIHpdaiNCd10ndVdmKDVva0ErKitCXGhJfTEuZSlwZWQkdTBTLSNPflZeOlZkUUVHfDwjSlFwIjRBazl0SE8/aC97eVBXWnYqVyc+LW1zeWxNV3Q/NDU/ImZXXjFcWiV6SicmI1ZmWEFzXzd9RWctCiAgICAgICQyaVFgalRqeXo8akQ1ZkhUInkyRVJ1P2xpPVgpJW8tZVBnO0lDTiYvYFEnUS5HcnpcNWtyNydXay8/Vm5tWi5zfDlLJ0YwUWp0M2lrYFlHPXhqd3plJk5lcjA4L1wlcyJVU3AzL3hDPDJ6WTouCiAgICAgIH5eRVd4U08zfUhQVkAiRzhXWjY8ezNPSFt6QzQqJCcsP0staCdgN0s8Vk5kU2EpenpnOjhzOWtUbmE/ZlZnLHVIeFwhMmRoKG4tY2F3YDl5THxBcDRRNF5yI19+KT51IT12bkwvK35tczt7b3VSCiAgICAgIF49b1pAbyRxV0JgIUJcNHUpOnhuSER7QElSYUFGaitVVH18SiIsRWFOIyNQd3pRaShPMWIsZkFVbU14UychJFJdYixTc15IR1h0S3phPT9nWCl6JV8/JTI5KVd+YlA4Ni1JWFhaQyZFfG46N3QiCiAgICAgIH1sfE93MDs3MixaZH4iZ3ZEPjF9YCQ+T08wWz1fLmkqInFXRVdQLSFec3dXc2pwbyR3dlttZXlTM3RhKC5ccSFmYXpebHFAZyo5d3E7UnMkKkAkcnlja29OeWZ4MzJ8RWFjVDRhQ0xHbTF2e2RlCiAgICAgIEVJaWloOlg4T2xPQX14SGYucCMpelRkMD4oIjxHYDtPRDFOYUFWOiEod3E+TD8ueEdxK31QZidzKEhxIX5nInVAYW1fZSEteTMjI14taEhAZ2QzYjJiTHlZT2dAUzI+YVBbWys4VG42VE5Pb1Z5CiAgICAgIE4zS0hqOXQraiZ6OzlXTmUybz1NLnN5azctRzByWz0rWmc9TiVLZVIoeC0reEtCQUA4ayZQd0cxdipVPFlyMFdgXmxSajxvclRSUVNuUDhiTEhAeDh2NioqVTI8U24qSkcyZy1ZQCZZW15kbnkyCiAgICAgIG1cP2JUcldyQmZVPyxPM1R6JWtPJVtEZz05QllWTW5yVj95a314PV9JcWRuTyZBak5MOVRZdDVremdsYU1ge0F5Rk9CRUsyMHJDXmQvezdvLk4lXkklQyYlREQiWj8nSjE0YnY0djhJI3E/KjZoCiAgICAgIHpLJkh+Nz5lL3AyY2JkWH4tRkYkMkRtS19KfiJdS3xVUiFDJ3IiLUdgUXZIXSpmX1AkfE9YMi9+e19rIit+bjc+VjxcIX07KHlUK2syPWRjfSpSRiFkdCFhVEU7Z1l7JkdpRzg2QlFEb2BWMn47CiAgICAgIC10Iz4uP2pYWC43UCFTVVpkX2smTjRQYS1+bEZ6Jyo7fjZXdkhdMGs7fHMzU1pZQEgsTWpFfSc1VXUsZGxYVz4uPFpWbz86RkhoIXE3ZGY/LSN2bE9YMSIkXGdIYzhaUV4rZGcqOiUydy86aGVfCiAgICAgIGB9dktyYlM5OityYllfNE5tSnV6Lk4wY2gwcjxbc3tafW81YkxpQEBUe15ESl91UCVJK0FoYTkka3YkN090PmlgVGdzOD8uWDNZZCtMfS1IOThdQF19e1chPHMmKyF6bXh3WzB+LHVkaT4tcyZsCiAgICAgIDh5Kl09Yzx0d2x4Izt6LzpyTVtdamRCYUBfLDNBJ1pmT3ksIiR3ej5DV2c3L2o9Tyl9XjwwSDksYkxOMUVGX1UvLmYuY3kjaFtxLD81eVhBMHE5YiVHd0soQyoiWy9wVkdpTW8zJWYrJFw3NERpCiAgICAgIHxjQD9wMWlhWSclJF81SWVmR09RfXFtIVU0LjZpMjo/UiwiZnpxPyxJendrJXVbbVUpI3xWWkozWyN5M0ZhRX1rZ11qTWVfQGNXRi8wdXRSXnwuV244d288OlcyUWZ4QCReOm5oWHZna0Q0VytRCiAgICAgIGViP0UpTz94VC5gQE0qKTBbQX11U3N7VF8pZz56b0xOUH1DXnMmfl1ESy1hREklUDJ5UzFAQnV3OmpZYnc8RXRzQk8kcFROUmsrS1BSV1FvXUpfdUJiLFFGUCJtV1BifjQxa2cnRVdVM21IdS9fCiAgICAgIDpsVH1MOSw3Szc7Ri1RSS1TLGN1PyhAZzxTdFVXJHxHPGVwdjlOfFZ0OnNGM3dANFBdNz1La05TSSVnTjArPnglS1BTVkcoLmMjUVQ1SiZeLk87LFt4aDUxKEF5eCc3YTp+Jno8OzhtdUp3WidhCiAgICAgIHchbFloayxQT1ctYiJ+JVp2SGVmS2NYWz0iTmd5aGU9Um5yUEA+YXNKdX41ZXV4OFVZXX1tOHpAbUZvejxsQXExWTRxVT1Hc2slcVF3PWNHR0RXcy5rJjNnfENyJmQ3YTd2Sm4yKDppN0xRRk9TCiAgICAgIDFbWFw7IzIsNDlINnYiWydadmA/c2JMPCtyTmd7emMmNkY7W1QkJX50fEBnNWwraH1rYiFPWHowMWdzbyIwUXRMUjhBQ24pMFUuT2hsTndxLGsrdl9xPCg2bj5JfnVzYWZFTGl4R3d2Um9fOXA9CiAgICAgIDtlKD4id2Z+WG03KCYlSkNYXjR0STUtVjduXmBIbGw2MV5ERm9qalNhJEsrM0pQLnE6JF51YTBhJzI0KWE4Xi9HOG0zV2ZtV2ROfVkvSTpuMS0sQEYqWCx9dllueWZldmwpO2t0blRpWT1TQStNCiAgICAgIFU+bVM0R1QjIUlbbWsnal1hI2g1XUlfXks4LGtsXVY8KFt2di9qYEtqTSZ+XVtxXj4tTG1TJ2orWF1PfElcKW9jYktWLEAyMChxSThiYFZdJE05ITxsJzFEWD53eSVwaCg3cX4ubE91P3NqcDBiCiAgICAgIHlhJ1U+ZVEoVHNUTE1wYjNLdlYrND5tWypcZiFCUUFSN3d8KS57ZytMR2M9JXkrbjc6b1FhYyR0QDQ6dWJffnArOWReTFxfdVcnd24/MjIyc3IzSXRrYG5ySVd7MjM6T1E9cS89KW40ez9hT0NkCiAgICAgIGtkLC9OaGx0Jmo/bn0oPF8zLX1XXG0qLW01KkZteUgnSGFTRENHY21oZURmQCZpSlROTXZKZz9nbCo5PFI3fHlKVjwleVc6Yl9AeSlIeTtPW30uSiN0eV9vUnFzVFNPLyMhRVsvMzJ+PklZIk4qCiAgICAgIF01KVtCLnVPaFVpP3Y/ZmpMNDw+Vj5MOzJYSVonfmIzZycjIjFuNX03L2VWbGI8YzkiVy4yOCxcJ1xidVMvPjFrWTlGWEdHZyN1S1FFMXwjSztOfXdKYzRiQWtJcV5xdTZVeEppKSshfmlrdiEzCiAgICAgID9jN21nXVAyPlpkIzMlL2BeUlx3ITFHdV14cncnciE1bXMkKCczfCktMigsdlRsdipfRVRbN21HSWh4U3ZeQCwzTlx8QFNHXi5SMTwod1Y1YCJLY15bKSxrL1peZlBUNSJyOHopIVsoM1JETEFTCiAgICAgIH5PY3lseEgrPUZDXFQ+XjhqbTkjQm46MSpzVTA2XD03d2l1M2h0T3c1LjBkVT9mST0pR1R9UjhdJ3hpREAyWXtqRiNKKStJLDFtSC9bNTJVbCpBRV0yLkUiKjkjZWQvXFR8SWhDVGdrVHF4K2lqCiAgICAgICczM3woVjc7QVhZb19EVk9HUzZFNDE2fV0kS2U3eyhVbS1POVIvX3ckZSpTKl09T0AjV3B1ODtjMXY+QldMM09pcD1MNitVVWoxflFiMlFxLSFjIjQ1fC4nPChNNT9VfX1ZLSUlTS1LYDx7Y3ZJCiAgICAgIDNsdFxTZT1XcnRReEVaSTkwIi5TMUQ+cCpERiM5OmFoL0N5UGlBKmoyO2xLOkpPMWI9eyw1ZzUnc180bzAyLC0+a0guWT1yWV87XzhlIktgXVxgT01GcS09QmM2akwic1tHJlRgLEs3JUNDeX5aCiAgICAgIDMmSjkoUWE9OSd9Tk5rTSlpMTQnWUFWXn08W3Q7SCJlQHlpNmlBWDxlfGlBMzEnTXE/MmliI00ha3hQdCVdaU1GfUFce0JWTytPLjxLWGB8K0dJPFtbRFFDZl09T0N8c0hQZisjXEotIU9kO3JbCiAgICAgID5TR1Q/IXI2cDQ1KUYtQihnYT8kYXU1T2B2OEgpZydVd0h+VE1FTVktbm4xRXZHOygnVGhYKis1KDNCZGxMXmsiYklaWnhiTEB6PmQhUmpeOEIxTHQjRkFYV2diPmEqe1wvUCFrMidjWCQ6fSZACiAgICAgIEl9YXNHZWIjTFRQWmJCdUY6dDg8Li47bntBU15TQGsrOi1tSmNhVidRbCxxcnEhfE5BeXo2Um8hbyp7P3hBQTxjXHp8ZldzO29EZ0dsQiR+Pnw/RWMzYnBycUR2bHtMPX4/M1skWn1JclRHXkthCiAgICAgIDVQTTBoJFdzRVZ3MlxRQkoiZ1Z5MnYudWJrZCVfKztTTCZeQ1Q4MT53V21AWVIwLTBLL201UFZZLnFQQiUoNEwtIkM8QWY0Pih9L1tbUEVsU3ppQix0Jz02ZD4hN3peXnIxNG1HYlc0bD8iOyNACiAgICAgIEQiS0ZHYV5Mb1hzV0g+OV14YGVsRHNycCFCSD1IajlDZkcweG89IUN3WUBkXionRURbaGU3Wzx8TyJeR0BXVko8LW9kaztWYCYoW3wmNFVNSS9QcDN3OkQuLSx1Mkd6SUBzdVhELEwkVy01W1p7CiAgICAgIExoamFGRiMoK1B8VlZGNXgmNk9gSWN6Nn0yTCQ3ZmEqOm5ieGtUISs3RC0zUWpOW0RibiJLNVVcc1hofGE8OkZbbCgnWlhoRSFeIy03aWlZemdRJlhCXVRgKSFnJH0vcWQ/L3M+JCcwOE4rInRGCiAgICAgIEpka0VeIiRcOUFOJDNZaS14RD49VClCS3x7J1pXVDVBLnVMYCwicWw/JFInXj41dnw5flglWHpYPGgrQTNGcCM2Y20iXy5wcTFrQzJkOlNnMCdbdyR5eGYucEx2Ikp0Xjo8U1NGQmk0XmNPPSYwCiAgICAgIG9eKU05PE9MbmlOdnQ/MVdfSmgrKShwTEBsXmRvLjxVdlh4VHg8R09uRE4zOWJdfnpfPSQycik1c217YDwhSjVYRXZ9MFxqeD0sKjYsJF9wdEAkLj8vZnx1JEVMMFNIRTBHQnZhSGZSRyU0NEJsCiAgICAgIEd7MC4tdWZXNTpkTlJVbHFMXCR8emtid1wtQS1ocDZRYzMpQUpfezF0ZFR9NHxMKnhTPWowUU48eVA2fWZrSUJscT9QVWBJN2B9TTUnMjhHZFc8d2AqSXRhJXdeV182XmEzZ2Y1UGF+bUZ9O25pCiAgICAgIHhvdiFAWXVjSSldVl8ubGRPbmw5XmJpJDpxSSI2Q0lfKSFeNEcoSHdkRENsQT1hUDtmJHddLz9lb2ptR15QLUJqJl8vejh4WCdRYiR9X1QidWVVIilkfVYxMjBGKWddMTskTzM+W190RV9ZTkRUCiAgICAgIDZQYUF9JnN9eE57Qk55fT9LNiJ9Oi1kQyI/KlwlL2RKJTJDR2tXMWp9Vk8vVjFTenkoK2Y2LGsmLk1cJFBXY2daW1pYUVhVZn0rVVtfaXI9ejQ1a1I9LldTJ35hQXtyNj5aVHI9TWMjakZDP2cyCiAgICAgID88K29oZ1kma0laZ05edH5xIStnQypDbyVuLGZ2TD1SJUhoJngtfDB2ITc2XidbbGsmVFVQcV4ieHViSVNwMFA+NFw1UkVKXmBYc3xLeDJacC1+VSszVXIiVyo8Xjw2SUM9dEcmbUdnXVxza2gtCiAgICAgIHh2bT03aSlnIyphLXx9Z1w7RzZRS1B2VT10dF8ialcsXW5DOnxMOmJDVj9lNktTTUdcQTs6LVVuN0RMNkFjTjlJeHlWamJxaD15WXI2XVY+blNbKkJVRXY9VWA5ayhfXFtjI3h6bjxgUnV9Yzs2CiAgICAgIFVrbWoxRFp0USEucEEsP0pEMiNSO29WKGVpIywlXG0icj9HXi9HdmFLWm5DJGJicXV8OUotMVhocFlrfE5wajs1cl1oQ0VodjIuOlo6ISp9XW1PfXs2NGA4WlJmaylbLGdlWWxlV3B3NV5lTSVcCiAgICAgIDU/Q0cpckhHSVBbfFFVLihtMGZdQnQ7LTE+NGdqb1BNIz8uXHlEVFkkXjorRjJBTSY8fCNBRCItZ1tuVj9SSHgqTDlLO0lfNH0/PDtoRylFJEA/ZCgwXSUxcGo/SCNafG96KkYrSj5YYXR8QXZ+CiAgICAgIF9GIng+OD04O2V1U0olY2Bqd3xxUmZHRyZ7U3xcTU9KLHJ6a05aPlZGcStnUldYRUVCM09yPERQI0M6WUt3fSgmZmQvKTlQImtMclE7cig7VXJNdW1Ye1k+cHo4LWZbWVdcPCgzYD42XC1waztXCiAgICAgICVBKEUlfSY+J2N3IVRXLUFHIXNhUkRKUDBeZChIRXZTXVYub0ROe0p6JyQwXnonMFJbc05POkVFMC9XZSpgIXYqeV9vIixaMGckbHZFNU9CQzQ9Nmx1TSdpS1BTKDxCUlJPMCN9KkxOTzJQY2M+CiAgICAgIHY4dzhcb1lad288SjtkQUdOJyYwWDAlI0c+JGhvQWRmO1VOSzo6RytDazFqUjBaTiVGOyZ2MUdiem84OnwvaHRvcWBZWjs9MCp+akwoRnZDdmNwM1w7Nlt3UyRDSXglMidGMCQ7LlBsXVxWVmknCiAgICAgIGtbeXhONVMxJmgmYiVNK2pXTEImLDQ8QH09Q1J0WGhmXy9YfHBOW0tkXV1BSUUubDE7QV8/ZT1NPEotMlo1NUEucSI1fVYodipNdTZLQj1LKTc1alsuWH4wKkk0ODFoLDw8S0dffkh4ZzkpaGAqCiAgICAgIDN+aC53KXouTFhlb08iLC1PWG9+XW9mcF1lM0pwZVVdUX5LJWViYWdMeXNMYmRgfVFEWzR0UGh8QjxALmFHQXhDYy9sRlpZSDNVZyVfK1w2QC9YNHFFS2NzK3JmaXw2JFY/bUYsI34lOl4taklUCiAgICAgIEM7Ol5+LU1YYlNpX0h+aW1fcW1YP3ApWiImb3ZOUSNTTlByczFobz5XTzQ1Kz5GSyh9eEJ2c0Zcbmt9aWRUKG41Yl09ZW82VVZCZH1GLG1IX1V3fFN9NyVSbCF7SE4mI3xfNytDXnpkS1Y6enF3CiAgICAgIGErVSFqYk1HJ2w6b0RmIz5rJEdzJFQoK0A0SVo7cEVMVGN6Oz43eWteTlJxe0I8ajEnO2ptJy19Wn4qVEJcJThbZyFNRFpXK14+P3Zoajt3ZSVQUF9TREtiTkw2aDokYSl+OmBlbWlyI3dJSCRKCiAgICAgIHZqaUxTRVtCdTg2OmFbWFNGL1t0cHhNcHdnNS51KG9adHxUejtMKmpFN05CPSdARDUpY2JceWxJQ35nSytpc3E5LjJLKHFtTnVnXUE+SiQjPHE/ITVBdiJNNDMleHs9TD5SOitfZSdGMW9lb3YmCiAgICAgIHlsXXdMbVs2KVtxJVJ1fjtBVUd5PD1zaXg/MnwlcWV6d1w4dndKLHRgVFRFZVclVHdheEs1YksqVGtSXmokPldyJE5qMnglUSJkX1IvQGIhYCoiNicyUHJGUVZpfEssJyo2SzFsZDB+YjZoXEJnCiAgICAgICVkR21sSn53fTczcW86OlNmOCtBdD9QMCxEZidvWVAsfCM/dyJfRHkmK3M0ZjxRalZwI049O35VeWQ7R0Z3RHtsYGBvaEJhWnBhO3ZwLkVGO0dsV3U8b3ZZVzEmdm4uT0gqPSQzbDxHTnQ/YyF2CiAgICAgIDReSk1gKyJ1LHQ+UUB5XDB4akp6X31XLmVqam1kemA8dlhWdyRBayE2SVx5Y3ImKDMyfXxBUy1PZG5EVSY0XixbOlFIe2BcRSN4UUZ1ZFslQmMkdVFQeVkxNUNZTys0XGRoJnlEO09VXXlNIkd+CiAgICAgIHs3IVRdIyxQNjlzUGg4amFpVFxiKyhpPU0ycnNfK0pPfGoxJnRXY1ArSjxKPXVTeHtsUFNMLydIZUE3OFxFK144XiJ4XU9mWWk9YDB1XS9mLGdOWHctVTFGLEhtNSEjSWp9cH1+aUVbaThtNVQ0CiAgICAgIDtoOSQlbCtHVzQwSzt5RXYmKCQoVD9edzlVJmRZTTdNd2lEZF5gV04zUUV9Ok85M1tUJkkzaSx0Mzd1I2BjZksyNVFHYUJGKlRTO1Ipb2ZtV0xkTVxAVl0+PVomQD9CeCsrJyJWK3oscEF6UlxKCiAgICAgIDR2PCFddjAndj4jVmYrQHYiZDw8JyQiV3FLQFRySDEhJnkpO3JJQjd2QENnUjtDdzNVfDEzXUAiSFNSSHQwTTc/cT5qUnhUNTtvfTUtPVNOcUVfUl57JGtaISU7P2wsci84OUBTYHxALGRURz8iCiAgICAgIDFaVz9fWzh0Vy9gVFlBKm98Q3B6UFNeMERNVzN6SC5wL1B5cU1hfiQiMTtrW0B4IllQTWt3W3NjelAuTXI/PWQzLjhcVnFdT0QreGZNaD42UUMkS3Z9RDBoZWA0bi56Jmh3P2ZMLl53SH0uXXdvCiAgICAgICM2I2xvb29fYHFIcmo1Z3lJXGhQLlx5VCgtITtCdDNkUGpYeD5+MCdFOyNQM1s/LSVbPF9QXTo0ZUt4LEd4K3QuUmclXEBLPlZALUtGIm56YWAtWD4uLkQuanN8c2JmR2c7WEFWSC9GeHA8S1Z1CiAgICAgICJxRCZkPShjcXIie2pPKiQhQHBqUjIqPjgoRHRBdjZsJy1hYj0tUz01cCdWX351XiFJclNXVVlMSFQ5X1kvaixgd3VVX194dy8/YzpWfFxdRHE4ZF8wYXhZLTdSYjZKeig+LCIhKkB8TCRzIkk6CiAgICAgIFxObjItY3E9WCdaSjp0ekhKQFIwYmhDZVpsKmkpU2JvbDx0UilbRm9oJkctOCpgJ35mSmNHLzxUPUs3aS1bTD8vfTlpUTQvJ21qLzVWQSVCVVhoOnFONGFmRWR8dj1fQCokTFxeLlJ7T1d2YEsnCiAgICAgICtYRTN7OlA5JUJEWVZBUmFiXEhVeH5dX24ubU5+LUJaaU4uJDRqNDFLWXtPRnF6fmIyY28mfit5bDdYJUFkaGkiMyg7YlZZLz47dTBqcUdzJ3U7JnVGJy9qe219QUZScWhRVj84PzUqMkZ8cVZ+CiAgICAgIHpnK1M2VEQseWhcWD56aDwuRm93bkE7QHVOcy1JKUd7bF04MSorLSxqb3JkfiZneVkjcV1lLE1BVDNgMjhOLjYiOmg9Myt2UyxsVktEQDYkXXFLYWUhSVRVLmV3cXdlTDghVWNIcFpbNX0uTSJkCiAgICAgIFpyRzYmKTxLSSFFWH0tcnQ4QCdbYGEvPGx9NHk5d049TVA4e09tUCZNa3xiU2p9M1AwYixYM0puUSosO1VOODwnYjZsXEZhQGB7ZTAvflMlW1l2PmZWOHx3SG0wTiNacSo1eWMmb1NlPUdpVFlNCiAgICAgIGNBdmFTVmFuP3tNcjliVjkzb2prSm01Rjx7ci1VYGNmaHNxIzN6KDI+QS4vVTglVHE0NzR0QjMkPDc7TlxrTlAiJHllSkU4PTdAXVVIRUU6Kzxfentgb3AuPXxAU30sQXlnNnFDTkpQVFFESzhcCiAgICAgIC9MJzF3WS0zVmsrRFZFT1IiRU4oQTNJK0F4dVNsK2AtWnVHbDZAaS4xOEpWSC97Kl8pVm9oRElbYGVkXk8pe0tTbFdAa00sd3NfXntqOmhGQzVUZW87VS5QOH05aUlyK0hHJnwuQ09TfSVaRSIpCiAgICAgIDEkUWFOOUhpfkt5VUdAWkpWQj08X2s/Ly05XVAwa2o8MyYkKXIyMS9cS2cjSzk7X0M0ZEJmOjxCUVV5fGl2KX5hck5yUnlsOGIue0kkSmkyIlRfL1RwXl1hTkA0d2x4UEtMIkRhfmRBdjpoMkEzCiAgICAgIFtgQkhLPWsiJ0whNCV4eihMJEk0Yz1PRlQ/aG1GIyVxeHlQI2NyJmAjTWopQVJIfXRNfmIvbE9uPztdTWJgdzpPOEprN2tARDBQaWF0bzx5dUtSfXc6QnhELHwkJU9jPnhVPjNPI351Wj1HWnszCiAgICAgIHw0M1hxJ3dtPjFdK0F1aCdfNT8uPmZsImcxaSR4SFI9YzBGTSU+aFY9THRudlF7L2tIOEJgNzZaOjpYOz1eLG9VRSE8aXFxeTlFLSpvU3YsIllUREosWUt2aWx0JW5HJVxlRTthOCxfLEs4XT5tCiAgICAgIH42dXAzc2xjcXVjQXosNispTG50NFNPKmtGK01FOywtYXxzXi8lKko6Ji1nUGZzMjpWTSo2Mi00cydvcCVEX0NpfX1FW1gnNSdCYC1hYUNVMCtkTCRHKGJBaUtvWipoWGh5bmhJakAhc3JCYkdMCiAgICAgIGA+WiktdWlOJFhqLEtrdEFDVihmOiJ4SjB4WTMqVXF0L2gqe1RlRzImXSknP2VsQ2RWTyJGPF08PTJDeFYlKFNAJU55aFdWMHY4OmolOTVNRD5ha2pLOWxJMXBnVTBybFM8IVAtfSVERzM3ZS9oCiAgICAgIHNkVHB8MHgnSGBgejopXj8oIUolbTpgNSNhXXc2RngrSVNlOSpaLGAnYUlpd1trKzR0a2taW2woTyY+fkFKXFw7cns0NUZ0YVUuN0xRVCVPJGxBZD9wei44aXRxUVdYOi5cYzxkeXt4R3A9XDZhCiAgICAgIH51MHdrVjA4IyhuQFZlaSUpfiQyRndCJiteTyI9RFdAPUFQeUwvdmFVIVoiMmdgREdTYXsra2psXWRkTWVsMC1nI2BRcUMtMi9QK0cuUG1ZVEBra1g3cSRFd0hddzEyPnslW1RNUHg5Tncicn0/CiAgICAgIDcwQUIqP3ViUF5uZVpdNn4mXDB5OT1HKTdQXHw6T3kzRUEpXEl3bj5eW05jJS17P0pUOCQyRXE4PXB1S0A9SlBOP3YyYF5CSWhmKmNDSzxQKCxgK147Tm9IUFdxWytwbFRedEhsT0ZCWDNbKS9HCiAgICAgICxVXVpvOy9UQ2hsZ0hjJSRIdCpDOHIzKEU9IXtmYHFOKigoSFMzMFVbKzFSeERpQXo5WnVtWWlZVmhnLndxJ2M2OE1HNTRteVtLZlkrRz1rfFNFaTcoKTAucT1sVi9UeURyelJ1IXJaS1Q2W1ZBCiAgICAgIEUsYyxeMVswIyhPXTJPdiYiPXNFfEhwUk4nNCxiKm5IP3BgJXt+KURZOGo+ZiQrfmpSXHY1c1tqcG99SytvT151VCRDZ203Kjxabmk9ZnNzMDYmO1A5LmMlZG5NREEzPyRGYisuZzxqXEJhSlppCiAgICAgIFZfQlRMXXFMPUFrUEZ9QThdOlNLQjEnfVUyJm5Mcnx3Q3JNM3ZPaGhEY05pIzx0VjFia1YrbSxHezR2bmhPZExvSnIhYFk9d3giNkI7L089e2A3RE1oKCJHej0jb25wKWV7ZSg9XyJEJVZifnRlCiAgICAgIHQ6P2V1K0FEIy5sYGxOejBvcVgxYFIzJHtIV0tdNitSVjc7I3U8bHgvfSZhNCw6e3FSeDllbix4V0I9JzBgRz4pPHVjaTpeLUZ1TlJMXWA0ZWokSUJpeE93Q0tIT30tXWVXREMoJSJMTDNQJ14vCiAgICAgIDdmSHp0MEQ5LXQsTUlpWXorb1c+fCsoWz55UW9LZkV4YkVhbUtvTD9vZ3stVUtvb1p3OD50TiY4fCk7LzA9YWAnYFtQNlk2WTB2NlckSj5HbkBhOC5UO3k3V1pGfWhpLT9BNGVXbFosPSFxViw9CiAgICAgIEZSbTgwPVNMcnUhI115R1R3JiUoOz16JHhzZnRdXkd0MSU+bWk7NnlGX0gtLUxifTcqWnRiZTx4NTo8IntCWltLVCQ7b1smVHZFXXhYdmBvKUxHbkVUbDdwNnUtJ31RK0BsXCkzPDwmMnA3SUNiCiAgICAgIFJzeHxPMjlKOVcjfXlZcyNZSShtZm1FIyNWaHhtYjVXdC9HfDF7VXVlWEIsJS9TcmhkQCwvTlo5bnVKO0stbkR1IlwkeDE1OHJcekowJF0vaXMkVzdwVEoxKTsiQUZDMEptWzp+QjUuVWhcJm9sCiAgICAgID5+Sko+YEV+Y11CdDE4SGIva3RKQyZ3YjhTQjEoJDBWc2YxLzBQLUxMTGp3YlJMK0o/L1VTO286SC12ZUhjK2M4eWQ6QUJdXT51K11ANHBRKnBTOlRpJU5kaWdtIS9YYT1NTUppNjFwXEtqQ0BNCiAgICAgID86ZGJ0KSUmcUpockMnIXF3W3BgPnUpKGFRdDVMZFhjYDFMMClKJnhXaHZ5SDF5WEomfWEzO1x0TCc/O206UGFCcGQ9an5iaFB+SyIweTVKbVozQi9xVlBXQGspNEgnYkwyVCJGUTltV0otKzJHCiAgICAgIHgvLUYzfGVpJ1d7OUlZLCo9ajtjQU00azBjLCgmT1FqcD5aViZ3S24rMld4N1UjcGxMbSwvUVZvLVJcJix5MixPXkBnOEM7djEjNSVmRDExfkNUYC4tQid8QjBaREcufXVfL3VvMnBzVl9PSVtcCiAgICAgIF1hS2FZRDF0KTFuaE09Ly5MLEBMJ2NdKCJvM0tqLjRpU1tlIX5uY3lUdUlCJVEsMjxALjoufmxZR2w5bjd3QU5FJzI2LCtoQFgpNWZsU2NNYXN8YUd3bTBRUWRqKFJCaDZfVjk1QnF6d1QxKmNaCiAgICAgICd1WyZNT3UhdHYmSSVBMDxRLTF+ciEzaEJFMCtvMy5cUDM0blMqWmlmVHUoPUclQE9+fDZvTigxTWBuNUR2WVk5S1VDNGN+eU9fWnc7R0xePXRgOCVfWlRgJ29FT2VLQ1JMcC84KVUwSS8tRElZCiAgICAgIFtsUklFYH5AQDRObD1sV0EzbHdDQDJQJ18qTlx0JkFdPVp6PVFeMDZHWTBaQklONlAxeFx6PTUtWTRjdCg6UTouPGssQjlRTyQvXipjWWE0Z1c/Omxic2kmWXJhYUhAMVAuJnw1YzVgZUtFMCthCiAgICAgIGlPYC5QbWdELl8zTyxOQlhROzh0YnAyTzR+cE5QViQoYWBVcy0scWplWnZCaUpRXHtRbicpdUlTfWN2OUB2NjZuNVo2ZlEhQTZJSl5IYDYlYVlVeHB8TD1LbTREdzFabCFYL1ZkXVdWfHIwXVpbCiAgICAgIFJRWCgoX20qVTV7VUAlbmRCYVI9PHBQVDBQc3skImcpKGttRnF5SVJrazM+U3Z7LD9xRXlhfk1vW1VnVixAPEZlT1gzLmo7WHVReHBzdGA5VztWOzlAWXZBKS5rUlpJbVgvXzt6NEkqOENjdltfCiAgICAgIEMuNnd8MEAjUjA1ZixmKn01Wjd8N3JtRT5LKzkmJyE5aWgsaW5jVGdoSC1nWHJBfk8lOj1FXnZKL0sjalkybjBhT2lqOyhSaUtLWjY2KU03YnM2aGI3QktfWX4jJVtLVTFGQzpye092KWFvLnBACiAgICAgIF5XPD5yejRNKXdOQztnJ311Lz4weClOWSxbMlB8XmIsQU5XVUlGclBoSXdoVFEyN2taT1YqNiVEN2NRb00sVDg9dSI5K3UsNHBNQy44YihoJSYzVk9saXljXDJGU3QjOktBMmh7dzYtOjFZaEBoCiAgICAgIFBub3dBLVZfLDlNL0kzYFwpQVtDU0RLKFRSTiNuYE9kcS5jYmJsZDYuV0hzcT0zNCg1OnFNP19paUBNWSYkWUIlNl17Vl9RK2w3bUEjIWpKWHhjKUBOKE5JIXdMeWRtQFN5L3F0KiZlTGQqPlJsCiAgICAgIGgmcGojKk1PNTNsPkdbODxQNFdLZVBKRG5JZVFRMXxOfFBCPX5odkJJM2NfR2g/dW9kWzpNVmI4MyEhbShONWdHXnNeQH00YSg9Zj4sNUA+QT4udlUuUlFUTVNPVTN1ektQc3FsNWhkOEdbISMlCiAgICAgIDBYOEV0YjZkLlpbU0AjaS53PldodjgzOSkiYCFyPSxdPVxRISM/aHA4JmU6O09BUCsmVldoWkddamB+XG56RXYucCxiKF1DSlx8MjosRFxpR2tDeCRaXlVqfnBvOU0mJFgnd1QifCFiQnQpdUxOCiAgICAgIDE7TmApITF8WlFRL088YSw3TGZsfjRxRzJEVHEwNk9tI0A6STZmY1IwSDxZbURpP3lzUHQ/Q24vLkhdUGZtem5oQXRWJDRAOnNmXWtcc2xoUi5way8kRVBPRk54P05CV08yS0o6SXc1cmtvWnh8CiAgICAgIGZLIXo8W0c6PCd0Wn1TI3BCIn1XVylOUjZGQSpIRDdYMS8/T0E9c0V1dT9rWE4tSzR0QXRjXDVFTlVpayg7IX5PKCwtPC1iTGRtL00+aWoraSIpUzlzYUgqPT9YPlB4YW5aQig/dUMyY1Q5STBmCiAgICAgIGAnaz4uI3dEe0VcRExARVhAKGVtKn41ZTNQamx4TGVoQFNbRSltREN6NCpDamUhJzkxKnZURX01UUpPJG5vTjYuTHA8eGlybHBibidrWTx3Jk9sV1N9YV4qLX04ejtSJFN3LVE3YXBVLGpuRS9JCiAgICAgIHVOJFY3c0VrbWlbNlxTbzQ9L25gazxOZCxVbGxWPyMjWGgqWU8lSXg1LnVPXypeaHUrZ1s6YUxPNTMiOC4sV2QsVGQuXDA7ZUh2MWw+XjszenJRbEl2Y2Y5OEZvNXwvYGZ1OC9fKl0oOlQ5ZTo4CiAgICAgIHB3Sy8pLWlrMlQ3OkAwb1olYEplaSNDUzFNLmx8Ykp0cVFkVVl6JGQuMTxbS2RVOlZDQk4uUHh6VEslX1NGfCIiUkNFIXVVam10VDo8UGJRU11MIyxdUDRIXlh2Pk1USEkhSF1CLlNYSnMpMDhgCiAgICAgIF1aZ2BqLjZrS2Mqb3skd1E6VjhpXih+LU9Pc3NhaypLOlo+SHxKfGIvMUxWIz5nLzd0VD5yImdtWmw3VntjRlszJCRDZDxFb2whQFtRVy0jQmNzKGlLeC9YMmg+T3I0d2J6MGR0R3dcUilXISthCiAgICAgIEpKLFtGQW15dT17OVp1Ljd4ZiE7UjRHYStkSXt2LHN9KmtxKElfUSluZFZqNFZucTxvPmRCODxaeW18cUY8MldNa0tPRCM7cWVIUHkpWnUwSmFfOHZLSyw+On5AeXU0QWFzdHI7bjFCXl8xTXlYCiAgICAgIEU9ZDckMGdraDl6RygxPVRaSWMoTWhmXlYkMzx5WUhdZj9ESXZHeX5rYTJ0ezppSUgzPmcjK2RuXHl+QiZhNnBkRzxNaUZSbTRQb3YtfTVoQzV3Zih2SkUrfXNANntJXTFXNyp3UFxIK1E3Qi04CiAgICAgIE9ceUdyIT0xc0FOVTdgIkE4WWVbUDMvSyQwX1s1SjldXzQyYTYvfWl1JkB4IUFPNH5HSic4eVp3N2NPQEtYQC1IQS47cUstPSd3dGI+Ym9oQGkkcF5TIzxkUS9PNj8hYXdFMCdhJi9sdHBqXyxaCiAgICAgIGJLQHV+aCI0QGF7VSV+MzolWkFlIXlYZHA6ejJEQCg+anRGW1c8Y2dxZ1JLIXMwRipYdW1YYFdNTnooKTdkIUxrVFw9eXEvOmV1TV48OlguZm9oVy4pS2dkSid1JzZCQSxiVnktNmk3KzsiU3xFCiAgICAgIDk9NjZIMHQqeGF1QnVEJkJlaXZ6UnNCRkZZS0U6XlAlJDNaV1FqIi5iLyV+VENvbXMiOEVwSCNmUDVKPDNLMTF0TEN9TGR7T2AkOTh4OVp9JTolJHpdXkIsVkg0SStAfVx4STl7TCpmR2ltejluCiAgICAgIFs7ayxda0w5fSpaaiZpYz4oX3onJTBCNCoyIWNDe0djbkF8bENBI1RifGFhOX1ka1AocUYoU0dTTlU/JmdDWUIxVjZtTF9GfVVyY3cnfDpxNUtRSjVbfURcM3VpeUxaQWs9N3tQdXE+djl9NHFrCiAgICAgIGV9O3d9NExbSnsoPnR+dC1vYXdReyw7PmZyUlpcZUxPXGxRSnsiYEheRSxsIzZgWGVEKTtuRkpXP1ZrNGBhLiEyVnQ0ZjM4JlImVEFWRS0ldGlseEFLQEFbW1VZMlg+OD1KSyU5VGtIeUopQF9eCiAgICAgIGEiTyQqRytHRihxaHkpYGMwL2spTjc5YTBQKlxUP1RZIikuPzRRcz81QnFiWCZdcyV5VH5KT15iRUBON3pdUiw3VX5vZXxzbiR4MyQ1OWZqW1F4TEx4d2d2YngrS11hUDhDaVU0dzhzbjdYZiE2CiAgICAgIDAnIj4sIW8rJW11eCp8UT9Ee0dVWTNRbV03KWtdRX04TnEoQUY5XClTUkVRQ0ZWNSRQKk5Kc15nNnlVUTcrPzNtO3ZvQCt3Nj1bNGxUJHB4TEczWjwoQFwvXUROQmJPd1lJVEc7WnxRPlt6LWpqCiAgICAgIFJfR2RDJDcwLWxbbiV3PyVNekM3SElNZnA1TWhUcT1MbSdGPGJ8Nz9sTT1idFF+QlRTMyhVd11yJlA+Nix+VV4xSyRIc0lIb2RtOVdNTT1ieDxYO245cSo5aGpReSIsVjZCbVU6anlUWzdnWDgpCiAgICAgIHNmQEM6PiRGM19hSkwkRyc/NHZZaXpfakAyZTRGWlFlWConVFhgK1E2PzpMKTFZdVN1Qnc1c2ppfndcVT9OZjN6Syw1QDkkQmFLKmpWeiF5Z201PVg/KW46Ji5+XzZCNXwxOE90OCh3a3MsO2N3CiAgICAgIEg8OiQ9Wkk2SmoyTi1HMEg0bVJYclxlLHhWZm48ZmxbfC9WR01oMlJ9SUUvOFxOUC8/X1pRW2t0fE83cHVsU3Q2ZW4wMF84dVppYHx9UXkoKFEzcSNaaEJzUWxsITAjLzJKV0VmWyJ1JHRzNkdwCiAgICAgIDJifmkoR0syYTEiTURIeG1iXF19PTpLQE5oVyFVU2dFTDx0PUIuWkl6IyEzSC5TcyxqL0w4cUAhOjQ8U3ptLCZYXj9VSGxBIyMjLlZ6Pn41NV5SSlN4ZX4nTElCMixeWj0oOkwtPGRadD0lMmM0CiAgICAgIHJybGZSbGwyTEk9Yl1Sa3JtfS0mIm4laSchSytdV2FNWW0qPU9laTxiTmViXihWdmtoSH57QmNNWWEqdVdJTFInaD81bkZLYS9yUjZqRnkiZVpTWmx7SCVwXVNFcmh1c1x1OS4wWSs0VXBlXT1dLAoKICAgWyI5NDkiXSAgPSAgLS0gS29yZWFuLCAxNzA0OCBjb2RlcG9pbnRzIGFib3ZlIFUrMDA3RgogICAgICBbPVsuP1AqIiVKZEpZLlxkQXBhaz4+amtsQEB2bE9NUCgySFl0RHFaPUNFezZ3ODkkLVFNQW1NPXlqeXVleHQvOV4+byIobn1yUk4wWER8ZUh9K003ZmNeZiJnVjtzWUEmNCItXWdZSGYub0lHWgogICAgICBVbCtXdD9Eb150WCtDKWlTQXNqVSEkImNyRn5TX01WPzlfL1ooQCg9eUdyWUB5RF9eLzt9ZG1wX3dZeCVKJSJfa0NWL1M7TndDK0l6STcqMGFHdXZ+cXNcTGElZUkneTQ7bU5sa01HTmtRUj86VwogICAgICB4P0tceixWKCgrTyhaWW0veEdHcWlrO0wwa3wzaVdzQCJ8OD9AaiVNR3tCSzFEazNwWEhWbk5eMFs/WCNLcXB+ZmQzd0EsUjtndnp9PlhCe1F7Sm8mPikjXSdDZiYmVHtUUSJIPXxoXmF1UzY+IgogICAgICA6MTBfJC5CZVVJLzdUenZESndJezoyfno4SU8zfVRfbjpPUlN0RDghTS1ra15nRFxJODZHMzdgajUsK0IqLHZTfiQ2WEYiPkE4bzcpJ3BqNSUzeD9ud2Yza25SeDFcSFpSYF83REIzUnpqW1F8UwogICAgICAzYngrI0VWfHp+XTNNJnBld3JqfHEpPVtzOmlaJVVGK3NaZCR0XHNWJUNEP2NTT0ZFZzB4aXpSfE1FfmA2eDBreCdpbWYxYUJ9XlFsJFJtSDhDNEtmK1cyKDk7J3Zfa0ZzLH5tSVc/VjpJIXg3ZAogICAgICAtKHotQVtENkIzTEhjTzFJKS5EKn17QSgqKSF5elp6QUVKa293a2YqJHBPbHVCTl9CQHhXN2Ekd0pYPlJSO3BcIXpoO1Zze303Z0I0dit1OElyWmxQaGtebUB+MVR4XGhER21GOD4oTjQmITEoUAogICAgICBKM2tzPSheYioiIXJ7e04vY3hbQF9+Y0pZYFNYaSghMS5HNXE7KXR0dDR4V2dvckliL1luI3B4TWxsLXBKLTV4RyU9YVNkUScpaVokVyxNdnIqQlc1O2cleWg/UFZlIjM6QiExKzJObChBM0xrdgogICAgICAuQUFQeiglWng2Z3U0fD14dWZCRWsxY1klcUlsJUw7W1JCOU8qVVMjUlFmWz5Ub1kwWD0rWj4lN0N+dmtweEwxbXBGc0o3OzQ0fHohVj1zLXFLVzA+el14QzR2UHFcbHBEc3JpfTBFLEtBPXo6XgogICAgICBRK3N0KEBaZ0s0UU5qdHM1WjZ9MS1PRT96RXpOT1JFbF0jKWRKcElSbHFtcXs2aU4sfm5ifm1hLi9ZWEVEXmI+Mj4sPjZtclMjPjgxNS0zczZNOGdlaVhpeSw0V142MmNjTS5KNT9AeEMiWWA9UQogICAgICB5JEE0fHpJaUpIRj5zeSc2aGghc0J7ZURyYS5lV3t7bVRaRzswY20+IkZkJkJYWV1EfTJ3JCV3cm0lLlYufVlUUjlRPjhBIW1nSCUqbSlnTFcndlNRb3UrOyRNMXpSO1I5Ijo4elszYnxWSkI/ZQogICAgICApWjJyViFAaz4yfC8jVy1IKHBtZVpcIj1nQjo2JW9Pfl5OR305M3dxNXN4JVJNaEk5YjYhNjBeWHkxejRHKjBFPXw2J1duXlAlO2p3SEZWYDtDM1A+QVQsMmxOTmVXbScqfEpIPFdsZixKW2srOgogICAgICBhQzk8PWxVYVVeLCYoYU8pS2ExRy5QQ2UvOnQyK1V4bnw8bXdxfVQsJiF1YjheNTouNXROfEl9cToxJD9eIm1rNnp+fH1qdXZ9TS9MJHAtPVpzW3UlUTYyWXouVlhPRn1RRV9FemFjRmlRcHBtOQogICAgICBHI3ovYk1VKDNJXj44aC1STkNGR1ckJy18WDYwa2N8Y1lJZWl2KDVYPz46ZFJ8cXctXi92VHZbLkE+aVNRZiReaXR9K3pwJj5iVEwqU2QvdDBOJUZ+Ty4jVmc1LytBUDRGNj0qInt9c094alR+aAogICAgICBpVzg3QSUyKlZKLSZUbkV4b0dhJWlpdG02Y0p1WC0jd0pZcSw9L2UzLFdBfUY3bW9GP0dHTkt7ZUFfflxSIUcmPURxRVZ5TEclKzhgZjt1aUcmKnNcTEo1LUAyUkV5dm1cO3FlYERWcEI8bnM2YAogICAgICBaaHxYbS9nO2QlJE5rXlUsWE5hd2ZFeltuci02NWhAZlZ2NV5YImN6OSlTfHRyT2dtaG1NXEZwLiRYeCxEaUE9V2JSVSIjMlBJJnonZ2AvPy92LWQhTjFEZ1JmXUI/UXxZTmVVaS0kNlpYR2c3IQogICAgICA8eW1ld0Q4Z2VtXiskeVNNKkt5XFdbZkpvVWRWO3tKcG5WJC8rZD9xXzBoSldJUC89LUF+ITRVR3JYeUxRTltcV2NdZy4iQCUlKi9VSnJCMDxrT0l0Y1soVXw5RUxAbkhieF94PD0hdi8+KSxlTgogICAgICApLEMxUStPbGFQTEp7Yi1+aSVgcX5EVFdEVXxELUo6LmxncEx6SFpmSUZPNFtCZi5RLltjP2Y/fClLP18wYX0pa1dHKFIsTVZtVVhweWlhNkdzMCM0JmhkKi9+Skoke1R6JUlDNyRXLnJWXnk8ZAogICAgICBJS0UjRF9aKVl7MmhZMiZLe1dPPyJfZnw3ZGRVUXQ0QytEUyc+ZEx4aE4zT2gjbCY5RC4zZFEhYDc/Yj01W0AqRDk0eC4hRnshcCkrUSpFM0IhPGVvUHlJLlNOcGRIXSFAZXM9XkYnSFAlXkt2YgogICAgICBSPmkoSXwnN1NePGVWeC5nMX0sMHw0PHZLcyt8WkctYzpJaHdnJjlQVXRlaSxIdSMkPUBGJV54T05bNSt5TVpRbnIlenhKVEdEQjMie1hIRFJQbSwqMnxEUHQ9fkZwUiVpOmNjU0BdbG9dYT0/PAogICAgICBYXVtTN3o7OilRKjdHek5LUTdXPWArWCpIRStlISdYXlMscFl1TG8zZSdUaDhtczFhLFhRbCJsYT45PUlSWEpRYnZLPWduNHo+cVkwaG0nQ1RsNzszPCMvWSdoRSlzOElyUmhwaVxoeyVwMyheKgogICAgICAmUlpBTz4+ejdWS0dLNltIfTBBTFtrQTNXcnJMQm8uMUohOlZlNGglWTxzO24lLGJrZ1dGIm9gVlFBXVthY0osd11zNltkLkctJGQqZn1lJHBPS1dwQ2VtOW90VTI5P2smTlhcJGEjJy5hSVl2OwogICAgICAsUy5aZGkwYXFebUNucTVhSH5CIWFmbzZWW31HUGslS35cdUknY3dJWG45QnhNQFZqPDIhNDciSlFrLzNFMHB7M3ViW2J2PiQ/fCM9Q0BvISxhbF8qZX0saVM3PVw5JU52S1FmbTl7dWh4NC0vSQogICAgICAsbSl7Yz9WS3pZRz1yciJMKC02MkpfLTlSODxWZXtKOzxxSEJBfH0pYHhvX28xWDUhfGtcQkstLyw0MUtzciRUNTkvbEdGcCVOMWlkJU5XQWE3XkEtKUM8eS1ZJU1rMSxlXyRUP0x7Sm43TkJGXAogICAgICBPXTAmMHkifi58LVA0S2c9LE1bNn04XGZQJkB8PHJEXzM0NX4tPiVaRWUtc35gVi5fQX5fV0hdNjFdZSF5I0EwSDIiYTBycGU5IzJiTERMOElwIilvfmN1LWI1L1MpeyppW0xAW3g4QClZVD45NAogICAgICBrd3koU2pFd0tgaVBCNDxuemVybVFxIyUua0p1Ul0yM21vJltcc2EsTlk7SSgjPUBRLTA7JnB6MWM/aEtBYjhfLUYtbTQ2XlFgYUlcMGhwSy0jNCtKV18uYEZFM19yVXB4aVcpMDZOMyEuXil4YgogICAgICBIXSVWR0FIYC9ZLkB5e248dnAmam4teHgwPThecSQ+Vm1yUTApMWlpMSEoMig/dFpoQXd6M3VhUzlPfmNzWDtCSF1tPiclN2E/cm1uTlB2ZUd4QGgsYHxCPEJPb3NYRilFRHJiSTRaSWlmWFdVYgogICAgICB2XlwyRzdpXkZsMV17MzBcTUdyZk5OMD51cGVxP1tCYnhKfiN6fHdacXBSZGMiU11yb01OXFkwSTxWTHBWZWxcSEFnV0dMe1wwMFEybF9PJ2BHLEc8O2s4MSEvezR2fk54ZVVGfVxAa1ZoWDUsdwogICAgICB5aUtuQyZoNHJ7UldALDFGPVAiIWNbfTE2VyliJCJeL1Q1JUx+WmF8V0VkK2s8emxJYHIqRyJkKWVwLm0sQzhzUlIldWpMZDdrXTtmfWM1bFNUUUhLOj1bZ2I9PCpAYnJJRDVAd2l8YWpcQC4pbwogICAgICA4SG96NjhWeSc7Y1NTOks5OUVyJl9OciRXJFAxYXJfaVpXXC92ZWFTPyxBJ2N0Zy90IU4nNkxlQGA/bnpWJ3M1SzJEWHxxZE5YISpnZVZ0YS11fEpTdVRGInN3XCt+IU4oOFJQKEojLmxWSjI3agogICAgICBqcydZdHUxd0I/N3VAYSVPNXVJOm9INDVKPDAuTE16Mi8icn1iRnQvd0d+b20hTjNGLG1IWFlRMkQsPmEpbURDQClIVzJwU1t2Zll7M31SbWg/Y0liay1YXG1qOTAjOHhlZ1FbYClIJjsjJVc6SQogICAgICBdNHQrclhMcyxcNCJ6L2Riei0wO2xWOlpyIzdTTV1lMCY3NER3fDMqbWVyW0pEal0rWUB8ZiJfVC55aVZRTDJQYCZsSFR1ajBZUHBXS0spcFNaY0t7SVJ1X2dmRlBSR1dJSF9sWSZINFxpVnUvegogICAgICBcJU8rOCJzWmkkRGprKlBMW3NUbkVCeXleZ3t3dW57KEUkbFZTYkt2Jl93bUIodHgzMSVTPSxnN2otPTdJXXxAZnJ6I2NjfDJTR35JcnlIL0pdKCpzZydyRSo9WG4mflRmYCIkJ2F1JSU0Uy8rbgogICAgICBwc0NzIUhxVTY0VEZqcz5Ybl1dI1YyVn52fnlTbGRSOns/MEBAPjphYz5sMVxMLk9UMTQqN1h4PkpGRy0jcTAuSS1VUiFFLitVV1ZJXFJJUGlGbjV+Rj8pJ0lWKmxnN2Y/TS8+ST9JTF4uOGdpawogICAgICB9JmYrfDNtXncjUFZZbkBBPFBpKiVbS0dzKi5uIV9QdFknY1tQKSg8RkFOWlJYXmx+Mmd2OVMrQ09DcDRYZTxPW0dFPlNZeTNSMSU6Z3M1VVA5bnA+O1YxMCd3QjUtLHdyU3RAQidKSjRhPX1OTgogICAgICBWPDZ9aEY2On5VS0pJa0pcT3FNcGV4Jzx5V1tjY3c5bnk9QG1sP3xFXGl+L1ZeTndCeyZWLHpcfDlhNG50d3cjTC86Wj5XSD4rPSFKMSEjRHpNJF93L0RWVT5PMnlfZHVlLU5uIzlKT1hRfV07IQogICAgICByYnVNN2pHJkA1UTByPHNpZiV1dilQP1R6fnVING90SmooIUZcbS9iSWVeJS5xIThqJz18dig+dyRrLm47d2pASyV4V242Ul5CMWRRUkxJLFQ8XldwZTpBWEdAOF1WUUZjMjF6PW0tVFQ5anhubwogICAgICA0UU5tMWRCZVBzPCclbDRWan5SYnhWMj5RTDxidDMqI0xDRXR1Mn1DfTlZWHVnaiZ1V0EjdmBLXU9SRHtjXiEzbjBWV0swPUlKOGdaYGh2Snw1Y3ooIV9eRz9CfUU1QXonVnRPeWR2RSpEYnBxQQogICAgICBrKjBpbiw+ZS0taHBnPi5tem5CMF04PV1BeldPbFs4emYrclhLRi04eC1oIjkyVmtWN30oPkd9fGRULDo7amQ1Vlp1dHovXWBTRmhoQjRGLy5hPWg9Yy5gN2k2a0pGZ0YlR2dhYWVedFo8RjpTeQogICAgICAnSXVJczVrY09bfj11eCxpM3tNX1wrKFVvM2htNE5sKUxJXWo9SFRWVkkkQUE8Y0RSdFsuUVliUEx8LSphQ0MsOy1DQjt8YylUWSt0eHVdQC4xez8jYW1uWDRyNS5OJFxHeUVkbT5gXVh+eDRhPAogICAgICAjKClURXondXsmVzVyQHhRfClJcFFtXV0ie3okNHx+eWJOVHN4ImlveStFeTU8IklbfFA7Ym9xSik7aUlJLSohRksyPSgrYyxpXTw7emohbyprXVlvNz5eXShHKCMkdDA0XGd8QXEuJkJpTUdbOQogICAgICA5VTo9OX1XXSFMaFhweWd3TXlBMXpBYDghNzdYJ1N2VSE7fG5iTyIiY1NkW3pHeDBYSDNPSTxxeUEkej9vaWoyUEpJUyZWNElnR0U0WiIweGgqJmk6diVEX0pmVDlsO0M/Z0FZfXIxKk9JYTpHLAogICAgICBEcmVqLVFKPUFnPmw+OSxORU8tNlF6Z2hOJERoKTh6LjJAWFltYGtDJGhuXDh3SFhJQlcmI34oO2JOcypnQ1skUChwKks5Qls3P25PVz9eMGlaSiR6LVJBUWV1UTFeZmJwRGN6YE4jQV4uSkNRfAogICAgICAzKkZHQC9EWUwrJEh1YVtMc2JWKzU5KDVwJEl8NmVSImkrJClSYGUtKi55S1ZBR2FrSTY1NUZ9eixiWW1uLl03SS1mQm0pPDsqaXV5TXV4bkhTaDgiIi8zQHp1RCorOk9ZJEplLHVnalk5XXpobQogICAgICByVy9lMjlYOTFqZE5XPk4hOCpCKiQmencoKyU+N31pUGNbYk9DaFhdfSRcVSdzVjsqZUkmbkouREptcls/cXhQLUZUaD1RfFVsOTxIPHItUk40Tm5LSmAwRFoxTWdnRzwkdzo8W01GTy0xPlRZWAogICAgICBLc1E6ST1BZjk1cEhFZmxueXcrbH1ZSzxnbkpyaWEzV3c7ekc2TCs1aictIX5LYSxjfClfI1UjSl9tJUJXVVVaeUAjO3slLlt+OilRUUM3L2d4LnE2Ll4wUzRMcys2RCcsPSsye35OZjxpTW4hcgogICAgICBrbFNhVWR3WHVDPkZiRmFqPDQxXzBrYDZSISopNjZ5LDYvZi98amh0O1Y7aWFuRCdTLjBqcVV2S31qazR8NjU+NDt9X2FCRTY+amIrSENEQjBgQGc9K2k+ZlosOnIrZGg4Zno3dmA7VjgnPSswWwogICAgICB7QD98aXhnNCZ0Y3RCU1J3UGk8b3MqbWlbPTU2KjZYZkgrZEVlTF91KUlKQmJMWy51YS4qVU5yRFl7dWdhTzFrUS5wUEV2bGU0SFBSMT0iKE1nXT57MiFxJVFNXTxUUlhmbEZGT3J2NG97LzIiJAogICAgICAxaj8/cXtIK2tvZldGWnNGXWBhTFJ+KSZTO1g2Oy5eTl1Pd3EmW1J2WShaVWQ+fUpkXnhxaSJ5L05IXlJ8W3YvaUQ0M0F9enN8dXpDKic1bn1xLnc8PXgzbXBgZEB7SDVOZ0hUfU4nczw1c01OJgogICAgICAhUnF6bl1GcG8rbCRqfFIhYFBeTjk+cG9VZUBzanNUUFZYc3lmY1NCTl5RfWQ+NUgkKSw+SylKLE17NSRifG1kS3woTjorcTFuLGBqSFxBPTtfWCRhRWFEY3NAXF9KMG5cVDddKidSdGIhKVVJIQogICAgICB0fWlcKCoxLm9OO0lqX2Z7cDJQaC1pcntQWnRuZlhDMjZKeS5xZWIvYTtFJSZQazg9SydmeDY2cyJnTlZrSDMzbGlKWUgwTlx+X0Q6V0JmVj5ySV9qXmExTyhsVCNMOF9SKE1lbDpoXDIoXkI/UgogICAgICBDdD19YXpYdihWVTowZ1hiNzhHOUJWMUljOClyYCJvdEZWUFxnXCNRUjEyantNaH1jZDMxSmJ4RmBNZjI5P0VTInhRLCl8OjlZQFwob25Wdj0hfEAmYkhsIWddc2R2UmQ6cHwuO3l8WjJzZTt7bgogICAgICA9dEltN0V+JVovXk1JZDl1fj1xXWVIenVRWG8lZCg5Z3IpIltIX0Q3PlJSeTlFb35MUWg2RnBJZ28ndip7R2EnQnlbe3EobzxmcC5jfi18OHpSeGlbWX1Abzg3bCIkdmNKeCduZ19gTldoRDooJQogICAgICBJN3Y7fjlnKW4ocWJ7SE0yeyQrXCYqMyU+UmMvOHVPanNfTSpNW2phOTZoZD92PVVePFJ7OWZlTEFQPj9ZWShWM1dLRGZCXCIzKnAuLno2flxYYXQqcVd6QXh1KS1UMlh0K3AtWXhEWDInUXJJOAogICAgICB2YXctWUM7LnBHZ35FT298OEx5MGBWVF1DWEJEMnJ7fFZBWCZPI2Asd2wsR0VRL0RVX2xyTWB5fkFgbkFdYCcmJVYwTmx7b1p0NTNIJj03S1pjbXw/clhYYzQsZmAhbj83TWxUYXhaTWNXOFV7cAogICAgICA8bn5dTzdcPDB6YyxRMzp4Vip2eEFjOyw9b31UdSJiUS9GUit6Y00hbEBRXS42YVVXXGEibkMnYClHLXl1TTcmIXt5UF1wZmZBS3o4Jm4zS301KX42OVF0ZXMsV2B0My5DMmVWUVByXjZiTSNTJAogICAgICB1MXFqUUxEJDRlKiNmLyZ7T2wyNDteWVU5fXhWNT9iMnYqdXZfaF1PPy0uYStRfio9XF9fM0heeXlpcC5yTltFeyxOTmdZRX1ManJ+Rj1NTmdxJ1oqREAiKytPXXsscXc3N2sqVmhfPWoiYydFSQogICAgICBLeCZ4JUQhXCYlVTI0OUdjWSx+cV8tSEhqPydlTiJZcG9JVjRtWUdQXzJ0W0NBcD5kVWtMaWJnc2NMWlZOKUc9VyY3O1IyKlk4NklcJ0BKX1ZQczVsNk40fHF8USc1MWY7dDtOXidSQTtMd35TdwogICAgICA2cGB1KmtbMz58OTBIJj5SLGF9cmY2ISpFYjlyfHFLQSFfJXRPVGJXaiJmY3Iwc0Fua1F1VXJtYUt3XUteMXovbW19J3NCLTg8I0ksVTdbX3w0NCRid1EjLjl2Qkk+UitNd2huWyEqfj1NTlhDaQogICAgICBKMjIraSZxZjUyIWkjai5ocTBXUDhwfi5zKy55R3d9WWVsfm5AWzJ1KkMlWl47QSt+VSI5fVgwJWw5RiFMUWFdeUI0dGNIcW43TXZ9VjcvRzdETWhmQXVORnN6d0F2R1syNGBgdDFmNkFlWjJ8dwogICAgICB2ekQhaC9LSiopLkI8SE9ZTGxDYyJBSVFtMDY3TEJPezwySUF7JiRCSllcQWpyJz5zXWZ6dFRLKXBNJ1p7VElkKkVuZnJvfiR+KndWJ0Z4VEZ4JHE7Q3I8ZSpPc0Mkc2ElLmo3SXVwJ35hbVUjTgogICAgICBiJiJBbjQ6LGR7Qy86YyU1M0N2JV9qJFpEVGo8aVY9ZHJyZHQzO2hKfDFwJk0xOExoUHk9WF9IMSNCSyhEMUw+dyl9O3l2ezpFfkpVUihxUENXeG5mWklJYnw6VUJHXl1DajhFTE9Ob1ZQKTdvOAogICAgICByfFRSdiJ2RyUsMWtmWC1ueTo4PU5Hak1oRTA4O2AyM3Z5SlpJRzoqQXF7XkkiK0RvbX1RVyV1WUNUfnU8ZiNdNFAvNlRySzZ8YTZAJiE0amlzOn1oeU8yci1hfil0XXlLbngyKzstOF1sOzgneQogICAgICBuLztCdlguc3ReSVcrfFgzbnUsNm0+bXc5W2lcb19fTVozVlZzTntgUzpBcWhgYj0oM2kieE4sZV4tOTddWDtFPGdCY1pQO0lwL2MnaVleOzktKkttVjlBa2hINjlWJ0VbKTtbIlp4c10yditxdAogICAgICB1RGN7RyYmKSgyfH43IittdHBALnxTdjtHemVfUT53QllwSiUpd1xiUG0zPiV+PDwpY1sjdCF1XXFadEZDITwuPDMzdXsyZlxCXjhrUU87ST5jI1oyLXp+P2srdztQZzdNWj88KThkI3lLLWo/dwogICAgICA+WGBkLVd8RjwnKXMpa2w/ZS55R0pMKFcoUCUwbEE2c09wcl9tIz9UYGlEdnRHcGpcYkRyJ3BGYm41N0VNVmRaTENlTVB1O0c/SVgwfUlfflFRL0d3fEl7UVptOyY6YkNNbF9WQ246N0wxfmZwTgogICAgICBULTxpVjVbQXMkTjsoPEQ5MjhKVD54a1AxYmx4ZkFoL3ZyZmNLYGczSCoxPCUmNCosWzEne1s1SHFIUVtFfTs3aVo+QVwhVSo6KHh0Yj09IilJXD1xRzE/WE42ZFZOcThGd05rZWQuXWdnPjNaTgogICAgICBkREpfbyw9bT5tViIqeCxbXWYodGMzMUwnTUR2LS9lRmJbSzo7XVhtayk/biVIY0hEWFxkQUBNLiEkKFZSLFctcHBaPmM9WH5FVSVzM0xWbDNPSFtFbnQ5YTYxUSQic1BnbDJ9QE1COHskM2N9aQogICAgICBvZnRMT2ViWkc2L14+TkgzNm5HKHZ5YkYlaGR3RGAhVzxod3d5Z2UzS2w0XkVkSEE6Xi4kfDV4WE4yJlUpanJQVHhWI2pRWUl3YiRGSjFAVnxbPXN4XXlxYiZPbS1UeCQrRDtGUGldPV9afWxOSwogICAgICA8Vj5FNXh4IXokTGQ7Ukd3SHkhe3tHbzZdXzMoanlWY05HeURIKydeKShDYDJ+UW1NS3FefmRFQHlmdkwsJzFtM2k7fEhQPFBHOXxaa21ZLTA5TF4/ITUmNyF6NkglOl86KE8mUkh4SVFCPHskLAogICAgICBQem4hZVZyZFYuW0RgLGJdOTR5JiJBc0kkeTklPzlOYkZcWWI/RyhgMGNjcy9KPTNNXXtlanpNQyxbVHtIZyNQPUhxeSNKJXs0Ly58c3lldTFYI1lbeitoX0AnN0ZVSjpoQ2IteW9rc1Rqd3khOAogICAgICBgSWghLl0uVVt8b1coPFlkW0wkcS9pWyR8K3c8T3YnL0wlIj5YdlRdLV9PPG9aXFEsenteaHF0SzZnWVJUPS1heDV3RltHTzFDcWNyNTtsYl92YmdNW0dZY3NlTVBwbSo/cjloWGc6Tzg/cmMnZwogICAgICBiJitlWFNdV2tiJlp9Pk9mMXokZGMxeU1dOHgtZWNiLFFDJ0J1IltEL15FXj1tOTMveV8wNioldXUmcT1Zb15AWzt0W0swLj1RSyxyYVlPcmNjQ1RZI3MlSlQsYyQpQzVzbHxNeVZKS1dUUVcnPAogICAgICA3eDJ+Zy4sfWF7Y1w5T2h7cUUiZGBhQVhBKFRhNTQ2N3pkRlk6dnA6dWdcSXpcbmFobnoldmZcMVc5c0Y5T3ApXzhQU2JVU1YzNDBRIzYuZDpfNmZ4TzJ4OiIwM2ZCZSM5WWk+dyd2Ok05bnxYQAogICAgICBVfjtiR0JpbndzM2U9TCZcKEc0OFtCanEwaiVJKW9lQ2dJP3pMN2YyeDApZjNjfTRPWlFaJSMiJmtEdDZ8VFozUzc1XE9NLFAqLllZR2hZI0JldEQpZUpHWXopb2NQKDRPIXVsZjk1MyFnamorbwogICAgICB2bkpJK3h3TC5bengsITFWdGgrKndfWDNweDE6O2VmO1dTdzRrUVNPRU0nUltFVltBU0E6SElKaDJuLiwjdUpkO1NvLjpSTlgwRy1jOmlIJU9lWF1qVWoyKCZqIkNYPldxK0BYWnNaYWZBQUV0SwogICAgICBHXV5qR1hrYjkrNSxLQ216KngiIUJoNk9hQVYuRjZiPjRNdD0rOWFbWEpNXFhcSFZncmF2OSkkP2wkdFYqXSIiT34xZTptOyMtOko2SW5nXWF0VHRBc2B2eDttb3AkRnZLVTtPOydZbi5iPUdqMAogICAgICB2V1c2MU96fWQ5Y2A7aDEmbzJgQWdqXCRFQ30nL2BHLyU9WHxgYVQ3NGAxakZYMEtOLmtIbXQ0KElYWVFqc14tQTRjO0V7L1hHKDE8TT9ORk0xL1VFbGo8OTYtfjQ9cW1qfSVbKkVsUVBSeyw7ewogICAgICBiRT53Ymg0SkFKaiRcRFhbWFNLdWQ0flMjekh1YFF1TDs7azstZ0xiZl9jdWh+TSw/TWx+MHJBU2Y4Mm0tVSElZlojVm5DdXg6ZUAlU3F8MjJpNVIkTmU9Pl1lfFtWZnUqakpjUydJZSYpMElIOgogICAgICB2KyI9cD0ifTBvRFR+PSh4TzhgUlpCXCxTb1xZMl9dIUFALjFDXj1XZW1OMkcucU0nc25aTUlnYWdMPzVVaicxPEJTejtfM3p9MiRXSkFTZi1mRXNmZVhkRWRaPWddWzk4NlZ5ZmYtR3I9WEp5fQogICAgICAsKTRvLH0zVU98dHNuemw6SjczMj81OUtHLmUpOThMPW1LJ0ZaJEYtYVE8fEZYW2F7YzB9NDsrXFBgfjZ5OGdXfCg+ZUlUXU4qQV9HWDYudG9Yenh8YlBQVzV2R0xVKzhra1FWW2JWQ09LXlpdaAogICAgICApdXM4c2NTLndfZXxffUB8SmojTVJ4MkYtJlosTSx7WHl3X3wue01NN25DU0hgU1Epd3RDUmZkeH1hWlxuWyZqfFM4IStSXmRLVz0sOXFWSzxUOzZJUEZ3TSohPUkuTDNzRX51UndnfTNSQGlNJgogICAgICA1eSg6e2ZAJzJcXkk8WnVcfC9GVWNbbVUwKVV0OX5WfDw6OVpWeDReeCRtJm13VytSPH1xMWQxe3VEO0ApIVkjcSZtW2BcXCN9JDEwKlBqRFJJZWg6em0+ZT1TcjM+PTdGenpbUGZ2SURIVGlgNQogICAgICBILGwoViYkZFEjRSwyXUl5KmdIWz01e0NyUC4pYmFXOjRbVl1aOCU7ZWdfcGJYe353PFVSVDxmIiVmbScpMVJbdz5DIjt5eytvdlF5ZFJgOHl3LWUwNSxgNn1AJmsvX1dRJDpSdW9oUCJ6RTZVVgogICAgICAybH5RNUp+N2NrNnBQJm87ekhmajNAIVdMUndtL2UoR2dDMFsoNkwrUGhWTVs9aVV9bkFfem5dM0I0Jn5wUVlhJjVgNXNEPEZSal03UlwieD0/M1YseTxzUnVoTkxxRS9EODFsJyohNmpnbX47ZgogICAgICBESmJbRHMhdF85cVd9IVU0ciJ0J1U2U3Y6XG9tX1pWRFp8a18kQz0rZUYlIkQySFpRbl8qNS1uXX5sNVBhSj5yPUhQd3lzLUxSNVlEVVxVQ1tueGg5NjwsfSFRKWF1OlEmJ1A5ekh2bTV1QSM6agogICAgICBLSj4wT0d2Yi9tVHtJVzR3bEguJmFBV35UXUpRVFIqaD8hPGM5QX1CezRZM19qPSdPMCUnLFMqfHpWTjltN3g6QG48KmFVTnl1PXM2SGRDXzdZWzNELHRUP1UyUm93RytAeGRteXQ8LT9wTTFkJAogICAgICBeVFZ1QlxNOk1WcnY1PykpR2dlYXNmP097PXsjdmAmLW8zZEdELTA0UFghQ1EvdTVVLDptTk9kKGJsKmg0RyE5PHxZXCdMMGdPKDxBLU5sIi5ZLl14Iig9XlVldm45WjByTXZpVUs4MyYmNFBBJAogICAgICBoMHZxT0ErJy5YWiRDOzB3c00udEpIOSlwa05aNmMoNilGJEc4Ql8/eGt1YVlSd2UrQktJZVhdZjhlIS0zUy4pV3tfTmhWNjBcb29tKn4mLGwxQ1pUPkVofHRtaVskTCRVd1hsdD9LbzVHLFgmXwogICAgICB9dCRjalciPWU+WEAmW2ZBbTZ4SzltKUAya0pNSkdMcmEzWU93SkZlbEB9M3N7X3pwUTA8NXhQNi1kVH1ZbV8vVnRDOiw/NG9kS3tjcFkiTkBKfmpBPk53XkZRO1l8X0s7X1RcOi9RUV9rYF0tTQogICAgICBzYXNnOl5HSURfc1N6c1haO3A6bjNKU1xUP3FmZktbOEoqJ01DRypgX005Szh4RCVcLmY8YCppaD84NT9QY0E8IURhKmtcIihGbH5oMCdOdE9VZ2NuWDxxQDRzQzZhNGpWT2o4aVtSPDRoZTxFXgogICAgICA/cFs3PmdYM341Z2k0OkMpJSs1T2NRJ0tSLWpMSGBvN3kwd3ZBRDRNJ1ZWKn5+M3ZRJ1ZfRmFjTiFRMXVlK0U2JD4sJ3kmUDsteGlmayIseUViLiFQJT9qdil0SlAlJDhDfCE/cENAfCo+XGJ7SwogICAgICAvKzdqJmxaNCs/OERnNmNvaXVlS0s8KEs7RWs6M0hZZCstdUdyR1A9Vy8/dmttc3ZxMiNdbjB+MGl9QC1zblQzOVJ9P0VoIiVzW3E0VUZtKVBCPjR4KyJiIkM6fS1dYHR6amN5eG5CITNMczJeSgogICAgICAvN29JcVY2YC9RUUNwfFV6QmJcRGtsXjVmNF47XFNdJS0mUHI+WUBHXUUqXjYvSFw3KlgiUm49fjQkMG1XXmcxTFgyPDNYIWx5MVg2NUJqV1R5MkZ6YkteZFRQVUluJ1VBfUphJkU6N1xDVWYyVgogICAgICB7SyRhTi0lW21XOlZEYmRhIktLQnwoNi4hOS1IejMsMCp3fTRWUEI4aT8vfj9ORUc0bDE7VVheYmcrNDpDYkJGO15uMjFcYlRnYHZCZkZoQXg5Pkh8XWI/aid2XCl5QTdsKHs2a309a2Bze10wZwogICAgICBGYiJFMHRuMlpSKCRyZ0w2VTBSOUA0ZFROPn5kLV00IVVsW2pqdTtZIlh8QHwnfSJSYDs0NXdAbj5FRkYlVV4wWzZWQVMmPjhULWh0bDU7MF4uVix0Tl4xM1IiPF17ajxIenk1YCtAJ2heanZBcgogICAgICBfdmhZXiwoLzF3cyk2Si5DblV3dEpCZW85fFAlZWZfWlN7JDMiPFlfQTEvP1tWbEk5d3M2RS1fTSNmK25BI0NpUnMkczEifC9sRS1VeHdFPl4pJ3hiJ2Q1U0NxUkU5MX5ba3xuNDsjJW06JStpKAogICAgICAqYXViQTU9UHZ3bi1EJzsjYDJlVj1sQFp5cGs0dSI6diw1WjI0IjEjXDc/ST8iPG9QIj99Q21sW2doa2lfI2dwK0x+WzBAX2RzJzplSlhbTWA2fTQwL3UzZlxIJ1UwfllSLl9xLFtfL3RybnUtIgogICAgICBVcjhaWVpLZS9rJyJmR0ZlLVtERz1HNkEyQTlaZDhfSyE/OERcYFhDUktWbVx4NUdceHRzV0gqT3tFa2hkflUlNXVlZ2JuLD8pRERtWFQoczFQZUo2SDR2MS1LKD10NGY4NGZiaEtNS3h1bSYjOQogICAgICB3I3JQYzljeG1rZGU0PmU/T3x2QWchPXV3RWZdREgxeTR1NC5dcEQ0Xk1jJDx9LlF3VlxnfWVnOUJee3gzZylTIyhGKTxrWkN1bSd3ckA8OVthPnwwWXpSM2RmJmgwVl81Rj5XJyQ6aDFyaH1tZgogICAgICB8QyZ7emdQXEp9WmVTUUdOMCFFemtMeExeXTBeRDRtNTptJTJSZSRYUWlrRjJUXj03OGpXRT98ODQ6NnU1cDk5WSc6Ik1mM3gqWC8zLixkR35gVns6ZTdcLH1wTSdjeCVSTzNpLmJbZFFLaW5MbgogICAgICB0OixVaHVEOC51XF9TM1s3TDtJQCdBK2BEbFZSPDM+cyRtRl9dTVhdfGF0TGl6SyZ3TiJYcS5LUmpLfDB0InckM0lseSgxQUt1PiRXOldBc21jLToiU1MzLy10SXlTO24ne3BpPmYmNW5zX2tyMAogICAgICAkV2R8WzJQbCF8cF44WSh6ZyksSF1Rbz8zXHhHe2d2NjQlUFhKSGxnQCVGUWE6T1Y+M0AjfSheN04zNX4uTHpSPG9zRHxEXUx1OzBEeFVPJCl1djhDMix9NEoxZVldd0xUVlkkXT9vOEA0Kyh4eQogICAgICAoWyJWKG5WRnFHbT1seEAlKEh9L3Qid3NYMix6ZFs+QTU3cEN5YUF+YmJFezNSUmVPVywwWyxHdXRtPENhVEZ5ZTtvNCE8cHBwbGgocl5SVGRoMSgmUls8eDlKUzRSZ20/YlVoVmskUkk7VlsneQogICAgICBgaCRCLFA9MEtYeGRbaF0leTJ0PSJUdF9Ca3hdSCpgVkkuKSRzVzQvdUM+RmlJP21nJVxYSCVYMCF3cS5zeH1Ea1VwayU5Yj0mdUclWmhXc2FfT3k/d0VIPHs8fHhDOTg4aHpGcF5pXztrcntERgogICAgICBZLk45LC1pR2BEbHBWeipoImInRFU9dXBIOkA1S3ZsQXFLUF1GOyZbMGNcRjNTRmBPfG9RXF5ARTFkNmckVnA3RlMuKSZDZ157U1A5PCxqWn51XH18bjhFOj5gQS1ib250cF57UFY6KmR8ZX4zOwogICAgICAoM1lKaDA5MHNsc15CZXlxXGM0KWNWU2ZqYEZSfC5VXjJReTMxJC4vRlhOUHxmZyhcb2ZVNCMzUEJOLm9RYzIoI28oQVpTYnV8WU1qfVxHbDx7YFIve2RSNCVRdlV1YzJGZmd+MDNFZ0pMKVsiSQogICAgICBBTnVCZXlxVjRyfT1bT0BaKFNEYkUuXG4uLzB3Y151YUoifD5PPj5qXWc0cl11KFRkcSxAZj0mRTgtWUIhYSUlNVAsVnRZR09GaChUJXJAUndqVSkxZDFlImY5bEN2XXBjVWE4KGU6OFctdyUyKQogICAgICBHQixKYkpYfX5NeElRdDUjTDRNbyw9Tl1hZ1RbIkQpRDtLeEIjP3RtMTxTT15RT2hFN2NZV2ZBUnlrbz8mIn4kITB+fmc6Km8me0slVDFAOUJkdUc0YVdqJGlIZmZqN2dCYyclSnBXa3osS1xGIwogICAgICA5aUxTSS5BfSdNKUVYYE9fW3FyUFs6TnhEVW1XaGRtdlk+KHoyJGcufmU3T1N9S1duSURXdSIuVTxSWSV1XjIlOSgrIlEoVUVvRVhBUXY+dD8nQkcmMS5AMlR9cTgtb0Z3U15wKVY2d201OExFKAogICAgICAtPT5nREBDQkl5fSMjTUckJik1YTVGL3kyU141KS9uRWAnbGgwX3AlWyJMSmV+LS5qJmFyIShKX1k2VlNTP1h3fjVoOiU2JmhiRDd3R2JIKnRdSnIkOH03WFZlNSRmSEArYWdQOGF0RjswZ3VRPQogICAgICB8OD96VFpKVyovcFNaeGNwKm8pV2dzbVRCb2F0WlBjOVhwQyYuNng3ImxpQD08WUkmT3NYd1csOiltXTE3L1l7ZHtJYUdWM3N0dzdrY0sqdmxKQEBVKlouS3kkTXciaHxyWlFTMEoufnddT3AofAogICAgICBKIyU7Uk83SXc0NmJ+JW8iJ2ZFT30tVVlPU3BLWS4mfEVmamVzdnJIWzhWeS40ajVbOWM3Z0ZEKW9RY3NzPFBRMER1VTZeInFKRilsSSRdQzRFYUs8JEh6THBtTntEXUBpflApWFhwITgnYk4ucgogICAgICAtdXlIb31RbT0uTkFkJGl1JkRBakpiOjRxSEZbI3w0VEJWS3k1cmt1OyZ1LCJxcFtXLi1oVlleXFpVcX5ZRkQlP1VFVkp5YSZXNStMZGBIWyx8KC5EIno3VFItSTtkPStMMHxOcUo9RWsyKmtoVAogICAgICB7PydZJS9HeShKaHFBaTMtWn1pTzRWY1o7RjtVNm0nQiJIVCl2KWo5bmRUTTY8L3JAUHhZOCU+cE1+W3M3ayJ+TnhNKHFyMixeQEYwdG9QfSQqVl1wWUdMIV5mMkowNSc+ejJVeTdGRz5ZZl8iPAogICAgICAvX2FgVWJvUiZTRmFCI1knYC53aWg7K24+OVdkYkdvLV1IPiRIXEFHfkM5J1RpW3A2YTw0WHE/XUp9bVxXJF56Zzl7Z2lDKF0mYn06Q1ZqQ3t7LXhVcDJqXls6ZUdLJUpiOVd2V1FwUWgpW14pOQogICAgICBIdzw0dlhKe2J2SEJjVW9OY2lbOkc5VyliIyl4ZkY9Q0pMLm1TMGVcP1xZTHVeI35jLWo5LHV3M24pJ29jLSYuSn0jaio8SzxUbCZ4Pj4vfWJ6IXxBMjVIfikvJCFpbVo1eUZ7c2NKT09iYEckagogICAgICBheGpQd35mJUwnLHM4U3NfNW0tVGt0Oyg7JzVgdWtXWkdRYGwxR1dGWCsnXGQkd2t9UThVbHZ6Q1lObGdrRWg2SWtOKy0lKDRZViMiKW8zUmB7KkU5czQuNGN2SDx5W352JWEmW3AvVmpfal49egogICAgICAkK18kdVBfdnUjLjUzRDsiS2U8WVdvbjdvJiM5PW96OldCQkYsb1pleixsIWRMM2ZWSkYqZVU5MGpAZSM6Uz1fU1pBLyF1JkVLfDclUU1BRVp9LGoqd3IyP0JTP1RMUStgfXlITy1zLWBORF9reAogICAgICAxUiJ6Wns/PH5xbFlveEhpeXRAcUdcN0paKUNNQHBQaVl4cHFnaj9PWnsuKWBrMmpGMUFMRmE/SCRGWyIpZ103VzhtaUgvTT5AfWwvUVFbdEpsPzxbXiotU0h3QkZfMyV8I3coL0QscV1KIzR0LQogICAgICBAIzVDU0g3R1NMNmE1fVNdLXNWWW5EXkAxNXRlOVpsVj5POjRCPlFBSSFPN1Z6djhVcVwmUUspcTVHM2ZOYypHfnVSaXs9cFIwXENXPT9tIVVMRX5aJCNBUFAzb3B+Z0tYcHB6N24la3xpQ1dRWQogICAgICBQVDJXS3wpfm5cI25zYCxhdD95LGJ5YnFPN3JmZ1VhMm9QKWpZe1BgQ3JZfC5hXXcvR3tbYmssJHQ3Sy55VnU2Uy9rOiR6TElcJWVMImxFK05Mei5cLmNxRHhvdWghIXN2Sip1Vjg1UUwvc3s4MQogICAgICBHLE9oandecW54Kk9kbSo8UDksSkhJSj1kZyRIeFomeEFnVDcwdUUlfCZjJlR2M1ZOMVxFJEh1d0JIP1smW1ptfXx4VXR6Ky8id19veC9zdjxkUnYxPFpvazI6Y2h7dmZIUUBhW2IlRWFMdkIyMQogICAgICBJTWdLIlx0OExjJ1wqdldJSns/ZC90VFkoKW0ncTBqbz5UWTR+dW8lM2pEbUlDc1k5JDxDcEguQiNiKWIlV3deKHNuLXteRCcqNTU4Iz9kLkhJJVNTdjRxIU0hcU1CMH51SyozRm1aK0ZNUDBQJQogICAgICBsJFs8TSM3SSZiNj5DViRlNio2eHF+Kzg0K3VpPDUkPVdIOUh7KnpmVjhlRl4xVFhjdyxUN3crbVxgRDlIKFF7KmA9JmtEamkwZ21sdWJiaHpwbjIpWHNGXzFMaVoreHNjRT9fKjxUL3NzWSFxcwogICAgICB8K1xiQTJJXkBrSV95LiVCcDNJOD9KZXc0TDd2LVdqXX0pKlJ7NiE6ZDMwQDhzL29EU15iWzhgQVVEPkl5NX1ZV35jUm9YWiRnX3FZbGQ2N2h6d29vIzp8YFJCPDxkT2F6aEYrJW10Jz4nMUozWAogICAgICBFejRFaGdla3g+cHl5KklQfkcqR1RTLj1JWyFuc2VATi0pRkN1PVNAXXpXSVpEPmgjYnYhKDBYO2Q4SkZITV05QyMlKnUuITFKNGIxd1BBZHIna34xX3tEektUOi4+TV5yM2V7fl15dDN8WUZ+NgogICAgICAzIVBmSlVyaTc6L1JoemtTRlReeGhpPidWYSRsR3ZkNio3V2pILC80XH1QKH17KmtxfGdfLC93RE1hN1wjR0N+XnNRW19AUUt7X2g3Qz9bVjE8ZXxYW2ZHQ0N5UDRmaCtuayVGSnwzNHQ+P3I8KwogICAgICAwYjYocTg3ZSknb1Yzc15ueVA1Q2ttP1Ywfng4MyEzaTxhel5uZ0B1W0ddVFYmN1NQWTgib1FlUkx4RCM+IUo+LmBWfHRtMlkyWC0iK1ohPWFlcCc/ImNNaHgoTC5yJmpPaDVYSEpQYnwufC1YNAogICAgICAkUkFleVBCdWdwWTh9NHxXcHBKMSFrWF5jKkszMV5BRF1Wa1hLcSdsWnZFTnZCZyJZeHw5YUtvaDdSO1VWOVUzJnYpaUdkTmsmbiNpQigufUFec1o8RUd0LkJ3JDdiVCtAckJ5LSJGcCgnLDVkeQogICAgICAxNXxUVnpqMGBray9saVY2U0tcfWgwU0F1fCE7YidbS0p4NFJtKFddW3F+SGt9WUo6SDhPeCliPixAQlZEMjFYbWJLOTtgbkdSTjtLSi0qbT05IiNvdkZfY1olNEUtNDRYbnMhK1J8RXNvR1NmTAogICAgICB1djxTNzxHaU8mJ0g8WSZQOlBwY0VUVzJKWSxWTFElKXo9QGRsRzlpL2J3YF9EfTVDMTxEJWx4WCxKVkpWQW8tWi1qd3VSK3JvbTZhVjAwa0ImI100WXZkJCk8Oz5uXytNKTI6J0N9NS1kSFpJSQogICAgICBKWS5JUT0ocTFPU3MtVDElYE8xdyJxSiVYcTshRDNxYyoxan0rPTU7WkMufUg0Wj49IVszJEozRV5mfmI5SDVATzdNOylBLV9udG18XjJ8PzM/Jyopc3JHUC9oI19wZUYkOjZdOmtRInpkbCY8UQogICAgICBFT1tzYkdVUi05RXVwdiVXUl5DOjJyQ3JqIj46RlVCRkoyMVdQL2U6Pn57d2tJJFFwZWJ4XDIrYm51PStqayZPL2U6KD9ee2pUVjJAMEl6SCQ5dmE7cU9YW0pDYnRsVVZmfDtKY2shLlIraXQ5QgogICAgICBnZX1FbydXVz8oZ2xwaHZdTm18fVVjKjImPXh+bVNiXSlsVF5PZTc5PkdcL11OPXkoWE5DYjVZdHJOblR8ZjNwOmxlSDhuQGY5Q2dtVDM+OWA/QidrInJbbWR1L3YvUXl0XFh+OzYmMSxuQ1VpIgogICAgICBpLyxNNS0xT0JBVlwjbEZseW5lSSxRR24jLz5VQzdqcmxzdGF7ZjVjMkkzVHlaUmVpezZ+VXZ7RUwobHR6ZSx6R0tPTGdpQC5dVSlycnl3b0FSMz5abHZIPkx6eE41MzJ9VzdMJUpqTy5VSm88PAogICAgICB8Tz5kTi9qT01XKztyKmEmL05bc1tje2BjPH4kI1FjUWUyYD9wOSswJHM+W1xyOVo3VVdsK35VXzU+V2g1JTQ+eVZROmczOU9UZU46Lkx8RDUwbFA7KzZDYDxqT2pCS305MSRlSztMIVJhd356dQogICAgICBbNHdYaDVtfUtSUjh+Jiw5e15nI2hxLkVbNkp9NV5jaWk5TytMIzVbP1o3NUV8KUk3UEA+OCNvfm06fjlmdFB4KHNwbjY2bl87dEgjUTszaU5XclA7R3Z5I3EufHJrNk9YSGhsWjFkM0h0QiVbJQogICAgICBOKU1TOCduLXQ5YUQwYDRJcjVBMktScFYtKEh+aTpBKTB6JGwnVzEmPStVaDlgLFNzMysna3x5IkY8SFVqbF1MWTR5cztxZzckPnZ9flAyYltwXVFnSVNARmZ3KkIoMUknTEheRERMfm0yWmJMbAogICAgICA2THBjQ3RrNmJEaEQ2PjVXWitZMjw+KCl+Z109YkhgWUhJc3M0dnNSXTR9LWJHaEBFXUY0Y043NXtFeTAmT1s9RjJtZjZ2YlJUL10jcT4xWjU4c046RmN3LUlWWSFrcztZPmA5ZktDVWhnVVZuVAogICAgICAwIUkyJiI6SSNtPUpNJTRve2tiPXZ5fCUqTnopK1kvWWRJYkJSamhGNkZ0ZmdudmAhLz5fUFNSK2MqbTVTLUBLdm10cksuWUpZTU0pc3EoPncycG9+YExwKTtQfjosR1gweXItP0FKMGtXKUt4bwogICAgICBVIlNnQz9vWi83fXMsZmM3OWkxW0syUWA5bD9PZ0psMGRHJ25iZ00mKmA9XUZ5Jmx6YmQ+WFpna1VPW0lOPWBBI0slQzVLIWNrSyQmNHcwRVhPXH1aJ3A5ZUxvT2JaJjk0VCg+N2RmemxUZy9zYwogICAgICBPOFVBRSh7RysjMEB2bCZCbVV1SUJ4YWVIXyFecC04MS5rNW5gVjBdXSx5WH5SfntVbHtATVx4bntyLDZPYTQuW35wSjU8bSxgNmllTVg0fExCMGNXRHZZckVKLntnWmQ3O35+IiUoTmM/by5jfQogICAgICApXjx8L2lMPl0tRiQvXzk/Nm02Ll4jZVBJXCxDQV9AO0ZSKXwzbGVGamNTNCp7TXBjL3h5OSpcXUJpNSMpP0ImXXksT2xoLXRkN1BoKi4pMCdDJTlcSzRPVDp4amVdOzpRdF9gWXwxTEh0X2NoIwogICAgICA0eWRwWVJIY35UbDBwfGhUfldWJDsxSnQwJXJ+TGdaek9IOFtafn1YfEpcXD55Lkh3Unt7N2AqdGtHPXFlczgycSp0JFRXNDN0c3RKfCtpIjI6XW05UCJcIXd9TURDQS4sK3k2QjRiSkRWfiJgTgogICAgICB3SDx3cV9ifHdIQmguSSs7Lip3XCI5KmNNY08sdHBpdUtJLz1MIkRBUmg0Mj9VYjx1MnNhUkxiUnA3IWdNaWA+YVJIZjprMEdmL2AwIWtXajJ9YSJUbFtlNU15RyJOaV09R1dLIUhfSjc/NHZSXwogICAgICAtNWRPNmdoXypYXksuYS0nVjMzcl1yaitacihcIntneV1yWyU1XFNGcVFIfWkhMndBTGFUczUjMj84V1JqVW1RT0JwcDlSdjVDSnhjTzxhNT1YbURhVElHSnowKXRhRWE0OnhYUiV+eXB6RF1PXgogICAgICBzQ0BlO1hXfVA3KnlRaDpVUVNWK2c6VVFwKntdUGZwWlQ/TkE1WHE3YUZ2dnJiJShMYzhbJUNPdFx6ZWtiTmZ9dy58KH5tZnMobWdhJ3tRbUU1Tm87WTkvQzJ+UmZZcno1O2RcOillZntPfm0xXgogICAgICBNNiMuRmBsVTwwXHRDWnFNRTtbSE01Sk86NXosPUwwIWpqUU9ISjlkWGgsJlgvZGVnbHIsVCJmR2JTbS5OeTZeJXlLcGkpUTVaOFoxVkIuay5RKCI7KCEqJUReOD4vKXNCczclTSUtQl9lJCE9RgogICAgICA0Ll4/QDYnQ3Y4dkgtIjNyKV9wRnc2bnhJbi1Hc287al94MmAienBecTV+ZFchRDp2LTppJjdBS1gnX3ZeUVw3Zkc7YnVXaHxHKGJweT1fNDtqfF1QRzgkPVRuM1pqV0hdaF9aQXloI19BbCN9NwogICAgICB3dDUkOiJfQD9uMGt4UDBKWkhNdmk5RyFJeVAwSXYwdycyNUZ7LGQjIixwUXJWUGsre2tiLHZlMCt9elQqeTRbOC9TKCorZ1MpbndEVl55OywhSjtdfDFOe2F1W3JEKmooVVVIJzVcWWMlRTYnTgogICAgICA8bzFXLjRUfig0XFtKcGdfZmdkOUd9UVIjdXI9W1tDUFtke294YDZEVGchKVY5KixtZFxefmg7VmxXRWh8eW0sZDxuIjx2W2xXREB0KUZGUyxwRVJkKFBtM2R5QkNBKCIpcWQqWypoPD9uXFBxMQogICAgICBDaHw9SCpsfFNPVjFhQD0qeXZSXF1UVjNAJHstRDlIPCtWRn5QPGciSHwwP1NKbmd9JChZbSNuQkVgM2lbVFhnJF4qbkZORmJzKTx6JlloWlMuM15ydEMsP09IMHxBMm53O1tQQ2NzWSF2NWdRNQogICAgICB8PEI8L1lzLlJselg6XF0kc3kzZFdUUFRpO2NhTiFaKHAtL0NOTFQpcng0Qm1ldnFLckNONHQ/KHosTmZ0X3F6OFold1t6N3QmMWVZI29xT2I7aissU31LfmtJaFhqfUFOSyhMaDdFV19VJVU1VQogICAgICBlUSIyaVNWNjQ4LyFYSTxFXF1gIklpeH5pKyF1RG9TZW44Z2RtdClbYkVkXT09S1FVKFN2P3BLKys/bXdrXExiPzFrKWBsTV5cXHU/eWIpWk47OnRoS1VVXWFaJUAtKUJKN3RxJUV6OCpjem4ycwogICAgICBnbkEvQjVDZ2NWUEgvJ2MqcCVENEg5eSpjfE1VQyQ0OGNcclhCYUo6VD5IVVxoRWgvXTZyWC5tPCFTR0VNeXlPJjoiXnRxcSoncHglQiJEOVomXEteXF9Qd2dVQEUqeDFxalRZUklhPXY+SUg8LgogICAgICBDKE1Zaj41SlMnaVRQYDdcKzgtJy07Qk9edE01bnRaSnpgfS5eZyFOaz5RflRHcFgiY1tRdH5wNjFQPG1POltUe3xkMXpYdjBgJCgoV11HckxZZXxcdDYkXEZjKFhJZEp0RkZ4Kz4jX0JhPll1YwogICAgICAxfSMicHM1OnZMUUtVT11We0Q4LihXfmtldG5bNVosVXNpbXFud053NSY1aHJZaz55dzJrJ09APn0+VmZBOy5hLDdMU21AXVBXTUx3XntuMXMkKCtPUl5+WmRYTlxmVEB8MSkqeE9ReWAhRTElRgogICAgICA8Ymw+XzhGKz4tV11Ac1h7eixHM2B1cktvdm5+OSxvOjhacDFmZDNASFk9VkJpJT1iaVBlc15nTV5sWTUlOS0iV3xCXVJTR3Q4IUBhdTNFMyZFR2FIUlZafH1GWFtIQj5aLDR+Z3tBJFpOOjJXJAogICAgICB6I1F8X3NvYTo9U2Bxc0VAT2N8cz42KHNWMX1lMHtcYypwVVJvJ3NibTZzQidnSEtxaEkxMSMxXDo4ZT5EO1BiPio3Un5HLGNbR2A7aWFzbD1aZCN3KnRHIjhnbiE1a0ohaTZiOT0xRH0vS0JQdgogICAgICBzfVZ0IkpeM2VkUUF+aVlkSzh1WnY3OWxOTHVufV13eXFrYHkmSEdVc21UQkhaST48cTg9JlwvJ2w1QC1PMHkldiIhTiZbbU9mPSNzMn15X2wnbydtO2RRdnJQUnBydWpaVCpCIVJ1LUBILTR8aAogICAgICA8PSRufX1HPEM1XkdRPkpTa059ZTRlXVRxdShsc1FkRS9TcUx+OVZ7cXlIRG92LjN+eXEpalR+IjNoVCNxYzw1PHRISU1gfGsuJ0o3SnsjVVZzVEN4a3YkcHdFV0xyVil+KiprRDcxLCxfbm8xRgogICAgICBSW25dKC48SjApUWJdQy1dNHlaWSZJOyFzR3NIczZTYylua0pvUDheZilNTytMdElddjx5KTxxWTFdY00tRnleMU9FO0l3eEAxaCNZPHJ1SGw6P1koLCMxfClUXnBEe0heQkxCT283elE+RiZBawogICAgICA5IlhKWXl2YlU9VygmOWc7KiE5cy0kVUk3dz09IiZ2aUxEc0JQbUkyW0p+JzlTJ0MuJ3dyXSM5LlJ3UnBCMyglUjh4cHV0I0FXeHImUEJ0XyliWkhhK0pBZD1nY2spcTdjQ21LKXtve3Eyc2BDLwogICAgICBxaDVScXY4Nms8SUIsNGo9JV10JyU8V0Q0OGZyYkA3cGVcVTpVfDMoKXM6SG8rcHohcl12TUB6WCdARnA0fn1tU0NrcjhLbktLNitQY3dNLFBvaX1tUGxAbUEzLW9RLjZLSicqQk1oLnB+XzNYJwogICAgICAtOWF0Um1rYlB9IjxoNkVqQVJhQ01gNmxMWSh1aT09Olx7QjNVVERnI0YkKkd+ZHw+dS9vbjplWzc9I1pwcGp9dHdbYEc7Mi8wXzZ3W1F0WH4hOlduQyRIVjtpWEMwfUh7bEoqMnMzXGVDOGtsOgogICAgICBGVVBuLk9XYCdfOj93Qy8xXU89MTZBJmwncShDYiQ0aGUkbV9OP1M8eDYxWjI/SWw3U2BqOmo2PExFcGxvKyd5Pm19YXxiZDdwTUVBIUo/VSZLMUhaez5wIzZPL15YVktbUU8qYDJaeGs4W3N3XAogICAgICBKJVY1dXwzUnZmJTteVX4tWTskWygpQF89VlZVdydQR0paPmdUdC8uMlJhTF0lUzBeREdQLWs3UVo7YTFkeHV+X1h4dTBrPFBlK2cyVn0zTn01aVZVVEpYIjxmaD5hUWJCa2hPRGZ+ZFJhRExlLgogICAgICBuRXovWSUkWEdNXUkvMnRwYSlFJVgrVSYxT0Z2c24pS2ZacF4+SSpIMHU5XH5Xe2pbLUo9Y0BJc3QpaUFjUyE7Kk1JRT9WJEV0PzdQZXhQU3l4U0dBe2hSc2tvWlF0QD4hWEF9UDdSO053Zy5+RQogICAgICBVRz8/ZVpmfTEtTl5NcmEhZUw4YyxKUHFkKiJoeTtSZCdiLTtiVytkcDZDLyJwKmt2RGtYWTMzbUZ9PT5ISj00eGY9OkFNczp5WkElPSd7IWFxYCo6U1NVb1N+bGRKO0BmTS0/MTdrO3tjZy0iTwogICAgICB3Tz8xR3ZwMS4vcHIrSSt4WkUwQVt2TENFUFVAcy06OjM/e1Y/cCpCSDFKXl8tXidNaTQrblJKLi1lSDxpLSdzUW5CKnsyR1daLHNKTkoqeUk+S1tLNTU7cV1NdG4+Rmx3Xz0+fjE8eHwnQlNbRAogICAgICB4UTNXaURWNXJwdWV7X1gtJ2VSejk8WHp6XWIvY3BaVT9TOTVIJ3UscV4kL2BlQkJMXWo3alt1WFdeKjdJcUBcQ0c4e2BYIV9ufjg8Um9BQ29yKDtlT0ZmPElSV0FXXkhkMGIsMjJVZzpNQ2YsJQogICAgICBoeUN8KTZ4JlBXXlJydXNuZXFGOj5sfVhAOSMkN1M6WURZVVl1Izhee3dbJWxHSmV1OEBKNTJ7fnMmcVJbcVpdK2VxTWBtaUZtPVFmPDtpfXRvLn5ZRjx+XC1pJ08pWXFETFtLMiI8N21cPEtKIQogICAgICBSSEIoLChjRDM0YT1fQ3dueikvMHRmUk9hSDByW3dpViF7a2lsNlIvTyY6T0J4TWVcXj0+LmNIN1xMIlJhe3tVcyxyfmBLZyQ9P2ZSZT07S3kwcVE8cVU9Y2VJPnQnYCxmTEhNWjU/dGptITJKcQogICAgICBLMlgpJy9nYTchMCZaRjxmYGRWZlV+JnVyblI1Ing0JktlXzxiajlye1R3M0x9Pys7M28valtTWFBVQTpIVyJBXTh4b1NbIVoydX1GaT98P21RWW5BUy5TMW46ITsuYjs6RCY6OWpuTCcxNictRAogICAgICBAP3RxcGIuMz54X0wiIi8/e290X1EnYStOX29FTHo9d1NGLXlXcV9RTTItdGh4TWk1IT9GRX1hbCRwSH16U3pdVHhYJkkteFAmO0k4SWd4LlJZOkdXT2MxQ19NKVI2PWgwdXInTUI4a010ZC92OwogICAgICBJdHl+Kn1PLyFBNXFlSmssbz05dyxSbW5sX3VFcWNHekc/RCQ2bkNGUk0wekonWl0nIT9MamN4YmVaOFtKe1hBOEN9YHJRQUJmcn07YiZaW31PIS5lYlQ8MipIVDdxSyokWDomKSxUJyhgY2IvagogICAgICAzVFRyTGUtLF9iTl1yKiN5dThcNTVyTksqL0VLR0IuLUY1RnsyLzU8Si4hZVRTZz9VezI1YDRDfmBAWjhQUF8/IWg0eVJfQXYzYjhGXi5jMy5oT2k8J0BKLD05bV1EQUdjfT97Q0c7N1AiXjMmMAogICAgICBvTyFqWCVMWlBFN2lyXyV1LSgkciZSd2AoWG06UDRuLDA9YnRuLSMhfXpZfCNKcFtmUFZTY3MuenAhMVpHa1sxQENDTH16flwyZj0sa1JQTGpKNipFSjVwJms7NUNJenYpKV5xKWpmIiZVZXhWJQogICAgICBQMVNVaStXTmg/SSx2J1hlRytLfitiR00wVFZmOWViJShXOW1zR0dIZ08/eXFUYXE1YTxHKjp7RXFMJ3tTLDRfPzk9fUMmRnVkYTBESm5OSExNUW5PJV9NS1l8fmk+OE1lNGosRUN7eWJ2eSclTwogICAgICBFVVF7Plhve3hMOWoyKDcqKUUzJEY1WHxOQlslYXkqLjJlZVw1W0k/YjAyR3V1ZVk+TUd6e1kqbDM6bCZUJ1lkO2dac1xhR34sWGIqOVhQMUxHWTZ0aXdNQ1NlLlVXRDBUWVt6dzkxbVknMDRZdAogICAgICBTUW8xclYkJU8qVWkyTyV8JE9GUmheXFJsPi8lbERGZiRuVzdmYCR0TkEtZDs8VzMnMiJ7JiZQLCNxNV5KXFo/fHhKd35KUmFfKmVfYktJMCNyYXVrY1BVPWFiVH1Ra1s+VEApRHRVd3dLfGA7OAogICAgICBULSVzbS8nKEE9RVJ6fEczNj12PS5lZHFkb2pzRGkmNi07KXQtfDRvflBJQmttakh0fmx0NW12UzQzW0k6S1hRazxmUCZ5XD1MeTxuei1QWF1ZPz89bUBHc3JnM1cwemU0X0xFNSIweHVSMzlkdgogICAgICBfRj5xRCJ7eHJtLU87ald3elZ2VG84NG48JUBVM0ItR2RDS30rflNeR1stVmw4byE1Mm0lXFEiS0Z+dyRFVGF1LDR6V0kxMiJsUV5EfGldUUMtNDMtLGNndT18Zks4XG1DWSw5eCYwQn47Mlk8IQogICAgICBXTVF0WGdKezo3aFZqVkRsI0dEYk9xVGUyYm5FJEpMVjc/Jy4tRSREYn5VKixiJjA7dl5Vd017TVMwRyVITm46akA8dTpmRHx1QzhxZT5tIn0se1cpPmpxK1hwVmxwbUIpe3RpbztVdGAtfCJHNQogICAgICAoIWcySEdWNmBYSTIkdXc3IkhgUU1fK192fT9aOFdpKVNuNDEnRUJjRnwjNFhBMkp2cXZnY244bUZUbnUoYkdNfUN+PnQwJ29yU1x7eHBuJDMpV1hmXiRnSm8rNHpkXEF7ImtqUlFmIXRKIXVmMAogICAgICBXZ25BLml7QEdSbitvd31ffig1aiRyU3JDQFhHfEw5LlhjTjNzJjtdXiVVSkFNdDNxcD0vM3Z8YEkvXVZ8PTQjPUMuIS19VWVRazAwITx2NltBcV80KXA5VUNbeTgpXFJ+amxwWytyZCZaKS9MIwogICAgICAtNDhYVSMsMVYpSEV4Kjc0blhuRnR7Yil3bWFSIi08Jk5OJCVkSj5mWW4rfDY+aVNQP1wldWFoP3AxV20+fTFZR3tDcX4qaTVyPiNCbEhJPSFKekRTc0NAcTFGTUh8ZkU0Ny5fXyZCMkNGQyUiVgogICAgICBxTy8rT1ZbYnQnVGQ7WXI+SEM8aGguPTc5TGxVXFI8YyxYXTpULzxrNS5XT0xzTnU9XHJ3YEBSWXErS1B7M35cR3F3Kilvaic3WUdoKEhLTVVRdzQnbk9cZTpyZkI5aS02YyVgcEVGMzhEWmoxRgogICAgICA1Ri5oPktzfCR6VEtHdX1oI2BdUFZGRnciKS59X2k7SXMnfiN6bXNDZ1EhWWZgMFVVMig+eDpbZDNYWnUtJ0VleyxPWUt9X1shWF4zZSM+T0Fhe0woWio0YkBgJkZ8RWFITStaPGJ4XEAtXFk4KAogICAgICB2VlZfQmBMbyUmYnwsanYrYlchVDhGbikme1w6WW41QFAqSnokKDp2YyplLDFNVCpXJ1V2On4kdV1nPnNfdnZjZlR1QG1uNUBIaGMxU09bdiFkWUZiMXh2QGZBfVZIUVZUP31YXVghXmBBMyQxSQogICAgICB1YTpPYWkkbFcwSn1PVjtgISQ0ITNkOVIiSC0wNG5gOSxESyEtWnFXJEVzOSEoaWIoRUxRWid5V3hvNi90ZiFPWGZlLz8zanBXQFNXYnpILC49XXpvOT1ickB0SzBHWD5WK34/LVI3U3AkNVBtYgogICAgICB6NHlbOzlJKWlATCRbKXElQyZDX30rJC1LU0d7VDt6Wld4R0VhK2B8PylVdkJpZkozI0wpbTBYdzdCb2Fwfi83elg1Y3h+aGt0YG5QVTddS28xW2tKVi8pREJJN01gd0wzYDsza3Mmdl8qejgiPAogICAgICB6Rn5TQVxEKTotLERALHlbamQ/U35hVWJSW251ZngnclwpLFBBfDFNWC0tQiVIPkldPHo7Pl9DZCdvKDtVdHFAYHQzX0onNUxRey5LJD48MC93d2ptZUg2VSZoO005WG9lNTY/TVZBWFFITyVXOAogICAgICBsYEx+YFw7N2RbRiNyZnt8eHYsNVp8biJFWS5XZXE+bW86VlIpSFJNfU1bO2dWfmN2XHgwPUMpSiNDOC8qJSQyI2ghVkFUbkhXeGB9Yzp5X0hQS2IxL0g8NVJpdGlSPE5LKn0zXlN8JCFuXSYmTgogICAgICAqNVUiail9bVt1IlNXR1VkUWhnSWN5aDA1bj8lSytqY0YsU3ZZXCk2bi9SWSR9P3BybiVueExjST9XPyNCOm9wWSE7c3EldzU1MXxOQkhuSjFwYCZ4PmwwZCZsVnF0TE4oakJaWHBRUGF4WD94IQogICAgICB9cUk2M0cqS1NMdmUnc00rIUczbEU8SW1kQFtEZndVS1coLilkZkZENlBxWkoieHBjLkQrakVWSio7X3lcJ29hZyxrfkwzQzRLdG1lZmJjbUolaChAPkIrKiNiZFNPeltAYWI8Tks0dDVHWWAoewogICAgICAyJysyLXpnRFozdyRvSVdNcDU2NyFneWJ8XDVHP006NmRfSjxKMkZmLl19fHU0SGk0eFdLUDFUNCRUa3tTVFUzQV10PV9YS0otaidNeV9ZL0RdcD1fZFx1Iz85XUB3cWptTFskKkZBQ0ZXXWNxZgogICAgICAqLUdmbl4obWR4KF0rXTQvPmZFMiEvRCRuYUswXXVQaEchXWpNfDFrKm0zfVBOXXxhNENoZUFNbn43ezIvXkQvSTtmYCF9QSstXWZ+KCF4QWBDPSpkWjBrKVYzbStUazVuTW1bLjJOVSNtRTJKWgogICAgICAvK1l1YCpoclB2czBrLVNLZk1TfDBUPEVQPjcpc2E1cysxS34jVzgjJkJWJCp5dGBDSjlrR1BfKVR+VSpUWXZfQXo+RXsjYklLa3x+c3pscmAlXkREInR7J0Z4Zit+dD5EaEV1dSdVZFU3S0g3QgogICAgICB5ekNUdmVrbCVbQEg7VVA+LFA7bik4VWNBQHIoX3NvbTJhfCF4TT1tQi0pciM2TU1HZy9Cank7XkRiaidJYCFBVmpiV0B+XmxyQmtbYUQhcD1yW1dFMk9tQjhMOFNGdlQrS315RT9aUVNNLkVxRAogICAgICAtMXVfenh9QCE6OEk9XnkqbiJUIms9eDJTR1xAWn1tZXJDe0ZnVSpbWEc6bDdrVEJqfkQ2LyUobls0PENCVV9GUGw6R1xkLz05TXpcQi1eMS1NOnJCcSUqP1IsZHBQfTQ+ZEZSWDJkM3FVIytGcwogICAgICA/R0lLIkR8ZHpGRl0mZ098Zi1zfClgcGQwSzMzJV9jOWonRCQkci8zM3BKY2dDVl5tTX13VlhwbFklXUowUEhCOFJHK2NiM1VOI0JwckFkZGp6dzlBLzZpNDBnIUZlOGVeP3tMJShlX2dRQEVrUwogICAgICBWPyxYUCJeJVdTQ00iS3tjUTJfP05lX3BFcGRQX1hjXU16XzZoSjxWQXMmOiNzUnAtaXtOPHl3YylOQCI1c0BdeyFkIkBXQDd3P25ZaDpPOW4oVTZbX3lJfWdgUys1SiJbbm5WImYpaWM1dUg3XAogICAgICBXajMyTz1QRlticG5OVGN5flRaXDImVTA2OCNLb3xFOmY2PytiP0s1cH5nUmdiaXFgRVZCbSltVH42U2ZsdzQze2paJTpcaDFfJ2hnckpfNi1mNysmQGJpKSlNOE85YnglXlosPi1eWEtYRnV+ZAogICAgICBuektFWTQ+Ry5TLmQ+fEBjakNzLDM5Ky4hNl5sZnVmNkNxZ087dVVkUCdaIVZ2QmtmTmVXNl83eVIsLylRc3F4TCRtbiJxPDRATi9VfSpALGxqcHZpSVR4dSMxKklleTAqN1lPcD5MMXg8JmVUIwogICAgICBAVls/ejMmQ0d3Q0ksTzVKZDNwYXdSXD9sNkwrVGJBXlpTSjN7e1RDJms7a0wvYGktfC0waFVyRTU9VT8iSCE2LnA9d108IjkqJ2Q5KG9MW2tQQzQyUT5DT210N0MxIUlcVm5JTn46ME50TSxpMQogICAgICA4bUk4VGBnOS9yVCwsVGNLSzE/QGp6fTg5dFQ+RitHXTZYMGB8ZkwoLFQ9eT8xPnRPfXE3bXRWYX5CZHpNNi9BcWpcPUxuOWtWQVRPNytkYSZgUz1SQipafj07X08lLDwnMj1cLCssZEV1JlR7SwogICAgICAlTEZ5J014cjIwM1JDa0NPLHwza0crfD49c3RHXzRccX5oQ1ZTT1tUUEQ9PGxbbXg9cEB3WFRWOCg9NHt9MyonP1ktUX18J0RKemZsYjUlPCMnQCwyQlk3Omx6fHd9e1xvIVVING48TF4sSyRwegogICAgICBqfEY6WS9ZISlPMUQsNF08SjI/azB3MjBral9JRi87ZCY0JTtAJz5GLidTJHYneWxuRWcoZV1cPHwuYFZ+czp4MChaWyUpX0BLXTdPXCp+YkB1OTBjJWxRXm9yWjNbbislPyJSVWBBQnc3YSM/eAogICAgICBqSDA2eEJdIjIxaEIvKixXaihpdzldIyJLdDYoL3QpWS44XiF1a1ZHLyVMMG02YzdYKE9NUWFAQC5Udn03XXcoSDQzdlNOWT8uOXRsKVtlaS09Jls0MDs2aVpaTlB1dkRMczFAJ0lcPjBIO1slJQogICAgICB5IXRMQExBS342P2YoNyg1YnkpUWw5XVg4e1BXeUEvIkMlczozWVJtbG97TFAqK0NFOSNwQm8+QX1DaGtLOUAuQHUoSU5AVWtDal4+ZiEvU2V0dEQ2VElGL1xqVzA2bHtUM156diZSQX54RHtQNwogICAgICB1ZkNlJXNOUUNmczRSK1U5bjcqNCFYUmlBfCJSUT5Rcl9pbTNiZjs1fGtOOFhWRjUqenciQHM2RTtMXUspUlM0WkcqbmZrJHZGcjUqKiw4YUFAdzVnaSs9WyhVTzZbNTAoU0N5bHJDXG1xMFlGdgogICAgICA1Kz4idkNfT29paCRbMFszaiw9Xid6JGxLKmlZYWNXL31UZmNcSSoiRGo1W2R7XW9wQilWRSovWjNgSz1fZjE0LldMJWpWcDRvbXReO2wrez9KKChdQUJlZjJuJGE7RkhDJCMiYWp+Xi5BeTteIQogICAgICAsVl5lNVZlPWdGekZfbXhPL0lwa2pTb3hWOTY/fWVmIiIhcmEzUTxSSnBuc3lFXGBDQkwkTDNzcFNdMEg8RnBKM3R2MHR3JSo3JyUhQH56JF17YT4oIy97Nmo3aTRjbXdsWzVBRW45PHskYyd1XgogICAgICB3e0dESVExTC0wZHlWYTpLRzZHWi84IVl3cTxUdi5WVF9fai1LJVw7amE9N3FiVkpRS2M2RD5RXDo0OFI1MyFXRU02JF9rUm00RCkuQVlGZyIsQiEkRFJlK2pVUWY1MUQmQlY9Tmg9dDtaJGgqRwogICAgICBMOHgneSkjPmZMfGElSFdxTzlRTSMnWCpNL3AubnF0UFRzWWB6ej9VYj8jbTQ5YShVbTZlUC4mP05NdnB2VjtdWn5dfldXejtPeSVRWm5qQlZEY0ZgU2RoK2VOcFhPITtBN2pqRXEoZXEnUmdgPQogICAgICBmOzleSTB+WjVuSUpUYlV0Zm5FY2tIV3RqYHNBVHVkLzEkakp9bCw1Mj5PQlZ1SkUheGNpNSprM243Qy9AVHptdmAzUXwoTVohJnA1cEhbUFVTSmNuL1VRNzptT2VwWHlTXCp8JEpeTy18WHF7agogICAgICBRbGpAXjJkalVcckBYdG9lOiREdicnazolV1R6KVZWUHpTWVBsVWNrWCgwXFAoQD9cPHRiNjEzWlxbe1gjfWpLOG1ZTDNTMyN7YjltWlk7XCgyJl1UOl9hbGA5LS9cODdSY352OllWNXZRWyduVgogICAgICBefVlONTZEUU54PWVkU2F8Zz4mbnV4aTh7LyFZOF89NShUJ28kRkYyIWolNCJhKFcleV01cj5eLHYwcnpjKncpZTRaVTt5cFxSXTdIUSxKLDN0JE4xX1QpZ00nP0oxJyo9YlNfUzRdfX5lZ0A8LwogICAgICA/LyYnfHt+bzVtKm5oS1RFUXdQRlRXcFsjTE1iVHJOLygtNWBQezBAVEpzIlEqZnJFbCwrKF0uRmhRZlIvQ1xNOi5CXn1BOCtLQHE5ejNELkFtNDV8NUskJS4yXzx0N3FpTXpHMHhocyNQdmNBZAogICAgICByaXdSO1dYMSE4X2FzIiJwNylYSD9IU0tMJHtAV2dObSVGYGc9Oy1IczVgW1J2LSJrNiU6Tm5oJzc8fEwpPz96Q1FzXWJSYGJ5ZElpWHNXWXsrZVdxY2clXDhyYjI1NjwiQlVtKz84fHIvd0FDfQogICAgICBsbURzXlE1Kzg5XnsieSopWSRUYXwxQ0AneH5rO0xnfDhwN2cqVH0xa3M2eXQue10+L15+dURpKlhoKU1yZUUrO3c5c34iM0lKR2BjTiE9Yyp8XmNZJUAnanpXYyZxbVRDcl9UNk4+J1B9KlZNYwogICAgICBWa1FzWFleKVVzb0E/S19XantEVkZYUSY4MC93fVUka08/bEgzQEtodTMobi1PK1I3aERRS2xFP109XSwKCiAgIFsiOTM2Il0gID0gIC0tIFNpbXBsaWZpZWQgQ2hpbmVzZSwgMjE3OTIgY29kZXBvaW50cyBhYm92ZSBVKzAwN0YKICAgICAgWz1bIWNxJUxmN11CdVR2ZFxVJGB4WTtaZSU7QSZQXGt1dnp+M1I/ZFdIYzZffTAqZ15pSDU/MlJNNHM5ai04flxvb24sQWdzYlNIX21QSmwtOFlANERALCdQI3sjfi8iT1svd1s7Y210T3o6JXAKICAgICAgLSo0WUEjI14oRmRRSjlVcjp5bkhGTCtORWI0XEFGYFRsZjwrXDRSc0hCeTBLQS1eMy1KfShINWIhcmo9cmwydjgkeWhLJ3JIbzR2MjtCeUUySSlMWjFLZWAjQUY8R21XMFUtfSw1QDBpJkFcOGAKICAgICAgeScxNzhufSQ+UmBgKU14e2wtVGA4QCpCWXMhUEk/V19hM0dZRiJ4ZSFyWGhNWFJHVDROSVBnI2o9fT8+MC8+V1clQUssLFxCJUppYl5Pc20lV1YwPDA+KGZEUnQiQ0oqO2A2JydzWm17eCQtO2YKICAgICAgVCg0ISI6OTokOD1uOUdTZzVvYkQvbyZKY3RocnJgVCkzKC5uZz9sfTAqM2graT9OW1YuVWdxRCFzV2RISV0sRT1yK1c/JkcoSG1CdlhXfUN7Znt5RzI9OkdbI2BlczUqKnx1bWJgTytqTE11ekkKICAgICAgMjwmTWJzZm8pe35mSGlDNVF+JHxiXVo5O05FZk1dbCF8SWNGWFtBYzhKfUIhczF7ZlpAOWsuekIqYHQpMzo1WCJNUlF6S3NBPjg/MENDI1ZeUCQqLV9qSD9IPCcjbnZuMHlVe0Ewc2RmY1BEVVQKICAgICAgRjI3J1BOVFkoWTphM0xaNSN9RWI6KDJ2JEAkNEV8ZXc3bDRhdHMwTmI+dlMoP2hnYDEiYHp2ZXFCSzhfNktNTW0nJ2NdR0R3TlQyX3h7c0hkU0xpZDxSWj9ANDM7eX5FSXddeWhdLCl2ZDljU3MKICAgICAgPllnQEZnb349Mi8kXjJzJ1F3IkR+QDBgXUwpPXhdfFtRW19HNidvPzB3aFs3aCIhRmZZVzB7dlxVKUdCS3cicSZbenE+KHJfSVF7Kzp4Xmp0fFgvQSRaV2RVOyhsNUV5Um8kOSFzbGlscmdEdVcKICAgICAgOSxTQHhtK1VwcVk8JWU+RSYmYjx1PnZIVkBkfkkiLWd6J01dY05MajQ/IUMpK1FWTTZ8O1lUUS9+U15sK2YlRGVpPzE0SDdmVkY2eiRnPkN+bVoybGlSfnxQfmQ+WC5Pc2YvL3dmb3FDfmEkQkMKICAgICAgWi59KUg3QF5FM2xdenpxczwzQUh9aS0hJzpfT2s9WVsjUHVTYSZwNGdCKFA8NiNMaDV+RCU8W2k3STtAcHBHcGUrImNRXH0uYHg0NHBGPUwnSENXNS9+cjo7XHZfbXAhSkwndipUJEkifEBoKDcKICAgICAgVnMvPEAmQm45Znw4U0N4bH47Ty9iRVFzN3Z6MiEmKUJieTVcK1t9Ym5iYShRX2pYRk4xRidCRWVdPlZpJDVBPDx8O0tLRk4tRDRHaUtjQWNocXw9YTckIThocjo+T084S2soZlMhSVh4O1VGKywKICAgICAgI01rLnImN0FmKzg/aDomMENldGtYL0p6WVd6ZyRGKmE+fnwmeXpEWE47K2MyQVxNJ3NhS3J0Pjh+bUpMS2E6ZGs9InYySVE3bGxSZ2opSSEubSRjWCNxQjNCTGl1cCMwUSReLm5BXmM4LE4qKVwKICAgICAgMWA2dDowJUkjX2pIa0Rzaic0QGhmQ2c3KC9aZ2tNPUE9dF5wNWkucHBEVDBBZ09eJXB4cldMNllwLjs5Um48YGQ5bWdLT3JLLkEwM2NMKm02O25yJEA+dW8oKiYwS0lUVDJCW3UzUDVAYjtfREMKICAgICAgIjstWSwxLkhxay5fWUspTUpKPi5gUHNgSUp6Nzs1b0o9RF86dldDVEJ0emAhPV1JN0VZejd1SGVfQntWem9iK2tAPUkkPSdvM01YJDNKbyFvVHRQYmxeY3VIU0xqNm8oZllIKU1vSmxlX3tlKFoKICAgICAgbDI1eVRkd2hmZFJ2RXN7OC43dFRUeHhCQ3pjUTVZL2dcVU9eIz9tXy9DNyk8NUZjJFgkPnVBJDwmTiV3flp3VTZSS004IiV+YVQoIyc4SnU7VmpNbFxyclBDOCdUXHBCIm8tamwsTnFzUFtUa2QKICAgICAgL3xkRXtwPylNZ2hscFJ5QERQRix1Z2kuXGlIUDZTQkxsQ3NAR1NtfEZLbyszZmtrLlZYXyl2eEszZzRraV1YbHR5SF5aPTZWcmUnMlEwQmNtSEIwUVxNd2pVRXNnMSI2NEpkenY7MkNgRnIpfnsKICAgICAgQFw4OiVfXDVudzh4XWZMX2gnaDwzL2ROYExJRjxdOj1tYyN8RVsmJCwrMj89J14jPHhkVUVEMkRUaj9wZF5QNl88X2BRXmFhTUlybFM7T089U3RVWlIqMzNHUjRpWTYpTWhJbzRwSTEpYTlDY1oKICAgICAgIWdybWJRQGU8TSw8digqZC5ubnxLIi5VVE9oVDplKH5yemYpYi5FeipCOVlXMVRtOXdzVW4mJ253b3lOZmlRPGwhc201ajtfMGU+X2BPJy5hODdAa3B0MEhEciUkNS9BJyJYckJbOyhGTHFrSXAKICAgICAgZUJCYDtDNmwxby0hQDl5MldydidIJCslRSl2ZkJqbi4ncmBJdzsqJElYLGZkSl54cmAyTWF5JSgvNTR8T0AlXj5zTW9Rand6WUxqTSYrUWouWydyXmV5SiFGLSEkQSRsOiZUPWooe0A+Zk5cNz0KICAgICAgMj1sUU9JYzY9THBHKm5aPmtiaTUhMF51bDdqTylMR0JxOWxUUUpYOzVLTilTTGVBKEJObV5BPzBoRy9+KEhhV1YxQnExSFlGc2lXYyIjJmR8VnEoc3Z5VUNbfE5cYXdnWCk8S1NXPT15dWtxTWMKICAgICAgQ24ld11tfXJ2ZFhjeydqbCoiTSxGZWlXZ3JtXTxhcHU3V18mWFBvOjZMXEM+SSVfUFhudTEhNkM9Ul88P2VoWmpKez1rSyZ4cT0iNFRgZD4uJyl5NDEsOXR2Oj01MClDKXR4LUQkODNcKy5BYzoKICAgICAgdlZRe3g5MyJfN19KfT80bidJNzxELmMoQ2hmVHwrTXRfcDpDRjszJ1UpeXlxe3goSjs9b0giTX1eJ1RsU0xZN3p3RjhlUUFleShhTFFfMGAvVCNDPHpcVDEoI15pd2o1LmFPU3RKR0BxI0lWPksKICAgICAgPVUyZTh7M0onXSsqdDJ2PnU2YTZNOVldKzEjV0JicHl4XDY7OmUrSS47aCZbUns1ISpaLDZBJGx6cWtRNiR0XWNqWHcsRlVEaGZMITRHOWJQK29eUWV0aClDXmcjNkRVK2lTcFpETlUoL1xxLy0KICAgICAgLD5DNG5oKVklYlckJkheY1pSLE9kZSNHfD9+SntlZE9iaUw1fWBvKDI3Yl5FR1p9KDM0OW1kOS5kLUdEVXFgd35tPyFGbnYuYVpsflcyXCZHIk8zNnBAJXEkTUYsYiJVeU1jZjZUe1l4Ni5rJi4KICAgICAgblR6M193LnFxXWVMNF17e0F6InxIPDBOREtiTSpAN2YySXMne2Nib1dWbWB0R3dBUzpVMmtqb0J4MXE/XHVIKTp4YltlLUo0cVw7LyhwNXI1amMrQDpJWzRYbSxxYVBFJ0onQnxLe0hYcTF8PnsKICAgICAgNXZwWlBTKmB1M3QueUEqLl84bXVeRiQuXDZ9Ym9eOFA7PCMrPVBgVXUnZlpnO3ElUSwvaFxyLy0/eDhFRm96N1ZVYTt2e011QGF7Oyl1P1NtajNhQ1p3PDk4PX5SSHJpSWE/XFBCPjpzZWh6MEUKICAgICAgJExWdC0xciw6Jn5YNW4+UDI1UzVUc0RKbCs2K2E+P3lUSyRdSUlofmhnXn0qPFR9aSoiZGxJMChXM1MnQTJNOWdEa0xVPXN0O3NHLG9yQnlwe0dVVmBmN0xrPUJ4NC0rQXdjblxMNytONllQXDQKICAgICAgbDlMXF43aU12KT1jLU8iO2RTV00xfDM+cmN8OyJxbzF7K0l6M197ekV3KFxuLkRod2JfL0NOKXYvcz1eb0crPTJKXHVFTTNNa2JnOVpJV2hJU11FKScsZjJQJmpgfSU5WjEtLVA8X2B+XndwK0YKICAgICAgSUxvZXRVTis7e08oJnpqZyxkQDRtIiZOcWd7WVdYaEN0Q1ZWTmtkb153JjtENWt7LD0wP3hRYCw8K2FVOCE8Wlw8WGN2JnlMWk1EJ19oVSJlbmIkLSJKRkZTbE5eUi45NSlNT0hVL0VPRlluXm0KICAgICAgLShwSnRIKmsmaj9LMWhPfTReaThETVdvc3hDRWI5fU95dWIoRVxCeSFMcGtxSjExYD5hdjNgaGNIRXM7QFljdUw/SzptIWN+aEVhclpUMilhMFMiY0ZMPy4mLyU4Xk0pXyZhKmZRZEFYbiJSJWsKICAgICAgJVclRVVyTWpuZTYyTj5NRjdDdT0/QDNzNnE2UlI8ZFxIUEFFLyJITFopQjBqfUdPRU9qeHRtazFFbTxpQVFeZSVyRS1cIl4zUEZwUkJmeDhfYS8uY09hRUB6M0tCfjFVel1PdE18fmJzJH1JOXkKICAgICAgKHNWZk0wNlNTbXUhfjBCQkpmbmNuSTxCVHxDUFZIbmBsKk99XVREQHFNdjQ1NWA2JG0vT3U4MipQSy41JFp3UkJqbUIoLl9XdXZMdVFGdF5MRDh4b3JQRk91VSJtPGZ1RHg0SiVDQy04I0JWMDcKICAgICAgZFdTbWptfD9IW1g2P31mK3tkb1Q4aiZ5K1lPLHlLUUJEdnA1JSxsWyxgVjopLWZodmo6KCsieX1UWmx+Yl9jdW8sbFlfZmNcIXFtdVFcYCMoeV5kfSxiUHd6QXhPc1d4TCV0SzNsJ0hrRGErK3kKICAgICAgK1BXZ1A6RHF9ST0/KntwRnFOfl8+bS8pMiJnXDRSJExrQ0pGYjVSajhTZSNEKDpBTUpzXmNqQHBGSz1dcy1CT0xKeDRrKmhDRDJrejleZX12YUYvYGxyLmw6ZFswSG1IQ2RjY0BDLCpccD5ZLDwKICAgICAgYl17U15heV9Fe3NjK2I4YT5tLnwmKzUic2FiPCw+UnNxQWJuYXFsOEUjMCl3ISkhaDZWWSJpTEZ3TEg5TnllWidwInBbZkMzeFxMIU0xcSlbXlgyfUVPOiJqRn4ve2N9fmN9W0wrfi9DckJ5IUAKICAgICAgaWxuNXhBT2dEdmlhOTlkOjw/b2pbeGZlOn45RU9gZExyIWNNNzctX30oQFEkQDZqTVo4O3x5eE55WjlBWUAsaGFkVDhcKGldXz1YSzRLX0M/KH5LSz4iW3w0NUkoPU5uTjgja3tkLmJiUi49JVgKICAgICAgNSNeXXs7em51bVlrPjVqPlQ/YzliejVEREJrJTt9I20lYD8mNGQxOFMlNSw6P158LSxndyZBSVFre0hTKSJWI1IxM1RgN3ZRSUJWRXlBXm1QZGVnYFQ7ciliZSU1bClpL0xWWkQxPTo+VER8XVgKICAgICAgemtNRGcjODVlOjJnfDxDKSRSJGEzMDx9I3Exc3QjaCovaF8zLi9vMiZoWlosfShxVXJNMV82KzhvaDhSUk9+a35ZY1F0KFZDcnt2JidreFJVQW92fUpqRHhdKGQzaChQSG4oZXZiVXFULGtTVisKICAgICAgWix5cjRsZzVOWltNNSFteydsRExkJEdIVT5eVUg/PTcwfFljZ1M0VVVKYyp+PFNQXk4sKX11NFI4TFxTN31CMDBdYVx9PVN0YWwnb3tTXih8ZFF3QFIhckl9JFxTYmhqSlkyYVtUdWslOzUlclwKICAgICAgMXdRcGdHMlErQiQyK0IiIzk1IzA+WVQzPFFnXC5aWmgoQ0RfXXEmRylAZS10eHJ8I15zUVZnS1wtNzVpTypgLXM5SF1BbFQ5dTFQcHlKQ2VSUlY2KnRsWF07IlNucnUxQyYsYW9PRlZiJXxDSG0KICAgICAgPyF9c0VfNSorP3IsTitFU3BsdXVxMU02OktiWFZlKzZ0QHU9R1VPeiZ4SWA4WXpGdyYidy56Ll9EajMmQU5GfntdLz9lOkkubkApPmM/TDI2fCZfbnZ+MyFOSVNtdkVAbn1FR19qTUJbJj4uTU4KICAgICAgK2x+PlVXeDpwQyRuRDkqMmtPWVZPLDNhLCIzPS97dG1pN0JKQSdvQzZeIWBsSW1EX3RmOU9tLWcjcjstKiklM3xaRUZuc0A/U19MNWNud0dLdlVddjpeRycqQlc+amV9OyplI196J09aPG1VTzQKICAgICAgJjNNfSU+ak5DUXx3USk1VmxSRiwyWWtqWlNMeEwkQncse0lLP0RtTlRAcnFrflp0fUEib3BseVJWTHRJQzhaMUpUfFcmQDUsMCtLMGJHVUdccTtNS15rTHBJelpQRjZGTEM2SGR2QTF4KCpDfiMKICAgICAgZmAsR0Q7R29GLklXb3M9fm8zKiZGMkRfV3k7L1pzLDtnVVtSLyNHKlAycVZ8Z1YuSEBvJntiaS9UcjF6Wl4oUn5MVFt8J3tPO0h+cTYzRk1eTVNlOl4/Qy1ANiQ5NHNNXFQ5di8vW0dGQU9XUnUKICAgICAgWmxIOSojYSpILEhhUipRQ3QwXlYkJUd3IXtiTmpqQWVVTVImTXA0ezAxKn1SK0gkQXRUZjFfb2F0OiJTVX07ZUkrc1FbaWswe3dZXVdFSC1xKW9sJ1MqTjhDcCFja0wpal1wVGNBfXttfGZceyEKICAgICAgaikkXyZQKXs0VFpwSl14ejNvO10iW3EuWSY3MlswMWo1bTVoPSo1XTVcSispLXB7ZFQvdWpcLzxOW1AoI1YjUnFiZHNWXTlpeHxKTj00PnQxcWdqSXFmTXE3TnZmTj1jYHsreDU3SjEtWW5rKzYKICAgICAgXUxae0pzQX5SRkhGNStwdlFDWXVCLSZOIn0kMiNoZH01djtlcmxkJVJXZ2syVX11ZkQ8cXJkMXxhOXwsN3RcMnhjYE58RUdwQioiejw/fG9bNClybWxZJlE8SlA+M21ZfDltJUxfS11TPyMuWEwKICAgICAgeCZCcU1LXU4hPXo3Yj1SR10+bj5CJS0+azVIXiJZT0ZMT3woTWxZX0pwVGM1WENAOHJxZjUhVDNXNGJebDopQl9oKXA+PlB9I09PL0lUbCgpdklgLzdrb1tJT08wWmwwIUEmaWtJbFtSXiM5RmkKICAgICAgSUgpN0ZsR2JyLSV0akI2XHFbIj9OOmRCPlxfb3JmKyxmISUnJjg9VnJQY3l3XVhoJnldQCtXQG8sLEhWWWIyPnNrUmAoMmV+bmNifEtfbyhyQW1jbTpYUlEqcDhDZWg/WkRyZ21gSDNTYD87RzQKICAgICAgPzdhXXMrX3FGXHFOJXs6YWtbLk81LVxMMXptPDEpaDBQYGkmbT5xYCJrL3wlMSlKQEUvel9OVCdsLkAjYi1iI10qTikwIl0qcXpDb0M/WGJQeUY8TStvVXZTd2x4aVcoRzhdUjBmYVldPkx0SFQKICAgICAgU0FFY0ltSExQT3UwZWV6XiQyOj8veFVwc1VNUlIhTVx6alE9VlkpJCwzRy5danpXSWcqTSZbKzBRcCFRYCIjXCIkSmZBeHE6am8iSCx9ImkhRkoycnkpOTR3Nm5KKHE5JkA0QUwjJH4jWHFcdDEKICAgICAgeCMzSVIyMEZtYzN1IjRjJyUhVisofS82U1o3SmMmUTV0XjlcKnIwdkhLaiV7YEphI1p2XGtmWWZtal5qdyNzRXE6em5FVSJTQiZuIndVb18obWgwcEx2ZjJhc0kkPlIvPmAhazhNcUAtOHEhIVwKICAgICAgLTpMPjFRJT1hbmtOYX4oLEspZX1ucUJ3XFoiMHAnP05mQFpwYV1TVjpcNldFPChuJk5+dWwpIlxPWThIfmQrUl1XQ31JezRJRnhHaUxEW15eUEVPMkRrRFssOmgyYXJCTnJlQVgxUl1mZ01STj0KICAgICAgPmVpciVbb0xuP3R8MUM0YTwmKyQjQ2B4XF92JC8yOTxmKCFtQSo9fEIlOSJ6LnRBKk5AcFlxeE1sSFkqUktZLjs2b1JCRGJJeXY6LiY9MjdubEFhNiNnejphfDshPH02NXpYbUojaz0pKXhcSDIKICAgICAga1d0fk97W2dkPGU3USwnNk5reis/eC98KSddRSFbNGJ5dl5qUGhleEJGLzc3JmVuek9xR297XUN+M2skXWo8cFo+JVgiZVtCWilvN1d8dWkwWjJ0I2dxPWVvZlU0KjNKQCdFW3NlLUNAfTA2WUYKICAgICAgfFdrV25JR2wxPVJVVGFOI3M4X00ofWQ/WiNeQCF9SXFrM3UidD86SEB2VUMpUU8hJnInRiNwJzNpbiUpMlpmJzJUZm5aUzd1L2xFYyxcdXo2ZFtTLUspQUpZRCFKT1l6b25tVEc3U1I2MkU4cScKICAgICAgOkhxQikhQi1jNWNPQkMqMmtfTUgjcktNIkEwUk9eXzxSN1hmWzY5P0t3R1ojYWZeO0N4LHpcaHByLkU+SUhQTz03OFxgQSw9XEA/VmhxN29+NV5DYkJTY1lLVUstPS5YRVxDRW1FdE0nW2FLMWEKICAgICAgQ1xwREhZcndCST0xMSt0NisofGp7QV1wR0JgVGNaKllzcH03MHdMbUlTQThXPnFFLD47Y21ORyNQdm01Lnp0eV5nfkFCJHJiSFIsJHVcP1Y9VWdsZW4+S0FpNXBLIm9BIUJDb0VARVR5P0luSCgKICAgICAgLUMlO2l0OC5pbEwlVllIPSJYUURiVXM0cXU7RmBnKHp6KF1afWl5IVhkNXYrWjhRUj5eVCRbR284OGh2NVNlXyNEeTkwJEc9M3Z1MD9iU1pgUWJSPlBRSy0kLyVmI0IzU15tI1RSeT9ldHlweTwKICAgICAgZDFiTUduOEY/R2hZJ0k9XiMlRkJFaDlYTkA6KEVKTUVUSixPc3BzO25zTXNUJks9NVIrdipPdW0/SStBJ1o7VyplNHpSPXh6RiZQNkRleixSbCdJJjQjZnxkRS9ESVYiKDp1JHYkSWs+JVtkbDUKICAgICAgVyM6TGg3fTEhfV9VTjRLfk1KVVs5bWtjfH5CRlpkbi9kcHJKXlVzZlc6cGtdbiw7bT49djRXaz9eNn5kUE8iLFA6ODsjPCZeV3g7TEg9S019bydOV307NVZLKXFmJDQkPyFdMX4oe3JbamBQXSYKICAgICAgX0VDdiFKMTxUTlhLM1deNzdQbzZHbSdoIXA1TFYwIXppO2B2cic2QExgOz5vWFUsaCFaTmJneT8xT0c3enFMbGR4N0IwVi5idHgySlI5LS5AJy5QLjttVk1ZckdmOTNHRVNYOyQ0PUp5MVR2d3IKICAgICAgOFNJZDxXOktdNGBKdltZbyM0OEM9OCM4clZeSWgzVSVkYEp0QkRRMlI6Ny06ZF57X3IyQktRKzZeJj5NPC4hSVM5UDtKM0JsPmJaQV80VU0/NGJjamN9N18jU1k3VVJhMVR4KShbPEN6TlA8NSgKICAgICAgYCtJczd9fT9qOTAvYyhPOiVUaVUodG5aUnY9K1Z9RVI9U3BmMGZxUlA/RTp4XTMrdS00YVtOSD9kK0dUWG5wbntPdiluSDQ/P0Y0SiF7LE1fLUwqSnU0akNjWm9eZXxufWAxRyNQeEFRTig/J3kKICAgICAgJHFxLXV8aCkwU21sR0tpK0pwOUZSKis6QGRqOFstIiJ1UXkoTnhiVFhWNFAqUCZdZnV8YDpGd1lRfnxOJSlKNFJJY1BUaU1jOHNyZkxgfTtWPCtxVSJVc0pzUXpNe2Z3YUxSZ1QqJTJUS2tZVy0KICAgICAgWCRXTE1nVS1kU3R2dk5PLG1FZjM8SytfKWNaSTpIJVp9KCJLcWg0PWxtM0w/RztqQEFFanZJLEZ2aig1clVqTGF8bTZuQjN7IX1KMkkkUFB5ZDY/JFNfYVU2d1JxKGI8Nix9el5RL3h4cHwlPSQKICAgICAgdiN4bS00UjdQZHBoJTwtaz9ybDU/PTozL1ZyPX4qU2xpRWBBSzgvQUFaM2F3czN5byRrcCpQPkAyYz8rXSovbD1haTRPMEttY2oqaWdbK0BkOk5Re2tSPT1helxxXmAmT0ZhLUg2QjQ7RzZbQkEKICAgICAgZU4iOnU9MiRmbykwLVlYTnxMUWFBIjtoOCtqKUFMcWFATXdkeCM2Q1JvajwiTzRzTlY+Kl5vOzFqa1BGbyclcCJsSzE9XkhqciNWZWVyVkNvImtEKUcjJ29yLEBAUmJfLCFObCZVVUBARSwvIk8KICAgICAgVWM9bjVcV1ErMTUpeHo0eFFmMUQyU11NNy5LIlswISZEfD5abVdIUyh6PFZWXjxwbTAsRFlpZVc0Ik9Rak4jYnhQcGApXm18OCM2L3ZXLSVDRWpCcUUoO2cuTUJKTHBNY2I9KloxMjtfTHdYVEAKICAgICAgdCxcIjdRQjVHO3hJI2wxa2hASEZ1ZVhYPlhjNT5FLzh4WWdlaFspdyEsLkZ0WW1+Tn50fVoyZl1DNWVeXjFvbTQ3UkVbOFhsPUUpYik5LkREeEpgKiVjPmtTK01oelQyK2t3Lyx8XDMsIjQpREkKICAgICAgLG4nL0l2Sj9dfj56M1VxWH42S2AtSlZqXFghTkA8aFhTZildazVGcTtsQUhVMnhdeHtkY34vVTltbkdyUmo9RzReX1Z6LFZccnVNKUQvKykrYX49dD5uW0QhQiJ8VXdSI1x1bnooI0I1KV5KTDsKICAgICAgLWd+cGB7VEd3NV1TaDNVUCV5UHBXQ1B7KmIyTUJ1aydGbzZPP0Y8PVFwVy8uOExjQjFSJ1dAMyNuVXFraV1BI1pSUkFGS0xKLCY4IXIzLy5dNWtfS2I6OEdkVmYsclErVFwjX3VMP15TOVRqalAKICAgICAgUzo0XG0rd1YxTkA5L1JaSWpaLVwmb1BDLVxmWm5eWmprITU4fTBoJiZCenBhXGNVe09tU2pGN29uTjh4cV0mQD1GcjxVYkB3KkxaZCIvdlNXTCc/eEdOTGo2NzE1djolM31sXHomTnZpUzoleiYKICAgICAgcDJbT0kqKCojUiEjYWpMIy9zU2U0YFFtZkdlOjQ0RS1HcGErcTE6eSlsI2ldIVQ5V11wSjRuKi1ya3tBRDtmKW9HTFcpamJnMjdrd0hsLD8lUT0/QVU+USNvNlx9cD5cS2Mpfi44ez1mKHRdPVoKICAgICAgUkM3VkcpWGwmNWZGPVNASy5NQXlbOV93ZjtpTSojY2lwO0NXOzZpTk9lcHFzLFc8Pz9qZW8kOEo+W1ckLy8jazgxNSlzR0J4Jzs2Qlo8PUR1eCkqVnBsWGBhe2B8TDNJdydnK0RyViUkJEJ+UC4KICAgICAgR0E+KHlMaGR+RV9wOltGJXdScHdMXjNRMUYrdE93QjNYPjpcITFobXdYfClJPm1dQV88VSJqekd0RXFMZUFqMyw3fUI3Vjl2ZkdROVhNPSl4WSREekNWdl9jfk5lay5YPSpke1JmbE0oWUw+XVgKICAgICAgVydNPC9KaiVtW3FyaFVQdVU3WV1UJ1RgNW5KaGE3YWFmRjdvP3tvbk5zNmpOXlc0MS47QDdPMXFBXVskI0RobSY2cFFXZlE9Z0BjK3QnLEluNCQuKEYpVzwvNFA2Q0RjLjYsd0lmZUskPmorVkoKICAgICAgMF8sOUsub2xzfFRnV2dNfkVLRmwtcVthfmhJaXBQdmBSUz40JWV+WWd4L1YnZX5XfVdGVjp3R3xOVFxPQDtQLjo4N2N3P0Y8eD9BKE9vIV0iX0NdUHwjYUkhaVtUdGxIUzUqU0lbfiVGcCspYUQKICAgICAgL0NOTiRZW053OFBiViwpZWAsaEEsPz95a3NEP2h4YnlzPmMjJUt1bykyJCN5QXs/MyVRJCFSLXdhYmUyLj9QeC52W3AtV01YaUw0cn0maFg8TSxRKyFbcmxWUT9xY2RdSmIjSV9qLEJgQFBaXk0KICAgICAgI31MW1JqJmBeLzFpbCUqQy1KUzJRYHQ8MEhVUT9tPlBePnpYfi0uMXN+OV40TFR3dC13T093KypaXXJsXGN4RCI/Q2tQPUFILDZ7X3JYaWxSLG0/TVQ3Q3siJDEmJDxNbGpFXzooW1lTSjswZX4KICAgICAgJ0lMQnFzW2FuO0gtWzhsIVhJYExSXzcuW0BOQjBdeDgxQUtPLyheZ2doeUNeTWEjWXhMZSx5U0N3VVY4V0pOX3M4UCpHWSJvVFFfRHAsKkhAODx1Ui9JdmYhYzM3ajtHYmA5SD0zNH1EUmVcOzQKICAgICAgVyN3dGlAMl1+LkNIbEdCL1xVUXEiSy9hWl4lVTZMaVprYCFeU3p4MG9UV09bblBbZlI+bkZgPVQxKHJ3J3w3X190IjVOe0NIaUZ7bTlAQmh3RS1sb1I/bS59b2g1MExhaDZqQ2NqUlFgU2lFMS4KICAgICAgKzElQyU/WFtde0gqdz9jInNSInNTKWsvOyx+dWUtMlZgKX13akA1KzEqTGguUGpZbEUqJmhnSHFlfEpkWC5bO35QMV9OOkhraj83JyQjVkQrby4oM3AyMTBDPmZ5W2ddP1tCZzxzQn5fNyovO1wKICAgICAgOjJaSGV9W1g/fjF7bD1aZGtLflZ1cm9aa2FuWWtDfG5KVUt5Mi9TSDxPZU4qTDY3KjYoUGE1cDVNRX5JUjxbMiEyaGZGQ0UuKVVfYEIqayJjaz53cUZPZlM+XFBqZipPcl4/N1glRzAmdSYxMXMKICAgICAgV2paXDZRelZ3YysqaWk5KVFFIURzKTx3KnUrZFlHIyo/UnlccFt5VjI9Oy47Xns9Zl5wYU1lRWFGUC9nLSs0USQiRmxkUklfMnUuYUFDOzBwOXxqNzJ8d0VoQFp8QVUjcXpPcCs3eXk+XDNWd3MKICAgICAgczFXLW9SKnAoR0pcNDJTZE5den0na2tTbl5mR0NwJkk9LUM6O01XZiVvU0w6JCs8ZnJ0VGB7bFpuJHdjVllKMGxMT1UyOGpGW0J+X05hRTc4IXNmKi5gR3IufUFsdW9lK3lQLCt+WmQlQG4+QiwKICAgICAgcmF1IWRMaWYsOGNpbTZ8WUVfPzE1YCJrLSxGcXdBMXN9eXopJEUkLGt3JnM1aWJRKWw5MXtXeX40Nmp1N1BULElQYjovZmZzZUAuejolLWl8LTRtRGVVTiV4KX1tQ281W3c8Q3AmXWorTVI6aVMKICAgICAgdWJdYU8+YGE4dlx2KDldP307M2BNPDEpWj80KG97RVZ3QnpBIVdwcEJxRGwnXVEwfDYqflZgOykjVzE2XG9Tc3tNZzBLQU1nTnJebkhpKztjaksibyMjWUohLVU1cC1mYVgwTyd5LG52LmNXXC8KICAgICAgP0dFYkx3QGZ+fjdwbjUqZ2pEczMzdWg8RkpPPURdRn1LOVtoTzhTUF5uO0I3dU0xTkQ+X3tMPXxTW2pCWj40QiciY04yRnlyKWs3IlV7endcW24rWzQyT3A2IkJGIntdWyV6VHw3QUJ6LVBBRmQKICAgICAgSyshLD0jelJAc29STzB9RGw4MGV6TE1QO1c8WFVbNVxcTFAndlx3K3NrXzdjM3JUcnsqMWgoZ0JoXjEnPG5gOTkuN11cZVQ6Q3ZCakROJjguSXVFPnRCeiImbSNoIWVYeG8iUVxGJWNSXm49a3wKICAgICAgcktsKGYwVTJvMjBgYVhtIS1gaSJhODJVSCdLQVV8YWlgJG4xOyloaFlWZC9IeC0wSlVmOiN7IXRXNnJ5PDI6bTFwTXRXb1lsVV85KUktT18oND88LDJDL2o0RWg9ODZweSVofWgnckZnUHBSOkQKICAgICAgUU9vPSxZe2tBQThTXyg8MF4peUcpblx7KGMqZCNnaDwsQGU9RCYqLmttSUU+bDx8Y0FWSnRPRi12TCFaNl1ne1dMcD0+VCMsIm1qJGxAI3x9J2RzNFB3JT5rbEBdIT5HdHA7eW9Xb0pKdWUlJzIKICAgICAgbS9UTEU1W3I5Z3okKHt4MlU5JWg0c00lPyU9LntzS343e0ZSdk9TUTEhIVBXLXQ4OyhrdCpndF4+PWNDeSt0MlgrS1FyLXRVTk12QCtdUG5rX0lmYGMzdU5hXGcwWl9eTkl3alhRfmxVZVVlNGsKICAgICAgNVx1d2J4LjY9SEltMD5+KyVdfn1sQ3MvYSM7XnpnTjtRRz1bZVVBL2RvSyxre2dVU08iUFF7IlEkKSZWSGtOcjB9P0FfI1QpJ0ZNNlVBZz40aFhffWkudmpWekp3Vz49fjdoV2RMMSJnMWgrXy4KICAgICAgKHlLQS5kb29pQDV4aU1gaX02Z1Aod1RafUBoRUhmI1pVdiNGS1tTJi5wYnwtcUh1TClAP1MwYyVlSHJ+TEYkP0pvV1RLVk5hdydLVDg1JlxDVGU6ZTp8QF4+W3U5YF9UOnRJPSs/J31fRURvelsKICAgICAgZDhrTD9rTCF8VH5nXSotPScmfm1uVEQqUy1YNDopXk1oTlRYbnlQOWJlb2FIemtvN0lpVVd7UU9lekNHSjooLHJJYiklLFV4bV9RemQuRUVHMj5jXDQ0LDg0QWRcQm5SKFMwVVJsdCxaTi8uNGkKICAgICAganRPejp3Nm5ITl9ldjhIMlhacEBrYj9RTzxbKltvNkU9N2V1cFlYUkFCYUQ6Kj0kZ21BTz1oemJSTC0lT0hsMWctZFx8WChbZTpqMXovWzBzSUJzZkZaSjM7eWtKY3hJYSdaIUpbJWg9YyRnJWMKICAgICAgZiN5O3Q/OTtNT1IxIm0yWVFiYytbUCpxZS9wT048bTkhKiM2bG5keWNPdjtPPl9xQy4qb2suQnYzXm99X2Z8dj8vX0ZHW1ZeOjdFXTYnIWQ6fWQqfSx3R3pXP1dHW0NfO3FNNTNHJDQudHprKFUKICAgICAgO3NJSl90VmFFa2JrJGcueFkzJVVuazxAPX5AI2A1MSw6Pn04aGNNWTxwVWlTQ1E1cjhibmBFPX0jXDlLSXJJTzFTVidtYTFIfVF+bG54RFMoSU1CW3A3MT4udjluR09lO3Zedj40JjAyT09haSEKICAgICAgdyR2TURrNFF0TUZeSCQrTU41XH1jJWFgRihbYE5HLjBqTzEpaSspTCw9Y2x4UEhIMD5AfTBubEphVDRQTX5XJnhJND15QyopW208bEMtWS4tKmZJMlJaQz9ZWD5WM34+W2UiTS4mTFF6SHZsXi8KICAgICAgI1V1KGtKMix1ISghIkZ7eGB1JkUxcSw+eWg1cHV5fjZkfX1zXm83flg8V0prJl5oc2w2TCxeTnwnNWJRYSdnUFY+Sn5fOlF7WEo3Jj57Kzl5Z1MkWl8waGE/XT4paTpOJmxiX3t2QkwyVjwqXUwKICAgICAgfGJfbF1ULEI0K3oofkhvJ3A4K0FUTV1HI3ozZHxpelh3aUR8NDAhY2QyQC9lPF0lJ28qLD9FSSRBeVcsem5MLH44Zl0zeTZuejlpam0ma01gRmpmPVYxQ054K315Q0xtQWFdZjUpXlhDKVFsQG4KICAgICAgSCQtMjR0L29cXiNJWjBDIi5fVm94ayU6diIrWElWXG00THhSITdcUz0xMWgtSGZUIV1iREZYeyZEWC1BSXNKMCRFQ05KZjYoQjd9dS48WGBvJDlSVFlzJDhKOzsvQTp6RUlralh0TUZHbiZ4OCkKICAgICAgLkZ1KnxmW1AmTnEoXnRUPSQ4NkR+WFlxOik/dzBLNFQ8P0h2XVJdbWBSNyxDbCNDajdyQmRUUiw/J1NLPGFJXi9xZTIpM2UuL3A0YTlmMVAkT1FxcG88Z0VOXHxkU0F8aTNqX2tdPTpbMFspPFsKICAgICAgQiRLKFd7NC1uW0Q+a0V+eT12TTMiZWlzYkpkKmg7JipgfVo0cT5QMikwMztrc1J+eVl0SHRAVV4tb1pmW15kbC53QENdTjhkdUcycjEyZzw9XjVuWV5ZXF5FRC9DKzEsdG8tfClfaXxVJkhoTjoKICAgICAgXkZ6Zm1YKlpfbzJePC8ueyRdOG0tRDk2LlYzNjxEKEY9dGkvd1RBaEI0JmdcUkpBZTA/Q2ZkPzdzNns8SXE5IkdVVGxOLUtnOCRTc2dCSVVlQE5USUFTSEZnWidGeSt2TnFgc0NYb11YKXtBKyUKICAgICAgNWd7a0Npd2M8e0QicmVtJmI0a2FgK3Z1bGt9aWlidjExJWM2OzIsJX5KPilNJSFLPVt9RTdJU0FdZXFnXCgidHUiZiwzZGw7ZSY4WSU+JUZCX1JyJGtZO2kzU2dzalBRZEYmO10uKGo9UmpNMj8KICAgICAge35PN1RebVpbT1Q9dDtqVSQnWHxBfXJZLyhWbyhzRThfVUdUImczYGJMUjtpbTY/K3VzXl5acGIuOTlgJjRBLm1FNVQjW11GMDojNXIsKDRIOFdLP082clxzJ1RbL1tUT09qVHtsej8qL2BxVXQKICAgICAgeiV0SEwiazt8KTotRFF7aEwvT1EoWkFkazk4W3M+dktERjEiemI+LWgqW282OmVoTTQpYjhUOkoyOEpWVnFZfFMmSmY3Qy5gPTRlLEsqSXhVXmp8TWYsNm5ybDs/eEt4fUNUXGt6cGA2Jig6MlUKICAgICAgQCEpcHVEd118XE5NfW02OSJxJ0Y+dWlZMT4pQmM0KXFVNHxTUVRKO1t5VDF8ZVR7OHQ9fmdnQU9ldmQtKllSVjJmXk1jTD5eVWMiajdXOXZ5Q0I5SlV3IWVAXz47X2RYPiZsbUksaEZoKWNrKl8KICAgICAgaEdYNWpJK2ReeWZELXxOSjgiZ3NFfERAZz9hdkJjNzE4Rl9VMFRaKFx5RERKOUtFS3giR11VWTlZYXw6VmwwVUU9Imw1V2dHJVxmKShsL04oQ1hHVnhZSVFjOTFLIndqLFQ0JHYpO110LEV5LlUKICAgICAgdkdpZiJOcyR3Jm5HWCksQXlcKXp1SWFVPVdSLGgzWlRmbzFlVyddQ0ZHaDRCWCI0XDUiS3MlI2JYMjxcc1RlaTBCcidjUD5IV2pvV1VZL1NVbGU5eilaQk4xYWRPTTYlfGEiRWUnXSZZeCIuIi0KICAgICAgNHhnXTFAY3coRSlvZyUtTDdBcXc5WiZ9TiFfX1c5U3d7bmlmfDhGUUd3JjQuNkdwaTFjP3A/WlhKQUYiKlgrRFNGJUZgSikqQkZrX1pVWCZxMThQe2AnK3A0czB7W20zRFg6QlktYFolWVslZ00KICAgICAgMnlIPFJKcjotOkIkJzh7cC5yIylTJlBsMUJwKSJPbytdLX4ua3EpT1gvLlIodG16Tm9Fal1ec2dhM3N6KExYb3chcVMhM08qekcxVSN5dSxEQm19VEJ+LVpJJXc1Uyo8O054bGxPJ2ZyPV5cKmAKICAgICAgdiQ3R1wwPG1vYWlVZjpiX045SEFXcV1gYCNGTyxOND9WdjYvQX53R0I2RUBoRnxqTmVUWGBNXFlSd2l3Y3NCS2NsPDhaK1FQQld2LHJQOlpiQVJ1NCJ7Mk1NeTBKWDRkfFBAZUNhMH4pZWpQQTMKICAgICAgY3VjI3Y5T2BxKnF1LSN2cDsodWArXmtRPkAmKXNGKEZkdjVUJzZDQjxNdXE0N21LbVdxZDEubTtJMEJxL0hHKUQuSTEneWonJzRJXzNQdV1zRmVZeEJrQ34sMitXJyRlMXdDRUBQRGl6L2N1YmYKICAgICAgS1tEMS1+ZTYzcS8rL09QZ3lWeUVvbFk2OmtieTp3TkpqRllITTxOTC9pYjNNUGwrKHtfQjgrfCNeXmM/T1RJYXUzPTZTOHhtcGpHYzF7SidvST0yNSVnYDAxeV12USRlQTczfExIJ1F9TEFZW18KICAgICAgRTI8Jm5ieEg3RWsoQk5LdUVRQmVdUm96YEFreSJGPTc8dilFdStTYCU2bE5sVkJVOWQxNG95Rj9SZDVyPllqe19FQ0YtVG5lPD4xNFpLP2xVS2Uvfi5fXXA8cE0uOmFVSWdzNzZoKEUqPmxeP2gKICAgICAgW2xKQ0tyZl10LGUoXCVUMWddeC9dJmpxVmdlXlpFKFpaLXxVdjxCKnY5Nj5BVXYsbio5XSNRIkFsTyI/P3UufGBdfEUwSjwrXkk8Qy00UyMmLU9kQ3czfGlnRUMxOyYlNE8zNC07KVRsWEA7ZmAKICAgICAgSTFwST59InJhXEdkXlsnSDpWJCQ8VEFUakwmZlh9eGFLclwtP3FELj15MyRXTTM6eXJlNU1UbkBQeFhfPCQnUyZMMFFaQHlIP3Z7cCUiJzQ6ck89XWw1JD4wYlFhNi0hNXxgV2kmUHVLdn51YiIKICAgICAgRztPaypzL2M6ZyNxMkg/czJbPkRzdl5pQjJcVC4vKVAjJythTTYvdF5ydzZ7cjBmRUwoIml8VU94ZGhLSjFyLy14UHE5fmNuM3FoSTRSLGtUNnMzfUpoQFp+Y013YTInWUBSL0p2PzIpVG9ZJy8KICAgICAgXG4+P1BTZ2AjOn1WbVdWWDQjUmskOkJYckBwcic1U0IqYXB6RFJDbSpLcnlVa1VzfVB8VFVmTlVHdDFEJ2RqLjdUeU0qM09uXzw8STJTR3Y+dTgxXU1xeFAxNyJhbXQqdTJ+NXErJm1TSHhRcUkKICAgICAgMjM2IktwLD86IzF4eCt4SlZgYC49UDxMNGtde0ZtbVxcTCRccmsrfFdfTVVmdXswRjRnTzJwOWAwSWhsOUx0UWhqdHp9J2RLaGtxaztrLVU/VlshLiJ0TXs5bkgpJVZiLDxYPzZCa29LQ0NZOWoKICAgICAgbi9zdF5Heiw9UXJIY1tQTC5LQT8nMj5rLmJmZ05bSzEnQ1gzXlVZNlkjKjsmQEA4T3hqYFAoeT5oImBOaGd+cHN+diFZNW1SWl1vaHpYSD5YZUJ9WkpjJlkrVm5eLkk5QS5LYFNYeW1hV3tpQ2wKICAgICAgNjY6ekB9JVwyX1tSKVAjbX5DWzUvN0ZIc2swQzE+LEckRmxgMjVIaiZCSjV2UkxPXzg3dTlSL0Emb15PNSVoZz00eCg4dkM8N11aeEUiQ3V1T2lkT0xHYiNcLzpYWkVgPi1tZG5paXM5MHE7bCUKICAgICAgUT9scTZQRTBkfllWQyNpemkrXXcoa3ldeCdFcnMoVilnOV05MHMoV08ocnplXy1WZmZdSUVTNHkpVk1ieCRjUk5CUjtuRFNkcGNzRjh7dntGMnM3VHRUaDJRYT1kazpXdnBSXkZwVWktUklNTScKICAgICAgfkp5OSxXJn0oIXhsYWJ1REVSbjZsdixvNFhxTy4wYjtdVVYiXzMqU3VFPUs2eWZ4cWFnaGovOycnIyZdcUUrQDE4SXRvOihrfmVSWnFUdk9BQ1ZJUEdyfmJTYUhvXX4wWUJhWFs/TXZxQlhPKS4KICAgICAgMl9HbiZ1fn5NeDFOSysoZ0szRy9wcjg8YXFpXis/WVV2IWAtWWlDSmVWTydaLF8nb09qXDppOnYiJSdJQ14mQlZsSyM+KHovS2YiSnZbVW1qelY+JDBvR0tydWc4Y1ZcO3NGUWNWeHJneUhaRysKICAgICAgJWtOZmRfIUBfRzBzXUVZVF9rVk5jNUJrJT8nTiphey4kaE59My16dG95bzVRSS19aWhjQnx0RTV5Z0QrTDspXy80Q15WLDVdQz57fG1+K15RSEBRMERvIkA+JDFlT3JwMz1iTDQ6aScvaDluPU4KICAgICAgY3IqRmBnXjouNjp9O0hjZnNQXVFCInRwODlbXClvNG9Wa2xiNUtQMEFELyh0NTsmWjQyPmFeSk13WmJ9SnFsQHg6XSwxVF5GT0knKUNzcDM1ZmM8Mi4xYmE+WGVEbG9nXU89SF1nITMyLXNXIzMKICAgICAgRiRAN1ktY0V6RWMrKmJ7LTo0RHEpLiwxWyc5TVloNGV+OU9bZGZVbDNRKntifH5vV2FaT2k9XzsmTnJESnZuRzZucSd7bEBhU2Q0ZVl5N2NeSW84Y212cDJfLGBvdG84diYkXnBIOi1AWHc2PiEKICAgICAgZC02Pz8sV21oYTh1XjRvTXN1SCkiMU1FaStebDZhUndOfCFROV0qc25GVFxRLDw5LnNKe0dnNWRKZlg0PnJYUmQ7dip7TG5xNCktWz8/SitQeF8hQGl6Qnh7SWkpWlRLJTp7QDZlSDA5RDtSeUAKICAgICAgaj06e31HWXUvOjRcN14jaX1+djloWTc4Z1hyTU5Rb2J8Mjh2YnRkV0B1TTVJJipmaHImb3VabFZlfmh7dFhYPUBwcWZCcUJlTVNhPFVHSjptLiw3L2N1RSlRWn5fcmdcYnNGUSpKeF9KJmZoSScKICAgICAga3Z2Lyk0VF83J3VVbTJZZFh1ejJBPFl6YVNDaEEzS0w0QkdLPHJPRjlwRFNMSD42WkFQQCdzLyNtYSp9MjxOXFQjWHN6QT4jdXI/SiN9dC5RZnFGY2hqUWZ3SjYldW4ufH5VO3VPUEZRMT5WLE4KICAgICAgQko1JCE8VUtvKH0qc1NiSFE5Xy9MeSxUInlpRndia2ZaeidvTW57ZWhiZkotbzB4OVAtMm9UQGJ3THBoelljdHJBZHU9OScmSGNLSyI0ai9RQkVrQiJWSmpvVk1Oeyk+NURkRCVjZC4sXHV7ST8KICAgICAgWGM6Jm5qaWxFbmVHbFg4ZF14LDE5bnlzanw2TEJKRD05di8+M0Msang6Tnk8M081djpRTWksYmtPUFclM1skO0UiXVdUJS10MnRtVTMiditBJkgjcFZQbiFFPyk0XTdcQnRxYSFrM15VQnBvfSIKICAgICAgJjo9amApNWZpPjJ+U2VRP2U0UkEmd3pFTUZ4aFRsXCZEQ0wxKTlIUzQofSY5Yy9vRGJJbHR4JlYmfGoieVFoSF5+SG4+OypkYDJYVVduNWRHJW9AOHhGWzE5Q1syay9XTFtyTyxaV3dXVG5bVV0KICAgICAgU3ZuTyJoVHVCPU12SDE7TCQwOEBYSFtjRTxnT15tbGY4X0hTM0E1bFdiZk5cLDBffGotdmFVITtZXUQhQ15dd0g7WnQtOElZMkVVcGhuTyR7eDIoSUw1NC8vfGI8fCwlMSxLPUZzRUVMTjxaMHIKICAgICAgVVAyclppbXdxczpnNzFwTTtgKEZEZDhHSiVjWjU2MzV9Mj9WQDRaMSs9cSxdI0xCWV5zSyM7Nl9zUVEqISImSl1FMn1CdVBiSngmP3htXDdAViQjQXV5VVtgek4/d2QoRixxMmJ9aG0mS2JidSsKICAgICAgS0ZORH1TPkFJTDZYI3VlTSElNn1qU0c7NClTdTZjRH1MaSxxTEJTZmN6Q1FQTWxwO2MoLSwiNlUjcDNgQ0I4LXpwUlBhZWA/IWZyclJ5LlpHeU1uODVzP3ddWXcyU3ckOkokez1aKkM9bEh2djQKICAgICAgQCRGbiMyeT9XKTYrazJFPiIyMmddWFB7Sy8yOnlCRnhOfnxjJilmek5MM0B2ZGslIyRpZDF8ImxDZklBZTZ1WW5uWyg1aSg2cXozQmFfR0U0QXBaNCMpQCxbVlhMb21ZWklmTUxKaiJvfF5+TnQKICAgICAgYSkydSxlNlZZJXsqaDQ4S0Y8QiZ5czR1a0h2PjxuM3VWL0R0enU0d1A6SUVUVlxyb3orLWFmLVYnJSs0OXpiWzdfcXkqb3N8XWlLLndxQ3dBd31LLTEyb2csRGhla29gQWdyZnwlRlY4NGZhZWkKICAgICAgJjN4Ln5pIVUiV3ZrYE4xWlxuUUspR0pFZH4sIkY6Vn46XXdyM2xfPztKSmdUNyJAX0I2VDl4ZWk1Z3EvP1BwSmtzaVt6X21BVT5HRVFAQlM/V2p+UmB2fUAqMFQ6U3pQNj1EKU43bDZ6NVlpPEEKICAgICAgeyxWUiU2bUVgLmJDYChhcUYuLUcuKidgVVMlLHkqcylbe1ZTTVwsdncvLHBcd0EwQj86RiUiU0BTaEQhPHVLP0dLQXRZalpjWVJoQyJqelsrXnhHQ0k8XkosXVhvRjI4PEx9MG8oMTVqdy80cU4KICAgICAgPkpeSVhfbXN8djosdy10L11mfStvXmQoYVt6Zk1jSj49MS93X05SQHRRc2A1TXoiT3sibDUlbHsvVjBtSzJ6fGN5cFFrLUpBOUxETWFdN2sjXT4wbm0uQTdsQy4vLk1YamYrYFlsUEAoJSN9VlYKICAgICAgZVdOaVRjQDR+XlkwIywwK2FhTHBLRHZxWlM+SSNQSColdmNfRCUhOjdWSCIuRk1KS2JxXXAwTSh9MWg5WihzIlsrfkNqXD10MXswbHgmO1JUbj5RLV06YHNWKEY9e11FXF5xWERIaG1VXFAkLz4KICAgICAgKyQkUHEqI25hKX50SjU9MVdgTm0+cSJxajcrZGMnbkQjO2syUXJ8fWlrRlpAbDs2VGQmPVhKIl4wUEsrdyw8MlkiQilja0A7MVo1RVhuUXw/V1RDVzViY2gnbktbQ2pzN1RpXkFyPTN0ZH1NL2wKICAgICAgITdnLzF1RD17UXJuUyFwV0p9bFNOfkd2ezJddGMxS0cyS3k3VFV7XnV7NV1sNlR4Ky5DQ2JtaGM9UUguRVAiSCx1NUtCWFRxP1xcPyZ3XlMuNGwvbydgMFtxXVpyd2BaUmZ8ZEV2OiQ6KTgvLEgKICAgICAgQCc4JCVvRjNFTVghKWkjYSpIOz1LZEZcPituSlRqZiEsKkxxXS5MXj1YXiJvLXonMElhfnthJ3RzUCNCN212S0pgeU1gQnRCWT5MfGdeI1xERloncENBWkY3Snw8M3UqeWYnXEB+VVxqOEhhNVgKICAgICAgL2xNbHh7LjBvTyNlNEBfXS1WLzpbezRcXTYkPTp+cHx6QzRTeS9gUH5SNHZ6d3VDdVNXNylEXFVUL0dNLz9UUCMjb3lqdjxUYnljMX0nUUNuQ3U3fUE3PG0reCxyQE5WY3tZLCx9SHpfJlI2TV8KICAgICAgSE17c10hXU0uT35YOls+fHp4aic2SXxnQEt9Vm9ZTkRELExAUCo6ZywjMWIyJVNMUHxjdnB4YURyKnVzPXcnWFMhSmpZKFRjM3h4JVJEdy8jOmozJUpfS3VqZntIQSVZelR6JHB4LWJTbnI0TUUKICAgICAgeFMzaWV8ZW8kRllwQTl5QVtQUEIiaCtTdG16R0xlSndZZnBKMUJmNzs5dG9POHtpMWtaeTFSUTJJXHg1ezs9eV9DIyNTZ21ydTxXYG99RWkzKih1NVR4bXtIYz0id146UFkqUmNYJz45JWorVSUKICAgICAgcVlsdmkzUH1kNytoMDRIKmxfZXJyLmc0aSpte0NXLEQ0Q1QkNWRkYGtnMV9EOylDMC5cPEx+XFczOFQ2MXonejJ1dmpzI3lPKFsmdWNzJW1aNXkpTmRvaFB5JmQ8NzhcX1NATXdLKWIsWVomRXMKICAgICAgT3QuOjZiP14nIitrMnw3bX13PmRIZkxUMGhiMldrUitOdClzK0VmcGtcYkZZcCJwLDBMMihjJTwtV01sclxmckwsb3s+WHZgVTZKMnVncSdGYk5cKSdDQGZ5IXg9aD1mTlEiRXsiPl5vIW5QPWkKICAgICAgMWA7KS1kKntzUF17RTROTUo1UDwwdTt7bSMlYzxAVFxwMXBIIV5JbVgsKmd9YlkwPS06NlxZJElHXURwXVctUDtqQCFsUlxWczRsLm1aRDwkXkcsWlFJcTBDMXcpJDI3QzApUTw0SmNvVmpJKksKICAgICAgUyVHanpRRCtIZTUuNnElN2wpZkF9VzRifH1Acl1ePi8kIXc9QmJlWndzZS86VCljYmMqUmpCY2sjUGxrVFhJbkFMYTN8dz5GaGo8Yi12cm9CMnIjYnlKRlVfeVhpNyI8SUQ0W3xjPiZzKHlBKSYKICAgICAgYn4ydTElUFFNL0N5PEdeWT5kMDV7SW12InlOdmV5PjkqWTI/U2s0U1kyVmJzKWRLWiMoJVp7PExnRj50fEFnQT0zelZoIj9jRV9QV0VXYXZ1NEoqdy1OaTNpOypWSml1cXV8M0klMVUqLkRgV0EKICAgICAgSHZHc0gwYlxUe1Zwe1B6RWQsLzhObDBhRkFWVk9VYUhfNSlXdjtNP0s5aH4sWFJ8TVB8O0c0TlVmNFZnMkMlNXNVRG1vWGMvUzAnPnUyKCtbU301WkMvcnAxelEwKG1ILVFAYmEwIyY/Wis6NjYKICAgICAgcExDWFNaSDMnOGd7WUdodF5GZUAoflFQZGolWm9BVVhEX3BQajw2QWI/JnlONGtJJFt7V18+LWZTMVx9NGJ3LChgc3dKcTFbNFI3ZVdDR003e3YoN34wZj9obSNMdkZHPVMuTWQzN2xtYWQyKFIKICAgICAgJnxsLSs3N1Fab088N0VxPDdWaFtjLSk2Q0JaXzR2SGlKYXE/NyFvMTZWTWZhYH06ZClDSCkmJ2h+XD9Gbzk4aGk+eUlcY088W3UxXGIwZSdrWiVlK04kZCsxXHNPVUtVTj09QVNmY2s0YT9WSnYKICAgICAgXCpjPTI4fDFiS1IkSCYjdjlBT0YsLU5mV356cHVoZC4uK0NJMz5xaiF2PjhfUmM4fnYidFUzdmMlNy46Y1FjJltWQVYlX1FKUVxqPThTT2JndlNtJFVzPjZDI1F6WHQ+TiRkfiZrKGFuTjdoUkwKICAgICAgLycsNGRFXV1mQT85VSZuR2BJUEM/fGBXWDs1e1NMUys7YnI5UFNGRG1BLi56S2s3KGo6e1xMNWZmMUE7fWdvSUhVczZZZyNBQEUuPUlFOjphZ254QiNLbGE2eV4jc2A1N1hRNHZZNWV3VWlzR20KICAgICAgOkQmXmBBfCFraU5LZ0koMjZNV2g6fDhlYH57T25IOkk7LGZDN0QuaFB7YFB+SXVYSjxFUz4pVXk4d3c5OVBGZGJJIXVmel4mXklPYVdCOHQjO1wzNE5nVCZWP3JJWGEyYjFYL09ufk82d2hiN1kKICAgICAgS2NbQEpfLT15JiMoYCs/Ty91Z0N0Jl5wKXVPc0xcI01pS1o9VGVMdUhmby5EMTRSbyVtVVQhfi5HIT1SQz9VRGpTVnI3L0wlKzNpMWh5aDVSJkYmRWctJylhaGEoLWsjS3JJTmdUN2kvdidGd0gKICAgICAgQVlKSzFkOjc1Z3s6PTddbixebH47Zlg+IlUxRipKb1tLVShEclRhNCVpUD1+TC4xQW46SSk0I2liJEB9U3E2TE5aVHE6cV53YlRtQlxWVTY3LyQmZ1g/SGY+SWhCbnkiKSVNZV9fJzV4ZDxqXVYKICAgICAgfnMxK1dDMVYsWSV7bGhvQz85QGU6NX5GUTdwRkkxaFc7KzhIVCZ4V04oaiUlfTF5J21oLUNbTU9DOXlgQWEwTE1aRHMsfUY4fHQxLE53bjU1IkJqP0t+QllxSHYoPXtdYjs8PD9MI2AwcD13QV4KICAgICAgXkkpbXg0M2B9flRVWEJ0c2tVcDptOU1FJH4oSzMtYFxZPUd5YUp1dTp7a0hBQ2pKXmQ9d1d2XzlbW3QweyFASSwhM1UrQydFeTM1T1ZwXSdhMC47M3p3ZCZwYV0yT2dlbiF7SHp+TTJFLDhRJEcKICAgICAgaCdxeThzP1RSQldgJi04IX1iNmZYSjFHfWRbe2VWUF92YGotXyJXODJIK1R3N2xQPnhrVjA5KFBkT1swIi4wRld6QHc+RXtRe2lAfmdcfVg6RX1zOSRjTUs0XnYkb3tgXys+b2ZAWF9LbndEJloKICAgICAgbkNfXEdbRnEleXEoQyZUXVVgSV9Fb04mNDxHWCJTdz9iYEU/dWJEUyZIcEJwVCxoTSY3TWt8SFFRdSQ1UFlEVDZHdDBacVZEQWArMkR6TUYrfnRINTJ1L0JeZVRRdy9QLjdDJjdRKnEvVSgnP2EKICAgICAgUjldNSh8IylYUDt0aWMmeitBXiYwfiw2SmdoQmw4bSJgIVAuYDlbTHUyPCYjJjldeCs6WFxdLXFcNiZWQDNVdCxtbyRDJm15eD5NSnMra3ZeIjprNWxQXiUzeDB9ZG93aTVNMUBeWWBbT1l7XyUKICAgICAgJXVGSmN6WXZiW2VcbXMsJj8mOiN4cns1SUc2O0o+IUZ0b1VwSktdeVEmPnwuQWtKOClQcGl+ezQpSn1MN2VhaSRINV97LFY5KXdgZ00yWWN4UX1bPzlocCY6YVVrZ2c+IXR8PyYtcSN7TWpGRTcKICAgICAgWkFpZzRja310M1c6XzxxYy49alt1YiFvOSpLOlVaLlJxYFpLfnBwQF9UT25rbmw1UHpZRlVQL1BsMk5JdGw1WENreC9ydV1Ee25NOGtQM2YkJ20jbStobk43OGx6ZCc8fU9pXlN9UE8vQERiXE8KICAgICAgOE0zJHx2KVhlJkN6SX5FJEBzezRQNlUqbU5uIzdeJkgwZGY5NGZrVjV4Vm1aRH5uRG13WSgsI1o0KCg8e1BMZE8mNkIoY3FLYHsqNF41fScuayMtPzA4b0cianYiITxHb016VWR+ZTxUWTdZakAKICAgICAgUU0wVVphTnM8THV3bVBab0VOZj9GTGNYfWNLeilASyx3WFshKnJXJzZ5Okh9NGpfa1JiMHV4L3d9NHJJOHc/cmhYYydaWk0/IV1vfSZlSSh9STpdXDApU2AlWTpkfikpfChLQDIiYj1qJClWU0sKICAgICAgJy5EdGUleGBLajA5Jm13bz9zaWVpLj80ISNQM3Q6IjxyfSl9QSd0N1hPSWtTREtLRnMoZCZMaTR+Nkx8Vk9KLHsyMEYmaWptTWhdTCwre1pQYHVXX15NUSYldXIwVWYoSlRTakMmYnIzKE8mYlEKICAgICAgMmRFTntya0dTT3B9JXFSWXt3OD5wNXYiKGk1czMjUnhLcit7OkcsNXVWKklcWDp6VzBWJictRENAeDE+YXVNejJeLT5fL211Y2tJc3tdP0teI0hIdEZVQicyJ0lfOD9qYz4+JFtzWTIzMEBQTE8KICAgICAgRlRAZTp5akMrdyt1OWJ3JFhVeiQoell7S35nP1wrKSt6XHl+LldtIjg4bDYiOVBHdW41Z2lgflVAISw5JitiMkV1PFUwakAmbTUkb1ZdLkpOKHwrLFlnJnR5fkVvL1t+L35NSFUqMlV3T0xzQGwKICAgICAgUjRpMWdCZH50LD1XQUUlLy1tQXk4W3QjK0t9U0hLSkxoRHY/dVk2RGs2IjtKL1c3SV5bfWwvR0JXZTI6bjF8dXJlK1I+VDNUdDd2WWVTNicmaXN7dWo8Y18sOzZdMVcsRmRRYTt9Plk4fW4qfTwKICAgICAgS2B9VnJnenRxQ081fmhEdHszdi4lI0tYOTFTQn1WWlBARXo0Iio9KF4oeVVQXElfZGZ5QT5uUVpwSyp9djYyUzVQNWl8RSxfZjVpIkN4YFBRWVRcTXw+ViNHLFJISiY+d3cxUyUleX1cIytfV0wKICAgICAgd1FBM159WmE1bkRpeClLLyUjLE9uVDdjNm82djNgQW1CdWY4JkN4YUw2SkF5RD59dldOPXJ6J2tdbm1aN0MvbWl0MTNeOVB+QmE/SFpzeSE2fkRyNEZoXzNmUldTOTpNKztLJnUpVmViP0YjVksKICAgICAgYH5ebkVkJlAoSi9OdT84WEVydCp7RFV8QU06SXxsVWxdISIyZ0luL0UvLD8rbm5zOlZhT1cudFBwWWhrRTRLNH00S1Q5NmpBQD5mW2F1dkhwIVU6dmpkcm5NdGQkOClPQ2lXKy0hNlBYMV4lTjMKICAgICAgZiwjQHw6Ik9QRS5TUDBjKn5EJlgkNComenZsIWoxP10lOF9Gb3NleEknSDY/aVdrTXYhRD1qQ3l7Pj06KiVlbVB9XWZJfD17YkUuci4hI0dpXDZjKnQ1VXV6ZVFXVkFVPldaLkxGTk9zQlVPYCgKICAgICAgKl5oM2Y4VlFFNSl6RTBzOFhgNVNfP2IiQGRPNFpGWFFxRT4oU0xXP2ApKCJjPiNzUyh3NVdrVERkdGU5eTMlaTpgLmhHYkRzdSxiSVRXRydqKCpjYiJrX1RrcSIvREJhRipbIldtJTMlJVRGSTkKICAgICAgM1MhOzszeFUxKG9menVML2Zvc3YwbCdmXmJBLGpXKGJmX1NJVzgjY1BYam9SPCE8YVIjUmxBUTBrJjR4clUiP1YmNEBASmRfZldlPX4lfH4/YXBxQFwkb0VnaFJQVV18QyR3I3JbLFhCM2wydk0KICAgICAgKUN6Sj9fJmJxVjw/ekEkPy95UDhoQntWTUZEYlknWjJPXFQ0Zy94YS0odGFpLTEqKmRHaExvWFQ/S1g2d1VSIncrRG0oK1VGUzAnKGc8MWZRKVZAO19FLzlUVmZbVEd9MDshfmJJVS49bSEwPigKICAgICAgayhBTnRUK21MI2U5d3dKYTdiSF4+QU9pNGNHS1FjNyt7c0FELGpjTjx6a2ZLfFRVN2lFQl0qImZbby5ZX2RqPHlrT29UP01Sc01MalRMOXo3MywwNUAxS31yfSU+VSZrNzY9YFV1Jk5gUTRXLkgKICAgICAgL1Z0MjtUendyIyIwfmpfLm1BRSJCdkA6KlJ7TmlWI2pJbX4zVzFySjorYVE1a3V0JUNSZTYyUzZ5W0IibUlZOU5gMlM0KyVDWzghWzxYYF9CLDkvIXs9TjxJX31kPi9wUVMlJzVUPjsjP0hwR1YKICAgICAgLHEiKC8nXStDbmZDamssNjJNfUx4LDtcUk1RS0ljb1QpRDQnNi5NOm1Hdm1iU2tKaiIwbWhYVE5XWWF1RXImV0lJNiIiPHZwWnt6bFIwOUVNdzpKVWMlKkQ2OTVUXiY7cCNFKzR0OEt7bk5ebWsKICAgICAgZ0IiZmIwJnFzX2Z7ejNadmRbND1oJX1MaSx5MVJcXldOZ1RKNjxlXTMqbylHZipANmFmRnJzPWV3O3YuTFlPcSlWa1p7ODxcO2ZiI2p1YlUrSWVBSSI1W0I0PypXaDBbQFFAPzRWX2wpKiJESy0KICAgICAgcjtaTi40REwrLzkjOCFRM0wzJVh7bWt3dC1rRXhBITRFemN3MCc3JC00RThnZz4/L2N1blRhIzwoaEBeS2t4bCg2e21iTXMpQm1SbUdFTXRvcEpKRWs1Kkk+RDY/T05uQVhmcCsjMlsxNz0rSjgKICAgICAgL2w4JVk/I3htZFhZVDx2TmZbNC9ONnojcnFeJWo7cD5dL0wtYS40Xk5wKF4xSVladXE1YV5iYyhCS1cibjAuLC5RNWh+Rk90V0tnJShHSjEmNkxdIUhPMHlpa2paNlI8RDB0U3JgaUhVLldSP10KICAgICAgJDo8SzdTRHI0S1I2Tk07MF9jcyFhWCs0JUwuWyxrcFNWOzE0Y2J4b2BEQlQkT1xUUSopSH1FUls7QFA1VSRiPEEzSWZnVEEpUC50OzJETVN7NGR8VHN9cmRmQ34yRSEteE0hSXInLzJ4XzRZfVMKICAgICAgWlwiTHo8J3FdaUBUQShrNmxNfVRyQChzL3NRMSRtPzlsJlVqd0l8VEdJXDZ4aSpAM0djZGwuRFtQKDgpejF3cFxfTjNQPj1aLXhUW3Fnb3ptclhoXiVbcDRfdE5kSSw+bls7LUtnbUYjT3lfWyQKICAgICAgVjgneE4kPTl1WlNIJyUndyh1dlpTVVh6UyFqeD9Va2VwXjE3SU9sYkdqYm9sIWJEVyVeLWp9QzcyfC8nLzxPOmkuQE0+SjBeST5pK2A5XzhPU01xPndISFx+MmF0Xj0kQyhANGAzO1k8IltHREEKICAgICAgLnlJJj9eM3pxfW5ZSSRqTGk2dUJGZmloTjcjcVJ7fnZMays2RVt6NURsYE4sOG43YSgxTUxhWFwkXEl4KiR3SFZPcjFQYyZUTl8+XXEjRGpzJXU1dGBxXzJ7MyFaITIuPE9SMmdEI3MlcS8yTy0KICAgICAgKm0sPH0uQDkrc2hVdTk8OiF4M1M5OHw7PiI8OXh7Wz5gQC0xQD0qeTBlZylueiVvWFtSd2U7Kmw5VTE8PCVRKl9CdklMSjo2OUlidzU4bTRFT2omJW9kI3BWcWVpI3QxNSZeVC1VJTgpMSVQYGwKICAgICAgKTlBSD4sSUtMaW09MlNqWT1pR3oxb3hpXXtiezs8ODUwXTtUXCt3LiZ9RSVrTF9jSytZTX5tMkArWWBcVH5qKX1tb21MTVZaWDRWeFVQa3hjXDRDKWVXW0RRNnd+SDYkZnZ9eUBrKH1RKSdPNEcKICAgICAgT3h5ZjhiPHk5Mjh6JEJ6TUhLMngraGFQIlI8Y2d1N0k6fjAwWVhCTntQKzRGPS59U31kbzl3I2c1PltPSlkpJkdrVD17KD8wUz8pYytYW21CMk83Ni9OfChEZyttYE9SbmNVXyUqbCwnLCIkUEMKICAgICAgJlkxalg5NHdtLDl5QlorXnphX1xsTDJmdElzSH1VKkhWe2JdKzpPPExiSE4jL3hCPVhjUHs7djJkKH5XO2AsIyIwJjQneD5AdFhyQ3Y9d0N+ViQnV285blltWldXOUMmWSk5dVN3VEpkZEIvQXYKICAgICAgMzUvX2J4SXBocWssMW8qZzJqK08yMDs7Y2NGeX17SjBSWEhWMm1hZCojWll2MlM7NXZ4WnVOeyU0K35beyNjWFEwK2hDUTtaSiR4fiV8PmlxMCNrenlOdGgkdkRoYCZTUCJKJUhcSTQ5dkJlMnEKICAgICAgb3x6MDtPVj5yQ0I7cUJQcmd+KCZIU3Z7cFB6WV90UUB4W0FRM1RGPVZ2OVd1MTIqR3ReaF1eRm1abm4wMk0/Qy9EPkdsPWdcZlFbLDwmZ1xfUHFTeXRkVjBsbTVrfVRJWWkoLDBxdkptPX4jci8KICAgICAgJ2RFMWYvcFslUDhKLi9OfHdsfmtlKWVVUSt6JXJJW2w+LkY4XiReaG4jdXVdYWJESTZjYFNIKUBpTTBzQ01hOjU5PDowI1tvUEBeXTB0aEswZjh2ViVVYm14L0MyJE58IlImXnInQ15nVDNBNnwKICAgICAgbjRWZjYoTEJCPUpEX19mUUl4cWBZSFtcLC9nUTghNE1kIUx8Z2oyMGlgejZfcyRMZ0JDMGwyO3UweXl4amxFYDRHUUVNe1J2d1InPEgyQjRtQW5PMyJiYG8xe2FIMGF5LXV7aFErO01+Mz5ZYFgKICAgICAgS2VccFBjSUk9VkA7OHomSUxjeXZGcD5lLSleLHJBO2wmdmE3SVNQM0MlNTI0J25xeFNnWisnTHQ7c14oVm1ncG1dOF05V35jSS0sOFEpcSNrcCtIJEopVVBjUTRHJy99eW0jN0RyOHk1LXtBOzYKICAgICAgYWgyVn06UEBYTjZxJ1VDflgoaXF2I1hVTTB3ZGw3MlByZltqSExOfUZpe0x+Q0c+fXVBJlUuLyw8Kjw9dVlSJHZnV0ZyY3xwdUskRitzXWhkN2dzLWhddC9zLFc8PT01MSVHKXdpRXkwYW9BVCgKICAgICAgY04la2t7XCVOZ0MmXkJIZHIlcWl9LFVeMCpWXyVSIlpeJl1fU3coUll2c3tUZy01QjAqXTVVMmQpLmxGXXR7RGExVjsydSk/aWc4SCtgL1Z2Z3FQIlBLVTZaXD5RKVRuVCRZTHc3ckhvbUxYdj0KICAgICAgeGZvUGMiO247dDApbDV9LjUpQW1GN2FXKTVidllPO1N2enw9WiU3W1pOcixSVSt5dEZBKSpYKls5bzZ1MClTZW5bTGxfS0ZUKjwoXEFKLlZJfE1VIV4pWT1CIWhpamMuQ34yRXJmaV0jbiJJVUoKICAgICAgUldMOmRZdmEwdXspUmEqZmh1OWdsUlokNF0/bkVkdi1VWlItMzhBblZlfC85VzcqS0BVJGQoNiReZjwiXSo8SzBqdkV5JzB5Njw5Jl1jcyF8eUokSio+OUxCNlpmdyJoSHBga1NpXCMtRmErX3QKICAgICAgaVcqI1RwcXFeK0orXEg+bEd6Kyx8YHQ1Ult8USdcdzhxZCokSy5+WzJYPkx5fVBkQH54OT9Kc3Y2LXk0QTlGI11eJCExSnQ9dC5UJU8oInhaSGc+Zk1WVUBeZzJOLn5eeTRNI0dNPHZyXkNHWXIKICAgICAgfi1QNUsyRDM8bDIuPi9TeFUlQ29dXydjPylcck9ZOCVSXnNjUG00IWhndl5PNSx7Tnt6MEwlIV5nfXFQL3hCRm8oen4/XzRPITd8M3QvIVJqZG9JISM4LmpmQT0oclVXZ1gla1x4PVc2Jl8qWXMKICAgICAgeVI7TGRSOHBcbzxiXDJ0c1pNXWNAVDJKUH5pJihrKlY2VDpkcU9DTz4hSWc8PWxqNWRcX0kzcy5zTmlLciVwLVQnTyVKaE9zdCt6RUssajZmKSJQeS9pRSF6XVJ7NS9obzZ0bmgoeWlNJidVXTcKICAgICAgZX4zPnZ0PjBBSUBsLU1oKy9iJktMZFh0Q3YyRU1Zc0w1ISVgTzUwTlRYRC1fVnBUeSQhZX1vYTItNUp2IS1XP3svNXJuPE5pdCEkfm5VVmxaaGZqPG4+ayJhTFdAUGExOTFNNzQqMllic1BuZDcKICAgICAgNUN9Ry1qYisyc0E5ND10NHpIezt9U2IpYzowUGhYKVNRKjJ1YThmflR5MU54N3UmMDlpKlxbRnZEYmMyLCs3KyE2dz4qOVc+PSVRMHJ2cXdeYHtoJS5eLnxxSEo7NSdWWXxJZGxsW3ZRaj90NXQKICAgICAgM1MzNnNPRkZzZiNUU0p0OTY5Pl5kcz5hIS07PH5WMD1IfWV0JERWKUpJRnNNPzZ8JyxQTm9sfi1ebl1iRCFxOSY0aFwma1U6P2Qldyx2aXRhTX1TPF9PTFw4KElOJHBIWnI5P1xldklqaiF7aXcKICAgICAgOlw6TlVAZ3g/OiNKLGE+PWxyU1pzdj52MSd+Siwzaj0uK0UsX20uNFs8XCw+KHB+NElhU3wwSkJqTkp+e1Rffk8jaVAwOz1iVWRdQDc4T24uX1pQMzJ0OT5uO2Q1PGhTPSQ4dE5CWltbIjs+SFQKICAgICAgI01XUiZmVCV5SVAnKGAmPVJTVDchcGRWfS5yPSFzSl4jJXhPe01XSGI3ezpAe2suRFJleU9OXHJ3a0puRS9mV1tDPVZuSXJzXyRPJk1sR1ZCek91b0RddHdjOXZEeFgoVjA4SHFOTnhcNSZgZX4KICAgICAgIkVELkVhd1NnaXpPdVYtODZ1TFdATUNhcCN0SE1OSmtPJlE2U1ozXjs7fidkMjZrQXciOml6XzQ+TjJ4STRxbCc4e1ZRYzU9cSNJeGprdHhlOzlDPlZjfDkna3tiTUZXRFlyImNadEJJVGBcekQKICAgICAge0F4KVw1WFNVd2knVTI7Q0guWn5ScU1ubVdKJWl5VkQxRTRmfCpFOXkoVz5OLTY2NFZIZHgldVo5ZWl9YmxVIXB7V2VoYXNVZDtfezV4fS9oPj5rQF0jR1VkVmU1OkhCKU10KilyS1ZzcjNiMi8KICAgICAgYHQ3YDEuNSpZbzEiMn5WbUkrJXRNOnNuYV1iSCJnO3l8e0dLO1JTdydvaiI8fHB3UCpbTGMmQmY5fiQ7S09HT2xRV3w5dlsnIWoxU3x9di9BLH1icWg4fX5eX2FOV3poZWI6RmBVfSJVayFINm8KICAgICAgRys7dzAnVWVDPVN4Y2VYIjZWbkVYWmpyQU9Vc0Q1ISs5P3siYzgrcEw0dSJceHUqZEpCXC5LRn4mM0ooJyN9MHp6d1ckcXNzRStNdl9XLHVXXDV+cmxmQWxJQiMsdyR5SXJgdGVLMThCY2dSJSsKICAgICAgJ181UFksL2slcCYhMydSOyhiKlBWXjhmNi9UckRBImNUN0JcbnUxTDpmQGNeXUA3flhVLG8pJ2VyfkpOajpJR1VWTlRzUjAsZjVtclkhbVxkfSk3ZmBCVE1TUSl4TmVOMU8ocV1LPH0ifThhIVYKICAgICAgeGQ6PC5wfScwUn1PfFgtTDw0Yn5MSS0/Xkx3ajxrRkhZdXBcZE50flMqal88W3AlLz94P3NvXnlfc1syJWwiZiJBJ2BeSi8hPWQmZjsnXH5cYGohPEUoMSM0RVA6a0R+dF9BYUwhby1gJz1NOFwKICAgICAgNFQmYHN1LT9xcDtcN3pQX3tnOGxdc09wYzl0cSknd0xEdy9EU0YlRnFFY3I+Y3BsSj5aQHV1XjljVlpeO1ktJmQ9QG45N3BBej8iJFoxcWhLVykjUm5pI2crYTc4SEolOGFPTE8wJ28mYE1HPyUKICAgICAgSDkwM18oczxlIkp+MlM8IkpQTX5ePzZWUjdbbmxHMyImYHQ1Rns4WzhbKXxPXz1Bd09acSYoUCE0J1FRZTxhT0pJQ2I4bHx7cjc7ZCMrOkAiSC90IX0nX1tvKS1lMFM1dDx+XFlwNjR7cVZVUHAKICAgICAgK2osM3Zod0dkWUhXTk48SmI+QFokVjVHfTlMdl4qaExJNHpLeXcxfmVPKmB5LywtMSZMbD9HSC9ec0krWVxbd2BbL0AzK0dUaU1Gd3UrcF1LPi1ocFNtTjxjZUMub2todSxhUWZibztCWDAsPncKICAgICAgOkREVzNfYEtAWjhye2o6VDNIVlxxPWszd1RmVD5TITBCcCp1J21zNTB3OTBUdzp+NzchQDJrU2BSdEdVR0soS1ByMDtSTH5hKWxwey1nfmd+NyYwODs7YSJRZj9EfT56b1NCKFA7bHVydzckYnoKICAgICAgKGg6IW92K3JlLykjVFQ+WFA6MXdXQiEnaFdHMF06Xit5RTFYfG1YTStmREp6WlBBSUs2fCpnVk94KEB1UE5IUG14Wm5zYVBfI1snLVVdXTUsflF7fSsqW2c3QWkyVm9jejZRKGRYOitMNj1DfXQKICAgICAgQjhSPzctJC0mdWRASkMzOWBAMl12YjNFWFgiZiI2aFw0TCNOblwxWH0sO0gyQy4oUUc1U2VHS2NZR0dvWktMIXY6PGljNUt2L0wpSWRIMV8iL1hCfS4yfkVZKXs0VEpROSgvKjx3SScuU2FhKC4KICAgICAgI3FxLyY4LjJnOlxCRGJZSkRxWyhoOXZ7TUEzV1dWVDZQOjlvNEM6JmM3YG9WZ1FGVSNUW2NnZT9DKkxKLC5AV3lUW0J8ZFQ8XENKbX4hPHJqMCU0ZSJnbjF0R3BzYHtccm4+MHhucSpJdURkdiQKICAgICAgUU00WllyQStcQGktaGsteD1ATiYodHEkKjZ0Q0J3UXM6TiFOLnE4ITZgXFZ3Ny8vfFM4OypkXj5vVjw1SXhvPnwzI1gteW81LSFlOkV0b0xmflNSIns/fGlJYE9JWXprSjR3S2RiS2ZUMiVTVGMKICAgICAgd01qIj9PP18nKzxBJFdzPnpIOiFMOzx7UHkvK1UoRj8kbFhASUIyLDRWbCt8OFhPNiktQ1RnS2V4IkprI0RsSUpCRnVPfVJ8bHdXaWQrWjkySz9oR1coZEcsZmpOe0MnTTIuMCJ1KHRuMEMmXVYKICAgICAgTE87PVJVLzFvMGFwWVB8X1UqfGRkaWdAXyhKVSdaI2tQNUgveUM2K1FxbjE/ZChdNldDOSY4SihnWDRsM3B+MVdAUnl3SkRPRlF2YXxpQWwuPF5ZZVE7IWpOQlJwbFQ3XiR0bih6O3FddzZnT34KICAgICAgJCt0Jl5dQXtFKGEqZjg3ZERYKTFqTzhQOkM2SFIyOlw8KVItTHBnVSVfVEZyUXN5NiRtU1FZWShHb29kckZ+ZGsjQlVPNChZVT1FfC1qVjxvLXEhY159bCxOYztrQD9wbHl7U1JKd20iP3lnbEAKICAgICAgX1YnblI6NUVgakcsQyIlaTwwckg/d2h0S3R4bk46cmt0VixNLXEofUNRMlxwXVJSfDtSJ1QsfTw6eVQrI3hJQmBEcjRBKFhhSD9haHVme0spaTQqOy1FKzMiVy09dDNHKjRld3g3R1NlSmpgPzUKICAgICAgN0pzQWMlbWxUeHpxTyRbMWxBW1BwNlU7OE1zfD1pTT1fRkRJeXN0RSx0L1UjRnorMkFHOUtgflIpTVxRSidAMSNfeFJTeUcme3FsSHtSNjo0VXR8eSh0KUpNYnFARkQvLGZ9Zi8jSnFgLjAvSk8KICAgICAgJCN1JCdYJzhKLWNTQz4qd0JCKmYpXkM2UWNLaDwkYC9qMEwrRGpRNWNvO11pX01gfjhCfmNKcC5yWjt0T3p0ZEAvMmhcL0RDPjUpLmtVNG5WRy9JbHF7cSU9SyIrIz4nLW9iXnNAIztXbX5aYywKICAgICAgNjI3c195TX15a11bdk8zTWFUWy9MSnxNXl4sUSI2Ky5ORWVyNkA7fSxpP3k+SSo6b3BdUiZjQGVZTCwqMFlhdERHTDIyKjNaXlU3JXxyTHwtVGYjNDBraHZINkVkam9QIyZ2SDNVfFBjYS1kZXoKICAgICAgQHVPJSQpc2FVezA9bDlNP1MqUTVYc28pKCtlTGlIfnp8VkU1Nk09aGZCNG9nR1YnVFlDUiIpXl44Pk5Rc2EvQnFJUl8+dnZeKzsuem9QZ2cjXkNTJy9GQihiKHZEbFBwfVFRSSZrdi8oWzJIIksKICAgICAgcGomcFpwSVp1Wy0mPkJqXjYueG0rOVsoWilJI3IjN088fWQyeixSfClhUWdiYUMlJjo4ZSp5e090RHs/ZG9mc2QqanlePHh4WjBhTTFASz9cYClmYD8zPEI2QzMycC0rbz8jS1l5aSp6Ykw8d2AKICAgICAgRU5GWXshXTRxaFcmbVRWd1Z8TTN3M0JcVFdIU0svIWorQix5JmNlYnkxLnJyOGcmejg0Im5HP2NhI2YkV0MmWipmeGh4TlZCSTFVTip2THFocWAmMFNXeSc4TzlrP1dtejYvNW5DJj4tYFxfbSMKICAgICAgXy85WWd9T1pILCw0TFlXeGlaK3s+JUIhdFBrcWp7dH5DZiQjNVhiRF4rdSZMRTsjMClabj59IUNFUyE3SG1SMzllaDZJUFxYM1Y+VGJ9Xmg4Nzk2Xj5dQl5FbkIjYHNTT2l5IilgVzpZSCcqZ1wKICAgICAgQThGJ21Bdk5lUEYxLVQzLGJZTDJxSXFPQiMtYVs1PUBOTSgiLGY0dTI0Wnw0ak92T3UvNT1qd2RRS1Y8UiRcYnBrcSNmKFJPR0JDZl5ONnY5ejFjXFlkNVI7OyZ3clQsIjYqZ1V3dGBZJ2M+XnoKICAgICAgUWAzNydfTz5zX2w/LH10L3BbbUlJbTNhbkkpTXNJQTMwIz5IfDZ7P2dVJWA4Ny82RS0xak5NRjpPVzJYVXVUSlM7W1Q9XmlufW8oSFp7bX5mYipQdmxdWWo3OCNQdmZSMj0uRH58IXM1eH5mKDUKICAgICAgLlYme2RrOF1nSWleX0lCXDopNUE6KG4oKHZJa0tFMFw0Jlx4NFoyY0d8WDt3KmNLPTh5dlxgZmRgVHx1andFK1tMLm5mN31FWUE3Y286aDUoa0VHTFB9X0dmOlEzbidnUkU1Ijs+M14mbkFbUlQKICAgICAgXDEhTUlaZ09+SHRLWUo/a1YxUW5JSypcem0hOCxAZT5QK11MTSV3W2klXnBZcF4rdyMpbT5QNUJBQzNWVDgzMSZVcDsrOzdqIUxJMlNhTVIhZTR1YWpnOyEoZGtlRFsrNlVAeGgnVE9WYzpqK0MKICAgICAgJkk9InNaaixkfmVEOGFsSyVsJW1fSjIrcVRIXCQhWjEwbSFfZW4qVHQjV3Q9dTokNidyIz1EUTkhRGdzV1hrbVdCVG1eTGFYQWwlLi9pPCZJJj0+XGMtZXtlQHN4JT44bXVmPzB5TUkvKGxNK3kKICAgICAgc2F7Mi91V1olVjNqfWxjeVo7IXcwVDNURCEjXzdweDlGMFMhSDEySlYqcGY/WEo7VVViJ0REY2BbZmopcChjb0dCKHVbeytZJTgiZD5uSSFbY2FiK0N6P2hga3l+UmlNO0M/dENCY2s5P3tLS2IKICAgICAgZEZfQjN8PzRoYkd8PCdfdW5QJEJfWVxVXVRYeHYjb2gpPFlzej48bzQqU2BDImopZTgyTDJkd1goKWE2JldUQCQiX2JdN3UidGprbk49KDhuOSh1K2JzW2M0Y3pbRlhheC1MKjUkeXNea0docy4KICAgICAgeHl4fVQmQzxiWytbaFxwYzFHZjl+em9hczNvVkwpOEIzMWVWc09RfTF1UmhgMSJBeS1VZE0ieC44cz5DPTlmY05IZXlWLkkjRTw5PERue0IjVlVaZWNgY29Qc1s5aDhBKmJjXnBpVnpCK3lhK3EKICAgICAgcl5xJTJ6KXdgci1HU2hsM2xfQUhKJ1MsM2F0NERseyVLNioxdWxIX0V5ZFtVOFVDXy46U2g2V3c+aDhneXFEXF0mPSJoYG9HdjtqSXdXWXVZYHx3TkM2Q2B2O0QnYWg2SkZ2fC41LzpGVjsidigKICAgICAgI05dODUwNyRSQyJmP3BfXWhfTWwlaHpUL0tYcTpUbFlTRCtXZSc+USRsWV43Kjd4L2QnIVhUKTVbSjdsTkBjNnJ3e3AuOH05Ulw9b29fNCM0KlM2PDYtRXlEQj5AYnRMOH4+UTNbN2U1XilZU0cKICAgICAgTzxMNWQ6cF9Wd0Z2THlrRX1ya2x6X0Qra0pXKiVvVjgrYyY1KH4xRmxWaFYva3MqeGstWGpbOUojPjdbKWlDTD80e2V9NmY7WHhjfFt9XFh4XTtVX1VfKHYmPCsldklCPEBhcklzM1l7MkY0JiQKICAgICAgPEIpcUo+clp7bWlOZXM/I0Vtbm1uYXZdVH00VSNNZylJZTxaWlUvQjokWF1GQCFlaDpjMWJbWjQqUGAyXEpyZXBIZSwlVjUzZiwkSEZAYzc1eS9Pdm8/PTlkNDRXLzI8Xj1XeVFHZD4pVno/RmIKICAgICAgfSc4fng1QXg2bXdZVVBgIjdCQWkkNmYueHlpN3U0NmMwXHtTNCsiQCVRJDEmQ0NWQE9OUjdmMHJtYSx0QTxzci45OXUkejAqSzJkKUJwcH1uRXQ1c2xYZlFhPTpbcyRWdF90JTkvKGc2LFdPfigKICAgICAgNyt5LCx+Vy5sWCY7OCome1hceFl0JW5lOScldVluIXksRz90NlIlRWRCMkQlNTZDR1kkeHskWndaKiFiJDtwa3puNWw2b0pYN19NblNzcTtuIzg9Sjc5XlAseDMtQ3p1ZUJnVFVtMkckQ1luQzIKICAgICAgWm0hZSVAOExiXn06dThgIm1ZRU5ANjN7azU8PGcxJDlpUHZhOjcrVzJBKSEmZ3o/LylXWnQxQCE+WFokVHF4fDlfKnYpbT1eVW8pIy9qaEtWc09sLmV0Z0plWnVxWixjZkBFV2YmZ2gtQn0qPXAKICAgICAgclk0c3QtW1FYIVx6bTNpOWxiQ3h7bS8pWjoxfis7bmsqSzgmJztwS2ssM111TT1KZVY8bHg4IW5aOFM2XDh8eXphOClzaiFSQmpbKTUhdEtdPV0sCgogICBbIjk1MCJdICA9ICAtLSBUcmFkaXRpb25hbCBDaGluZXNlLCAxMzQ5MyBjb2RlcG9pbnRzIGFib3ZlIFUrMDA3RgogICAgICBbPVs4M19PJFBpYydDeFJ2Ris7Kk18ISxtcEJCW2V3dCgqK2tJTF1vSScqOltXTU5QOSs0aSdKezAsfVhXaFs6fmZsYSd6WHx9fWMwMEZ7cWM0aiQhNEN9TkYpT2tZR1IzNDJVcyNOR0F+MX19dAogICAgICBrN1ZjWzomfEA7OXNnV0RTXzsjdXRnR28qPlBnaDhbay8jP1Atc1c0VFwxazB1d0Y3fkxkeCwhayNZam4ieX5gJXxPfj9FMixCYDZpLkFfU0IxWFhuYzgqRE4xMmx7ck9HXClSNlwzSElvIlp5QwogICAgICAmSVwxLXJfN0F5cT9qRm1VWmxVQVRIfipVVG19K148KXV5ajRJenx5V1whV2dweDpnJ04lNDU9eFEpc09Sb3U4YjJkeVpFLyQ9REZ4eiYrS3IlP21wQVNILHImLzYyYi9BclI5Pz5mdWN1PnhuKgogICAgICBMYyEhQyFAb3RXRHViX048UUc0J3lENS8qMkkmXHlbOVx6dD49dDohcXItSDI+YXBCUHwrUzZjNHYsP2FtXFA6K0R1VSIzMVVzWTZdbnEkcz5hUCpVWTh1VVNhIm8kOCtEdnYvQXg1KFNgfmc2LgogICAgICBHZFhjTi9YfGInQHV8cGlhPjB0ai00Iid0KjttX3RiJiZMPC13KiF2I1h9VDYmIUozRShmTHpdJzx0KkRNOjI4eV4lNVMwN05CdTU9SUZgcDgjVkVLO34yYiFYdl0nX3R8SHs/MTozS0MyTkkuNAogICAgICA4Pn12dEFRQ2g0J1pxNj9vN3BQbSlROE1LNnZkNTRXem03KV5nPyZlZUJMRncrKHQ5YmNVc1MjZCw1cD9IMlY+IiJrZGFgUENmekFhMGp3LWdXOiU8RjVpNm5KMFRcLG1MYkNyU3csaG0nMk9BYAogICAgICA9Vy96O196bmZSfjEzZmNeMXtIIyQwYDIhOnc+JG4kdUl0SUMsLz0tbmg/SHdoIzh7RHFEKWh8fnpoNDE/bG1LPD1xMH5eImFzLlt2IUIvOSFpYGJCIis+JS1XRnVWJ1E5UTo3eDxYZihcPHgpcgogICAgICB6MmZLKToheUJCQX0kbUp5KVxgal1xb2QzYS9CXj8oe1JLKUJJNkEpd1k9K0piSzRtZTl2LWAvakpkRD5gWUtcLiQ5LnM/dH5gVjBjO3ssT2VPfGZkOnIvaHZ0JHFGYmdkNlI2VmIsR1Z4TGwqKgogICAgICAsd2pASnFJREJVdWlBSFkzTWJDbnJXI1tnaCluVn5sS29FRjo9dkA2VytsR1BHViVmL2l6OnVuT3VWRWBlfk9HYiU5KVhbPklJUm8uQ1I8KitTUksvWnViVGQ4Z1gyNCVpMjZBX21sKUR2WHteMgogICAgICB5NkolT3o6YVwjeDMlK2ExRz9ZImdAP0J5LkN1fkxxOC5iPjp1YE0pX3Rsc3sqemdLYEpxUCJLcjF8b0lbKElTYnZ8VVIuSGVyJUwjZ0p4SVJscTl8blhmQVRCXn1gXVBOIVw3cFZPNDBETy40IgogICAgICB4YS8nSD1HVFFcKjRdLDNPOWEyK2EhJUIvKVU9QEd2Rm9IQlp4cUMiXSZDQisjO3ViJ2ExIkRxfVFjQCosOCprNyF4ZFY0eC08PXpKL3Noe19Kej4wK3VzYSZYfHEjZT4vRVVQI0NHSDhjcz8uZAogICAgICBcTDhYQU5yW3p2QF1Pcm04bFA4IUBeRFE6OVQqeFREZkhJSlV9SE53IW1+Kk9NPXJkTkNbKFk5QTtrfE5JfEYnZU45ZTdCLyV0eyYiY1AwfGcoQXJZekpXQiRdTTYyRloiZis+V0s6Z2pEWj0pdAogICAgICBbMnBcezNVImZiKFk/eEBdRmEjTlpUTk4hbCYtYGo9am9uTG1RSXRvYSV3LS44V31ePVBcRkt4NnlkVnk9VF80amR0K3loXVFwdSlQJWtaJjU7bVNiXyVfWG4sbz4tRn14Qi87SiV0fiRzMi9EMQogICAgICApIjBlaSFSWENdUS5+XTlQOE1+InRNTXYsZzo6ZzNUWD5cPzt8ITZ4SnA4QW9dcShDQWVNXHQzUjpLOFAxd0B4Rj10JEllXmAiW1RHUkpjInBrJDFPcEZpSi9jTE1CMWkqRU9ET1xdfmk7dXZxfgogICAgICA2aXZqSXNbJ0B8X348MlVbNTc7djtGPEFlOixMcmcrdXI7MCR5UClRQCJYbW1zcVo/Wm84Ozl3ZXtlVHdnKWAic0s9bGJOJU1YTyJbbVc/VUZqYE0+YEYzRExyOm8rTFYqQT1SMVs8JkU6TSpZdQogICAgICBZME1NajlIRTZxczwqSixLLl9UMytyRnhraFFweipBY2VBaWUnWTA3VU1UUXgvflR3fSgxXEU3QChUNzZDcHkmQnokcihnaEkiSjByRz0nTUw5OXxmeDQzJWRie1liSHU7elJzfCs1N1pXIiE2bgogICAgICBgcVExLF84Kio7UzQpIjEiWyVKU0s3L046WD8la1w8K09dayQwKyQvIlVXaHdVNlNBbS1YXytfOUxjam1XMltPdj1sNipuOEZEbk9DZm9QTDFSUTtoZyZ8IUg5TTY3PGM9SFhrLFhPN358bmhmYQogICAgICB5Qk1sNUJaamVYWE80M0tOVXBHQ1QzJkE7M3pSJDB9JSthci8vYyJoISxeOjxuM0dgVnhRPUJpNiI4LnshWyo/amYyMyFCZ3YrSndJUFphdH4kbU83V2J8ekFqJFIkLT1CRE8rTmk0UyE1XXRFKgogICAgICBiP018Z2VQPVVCVz5RSH5FcEdEMFUnfXgsXGlPTEJ5TzVUdGxIIShXcyFSKjhOVjRzJnFWSTpZTCw4KmQwLVw+eDpKRlFsM18xMXdGVlApeW5JKVUoaV9PQiJ+IUpSUm9MQS4vOD9DRiR2ZnJuPgogICAgICB1dlBCanVoWUhdWU87JDhlfjVnclpLLVUje0wke2YqK0RleT1iYEp9MFEhej81J0whZkFhZXsxYVNmSXNLcmFXRFBFdihFOjZPdDRNbi0oYSpIMCo+UHAmfTdOIzNST0w8fTZhIXR1OWxoWE4jewogICAgICBEOGhScmhJLy5aSGE9M1JPaFVIS3pTcTBaLXl5Q1hdWjdgN2J1blV7RyNAelMiJ2YiIWtzMGA7VS9NYzk4KGAxZVhCOWgldCxWczlDZHMsNGNyR2RGYFsyO2p0Ly12MlomVHQjP30nJEpKQlVScQogICAgICAsSFhNdShUPEdEaCMhNj1ZWGQsUGF2K0JCZFlKYj8rTC9KOFUjUF9jIWhzJGBAVVBFQVBbZmRfcGBbaC93IVdpVk9sMjhRcXtwVk9Fb1FdQDNePHlMWGFQZ2pjJEw2V0xrZ1xWLEYlOiJdKGM9LQogICAgICBQQHZ0bnlWPGlIM25ZQ2AtVmI9QU8xU0tpQFc0KzZvLCZdRmNwIS0ufHtqaHBmMTw2Ii9qNTNLZmZmJ2MmYm9LZ0l4cSZpZkhPcF89YUkxXHJwXGc+KyppamY5KDpDeDFIOzN9OH1LcT4sb3hqdQogICAgICBuZFJIQCZBd1lgSGgsMjhZPWMkb1lcXVFGR2tVQSJCN2tyWDZ8NVhbNFZTN3MxVCIhTCg4WDslfkRVY1pMUE9xenxrJ1Q4emVFMXNGQlJYPVwiXWcweCJwZ2pGeVBpaixvaGktMHZ6YlZ8bTUkQQogICAgICA/PFssbU5mKiNlQWMuLSRfXFxaZVs8LzZzMHVqcmEqOzArOWwsKD1TR3FPKHk2M0pPa0EiTj8wL2omY1t4YWZeTn1PcF9EImdRYWo0bTN6eVohRlpJOFQqW3NvKCJeY0xuemVQcXhzY2EpMXRDagogICAgICBVMDdpXWk3TDNBcU04cGNAbEJ5MjZPNlQrMHlAQ1U9WjcnJ05zMHF3UHVhdnh7SURPP1E8XDwqMyxJbTtOR0sqJUgwI1FHI187NVhEeFF0S110byFAbmQheWd0dHpTREdTKEZiOV9cZFpOfCQrNwogICAgICAoaU85JEYnPztySyNNMmNWPyd1blt3MH5cV1srNVxTbDc/bUJTN0J7NktOI0pVbCEuZHRwKj46VHhvVDh6eDxUcXh7MFxGRTtMKEdMXERjLkdpJHNYcE4wUWQwQH0tXSRKOGQhRG8kT3Z+dm5JYQogICAgICA8aTM8ckFKYmRKd251cnFuW1RoW0RtTEFaVCtPRGJeUkAvQCo2NUxLMW5xJDldaSV7KXwxWU9Lb1JXbS4/Ti5lVkItJl4sSFxgJk5vQD9Tb14hdzMxM2J3R05SfUo7ZW9YXD9+cmRkOD9ELFtSOAogICAgICBLMHJ2Lyp7NTpKJnFnTUtaYTBXYHE1QVhqP0tkKFxGU3hRWGU8Zk5LTFJBOWdMXj51VmxIe0QtfDdgYnthWDtGR2lNcWJuU0hKej88e34+ZjxsSVhxQ1s+el1jLGRHeCtIL2ZbTTgtRWR7KGJeJQogICAgICAmQHQtZCNcV3FdMH0kTj45ViVNXGBpNzE8LWdZe1dXZy1GbyVyZFQ7JDRvISVvYXgzV2JTTzg8Vm1HWWhtLWxYZlpHPEU9OktoRl0hRmFNXTlpcjc9c2FpWEt4UE5bZjpxSXw8ZyNqMFBYaS4lbgogICAgICBVcVRGUlF1WCwsNmU5eD5LUWpCcW5sSUk5KUooLm1NdEpYVHRdW2NSfUFOfC15KmhMWVVqI2ZJKHFPT1c5M2RqZDlbMkhSInV8LGsoR3AnRGU2X10/bSNJemM0TiJPeGdeOWVYLTd5S1tNJURJdAogICAgICBSdypFKUI9Z3pFJ1RHdWpcXTAvNic6YC5waWF2PjA7Vzl1flI2JXdpXVpeLztfOms6P0RaWlMpQjNVMDVsKiFKbHBpMG5oMz08TSw2dFYwM0dnPV5RP3dQVndaWDQ9SlNmZGNkUkxZI1hZfUREKAogICAgICB+UT5PdUBwL29gOE9hLHg3bGs8PC9ge3tWUDpBUFZUUCw+YnozelZcTV80c3g1emVVSypMV0ZHanBOakRQaF07e0Z3THM+fF18OWdsJnpHOUttPkNFQF1aUjwncVorTWBtcSUoamcrREIvWk1XXwogICAgICBSMmFyUTQ5MFRmdnJvJEAiTDxROzFidjRQTkRxLkI3WyQyJC4xWUxDI2lSRitHI1xBQXhVflQyaGQtQVI8RyxgeCs/TEJEbU1LPy9cX3tUdDliI0onKiFNZGd2UmtafmxtZ24teGZBLnhlPXEjLQogICAgICBzPkxoYkQhYURESUROc3B+XTohUmB5Onl+Rj1CVj5YUWJxQk8wYSpjJSJVRGwmPzouKndSPGBCcEo3dykua3pwalZeVlZgSjpWaDhyIUl6IzhNXV95b1NaJzElYUEnWDdjL1NjR3RAOkg9bENmKwogICAgICAwRHNfaCI2cGpKLlhldCdxJUQndSolQChBcm9TS1p1SGohfEM+XE1hS3IxOyNtaz51MidnT3p5b0dIKzsiK3dSKD1YS0lrJkc7TGRBa0NCUC5vRTJNZDEzYURxIVtIXE5pXilbUXZHbmouQiwyYAogICAgICBlc0xOO34oa1syV0wjRD1fIjpXPWI2N0FFS0tpJj1tSXVVbVc+UVEmJnxkMDBIIW8iLlg+Ki5jfHtOa01MK1F5X2ZDSXROK19caToiYiJWNXFNVihCKG05cy1VISVbL3RzczE0YHokKmVJdUNVSQogICAgICBrPDtJQXhuP2kxdkFpTHFrSztMaElEQEs4b0RGZENaNmFebG0nXFBTWyQzNClVLXZLfnNGKypcQSR0eUl5RW1UQXFJXS14TGxdXitxKWRRREd1S0EsOiM+a2ZmJV46c2Y8X0JgVWBlYGVzXl9yIwogICAgICBdUmZnWDUvcSVfJ0ojVnd4ZWdQZU1sRCtVY05nbi9oITdBbEFfYWVmVHEyJ1FnVyw5LkFOMiI2Q2UqIylPT1o3WS0nY1N+cilTYiVRaVRINyhDLkZoOHRfIUZiR2xvOmB6TFNtdTlEOFRuIS01YQogICAgICBXXik1THNlNEBDSV0rOlVAd1s5fEhvdXU/X1Q6Mkx+XE9gb20nPH0vJEBdaWNXcC5FbUs1PSxadTZFSy9Ge0BiYzNfNlQkcUA+VF5gRzo4bFcrOGN1fGY0XFdFS21SWVJ0SUVVS0FMd1BRY0ovRAogICAgICBQRy5cT1E/SHhZU09qeCVAeygqc289LjpxXkVbc2BPIXVAezdGbGR8bDJcWSp7dTVZYGRsLyVjUVsxanE9V31Mc2pqJH4uSidIaloqPldbWn1JSik6e1cod2BZclImbWRPLnAwQk8keVg5JUA9LgogICAgICAmKEU6QjFUZ3tPSmhgXyYiKlJcMT5nN0VFRXFyTUpZclpTZjhaLClkOTNSIisjWGZbNnIuSyE7dDFTPT4yJ3VHOWYsQWo8VUhXYlRqXX1FeUVoQno1bF8zaUBMK2U8eTE5NUBDYG9IU1lXNHZcSgogICAgICAiMy1yXWMsPU5wN29ERlE/fWF6PihBVTRsR3wvZiIrMjJfKCZSdmJjVTo5d2kxJ0ZRPEF9ZiZ5MHp9Km9tWls5XjEiQjxUKnVPQU9MMyM/VClFOloxbnNVPH5xMERNM3E0RSZ4L3ldc2pRL2lEdwogICAgICArPiZuYkl6b28+fFRiakdhJ2dQInwjK0NiL0YnUypKd1dEO3BFUVw/IyNGTlhBSmJuVDNCUUhnTGVSYD06cCYtRT83UmYvdX49OzlOI35POWk+SWRQMnB2eU5weGB4RnVKLDRVeSVNcTpRZUp9dwogICAgICA5XUt1QjhVXy9Qa2FPR1ltOW5cI1QzIl1AOnh3RGUzTUIqXEZRIyI1ME41dFBvUk9pdD9XP19FUUpbInFcYFYpYyVBWXJmUFVmSTtEaitJKTtvRl1BQVZVMSh5ZnY2LnhoZ2VOal4vT3dWNCk5NQogICAgICBhPW9KZmlVNyhhUkk9OzNyQGY1IjhYYTpMM0ZaI2QpKmlpIUxwKnRSTE9vYFxGd1N2UT8oakEtKEx6cyZ2JzF3LCUjYlQsXkwpKTU2UzFLXiFGZGh7b24wdzZKbEBWdmpLT2FFN0ZxYERjYWtAYAogICAgICBGKyd4NlpOd0Q5PCwoTWwnRURrfVpkcEItW15AOFV6TCZ+VXBEOUZYcDNRJGFQPEUoXWkvP0BpYlckT2NGR0hqLyghZ1xJOltMPiI/d0FtWW8sfSVjJFYySW8idml9MFE6I0lmT0h8ImcrbWd1RAogICAgICBZJSZTb3xwNVF5PDVVTTk/TWRYJztvSCMlJ30yLVdiQCdKSWl2UTkiVHQnb31nSXgwWThGfkF+cG1cOjpHOkYseV1MJictfGpyYzE5cjQ8NWFVWn1MXidWP0hrJ1s+VF1pd2pqJiRXLj5rP1smKgogICAgICB6dzppXUpZcl1tXm1nJXRAaz0pVE1oLyxmbGZeQTtIc2BxdUY/OV1aOjQ9b1lmKV9gUCh1L1hTMlwyV2hIPjZyOGRzUTwodClyKnNvRy5TImZEcXVoUTd3NDU8IntkNih2LD5FY3MyaSlebitWSwogICAgICBqbWNWNDc+OVp0d1prTSxdZDYwYCgrM1R+UDUnWSU+Km04ckxqSVFrXFY5V0ouSnJjWCgpXEl3Vm8wbyh1OCJrfXBULnQ5NjtWTVkyUXVALjtOZDUjWHVtLXRjLTBJaCgnQlc1LXRobTBnMEotTgogICAgICBvPFFWeVEzPmYkXlIyPUtLN1gyPikjOTZ1bXJGYlx+d2UzLmJwPls+dUA9aT5LXnUwakpDTVR2YGNoKnxsdjpgdjdgRHBaMllkcmktSDYre1gial9UQGF6MEBkTlo9R2gwdEw5OCpFZDciRmYjewogICAgICB2ZGA0SWY6bldFQnV7d01+Z1hxW3tTWCUhYFF0N0hMP1U8I0ZpSGhnVENEUVxHKyFWaSNiWChARF1CWmE5T2ItYFNqKSpReDcnKTg4SC9UXUxmNGB2P2xPZV5CV253cCtXdE5TVTtBPGYvUkpmeQogICAgICB4IktdOGxiazBVOnIzRSxYVHdrKnQuRCh6bFg9X3E1PzR7L1NuP0N2SFlydEIzY358fkhfUHQ3YChfM0hnKUElYUY9cW1ZempRT1phJHFNYTxRTEFhbGVuJjJNL351dUdUQExLYT14Q30sdXotdQogICAgICBDanZATiNDczVyJXtwJnwhX0BeMk0qOlZDI0ZDZS4/LDFqJjhCalB6fVlGYnAqKGFOTT47eDF3KGBHZlhVa1J3aWw4LUh7cTt3N0JRLiFLWXtwUW5rLWl1LH50JS48RUwsZm5vMjR1NEUkNkBRcAogICAgICBweH1NbWNRIyRRdTVFPm1OeSx9Xz96PDptUUpmWi5NJ2VOOzJBYn11ZkxlT15xbGx+bE1GUGY2UEtQJHlnK0FrcVd3ZSZtaXJkYHU6V2s9S0NPY1FzRU1xcD8rVHBgMD0jVnNoQyNFeylGczBpJwogICAgICBNWUF4bCsxQDtXR2F1Ry9JKE93WENNPkAwM0hHelpLNzwvXEAjPSJcNDo4J3thR1tzZFRDXVU9Oi80XUw+KjdWQjc/cXowOkcyeVVVSFMzNjgzNUI3XDlINy8+Slw+MnNtWD9IXCRPbVFCUjAyJQogICAgICA+NitqekBaTU49SCFqbT1IeiMrVWZtc3syR1wqUTxCJTUsX2diIT4nfTY2JD05WEl0RUdhTzxMfCxiSDE6XHIydEQ0QzpYZzZxXktfR2FJNz9FfUZkO2htLHtya0x9ajopRTZuUGdeUDVJekViSQogICAgICA5QSFkKnkkVTkqd1puLikhTEpfNUVOXytJSyNybm41VjJZfD09WTRhW19makdpbHtrX2hoMzpKXFF0N0pVbzZ7SSYvYVtsUD0taz8kSEQ1IzkqUlVwZEwtMVVfVStkQjZyMWMwUTslKjJVXSVgVwogICAgICBbU1Q2JlFQfTZXVnhiZnU4PS5gSHNJXXIrai0xWklBUnxzQHQkOTRdJi4vbSRwP0FUJEw/ajU0akc9KzMlRlhvYjI3e1FYLURvayVMV0A9ezJHRUo+QGUrSW97OVppWmFibnEhXyI/U1glNFs3JAogICAgICBQW0R2SnUnOWtjNkI8XntoSDJeNCtQKntxezhDISt2OT9aNUxSdnZveC8wSUt5Jjh9Vn16OTwrLV9iIm85VCM4M08xLm8sKm8/NXZTc3w7KGszJH4xIX49KnMjWUlLZFdLNUtyZm5xXnBKRT1mSQogICAgICAxbG5keG54eixiSnxxTCYlJUtycHVpTmZFaTFofT8zKDFpd2ZFMy1lIV1iYHQ8byteST9iMVBwYEwhZ3h8ZV5hNX0reX45anUvdD9kW1FATytVKVxXRklTKCQudEYob1lXWEMvVz86KFssSnouRQogICAgICBgXTZAT21rJnFRWm9cVHZHYyVlITtNImhCIUF6RDg1MHtAOyN1LWZIQGllOXtZLmJbaVktR0Y1Y0IzXUhjYX00Yy01cDUkJS9vL3JzTlQuUT1KKHpzdEtAXXJqNVx6TStIQEdiI3syVmZTMzYtZgogICAgICB1PU4zY0BzP05qKURhSXYxfjZ+Iyl9J1YvZHwteUV2dmxVMi1rZENMRCd6Qz5dYiluOH47Q3dxSy40b084SmUxPj5Wc2FreEdnbVZKTHFBaEF5fEEpODtye1gkRG1ISFQ0U01PLmNWbl1UVCYsZgogICAgICAvSFdzMzEwYjMnezJ2Yl5sLDVfRDU0ay5AYig0NychKWFhcj97ZXpjJ0ZEKmtvUF8/JWx9YUsyR3crTVxmdmxWcDxdXGBkcCItPkcncz8hfT0mLUVXYSlwanMzN1BlITBYWVpWOTRJM0xwfmVVKQogICAgICAyLWA/WFE7Inc1b1h6fltCUEJHbT4xJ1pFcy1vTzVUSHVGMEkkLzYnMFVpUz9xc2JFZlNBKiZwbixZVElZOWxJOEQnI2hcdExUd0QnNTFYdVxicSNrTD1eTSFMOT8zc2pHOT9ONjxAPmhQRCR2fgogICAgICByOiordWRtJSVAYCwjdmQ0SCZHKW0yVmA3UlI2TCthODxsQU19RG83VmppY3Q5IUd6W1tPfCRWUmJmczAkPy1cTV8zK1MxQylsPzNCcnFtfXZ9ejBqP290bFs0a0V6QExPSXExUjM6bXxJXjtTVAogICAgICB6cGc4bXliZWUtc25jSn5+LU5WNHkrYzc1JjBMcWg+Xip7MFZQbF0xbSstWDRwVjFwLk4kI2BcbzJWYlRhUXBhTDpATytJOXAkdjtGKzhiKFFGcVNdZSUoVi5YOmFZO3Z2L1t4c1JUI3BUX29wTgogICAgICBxekNHLnFWZHJ7PC9GJHJvNm1hXGA2QGFNPTNbZydId1xkNVt9Oy9kQ19rdGtMZkt3R0t6T102eVlEXndTQjxhZEYjPU0oX2g+RFAwJnFkZzpNcH1eWH5KKU8lTnxVXT9tdCZhaCk3VCI7aDc9cQogICAgICBiLkNdYFcxPEptd09DIiVqYlwuUUZ+dEx5fkNHfXZpblNJOU9dN2VcT2lJZnBocXNkKzdTI0R6Ukt7PSNbLkkmU0dRUF1lRk9ANnAobzkiJzY2d3paPVw2TntXSFtWbTw5JyU9XC9PLTwqd3hjagogICAgICAxLjIsZV5JPk0wbTtdfis8XjwyeyFsO2xieFJBd2ttfCY2en48YyFScntrL0lPOG9Ye0FJVlgmc0R4LDBJYj1OQ1dYX1p1S3E6Okc6LlVQfW05R30sKyJ5QXVxJz9ZOjs9Q0kyVDNWd3FDKCJVVQogICAgICB4aEpzNywkX2lKJzIoOVIrKyZRLVMhRy9eZGp5IyRmeHcyYHNyNjpEYWl6QWQyZDE7XSV4KSRAYmouTjwrLVEtRmUlbm5SZmB+WmRHP3YiIUtMekx9SzY1IkhKMyNcL0ouX0BeQEVhXlM/V2YlXQogICAgICBsRkdSIzgkQHh1QUl7OXhZWVEnOS85bSQnfDdLKUZVdXdVRE8mODl+fmkjcCxQa11KeDsne1NiQk1IUlVOcVE9YmFHLi45VVtjJFc9PmQ5TTRfNFxuRz81KHFBMnUzIVYqKSJzfUwrUFk2bjNBQgogICAgICAiZjIidmZUYG59KTpgSyhDXCZlKytaT2kkRHMnK3hAJ3RaJVZjcDIoOnF+QWlaYCd+ZDhzNy8iP1Ykcix4MVdRVENxczFsYWA0OmQ7QVx5MSJ9RDVlXnI6fjomfk1UW2JLLCNgQ0U9MUtsVntYKgogICAgICApcVRFSk0qSDdfbkx2QCNZLEFrY1xIOSlyejtYKilUKiVLQGVvXFxoJUdxYSNoemBDP1xSc0xFa0wkfnl0RTlXPzMxSiR4aj5BaUxFblRCVDlKb3xpI3Y8WWMmQGcyem5Fb19fTCNfXENddllqKwogICAgICBEcVoyOj48ekVdKEUuUztRSDZhLSdPO1F3enl6YG1dXTFuXnQtUVY0MlkwfVowJ0dpcG16bTVkLjF9P2gtO0hxOG48SEhfMl4vUVM3a0BjbFYmUUpvI1xacGtWM0dYNEJMISV6JFRGKUdTTVlOZAogICAgICA6UEVSTHZPR3Z9ISJsPit0IXooJndlUmxkQihnJHgpcDExTnNBJl1+ZjtOUGsiVGtkNmdgJChQMnREKio9cHc1Zk9gIS8tJHUkVmlmWzc+MX0tRkdmZ1kvTUYtLHA/ZH1ZdjxCYl8+UURlbntnSwogICAgICAvXWAoOSFlX0QtOSVsdWNfaTtNLUVAaCN3ZHV3SChMNi9keEhJNm86byIvRilpWUt5Kic8Nl13X1FGQG05U0l8JixUJ2AwdDd2ZiQzcSd3RCknfDpeVXcxITNcUFM4PSNINVlhLDMzfitJa2QpeAogICAgICBebited00uKSsvOkFDLm5DcF14c2chKV9AKmhvNV83di56ckYja3R6cS5lSmpwd2p1W2N+dFJIVU8xeWRPV1RLdW01W2V6MWJSXmM6Ti5LJk9wY1UqcyhLY1hVe1Q7RHx4S0dSMXR5W0xiLjI4VQogICAgICAhPCRCejJMbHg2UXBWenAueiI8Y3dSWSZkOCh+QzNATm1xOHAxIXA/WztEWFQpaiNdTTpVVn5lTWNBbzZzKE14I3N9fj0zKWx5O1Vid3Isankrb1hPOEQhbHJDWCtjeFBDfSQ0ZyVQSj1JeU55dwogICAgICA1QnBvXCFxels4WyJvXkBmeVtmSj11MX5iIj48Q05qRz9zVHh9Un0rUG1ISjciVyted2Fkemd1Qi5aeyxTdjs+bXF5bWVDfUBXO3BaXC8iRyxlZmNkenBbOF41bVEoOVFIWnVpMXtEQHRwJk0hMwogICAgICBCQTBxYW1XQFg0RVRGbD1yV2t2OzFXKklfYHxAckBkeGgjVXlfYXQ1USg4P1R9M1JvfHo/QCErYz4mOkl6VlNQXHdKRjwuTFQqYmwqTj1OWk9iW3wvfTNAOS0jcUxZaXBBZCUsJ3tQJD5zR3NMTwogICAgICBvWThSZn0ieiZuP28yQEZUPmtOZHRqWXttdGl8ckdMNjN4enc1em0/T19YMW1zVmkhXV19RFVgKDB7ciY1XnFGM113TyRiMzZbO1AxTyNvdyJuL3ZqY2xGWGJYaEMmPWQwcH0zOk92PDZhcU4oVwogICAgICB4MD9XZlFvdm9PSUQnZkJ7UD0kfG1pPzV7VDUxZE06MT1zaWJndGduOWB2Ol44U31xVFV1d19eXTc2ZF9kTFpBN2heVDBpN1w0RUNEPXpXLjQmK3Mvbkk8aHJ+RDdVWE5EXSNUNm1rV2k0SG5DPgogICAgICAqQS9uaDtHWy04ckAwU2MlXlZ0WEloTX1cV3BLW35SMmF1WSh0QikxYTJAITZpeU57R2VgRXxCUT1pJFVNfWtpPSZNVmh3WXhHdzhTL3VbZ1FiV19zbXpSUyFnbCsnKlg9ZEI2ZWFnNnVEM3BBOwogICAgICBkK00+NyMia34hbUp1Ky9RTSUuJkBXNlhETEoxfEZXOVMjaHljQVs2PVxDP1wsV29kUmdpeW0nYiskLVdrJ2pFfjtxcF0uMVktLl1dLzYuNT0pJypvTTR0UWFxKyFvb3VmMVZ2LE5sY3N9SzxeXgogICAgICBxSHElWlJvUm0lLWNGRmJGa1pnVlpLeSlMW1BxSDV1QSleVzRnKC8yInFmMGUpbllTV1whZ143T05wb1I9NDhyIi0teHNSLjpKZW5PbGJeclxZPzp9IyJKPF5JLXM8fXMsOVJxfmtFSylWZldJKAogICAgICAtJVpoTlYvIXclJ3gsNyY3K0gjL3FSVEQmMmtTYUVMOkc/Ol03eGd0YCxNdn44JilFZkhGcW9tPVtnYVlNQH57LXB9Z0JyX3o+OWIrOlIsZl1OSihdfENKYjsiZT8mbj1fSi1dPUEuI0FFZGMpLQogICAgICBkemIqOWwsTXlEQiteP3AiKSRAamslL0kwPSR6bHpER252dGAkWzheJyJOaERXKkpBaWUpRXhedSliTVUrYSsiKm94J01TbFxEZXl3Jl1tRzdwTD9Dd3RXdCkwRD5BdTcySFR+M0YjKCcmZVA3eAogICAgICBqPUg3KGY9WzBSJGo3TmxLanZCP10keXBwKjcxQ14sTmQ0QkImdS4qM1F+Zno7InpIL25PPjlfZnRXPnw6IztvK2YjfmlEdk5eM2ZlN2xBJk8heEFRXVIrZXw+ZVcmRykqVH5wRHF0aXB5Q3xKewogICAgICApWHEjbGM6N0FMPDNsMi04Jz4rXnRsNXl5dCl6bmxiSzJsZ1pUUTVfUVw4ZCI+Sz9GIkBmOnw4J3clMCFxeGhWfCZ7bHZ9YD47a08uZjlQenopMW8yTkE4OEpNX0NQb2hiJ24tY35XRmVzVUxpJQogICAgICA1M1NYN0BYd0haVkJ3XyZ7SVExTiUob0tKOU57QUtOJkc0cllKJSFFWCtwVWtoTTQ7Mkh3UGRrTGZDZWI0a1dwMj1IWXBoVyosI09YUzFaXidZM0UkLiMoSSVYWU1SVFZ8NUFDVmVELz5aby8iQwogICAgICB9e3VLYj19SWFESHFUJGNcVXxhSmZ1NEJIWlIqJzxZI31Xb2E3QTA3ZSY9WSdDbEcxI0QkUyo3aCpkZVBOQ11iJWlIO3VMeFg3QHRhRDYnWkEwMVInYWt9ITBFYk1aM0omQE4mfjM8bUUzNEY+TAogICAgICBvajdKUDhDI11RViM9Ky8lUiJpYj1nNFt9I3VEaEN3TE18OUBITidJVTZqMiZkcS4iVVhWM1w4JXwoc2I5LHguazVHQmE+aUpKJFcrZF1heXt3OWZfZ1Jyc0ArYEN9dURzX0JzVCE2bWo1fiRbVAogICAgICBMdSI/OFoycnlaUUMpJihucVB8JykhITVTYEFdYl8weDgsVHRRVnxIKmJaYi1YXV93WiZndks6KEU7RSIkZ211aUwuP1Q/MF5GRC1xJVlyXGhOPj9NN2dMRVw6aVB7cyc0XTFAaDhzan5UV0JpaQogICAgICAwLzRCPmZ8ZS1kKFU6Qmp3VCg9ZWIpeSlzUCw9MCc7OSFobi9fT09teERNJSxXNCY4d3NpMWpISmlFYCdDOD1bb2QoayY2PFlqUT12YGdXVUxYJTxLIkQrYFd3eHZbR2dBMnM6J3c1fUJ3bTw4WAogICAgICBGYEdTd0lrdkIoI2xlIzldRE9za1hNcGx9fWMhNVVFKlRpbSk5eUAmLzRDZnk8NkZKTEAiKEZlc0BdcyxdQjBkYzxxWGA8UENCMzs5SFJLXihdeHhvO3pLOngsJzs2dnREVV1mc00rPU1IdVBtawogICAgICBbVGp1XC9NYUJ4OUlvWlRaRUleJz0qbkNUVE8ieGBcNT1hKEx+dSV4XWNxYig0eEJNKXQxbUVsVXJuPlonJkJ+fEosI0Z0bThjYVtyKi16PT13ezc3fkM2ZCRwP1NOcyR4OEZ2V0YwUDpcQi5RbAogICAgICAtN3ZORFZXeSoua2khYElXX3RSJndDNkRQdFU5ezZ2S2NjTUh4Tk4kYm07OFBtaFJoODtxPi52P0o9SV8pJk55ITU1XmxlJjRvNzgkPW9AXUF7emhHVEU4aTIlJTJKOjBvVXh0aHBzNXoldT4ySwogICAgICBDazNxOiU4JU9yXCQuKHtTQVQzVntAOzthRlA8WidqeE1dRHVjPiR2OmAve0VEUjM4UHQ3Y0ZiPD9gOjVHPkdMNy5cbUpHOmV2bTcyP3xYZEVHLWtGWGYvIjIhSkwiSixtWlo5fUpzVTw2IUZhQgogICAgICBRYCJtVHhJSzEiWjpnbTJid011PkRZJ3VjO0xkcDAkQF4rK1I8UVRaXmEtJkI0OC4xSHRLW3x9M3R0Ij0tPjMoMTVeVXhoaVZfY2hzeHQmPFQuQXNtKklffVorKVNyJS9wJCdVc3p6XSdzLz1KSAogICAgICA5SlBjKmhJSGVoIlJfIkdrak1BTXlcVStZWS5WdW5kUXU0fDdmTCh+PEVNRCt3RkJKVjR5cVskYi1WZ1BQcCFwVXwhNzVTZCdmKEdRUVA8P2UhdVQxMlRNRk4vRj1kW313Kls9RzMuIid5NCwkcwogICAgICAtSkY+Y15Pbj82bXsnaCsjMS0raFQoVXY4eGJHciVIYiwkInxALlFRSiU3ImdZJV0+YXpecyMkeDsqNztUWyVRaldMXn1XbD9VUCh+ZEYpbXEoUm1UJWFCMy1GIU1yOTxxM2ErVTo9J2hAYj1eXQogICAgICAqeWE1dydWO2JGJDNfez0nT2NHViMoQWYjaz1dXUM9dXtXIm4pMl4hMFZYP1w5QHcuXDoxckJ9YHR0VDg/NiI/aXR6dHojUC9RPD5PN0VuMUomfGBzTmtFJzF7RllPOVQhKzF6dkdMMHhROnEuQwogICAgICBtWWgjJG4+aTFpKFJXMUdQKSpLZnRMPVVMIiJwRip6PSNmWCohci4nRzFKYkdSV3JXeXZsM05MTzcqeFhCUyoyT2tfJVxDW0ZWYzUuNUhhfCl+PWAnWW42NkB8VnVELjZwd2V5VyJcMn5gLjF2XAogICAgICBtZjk/cTRmSlFnKyheQjFoW3tpczxIbTpwaTBbIXFTUF5sdVshZElpVl1WSnopKW4/L2djXE1qamNWTWdVOGNtZCUhVEdmVyNxTkVzZSJjOzptK0VJXXlzTHJeXXl2Oj5BdD1HKGxlV1khfipTWQogICAgICBsM1c8bF41O0FKbmZSNHA3UTI9e1laW2BpUH1jUztaZVh0YCYlW0dtWEAxfEd0bGRaeyYrczkmX1V7OD50bj43RC16XnxfQ3ZMVmcqeTdhSl9rUS9yLnc0RENVY0UoTkEscWl5eighZTRwYTdLUwogICAgICBbeVBoZT5PN0t4OCxGfXcyPEhGTS5AM1BJXylDfnlRVWttY3heYCtOPWI7ZThXLk0iKXJ6PH1NP1hofHlaNSRLflQyZEktZDFJN25dLVR9KmErV3RJZGojJ1F6NXVjJiM4LjFOMFgmL2dBJEBwUgogICAgICBsYm40bVJPd0g2JmNPJzIoQF1rYlMnNVdjSDZofSVsOzcqWjxUWTM+eUJHfmR0S2MzVSZ+WSk6V3VCNyJXNC9JImBRTnxTc30jfkNja156Nm53J2tQYXsqSGAlLDQ2Pj9EKidEUlFrU0dzZEhHbgogICAgICBzWHw+OmRXNEVFZnsiei0nJiN2WD1KKj9WLVU5STI2RylDPHN0RzRFN3hvKHtkWkQlfChmYikoK3YiLzdoN1lgdlJUIjNKcVAnfiNWblslSXtMZ2s0KU5IUDVLckczM2pydCNrQEZXNXlMd15aaQogICAgICBaRStLRmJnSWFUcHcsQDpWYlc/TDtxXlZoQFJjOlM9LHUuVnovJHwyNWo6V3ZvPEB6YmFfJVB8RTpKSChMIlghaCNgV158bTpKVEdwVnBNTj09ZSZCJ29DaCV9bS5ZXlY0Q2Eva2FmUlgqLyYsXAogICAgICBnLE9DMkZUNnNjODBaa0lxO3grU3toZ0staDxvPWpYaEoqLEBuOnltWWlOQHp2d1R1UE5WfVhReSY9dXVmRid7Vl1ub3FvLDxseFM8MmAtPFhQMXx+YHB3Nkg/eHMycz4iPXprUFdONSFSNyV7VgogICAgICBVKkU/Sl1qfnItMG5TWDE5cCI+OG5kJlhSVUQmRH0iJW9BVkUxNXsvR3FtKVdBS34hZzxZflpJb2ZweFAyd08tTldcIkJsYWhzS0YxXUdpY2hUV0E9SzYwX3I1bURgLXJraC4uLH0jMmVGW3I1cAogICAgICBYZzpYcGVITEpMfGxrdEZ7IlV9I09tTDsmMGwmJiJieHtOYTI4Iyo/RTomJ0BUfVUocGB9aSN2TDpSS0hLe2lvQDZpREBLOn0hc09NeVVSLE1rKWR3QE1OSWojJTJ4RCd+L3QhOC4sYnErQEc6QgogICAgICBdNGx5NnRkV0peb3B7eUc1M0stZWxzYURyOyMwRWhqaVhVbHs2UHxrd1YiNkwtSXklP3UpMGVfcHFgXDZbflNtLHo8ZSQoaEs7ckFcYVxoR1VHTVwlZWIoPzU1RXgobkx1L2RDc2stZF1ueH5FYAogICAgICBQKTZZTi09eUtKIj5WJCVGaDxEWUxEfChPOi5VZ1UoTDRSb0tPdF0kcyd2PmYuRDdwXWFqeklNSVJFd0lPLm17NkFwRThec3dsRVwxI0AnU0U7Y3MuMmArT2Z0aVVqU0YhP0IlQ1I9YSl0SW1COwogICAgICB5aFtme1tQSlAsW3Y+Tyc+d1FSOEMhfFItXjZSaC0yeix1UlJrPVV5K0d0QUZGSkMqIVxyK2MwT0cse3ZZOiEzV3UjeWduT09mI2tBflM8ZHQ/W2szPShYOUxbRk13TV97eWZmODhgPj8sQSlnOwogICAgICAnX08vcEltJiJ7M1UvK01LaG40OitGOFJoOzdnWTtDJmRXI2BXPks1XFk/Rnx6e1Apfj5FKWtqLmlTQTBxIkJyLSNGNi5DRTdjO2x5cF4oOSpwbl5xOn1NSS8zWjtmSzIrOUw/NDVmL0knLicxIwogICAgICBAYEtSP2M6cGVmencmbHIsbTR0VDBqL3BaKFA/I2IiJkdPT0xTfGdmUiFxPUB6TERAOl9UJ1MifUNoZm1HYkhXImk6cHA1OkZHLXpsSUYuVnRTXUBPPGNYIW0+NSt1U24iVic+S08lLmFbQ0F2aAogICAgICBxVCoxIiJzX1pPQX1QfChseE80LGpIRzdvUkgoTS9rT3s5REs6U3ZDa1lMangxNUBMK2tORiVOTE5lKTAwdWtYYScpPFtVLDV8UDt0O2I0OHl0SXk0VmkxSD9lIjJ8dEVmdjN6P2lydjpiXD1CUAogICAgICA5P2pcb3phWHxmak88XC9ePipETGpoLi5TUlhgdHZhQHV7NWMsT0JacSNBdE18czs/U1tFMlByUVRdUzhAdU0pOT0rQlNyLy5hbEdwMztASHZsZEZGJHgycWZUfTouZ3FidzVcaDFsLi1aXSxPeAogICAgICAyMEB+c1JPTGl9ZGQldl5kd0w3XGBXMHJRI1U8e1I1cHpKd2MtTm9hMVl3WUVSSDlbXzNULVFge3onXk1bRGJCKC0zUzt4WWZtPDdraTZNbCwjSD1DPSwhVTo1fWhtRXB0PCpGblMxXmNxVyknUgogICAgICBddzBHSjB3NlooK2tObjAsXjx8b3VxN21XTVo3fFNYOGM1YU1ZXH52K2ZiJEd2KDY8dz55LSVcJigkeyJfXDtAKlcxU2lYQXBoQEtYYy45VFdqTVI6fXNEPjdjKyUkQCRrUWNLUWAidSIrfTRtQwogICAgICB4NVhdfi5wVmlifnJ2eV0pZWhbTSkmUDstR2N3STJ9VyNiZVNWVHxIaCJ4Zip4XVArMy45eShtdVh3YV8mK3x5eWpQajoialRaY1c1eGc8VmMmSSpmTCVXWHlpfnRdNydJPElmQm82TzdNNnNzMgogICAgICA2Y04nKVNHPUgtZnJ2ZCs/XnVraF5INzIwQEZKcTRDezchMCFKIWc5JiMqJDhdaHVKfTB7J1Focl5CVHpmNEAkXCFIIllDWHZwdDQpPGdMPGdWNDknX1UjLk9XRmh3Rj0/T15oP18hZGo1VEhcVQogICAgICB8K2BVcG1tcWREcS5zQytmRiZzaTBDQ2Z1fDlhKitEU3NmJmQ+WXpQO3Y3fiFzfV95QmU6IjEhezAoM1FlfFpVK0NQY3JZJ2xPfXk2V2JMQDEwJ1ZVJjo+fnpgRVI5LUFrbFx+PzYlN3NCJnE0cAogICAgICB3XTl8XnVmLzl9SDVhRU9dUiRoUE9+e3ZNaGYvJ0pkMSliZzh6cy1FWFVmeDZYUEo1fmMnLmMzSlNpcElldWVKenNKXyl7SXdjXUQiNEpbUkpOc2l9Uj8rV0h4bjdJSClgMEtqPjUxfU97aFpjOQogICAgICBFXDpMcUB7UFBGYCFAX2YqR1h5Pi8oU15haSIod1VaZG1hYioyXFF5UGZYSFxbOyh+ZkJgKDdWXyU0e0FHUlxYSmthN0hvNHtbL21rUDtmfmVTR3kyc1BQWTg0XDk/JGVELSREdylzQ1d8ZWVSNgogICAgICBcbiRJVU1pQTlXeVR6TzU7ODJbQyFhOX5TPlJ7MTBUXy0xKyJvW29XL2NCfGJ9SGhTb2daIy0ySCY6XTFcaWc0WFBPL14pQCNdQDMzQmk/WTh6S1woVn5YUVApaVx3eXZmUnlRJn5qajQocGxhXgogICAgICBEJ0Z4aSg4LlRDPkw0a0ZGK3UoSk5IbU9yeytpeyxne0oxRTRFYSVebihbdH14Z15dc0F8Xn1IWSIndHlUJ1F5Y3FaYDFhRXhJMHlkYVwkVlk8UXpISz41Py06US94UzI/bSxXbHYjYnEvdy49PQogICAgICBkbWcnSzdUWSdUcHZWWUloYVVPWUx5W00lPV9Le1dddTVOWG1zTDJhNVVzNUZgfl50WVpnUD1TUyloTDkwI0ZSKCNWMTZEQSMiIzs4JS1TfHgpXVQqaV4hPjU1eH5uXHNdUVZNVFpYKU0vQ2Q9WgogICAgICA2LVxdfGw8WUZ8X055YWg5J09QZjFNME1YL2Nlc2Jofm5KWFtrfklrRlMrcitHX1MkeVZCST8kV3pBQUZVJ2Q6Vi1haS9yMnB0dmMqSj1LeFZ2Wkg6N1VmK1ZAVihsNH0nfUFyWCYhMlEzblFsaAogICAgICAiOFUjaTwtXVFWWnVKVWM8SG9YLHAwM1MvRFhYRVtiL0FIT3I2fWd+ek0xdSlSOy07Im9zengtQHtYNkJoeFkoMjZ0KFAnMCdZWzQrMiZXSSdTVDo3P08vTi9XaFdGWmxeXnlxeGJVZiEiPzx8KwogICAgICA2TTx3QEAnWnFyKjBWayF+aE5RNTxcPWZmVnsobFN1Sl04YWFnImN4US4qa049bDwoY09lXX1EaHMjdD4+dSZ4OnFaaDtJel88MDxoIyY5LTRRKE1eOk9BSXZ8PTdXfE49YEZIPjdLV3xDLH1wfgogICAgICBeXU1xNHxQe2RwTjdcRSEnM1h0YURDSjZnfUBVPmVucitZa1pfUVhUKyhFPTA4cF1UXkpPTz9xbWU+aF8tNWNxN1I8aU93SUdLaVtRQDRkYFp0byJjbVh0ZE1aaDBRYSl9cGw2KkxqfE54RU5xRAogICAgICBJcEREdip5Q2lEbzhFPzx3TTJ1ZiMxUS4tKGFOTFZDbEFGP01ndVtBcmFMVlhXNDY8ZVlwTWw+cXI7PC5gUWxVSztIUEs+dH5VWlpxaklDVyZ3T0EuRXp+ZCVhdGZDTz9ZaDFmRkx5O0h5dTEzeQogICAgICBtMno2ZFV1Il0wU2teY3koJFRsbj1cWlojWmgpPHcyKG4mWl0oYTFSbyopSz86QjJ1KktUNFopIz1fKmFMc1glT2s3als1UEpvS0p2NHJEZ2RweDpjdCxjOzVrdyUqKiZBWzVGWzF9S3lMUzUsOQogICAgICBzIyh8ZCxJQlk6PyMpPlFedVl1Q1VHbWpmNlx6cngxdTlqZCkkVn0oUUItbEhBJl8lX1N2RUMsZ3RjWFVkRC9uTzNUXTJXX1dqT2VBLEwwTiR3KU4kbUNnayJqRjViPVllcGtbM1BKZzhKS3R0VQogICAgICArSXp0ITQ8WThQQUYzUHdMOTU5NzZJJG9CJWxQO0VcO3k5MWB5QyUyeW9IdX1rLWEpPzJXdU5tVDttPnt8bF9dKExtXHQ8dFFiaVc7XFVOXUZTSXdscTUqbDdlJFlDdl0yfik2WCYhXSV7V2NPcwogICAgICBiXUg9bnQvTDczYUBzMmJJRWFrZTU+OTc5bipzVWg9MlI1L3c8M0wqOGomdSNTU1M9YC4mRko2cn1JO3ouSG0+NzxgelIycURjZ2d5YDh+TTklajdSdF9JVyp7U1UzI1Quc1ZaempnfDliR206fQogICAgICBgLERRV1VAQ2B3JzNGZ2kpOmg5d1VtVkVKLlhcQGRrWm01Lj4rdEx+SSFwQHFMKjIsPFBIP3RpYEQuQFFrWTpobXxBdnd+XDZDUzkzVlI/OTZsREQhX0FTbCJINSh8OG8iMncyKDtNbl1RV0g0awogICAgICBdZXQsUURHLGJsOk82Jjs4Vy5XSDJLQjVYa2B6fF5wRylIPkk5YD9cYV1dYnYweWQiW1pmPy1oVGlieUNCXyE/XHwvfistMUNheVojPmxrTmo+X1MmT1tKKGB0P2JJZyIieSQpIk5nO3BDKTNicAogICAgICAiIkR6JHdSdTlKfWMjSWp+K0x3LjZQdz9jJjA1NVglXH45QmtpbE1BdmxdT21wbS11OCJtbXZcRlZNUUdNcURde11YXDMqaz06OHgzKWd3N2dJRUl4QGBsY19dK1lpcnc9LCRFY0wzPUFsYjVYLQogICAgICBTZkQ0ci18XDxDfmMmOGRPaGFtZEp2aDslVytpXTRhfEdLeVJDTzxmKGEmL3UobnhfWCxIaUdYMG1icj1kVydBSnU0JHpeNHtBaWgmUEdWYGxqang7PFh1LmJrVHRPcX04WWc+XnF7ZU5BUzRNRgogICAgICBuRks1cSV1UTE9TGEoZXR4fl4lLlApPztPJjhjdGlBPFhbRD9qMXcqM0l0ZiZ0R1FWeVlaXi1UQis+K0syYShDNWQyJz18eyRrUU97el5eRT43WThFRDEkOU1vXWtOVmYvRit5YCp9U0FoXmMvJgogICAgICA7XEY3IyY7PTU9KDBmQSIrNSZFYSIoMyNEamplYldfNENuZHNKV3VmM0xnYUE5Sjo8Z0xfciJfQT8kaG1wX295QVdacCpwZC48e11wc2tdL3MrZjc4IjM8KHRtRzhXQSVZdFc5IUs8QS5XdHxaVgogICAgICBSP0x+SlJNJCFXL2RJPH57OylzczBAQ0wsZWh9OVQhWjNjdjdjIW5udWRRIm1uOU87KDkyV0A9M3hvI0t0WypRSjNtMCZ7LSF6YyRwQDdlPXpbRSRjLnhfOEooIVJHTGEqQFYzI3xeT1I5L1U7KwogICAgICApMnQvMFtdenw2J1VCJD5STlt1YkxgPzFcX0A4bi9jPyQwO1Rdb1BxNU9UOENTcitwUlw+UiYmYFNXbEpSdkpzNEJqZEs1fXpZPF5dey5uflNnMSVzWidxXDA9JGIxfCIqaSdTbTBWOWdWc0xRKgogICAgICBwR0AnYUlxWktKbG00Zks9VCZUd1RQby9kUHY7JyRZOGl9cl93R2dYUzlFSXUkfEMiKSVaU0tVJmtxV017MjxUUmMvaWRdVC0lemt4JDBUPyNfYCxYOXlCOjY2MFJKSC5QRyd+TVFwIUdta3kmMQogICAgICAqTm5WalpZQ1JpaFUoVkcuMHpfe0V1bSUtcyVQIjZAfnBFRUcpYmpYNF5sIiUtVjonQCVxaXgtVVYsNE1PbE18ImphQy1NPk0rS3s2OVI9ViNqUFlOVG87Z3kofmxjbjRFJUB+M2ZbZkxoaFNkLgogICAgICAkTENsczJFal1aW3xIVy0vUyFuaUl1RnBsO2skKm07e0xES0BXJ118MGQ2X3BSYyIrXlF1NHJbc2tbK0pNRCx+Mj84STZ2MHYtSjEqfWlJTndKPn4vRVsrYiU6Oy4rMkxHcnRyUFo1Z1c2RCI7ZgogICAgICBBV1ZVZ1dBKztJbXlnJyV5dXJ5aTUlMDopYntTdC9SSGxqUm5ERCR9MSQxe1ZsNDBpY0hkWWRuS1N0bkQtYmo/N057MERaOFtAfHlGYkc4WEY+VW5LcXhYbmcxOShSLCNhJSJMRH0qQiFqa1h1QQogICAgICByYGxcOX5ufDg/M30/LUg0b19YeS5cQS5OeH40K2pTcCdAMHU6OmFkK1klW0hNJE1gNUJaSC93alIlJH1edWk3KT1WS0YsL1RHTlJ1MVxtWEA3X2NsSiJLOl1ieG45N0FPa0A2Wzx3V1lzTTYnZAogICAgICAyc1NjIUQuTUFuXDYmLF8rJE5lLmclXTxZY24zKWN5UlJJR1g7OFIiUVp+ZDZCckx5S3NreCVBIVNaTkIkJ09PMEBSP1tuL2oxKkh9b2tvan1wJDV+U1lvWG58JGE9J1xhdk5yIkAxUzNMO1VMKAogICAgICBXOU90UDklR0p6RXlQTTBxO0snRlhTUHo1dlg+UllHLCRGLTlpbXg8bV0xP2U+fE57PCxOZndbRWJyPlc3c3knclpMcCxmSjJ3aS00cSQuPk1cYXA4IndCVW9mOlVlR31DZ2l1JktbZTlnJ2BXIgogICAgICBYKEt6O2tSUn0uYTUkfF1paGFGd1FOWFd7Ii8qNk5cVHxXZ2FmXXhdKEg0ZjJfPGYlVHshY3klVExULWZFdU5IIWAjOXwielYjdFtOYHZSPWF0Pz1TenlJJj84K0V2UTpaT3V8bDAiYjorV25fIgogICAgICAkTG5lRCFgbiI4STY5fmAhK11CQTskdy92SDooa3NQRDpEZ0ZmSDZhTHg6M2AiS0M9VE14VXgsW30jPz85Tm57QGp+dT8nU2dSXmojW0NiUGZwWTMsKUlCbWYuV0YkWnYuc0o8Xit8MFFAeVQyIgogICAgICBSOmVJPHEuVmBudUtBM1RGX25gUVJWYn1haDZeX1krUm1eVTA2XmAmXCZHNWohKlRxLlxIMidXdk9PfjJrcD93NHo6SCkvY2t7P3lNcWcjbGN9Ui5GXUUhZ3cuUS0zIWJBb2RkUl0rQi9LJiRldwogICAgICBNImlnMz0vQXJxaWQwO1U0K3pXNFdyK2dybCwsMlloYzc/U1Q4VTZ2YVpdOlglKipQWzxBNixBVWckb1ImLClUK3FXLD4uQUd7L1xMUGBEYT1NWHUuYmMyWT8ifVZVI0E9RyM3Il9PfklSTFomZwogICAgICB5RnVMNjU2TlhHYF82Q3chdHovK1EiSjFHLkRgMlN+XkBXeGdwJVM7K2VuPj40T0hARWI9P1Z9YHdkVDJUfEgqTChBWlQmTEVVdi9yXXUuS1dEVFd4UGx5XzVSdWJaPnpIS040JUJdL2BmQ0NvSAogICAgICBNX0RRPSdWQE88fXlvPj1Pe1YhNzh7amVpZCk1XTpBODExWkdsJDgjTV4yQjQ9a1MtJGV9RylkO0ZlNWxucnc3Y0phJU08UT9pLjJeRzI2KU0uNUZYPWQ3VHp2PFZpTEhLaz8lUkskRz12eFRgeQogICAgICA/V2BEaypJTjsjcUx4TkFyfClHMzQxcyQrLWNDSCphYyc3THtcRWkpOypJXGo9JXRjUiI4cmtKNXEhUz0nRi9QUHM7QCcqLCpHZ0svT0B6PF0jQkFMQFUnb0BScExuczlZa0FDK2dAQFczQUNPSQogICAgICBDO08mLTtrUGlkbS1wWC5cWXFydzVXeWNuJXMnW3p7UChKL09bLXYhN0l1Si1HTj4xYy83RytJWU1jQzFzelh7MnV8JGR3Xm1meFZbI0RfJVsuYnoudGFpNmZkYXdQUk0xTndUPTYrfWleRXpLZgogICAgICA3SWg/eTVbUUpdLzpyQ3UxNldASWVBfFRgbCg+XFNce0c1biF8Y353Lj1jTjoqZCtNWFxpajRgcVxJJWBxZ3dLKDpcRWNUbD4lRCZ0XUxuSFk4TTBRRzZiJ2BDOnJGMUUmTS0jNVU8eHcuTzpnJAogICAgICBVSTZsfWpNKlg6Y0BWeislIXl6IyFHYHInUmR4ZyhmRFNGcj9wRFZhJDxXO2hbJlRcNiVFXHtfIz4+MSJONzhEPXNCRDdWN3dyI3ZvezEnLCFZZU1GTyFsOmoofCo5QkhOcTFbZUR4TjE3UDpwQQogICAgICBPaWtWfHBtJUw6PDx0cjtlfDZGX0U6Kmcrd0YvOEEzLjJOQncnVlZSMCJJO15ZdG5lOXM5VEFndFhmLiVHL0FJcEpmRCs0UnBmSD5KJVlpWWpjQElXbk1jLlRAZEJGJHxnNWhaUWpDMGd3YWopYgogICAgICB6c0hudmYsallBYTJ2LkQ6ZnI5MEhsdiRKa2dCWXt1SVY9J0EzUjNwajhIcGJZdSxCdzN1YGJmK2tiT1teaDFiNjAmV1NUSzJIaS51Yy0ia194fCRdc1o2YkJ5PSdkVGY/TWFHe0xCWGVxJ00hWgogICAgICBhaDcwbnteWGlmME88aX1gIisqb01zfl8lW1NkZS59VipSKlZ7TjdDeHJ1Y1tRMSFNN1E/MHYqJTkmVDVBNVxuKiUod1dxPFBLYjlyQ1BDXixycEFVJX5Del1VfFM7YERTeWkib2N9MWohdUoqdAogICAgICB8MzlqSXM0dzFAaylFVFYuXDllL1pBaStceCtmS1c3YSRfayY3VFxqaTFVKEZXSHRMcGA0MHBXPG86PXZYaW0oQVUxMHxsNzN6Tywte1F0VTFlKV5KSzh2dzI5JSU3XXopb1BBRkZHd2wjS0woZwogICAgICBnK2RxIkxoYWMwTStFJCJpKWdPVT9CcCl6eSEqVyYpKVNlSl19ZUZrdD51e208YnBhKDlJNEJqXG1BNXJiR1AjPEdyNGd+OUlbW3g0TTRCNEJAXjlkOmU7cTdMMG9YK3FiemEkXnY3QTZMWytNLgogICAgICAjK2h6TCpvazp1OlJsNztWX0daPHVraXxQT1E0c1FIMDlcSjpdZCljUnl5J0VhfHtpX3ldJDQifmN8JSg0eXZ3XjA5fWZhbVZcclJALXw6cSlzLV47O0csNihfXScoQWV0d2ZFXGNuVy88OjNkWQogICAgICBbR2JjKXZwbH57SlNmdX4lfTQlKSYmLnZWXlNfIidRfXFDe3pOUiFfOFBvbClLJDEifiRUfmp6T35tRHpqPGlDTk0oXSJiKTZdbXZSTCNUaXlXYjsyOVRvPnVOXnFEc2VIZWE9bXBDfVJAbFBHPwogICAgICBEJ0haPDBPZC1Lail2USIrNStlSyIlfT5YcnYwW2c5R0J7PnUhWWBfRUwkYTgwLDp6Y0JFXW4sWicqfUUtW2diJ1h9X09meTVfY3NsS3QmaEJJQ047ITpdQWR1LEFpWDRzNFk4eWk5ZmpCPlpkdQogICAgICBqPCR1STl7bSN4dU1gWl1rQF9ucyxMRnpPODMvOz5CI0U3bzAzeVYmYURZNm5jMVddMVJER0tPK25HQFpkbjpObTQ+eCljPlpoLDB2X0MkZXZBRDsuOmgqP1JBPVI2Yn1hZ0g0KXVGd299KHMsZwogICAgICArPEcjJT52MjhEWFA4J2FJQjclIXhObSdVYnEwcEM0SCd+VisuK1A5Zk9IXTMvbyZ0L0hCYlEmTG91Ok1OOSF4ZVdAWlh9QS1IaGkzXCohdk88TGAyQlUmNVtNP3lBNHEraj0/U0xBTC8sYihtOAogICAgICAvYzxKeHF5Tn5ffGhSMDQiKDEib3xOflJGKl5Idyw7al9aU2lcTW1GfCpFXHRXdU0nbWg6I2huPV4rJXJZSD5KLj87Q0hBZ24waypiZGNPIT1MMV1CLE81XyNqbnd6J0FBOyYyXylxSntqYG5OQwogICAgICBAQVRgZXdhSHpbLDpQenZ8OW13cEQhcTIyLEgqbkNtXl5PPS52X34iUXx1ayEqUmUyQG5aYnkiV0VmWixSVSFXRVlTPGInKkUzV1s4MV9+WjM/IjdeTSpnbk1qbDBwfGRTTF1vLD9NcjtdbEJ9IwogICAgICA5TzBzJEhtTVo4RixEcXF2dF8rVS47ZVE/MmZoZ3dYK2VOMlhkd1t3Vzk5SH1vUjlOT1pHWDU9P0xcdHlpKktLeDUlX012VkRFQS1HKiMnR31Ob2U6cz9peVo5NFpWJGJjOSMtYnJeSTRnKFlGYwogICAgICBzQHFsa0NreGdqXnE5bypaSVc+OVIyUTN9V1YzfFRxS1lKRiYqIktdLyVPanteJTwia2NlYStlJy05PkRuLHImQVlyO0BKLE9DLkpDLHUtYEtxRllIOS1rWWojO2IlUSM4YXpnZVpUXzpRZmB5eAogICAgICB7U34iYE4hXzFcVmk3PGN5UHF7UVhtRip5OERUISsuXUFOMj1pRmg5ZmZ9cSZ4PkVzbns4RmBYVi91cXRcOEhSbmo0MjA+eTg7dSV4QztwMTZLNDpgSG1NbzM0cDlqQWNgOl4/RSNLOGM1X3B1egogICAgICByQy9oM1wrXHo1Ym84JzItZSJTJ2ZOSV83SlpFQjcsO05IKFp3OHFpIl9aSDFcKFIqMDdncXdCQTBjUEgka01qI1VUWHM2eGtcWGZiN1RDYVovVkxRaV5yU24lW2wvKHE+LTMnJH5xPGxENm0rOgogICAgICA+Yzo6RiYsLXk4b21JZWFfdkZsTzQ+eCw4UUhQTWIoV146Xi1WeDE0OzcoJ1N0PX5gP2Q3a2dPQmVJb05udGlDbl98WEo1TlQ3UmdKOWNcTkEyUEI9VD1ubHRrTlBab086IWVxLlRpLz1raU90KgogICAgICA4NjhWb09jRD5jTEh9X0QqcFxBY1E0fWFoe1tAUHFbXFhcYkErZyRUXmZ5LzJCOSspKmV6cVtxS2c1YSQyTjZtO2NwKnNOdXgzZyU/TVwjXStiXW1maktuIjw6aEdQQG9wWUwmXFtxNXlPdjglTgogICAgICBzYyhcL1UiMEFjU0Z3PEBQTy4wOUp6XWhrSDhJcWlTajFIXXB5OyFLJ2JuYEMnc3MweT1qQjtuKE9EeDxWU04ubUgiJCd+ZjFaKjAqTkNAcHd8VT8wO0okXlBXZXsnZFYsfHVlfUo+L2pMNTA3dAogICAgICBgYUEubVUudFUqd3ZSLChEPXhHMlp2NWM2RXB+ei1qL0I9cXApM1x8ZWFvSHBTSmoxe2Q0Mz9yMU1EMWJyLXxiZFZycU05Rj5tWHtdNUQ1Z110UDU2Kl9XREx3VS5dSmgrOjVtK0BxWncidWo5RwogICAgICBwZi5CZW16XGRFWk8xOTgoLF9zJ0IpQjNRJGw/eVtibUp8LFwjZEdzW0AvXSZdVyF8WmhmWFRRJ0JXODh+Yyd5VWJJaFZydismJE9+NUxcST10Uy0lPTJiVmkkMToiLFZGUlN2Tm1kPix3PG9mbwogICAgICB+cmI2fSd0MGMmcUZJaDB5OS8xX1spRkpKZjZzYiVpdEcjQ1M4YHd1eiQqWiVLSGIiKTBEIyxKXG4ie3Bycj1EeVdyOjpEaHB8LVM/aSJXT1VweCJAMiFzWTM2UFVDSHB+VGQqUDRPfFx0I3Q2fgogICAgICAiK3s6O1F0LGh+NEN2Q1JhR1dvKmB6L2YscSh+MThrUTVKWG1cRlw5IXloaXVTNjkkbTFiNiR1b0Z2R348YTtBLnZ9cFZWZFkpPi8/aWAqcE83YmNcR35weEBKcFppZH53YydQcTxlXXs9XVt2YAogICAgICBwMGdLaGw7Z3dyWGxvcH5aZCtYMz0zWi9+UzxDSkpmT3N2dzAnNn5eNjJxcm1BKjt4W2I6JjRXamtSXl1nRkR1W19vVlZgZzs6e0QpVitgfHQmQ1wqXVdlVGczKDVubjE9JkE8IkxffjVTTkgoJQogICAgICAsd3h1VjtDNTJWVjt3Xl4rZlB5Xi9EW3hudmA6XXslTXwua1UoeU8ndEBYeFRaKDJFP2Y6VHJ4KUVEXXR2fU4+XGV+PjtxYDlPT2RkbHVXRUJobVNzXzxubWt3KEctPVtyPUMxS1EyN2kvLH1DcwogICAgICB0X11hXHpEXkg4YGB+TGp1ZjFdXXtHb2hHaztdUl1cWUVjJSF8WUNZankqL2ZdSVFcPTw5QDI7XUFte0ZcVWM1Ykg1Ny5IXyxRIitZXzFmb3A1PUNMZTozNTtybStJRi1zfkpHOUsmNENwXkhlIwogICAgICBzY3ZiazVMOXZYZXN5UC88XTlHTi1TMW1EZHtvM344bzZbcWpwWyUnNV4+R1kjd0xqSFRbb35LODxlP3JxMkFzPjpaW2JueGgqNHFXViQ4XXJVeE1gfERHYlBaajNsPHN7OTd1ImtqYCxhPWslZQogICAgICB9dlw4bXJpJVsnc2dIR0piUk5IbDFpaWwkV3FmW20jKFEzdFgxVCYtK0tTRkQ9akU/ZXpMOVoyU1UsZUlnST87czE0Yl8+PF1VZHU9NSpCbzJfeTY4TltJeTIhUDJKTSdGVjU8Vl1WMTBxfHJEZQogICAgICAtJ1NGdihvTi8lfEBgZnU4OXZxezpQJ2Z9d1MiSzlfLURte18+I2kiYUlJNHQ3UkRCbj5fZWglbCphJT8mcE9UTU4tZHIlc1x+KEh7dmUmN2IwU1tcM35KMT1JJ0RqfFlLcHReYC07WDZVSmhcMAogICAgICBFV2VeLjptVWRaP18/d3loXUZDTkYnYyNrUiwsdlNzdWppYVU4Q14nK0MqbVcwPjs0ZmtLdVdFYTVJTCEuLWdvc2d2PnNbay8/QiNbQUxrLTRKJWZQT0NkKHoxK1EuSSs/ZV1PQDRSJiZAbDg9awogICAgICBQVmpmb0x+VS9sei9UeHRsR28sInp0XkxaXVM+WilbMGIqSkJzWCFvUV13WFgsOVY/Qi93XShKdEJ0LDBUKCNgZVFeSyJnRSFYKzFHbFNgPnVxWjkxbXFbeFdGYExpIWIzenVjck5VOn5XVSx2ewogICAgICBDJy9oaGRfb2gxIVxfYVV4XzVNY1BcQUdpL3laPiU4MlxgbTNEaVc6KmB4Kks1fGd4MmN0TXInLiI5JEFBak5PQCVkWSFwZ11TelFgNTs+MntbSH49VnREX31mU11dYS9dM2xURHN8TkJwaGA2UgogICAgICBTRjROIzpxJmFPJj54b11yVE8wKGh0XFckO0E3eXQicC49MHJZPlV0SWxFIS4lPTpxMHVeVGclamMhYHZyOntiWUl0N2koeiN7eXhVJDxZYnwzZSJeOkdVbHg5bSoqNSoiXDVoWmBdc1UjN2snQAogICAgICAxTEFLUkE+TH1ZbUBeaTAqcSxeWEpJLEZLanZ6Ul9ZMUdwJ102MXx3SHE2M30rM0w6ImR3TFNQdTMsWiJ0OjlifllPPHRtd2h4UiZgdUF9aF4mT3lJeTM2SUw4blQ9JVckIjBtXl00Kk8heCoxUgogICAgICBAY0hZPGJsTnQvXyRJU25ielVMTT1JSE1xTlwra2QteD1xSDVbLidqZzxDak9sUkJMTFdPdEMlQWUzQkh1ayRZTnFbLFt9Wng3QjA3fldkTmRqSl0zUSRvSk9dNmBcfkx4OFxxJV1uQ01WbmkyZgogICAgICAjSj5xdi9GSzE5SjU7L1J0fHwzPX0zd1dxfXgxfG5neChFaW9kLDhOJiNSdEdYSV8wWi5mamlHaCQlPEAqQCFjIWt4SlJ9cDImY18rKl9gRE5BLUE9YFREaj02KDhSaSVRVVlvSyMyd3FMUDJ5fgogICAgICBdeklrOC82TEVJelBocl16TU4/TXhIKm8uOD1ELXpuU3s0IjVuQiZ6LF90JmJhdSddQ0MrVFFwe3RCbTR8U25+Yio+Sj1Bd21KXDosc2RzOUUiaTd9bVFQNEN7Y35pVmpmQ2pIJEJGYXFCYlZrKAogICAgICA9Zi8/YUM0XEI6bS19KUEseDkjdXorS2tQQl01M2RKZ2M+d3JuYi9yJjZCLU4mXWJ0QSt3YEx2ND5yOS1rWDVeRU9XWm1OaVsnLVJseWUsZ2dRJiMlb3dffFl0J3IrMlExQTl0Jl1QdnVsJjBQVwogICAgICBYdkEqTjdZVntxZ0l6I04uOnAmJjloOn10SH1zKXVAdlFtQis5eCldSTR6NlIvTFhkdSFXaiElazAlOGBObTp5TzlVMFtBU3ZPPEteP0ErW0MmVmlqOzs5MWVhNVppXic8KFddYXAiT1Y8JmdXWAogICAgICAkbWJeTDMrJTBRcWInPWw5PH4wXj05XmAkJVt+TmwhaGJAZ297Vj5MXyhqKSxdPntAZltHc2U8L2s4XCY5KVhgXTdBZEVrR3RNNm9lX2E2bjVkSlJ9czR0MEUsWV5HSns5VTNNWllHbDFMTS5XLwogICAgICBPfllhfXo/Rl4uLUByaENRPTAqbCEkbl1FYmRrLSFTMixreU1iSVZoZVR7WScxe0V4S348OXJQbWlZPnouZS58amVMTiEjRT1jWCkzTj9adjh7YlZ4WiIqaGxSWTo7SyJoWWcoZ3U7ZSZKQS5JfQogICAgICB0YEYscT5pNDBGaz1KcClQfC1+Lnc4XmAnRFV3YXQ+cTxnY0p5KS01K0IpI2N3e057dUdrNk5HMEcrXnJeRH1HcmlLNThJZUReUDomaEpubCQvUHRsJzhUVEg/c1tBYVw8enJ8azQmUXk3PExrJQogICAgICApVGMsNHRRPzkvcj9UeUU3TlVpaEJtNSxNfTdCeUYrWENWLjdHOz03QDc/UFA9Z2RMZmIjUS9bVUQ/WlszVD4qNjFqZGhVLEQvOXBZXj1VVW5TTXE+UigvQGlqUFEyLWgvNmBNJkNkWFciWixwWQogICAgICBiRSg4XGRGInhCblVoY24uZ3xdVChhbSlwNS1bWShHfiw/Pz5baVZeJCYhVHNvUDhlPGMpRW48bSh7aD01aHtRNF5KX0JBW0RKdSNFeGJee3w2O0wvMD5YXz5aJmMld09QKyoiX3chJ3tqYmpheAogICAgICBVdDhbbCQvaWAmWks9PWFnMUQoV2tZdDcia3ZMLWhrL1siIy04cz4vSktQJ2YiSEJzPDBsNUVqNHB4RS5kLzhWZz0lPGU2R1VaJ3g8LSJ0KmElKkZUS1tFSV1sa1Y3ZCFeXXhsISdNaVxTJ1Q9NwogICAgICBtOilFWUJvd29zKiJjJlV8am5FeilfNGcsJzZ2NE1Ma1QtVlpOY2V2Qn1RNH1MLjdJPjRCOllrRTY+Wy04Q0U4YEsnYH1aMTBVQmh5c3g0bDg3JjpwdzNaQE85X0UyVFMvOU5QdUF6c14wXXZsbwogICAgICBZS3VnJFd4en4zXV1MJHotMlBre1QvcWdMekhyLS4oNnBrO1QwLFxKQEhvNkEhQHBXWlNzVEtkY0J2YEQqbFxYZGIpQz0wdjJcaExCXlhlQ0ppOiFuczpseX1QUV1nUHw5RDZpIidJeCtEd3NuMAogICAgICAkMDJYLkw9WkJAP1pHKWtPKmJ5LFtcbnRzPShPTi0+PGQ7by5xej9NLU5oalFpXkxrYjJLLC59I3BwUklXTHhkd1tgeXdPdykySUtTPmk/MSdMfj8rb3lZYjU7STJzLTlhbTNkXEBXailSd3pYRwogICAgICBObG1Na0cxcnl0KExrd3F2NHVlYXleR1wlPCsuLEJhakQvcEVbdihDS2deMy5TJVNjKl1YLV11T2xbNnZWTmpxamMnc0ZramlndVM2P2kuQmVyPHxGYTpIN3xya3RaOGVFO3dgK0V8RmBNXG5hJQogICAgICBFXjNbUn44N0M+bzJGXERrJzxDJzotWT9eTEY4e0spTT8uOzU2fCt2TmkuW1V2MjlKXC82QD9wQnldc15jLHxEIUhObDJ9cGw7a0A5S3x0Z2RsS29QcWAtNyR6J0FmOkgofEwjZm5iLE9xPmZUIwogICAgICBtUjRvW2IpKHp4cGoxSVohbWNQUUZFTEpfO0ZILzloR3YudlsmTmdpJ3NGZDQ0Vn1BW2tVcVh8czs8VyM9SVlPdT9aS1VCbEBYczhIbTg2KHhkRTs1dCl6dS51S0FIWjovXGBsP3k9QCdQXndvPAogICAgICBiXHl1YS86LChnfFo8JzIucm9kVnQ4ZkVINkd9aGc3SnRrJi5nKTwpJTI+LCk4LUNUSyMmRFFpKVBYY0wmc0pabkgrLltwVCdMKjEuXWVlWzpuJSNreUkqaTxoNDAqJkBgcCYlZXooR3t1U31RdgogICAgICB1Q0RgWS1NRDsqUFtkPT9MLER0JkV8Lj1IXGJwOls0SFEsXSp4ZilNP218UHdCc1FnInkwNUsjTVpiLENZdTNeUERiZTF+KzJvc19IJ0YjZl95QGlxcTt+Ois6ZjomL2heLCEkakBkWW9OcC9COgogICAgICAzL0BBXStoOkR3SEVYP341MWhDWEBtJzwqSmVjUFYvSW88OXdMfS1tOVhbP2p1Xn5zYTVoZ2ZHOStCbGhmeyU7ZEpKRSJFJiFfUjFaUFsyOFQ6Q2QuWC9WI2gySTBaS09iVndeNns/VycwWURSWQogICAgICBuRTBSNEZzU2VrZSN3Kns8LzRfayxeb3t7TDxzeyhyPXF9VGA5LHA0d3NOI1FWKnxVXHl4NTVHKiwvQSFkP31WLS1LRmt1Rit3IjYvQDFdUHEqKEZiMGUhe2snQDdSXDNFOn5SVGphQnJvRil3UgogICAgICBhM1okKissejl6SjlvaUNmK0gudF1Wbz9taFI8PSFyb1gyM3tDbT5sRVlnZ04mInIqQiljIktHVWs1bCo6TTosdSQxclo+W0M7eD8rWXRLSzpMdmdLMEdgUmM/dC1UNj5OOCQkbGlpJEcmU1AlMgogICAgICAqWSlMVXxQU2YtSXElZX1yPHA6cV9uPyZpbXskc1B+OlA5LU4tZWBnODYjbnl1OUAsQHMiWy1Mc159Zmc/TiIqQjZ1c35FMFQzanUrbCtyc1RXQGpDUDFXd10oI1JPWCZ7Z3o0KyFaQWhjQXZgJQogICAgICBTUSVmTU5VRU1zPF5MajRbXE52LkNOSm0td35mX15zZ1haNnshdmYxU19xUUVtYF4rKCQ6ITgiMyolaSxdKGNqZD1YOk9qPX5AL01JeEx6c0dPS1V4S102RUltaU9BbWYvSlV8NGdmUiRYbntkVgogICAgICB5c0JRcSJAOStIUmNzX3RrZn1KSnB4d0F4c2VpWEc6NERdQlpfOXdEKUNFbWpXI0g7fldMYG09TGsnYiJWPDosIjV4UzYtYzhvVVEweyk9bywvO1t3aHRcSlE6cVp1IjNhfkF6ZU1eM2k8JWZ6awogICAgICBkRls9QHtyNCpEMmAkLHFZNjdKJlQpZjZTKDx0RlRMXENGJjlUU3hbNHF3MUlMUGJqOScvS0RxeHhrbFAqXzxxY14mXkMhImEhbVQsQDt6cD1ze0YlTyw/NSxPeTxTJEh+ZVNvI25lfjJwa0VScQogICAgICBUdlo4SEw5ZkonUSgpbGthSWtiNyMjVC02d3A/K1V8S2RFM14kOGo9VD9rSVRgM0JZYVV4RE5HPW1cXV85VnxxMkh5bDR5T0IjQSNBIVlnMipbRC0hU0NIUEJgMUBpP0gyLE85MCZObVMjSTQreQogICAgICA2QCVQMyFiKngxXEl3d1xJKUwyXjNDYTlaUjBgTic4T01vPW06ejkiPD1pZVFkLlktI1gvKWk6Y3k1Ziw1LW5tSXlGbX5wfV1TIzhtLl9qJDhEXHU0bWcqVUp6Rj94PVR8O3RPazx1YCJRfW5LMQogICAgICBodzpZfHlpP2JzcTxoWXhaM3RPdmU7OThYN1JlSkROWytfUjNiaUAhdEc8VXd4Pk1cMGptNDMmOnpGaFhpTUF2XSNraXIlRnE2ZHhTJmF6azt0OnZ+VD8vYSJTXHxnNTpkciZORW43QjtDU1o3WgogICAgICBnbnZ4JzNWN0ksdWw1L3EoR2NhPnx6VEFLfD81a3NRWGh2Omc8OG1uXUF0SXQ8V1pTPFh2ZSo0QE1iLEJbM2xsfj00NmRXTyNhdC49XzxoR35ZUWJpOkdaRmwxaXNqUWFbZEpbOHRzUidwRUwlXwogICAgICAvJGlHQUVETzd2SlssXi0wdC83NCpXIV0xWT8jR04uTytbdWtJIixHZm1xd3FiaVZJZEMnfnxLVEJIN3dtNGkoKH5IRCMrIlNTKlEqJi5ubjR2YVBvNSR4Kjwxc0B6Z3spRmNOOyEnNGtweXBjaAogICAgICBVOEZnOixqMWciOi0uS2VbeS9Ga1dJK3h3Q3JfWkJ0ciYvQ25HM1wyK3AmTkRzSWhFIkBJSk5QLWFje1tTVm4pNXJ6TCY5I3NqM3p+cWdHYmtqXi9nJHRjZ2p3SFk3XEhyai8nQmo/bHFOQ1pDZwogICAgICBtPnBUIlBCZiFscGg3RCxjIyFxeyI3c0VVdFQpa3g+dD5wdkI1PzI7Ly5BNnhXI0wjX0Z5VEMmIUQ0PVE9cE5ufiQsfVZPUGtGJVBqYzw/VDEvaz9CLiEkTFhuTk0yaiFZUitDYVFWKFYsX1xcbAogICAgICBSPCwhS3x8NHpCVSx5IjNwdFRtblBOMiNiKDVacjFRfjleJWkqSnRBbmduTnk9REguQDIvUG5LJldhQDtEYTtBUVxodjtZaEhFKn1SNX5wWklVTj5tWk5KcWFHKFUxMzx4aV1PcWF5SnxsNTJQLwogICAgICBCOFRXYi4tbS1SUGQiKzZtTyE5ZVdycEppL3B4emN8c1NkRWVbPUJ6WzZMZVR9WH4qVUZYWHBfLStdZEV5SDN1eHhHLkEjTXN9ZE49QU5eW0dxRTtQXWF7TDdvaUN3XUVRXERiajMsO2hrR1Q8fQogICAgICBid3BURD1gOEB+djtYczRFY31hT3M6RVxKXUZWSGJidmR7YHltLXhKYWNqUkIwKCNOUzJ0OWxTWE56TG5IJmVJfXlEc3MtQUwkYSsiVzIiNmRpJiRweCpkJVR5dVdXZ2hTY0I3WkpWOUB4YHVpRwogICAgICBDSDxRZH5+dkgjWX1JdEw2emZ5cSIoJCwnQCVcO1kvT0I1R3NfZkV9PVVIV1ZdRkQne1kjSXEoPUc6RSlmRVZWQEQvaEBkIyxdVFpHN0dCak1JVH0+TzklQFluK3B2JFhEfSp5RHEyMW9pJXA7WAogICAgICBwaUViVElhaX0mKyZZVml1RCtaYD05SEEjMC8hMiJBc04vI1JCcyhbV2R3WSFKaXF1IyEnOjl0cCxKdl48TkYrZzsiJkxbdSY6OCY6WH57LSRUenAhYj0lJ0BvfUUzI2FHdGxJPXg0fjFCQkBqdwogICAgICBeeSdkeVlba1pgU3tHXkBiRyc1LTd8Z3ohaUIkPVorYCVsLFZdTUNWTylVN14xe2giTzlGYGpFbTNZeVckZlEoMlouZCNKWGcwTGxYI2MiIkxuZFlBeTlBcXwmSVx8PltkRGh4J2o4RnN5YW1oNgogICAgICB6JUFJeDoqbDw8KnJXWSJEXmI3QzRrXiw/L14vbTRIaSglSy0xWlV5TThrQ3pOazYybDx+SGxSZCFTOlMrOUVwZjRBIVglJjNrSWNjQnUsVDkmTmUue0xraz1pcGAqdl1WVnlIIXBaYk41MUtUKQogICAgICA7N0dnaGdJeVRRXklqOUk4JlxtcCxeanNeb3Y5TDk4Ui0oWD4kJ2klOj83TiEvVkt5NzxtUU5BUW4vc0NEXl9MOHE9TmtKVy9KZlVAJEBAe2VyTER0S1BDJ0FTNiEyeUBaMzo4fXMscChOYWxodAogICAgICBfWUVCcHpYMzFANScxV0NWez97YTB3clhLei4vdU04TGkne0N4NklAK25tKVpyOSRUcSliSyU0JV5AImBLfk9lJDU7SygqL0g4N1otWFIzRz9vQT1eWjgsYy1ba0tbZEcsRi9QOVl3UU9WfnNPYgogICAgICBgY1c0eW09QzxNOkJUIjcraS47YUBCNiF3TndnWCoiPDlkUzJuTT5SeTZJYHl8YGdyVUFBckhSO21hcTMscDIjVWhHT0FBaGJgQVVkVzJVM2hLMXsldlBvNlp0bzAwOWBLXWRBL059RmFufGpgJQogICAgICBoOid4YVcoQGA6bEZ2Rzt7X2A6ImsnXUVVbHJWP288USV8e3tMYD5peDJbUFhoL0BffF9rR1FRckE6Q1FCUlBtM11tTDpZPHRQWUhqRTtJeXtnWCdSbVtFKyppLSckW0FsaWp9ZGlBMzBySCtULQogICAgICBpcT9WX2tzMTxfUDleY2teP1ZudWxhSXpAfjh6YHBJVW9qI3NNaXk7SlM6OkQqfk42P1REY2lCQFEoOz9fIlt2elpMLTkhdV1MXyt+Y2E5TWJ1VzFeVz1MS21gQ2p7SjlTcCdEdm58WWEwJFhwQgogICAgICBGTFBxdjtkbXFrOyZHRV55JkUhRS5MPGgqeExib2shWnQ0RjdEOileJkQ6Y1kzSzRza25IbXE6QXBRJDdHcXRidy53SURVaXVlKHV3RE45T0hfQmMpPVY/XyZ9T2ttdVovdV0jYjNbXzh2KTVlSQogICAgICA6RDNtfSddbjQ1UzZKdHQheSdPbHN+eEcyUi18SlI3KUVQcl07bSEnaSJmXT4qLm1oQ0AkPUA2bm91N0VYSzZrdGUmfExvaTFtXDEoVnBIP29ge1BxeC5EWF5SO3AkTmw/dzx3UWR6SGJsNlszUgogICAgICB7K1h3Ymd6XFRjJURyJFdwOWpyL0Jibmo8WUYmN1M4aXUicSg4flUoPScncS9uIUNoT1krZ2BHejBkeHw1bjxFZSpreV88Km5wUUNAXlJ8K05uLl99JWxQYDRyIkQpTDRJL3lUNSF0JEEwPS8mUAogICAgICB9ZS5IZURJfVp3VVpHNl0lUGd7T1ljKER9NmtTdXZ8NFtUVmxTITxfKWwlVXZ1el5DQ0JzPjpgMzpvJWswV152KngqQGxeK1NgQnBOeUs2ejpkZVQuc2BOY0srWjQzJCd1P0pmRDwySSZfPlEhcAogICAgICA2YnAzO0FLSW04MSJnemZhfVBQUUFuZkE9UC1Hbn19OEx9SFpqak0zJmcnL2tNRGhQImNcPVVVPm17UG9rIyReLlQufixKX0tCbF1lelRKaU9FJU5nKH5iVipodDEnS3ovYEZiYls4blolJHV8IwogICAgICBfRzQ6al9BYDRJeEoqRlQ1TiswOXF5QmJmTkhIJDlYZWVwQDhtXUM6VHBsV35xcTRhLUldbWUrd0krXyd5PU1HcyorXjgxMzhOa3k8SzhaaCs7WSNPNFNwTzVzKHFyWngyaHkmKlpNc0dBYXYkbAogICAgICBaWGNGZ2txIidGeTFZJjEoOUpVZH1PY3NlZmBxQE1xaHA5cUYsTCZiWiV7ZkpNPzs9Z087XTJDLGZUQyE4TikwNkUzPnxdPV0sCgp9CgotLVtbCgpNSVQgTGljZW5zZQoKQ29weXJpZ2h0IChjKSAyMDE5ICBFZ29yIFNrcmlwdHVub2ZmCgpQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5Cm9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsCmluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMKdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbApjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKClRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbApjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgoKVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCkZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQpBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCkxJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCk9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFClNPRlRXQVJFLgoKXV0K");var Un=ge("bG9jYWwgZnVuY3Rpb24gZW5jb2RlIChzdHIpCiAgc3RyID0gc3RyaW5nLmdzdWIgKHN0ciwgIihbXjAtOWEtekEtWiAhJygpKi5ffi1dKSIsIC0tIGxvY2FsZSBpbmRlcGVuZGVudAogICAgZnVuY3Rpb24gKGMpIHJldHVybiBzdHJpbmcuZm9ybWF0ICgiJSUlMDJYIiwgc3RyaW5nLmJ5dGUoYykpIGVuZCkKICBzdHIgPSBzdHJpbmcuZ3N1YiAoc3RyLCAiICIsICIlJTIwIikKICByZXR1cm4gc3RyCiBlbmQKCgpsb2NhbCBmdW5jdGlvbiBkZWNvZGUgKHN0cikKICBzdHIgPSBzdHJpbmcuZ3N1YiAoc3RyLCAiJSUyMCIsICIgIikKICBzdHIgPSBzdHJpbmcuZ3N1YiAoc3RyLCAiJSUoJXgleCkiLCBmdW5jdGlvbihoKSByZXR1cm4gc3RyaW5nLmNoYXIodG9udW1iZXIoaCwxNikpIGVuZCkKICByZXR1cm4gc3RyCmVuZAoKcmV0dXJuIHsKICBlbmNvZGUgPSBlbmNvZGUsCiAgZGVjb2RlID0gZGVjb2RlCn0=");var zn=ge("b3MucGxhdGZvcm0gPSBuaWwKaWYgb3MucGxhdGZvcm0gPT0gbmlsIHRoZW4KICBsb2NhbCBsaWJFeHQgPSBwYWNrYWdlLmNwYXRoOm1hdGNoKCIlcFtcXHwvXT8lcCglYSspIikKICBpZiBsaWJFeHQgPT0gJ2RsbCcgdGhlbgogICAgb3MucGxhdGZvcm0gPSAid2luZG93cyIKICAgIHJlcXVpcmUidXRmOF9maWxlbmFtZXMiCiAgZWxzZWlmIGxpYkV4dCA9PSAnc28nIHRoZW4KICAgIG9zLnBsYXRmb3JtID0gIkxpbnV4IgogIGVsc2VpZiBsaWJFeHQgPT0gJ2R5bGliJyB0aGVuCiAgICBvcy5wbGF0Zm9ybSA9ICJNYWNPUyIKICBlbmQKZW5kCgoKb3MuY29weSA9IGZ1bmN0aW9uKHNyYywgZGVzdCkKICBpZiBvcy5wbGF0Zm9ybSA9PSAid2luZG93cyIgdGhlbgogICAgc3JjID0gc3RyaW5nLmdzdWIoc3JjLCAiLyIsICJcXCIpCiAgICBvcy5leGVjdXRlKCdjb3B5ICInIC4uIHNyYyAuLiAnIiAiJyAuLiBkZXN0IC4uICciJykKICBlbHNlCiAgICBvcy5leGVjdXRlKCdjcCAiJyAuLiBzcmMgLi4gJyIgIicgLi4gZGVzdCAuLiAnIicpCiAgZW5kCmVuZAoKb3MubWtkaXIgPSBmdW5jdGlvbihkaXIpCiAgaWYgb3MuZXhpc3RzKGRpcikgdGhlbgogICAgcmV0dXJuCiAgZW5kCiAgaWYgb3MucGxhdGZvcm0gPT0gIndpbmRvd3MiIHRoZW4KICAgIG9zLmV4ZWN1dGUoJ21rZGlyICInIC4uIGRpciAuLiAnIicpCiAgZWxzZQogICAgb3MuZXhlY3V0ZSgnbWtkaXIgLXAgIicgLi4gZGlyIC4uICciJykKICBlbmQKZW5kCgoKb3MuZXhpc3RzID0gZnVuY3Rpb24ocGF0aCkKICBpZiBvcy5wbGF0Zm9ybSA9PSAid2luZG93cyIgdGhlbgogICAgcGF0aCA9IHN0cmluZy5nc3ViKHBhdGgsICIvIiwgIlxcIikKICAgIGxvY2FsIF8sIF8sIGNvZGUgPSBvcy5leGVjdXRlKCdpZiBleGlzdCAiJyAuLiBwYXRoIC4uICciIChleGl0IDApIGVsc2UgKGV4aXQgMSknKQogICAgcmV0dXJuIGNvZGUgPT0gMAogIGVsc2UKICAgIGxvY2FsIF8sIF8sIGNvZGUgPSBvcy5leGVjdXRlKCd0ZXN0IC1lICInIC4uIHBhdGggLi4gJyInKQogICAgcmV0dXJuIGNvZGUgPT0gMAogIGVuZAplbmQK");var Jn=ge("CgoKZnVuY3Rpb24gUGFyYShlbCkKICBsb2NhbCBjb250ZW50ID0ge30KICBsb2NhbCBpbl9kaXNwbGF5X21hdGggPSBmYWxzZQogIGZvciBfLCBpdGVtIGluIHBhaXJzKGVsLmNvbnRlbnQpIGRvCiAgICBpZiBpdGVtLnQgPT0gJ1N0cidhbmQgaXRlbS50ZXh0ID09ICIkJCIgdGhlbgogICAgICBpbl9kaXNwbGF5X21hdGggPSBub3QgaW5fZGlzcGxheV9tYXRoCiAgICBlbHNlCiAgICAgIGlmIGluX2Rpc3BsYXlfbWF0aCB0aGVuCiAgICAgICAgaWYgaXRlbS50ID09ICdSYXdJbmxpbmUnIGFuZCBpdGVtLmZvcm1hdCA9PSAndGV4JyB0aGVuCiAgICAgICAgICBsb2NhbCBuID0gcGFuZG9jLk1hdGgoJ0Rpc3BsYXlNYXRoJywgJ1xuJyAuLiBpdGVtLnRleHQgLi4gJ1xuJykKICAgICAgICAgIHRhYmxlLmluc2VydChjb250ZW50LCBuKQogICAgICAgIGVsc2VpZiAoaXRlbS50IH49ICdTb2Z0QnJlYWsnKSB0aGVuCiAgICAgICAgICB0YWJsZS5pbnNlcnQoY29udGVudCwgaXRlbSkKICAgICAgICBlbmQKICAgICAgZWxzZQogICAgICAgIHRhYmxlLmluc2VydChjb250ZW50LCBpdGVtKQogICAgICBlbmQKICAgIGVuZAogIGVuZAogIGVsLmNvbnRlbnQgPSBjb250ZW50CiAgcmV0dXJuIGVsCmVuZA==");var Gn=ge("cGFja2FnZS5wYXRoPXBhY2thZ2UucGF0aC4uIjsiIC4uZGVidWcuZ2V0aW5mbygxKS5zb3VyY2U6bWF0Y2goIiguKlsvXFxdKSIpOnN1YigyKSAuLiAiPy5sdWEiCgpyZXF1aXJlKCJwb2x5ZmlsbCIpCmxvY2FsIHVybCA9IHJlcXVpcmUoJ3VybCcpCgpsb2NhbCBwYW5kb2M9cGFuZG9jCmxvY2FsIFBBTkRPQ19TVEFURT1QQU5ET0NfU1RBVEUKCgpsb2NhbCBQQVRIID0gcGFuZG9jLnBhdGgKbG9jYWwgZG9jX2RpciA9IG5pbApsb2NhbCBtZWRpYV9kaXIgPSBuaWwKCmlmIE1vZGUgPT0gbmlsIHRoZW4KICBNb2RlID0gJ2RlZmF1bHQnCmVuZAoKCi0tIHByaW50KCJNb2RlOiAiLi5Nb2RlKQoKaWYgUEFORE9DX1NUQVRFLm91dHB1dF9maWxlIHRoZW4KICBsb2NhbCBvdXRwdXRfZmlsZSA9IFBBTkRPQ19TVEFURS5vdXRwdXRfZmlsZQogIGRvY19kaXIgPSBQQVRILmRpcmVjdG9yeShvdXRwdXRfZmlsZSkKICBpZiBQQU5ET0NfV1JJVEVSX09QVElPTlMudmFyaWFibGVzWyJtZWRpYV9kaXIiXSB0aGVuCiAgICBtZWRpYV9kaXIgPSBQQU5ET0NfV1JJVEVSX09QVElPTlMudmFyaWFibGVzWyJtZWRpYV9kaXIiXQogIGVsc2UKICAgIG1lZGlhX2RpciA9IFBBVEguc3BsaXRfZXh0ZW5zaW9uKG91dHB1dF9maWxlKQogICAgaWYgTW9kZSB+PSAnaHVnbycgdGhlbgogICAgICBtZWRpYV9kaXIgPSBtZWRpYV9kaXIgLi4gJy1tZWRpYScKICAgIGVuZAogIGVuZAplbmQKYXNzZXJ0KGRvY19kaXIsICJkb2NfZGlyIGlzIG5pbCIpCmFzc2VydChtZWRpYV9kaXIsICJtZWRpYV9kaXIgaXMgbmlsIikKCgpsb2NhbCBmdW5jdGlvbiBnZXRfYWJzb2x1dGVfcGF0aChmaWxlX3BhdGgpCiAgaWYgUEFUSC5pc19hYnNvbHV0ZShmaWxlX3BhdGgpIHRoZW4KICAgIHJldHVybiBmaWxlX3BhdGgKICBlbmQKICBmb3IgXywgZGlyIGluIHBhaXJzKFBBTkRPQ19TVEFURS5yZXNvdXJjZV9wYXRoKSBkbwogICAgbG9jYWwgZnVsbF9wYXRoID0gUEFUSC5qb2luKHtkaXIsIGZpbGVfcGF0aH0pCiAgICBpZiBvcy5leGlzdHMoZnVsbF9wYXRoKSB0aGVuCiAgICAgIHJldHVybiBmdWxsX3BhdGgKICAgIGVuZAogIGVuZAogIGZvciBfLCBmaWxlIGluIHBhaXJzKFBBTkRPQ19TVEFURS5pbnB1dF9maWxlcykgZG8KICAgIGlmIG5vdCBQQVRILmlzX2Fic29sdXRlKGZpbGUpIHRoZW4KICAgICAgZmlsZSA9IFBBVEguam9pbih7cGFuZG9jLnN5c3RlbS5nZXRfd29ya2luZ19kaXJlY3RvcnkoKSwgZmlsZV9wYXRofSkKICAgIGVuZAogICAgbG9jYWwgZGlyID0gUEFUSC5kaXJlY3RvcnkoZmlsZSkKICAgIGxvY2FsIGZ1bGxfcGF0aCA9IFBBVEguam9pbih7ZGlyLCBmaWxlX3BhdGh9KQogICAgaWYgb3MuZXhpc3RzKGZ1bGxfcGF0aCkgdGhlbgogICAgICByZXR1cm4gZnVsbF9wYXRoCiAgICBlbmQKICBlbmQKICByZXR1cm4gbmlsCmVuZAoKbG9jYWwgZnVuY3Rpb24gZ2V0X291dHB1dF9maWxlKGZpbGVfcGF0aCkKICBpZiBtZWRpYV9kaXIgdGhlbgogICAgbG9jYWwgbmV3X2ZpbGVfbmFtZSA9IHBhbmRvYy51dGlscy5zaGExKGZpbGVfcGF0aCkKICAgIGxvY2FsIF8sIG5ld19maWxlX2V4dCA9IFBBVEguc3BsaXRfZXh0ZW5zaW9uKGZpbGVfcGF0aCkKICAgIGZpbGVfcGF0aCA9IG5ld19maWxlX25hbWUgLi4gbmV3X2ZpbGVfZXh0CiAgICBsb2NhbCBmdWxsX3BhdGggPSBQQVRILmpvaW4oe21lZGlhX2RpciwgZmlsZV9wYXRofSkKICAgIHJldHVybiBmdWxsX3BhdGgKICBlbHNlCiAgICByZXR1cm4gbmlsCiAgZW5kCmVuZAoKbG9jYWwgZnVuY3Rpb24gZXh0cmFjdF9tZWRpYShmaWxlX3BhdGgpCiAgb3MubWtkaXIobWVkaWFfZGlyKQogIGZpbGVfcGF0aCA9IHVybC5kZWNvZGUoZmlsZV9wYXRoKQogIGxvY2FsIGFic19wYXRoID0gZ2V0X2Fic29sdXRlX3BhdGgoZmlsZV9wYXRoKQogIGxvY2FsIGZpbGUgPSBnZXRfb3V0cHV0X2ZpbGUoZmlsZV9wYXRoKQogIGlmIGFic19wYXRoIGFuZCBmaWxlIHRoZW4KICAgIGlmIG5vdCBvcy5leGlzdHMoZmlsZSkgdGhlbgogICAgICBvcy5jb3B5KGFic19wYXRoLCBmaWxlKQogICAgZW5kCiAgICBsb2NhbCByZWxfcGF0aCA9IFBBVEgubWFrZV9yZWxhdGl2ZShmaWxlLCBkb2NfZGlyLCBmYWxzZSkKICAgIGxvY2FsIHBhcnRzID0gUEFUSC5zcGxpdChyZWxfcGF0aCkKICAgIGZvciBpLHYgaW4gaXBhaXJzKHBhcnRzKSBkbwogICAgICBwYXJ0c1tpXSA9IHVybC5lbmNvZGUodikKICAgIGVuZAogICAgbG9jYWwgZW5jb2RlZF9yZWxfcGF0aCA9IHRhYmxlLmNvbmNhdChwYXJ0cywgIi8iKQogICAgaWYgTW9kZSA9PSAnaHVnbycgdGhlbgogICAgICBlbmNvZGVkX3JlbF9wYXRoID0gJy4uLycgLi4gZW5jb2RlZF9yZWxfcGF0aAogICAgZW5kCiAgICByZXR1cm4gZW5jb2RlZF9yZWxfcGF0aAogIGVuZAplbmQKCmxvY2FsIGZ1bmN0aW9uIHJhdyhzKQogIHJldHVybiBwYW5kb2MuUmF3SW5saW5lKCdtYXJrZG93bicsIHMpCmVuZAoKZnVuY3Rpb24gSW1hZ2UoZWwpCiAgbG9jYWwgc3JjID0gZXh0cmFjdF9tZWRpYShlbC5zcmMpCiAgaWYgc3JjIHRoZW4KICAgIGVsLnNyYyA9IHNyYwogIGVuZAogIHJldHVybiBlbAplbmQKCmZ1bmN0aW9uIFNwYWNlKCkKICByZXR1cm4gcmF3KCcgJykKZW5kCgpmdW5jdGlvbiBTb2Z0QnJlYWsoKQogIHJldHVybiByYXcoJ1xuJykKZW5kCgpmdW5jdGlvbiBSYXdJbmxpbmUoZWwpCiAgaWYgZWwuZm9ybWF0ID09ICJodG1sIiB0aGVuCiAgICBlbC5mb3JtYXQgPSAnbWFya2Rvd24nCiAgICBlbC50ZXh0ID0gc3RyaW5nLmdzdWIoZWwudGV4dCwgJzxpbWdbXj5dKz4nLCBmdW5jdGlvbihpbWcpCiAgICAgIHJldHVybiBzdHJpbmcuZ3N1YihpbWcsICdzcmM9IihbXiJdKykiJywgZnVuY3Rpb24oc3JjKQogICAgICAgIGxvY2FsIGV4dHJhY3RfbWVkaWFfc3JjID0gZXh0cmFjdF9tZWRpYShzcmMpCiAgICAgICAgaWYgZXh0cmFjdF9tZWRpYV9zcmMgdGhlbgogICAgICAgICAgcmV0dXJuICdzcmM9IicgLi4gZXh0cmFjdF9tZWRpYV9zcmMgLi4gJyInCiAgICAgICAgZW5kCiAgICAgICAgcmV0dXJuIHNyYwogICAgICBlbmQpCiAgICBlbmQpCiAgZW5kCiAgcmV0dXJuIGVsCmVuZAoKZnVuY3Rpb24gUmF3QmxvY2soZWwpCiAgaWYgZWwuZm9ybWF0ID09ICJodG1sIiB0aGVuCiAgICBlbC5mb3JtYXQgPSAnbWFya2Rvd24nCiAgZW5kCiAgcmV0dXJuIGVsCmVuZAoKZnVuY3Rpb24gTWF0aChlbCkKICBpZiBNb2RlID09ICdodWdvJyB0aGVuCiAgICBpZiBlbC5tYXRodHlwZSA9PSAnRGlzcGxheU1hdGgnIHRoZW4KICAgICAgcmV0dXJuIHJhdygne3s8IG1hdGhqYXggPn19XG4kJCcgIC4uIGVsLnRleHQgLi4gJyQkXG57ezwvbWF0aGpheCA+fX0nKQogICAgZWxzZQogICAgICBlbC50ZXh0ID0gc3RyaW5nLmdzdWIoZWwudGV4dCwgJ1xcW1xce1xcfV0nLCBmdW5jdGlvbiAodikKICAgICAgICByZXR1cm4gJ1xcJyAuLiB2CiAgICAgIGVuZCkKICAgICAgZWwudGV4dCA9IHN0cmluZy5nc3ViKGVsLnRleHQsICdfJywgZnVuY3Rpb24gKHYpCiAgICAgICAgcmV0dXJuICdcXCcgLi4gdgogICAgICBlbmQpCiAgICBlbmQKICBlbmQKICByZXR1cm4gZWwKZW5kCgpmdW5jdGlvbiBQYXJhKGVsKQogIGxvY2FsIGNvbnRlbnQgPSB7fQogIGxvY2FsIGluX2Rpc3BsYXlfbWF0aCA9IGZhbHNlCiAgZm9yIF8sIGl0ZW0gaW4gcGFpcnMoZWwuY29udGVudCkgZG8KICAgIGlmIGl0ZW0udCA9PSAnU3RyJ2FuZCBpdGVtLnRleHQgPT0gIiQkIiB0aGVuCiAgICAgIGluX2Rpc3BsYXlfbWF0aCA9IG5vdCBpbl9kaXNwbGF5X21hdGgKICAgIGVsc2UKICAgICAgaWYgaW5fZGlzcGxheV9tYXRoIHRoZW4KICAgICAgICBpZiBpdGVtLnQgPT0gJ1Jhd0lubGluZScgYW5kIGl0ZW0uZm9ybWF0ID09ICd0ZXgnIHRoZW4KICAgICAgICAgIGxvY2FsIG4gPSBwYW5kb2MuTWF0aCgnRGlzcGxheU1hdGgnLCAnXG4nIC4uIGl0ZW0udGV4dCAuLiAnXG4nKQogICAgICAgICAgdGFibGUuaW5zZXJ0KGNvbnRlbnQsIE1hdGgobikpCiAgICAgICAgZWxzZQogICAgICAgICAgdGFibGUuaW5zZXJ0KGNvbnRlbnQsIGl0ZW0pCiAgICAgICAgZW5kCiAgICAgIGVsc2UKICAgICAgICB0YWJsZS5pbnNlcnQoY29udGVudCwgaXRlbSkKICAgICAgZW5kCiAgICBlbmQKICBlbmQKICBlbC5jb250ZW50ID0gY29udGVudAogIHJldHVybiBlbAplbmQKCmZ1bmN0aW9uIFBhbmRvYyhlbCkKICByZXR1cm4gZWwKZW5kCg==");var Kn=ge("cGFja2FnZS5wYXRoPXBhY2thZ2UucGF0aC4uIjsiIC4uZGVidWcuZ2V0aW5mbygxKS5zb3VyY2U6bWF0Y2goIiguKlsvXFxdKSIpOnN1YigyKSAuLiAiPy5sdWEiCgpNb2RlPSdodWdvJwoKcmVxdWlyZSgnbWFya2Rvd24nKQ==");var Xs={"utf8_filenames.lua":Rn,"url.lua":Un,"polyfill.lua":zn,"math_block.lua":Jn,"markdown.lua":Gn,"markdown+hugo.lua":Kn},tn=Xs;var Ze=require("obsidian");var nn=require("process");var et={Markdown:{name:"Markdown",type:"pandoc",arguments:'-f markdown --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" --lua-filter="${luaDir}/markdown.lua" -s -o "${outputPath}" -t commonmark_x-attributes',extension:".md"},"Markdown (Hugo)":{name:"Markdown (Hugo)",type:"pandoc",arguments:'-f markdown --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" --lua-filter="${luaDir}/markdown+hugo.lua" -s -o "${outputPath}" -t commonmark_x-attributes',extension:".md"},Html:{name:"Html",type:"pandoc",arguments:'-f markdown --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" --lua-filter="${luaDir}/math_block.lua" --self-contained --metadata title="${currentFileName}" -s -o "${outputPath}" -t html',customArguments:'--mathjax="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg-full.js"',extension:".html"},TextBundle:{name:"TextBundle",type:"pandoc",arguments:'-f markdown --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" --lua-filter="${luaDir}/markdown.lua" -V media_dir="${outputDir}/${outputFileName}.textbundle/assets" -s -o "${outputDir}/${outputFileName}.textbundle/text.md" -t commonmark_x-attributes',extension:".md"},PDF:{name:"PDF",type:"pandoc",arguments:'-f markdown --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" --self-contained --metadata title="${currentFileName}" -s -o "${outputPath}" -t pdf',extension:".pdf"},"Word (.docx)":{name:"Word (.docx)",type:"pandoc",arguments:'-f markdown --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" -s -o "${outputPath}" -t docx',extension:".docx"},OpenOffice:{name:"OpenOffice",type:"pandoc",arguments:'-f markdown --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" -s -o "${outputPath}" -t odt',extension:".odt"},RTF:{name:"RTF",type:"pandoc",arguments:'-f markdown --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" -s -o "${outputPath}" -t rtf',extension:".rtf"},Epub:{name:"Epub",type:"pandoc",arguments:'-f markdown --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" -s -o "${outputPath}" -t epub',extension:".epub"},Latex:{name:"Latex",type:"pandoc",arguments:'-f markdown --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" -s -o "${outputPath}" -t latex',extension:".latex"},"Media Wiki":{name:"Media Wiki",type:"pandoc",arguments:'-f markdown --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" -s -o "${outputPath}" -t mediawiki',extension:".mediawiki"},reStructuredText:{name:"reStructuredText",type:"pandoc",arguments:'-f markdown --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" -s -o "${outputPath}" -t rst',extension:".rst"},Textile:{name:"Textile",type:"pandoc",arguments:'-f markdown --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" -s -o "${outputPath}" -t textile',extension:".textile"},OPML:{name:"OPML",type:"pandoc",arguments:'-f markdown --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" -s -o "${outputPath}" -t opml',extension:".opml"},Custom:{name:"Custom",type:"custom",command:"your command",targetFileExtensions:".ext"}};function ht(s,e){return typeof e=="string"&&e.trim()===""&&(e=void 0),{...s??{},[nn.platform]:e}}function be(s){return(s??{})[nn.platform]}var tt={items:Object.values(et).filter(s=>s.type!=="custom"),pandocPath:void 0,defaultExportDirectoryMode:"Auto",openExportedFile:!0};function dt(s){return s.type==="pandoc"?s.extension:s.type==="custom"?s.targetFileExtensions?.split(",")[0]:""}var Xe=require("obsidian"),Vn=Ye(require("electron"));function ce(s,...e){return function(...t){let n=t[t.length-1]||{},i=[s[0]];return e.forEach(function(r,o){let a=Number.isInteger(r)?t[r]:n[r];i.push(a,s[o+1])}),i.join("")}}function we(s,e){return e?s.removeAttribute("hidden"):s.setAttribute("hidden",""),s}function ke(s,e){return e&&e.trim()!=""?s.setAttribute("title",e):s.removeAttribute("title"),s}var pt=class{constructor(e){this.onChanging={},this.onChanged={},this._onChangingCallback=e?.onChangingCallback??(()=>!0),this._onChangedCallback=e?.onChangedCallback??(()=>{})}as(){return this}watchOnChanging(e,t){(this.onChanging[e]??(this.onChanging[e]=[])).push(t)}watchOnChanged(e,t){(this.onChanged[e]??(this.onChanged[e]=[])).push(t)}set(e,t,n,i){if(this._onChangingCallback&&this._onChangingCallback(n,t,e)===!1)return!1;let r=this.onChanging[t];if(r){let a=!1;for(let c of r)c(n,t,e)||(a=!0);if(a)return!1}e[t]=n;let o=this.onChanged[t];if(o)for(let a of o)try{a(n,t,e)}catch(c){console.error(c)}return this._onChangedCallback&&this._onChangedCallback(n,t,e),!0}fireChanged(e){for(let t of Object.keys(this.onChanged)){let n=t,i=this.onChanged[n];if(i)for(let r of i)try{r(e[n],n,e)}catch(o){console.error(o)}}}};var Me=Ye(require("electron"));var Yn=require("obsidian");var Xn=(()=>({exportWithPrevious:"\u4F7F\u7528\u4E0A\u4E00\u6B21\u8BBE\u7F6E\u5BFC\u51FA",selectExportFolder:"\u8BF7\u9009\u62E9\u5BFC\u51FA\u6587\u4EF6\u5939",exportSuccessNotice:ce`导出文件 ${0} 成功!`,exportCommandOutputMessage:ce`命令:${0}`,exportErrorOutputMessage:ce`命令 ${0},错误:{1}`,messageBox:{yes:"\u662F",no:"\u5426",ok:"\u786E\u8BA4",cancel:"\u53D6\u6D88"},overwriteConfirmationDialog:{replace:"\u66FF\u6362",title:ce`"${0}" 已经存在。您要替换它吗?`,message:ce`"${0}" 文件夹中已有相同的文件或文件夹,若替换,则会覆盖其当前内容。`},preparing:ce`正在生成 "${0}" ......`,save:"\u4FDD\u5B58",new:"\u65B0\u5EFA",name:"\u540D\u79F0",general:"\u901A\u7528",type:"\u7C7B\u578B",defaultFolderForExportedFile:"\u9ED8\u8BA4\u7684\u5BFC\u51FA\u6587\u4EF6\u5939",customLocation:"\u81EA\u5B9A\u4E49",sameFolderWithCurrentFile:"\u4E0E\u539F\u6587\u4EF6\u540C\u4E00\u76EE\u5F55\u4E0B",afterExport:"\u5BFC\u51FA\u540E",arguments:"\u53C2\u6570",command:"\u547D\u4EE4",exportDialog:{fileName:"\u6587\u4EF6\u540D",exportTo:"\u5BFC\u51FA\u5230",title:ce`导出为 ${0}`,export:"\u5BFC\u51FA",overwriteConfirmation:"\u8986\u76D6\u63D0\u793A"},exportToOo:"\u5BFC\u51FA\u4E3A......",extraArguments:"\u81EA\u5B9A\u4E49\u53C2\u6570",openExportedFile:"\u6253\u5F00\u5BFC\u51FA\u6587\u4EF6",openExportedFileLocation:"\u6253\u5F00\u5BFC\u51FA\u6587\u4EF6\u6240\u5728\u76EE\u5F55",runCommand:"\u8FD0\u884C\u81EA\u5B9A\u4E49\u547D\u4EE4",showCommandOutput:"\u663E\u793A\u547D\u4EE4\u884C\u5220\u9664",settingTab:{title:"\u5BFC\u51FA\u8BBE\u7F6E",pandocPath:"Pandoc \u8DEF\u5F84",pandocPathPlaceholder:"\uFF08\u81EA\u52A8\u68C0\u6D4B\uFF09",auto:"\u81EA\u52A8",reset:"\u91CD\u7F6E",add:"\u6DFB\u52A0",remove:"\u79FB\u9664",rename:"\u91CD\u547D\u540D",targetFileExtensions:"\u76EE\u6807\u6587\u4EF6\u6269\u5C55\u540D",targetFileExtensionsTip:"\uFF08\u7528\u7A7A\u683C\u5206\u5F00\uFF09",chooseSetting:"\u9009\u62E9\u914D\u7F6E"},template:"\u6A21\u677F",pleaseOpenFile:"\u8BF7\u6253\u5F00\u4E00\u4E2A\u6587\u4EF6\u5148\u3002"}))();var Zn={preparing:ce`generating "${0}" ......`,exportToOo:"Export to ......",selectExportFolder:"Please select an export folder.",exportSuccessNotice:ce`Export file ${0} success!`,exportCommandOutputMessage:ce`Command: ${0}`,exportErrorOutputMessage:ce`Command: ${0},Error:${1}`,overwriteConfirmationDialog:{replace:"Replace",title:ce`"${0}" already exists. Do you want to replace it?`,message:ce`A file or folder with the same name already exists in the folder "${0}". Replacing it will overwrite its current contents.`},messageBox:{yes:"Yes",no:"No",ok:"Ok",cancel:"Cancel"},general:"General",name:"Name",new:"New",save:"Save",exportDialog:{exportTo:"Export to",fileName:"File Name",title:ce`Export to ${0}`,export:"Export",overwriteConfirmation:"Overwrite confirmation"},template:"Template",type:"Type",defaultFolderForExportedFile:"Default Folder for Exported File",sameFolderWithCurrentFile:"Same folder with current file",customLocation:"Custom location",command:"Command",arguments:"Arguments",extraArguments:"Extra arguments",settingTab:{title:"Export Setting",pandocPath:"Pandoc path",pandocPathPlaceholder:"(Auto Detect)",reset:"Reset",auto:"Auto",add:"Add",remove:"Remove",rename:"Rename",chooseSetting:"Choose setting",targetFileExtensions:"Target file extensions",targetFileExtensionsTip:"(Separated by whitespace)"},afterExport:"After Export",runCommand:"Run command",showCommandOutput:"Show command output",openExportedFileLocation:"Open exported file location",openExportedFile:"Open exported file",exportWithPrevious:"Export with Previous",pleaseOpenFile:"Please open a file first."};var Qn=require("obsidian"),Tt={"zh-CN":Xn,"en-US":Zn,get current(){let s=Object.keys(this),e=Qn.moment.locale().toLowerCase(),t=s.find(i=>i.toLowerCase()===e.toLowerCase());if(t)return this[t];let n=e.split("-")[0];return t=s.find(i=>i.toLowerCase().startsWith(n)),t?this[t]:this["en-US"]}};var Dt=class extends Yn.Modal{constructor(t,n,i){super(t);this.options=typeof n=="string"?{message:n,buttons:"Ok",title:i}:n,this.lang=Tt.current}onOpen(){let{titleEl:t,contentEl:n,lang:i,options:{message:r,title:o,buttons:a,callback:c,buttonsLabel:h,buttonsClass:d}}=this;switch(o&&t.setText(o),n.createDiv({text:r}),a){case"Yes":n.createEl("div",{cls:["modal-button-container"],parent:n},D=>{D.createEl("button",{text:h?.yes??i.messageBox.yes,cls:["mod-cta",d?.yes],parent:D}).onclick=()=>this.call(c?.yes)});break;case"YesNo":n.createEl("div",{cls:["modal-button-container"],parent:n},D=>{D.createEl("button",{text:h?.yes??i.messageBox.yes,cls:["mod-cta",d?.yes],parent:D}).onclick=()=>this.call(c?.yes),D.createEl("button",{text:h?.no??i.messageBox.no,cls:["mod-cta",d?.no],parent:D}).onclick=()=>this.call(c?.no)});break;case"Ok":n.createEl("div",{cls:["modal-button-container"],parent:n},D=>{D.createEl("button",{text:h?.ok??i.messageBox.ok,cls:["mod-cta",d?.no],parent:D}).onclick=()=>this.call(c?.ok)});break;case"OkCancel":n.createEl("div",{cls:["modal-button-container"],parent:n},D=>{D.createEl("button",{text:h?.ok??i.messageBox.ok,cls:["mod-cta",d?.ok],parent:D}).onclick=()=>this.call(c?.ok),D.createEl("button",{text:h?.cancel??i.messageBox.cancel,cls:["mod-cta",d?.cancel],parent:D}).onclick=()=>this.call(c?.cancel)});break}}call(t){t&&t(),this.close()}onClose(){let{contentEl:t}=this;t.empty()}};var Ss=require("obsidian"),Ot=Ye(require("fs")),js=require("child_process"),Ps=Ye(require("path"));var As=Ye(vs(),1),{applyExtends:so,cjsPlatformShim:ro,Parser:oo,processArgv:ao,Yargs:Gt}=As.default;Gt.applyExtends=(s,e,t)=>so(s,e,t,ro);Gt.hideBin=ao.hideBin;Gt.Parser=oo;var Ts=Gt;async function Kt(s,e,t,n,i,r,o,a,c){let{settings:h,lang:d,manifest:D,app:{vault:{adapter:y,config:B},loadProgress:F}}=s;if(!n){let X=dt(i);n=`${e.basename}${X}`}r==null&&(r=h.showOverwriteConfirmation);let g=y.getBasePath(),l=`${g}/${D.dir}`,T=`${l}/lua`,L=t,N=`${L}/${n}`,U=n.substring(0,n.lastIndexOf(".")),b=n,E=y.getFullPath(e.path),R=E.substring(0,E.length-e.name.length-1),ie=e.basename,x=e.name,_=B.attachmentFolderPath??"/";_==="/"?_=g:_.startsWith(".")&&(_=Ps.default.join(R,_.substring(1)));let V={pluginDir:l,luaDir:T,outputDir:L,outputPath:N,outputFileName:U,outputFileFullName:b,currentDir:R,currentPath:E,currentFileName:ie,currentFileFullName:x,attachmentFolderPath:_};switch(Me.remote.process.platform){case"darwin":{let X=Me.remote.process.env.PATH,A=["/usr/local/bin","/Library/TeX/texbin"];for(let H of A)X.includes(H)||(X=`${H}:${X}`);Me.remote.process.env.PATH=X;break}default:break}let z=i.type==="custom"&&i.showCommandOutput,G=i.openExportedFileLocation??h.openExportedFileLocation,K=i.openExportedFile??h.openExportedFile;if(r&&Ot.existsSync(N)){let X=await Me.remote.dialog.showSaveDialog({title:d.overwriteConfirmationDialog.title(b),defaultPath:N,properties:["showOverwriteConfirmation","createDirectory"]});if(X.canceled)return;V.outputPath=X.filePath,V.outputDir=V.outputPath.substring(0,V.outputPath.lastIndexOf("/")),V.outputFileFullName=V.outputPath.substring(V.outputDir.length+1),V.outputFileName=V.outputFileFullName.substring(0,V.outputFileFullName.lastIndexOf("."))}F.setMessage(d.preparing(b)),c&&c(),F.show();let Y=be(h.pandocPath)??"pandoc",J=(i.type==="pandoc"?`${Y} ${i.arguments??""} ${i.customArguments??""} "${E}"`:i.command).replace(/\${(.*?)}/g,(X,A)=>V[A]),he=await Ts(J.match(/(?:[^\s"]+|"[^"]*")+/g)).options({output:{type:"string",alias:"o"}}).argv,Ae=he.output.startsWith('"')&&he.output.endsWith('"')||he.output.startsWith("'")&&he.output.endsWith("'")?he.output.substring(1,he.output.length-1):he.output,xe=Ae.substring(0,Ae.lastIndexOf("/"));Ot.existsSync(xe)||Ot.mkdirSync(xe),ks(J,()=>{F.hide();let X=async()=>{G&&setTimeout(()=>{Me.remote.shell.showItemInFolder(Ae)},1e3),K&&await Me.remote.shell.openPath(Ae),i.type==="pandoc"&&i.runCommand===!0&&i.command&&ks(i.command),o&&o()};if(z){let A=new Dt(app,d.exportCommandOutputMessage(J));A.onClose=X,A.open()}else new Ss.Notice(d.exportSuccessNotice(b),1500),X()},X=>{F.hide(),new Dt(app,d.exportErrorOutputMessage(J,X)).open(),a&&a()})}var ks=(s,e,t)=>{let n;Me.remote.process.platform==="win32"?n={}:n={env:{PATH:Me.remote.process.env.PATH}},(0,js.exec)(s,n,(i,r,o)=>{if(i){console.log(`cmd: ${s}
|
|
|
error: ${i.message}`),t&&t(i.message);return}if(o){console.log(`cmd: ${s}
|
|
|
stderr: ${o}`),t&&t(o);return}console.log(`cmd: ${s}
|
|
|
stdout: ${r}`),e&&e(r)})};var ft=class extends Xe.Modal{constructor(t,n,i){super(t);this.plugin=n,this.currentFile=i}get lang(){return this.plugin.lang}onOpen(){let{titleEl:t,contentEl:n,currentFile:i,plugin:{settings:r},lang:o}=this,a=r.defaultExportDirectoryMode,c=r.lastExportType??r.items.first()?.name,h=r.items.find(l=>l.name===c),d=dt(h),D=r.showOverwriteConfirmation,y=`${be(r.lastExportDirectory)??Vn.remote.app.getPath("documents")}`,B=`${i.basename}${d}`,F;if(a==="Same"){let l=this.app.vault.adapter.getFullPath(i.path);y=l.substring(0,l.length-i.name.length-1)}else a==="Custom"&&(y=be(r.customDefaultExportDirectory));t.setText(o.exportDialog.title(h.name)),new Xe.Setting(n).setName(o.type).addDropdown(l=>{l.addOptions(Object.fromEntries(r.items.map(T=>[T.name,T.name]))).onChange(T=>{c=T,h=r.items.find(L=>L.name===c),t.setText(o.exportDialog.title(h.name)),d=dt(h),B.includes(".")?B=B.substring(0,B.lastIndexOf("."))+d:B=B+d,F.components.first()?.setValue(B).inputEl.setAttribute("title",B)}).setValue(c)}),F=new Xe.Setting(n).setName(o.exportDialog.fileName).addText(l=>{l.setValue(B).onChange(T=>{B=T,ke(l.inputEl,T)}).inputEl.setAttribute("title",B)});let g=new Xe.Setting(n).setName(o.exportDialog.exportTo).setDisabled(!0).addText(l=>{l.setValue(y).onChange(T=>{y=T,ke(l.inputEl,y)}),ke(l.inputEl,y)}).addExtraButton(l=>{l.setIcon("folder").onClick(async()=>{let T=await Vn.remote.dialog.showOpenDialog({title:o.selectExportFolder,defaultPath:y,properties:["createDirectory","openDirectory"]});!T.canceled&&T.filePaths?.length>0&&(y=T.filePaths[0],g.components.first()?.setValue(y).inputEl.setAttribute("title",y))})});new Xe.Setting(n).setName(o.exportDialog.overwriteConfirmation).addToggle(l=>{l.setValue(D).onChange(T=>D=T)}),n.createEl("div",{cls:["modal-button-container"],parent:n},l=>{l.createEl("button",{text:o.exportDialog.export,cls:["mod-cta"],parent:l}).onclick=async()=>{await Kt(this.plugin,i,y,B,h,D,async()=>{r.showOverwriteConfirmation=D,r.lastExportDirectory=ht(r.lastExportDirectory,y),r.lastExportType=h.name,await this.plugin.saveSettings(),this.close()},()=>{we(this.containerEl,!0)},()=>{we(this.containerEl,!1)})}})}onClose(){let{contentEl:t}=this;t.empty()}};var oe=require("obsidian"),qn=Ye(require("electron"));var Zt=require("obsidian"),Xt=class extends Zt.Modal{constructor(t,n,i,r){super(t);this.settingTab=n,this.setting=i,this.callback=r}get lang(){return this.settingTab.lang}onOpen(){let{contentEl:t,titleEl:n,lang:i,setting:r}=this;n.setText(i.settingTab.rename);let o=r.name;new Zt.Setting(t).setName(i.name).addText(a=>{a.setValue(r.name).onChange(c=>o=c)}),t.createEl("div",{cls:["modal-button-container"],parent:t},a=>{a.createEl("button",{text:i.save,cls:["mod-cta"],parent:a}).onclick=async()=>{this.callback(o),this.close()}})}onClose(){let{contentEl:t}=this;t.empty()}};var vt=require("obsidian");var Qt=class extends vt.Modal{constructor(t,n,i){super(t);this.settingTab=n,this.callback=i}get lang(){return this.settingTab.lang}onOpen(){let{contentEl:t,titleEl:n,lang:i,callback:r}=this;n.setText(i.new);let o=Object.values(et).first(),a=o.name,c=o.name,h;new vt.Setting(t).setName(i.template).addDropdown(d=>{d.addOptions(Object.fromEntries(Object.values(et).map(D=>[D.name,D.name]))).setValue(a).onChange(D=>{a=D,c=D,h.components.first()?.setValue(c)})}),h=new vt.Setting(t).setName(i.name).addText(d=>{d.setValue(c).onChange(D=>c=D)}),t.createEl("div",{cls:["modal-button-container"],parent:t},d=>{d.createEl("button",{text:i.settingTab.add,cls:["mod-cta"],parent:d}).onclick=async()=>{o=JSON.parse(JSON.stringify(et[a])),o.name=c,r(o),this.close()}})}onClose(){let{contentEl:t}=this;t.empty()}};var Yt=class extends oe.PluginSettingTab{constructor(t,n){super(t,n);this.plugin=n,this.name=this.plugin.lang.settingTab.title}get lang(){return this.plugin.lang}hide(){let{containerEl:t}=this;t.empty()}display(){let{containerEl:t,lang:n,plugin:i}=this;t.empty();let r=(b,E,R)=>{let ie=R[E];return!(b===ie||E!=="lastEditName"&&ie===void 0&&(b===!1||b===""))},o=async(b,E,R)=>{b!==void 0&&(b===!1||typeof b=="string"&&b.trim()==="")&&delete R[E],await i.saveSettings()},a=new pt({onChangingCallback:r,onChangedCallback:o}),c=new pt({onChangingCallback:r,onChangedCallback:o}),h=c.as(),d=c.as(),D=new Proxy(i.settings,a),y=new Proxy(D.items.find(b=>b.name===D.lastEditName)??D.items.first(),c),B=b=>{let E=D.items.find(R=>R.name===b)??D.items.first();D.lastEditName!==E.name&&(D.lastEditName=E.name),E&&(y=new Proxy(E,c),c.fireChanged(y))};t.createEl("h2",{text:n.settingTab.title}),new oe.Setting(t).setName(n.general).addExtraButton(b=>{b.setIcon("reset").setTooltip(n.settingTab.reset).onClick(async()=>{await this.plugin.resetSettings(),D=new Proxy(i.settings,a),a.fireChanged(D),B(D.lastEditName)})}).setHeading(),new oe.Setting(t).setName(n.settingTab.pandocPath).addText(b=>{b.setPlaceholder(n.settingTab.pandocPathPlaceholder).onChange(E=>{D.pandocPath!==E&&(D.pandocPath=ht(D.pandocPath,E))}),a.watchOnChanged("pandocPath",E=>{b.setValue(be(E)??"")})}),new oe.Setting(t).setName(n.defaultFolderForExportedFile).addDropdown(b=>{b.addOptions({Auto:n.settingTab.auto,Same:n.sameFolderWithCurrentFile,Custom:n.customLocation}).onChange(E=>{D.defaultExportDirectoryMode!==E&&(D.defaultExportDirectoryMode=E)}),a.watchOnChanged("defaultExportDirectoryMode",E=>{b.setValue(E)})});let F=new oe.Setting(t).addText(b=>{a.watchOnChanged("customDefaultExportDirectory",E=>{let R=be(E);b.setValue(R??""),ke(b.inputEl,R)})}).setClass("ex-setting-item").addExtraButton(b=>{b.setIcon("folder").onClick(async()=>{let E=await qn.remote.dialog.showOpenDialog({defaultPath:be(D.customDefaultExportDirectory)??qn.remote.app.getPath("documents"),properties:["createDirectory","openDirectory"]});!E.canceled&&E.filePaths.length>0&&(D.customDefaultExportDirectory=ht(D.customDefaultExportDirectory,E.filePaths[0]))}),a.watchOnChanged("customDefaultExportDirectory",E=>{let R=F.components.first(),ie=be(E);R.setValue(ie??""),ke(R.inputEl,ie)})});a.watchOnChanged("defaultExportDirectoryMode",b=>{we(F.settingEl,b==="Custom")}),new oe.Setting(t).setName(n.openExportedFileLocation).addToggle(b=>{b.onChange(E=>{D.openExportedFileLocation!==E&&(D.openExportedFileLocation=E)}),a.watchOnChanged("openExportedFileLocation",E=>{b.setValue(E)})}),new oe.Setting(t).setName(n.openExportedFile).addToggle(b=>{b.onChange(E=>{D.openExportedFile!==E&&(D.openExportedFile=E)}),a.watchOnChanged("openExportedFile",E=>{b.setValue(E)})}),new oe.Setting(t).setName(n.settingTab.title).setHeading(),new oe.Setting(t).setName(n.settingTab.chooseSetting).addDropdown(b=>{b.onChange(E=>{D.lastEditName!==E&&B(E)}),a.watchOnChanged("items",E=>{b.selectEl.empty(),b.addOptions(Object.fromEntries(E.map(R=>[R.name,R.name]))),b.setValue(D.lastEditName??D.items.first()?.name)}),a.watchOnChanged("lastEditName",E=>{b.setValue(E)})}).addExtraButton(b=>{b.setTooltip(n.settingTab.add),b.setIcon("plus"),b.onClick(()=>{new Qt(this.app,this,E=>{D.items=[...D.items,E],B(E.name)}).open()})}).addExtraButton(b=>{b.setTooltip(n.settingTab.rename),b.setIcon("pencil"),b.onClick(()=>{new Xt(this.app,this,y,E=>{y.name=E,D.items=[...D.items],B(E)}).open()})}).addExtraButton(b=>{b.setTooltip(n.settingTab.remove),b.setIcon("trash"),b.onClick(()=>{D.items=D.items.filter(E=>E.name!=y.name),B(D.items.first()?.name)})});let g=new oe.Setting(t).setName(n.command).addText(b=>{b.setDisabled(!0),b.onChange(E=>{y.type==="custom"&&y.command!==E&&(y.command=E)}),d.watchOnChanged("command",E=>{b.setValue(E)}),c.watchOnChanged("type",E=>{b.setDisabled(E!=="custom")})});c.watchOnChanged("type",b=>{we(g.settingEl,b==="custom")});let l=new oe.Setting(t).setName(n.arguments).addText(b=>{b.setDisabled(!0),b.onChange(E=>{y.type==="pandoc"&&y.arguments!==E&&(y.arguments=E,ke(b.inputEl,y.arguments))}),h.watchOnChanged("arguments",E=>{b.setValue(E??""),ke(b.inputEl,E)}),c.watchOnChanged("type",E=>{b.setDisabled(E!=="custom")})});c.watchOnChanged("type",b=>{we(l.settingEl,b==="pandoc")});let T=new oe.Setting(t).setName(n.settingTab.targetFileExtensions).addText(b=>{b.onChange(E=>{y.type==="custom"&&y.targetFileExtensions!==E&&(y.targetFileExtensions=E)}),d.watchOnChanged("targetFileExtensions",E=>{b.setValue(E??"")})});c.watchOnChanged("type",b=>{we(T.settingEl,b==="custom")});let L=new oe.Setting(t).setName(n.extraArguments).addText(b=>{b.onChange(E=>{y.type==="pandoc"&&y.customArguments!==E&&(y.customArguments=E)}),h.watchOnChanged("customArguments",E=>{b.setValue(E??""),ke(b.inputEl,E)})});c.watchOnChanged("type",b=>{we(L.settingEl,b==="pandoc")}),new oe.Setting(t).setName(n.afterExport).setHeading();let N=new oe.Setting(t).setName(n.showCommandOutput).addToggle(b=>{y.type==="custom"&&b.setValue(y.showCommandOutput),b.onChange(E=>{y.type==="custom"&&y.showCommandOutput!==E&&(y.showCommandOutput=E)})});c.watchOnChanged("type",b=>{we(N.settingEl,b==="custom")}),new oe.Setting(t).setName(n.openExportedFileLocation).addToggle(b=>{b.onChange(E=>{y.openExportedFileLocation!==E&&(y.openExportedFileLocation=E)}),c.watchOnChanged("openExportedFileLocation",E=>{b.setValue(E)})}),new oe.Setting(t).setName(n.runCommand).addToggle(b=>{b.onChange(E=>{y.type==="pandoc"&&y.runCommand!==E&&(y.runCommand=E)}),h.watchOnChanged("runCommand",E=>{b.setValue(E)})});let U=new oe.Setting(t).addText(b=>{b.onChange(E=>{y.command!==E&&(y.command=E)}),h.watchOnChanged("command",E=>{b.setValue(E)}),h.watchOnChanged("runCommand",(E,R,ie)=>{we(U.settingEl,ie.type==="pandoc"&&E),b.setValue(y.command)})});a.fireChanged(D),c.fireChanged(y)}};var en=class extends Ze.Plugin{constructor(t,n){super(t,n);this.lang=Tt.current}async onload(){window.hmr&&window.hmr(this),await this.loadSettings();let{lang:t}=this;this.addSettingTab(new Yt(this.app,this)),this.addCommand({id:"obsidian-enhancing-export:export",name:t.exportToOo,icon:"document",callback:()=>{let n=this.app.workspace.getActiveFile();n?new ft(this.app,this,n).open():new Ze.Notice(t.pleaseOpenFile,2e3)}}),this.addCommand({id:"obsidian-enhancing-export:export-with-previous",name:t.exportWithPrevious,icon:"document",callback:async()=>{let n=this.app.workspace.getActiveFile();if(n){if(this.settings.lastExportType&&this.settings.lastExportDirectory){let i=this.settings.items.find(r=>r.name===this.settings.lastExportType);if(i){await Kt(this,n,be(this.settings.lastExportDirectory),void 0,i);return}}new ft(this.app,this,n).open()}else new Ze.Notice(t.pleaseOpenFile,2e3)}}),this.registerEvent(this.app.workspace.on("file-menu",(n,i)=>{i instanceof Ze.TFile&&n.addItem(r=>{r.setTitle(t.exportToOo).setIcon("document").onClick(()=>{new ft(this.app,this,i).open()})}).addSeparator()}))}async resetSettings(){this.settings={...JSON.parse(JSON.stringify(tt)),lastExportDirectory:this.settings.lastExportDirectory},await this.saveSettings()}async loadSettings(){let t=Object.assign({},tt,await this.loadData());t.items.forEach(n=>{Object.assign(n,tt.items.find(i=>i.name===n.name)??{},n)});for(let n of tt.items)t.items.every(i=>i.name!==n.name)&&t.items.push(n);this.settings=t,this.settings.version!==this.manifest.version&&(await this.saveLuaScripts(),this.settings.version=this.manifest.version,await this.saveSettings())}async saveSettings(){console.log("[obsidian-enhancing-export] saveSettings",this.settings);let t=JSON.parse(JSON.stringify(this.settings));t.items.forEach(n=>{let i=tt.items.find(r=>r.name===n.name);i&&Object.keys(n).forEach(r=>{r!=="name"&&n[r]===i[r]&&delete n[r]})}),await this.saveData(t)}async saveLuaScripts(){let{adapter:t}=this.app.vault,n=`${this.manifest.dir}/lua`;await t.mkdir(n);for(let i of Object.keys(tn)){let r=`${n}/${i}`;await t.writeBinary(r,tn[i])}}};
|